На заре компьютерной эры человечество и не подозревало, насколько умные машины вольются в нашу повседневную жизнь и изменят быт обычных людей. Сегодня персональный компьютер является обязательным спутником любого человека, однако кое-что сохранилось с тех самых пор, когда удовольствие пощелкать по клавиатуре было уделом избранных. Так называемые устройства ввода информации, в примитивном случае это привычные мышки и клавиатуры, дошли до наших дней почти в неизменном состоянии. Конечно, изменилась форма и эргономика, добавилось n-ое количество кнопок, однако суть все та же, и. в конечном счете, сводится к поиску и нажатию нужной кнопки. Не в этом ли кроется основной сдерживающий фактор, препятствующий дальнейшей интеграции человека и компьютера? Барьер искусственности, появившийся во времена ограниченных технических возможностей, сохраняет свою силу и не спешит открыть двери в мир естественных интерфейсов.
От искусственности к естественности
31 Май, 12:22
Заметки с конференции Agile Labs 2009
31 Март, 22:36
На волне огромного интереса к модной в последнее время теме гибких методологий, состоялась первая узкоспециализированная конференция Agile Labs. C учетом новизны и спорности рассматриваемой темы, собралось немалое количество специалистов, интересующихся или просто переживающих за судьбу Agile в России. Обдумывая план посещения секций, прежде всего задавался целью развеять для себя все сомнения по поводу Agile и понять в конце концов границы ее применимости. Как оказалось в последствие, цель была достигнута, но с точностью наоборот. Сомнений не только не убавилось, но ко всему прочему возникли фундаментальные вопросы, напрочь подрывающие мои представления об Agile, как о стройной методологии. С пониманием важности практического применения красивых теоретических выкладок и первыми попытками их использования, наступает некоторое отрезвление, которое не всегда приносит "fun", как заявляет методология.
Шаблоны объектно-ориентированного проектирования GRASP
8 Февраль, 18:28
На одном собеседовании меня спросили: "знаете ли Вы, что такой GRASP?". К своему стыду, я даже понятия не имел, что эта аббревиатура означает. Потом, все же, человек, проводивший интервью сознался, что этот вопрос был со звездочкой и ответ на него был не обязателен. И действительно, у каждого специалиста свои тараканы в голове и разобраться с каждой имеющейся аббревиатуре почти нереально и все же, после того, как я все-таки посмотрел, что такое GRASP, меня охватил еще больший стыд, как оказалось название GRASP объединяет фундаментальные принципы, положенные в основу объектно-ориентированного проектирования. Принципы эти на интуитивном уровне известны каждому разработчику, хоть раз прикасавшемуся к ООП, однако их систематическое именование и повторное использование в виде шаблонов оставалось за рамками трансцендентного процесса проектирования ПО. Настала пора снять завесу тайны и назвать вещи своими именами.
( Read more... )
Что такое ACE
6 Январь, 20:13
Библиотека ACE (ADAPTIVE Communication Environment) не слишком широко известна особенно среди русской аудитории, между тем это довольно интересное решение для разработчиков сетевых приложений на С++. Как известно, сетевое программирование особенно на низком уровне является не простой задачей. Непосредственное использование системного API делает программу непереносимой, кроме того, возникает совершенно ненужная сложность, связанная с изучением тонкостей работы с сокетами на разных платформах. Само по себе использование socket API является лишь частью общей задачи создания сетевого приложения, в которую также входит управление потоками (процессами), синхронизация, сериализация данных и т.д. Идеальным помощником для С++ программистов любого профиля является популярная кроссплатформенная библиотека boost, однако в области сетевого программирования ACE может составить ей очень серьезную конкуренцию.
( Read more... )
План прогрессивного разработчика
22 Ноябрь, 2008
4-5 декабря состоится самая крупная российская конференция Microsoft - Платформа 2009. Попасть на это событие крайне сложно и дело здесь не только в высокой стоимости входных билетов, но и в том, что эти самые билеты раскупаются за несколько недель после начала регистрации. Счастливчики, купивший билеты, а среди них будет только элита: директора, топ-менеджеры и гуру разработчики - смогут своими ушами послушать 60 докладов, поучаствовать в мастер классах и просто пообщаться друг с другом. Все-таки кризис на дворе, и не каждая компания смогла выделить средства на посещение столь крупного мероприятия, однако любой желающий абсолютно бесплатно имеет возможность смотреть онлайн-трансляцию конференции (заргистрироваться можно здесь). А посмотреть будет на что, в двухдневном расписании присутствуют очень интересные темы. Большое количество докладов естественно требует распараллеливания по залам - на платформе 2009 их будет целых 5. В связи с этим возникает необходимость формирования собственной программы просмотра конференции, плана или среза, предназначенного для определенной целевой группы. Microsoft предложила составить планы и вынести их на суд общественности. Цель ясна - представляю "план прогрессивного разработчика".
Отчет о конференции SECR 2008, и немного о финансовом кризисе
25 Октябрь, 2008
"Когда я слышу во время гонки об аварии на трассе,
то нажимаю газ, потому что все остальные в этот момент жмут на тормоз"
(Цитата из к.ф. "Гран-При")
Побывал на конференции SERC 2008 - Software Engineering Conference (Russia). Конференция ставила перед собой достаточно амбициозную цель по консолидации локальных сообществ разработчиков и интеграции их в международные сообщества. Среди основных тем обсуждались современные технологии методики по эффективному решению задач в различных областях программной инженерии. В конференции принял участие эксперты из Армении, Беларуси, Казахстана, России, Украины и других государств СНГ, стран Балтии, Европы и США. Кроме того, присутствовали гуру мирового масштаба: Эрих Гамма и Стив Меллор. Лично для меня это была первая конференция подобного масштаба, поэтому впечатления остались самые приятные.
Отчет о конференции HighLoad++ 2008 (часть 2)
8 Октябрь, 2008
Я слышу и забываю.
Я вижу и запоминаю.
Я делаю и понимаю.
(Конфуций)
… закончился второй день. Теоретическая часть конференции подошла к концу, мастер классы, намеченные на среду, пройдут без меня. Степень загрузки информацией едва не превысила допустимый лимит организма. Темы докладов во второй день были не сильно интереснее, чем в первый, кроме того, были организационные проблемы. Впечатление от конференции в общем и целом немного смазалось, но были и положительные моменты.
Отчет о конференции HighLoad++ 2008 (часть 1)
6 Октябрь, 2008
Большой программистский проект включает в себя
много отдельных задач, каждая из которых может зависеть от окончания другой.
Вероятность того, что каждая задача будет идти нормально, становится исчезающе малой.
(Цитата неизвестного программиста)
Высокие технологии, требуют высоких нагрузок. Мощности вычислительных машин растут, однако запросы пользователей растут с еще большей скоростью. Сегодня требуются сервисы обслуживающие несколько сотен тысяч одновременных запросов, а завтра появится необходимость в миллионной или миллиардной нагрузке, что будет послезавтра - страшно представить. Прогресс не стоит на месте, железо становится производительней, однако руки разработчиков редко выпрямляются на столько, чтобы делать стабильные, производительные и масштабируемые решения в приемлемые сроки. К высоконагруженным системам относятся: веб сервисы, телекоммуникационные серверные приложения, системы управления в реальном времени, системы безопасности и ряд других специализированных систем. Что касается первой категории, то без сомнения она самая популярная и востребованная, по крайней мере, в нашей стране. Вторая категория, интересная мне с профессиональной точки зрения, первый день освещена никак не была (обидно, я сидел в первом зале, во втором эти вопросы поверхностно освещались). Что касается остальных категорий, то они мне не интересны, о них ни слова и не было. Итак, все, что я услышал в первом зале, касается исключительно веба. Что ж, и это неплохо для общего развития.
У IT нет молодого лидера
22 Сентябрь, 2008
Нынешние лидеры IT индустрии у всех на слуху, они появляются в рекламных роликах, презентациях, конференциях. Но кое-что мне кажется неправильным и не логичным. Все эти лидеры уже довольно приклонного возраста, а ведь именно они прокладывают курс развития высоких технологий. О каком прогрессе может идти речь, если всем боссам уже за полтинник, все погрязли в рутине и стариковских проблемах. По-моему странно смотреть рекламные ролики с участием Билла Гейтса, который выглядит совершенно дряхлым стариком. Джобс с седой бородой, бодро достающий из кармана свои iPod-ы как-то не вяжется у меня с рекламным образом продукции Apple, делающей акцент на молодых и прогрессивных. Коронный эппотаж Баллмера с каждым годом становится все неповоротливей, его нелепый вид теперь вызывает лишь улыбку.
Адский эксперимент
10 Сентябрь, 2008
Значит, эксперимент заключается в следующем. Приходишь на работу устраиваться в крупную контору и на самый важный вопрос отвечаешь: "Согласен работать почти за бесплатно. Платите мне один рубль, но каждый месяц удваивайте зарплату, чтобы я перед друзьями хвастаться мог". При этом ты конечно крупный спец, и за твою сложную и очень продуктивную работу любая контора готова выложить круглую сумму. Ты ведь уже успел сделать себе имя, тебя знают в узких кругах профессионалов - ты гуру-программер.
Менеджер, нанимающий тебя на работу, услышав твои запросы на зарплату, сначала немного удивился, потом крепко задумался и начал прокручивать в голове адские комбинации. Ты в это время уже знаешь все возможные варианты. Во-первых, менеджер может быть человеком далеким от математики, ничего не знающим про экспоненциальную зависимость. Такая операция, как возведение в степень ему отдаленно знакома, но вспоминать этот школьный материал он в упор не хочет. В этом случае менеджер с улыбкой ответит согласием, и ты, потирая руки, пойдешь домой. Забудь об этом этот случай почти нереален.
( Read more... )
Google Code University - кладезь знаний для программиста
15 Август, 2008
Google Code University - куча обучающих материалов от google, собранная в одном месте. Есть видео лекции и текстовые материалы. Темы самые различные: языки программирования (С++ и Python), фундаметальные алгоритмы, веб технологии и т.д.
Пока материалов не так много, но их количество обязательно будет увеличиваться.
Откуда берутся баги
24 Июль, 2008
Баги в большинстве случаев появляются из-за невозможности уменьшить сложность системы, и реже из-за того, что разработчики не берут во внимание вещи, кажущиеся слишком простыми.
Очень просто ошибиться при использовании сложной вещи. Когда имеется черный ящик с миллионом красных кнопок, 12 из которых по-настоящему уничтожают мир, то непременно найдется человек, который станет причиной армагеддона. Точно так же в программировании, если язык программирования достаточно сложен или документация запутанная, то всегда найдутся лазейки для неправильного использования.
В случае черной коробки, проблему нельзя решить даже путем написания подробной документации. Имея на руках увесистый мануал в 1000 страниц, описывающий работу коробки во всех подробностях, нельзя надеяться на человеческую память, потому что среди миллиона одинаковых кнопок невозможно запомнить какая за что отвечает. Программисты, создавая сложные вещи обычно не думают о тех, для кого они это делают и кто будет работать с кодом в будущем.
( Read more... )
Отчет о конференции Training Labs 2008
29 Июнь, 2008
Во всех высших отраслях знания
самую большую трудность представляет не открытие фактов,
а открытие верного метода, согласно которому законы и факты могут быть установлены.
Генри Томас Бокль
В Москве 28 июня прошла первая в России конференция в области обучения инженерии программного обеспечения TrainingLabs 2008. Мне удалось посетить это великолепное мероприятие, о чем я и собираюсь рассказать. Для чего все затевалось? В целевую группу слушателей попали очень многие специалисты так или иначе связанные с разработкой ПО. Наверное, самыми многочисленными и заинтересованными из всех были менеджеры продуктов (PM), далее с большим отрывом по численности присутствовали рядовые разработчики (я попадаю именно в эту группу) и, наконец, тренеры или так называемые «евангелисты», они собственно проводили демо-тренинги и перенимали опыт у своих коллег.
( Read more... )
В поисках...
27 Июнь, 2008
С миром наверное сложней, чем с софтом. Навязчивая идея, не покидающая голову, с одним лишь требованием - искать лучшего, стремиться к развитию. И это все что надо, об остальном даже и не думаешь. С достижением одной цели появляется новая, вернее не появляется, а просто становится актуальной, ведь теперь именно к ней надо идти, бросая все силы. Процесс этот кажется бесконечным. Что удовлетворяет больше, конечный результат или путь его достижения? Без процесса удовлетворение результатом было бы минимальным. Сам по себе результат значит очень мало, он теряется как только его достигают. Не стоит его переоценивать, он ведь нужен только как платформа для следующей цели и не более. Человек не может знать, когда придет его время покидать мир, поэтому с точностью сказать какая из целей будет последней нельзя, значит цепочка желаний никогда не кончится.
