Март 2010

IT-хозяйство: веб-хостинг

31.03.2010

Осталось рассказать, какой софт я развернул на своей VPS. Как я уже говорил, Linode делает свои виртуалки на базе Xen, причем в режиме паравиртуализации. А это, в свою очередь, означает, что выбор ОС сильно ограничен: или Linux, или какой-то другой Linux. Нет, конечно есть вполне рабочий порт NetBSD на Xen, есть порт FreeBSD, были даже попытки запустить OpenBSD на этой архитектуре. Но, во-первых, я не слышал, чтобы кто-то делал веб-хостинг на NetBSD, а FreeBSD на мой взгляд ничем не лучше Linux.

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

После выбора тарифного плана на Linode необходимо решить, какую операционную систему развернуть. Из всего списка я остановился на (точнее мне посоветовали) Debian 5.0 Lenny. Забегая наперед скажу, что система мне понравилась: удобный менеджер пакетов, сами пакеты сделаны хорошо, избавляют от большого количества рутиной работы по первичной настройке. Через несколько секунд новая виртуальная машина готова к работе. Зайти на нее можно либо через AJAX консоль, либо по ssh. Консоль также доступна через ssh-интерфейс (что-то вроде serial console по сети), они ее называют красивым именем Lish – Linode Shell, хотя на самом деле это обычная Xen console. Итак, залогинившись можно приступать к настройке.

В качестве веб-платформы я решил (опять-таки послушав умных людей) использовать связку nginxPHP-FPM + MySQL. nginx – потому что монстр Apache мне не нужен, PHP-FPM – толковая реализация FastCGI для PHP, которая кушает мало памяти (а память на моем VPS сильно ограничена), а MySQL – он и в Африке MySQL, не PostgreSQL же ставить в самом деле.

С nginx и MySQL никаких проблем не возникло, оба пакета нашлись в стандартном репозитории Debian. А вот с PHP-FPM не все просто. PHP-FPM – суть сторонний патч для PHP, и только совсем недавно было принято решение включить его в следующую версию PHP. А до сих все прикладывали его вручную, а самые продвинутые делали собственный пакет. Оба этих варианта мне не годились, потому что у меня совсем нет времени делать и поддерживать наколенные поделки, свои или чужие. Легкое гугление показало, что есть добрые люди, которые не только собрали нужный мне пакет, но и создали для него репозиторий и готовы пакет поддерживать. Но на практике оказалось, что их пакеты уже остали от обновлений Debian Security, поэтому эту затею пришлось оставить.

Дальнейшее гугление привело меня на сайт Dotdeb. И там наконец обнаружился добротный пакет PHP-FPM, но только для PHP 5.3, тогда как в Lenny по умолчанию идет 5.2. Но так как мне было все равно, какую версию PHP ставить, я его и взял. Впоследствии правда оказалось, что есть небольшие проблемы этой версии с некоторыми плагинами для WordPress, но в остальном все отлично.

Теперь осталось только выбрать движок для блога. Так как я этой темой никогда особо не интересовался, то взял самый популярный – WordPress. И, надо сказать, не жалею. Интерфейс приятный, удобный, работает быстро. За пол дня подточил стандартную тему – и новый непорядок готов!

vether(4)

30.03.2010

Не так давно в OpenBSD появился новый драйвер – vether(4). Написал его лично Theo de Raadt. Зачем он это сделал, а так же почему в Канаде плохой Интернет, и каким образом обеспечивается связь всего проекта OpenBSD с  миром – читайте в его новой презентации с AsiaBSDCon.

Изменения в softraid(4)

29.03.2010

Заскучали? Тогда обновитесь до -current. В softraid(4) изменился формат метаданных, старые разделы не будут читаться новыми ядрами. Но есть и позитивная сторона: скоро (скоро?) можно будет загружаться с softraid.

Преобразователь LCD-VGA

29.03.2010

Мой папа в молодости был заядлый радиолюбитель, причем на довольно серьезном уровне. Своими руками делал звуковую технику класса Hi-Fi. Я родился поздно, поэтому застал только здоровый бобинный магнитофон. А были еще усилители, радиоприемники, проигрыватели грампластинок и конечно же аппарат, позволявший записывать из радиоэфира запрещенное «Буги-вуги» на рентгеновские снимки. Как-то папа рассказывал, что когда умер Сталин, был траур и родители ему не разрешали налаживать новый усилитель, чем он был крайне недоволен. Папе тогда было 14.

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

Коллеги на работе, прознав про это, подарили на день рождения паяльную станцию Lukey 702.

Правда, чтобы начать паять, нужно было прикупить еще всякой мелочевки типа флюса и припоя, что я и сделал.

Осталось решить, что мастерить. Сначала я хотел сделать простую игровую консоль. Посмотрел в Интернете, наткнулся на проект Uzebox. Ребята создали на базе современного 8-битного микроконтроллера аналог старых приставок типа Dendy. Эта штука мне очень понравилась, но был один минус. Подключалась она к телевизору, а его-то у меня и нет. Поэтому я решил сделать что-то похожее, но подключающееся к обычному компьютерному монитору.

Тут я вспомнил, что дома у меня уже несколько лет валяется без дела одноплатный компьютер на базе процессора AVR32.

Купил я его с расчетом портировать на эту архитектуру OpenBSD, но дело заглохло. Правда я все еще не теряю надежду вернуться к этому проекту. Так вот, возникла идея подключить эту плату к VGA монитору. А уже на основе полученного устройства можно делать что хочешь, хоть игровую консоль, хоть огромного человекоподобного робота.

У самого процессора есть выход только на LCD дисплей. Интерфейс LCD чисто цифровой, цвет каждой точки передается в виде 24-битного числа по параллельной шине. VGA же – аналоговый сигнал, поэтому нужен преобразователь. По счастью, схема преобразователя легко нашлась. Для процессора AVR32, помимо моей дешевой демонстрационной платы, существует еще полноценный отладочный комплект. И в нем в частности есть выход на VGA монитор. Схема комплекта доступна, и выдернуть из нее нужный кусок труда не представляет.

Основу схемы составляет быстрый трехканальный АЦП, формирующий из набора цифровых LCD сигналов три аналоговых сигнала RGB. Микросхема АЦП стоит в розницу около 800 рублей, поэтому я решил сэкономить. Зарегистрировавшись на сайте производителя и прикинувшись разработчиком электроники я попросил прислать пару образцов этой микросхемы, якобы для разработки некого устройства, которое затем будет производиться серийно. На мою просьбу откликнулись, и через месяц образцы были у меня, причем совершенно бесплатно.

Печатную плату я решил не делать. Для запайки микросхемы купил буржуйскую макетную плату SchmartBoard. Она выгодно отличается от отечественных аналогов, во-первых, качеством исполнения, а во-вторых, особой технологией легкой пайки EZ.

Осталось докупить конденсаторов с резисторами для обвязки и можно начинать.

И вот первый шаг сделан. На плату с AVR32 запаяны разъемы расширения, к одному из которых потом будет подключаться преобразователь LCD-VGA. Почему-то сам производитель платы этого не сделал, оставив только площадки под разъемы.

StatCounter plugin 1.4

26.03.2010

В течение пары дней вышли подряд две новые версии WordPress плагина для интеграции с сервисом StatCounter.com. StatCounter – это типа нашего SpyLog, позволяет вести статистику посещений сайта. Сервис бесплатный, но есть дополнительные услуги за деньги. Сначала вышла версия 1.3, и тут же 1.4. Из видимых изменений – статистика теперь отображается прямо в консоли WP:

IT-хозяйство: VPS

26.03.2010

Еще в студенчестве я завел собственное небольшое IT-хозяйство. Делал это скорее из любопытства, нежели из каких-то практических соображений. Зарегистрировал несколько доменов, себе и друзьям; тогда еще регистрацией занимался РосНИИРОС, а оплата происходила банковским переводом. Поднял DNS сервер, настроил sendmail на прием почты для этих доменов, сделал виртуальные хосты в Apache. Так как в то время я был администратором в студенческой локальной сети, то все это хозяйство было развернуто на студенческих серверах, понятное дело бесплатно. Но так как ресурсов оно кушало мало, то никто не был против.

