Home
Журнал Тигры Below are the 13 most recent journal entries recorded in the "Alexey Tigarev" journal:
September 9th, 2005
11:18 am

[Link]

60 лет первому найденному багу (thanks to [info]krizai)

9 сентября 1945 мотылёк застрял в реле # 70 панели F компьютера Mark II Aiken Relay Calculator, когда его тестировали в Гарварде. Операторы занесли "баг" в бортжурнал компьютера - такой себе обычный бумажный журнал, поместив туда мотылька с записью "First actual case of bug being found". Эту историю позиционируют как давшую начало термину "баг", однако сама фраза в бортжурнале свидетельствует о том, что термин уже существовал. Говорят, что шумы при телефонной связи издревле называли "жуками в линии". И не факт, что это первое упоминание. Люди издавна жаловались официантам плохих забегаловок на мух в супе, - тоже ведь баг :)
Картинка побольше, можно разобрать текст )
Ссылка: http://www.jamesshuggins.com/h/tek1/first_computer_bug.htm history computing

Tags: , ,

(5 comments | Leave a comment)

August 15th, 2005
11:46 am

[Link]

Дискуссия про языки программирования у [info]samoylik
В комментах у [info]samoylik разыгралась интересная дискуссия про языки программирования. Упомянуты Java, .Net; C#, F#, Ocaml, Lisp, Prolog, Haskell. Дискуссия сподвигла меня посмотреть, что такое Ocaml и F#. Теперь я понял, на чём я буду писать под .Net, если такое вдруг случится :) Ocaml сам по себе стоит внимательно посмотреть, вне связи с .Net какими-нибудь.

http://www.livejournal.com/users/samoylik/93450.html?thread=697866#t697866

Tags: , , ,

(5 comments | Leave a comment)

March 21st, 2005
06:06 pm

[Link]

SCRUM - фреймворк для разработки ПО
Scrum - гибкий и лёгкий (!) процесс, который позволяет управлять разработкой программного продукта, используя итеративный подход.

Это обобщённый подход - внутри Scrum можно использовать различные методологии - от экстримального программирования (XP) до Rational Unified Process (RUP). Scrum даёт контролируемую гибкость процесса разработки за счёт сравнительно небольших затрат - в этом его основное отличие от тяжеловесных методологий разработки ПО. Увеличение продуктивности команды разработчиков с импользованием Scrum происходит благодаря использованию адаптивного эмпирического процесса разработки.

Разработка программного проекта происходит в условиях, характеризующихся большим количеством различных параметров, и эти параметры имеют тенденцию слабопредсказуемо меняться с течением времени. Ошибка во многих методологиях состоит в том, что эти методологии считают контролируемыми и предсказуемыми многие параметры, которые на самом деле таковыми не являются. В Scrum руководитель команды разработчиков и не берётся контролировать то, что ему не подвластно.

