Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


воскресенье, 5 февраля 2012 г.

2011 год. Подведение итогов.


Пришла пора подвести итоги прошедшего года и набросать планы на следующий.

Checklist

2011-й год был очень загруженным. К концу лета навалилось очень много работы и времени стало катастрофически не хватать. Ни на ведение своего блога ни на чтение чужих. Не следил за новостями ни читал обзоры долгожданной Delphi XE2.

Мир Delphi

В этом году случилось много всего. В первую очередь Delphi XE2 (долгожданная поддержка 64-бит, кроссплатформенность, новая библиотека для создания кроссплатформенных приложений FireMonkey, скины в VCL (обзор в блоге Влада), Live Bindings, Fast Report в комплекте с Delphi и многое другое). Я успел немного поиграться с одной из бета-версий, а со стабильной даже и не работал – не было времени. 50% времени работал в Delphi 6, 50% в Delphi 2010 и оставшиеся 46% в Delphi XE. Переход на XE2 тормозился отсутствием нужных библиотек. Но первое впечатление от Firemonkey  – вау, это обалденно!

В этому же году Embarcadero предоставила Delphi разработчикам возможность подтвердить свои навыки прохождением тестирования и получением сертификата. Подробнее, о сертификации читайте у Александра Алексеева. О прохождении тестирования и получении сертификата в этом году не писал только ленивый, то бишь я.

Интересные Delphi проекты 2011 года

  • Вышел проект DORM, the Delphi ORM (Open Source Apache License 2.0). Описание.
  • В конце года вышла третья версия OmniThreadLibrary (BSD лицензия)
  • В 2011 году был анонсирован (пока доступен только тестерам) интересный проект Object Pascal 4 JavaScript (ныне называется Smart Mobile Studio) позволяющий создавать HTML5 приложения на Object Pascal. Пока неясно, но скорее всего продукт будет коммерческим.
  • В ленте DelphiFeeds.ru появилось несколько новых блогов. Спасибо авторам за труд. =) Меня очень радует, что в ленте постов продолжают появляться публикации официального представителя Embarcadero – Всеволода Леонова. Причём в сравнении с прошлым годом, эти публикации потеряли формально-официальный тон (от чего только приобрели), и стали более живыми, а также обросли техническими подробностями и великолепным стилем изложения. Не знаю как у остальных, а у меня образ Embarcadero из безликой огромной компании превратился в обаятельный образ Севы.
  • Разработка проекта DeHL была официально заморожена. Причина – отсутствие явного интереса от Delphi-сообщества. Исходный код проекта доступен по BSD-лицензии. Автор готов передать проект в хорошие руки. Второй аналогичный проект того же автора – Delphi Collections пока ещё жив. Делайте выводы и пишите посты о хороших продуктах письма с благодарностями авторам используемых вами библиотек.
  • В этом году испортился (точнее, сменил направленность с Delphi на SEO) умер хороший сайт: http://delphiplus.org/

Мои проекты

Блог TDelphi

За 2011 год в моём блоге было опубликовано меньше всего постов (21 штука). Для сравнения, в 2010 – было 43, в 2009 – 54, в 2008 – 39. Да и эти 21 по большей части состоят из обзоров CnWizards, которые написаны кое-как.

Но некоторыми своими статьями я всё же доволен. Это:

Посещаемость блога TDelphi

В сравнении с 2010 годом, посетителей стало больше. См. снимок экрана из Google Analytics.

image

 

image

Interface.ru снова перепечатал у себя статью, невзирая на прямой запрет. Вот же воришки, хлебом не корми – только дай чужой контент украсть да в поисковиках вперёд оригинала вылезти.

LazyProject

Посещаемость LazyProject.info

image

3,206 people visited this site

Синий график – этот год. Оранжевый – прошлый.

Два пика – это кто-то разместил ссылку на Lazy Builder на board4allcz.eu. Спасибо, неизвестному доброжелателю.

Рабочее

В этому году наконец-то была выпущена уникодная версия одной из моих программ. 90% проблем вызвал переход с одного набора сторонних компонентов на другой с сохранением обратной совместимости. Даже не столько сам переход, сколько переписывание кода таким образом, чтобы новый набор компонентов работал также как это делал старый или максимально похожим на него образом. В частности переход Dream VCL на TMS Scripter Pro.

Второй сюрприз связанный с юникодом – это необходимость добавить поддержку юникода в одну внутреннюю UDF-ку для Firebird, написанную на Си. Сначала я рассчитывал взять в качестве примера UDF-ки поставляющиеся вместе с Firebird-ом. Но с ними вышел конфуз. Выяснилось что стандартные UDF-ки и слыхом не слыхивали ни о каком юникоде. Знатоков Си у нас на работе нету, желающих заняться переписыванием тоже. Пришлось, засучив рукава, браться за дело самому. Третьим сюрпризом стало то, что со времён второго курса я напрочь забыл и Си и С++. Недели 3 ковырялся с ICU (универсальной кроссплатформенной библиотекой дающей поддержку юникода, интернационализации (i18n) и глобализации (g11n)), пока разобрался, как всё это дело сконвертировать, собрать и прилинковать. Но я справился, я молодец. Кстати тут мне ещё раз пригодилась утилитка для тестирования UDF-ки, которую я писал пару лет назад.

На закономерный вопрос опытных пользователей Firebird “А не проще ли было использовать встроенные в Firebird функции и COLLATIONS?” отвечу – в данном случае не проще. Даже несмотря на то, что встроенные функции работают раз в шесть быстрее.

Хозяйке на заметку, для Delphi и pascal существует готовая обёртка к ICU – ICU4PAS.

В остальном год прошёл в рутине. Сотни компонентов были разбросаны по формам. Тысячи properties были отредактированы. Написана пара десятков надстроек над прослойкой работающей с БД. Ещё больше отладки. Существенно прокачал скилл рекурсивной отладки и поиска ошибок в чужих библиотеках.

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

Личное

Сменил старую Нокию N73 на Samsung с ведроидом с сенсорным экраном и Андроидом. Работа с тач-скрином очень понравилась. Первую неделю просто игрался с телефоном даже не вставляя SIM-карту. =) За эту неделю я встретил столько примеров хорошо спроектированного UI, сколько до этого не встречал за год. Теперь активно мечтаю о ноутбуке или планшете с Виндой и тач-скрином. Винда нужна для того, чтобы можно было делать свои программы на Delphi.

Учёба

Осенью, университет Стэнфорда с большой шумихой запустил 3 бесплатных онлайн курса:

  1. Machine Learning. См. анонс на Хабре.
  2. Artifical Intelligence. Обсуждение курса на Хабре (см. комментарии).
  3. Introduction to Databases. Личные впечатления одного из участников. Подведение итогов по курсу на Хабре.

В топиках на Хабре самое интересное стоит искать в комментариях.

Часть курсов уже была доступна для для изучения на сайте Стэндфордского университета в разделе OpenClassRoom. Тот же Machine Learning, например. Тем не менее, благодаря грамотной организации, эти курсы получили бешеную популярность именно в этом году. В отличие от OpenClassRoom, для каждого курса был зарегистрирован отдельный сайт с регистрацией, заданиями и форумом. Для закрепления материала давались проверочные тесты. Была возможность изучать в простом и углублённом режиме (advanced). Во втором случае давались домашние задания, которые проверялись. Тесты и задания можно было сдавать сколько угодно раз. В курсах по Базам Данных и Искусственному Интеллекту был экзамен. По окончании курса можно было получить сертификат о прослушивании курса от преподавателя (не от университета).

Я зарегистрировался на 2 курса: Machine Learning и Introduction to Databases. Первое было действительно интересно. Базы данных взял “для галочки”. Было интересно сравнить программу моего университета и Стэнфорда. Для нормального усвоения материала авторы курсы рекомендовали тратить на обучение около 10 часов в неделю. Эта цифра очень близка к истине. Поэтому курс по базам данных я забросил почти сразу. А вот курс по Машинному обучению я постарался дотянуть до конца. Сложнее всего было заставить себя заниматься в выходной день. И если поначалу было очень интересно, то ближе к концу курса стало понятно, что применить полученные знания в деле – это не самая тривиальная задача. Впрочем, не бывает правил без исключений.  На Хабре опубликован занимательный пример применения знаний полученных в курсе по Machine Learning для отражения DDOS-атаки.

Кстати, из всех курсов, больше всего хвалят именно ML. От себя могу сказать, что материал там действительно отличный. Тесты сделаны так, что позволяют не только проверить себя, но и лучше понять материал. Для домашних заданий предлагаются удобные шаблоны. Проверка результатов автоматизирована.

В этом году Стэнфорд расширил программу курсов. Теперь их 16. (см. анонс на Хабре). После анонса на форуме по Machine Learning ученики наперебой поздравлять друг друга, прощаться с социальной жизнью, и просить не рассказывать о новых курсах своим жёнам. Вот они:

Я пока записался штук на 8. Реально, едва ли я потяну больше одного-двух. По ходу дела буду смотреть какой из курсов оставить. Занятия ещё не начались, но вот-вот должны начаться.

Английский

Продолжаю прокачивать английский язык – на этот раз, чтением художественной литературы. Этому очень поспособствовал сервис LinguaLeo.ru. Обучение там происходит так: выбирается любой интересный текст (книга, журнал, или свой текст), читается, незнакомые слова добавляются в личный словарик. Потом по этому словарику можно выполнять упражнения для лучшего запоминания слов. Это не реклама. Сервис действительно очень классный. Основной бонус в том, что английский учишь на тех текстах, которые нравится читать самому. Я таким образом прочитал “Над пропастью во ржи”, кучу рассказов О. Генри и кучу интервью. Причём половину книг, которые начинал читать на LinguaLeo заканчивал читать уже с телефона.

Игры

Игры – злейшие хронофаги этого года.

Началось всё с прочтения поста “Настольные игры: во что играют в IT-офисах?”. После один мой друг прикупил себе игру Билет на поезд, я же обзавёлся игрой Power Grid. В восторге от билета на поезд и разочаровавшись в Power Grid, я обзавёлся играми: Цитадели, Каркассон и Small world Underground. Эти игры посоветовали в магазине на вопрос “А какие хорошие игры есть, чтобы и вдвоём было интересно играть и большей компанией?”.  Мои фавориты – Цитадель и Каркассон. Эти две игры съедали практически все свободные вечера на протяжении последних двух месяцев.

Второй пожиратель времени – это эмулятор Nintendo Wii и два беспроводных Wii контроллера через Bluetooth. После первых восторгов от тенниса, бокса и прочего Wii Sports-а, определился основной фаворит – Super Mario Kart Wii. Сия хитроумная заморская забава помогла существенно укоротить скоротать прошлогоднюю морозную зиму. Эмулятор вполне шустро тянул её даже при игре вчетвером.

Планы

Сначала анализ прошлогодних и позапрошлогодних целей.

  • Lazy Delphi Builder c поддержкой Delphi XE – есть. И с XE2 вроде как должно работать.
  • В следующем году мне предстоит переводить свои проекты на работе с Delphi 6 на Delphi 2010. Буду стараться обобщать полученный опыт в блоге. Постарался и сделал. =)
  • Завести блог на английском. Есть.
  • Продолжение заметки о процессе ведения проектов в Delphi так и не было написано.
  • Фотоотчёт о моём городе (Риге).  Запал пропал =).

Планы на следующий год

Планов много, времени мало. Главный план – закончить Стэнфордские курсы, сдать на права и съездить в отпуск.

Планы по блогу я опубликовал отдельным постом. Голосуем в комментариях за самое интересное! =)

Ссылки по теме

10 комментариев:

  1. А ссылочка-то хитрая, с фрикадельками ;с)
    Но всё равно спасибо, полезная вещь :с)

    ОтветитьУдалить
    Ответы
    1. Фрикадельки лишними не бывают =)
      Вообще, если читать что-нибудь всерьёз, то фрикаделек катастрофически не хватает. 10 бесплатных штук, дающихся в день - улетают за пару страниц сложного текста.

      Удалить
  2. >>50% времени работал в Delphi 6, 50% в Delphi 2010 и оставшиеся 46% в Delphi XE
    Тонкий политический троллинг? =)
    С возвращением в строй блогеров!

    ОтветитьУдалить
    Ответы
    1. > Тонкий политический троллинг? =)
      Есть немножко. =)

      Удалить
  3. >>>Разработка проекта DeHL была официально заморожена. Причина – отсутствие явного интереса от Delphi-сообщества. Исходный код проекта доступен по BSD-лицензии. Автор готов передать проект в хорошие руки. Второй аналогичный проект того же автора – Delphi Collections пока ещё жив. Делайте выводы и пишите посты о хороших продуктах письма с благодарностями авторам используемых вами библиотек.

    К сожалению основная причина отсутствие интереса - отсутствие внятной документации и нежелание узучать библиотеку по юнит-тестам..

    ОтветитьУдалить
  4. Наконец то Вы написали итоги, а то как то совсем пропали. ))

    DORM - интересная вещица, побывали?,
    Есть у кого, мнение по поводу этого продукта?

    ОтветитьУдалить
    Ответы
    1. > Наконец то Вы написали итоги, а то как то совсем пропали. ))
      Последние дни на больничном - как раз появилось время закончить итоги.

      Dorm не пробовал. И возможно даже и не попробую. У меня 99% всех существующих проектов завязаны на стандартные датасеты-дбгриды. Переводить на новый фреймворк слишком трудозатратно. А вводить дополнительный фреймворк - имхо лишнее усложнение кода. А просто так изучать нет времени.

      Удалить
  5. Два новых 6-недельных курса на http://www.udacity.com/ стартуют 20 февраля
    CS101: Building a Search Engine
    CS373: Programming a Robotic Car
    с возможностью задать вопросы инструктору через Google Hangout. Вторая волна из серии 8 курсов "Coming 2012" начнется в середине апреля, и будет продолжаться с 8-недельными интервалами. Идея - сделать всю программу Computer Science онлайн. Взято с http://www.i-programmer.info/news/150-training-a-education/3729-online-computer-science-education-for-free.html

    ОтветитьУдалить
  6. >>>>Vlad
    >>>>С возвращением в строй блогеров!

    Однозначно!

    >>В следующем году мне предстоит переводить свои проекты на работе с Delphi 6 на Delphi 2010.

    Почему Delphi 6, а не 7?
    Почему 2010, а не XE2?

    Брат, тебе верят. Что так?

    ОтветитьУдалить
    Ответы
    1. >Почему Delphi 6, а не 7?
      >Почему 2010, а не XE2?

      Если вкратце, моя контора экономит на том, что не является жизненно необходимым. Мы не покупаем каждый год новый апдейт Delphi + всех необходимых библиотек.

      Длинная версия:
      Delphi 6. Исторически. У нас была лицензия У меня примерно 400 000 строк кода в 2х проектах. Из них примерно 150 000 строк в сторонней библиотеке, которую авторы забросили ещё до выхода Delphi 7. В проектах используется скриптовый pascal движок и дизайнер форм, с помощью которых сделано огромное количество всякой всячины. На Delphi 6 всё протестировано и работает. Портировать всё это на Delphi 7 это мало того, что большой труд, так ещё и тестировать всё потом.

      Delphi 2010 - пока что на работе была куплена только эта версия. К сожалению.

      Удалить

Постоянные читатели