И так продолжалось очень долго, даже когда я выпустился и передал бразды правления серверами, все мои привилегии остались, в том числе и sudo. Но с каждым годом росла тревога, что в один прекрасный момент придут совсем незнакомые люди, скажут: «А это кто такой?» и выкинут все мое хозяйство. И будут правы кстати. Поэтому нужно было куда-то переехать, не дожидаяся дня X, чтобы потом в спешке не собирать манатки.

С почтой вроде разобрались. Остались DNS и веб-хостинг. Очень не хотелось платить денег, ведь столько лет все было бесплатно. С DNS еще можно было что-то придумать, есть сервисы типа DNS Park, которые могут хостить DNS бесплатно. Но там есть неприятные ограничения, и остается проблема, где взять secondary. А вот с бесплатным хостингом точно ничего не выйдет, если нужна хоть какая-то стабильность работы.

В результате мой выбор остановился на VPS. Это хороший компромис между гибкостью и ценой. Dedicated слишком дорог, а виртуальный хостинг слишком убог. К тому же виртуальный хостинг за $5 – это одни слезы, более-менее приличный стоит под $20, а за эти деньги буржуи уже предлагают небольшую виртуалочку, которая по своим вычислительным мощностям ничем не уступает.

Среди огромного числа хостеров я по совету друзей выбрал зарубежный Linode. Они дают VPS на основе Xen, а это хорошая технология. На работе я как-то тестировал различные технологии виртуализации, оказалось, что лучше Xen только VMWare ESX. Минимальная виртуалка имеет 360 Мбайт ОЗУ и стоит $20 в месяц. Именно такую я и взял.

Небольшое отступление. Некоторые используют термин VPS для обозначения различного рода контейнеров, таких как OpenVZ. Для полных виртуальных машин типа Xen они используют термин VDS – Virtual Dedicated Server. Я термин VDS не использую, так как и так ясно, о чем речь.

Раньше Linode предлагала размещение виртуалок только в США, теперь у них появился датацентр в Лондоне, что не может не радовать. Пинг до лондонского ДЦ из моего дома составляет 75 мс, что вполне терпимо. А в остальном VPS как VPS. Удобная панель, я за пару кликов развернул Debian, все настроил. Поддержка DNS входит в стоимость, при этом используются DNS серверы самой Linode, т.е. дают и primary, и secondary. В общем я всем пока доволен, мое IT-хозяйство на новом месте чувствует себя замечательно.

IT-хозяйство: почта

25.03.2010

Файл /etc/mail/aliases на студенческом почтовом сервере технического ВУЗа может многое рассказать о выпускниках. Возьмем к примеру такую строчку:


crazzydoc:		anton.ivanov@megainvestconsult.com

Что она нам может сказать? Возможно, некий Антон Иванов, в студенчестве называвший себя в сети не иначе как CrazzyDoc, сейчас занимает хорошую должность в зарубежной компании, приходит в офис к девяти и носит деловой костюм.

Или такая строка:


deadshaft:		me@prostovmesto.ru

Включаем фантазию и видим бывшего чемпиона по «Кваке», а ныне активного участника социальных сетей и владельца собственного блога.

В моем институте, в бывшем моем общежитии тоже есть почтовый сервер и там есть такой файл. И долгое время, даже после того, как я выпустился, про меня в нем ничего не было. Я пользовался своим студенческим почтовым адресом и даже немного гордился им. Он был в домене третьего уровня, и в этом был свой шарм. Он принимался там, где не работали бесплатные адреса типа @mail.ru. Кстати, за адрес нужно было тогда заплатить единовременно что-то около 150 рублей. Доходило до смешного, как-то раз на мое письмо мне ответили, что для студентов у них особые условия, и я не сразу сообразил, почему меня приняли за студента.