Приоритетизированный бэклог пожеланий заказчика -> планирование одной итерации (sprint'а) -> ежедневные встречи команды разработчиков для отслеживания прогресса, идентификации проблем и планирования.

Вот общая схема работы по методологии Scrum:

Основной ресурс по Scrum: http://www.controlchaos.com/
Хорошее введение (pdf, 170Kb): http://jeffsutherland.com/oopsla/schwapub.pdf

Current Music: Rhapsody - Legendary Tales
Tags: ,

(6 comments | Leave a comment)

December 15th, 2004
10:58 am

[Link]

Анатомия бага в программе
К разговору о тестировании программного обеспечения с apoptoz и [info]sosed_za_stenoi я выложил в [info]mindmaps майндмэп "Анатомия бага" - конспект то ли статьи Noam Joel Spolsky, то ли хэлпа по Багзилле (системе трекинга багов от Mozilla).

Tags: , ,

(4 comments | Leave a comment)

November 20th, 2004
02:10 pm

[Link]

Логические уровни применительно к программным продуктам
Я подумал, что модель логических уровней в НЛП применима к программным продуктам.

У каждого продукта есть миссия в некоторой надсистеме (обычно, системе с участием различных людей и программ), идентичность - собственно имя, например, "Semagic" и родовое имя - "клиент для ЖЖ", иерархия ценностей - приоритеты различных характеристик продукта и требований, убеждения - требования к продукту, способности - характеристики вроде "удобный/неудобный", "быстрый/тормознутый", "маленький/большой/громоздкий", поведение - набор конкретных реакций программы на различные действия пользователя и других программ, окружение - файлы, элементы управления (кнопочки, поля ввода, комбобоксы etc.)

Соответственно, можно воспользоваться этой моделью - посмотреть, на каком ЛУ у продукта собака порылась, и пофиксить это, - интеграцию логических уровней сделать.

Я попробую проверить эту гипотезу и глубже проработать соответствие между моделью ЛУ и различными характеристиками программных продуктов.

Tags: ,

(7 comments | Leave a comment)

November 4th, 2004
06:46 pm

[Link]

Метафора: производство ПО и выпечка пирога

Хорошее программное обеспечение нельзя сразу, в один присест сделать хорошим. Ну, скажем, хотим мы испечь пирог. Нету такого рецепта, чтобы быстренько ссыпать в одну посудину все ингридиенты, сунуть в духовку и получить пирог с нужным набором вкусовых качеств. Можешь купить в магазине готовый, если он тебе подойдёт - хорошо.

А когда ты хочешь сделать свой уникальный пирог, который удовлетворит именно твой взыскательный вкус - даже если ты наймёшь пекаря для этого, а не будешь печь сам, - то какое-то время придётся выбирать ингридиенты, перемешивать их, затем то, что ты в итоге хочешь сделать пирогом, становится куском бесформенным куском теста, который прилипает к рукам и который нужно с усилием месить. Потом тесту нужно дать время пожить собственной жизнью, "подойти". И уже потом - отправить в печку, чтобы температура ещё раз изменила структуру теста и покрыла пирог красивой корочкой. Но и после этого нужно быть осторожным и не спешить употреблять пирог! Он, во-первых, горячий и обжигает, а во-вторых, печёный продукт только из печки может не очень хорошо перевариваться незадачливым едоком. Первый едок должен иметь крепкие кишки :)

Нужно пройти все необходимые этапы. И с пониманием относиться к тому, что на промежуточных стадиях мы имеем ещё тесто, а не готовый продукт сразу.</p>

Update: Вот в этом треде пошло обсуждение с emeltchenkov о правомерности этой метафоры применительно к экстримальному программированию, процессу итераций в экстримальном программировании, и меняющимся требованиям:
http://www.livejournal.com/users/t_gra/113536.html?thread=343680#t343680

Tags:

(22 comments | Leave a comment)

October 2nd, 2004
02:32 pm

[Link]

О "рационализации" кода при отладке

Рационализацией называется придумывание сознательных объяснений тем или иным собственным действиям, произведённым благодаря бессознательным импульсам. Люди стремятся во всём искать смысл - вот и придумывают словесные объяснения.

Примерно такое же явление я обнаружил при отладке программы. Программа модифицируется так, чтобы отладочные сообщения объясняли человеку, что на самом деле происходит и почему. Так, например, код:

            if (!doNotStartLoop) {
                if (fragment.isLoop()) {
                    L.l.d("LOOP " + loopVar);
                    dataProvider.loop(loopVar);
                    registerLoop(loopVar, fragmentNo);
                }
            }
Преобразуется в:
        if (fragment.isLoop()) {
            if (!doNotStartLoop) {
                L.l.d("LOOP " + loopVar);
                dataProvider.loop(loopVar);
                registerLoop(loopVar, fragmentNo);
            } else {
                L.l.d("loop found but not starting - doNotStartLoop is true");
            }
        }        

Т.е. появляется дополнительная проверка и дополнительное действие (аналог человеческого внутреннего диалога) для объяснения, почему не сделали что-либо. В общем случае эффективность программы снижается, зато становится возможным её отладить (и впоследствии убрать отладочную печать).

Рассуждая о человеческих стратегиях - наборах поведенческих и мыслительных шагов - по аналогии с отлаживаемой программой, получаем ясное свидетельство, что осознавание каждого шага стратегии в общем случае снижает её эффективность - появляются лишние шаги - внутренний диалог, но это может быть полезно при внесении изменений ("отладке"). После внесения изменений можно оптимизировать стратегию, выбросив все эти объяснялки и другие лишние шаги.

