Блог

Gantt Chart

На последней работе я занимался разработкой компонента для визуализации диаграммы Гантта (Gantt Chart). Подобные диаграммы используются в приложениях класса менеджеров проектов или планировании. Если ты знаком с Microsoft Projects, то работал с диаграммами, когда планировал время выполнения задач.

Мне посчастливилось разрабатывать этот компонент на Delphi. Жаль, что я не сохранил себе исходные коды (я никогда не беру исходные коды на работах, где работаю, даже написанные мной, потому что они принадлежат работодателю), но с другой стороны – это даже плюс. Недавно я решил написать собственную реализацию этого компонента с нуля и под .NET. Сегодня я выложил первую бета версию для всеобщего юзания - .NET Gantt Control.

К чему я это? Вот не знаю почему, но на .NET мне намного удобнее проектировать подобные вещи. Не знаю почему, но мне интереснее именно .NET разработка. Я так включился в работу, что написал весь этот код за четыре вечера.

Когда я разрабатывал этот же компонент на Delphi, то я получил достаточно интересный опыт. Тогда я вообще не знал, что такое диаграмма Ганта, как она выглядит и как ее можно

Gantt Chart Control .NET Финальный релиз

Вчера я пришел к выводу, что Gantt Chart Control .NET готов к тому, чтобы назваться первой финальной версией. Разработка компонента будет продолжаться и его функции будут наращиваться, ведь этот процесс бесконечный. Но это не значит, что нужно откладывать релиз. Поэтому вчера я его выложил в свободный для тестирования доступ. Ну а чтобы пользователи тоже не находились в постоянном ожидании новых функций, я как всегда предлагаю год бесплатных обновлений. Более подробно о компоненте на английской версии сайта: Gantt Chart Control .NET или на русской версии: Диаграмма Гантта

Что еще можно сказать? Из последних новостей проектов - я закрыл форум на сайте Hackish Code, причем на обеих версиях и немного улучшил (на мой вкус) дизайн.

Кучу заметок написал на блоге Смешной мир. Все, что не касается ИТ я закидываю туда.

Что такое .NET Framework?

Сегодня получил простой но очень интересный вопрос: Насколько я понимаю С# для платформы .NET. Я не особо понимаю что это за платформа такая. Извиняюсь за глупый вопрос: в обычной виндовс программа, созданная на языке С# будет работать? Для этого кажется нужно только установить NET Framework? (орфография не мой :))

Классические программы используют функции Windows. Преимущество:

1. Программа выполняет код ОС напрямую и работает достаточно быстро

Недостатки Win32:

1. Код привязан к оборудованию. Проблемы решаются сложным введением HAL уровня, который становится прослойкой между кодом системы не связанным с оборудованием и кодом привязанным к оборудованию. Этот уровень уже есть в ОС Windows и кажется в Linux, но реализован не идеально, поэтому классические программы все равно привязаны к определенному железу. Если программа скомпилирована для Intel процессора, то она не сможет работать на абсолютно другой архитектуре.

Перетягивание Drag&Drop в .NET Framework

Недавно от одного из пользователей компонента Heapar .NET FileListView Control получил вопрос о том, как можно создать перетаскивание файлов в этом компоненте. Я пообещал написать небольщую заметку и рассписать, как реализовать эту возможность, ведь это очень просто.

Сказано, сделано, и конечно же опубликовано на блоге. Я думаю, что заметка будет интересна все программистам, использующим .NET Framework, потому что в ней описываются общие принципы, которые используются при перетягивании в большинстве случаев. Заметку можно прочитать здесь: Drag&Drop в.NET на примере FileListView.

Впервые за Python

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

У нас на фирме все сайты пишутся на PHP и как я понял все именно на этом языке предпочитают писать. Самое интересное, что модули тестов пишутся на Python, хотя selenium поддерживает PHP. Возможно тот человек, который первый вводил тестирование больше любил именно питона и просто для примера воспользовался им, но теперь все пишут только на нех. Хотя кто там все, нас всего три человека заниматся модулями тестирования.

Сегодня мне дали задание написать модуль для HTML странички с формой, вокруг которой в ближайшее время начнет строится небольшой сайт. Не буду же я писать свой единственный небольшой модуль на PHP, поэтому пришлось тоже выбирать Python и разбираться в нем. Изучать язык подробно я не собираюсь, потому что за день работы не получил удовлетворения от программирования на нем, но основы знать придется, чтобы дальше писать тести.

Лень писать однообразный код

