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

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


Деннис Ритчи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 и вовсе станет бесплатным. Правда, еще не очень скоро, но станет. А еще блог переедет на новый домен и заодно модернизируется.

Как я участвовал в олимпиаде по веб-технологиям


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

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

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

Когда дошло до самого тура, я получил выбор между тремя секциями: веб-дизайн, анимация и веб-программирование. Я выбрал последнее, как наиболее близкое по духу. После этого передо мною оказался список из семи (или что-то около того) заданий на разные веб-технологии, включая CSS, PHP и немного JS. Были и "теоретические" задачи, об одной из которых я напишу в следующем посте. но в целом все они были простые и довольно легко решались при наличии базовых навыков. Разве что в задаче про CSS мне пришлось погуглить, чтобы разобраться с трехмерными эффектами в CSS3. В общем, отведенного времени мне вполне хватило, чтобы выполнить большую часть заданий с хорошими баллами и перейти в фазу ожидания результатов.

Через пару дней на сайте появилось сообщение о том, что проверка близка к концу и скоро результаты будут. Еще через пару - появились результаты секций веб-дизайн и анимация, а веб-программирование было обещано "совсем скоро". Результаты появились лишь через неделю после тура, но долгое ожидание компенсировалось приятной новостью: я занял первое место с почти двукратным отрывом. Одновременно на сайте появилась просьба сообщить контактные данные для рассылки призов, что я тут же и проделал.

Следующий виток событий имел место уже в мае, через месяц. Сайт висел в том же виде, что и в момент публикации результатов, никакой информации о ходе рассылки призов не было. Попытки писать на почтовые ящики, указанные на сайте давали только отлуп "Mainbox is full". Видимо не я один такой любопытный был, хотел узнать где мои обещанные "ценные призы". Поэтому мне осталось долбиться в аську, указанную среди прочих контактов. Спустя несколько дней мне все же ответили. при чем весьма вежливо, что посылки и письма уже переданы в общий отдел и скоро будут отправлены. Я успокоился еще на месяц.

IMG_0255.JPG

Через месяц (в сумме - через два после тура) я снова задался вопросом, где мой "ценный приз", но пошел с ним уже в свой деканат, так как считал, что пота почтой, но за месяц-то посылка из Бийска до Новосибирска дойти должна. В деканате удивились и сказали, что они вообще без понятия и пишите в оргкомитет олимпиады. И только когда я был в дверях, одна из женщин, сидевших в кабинете припомнила, что им вчера пришло какое-то извещение о посылке из Бийска. Однако, вовремя я пришел. На вопрос, когда же они получат посылку и я смогу забрать приз, я получил совет зайти на следующей неделе, дескать "посылка прислана на имя деканата, а у деканата паспорта нет и на почту он прийти не может. Придется через отдел снабжения получать". На следующей неделе мне торжественно отдали диплом, но сказали, что посылку еще не забрали ("нужный человек" находится незнамо где, бывает), посоветовали зайти еще через пару дней.

promotional_merchandise_marksman_tangle_web_cam.jpg

И наконец, через эти пару дней я таки получил в руки длинную коробку, непонятно зачем обклеенную белой бумагой, так что надписи на ней было не прочесть. Вскрытие показало, что в коробке - веб-камера от неизвестного мне бренда marksman. Подключение к компу показало, что у нее безумно крутое разрешение в 0.3 килопикселей и нет встроенного микрофона. Вот такой вот "ценный приз", большего я, в прочем, и не ждал. Кстати, до сих пор я пользовался веб-камерой от d-link с матрицей (боже правый!) 0.1 мегапиксель, но зато со встроенным микрофоном, полученной в приз 3 года назад в другом конкурсе :) Для скайпа худо-бедно хватало. Прогресс, конечно, есть, но отсутствие встроенного микрофона в новой камере означало геморрой и отдельным микрофоном или гарнитурой, что мне нафиг не сдалось. Посему пока буду юзать старую, а потом присмотрю что-нибудь приличное.

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