Tags: ,

(5 comments | Leave a comment)

August 28th, 2004
11:22 am

[Link]

Я поздравляю всех с Днём Свободного Софта! Happy Software Freedom Day!
http://www.softwarefreedomday.org/:

    28 августа 2004 мы празднуем первый ежегодный День Свободного Софта. В этот день мы хотим показать миру преимущества Свободного и Открытого Софта (Free and Open Source Software == FOSS), и поощрить его широкое использование. Мы размещаем агитпункты в общественных местах для раздачи информационных флаёров и компакт-дисков с избранным Свободным и Открытым Софтом, включая TheOpenCD и Linux Live CD.

    Это глобальная маркетинговая кампания, участвовать в которой мы приглашаем волонтёров всего мира. Отдельные команды сами выбирают способы, которыми они предпочтут организовать их локальные PR-воздействия. Мы поможем массовым производством артефактов для обеспечения этих акций, но стоимость артефактов должна быть распределена.

    Просмотрите странички команд, чтобы узнать, есть ли уже команда недалеко от вашего места жительства, или используя эту форму, зарегистрируйте свою команду. У нас также есть форум, вики, и списки рассылки для информационной поддержки. В заключение: сейчас SFD (организация по поддержке Дня Свободного Софта) не может принимать пожертвования, но если вам хотелось бы поддержать материально наши начинания, заявите о своём желании по адресу pledges @ software freedom day . org.

(перевод мой)

Tags:

(5 comments | Leave a comment)

July 30th, 2004
04:29 pm

[Link]

Языки программирования.
У юной инженерки [info]ingenieurin появился пост про язык программирования Ruby, и тотчас же слетелись люди, интересующиеся другими кошерными немейнстримными языками - OCaml, Scheme, Eiffel. Хорошо-то как!
http://www.livejournal.com/users/ingenieurin/44047.html

Tags:

(6 comments | Leave a comment)

July 26th, 2004
02:23 pm

[Link]

IDE Editor Survey Results / Результаты опроса о редакторах кода в интегрированных средах разработки

The IDE Editor Survey was conducted from June 6th, 2004 until June 22nd, 2004. Its stated purpose was "to estimate the use and relative importance of different features of the source code editors of IDEs ." Questions in the survey concerned features found in most IDE source code editors: syntax highlighting, source code correction, source code completion, code outlining, automatic source code formatting, integrated documentation, user-defined symbol lookup, and keyboard shortcuts.

http://www.inf.fu-berlin.de/inst/ag-se/teaching/V-EMPIR-2004/survey_results/

Tags:

(Leave a comment)

July 13th, 2004
12:10 am

[Link]

Как Google привлекает потенциальных сотрудников

На прошлой неделе в самом сердце Кремниевой долины появился рекламный щит с математической головоломкой. Чтобы решить ее, большинству водителей, проезжавших по хайвею No 101, пришлось прибегнуть к помощи Google.
Read more... )

Tags: , ,

(Leave a comment)

June 10th, 2004
12:27 pm

[Link]

Python Language Reference

"""Programmer's note: a lambda form defined inside a function has no access to names defined in the function's namespace. This is because Python has only two scopes: local and global. A common work-around is to use default argument values to pass selected variables into the lambda's namespace, e.g.:

def make_incrementor(increment):
    return lambda x, n=increment: x+n
"""

Tags:

(2 comments | Leave a comment)

June 6th, 2004
02:37 pm

[Link]

ICFP Programming Contest 2004 (crossposted to [info]informaticsguru)
[info]sobaker:
    Тем временем в Интернете проходит 7-е соревнование по программированию ICFP Programming Contest 2004. Время на решение задачи — 24 часа; в этом году она заключается в моделировании муравейника: добыча пищи, защита от захватчиков и т.д.

Tags: ,

(Leave a comment)

AgileProductivity: Утройте продуктивность команды программистов, используя гибкие методологии Powered by LiveJournal.com