вторник, 10 ноября 2009 г.

Google Developer Day 2009

Сегодня я посетил Google Developer Day 2009 в Москве. Конференция была полна сюрпризов с самого начала. Когда начался прием заявок на участие, программа выступлений отсутствовала. Так что заявку я подавал вслепую, с надеждой на Google.
Проходил GDD2009 с размахом. Целый день, около 12 часов. Сняли кинотеатр Октябрь на Новом Арбате. Целиком. Одновременно работало 5 залов и еще в уголке работники Google общались с людьми лично.
Несмотря на предварительную регистрацию на сайте, организаторы явно не были готовы к большому количеству участников. Сказали, что рассчитывали на 1000 человек, а пришло более полутора. Регистрация пришедших затянулась до обеда. Очередь на вход тянулась с улицы. Тем, кто честно сдал анкету в конце мероприятия, футболок не досталось.
Доклады тоже были не на высоте. На выступлении о привлечении посетителей на сайты просто рассказали о некоторых инструментах для веб-мастеров, таких как Google Analytics. На докладе о том, как писать API, Вадим Герасимов просто зачитал слайды, переводя их с английского языка.

четверг, 5 ноября 2009 г.

Аккуратнее с совмещением противоположностей!

Я использую язык со строгой типизацией и проверкой всего, что только можно во время компиляции. С++ - это современный высокоуровневый ассемблер. Позволяет делать все, что захочет автор. Но накладные расходы для разарботчика довольно высоки. Разработка даже простых программ затягивается и усложняется.
Возникает соблазн сделать что-нибудь просто работающее. На помощь приходят скриптовые языки и библиотеки, позволяющие использовать динамическую типизацию без необходимости писать на языке, отличном от C++. Qt предоставляет прекрасный механизм слотов и сигналов. Ими можно соединять любые объекты, унаследованные от QObject. Просто и элегантно.
Однако увлекшись замечаешь, что гибкость не дается даром. Ошибки, связанные с неправильным вызовом неправильных методов, накапливающиеся при разработке, уже не обнаруживаются компиляторо. Они ждут своего часа затаившись в коде. Обнаружить их можно только тестированием.
Из этого можно сделать вывод, что пытаясь совместить противопольжные технологии, нужно быть предельно осторожным и избегать их сильного смешения. Так, совместив динамическую и статическую типизацию можно лишиться достоинств обеих, если применять сигналы и слоты в программе на Qt сверх меры.

среда, 4 ноября 2009 г.

Не используйте один и тот же класс для двух разных задач

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

понедельник, 2 ноября 2009 г.

Казаться и быть

Идея сформулирована. Сделан первый прототип программы. Кажется, осталось ее чуть-чуть доработать, и она будет готова. Но получается, что основная часть разработки еще впереди. Эх, в каком же блаженном неведении находятся те, кто думают, что главное – придумать идею, а уж потом… На моей практике самым сложным оказывается именно реализация, доведение до конца.

понедельник, 27 июля 2009 г.

Хостингу SpaceWeb не нужны деньги...

Вот уже 2 недели я пытаюсь воспользоваться услугами хостинга SpaceWeb. но, к сожалению, это оказалось весьма непросто. Для начала с момента заполнения формы на сайте, до момента получения информации о создании аккаунта прошло не обещанные 15 минут, а около суток. Временный домен на dallas.spaceweb.ru заработал только на четвертый день. Django отказался устанавливаться в корневую папку сайта. Потом я дважды пытался оплатить хостинг с пластиковой карты. Оба платежа не прошли, а оператор SpaceWeb отослал меня в CyberPlat, где ничего путного не сказали. Только переключали в режим ожидания с последующим отключением...

пятница, 10 июля 2009 г.

unicode != wide characters

Бытует мнение, что для использования unicode в программе нужно просто перейти с обычных строк на широкие. То есть с string на wstring, с char на wchar_t. Но юникод - это способ кодирования символов, в который входит несколько кодировок (UTF-8, UTF-16, URF-32).
Чтобы работать с одной из этих кодировок нужно использовать специальные библиотеки вроде iconv.
Замена обычных символов широкими к кодировке прямого отношения не имеет и лишь застявляет компилятор выделять больше памяти под каждый символ, а программиста писать в большом количестве "w" перед именами типов и функций, и "L" перед строковыми константами.
По документации к c++ кодировку символов можно установить как часть локали, но в под Windows у меня получилось установить только два вида локалей: "C" и национальные 8-битные, например "Russian_Russia.1251".

вторник, 16 июня 2009 г.

Обучение для разработчиков

Развитие себя как разработчика программного обеспечения я начал с чтения. Читал много и разного. Первое время казалось, что все написано как по-китайски. Но, спустя несколько месяцев регулярного и упорного чтения, все вдруг стало понятно, и даже некоторые термины, которые поначалу вызывали негодование и непонимание, постепенно стали для меня естественными. Я учился программированию в школе, на курсах, в ВУЗе. И более всего дома.

Как-то раз во время каникул я окунулся в программирование, и написал первую самостоятельную программу. Это была игра в крестики-нолики. Хотя заняло это около месяца, это дало мне толчок в развитии больший, чем несколько лет чтения книжек до этого. Конечно, без книг и справки под рукой эта программа была бы мне не по силам. Так я и выработал (скорее, конечно, выбрал) путь развития - практика.

Как стать хорошим разработчиком? Мой ответ прост и сложен одновременно. Разрабатывать программы. Я имею ввиду не просто участвовать в разработке чьего-то продукта, а создавать свой. Быть сам себе инвестором, директором, project менеджером, и аутсорсером.

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

четверг, 8 января 2009 г.

Знакомство

«В жизни нет иного смысла, кроме того, какой человек сам придает ей, раскрывая свои силы, живя плодотворно»
Эрих Фромм

Важнейшим делом при знакомстве считаю выяснить основные ценности. Это основа принятия решений и составления планов. Мои ценности таковы:
  1. Любовь и Семья;
  2. Самореализация и Свобода;
  3. Здоровье;
С какой целью я это сообщаю? Чтобы быстрее находить взаимопонимание с единомышленниками. Когда ясно, что для человека главное в жизни многие вопросы разрешаются сами собой. Но выяснение основных ценностей ставит и новые вопросы. Как жить в соответствии с ними? Как получить в жизни минимум незначительного и максимум ценного?