Впрочем, все это не мешало мне иметь личный домен второго уровня и держать на нем почту. Точнее заворачивать ее в свой студенческий ящик. Но в поле From: у меня все равно стоял мой первый адрес.

На втором курсе я стал администрировать студенческий сервер. Сначала я его взломал, написал о найденных дырах тогдашнему админу, и он к моему удивлению предложил мне заняться этой машиной. В связи с этим почту я читал следующим образом: логинился на сервер по ssh и запускал mutt. При этом в .forward у меня было


|procmail

А в файле .procmailrc были описаны правила, которые раскидывали почту по разным ящиками. mutt, понятное дело, работал локально.

Эта схема, не смотря на свою аскетичность, меня вполне устраивала. Однако со временем все сильней и сильней стали проявляться недостатки. Было неудобно работать с вложениями, приходилось гонять их туда-сюда через scp. Неудобно читать почту не из дома, не везде есть ssh, не везде есть доступ по 22 порту, не везде можно безбоязненно печатать пароль от шелла с возможностью sudo. И самое главное – после выпуска с каждым годом растет вероятность того, что шелл у меня отнимут навсегда. Таким образом встал вопрос: куда мигрировать?

Разные были варианты, вплоть до размещения сервера у себя дома (жесть, ага). Но в итоге победил Google Apps. Официально Google Apps – это набор веб-сервисов для организации работы в предприятии, в том числе и знаменитая гугловая почта. Помимо почты туда входят календарь, общие документы, веб-портал. Такой вот Groupware SaaS. Вообще Google хочет за эту денежку, но если число аккаунтов меньше 50 – то все удовольствие бесплатно. Поэтому Google Apps вполне можно использовать для бесплатного «паркинга» почты в своем домене. Нужно только поставить MX на серверы Google.

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

Освоившись с новой почтой, я изменил в настройках mutt поле From:, подписал свой новый адрес на все свои списки рассылки вместо старого и наконец добавил на студенческом сервере в /etc/mail/aliases запись:


grange:		grange@disorder.ru

Не теряйте вещи в электричках

24.03.2010

Хотел написать про гугловую почту, но вчера со мной случилось небольшое проишествие, так что расскажу лучше про него.

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

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

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

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

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

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

Время уже 11 ночи. Ехать в такую даль, гулять там по путям в поисках дома отдыха мне совсем не хотелось. С другой стороны, уже такая каша заварена, столько людей напряглось, отступать поздно. Порешили так: я сейчас пойду домой, а дежурная попытается связаться с машинистом и договориться как-то пересечься с ним утром, например, когда он поедет обратно. Если не получится – что ж, придется брать машину и ехать.

Где-то через пол часа позвонила дежурная и сказала, что машинист передал рюкзак с последней электричкой в Москву, и через час он будет здесь. Отлично!

Я вернулся на станцию. Дежурная пожаловалась, что только что какая-то женщина бросилась под поезд, но чудом осталась жива. А сейчас по путям ходит человек с посохом и спрашивает, правильно ли он идет на Смоленск. Одним словом смена началась неважно. «И тут еще я со своим рюкзаком», но это уже я сам подумал.

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

Футболка к лету

23.03.2010

Детская макулатура

20.03.2010

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

Частенько составители перевирают или сокращают сюжеты известных сказок, теряя по пути смысл. Вот, например, вариант концовки «Теремка»:

Насколько я помню, в оригинале медведь после того, как сломал теремок, усовестился и начал строить новый, побольше. Обиженные звери, увидев это, простили его и начали ему помогать. А чему ребенка учит такое изложение? Сломаешь – не беда, терпилы починят.

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

Или вот еще вариант концовки «Теремка»:

Здесь и вовсе никто с ремонтом не заморачивался.

Радуют и иллюстраторы. Вот, например, персонаж с телом лисы и головой волка, сам себя называет лисичкой-сестричкой:

Или, скажем, куклы Bratz на елке:

А это ворона, от которой убежал карапуз, в виде бодрого пацанчика с района: