In real: наблюдения за реальной жизнью

Полгода радиомолчания


Три раза пытался начать этот пост, и три раза получалась полная ерунда — предыдущий пост был написан пол года назад, и, похоже, навык написания постов на человеческом языке я слегка растерял. Почему я упомянул про "человеческий" язык? Да потому, что за эти пол года мне пришлось написать вагон и маленькую тележку текста на академическом жаргоне, но обо всём по порядку.

С одной стороны, событий было много, и было о чём рассказать. С другой стороны, в голове царил такой бардак и суматоха, что все силы уходили на то, чтобы удержать в голове все обещания, срочные дела и тому подобное. Соответственно, написание поста в блог постоянно проигрывало борьбу за моё внимание.

Самым главным квестом была защита диплома — отныне я дипломированный бакалавр информационных технологий. Осознавать это приятно, но, честно говоря, наличие формального диплома мало что изменило. Быть может я окажусь в меньшинстве, но от наличия корочек пользы куда меньше, чем от обучения, им предшествовавшего. Полагаю, мне очень повезло с универом, так как большинство преподавателей действительно знали, о чём говорят, и умели это  объяснить. И хотя в повседневной работе я не пользуюсь большей частью высоких наук, которые мне довелось познать, расширению сознания они весьма поспособствовали. А вот умение абстрактно мыслить в программировании — это наше всё, и математика даёт прекрасный шанс этому научиться.

Отдельную пару слов посвящу своему дипломному исследованию, посвящённому гомоморфной криптографии. Особенность данного вида шифрования в том, что над зашифрованными данными можно выполнять математические операции таким образом, что после расшифрования результат совпадёт с результатом тех же вычислений над незашифрованными данными. Это, в свою очередь, ключ к безопасным облачным вычислениям и базам данных — данные можно хранить и всячески обрабатывать, но без ключа враг не сможет эти данные прочитать, даже если у него есть доступ к серверам. Если будет время, я, пожалуй, напишу парочку постов об этом с изложение всей этой науки "на пальцах".

В конце мая я так же делал доклад на эту тему на Positive Hack Days в секции Young School. Кажется там даже была выложена запись презентации, но я за это не поручусь — не проверял. Впечатления от самой конференции остались самые радужные, тем более, что это мой первый опыт участия в конференциях такого уровня.

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

Последующие два осенних месяца пролетели практически моментально, но писать тут не о чем — сплошная рутина, которая, наконец, стала принимать регулярный характер, и стало легче выкраивать время на дела типа блога :-)

Покойся с миром, Деннис Ритчи


Деннис Ритчи8-го октября, на 71-м году жизни скончался Деннис Ритчи (Dennis Ritchie). Об этом стало известно из сообщения его коллеги Роба Пайка.

Дэннис Ритчи — один из величайших инженеров современности, создатель вездесущего языка C и один из авторов ОС UNIX. Сложно переоценить влияние этого человека на современную IT-индустрию: его идеи легли в основу подавляющего большинства современных систем, и почти все повсеметсно использованные ОС написаны на языке Си.

Но его труды не ограничиваются этими двумя вещами. Он занимался развитием операционных систем Plan 9 и Inferno, развивавших концепции UNIX и устранявших его недостатки, а так же языком Limbo. Он занимался общей теорией создания ОС и писал книги, одна из которых, «Язык программирования C» стала хрестоматийной.

Покойся с Миром, Дэннис Ритчи. Человечество благодарно тебе за твои труды.

PS. Insomnium — Nocturne.

Жизнь со вкусом


Kitty KitchenЭтот пост несколько выбивается из общей канвы блога, но я просто не могу промолчать. Что нужно настоящему программисту для счастливой жизни? Думаю, все согласятся, что в этот список точно входят интересная работа, комфорт дома и на рабочем месте и, конечно же, вкусная еда, приготовленная любимой девушкой. Вот о последнем и пойдет речь.

Надо сказать, мне жутко повезло, я ухитрился найти самую замечательную девушку на свете, к числу талантов которой принадлежит и умение очень вкусно готовить. Да так, что за последний год я из состояния вечно тощего дистрофика, в котором я прибывал с самого рождения, превратился в солидного упитанного программиста ;-)

