Обновлено 2014.02.21 22:34
Подборка ссылок на лучшие публикации по Delphi за 2013 год.
Аналогичные подборки за предыдущие годы:
Читать дальше..
Блог Delphi-программиста. Обзоры инструментов и экспертов для Delphi. Описание JCL, JVCL, cnWizards. Дженерики в Delphi. Дневник разработки Lazy Delphi Builder. Переводы.
В тихом саду здравомыслияЧогьям Трунгпа РИНПОЧЕ
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Обновлено 2014.02.21 22:34
Подборка ссылок на лучшие публикации по Delphi за 2013 год.
Аналогичные подборки за предыдущие годы:
Отправил свою программу на конкурс. Саму программу показывать пока не хочу. А хочу поделиться своими впечатлениями от использования Delphi XE5 и Firemonkey.
Deployment manager и папки. С этим тоже пришлось повозиться прежде чем удалось понять какие надо указывать пути в Deployment manager и как потом найти эти файлы в программе. Пришлось провести небольшое исследование. О нём напишу позже, в отдельном посте. Вот только так и не понял, как же из приложения определить путь до корня SdCard. Также не понравился UI в Deployment manager-e. Редактирование пары десятков файлов сделано не очень удобно, хотя к слову сказать просто добавить пачку файлов довольно легко.
Сразу уточню, что я хотел недокументированного. Искал легкий способ добавления/редактирования файлов в Deployment manager из консоли. Не получилось, так файлы добавленные через Deployment manager поначалу сохраняются в .dproj файле, хотя в папке проекта и присутствует отдельный файл .deployproj. И я так и не понял в какой момент файлы переносятся из .dproj в .deployproj файл. Вот кстати наткнулся на пост о похожем исследовании от Павла Алхимова “DeployFolder - Развёртывание мобильного подкаталога”.
Все лучшие публикации по Delphi за 2012 год в одном месте. Радует, что качество публикаций растёт с каждым годом.
Рад видеть среди новых авторов Александра Багеля (Rouse_), чьи советы и наработки опубликованные на форумах не раз мне помогали. Также, рад видеть новых авторов из Embarcadero (и особенно Сергея Рощина).
Отдельно рекомендую обратить внимание на:
Подборки ссылок за предыдущие годы:
Подборка лучших материалов по Delphi на русском языке за 2011. В сравнении с прошлым годом, появилось намного больше качественных публикаций. Смотрите также: Самые интересные публикации 2009 года и Самое интересное в Delphi-блогах за 2010 год.
Особенно рекомендую почитать переводы статей Hallvard-а Vassbotn-а, и обратить внимание на раздел “Инструменты для Delphi”.
Голосуем в комментариях за самые интересные темы. =)
p.s. не обещаю что напишу, но обещаю взять на заметку.
Пришла пора подвести итоги прошедшего года и набросать планы на следующий.
2011-й год был очень загруженным. К концу лета навалилось очень много работы и времени стало катастрофически не хватать. Ни на ведение своего блога ни на чтение чужих. Не следил за новостями ни читал обзоры долгожданной Delphi XE2.
В этом году случилось много всего. В первую очередь Delphi XE2 (долгожданная поддержка 64-бит, кроссплатформенность, новая библиотека для создания кроссплатформенных приложений FireMonkey, скины в VCL (обзор в блоге Влада), Live Bindings, Fast Report в комплекте с Delphi и многое другое). Я успел немного поиграться с одной из бета-версий, а со стабильной даже и не работал – не было времени. 50% времени работал в Delphi 6, 50% в Delphi 2010 и оставшиеся 46% в Delphi XE. Переход на XE2 тормозился отсутствием нужных библиотек. Но первое впечатление от Firemonkey – вау, это обалденно!
В этому же году Embarcadero предоставила Delphi разработчикам возможность подтвердить свои навыки прохождением тестирования и получением сертификата. Подробнее, о сертификации читайте у Александра Алексеева. О прохождении тестирования и получении сертификата в этом году не писал только ленивый, то бишь я.
Это будет пост ни о чём. На 80% оффтопик. На 20% – подведение итогов. whatever.
Интересно, кто сейчас читает мой блог? Как вы оцениваете работу блога? Аналитика от гугла показывает, что в день в среднем происходит около 250 визитов. Но я так понимаю, что львиная доля большая часть этих визитёров – какие-то веб-сервисы. Поэтому хотелось бы составить примерное представление, о числе живых читателей. Оставьте комментарий пожалуйста.
Здесь же можно написать свои пожелания по блогу, если таковые есть. Давно я не предлагал пообщаться в комментах. Вот давайте и пообщаемся как-нибудь. Вот, например, скажите, используете ли вы ModelMaker Code eXplorer? А пробовали ли работать с Lazy Delphi Builder, и каковы впечатления?
О блоге. Сделал отдельную страничку со ссылками на все известные мне статьи о JCL и JVCL.
Влад тут протестировал работу с Google Online Page Speed API из Delphi и зело заинтриговал. Я не знал о такой штуке. Но раз есть API, значит должен быть и сервис. Первый же поисковый запрос вывел на страницу Google Online Page Speed. Интересная штука. Этот инструмент позволяет провести анализ сайта с точки зрения быстродействия, выдаёт список рекомендаций по ускорению работы и даёт оценку быстродействия сайту. Где-то год назад чтобы проверить быстродействие я устанавливал плагин Y!Slow в Firefox. Как оказалось такая же штука уже встроена в Google Chrome. У меня, кстати получилось набрать 86 баллов из 100 (больше - лучше).
Самое интересное в Delphi блогах за 2010 год.
Смотрите также: Самые интересные публикации 2009 года и Самое интересное в Delphi блогах за 2011 год.
В этом году количество материалов в блогах по Delphi просто зашкаливает. Честно скажу, я читал только малую часть. Посты для итогов 2010 года я отбирал менее критично чем в прошлом году. В этот пост вошли более 150 статей.
Я тут подумал, что хорошо бы подвести итоги по прошедшему 2010 году (пусть уже и март на дворе). В прошлом году, я начинал подводить итоги, с мыслью “год, как год – ничего особо и не сделал”, но когда начал вспоминать – оказалось, что список получился весьма внушительный. Этот год прошёл проще. Большая часть событий коснулась сферы личной жизни. В работе и блогосфере не было почти никаких изменений. Последние полгода даже TDelphi-блог был заброшен.
Завёл отдельный бложик для понравившейся музыки. Музыку выкладываю в виде клипов с Youtube. Что-то типа записной книжки, чтобы изредка заходить и переслушивать. Адрес: http://muzyaka.blogspot.com/.
Я уже писал о своём намерении получить от блога какую-то финансовую отдачу и даже подводил в мае неутешительные итоги. Но летом ситуация изменилась. На рекламе в блоге (в основном ) удалось заработать примерно 3500 рублей. Эта сумма была бы больше, если б отпуск не затянулся=). Для заработка за год, сумма совсем несерьёзная. Но зато это оказалось для меня хорошим мотиватором к написанию постов. А вот по предложению помощи по переводу программ с BDE на FibPlus заказов не поступало.
В этом году в блоге было опубликовано больше всего статей не связанных с Delphi.
По сравнению с прошлым годом, число посещений в TDelphi-блоге увеличилось почти в 2 раза (см. картинку ниже). Блог переехал на Блогспот в феврале 2009, и первые полгода просто набирал посетителей.
Это продолжение публикации о учёбе в университете. Первая часть (осенний семестр последнего курса) доступна по ссылке: Итоги осеннего семестра в RTU, по программе Информационные технологии.
Я конечно зря так долго оттягивал написание этого поста, ведь с момента окончания курса прошёл ровно год, и я успел подзабыть большую часть предметов.
На втором курсе у меня тоже был предмет с похожим названием. Это был выборный предмет и там мы проходили экспертные системы. Курс "Основ ИИ" был куда серъёзнее.
Краткое содержание курса: история ИИ, пространства состояний, поиск в пространствах, эвристика, схемы отображения знаний и сценарии, логика (предикаты и все-все-все). К сожалению, логике было отведено не так много времени и у меня осталось ощущение скомканности от этой темы.
Сейчас, из этого курса я помню только использование пространства состояний для реализации ИИ в играх. Помню, что практические работы включали в себя решение примеров и не требовали программирования. Не думаю, что эти знания мне когда-нибудь пригодятся, но для расширения кругозора, этот предмет мне показался полезным.
Пару дней назад, я случайно включил в блоге премодерацию комментариев, и забыл настроить уведомления. Приношу своё извинение комментаторам, чьи комментарии не были опубликованы своевременно. Сейчас премодерация снова отключена.
Сегодня наконец настроил отображение favicon-ки в Google Chrome и Firefox.
В январе этого года, я начал попытки монетизации этого блога. Пришло время подвести кое-какие итоги.
Borland
Inprise Borland Codegear Embarcadero в этом году анонсировали свои планы по развитию Delphi. В числе планов была упомянута взбудоражившая блогосферу кроссплатформенность.
В этом году вышла первая версия Delphi разработанная в Embarcadero – Delphi 2010. Эта версия Delphi характеризовалась большим количеством исправлений ошибок, некоторые из которых тянулись ещё со времён Delphi 7. Но стабильность – не единственный плюс этой версии, посмотрите также и на внушительный список нововведений в Delphi 2010.
В этом году Embarcadero продемонстрировали, что в отличие от Borland-a, они готовы к диалогу с Delphi-сообществом. В этом году Embarcadero провело несколько опросов дающих пользователям возможность оценить нововведения в последних версиях IDE, ожидаемые новинки, так и поддержку, и схемы лицензирования.
Небольшое перечисление заслуг подведение итогов за последние месяцы работы.
Я отложил создание инсталляции в Wix-e, решив дождаться возвращения нашего админа, который делал предыдущую инсталляцию, чтобы узнать, какие дополнительные утилиты, помимо программы нужно включить в установщик.
Всю неделю я занимался приведением в порядок проекта, перед переводом с BDE на FibPlus. Поиск дублирующегося кода, замена TQuery на TDataset, где только можно и рефакторинг, рефакторинг, рефакторинг.[1]
[1] О том, что такое рефакторинг и когда он нужен, можно прочитать в классической книге Мартина Фаулера - Рефакторинг. Улучшение существующего кода. У меня есть зачитанные до дыр распечатки некоторых глав, и это одна из немногих книг, которые я хочу заиметь в бумажном варианте.
Продукты для бух. учёта нашей фирмы – чертвоски конфигурируемы. Клиент говорит, что ему нужно, а наши сотрудники собирают для него необходимую конфигурацию. Это делает наши продукты действительно удобными. Ходят слухи, даже о том, что люди привыкшие работать с нашими программами, больше не хотят работать с продуктами конкурентов. Всё это очень мило, но благодаря такому подходу, наши продукты до сих пор не имеют нормальной инсталляции. Точнее имеют, но она была собрана давно на Inno Setup, и используется только для базовой установки. И вот, один из клиентов выдвинул требование, предоставить ему установщик в формате MSI. Если кому-нибудь интересно, я как-нибудь напишу псто о том, почему MSI лучше, чем InnoSetup или Nsis.
Это я плавно подхожу к тому, чтобы начать жаловаться и ругаться. =) Всю неделю я провозился с созданием MSI-инсталляции для наших продуктов. Я выкурил сотни страниц мануалов по Windows Installer и open-source набору инструментов по созданию MSI-файлов – Windows Installer XML (WiX) toolset. В броузере у меня постоянно открыто штук 30 закладок с разными статьями и форумами по Wix. За эту неделю я узнал о процессе установки больше чем за всю предыдущую жизнь. Временами я даже начинал ненавидеть формат XML, за излишнюю придирчивость к комментариям.
И сейчас мне очень хочется написать что-то вроде: но наконец я закончил эту чертвоу инсталляцию. Но это не так. У меня уже есть инсталляха устанавливающая программу, копирующая конфиги и выдающая нужные права, в ней есть даже один hand-made диалог. Но сделать осталось ещё немало. Для начала надо написать DLL-ку для этой инсталляхи, добавляющую нужную запись в hosts-файл. Честно говоря, я уже начинаю жалеть о том, что взялся за это задание. Я оптимистично полагал, что сделаю всё за пару дней, – а на деле получается, что на это уйдёт как минимум 2 недели.
Может кто-нибудь из читателей имел опыт работы с Wix-ом, и может ответить на пару вопросов? Полное описание того, что нужно сделать и вопросы по теме заданы здесь: http://forum.sources.ru/index.php?showtopic=270846
Итак, я наконец ликвидировал в университете свои хвосты за первый семестр последнего курса, теперь буду отращивать новые и писать бакалаврскую. =)
Заметил, что к учёбе сейчас стал относиться не так как раньше. Помню когда поступал в университет после школы – совсем не представлял как и где буду использовать полученные знания. Соответственно, предметы, которые не относились к программированию, в основном сдавались “для галочки”. Восстанавливаясь на обучение в этом году, я делал это для той же галочки, но ликвидируя хвосты, понял, что учиться стало намного интереснее.
Я хочу подвести здесь некоторые итоги по предметам, чтобы не забыть за что же я платил деньги. =)
Предмет познакомил меня с bash-скриптами, регулярными выражениями, Linux-загрузчиками lilo и grub, и поиском решений к задачам о синхронизации потоков. Несколько лекций было посвящено MS-DOS(память, загрузчики, autoexec.bat и config.sys) – а это по-моему уже совсем неактуально. Было бы здорово, если бы эту часть заменили лекциями об операционках для портативных компьютеров и мобильных телефонов.
Большие БД мы проходили на примере Oracle. Преподаватель предоставил потрясающие слайды, дающие исчерпывающее представление о работе с СУБД Oracle. Чтобы не писать кучу объёмных отчётов по этому предмету, я договорился с преподом, что проведу исследование о механизмах доступа к БД Oracle из Delphi. Я собрал и установил все доступные компоненты для работы с этой БД, и провёл несколько тестов, с целью выяснить, с какими типами данных Oracle Delphi умеет работать. В результате у меня получился отчёт на 50 страниц. А результаты исследования получились довольно неожиданными, и, как мне сейчас кажется не совсем корректными(часть информации полученной мной, противоречит заявленной на официальных сайтах). Именно из-за этой некорректности, я пока не публикую эти результаты в этом блоге.:( Кстати, посты Стандартный DbGrid с многострочными заголовками и Сравнительная таблица технологий доступа к СУБД Oracle из Delphi являются побочным продуктом этого исследования.:) Я также решил, что было бы хорошо развить эту тему, и выбрал её в качестве основы для бакалаврской работы.
Интересный предмет, на котором нам рассказывали о методах принятия решений, таких как decision matrix, decision trees. Я не нашёл в интернете информации по этому предмету на русском языке. Эти методы довольно замечательно вписываются в курс Управление Проектами. Побочным продуктом этого предмета стала одна небольшая программка, по составлению расписания мероприятий с учётом в ограничения ресурсов. Изначально я собирался выложить программку вместе с исходным кодом, но потом, оценив трудозатраты, передумал. Думаю, что из этой программки получится отличный “планировщик”.
С УП мне пришлось столкнуться ещё когда я работал над первым продуктом на своей текущей работе – там как раз нужно было реализовать модуль управления типовыми проектами в дополнение к модулю планирования ресурсов. Этот предмет для меня особенно важен, ибо кодерство-кодерством, а карьеру всё-таки нужно делать, и понимание принципов управления проектами в этом плане будет существенным подспорьем. Поначалу я собирался связать тему бакалаврской работы с УП, и даже успел прочитать весь архив сообщества ru_pm в livejournal. =)
Генетические алгоритмы – интересный подход к решению задач, с которыми я на практике ни разу не сталкивался. Забавно, что это был второй выборный предмет, связанный с генетическими алгоритмами, который я выбирал, так что в этот раз было легко, благо многое я уже знал. =) Курс включал в себя: решение задач поиска экстремума функций методами генетических алгоритмов и градиентным методам, решение задачи коммивояжера. Что не понравилось – необходимость рассчитывать вручную большие объёмы информации и написание огромного отчёта.
Решение задач о планировании спроса на основании статистических данных за предыдущие годы, решение задачи коммивояжера с помощью Logware. Решение задач о планировании организации цепочки поставок, рассчитав конечную стоимость для разных случаев организации поставки с помощью ASDN.
Практика проходила с использованием Rockwell Arena. Достаточно интересный предмет, если не обращать внимания на то, что преподавательница вела лекции так, словно её задачей было ввести студентов в транс и усыпить.