пятница, 22 октября 2010 г.

XML Parser Benchmarks

Когда я увидел название статей, то первой мыслю было: 'Забавно, но нафига это нужно (сравнивать производительность)?'. Первый же абзац заставил вспомнить про великую тучу XML-я, которую приходится пережевывать при работе с веб сервисами.

Ссылки: XML Parser Benchmarks: Part 1 и XML Parser Benchmarks: Part 2.

воскресенье, 10 октября 2010 г.

Тестер враг разработчику

Вот такой лозунг я встречал уже не первый раз. И мне это довольно странно, потому как за годы работы программистом я как то не ощущал, что тестер это враг №1.

Подобные заявления я обычно воспринимал как специфический миф-поверия из мира IT:)

Недавно вот наткнулся на заметку Живут, как тестировщик с программистом, где автор всерьез обсуждает проблему такого взаимоотношения.
Вторым настораживающим "знаком" была подпись автора вот этого блога (см. левый верхний квадрант, под меню).

Напрашиваются следующие выводы:
  1. Похоже что миф-поверие имеет весьма тики реальную основу (даже не смотря на всю иррациональность подобного поведения)
  2. Есть подозрение, что чем крупнее масштабы конторы компании, тем такое поведении более ярко выражено. Кому-то выгодно подстегивать соревновательный дух таким способом?!
  3. Есть такое наблюдение: большинство трудов об автоматизированном тестировании для разработчиков (TDD, JUnit и т.п.) имеют целые разделы о том, что программисты не любят заниматься тестированием, потому как а) это неинтересное и бесполезное занятие б) это занятие для низших форм жизни. Возможно, значение последнего де мотивирующего фактора (занятие для низших форм жизни) значительно недооценивается

суббота, 9 октября 2010 г.

Трюки с оберточными типами

Недавно коллеги заставили меня немножечко удивиться офигеть. Началось с того, что прислали вот такой код, и спросили каким же будет результат:
Integer a1 = 123;
Integer a2 = 123;
boolean result = a1 == a2;

Наивно полагая, что я неплохо знаю основы языка, я конечно же ответил false.
Оказалось что во первых: "а вот и нифига не правильно (т.е. result == true)", a во вторых: "такой ответ не всегда такой".

четверг, 7 октября 2010 г.

Проблемы валидации XML c XInclude.

Eсть вот такое расширение для XML . Первое знакомство можно начать с этого ресурса.
Вкратце: есть возможность с помощью директивы <xi:include href="..." /> в произвольное место XML вставлять содержимое из другого файла.

Штуковина вроде бы прикольная, но при работе с ней возникают некоторые трудности:
  • XML редакторы не обрабатывают эту конструкцию должным образом.
  • Java SAX парсеры без специальной настройки тоже не обрабатывают эту директиву.

четверг, 16 сентября 2010 г.

понедельник, 13 сентября 2010 г.

Вопрос по Луркоморью графам

Вместо вступления

Как показывает практика, вот это безобразие на самом деле никого особо не волнует, и контора готова платить за плевание в потолок потери 2-3 и более часов в день. Ну и ладно - пытливый ум способен найти себе занятие (и 'освоить' офисный канал:) ).
Так вот, наткнулся я вот на этот замечательный сайт, и оказалось, что осознать всю глубину написанного мне мешает недостаточное знание русского-матерного и всяких там сленговых словечек. Благо, существует довольно подробные разъяснения практически всех непонятных слов и выражений (интересно, познавательно и с картинками).
После того, как количество закладок в браузере превысило отметку 30, родился резонный вопрос: 'А сколько же это может продолжаться?'

Более форматизированная постановка вопроса

На сколько я понимаю, ближайшая мат. модель - 'граф с однонаправленными связями'. Статья это вершина, связь это гиперссылка с одной статьи на др.
Интересует 3 вопроса:
1. Сколько переходов надо совершить, чтобы посетить все узлы этого графа? Или какой порядок этой цифры?
2. Есть ли несвязанные вершины (без входящих, и исходящий связей)?
3. Есть ли вершины, у которых есть только исходящие связи (т.е. нет входящих)?

вторник, 31 августа 2010 г.

Linux для разработчика

Всегда считал, что linux больше подходит для разработчика. И недавно получил еще пару положительных эмоций на эту тему.

Итак, хочется настроить рабочее окружение для java разработки, а именно:
  • JDK 6
  • Ant + Maven
  • Eclipse
  • Увязать это все вместе и интегрировать в системму

Шаги для Windows
  1. Зайти на сайт Sun Oracle, найти и скачать нужную JDK
  2. Установить JDK
  3. Зайти на сайт Apache, найти и скачать Ant
  4. Установить Ant
  5. Зайти на сайт Apache, найти и скачать Maven
  6. Установить Maven
  7. Пробить переменные среды (OS env)
  8. Перезагрузится или закрыть все приложения и перестартовать explorer
  9. Зайти на сайт eclipse.org, найти и скачать eclipse
  10. Установить eclipse
  11. Запустить eclipse и указать установленные JDK
  12. Вытянуть нужные ярлычки

Шаги для Linux (Ubuntu)
  1. Запустить synaptic
  2. Найти пакеты eclipse, sun-java, ant, maven тыцнуть 'Установить' и подождать
  3. Запустить eclipse и наслаждаться ?жизнью? (переменные окружения, ярлыки... вообщем все уже настроено)

Красота!