Извиняюсь перед теми, кто читает и думает «Ну хватит уже душу травить!», и перехожу к содержательной части. С этого момента все те вкусные рецепты, о которых я только что говорил, иллюстрируются и публикуются заботливой Олиной рукой лапой на ее кулинарном блоге. Так что все голодные программисты России могут вооружаться посудой и ссылкой на блог и приступать к изготовлению вкусной и полезной еды для себя любимых. Или, если вам повезло так же, как и мне, вооружать своих девушек. А если вы не будете забывать им помогать (с мытьем посуды, например), то у вас все шансы вкусно кушать не только по большим праздникам :-)

Ну и для затравки опубликую несколько фотографий блюд, приготовленных по этим рецептам (заголовки кликабельны).

π-рог

w_a58301a4.jpg

Песочное печенье «Пески Времени»

w_05790914.jpg w_90344263.jpg

Бисквитный тортик

w_b0163c67.jpg

Мини-тортики по-кошачьи

А это вообще эксклюзив, рецепт пока не опубликован ;-)

w_9cb4c53e.jpg w_c292f04f.jpg

 И просто немного капучино.

w_485ebc31.jpg

Я в Parallels


С начала октября в моей жизни произошло одно существенное изменение - я стал сотрудником в компании Parallels. Пока лишь как интерн, но в условиях совмещения работы и учебы это оптимально, особенно при таком печальном расписании как в этом семестре :)

 Конечно, почивать на лаврах было бы глупо - уволят нафиг, но это в мои планы и не входит, поскольку наша команда будет работать над новым и интересным проектом, что вообще большая удача для меня. Удача потому, что большая часть программистского труда в крупных компаниях приходится на поддержку и развитие уже существующих проектов, со всеми их "исторически сложившимися" архитектурными костылями и задачами. Тут всегда найдутся темные куски кода, которые никто до конца не понимает или баги, бережно хранимые во имя обратной совместимости. А начало нового проекта - это шанс поучаствовать в гораздо более творческом процессе, поработать над архитектурой, исследовать технологии и не задумываться об обратной совместимости, до тех пор, пока проект не перестанет быть новым ;)

Что касается самой компании Parallels, то в зону моего внимания она попала достаточно давно, однако ее продукты у меня вызывали самые разные чувства. Два основных продукта, с которыми мне приходилось иметь дело - это Parallels Plesk Panel и OpenVZ.

С OpenVZ дело обстояло довольно просто, года два назад (офигеть, этому блогу уже два с половиной года и он мне еще не надоел) у меня случился пик интереса к технологиям серверной виртуализации и я естественно не мог обойти вниманием OpenVZ. Тогда я получил массу удовольствия, играясь с контейнерами и прикидывая, для чего оно мне могло бы сгодиться в хозяйстве, но так и не придумал и отложил в долгий ящик. Но теплые воспоминания остались. Позже я столкнулся с этой технологией уже как клиент и на данный момент обе мои VPS работают именно под этой технологией.

А вот с Plesk'ом у меня отношения сложились не так гладко. Года эдак три назад я работал с один человеком, у которого на VPS (точные параметры уже не вспомню, но довольно мощной) был установлен Plesk 7. Это было нечто. С одной стороны, он жрал почти половину памяти сервера даже в простое, держал много файловых дескрипторов и давал небольшую, но постоянную нагрузку на проц за счет постоянно запущенного собственного демона. В результате, сайт весьма основательно тормозил и падал с разными ошибками о нехватке ресурсов. Ну а интерфейс меня вообще приводил в тихое отчаянье: сделанный в стиле Windows XP он требовал для каждого осмысленного действия 3-4 перехода со страницы на страницу, каждый из которых происходил секунд по 10-15 еще и блокируя все действия на время загрузки страницы. То есть, если ты промахнулся и кликнул не туда, то ты не кликаешь тут же куда надо, а ждешь 10 секунд, пока загрузится ненужная тебе страница, потом еще 10 - пока вернешься назад и еще 10 - пока грузится та страница, куда ты хотел изначально. К счастью, клиент был вполне солидарен со мной и мы волевым решением избавились от панели управления вовсе, благо особой нужды в ней не было - на впс жил всего один сайт. С тех пор моими любимыми панелями стали Kloxo и ISPManager за легкость и эффективность.

Тем не менее, по работе мне пришлось познакомиться с бетой Plesk 10 и она произвела гораздо лучшее впечатление. Несмотря на то, что по потреблению ресурсов она все еще мало пригодна для VPS, интерфейс стал на порядки отзывчивее. Так что можно считать, что Plesk реабилитировался в моих глазах.