Меня регулярно посещает лень, когда десять раз приходится писать один и тот же код. Чтобы не повторяться, я очень часто пишу классы или хелперы, которые помогают в жизни не решать по 10 раз одну и ту же задачу. Вот так у меня есть модуль, который помогает мне создавать RSS ленты для моих сайтов, созданных на PHP, поэтому все PHP сайты содержат ленту. А вот на ASP.NET небыло ничего подобного, а в очередной раз писать хелпер, пусть и на другом языке - лень и скучно, поэтому абсолютно все мои сайты, которые были созданы на ASP.NET не содержат RSS лент.

Вчера собрался с силами и написал RSS ленту для сайта своей жены - Блондинка в Канаде. Она пишет не так часто и поэтому лента уже давно была необходима, чтобы не приходилось постоянно туда заглядывать.

DirectX 11 SDK за август

В Августе вышла очередная версия DirectX SDK, которая уже серьезно поддерживает DirectX 11. Я попытался с ней разобраться, но получил облом, потому что в Vista не работает большинство функций. Примеры, которые идут с SDK не запускаются, разве что абсолютно пустой проект. Я подождал месяц и позавчера скачал Windows 7 и обновил систему. Теперь DirectX11 работает, но тормозит, и это мягко сказано. После запуска примеров он стоит как вкопанный.

Самое интересное, что тормозят даже те примеры, что с использованием DirectX 10 работают прекрасно и летают на моем GForce 8400. А ведь у меня видеокарта достаточно мощная, специально брал такую с запасом, но драйвера до сих пор поддерживают только 10-ю версию. Я даже скачал обновленные драйвера специально для Windows 7, но и они скорости не прибавили. Самое интересное, что при запуске примеров появляется сообщение – "это устройство поддерживает DirectX 11, но работать будет медленно". Это как? Как можно поддерживать и работать медленно? Это уже не поддержка, это издевательство. В итоге уже месяц занимаюсь сексом с компьютером, но кроме введения для книги "Программирование DirectX на C++" ничего не написал.

На сколько я слышал, DirectX 11 не должен был изменится так сильно, как это произошло при выходе DirectX 10. Ведь 11-я версия даже способна работать на Vista, просто требует обновления кучи библиотек, а эти библиотеки ставятся только на версию Ultimate. Что такого умудрились сделать в MS, что так серьезно затормозили уже давно отлаженные функции? Мне интересно, почему эти же функции в DrectX 10 свистят? До официального выхода Windows 7 остались считанные дни, а основной интерфейс явно далек от идеала.

Быстрые и простые отчеты

Сегодня я выложил новую версию библиотеки компонентов Heapar Essential Library .NET. В нем появился новый компонент Small Report Renderer, с помощью которого можно создавать простые и удобные отчеты. Компонент будет удобен и полезен в тех случаях, когда пользователю нужно отобразить какие-то данные, которые содержат сразу и таблицы и текст.

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

Компонент разрабатыался для собственных нужд и уже в ближайшее время будет использоваться. Вот так будет выглядеть Утилита Ping в следующей версии CyD Network Utilities - Security tools. Благодаря компоненту Small Report Renderer результат пингования выглядит лучше. Хотя картинка на сайте есть, программа реально пока не содержит обновленного модуля. Я хочу еще немного улучить некоторые модули и к выходным закачаю.

Visual Studio 2010 не запускается на Windows 7

После установки Windows 7 у меня до сих пор не работает Visual Studio 2010, поэтому разработка D Photo Workshop замерзла и окочанела в зародыше. Все попытки запустить или переустановить Visual Studio 2010 закончились неудачно, потому что программа категорически не видит .NET финальной версии и упорно ищет бету. Судя по отзывам в интернете, чтобы запустить среду разработки, мне нужно удалить .NET 4.0 и впаять вместо него бета версию. Мне этого делать не хочется, поэтому чижу, жужжу и жду когда же выйдет финальная версия Visual Studio 2010. Так как до нужного 10-го года осталось совсем чуть-чуть, а программы Microsoft в основном выходят до указанного в маркировке года, то надеюсь, что ждать придется не долго.

Вообще-то странно, что возникла такая проблема загрузки среды разработки на полноценном .NET. Единственное объяснение, которое я могу дать - разработчики таким образом пытаются защитить программу от нелегального использования с полноценным .NET. Если я прав, то ход вполне оправданный, ведь Visual Studio 2010 тоже бетта и не финальная версия.

Timeout соединения у MySQL

Я постоянно выключаю компьютер и у никогда не обращал внимание на то, что у MySQL есть таймаут соедидинения. Вчера пришел на работу, открыл крыжку MacBook Pro, а в консоли осталась запущенной клиентская mysql. Мне как раз нужно было добавить в одну из таблиц строку, я вбил INSERT запрос и вижу:

No connection. Trying to reconnect...
Connection id:    3777
Current database: *** NONE ***

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне