Пришла пора подвести итоги прошедшего года и набросать планы на следующий.
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, которые написаны кое-как.
Но некоторыми своими статьями я всё же доволен. Это:
- Перевод статьи Ника: Головокружительные возможности Dependency Injection и Delphi Spring. Часть 5. Основы Delphi Spring.
- Перевод статьи Кэри Дженсена “Live templates Revisited”.
- Описание ModelMaker Code eXplorer – огромный труд. Ужасно большой и, судя по статистике просмотров, ужасно неинтересный.
- Начата серия постов “Переход на Юникод”: Часть 1: Поиск стратегии. Часть 2: План перехода и сторонние библиотеки. Часть 3: Переход с Ehlib 3.6 на Ehlib 5.x.
Посещаемость блога TDelphi
В сравнении с 2010 годом, посетителей стало больше. См. снимок экрана из Google Analytics.
Interface.ru снова перепечатал у себя статью, невзирая на прямой запрет. Вот же воришки, хлебом не корми – только дай чужой контент украсть да в поисковиках вперёд оригинала вылезти.
LazyProject
- Сделал 3 релиза Lazy Delphi Builder (последняя версия - 1.5.1.185 от 11.09.2011).
- Перевёл пару постов из этого TDelphi-блога в блог на LazyProject.info.
Посещаемость LazyProject.info
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 бесплатных онлайн курса:
- Machine Learning. См. анонс на Хабре.
- Artifical Intelligence. Обсуждение курса на Хабре (см. комментарии).
- Introduction to Databases. Личные впечатления одного из участников. Подведение итогов по курсу на Хабре.
В топиках на Хабре самое интересное стоит искать в комментариях.
Часть курсов уже была доступна для для изучения на сайте Стэндфордского университета в разделе OpenClassRoom. Тот же Machine Learning, например. Тем не менее, благодаря грамотной организации, эти курсы получили бешеную популярность именно в этом году. В отличие от OpenClassRoom, для каждого курса был зарегистрирован отдельный сайт с регистрацией, заданиями и форумом. Для закрепления материала давались проверочные тесты. Была возможность изучать в простом и углублённом режиме (advanced). Во втором случае давались домашние задания, которые проверялись. Тесты и задания можно было сдавать сколько угодно раз. В курсах по Базам Данных и Искусственному Интеллекту был экзамен. По окончании курса можно было получить сертификат о прослушивании курса от преподавателя (не от университета).
Я зарегистрировался на 2 курса: Machine Learning и Introduction to Databases. Первое было действительно интересно. Базы данных взял “для галочки”. Было интересно сравнить программу моего университета и Стэнфорда. Для нормального усвоения материала авторы курсы рекомендовали тратить на обучение около 10 часов в неделю. Эта цифра очень близка к истине. Поэтому курс по базам данных я забросил почти сразу. А вот курс по Машинному обучению я постарался дотянуть до конца. Сложнее всего было заставить себя заниматься в выходной день. И если поначалу было очень интересно, то ближе к концу курса стало понятно, что применить полученные знания в деле – это не самая тривиальная задача. Впрочем, не бывает правил без исключений. На Хабре опубликован занимательный пример применения знаний полученных в курсе по Machine Learning для отражения DDOS-атаки.
Кстати, из всех курсов, больше всего хвалят именно ML. От себя могу сказать, что материал там действительно отличный. Тесты сделаны так, что позволяют не только проверить себя, но и лучше понять материал. Для домашних заданий предлагаются удобные шаблоны. Проверка результатов автоматизирована.
В этом году Стэнфорд расширил программу курсов. Теперь их 16. (см. анонс на Хабре). После анонса на форуме по Machine Learning ученики наперебой поздравлять друг друга, прощаться с социальной жизнью, и просить не рассказывать о новых курсах своим жёнам. Вот они:
- Предпринимательство:
- Lean Launchpad – о стартапах. Хочу.
- Technology Entrepreneurship – о стартапах. Хочу.
- Медицина: Anatomy
- Civil Engineering: Making Green Buildings
- Electrical Engr: Information Theory
- Complex Systems: Model Thinking
- Computer Science:
- CS 101 – основы компьютерных наук. Очень забавный преподаватель (см. ролик).
- Machine Learning
- Software as a Service – интересно. Хочу.
- Human-Computer Interaction – проектирование UI. Хочу.
- Natural Language Processing – хорошее дополнение к курсам AI и ML.
- Game Theory
- Probabilistic Graphical Models
- Cryptography – любопытно.
- Design and Analysis of Algorithms I – любопытно.
- Computer Security – любопытно.
Я пока записался штук на 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 бесплатных штук, дающихся в день - улетают за пару страниц сложного текста.
>>50% времени работал в Delphi 6, 50% в Delphi 2010 и оставшиеся 46% в Delphi XE
ОтветитьУдалитьТонкий политический троллинг? =)
С возвращением в строй блогеров!
> Тонкий политический троллинг? =)
УдалитьЕсть немножко. =)
>>>Разработка проекта DeHL была официально заморожена. Причина – отсутствие явного интереса от Delphi-сообщества. Исходный код проекта доступен по BSD-лицензии. Автор готов передать проект в хорошие руки. Второй аналогичный проект того же автора – Delphi Collections пока ещё жив. Делайте выводы и пишите посты о хороших продуктах письма с благодарностями авторам используемых вами библиотек.
ОтветитьУдалитьК сожалению основная причина отсутствие интереса - отсутствие внятной документации и нежелание узучать библиотеку по юнит-тестам..
Наконец то Вы написали итоги, а то как то совсем пропали. ))
ОтветитьУдалитьDORM - интересная вещица, побывали?,
Есть у кого, мнение по поводу этого продукта?
> Наконец то Вы написали итоги, а то как то совсем пропали. ))
УдалитьПоследние дни на больничном - как раз появилось время закончить итоги.
Dorm не пробовал. И возможно даже и не попробую. У меня 99% всех существующих проектов завязаны на стандартные датасеты-дбгриды. Переводить на новый фреймворк слишком трудозатратно. А вводить дополнительный фреймворк - имхо лишнее усложнение кода. А просто так изучать нет времени.
Два новых 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
>>>>Vlad
ОтветитьУдалить>>>>С возвращением в строй блогеров!
Однозначно!
>>В следующем году мне предстоит переводить свои проекты на работе с Delphi 6 на Delphi 2010.
Почему Delphi 6, а не 7?
Почему 2010, а не XE2?
Брат, тебе верят. Что так?
>Почему Delphi 6, а не 7?
Удалить>Почему 2010, а не XE2?
Если вкратце, моя контора экономит на том, что не является жизненно необходимым. Мы не покупаем каждый год новый апдейт Delphi + всех необходимых библиотек.
Длинная версия:
Delphi 6. Исторически. У нас была лицензия У меня примерно 400 000 строк кода в 2х проектах. Из них примерно 150 000 строк в сторонней библиотеке, которую авторы забросили ещё до выхода Delphi 7. В проектах используется скриптовый pascal движок и дизайнер форм, с помощью которых сделано огромное количество всякой всячины. На Delphi 6 всё протестировано и работает. Портировать всё это на Delphi 7 это мало того, что большой труд, так ещё и тестировать всё потом.
Delphi 2010 - пока что на работе была куплена только эта версия. К сожалению.