Летнее


Вот и прошло лето :-)

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

Как и у любого студента приход лета знаменуется не первым обгоранием на пляже и даже не легко одетыми девушками, а сессией. Какие уж тут девушки, когда надо за месяц пройти семестровую программу по 5 предметам :D Тем не менее, мне удалось побороть даже самые зверские предметы и избежать троек, честно заработав стипендию (1300р./мес. !).

А вот дальше все пошло гораздо приятнее. Весь июль у меня прошел под знаком Parallels®, поскольку я в этом году все же решил изменить ЛШЮП'у (прости, в следующем году постараюсь наверстать) и пошел на летнюю практику в лабораторию Параллелс-НГУ. Там я работал в довольно большой команде аж из 16 человек над проектом PCI Scanner.

С этим проектом связана достаточно забавная история. Согласно задумке нашего куратора-научрука в команду набрали студентов, окончивших 1-2 курсы и из тех, кто после летней школы останется на стажировку в лаборатории, будет сформирована команда, ориентированная на информационную безопасность. В конце концов, именно эта команда должна заняться изготовлением инструмента проверки биллинговых систем стандарту безопасности PCI. Но, учитывая общую неопытность команды в качестве триального проекта, который позволит нам набить руку в программировании и веб-технологиях в частности, было выбрано создание сайта с играми, основанными на разных математических проблем. Так, например, игра Complexity имеет в своей основе тот факт, что решение системы уравнений над кольцом Z2 - задача NP-трудная, то есть разрешима только полным перебором.

Таким образом, весь июль у меня был посвящен проекту NP-Hard Games, где в мои обязанности входила разработка самого движка сайта. И несмотря на то, что новичком в веб-программировании я уже давно себя не считаю, мне довелось столкнуться с несколькими новыми для меня интересными проблемами и получить массу полезного опыта. В частности я познакомился с новым для меня фреймворком Yii и уже успел его полюбить :-) Еще одной новой для меня задачей стала разработка API для сетевого взаимодействия в играх (да, даже в математических играх бывает мультиплеер ;-)

Происходило все это с 28 июня по 29 июля, и финишной чертой в виде отчетной конференции 30-го июля. Все это время я работал в режиме фулл-тайм, по 8 часов в день с 9 до 18 и часовым перерывом на обед, тоже довольно занимательный опыт. Зато пятидневная рабочая неделя для нас стала раем на земле!

Тем не менее, 30 июля я с облегчением последний синхронизировал продакшен с девелоперской веткой и позволил себе забыть об этом проекте аж до сегодняшнего дня.

На август у меня была запланирована поездка в город Абаза, что в Хакасии, в гости к родителям моей девушки, аж на целых три недели. И, надо отдать должное, эти три недели не сумели омрачить даже такие прелести жизни в частном секторе, как "туалет типа сортир" на улице. 3 недели полной безответственности, вкусной еды, свежего воздуха и позитивного общения оказались именно тем, что нужно измученному учебой, сессией, а потом и летней практикой студенту. Так что теперь я точно знаю, где проведу следующий август :-) Кстати, несмотря на то (или скорее благодаря тому), что Абаза - довольно маленький город, он очень симпатичный, а природа вокруг просто зашибись, да еще и мошек нет (те, кто живут в Академгородке меня поймут). Взять хотя бы то, что я, насквозь городское дитя, с удовольствием дважды съездил по грибы, второй и третий раз в жизни соответственно. Еще одним результатом поездки стало, что я наконец вплотную занялся своим проектом-долгостроем и теперь он уверенно движется к завершению, что не может не радовать.

Вот такое вот было лето. Одно из самых приятных в моей жизни :-)

И напоследок немного о планах - их до фига, дай бог свободного времени. Я планирую написать пару-тройку статей по мотивам разработки nphardgames.com, а так же представить парочку своих последних проектов. Кроме того, я уже давно собираюсь модернизировать этот блог и перевести в порядок уже вышедшие продукты. Наиболее интересными свершениями скорее всего станут две вещи: Google&Bing Cache Dumper станут доступны по свободной цене, а RegSubmitter и вовсе станет бесплатным. Правда, еще не очень скоро, но станет. А еще блог переедет на новый домен и заодно модернизируется.