Блог:Стас Фомин

From Wiki4Intranet
Jump to: navigation, search

Блог Стаса Фомина связанный с ITшными активностями:

  • разработка
  • тестирование
  • документирование
  • управление разработкой
  • лайфхаки


Source(s): Blog:Стас Фомин


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


Source(s):  Blog:Стас Фомин


Подписаться:

2008-12-03 Gmail: случилось страшное.

Случилось невозможно страшное — сутки у меня был неработоспособен Gmail. «Temporary Error (502)» сразу после логина. Первый час было забавно, к ночи стало не до шуток.

Где трехкратное дублирование с автоматическим восстановлением? Вот тебе бабушка и «вебдваноль и профиль в сети», вот тебе SaaS… .

Наблюдения:

2008-11-25 SECR-2008: Наше выступление

Выступление Андрея Бибичева, я к сожалению, проспал (всю ночь записывал диски с portable-версией MediaWiki), и конечно, хотя дали под выступление большой зал, раннее время — штука подлая. После первого унылого дня народу стало сильно меньше, а уж поднять себя на эту унылость к 9:00 смогли не все. Но вменяемые люди оценили — например, распорядитель первого зала был явно удивлен глубиной доклада (по сравнению с некоторой поверхностностью стандартных докладов ажайл-евангелистов), о чем он собственно и заявлял прямым текстом.

Выступление Андрея Сатарина посмотреть удалось, в целом было удачно, в передних рядах народ был вполне в теме, и сразу стали атаковать вопросами в стиле «Continuous Integration для детских проектов, а наши проекты настоящего King Size размера, их фиг за ночь соберешь, не то, что по commit-у» (наезжающие стали соревноваться в длине сборки между собой). Тут я вмешался, и мне кажется, удачно парировал наезды, аргументируя необходимостью грамотной системы сборки, с использованием make/ant/scons — так как при нормальной, модульной структуре проектов и иерархических зависимостях, объем необходимой пересборки в среднем при любом коммите будет весьма ограничена. Например, если разбить объем сборки на сбалансированное бинарное дерево длины l с узлами равного объема, то даже в худшем случае (коммит «попал» в листовой узел) нужно выполнить объем в раз меньший полного объема. Исключения, когда объем небъется на части есть — «создание базы и заполнение тестовыми данными», например, но для таких случаев тоже есть лайфхаки (например, база в памяти). Плюс, возможно придется бить на части набор юнит-тестов — (выполняемые по каждому коммиту, еженощно и т.п.). Как это делать, у меня конечно есть идеи (статистика срабатываний, важность накрываемого функционала и т.п), но надо посмотреть, что на этот счет говорит наука. Возможно при доработке этой презентации или разработки отдельной темы («Тонкости Continous Integration…») надо этот момент расписать и проиллюстрировать.

Мое выступление особо удачным не было, хотя я даже было надеялся сыграть на контрасте, ибо на предыдущем докладчике зал просто заснул, но как только предыдущий доклад завершился почти вся аудитория начала бегство из зала, подумав, что здесь пытают скукой. Вообще я был под сильным стрессом, ибо не был уверен, что 112 слайдов презентации реально уложить в 30-35 минут, а выкидывать слова из песни очень не хотелось — там была целостная мысль, резать ее было почти нереально. 112 слайдов на самом деле не так много, ибо это я пробовал новый, устойчивый к плохому разрешению и малым экранам стиль презентации — «полумультфильм», где одна мысль или классификация разбивались на несколько слайдов, а концепты-понятия появлялись на слайдах по очереди, так, что граф отношений понятий строился постепенно, а наиболее ключевые понятия показывались и дольше, и крупнее. Единственное — выкинул ответы на частозадаваемые вопросы — и все эти вопросы мне потом ожидаемо задали в кулуарах. Но все равно, пришлось пожертвовать театральными паузами, и следовательно смехом в зале (юмор без пауз, где смеяться, не воспринимается), да и в целом, контактом с аудиторией. В результате, выглядел скорее комично, чем авторитетно, как я выглядел на предыдущем SECRе, и в кулуары за мной увлеклась группа скорее молодых разработчиков, чем менеджеров (людей в костюмах вроде не было).

В целом, за пару недель мониторинга по блогам, видно, что онлайн-реакция слабая, всего пара отзывов. Кое-какая дискуссия развернулась здесь.

Лично я получил всего пару приглашений в мойкруг и писем с критикой. Хотя критикой полезной, ибо совсем забыл про проблему русских имен файлов под переносимой под Windows сборкой MediaWiki, эту проблему нужно все равно будет решать.

С другой стороны, вполне можно повторить тему доклада про MediaWiki (проработав дополнительные части, например UML-графы по текстовому описанию), на конференции типа РИТ, без боязни прослыть «баянистом» (если возьмут, конечно).

И все же, надо продолжать светится при возможности на этой конференции, ибо аудитория этой конференции есть, и она почти не пересекается с «интернетными» конференциями РИТ/Highload (возможно поэтому отзывов в блогах и мало, может по курилкам-то обсуждения и пошли). На SECRе есть такие редкие категории, как участники из регионов, депутаты, IT-бизнесмены и менеджеры и т.п.

2008-11-10 SECR-2008: Как надо правильно организовать IT-конференцию

Отчет о конференции SECR-2008, а также куча мыслей о правильной организации IT-конференций.


2008-11-01 Интересная реклама микрософта на башо...

Интересная реклама микрософта на башорге:
Много вопросов — а разгадка однаответ один — «Микрософт!».

2008-10-31 Google Docs и PDF

Обнаружил, что теперь в Google Docs можно грузить PDFы. Но убиться веником — поиска-то по документам нифига нет. Google-сервис и без поиска — ерунда какая-то. Зачем-то сделан Flash-preview страниц, причем есть ощущение, что по сети гоняют растровые картинки. Зачем? PDFы смотреть гораздо удобней в родных вьюверах, тут я имею в виду как адобовских, так и любых других, не-веб-флеш вьюверы. А ведь есть полезный сценарий, оправдывающий сию поделку — функциональность комментирования. Т.е. рецензент может просматривать PDF, и вставлять в заинтересовавшем его месте (на странице) метки-сноски, и привязать к меткам-сноскам обычный текстовый комментарий (ну там понятно со стандартной функциональностью комментариев к блогам — извещения по почте и т.п.)

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

Разродился комментом, может поймут и учтут.

Кстати, acrobat.com тоже посмотрел, но там полная смерть от флеша, что мне не надо. Хотя приятно, что вроде как нет ограничений на объем — 30Mb пдф залился без проблем.

2008-10-31 Hybernation и Standby против SPTD

Внезапно перестал засыпать (и standby и hybernation) ноутбук. Местами еще BSOD 0x0…08e при загрузке. Т.е. полная задница, ибо без режима сна пользоваться ноутбуком (да и наверно уже чем угодно, кроме постоянно включенной рабочей станции) невозможно. Гуглил — вариантов сотни, ничто не подходит. Пытался откатываться назад «восстановлением» — на пару дней назад не помогло, а потом и вовсе перестала откатываться. Пошуршит полчаса, перегрузится, и вердикт — «восстановление не удалось». Меланхолично так, блин.

«scansfc /now» тоже не помог.

Стал исследовать память через AVZ, скачал Debugging Tools и пакет символов ядра, стал смотреть разбор коредампов.

Нашел причину. От удаленных Daemon Toolsов, что бы им пусто было, остался SPTD — SCSI Pass Through Direct layer. Он то, гад и давал прикурить.

Выкорчевал его, и все стало хорошо. Но времени и нервов потратил изрядно, да.

2008-10-30 Firefox: глюки адресной строки и вкладок

Заболел Firefox толи после очередного апгрейда, толи от «старости» — адресная строка перестала работать, плюс во всех вкладках, кроме первой, шла индикация типа «идет загрузка». Причем заболел только один, основной профиль. Проблема совершенно не гуглилась, но решить ее удалось. Надо удалить нафиг файл places.sqlite из каталога профиля.

Вообще универсальное лечение для всех болезней FF — грохнуть *.sqlite файлы в каталоге используемого профиля. Ничего критического не погибнет — всякую персонализацию (пароли там и т.п.) вы вспомните, история наполнится снова, закладки и прочие ценные настройки распарсятся и загрузятся из текстовых файлов.


2008-10-23 SECR-2008: анонс

Завтра и послезавтра наши парни будут на  SECR-2008. Заранее публикую презентации и статьи докладов.

2008-10-12 SECR-2008: анонс

Кстати, эта осень жирна на конференции. 23 и 24 октября  будет Software Engineering Conference (Russia) 2008, на которой я буду приглашенным докладчиком (invited speaker, высокая честь).

Планирую раскрыть тему вик и их выбора — «Mediawiki: Серебряная пуля или швейцарский нож?». Думаю, будет весело и интересно, более того, кроме речей я планирую раздачу слонов — работающих portable медиавик, с кучей наших расширений, на WAMP-платформе (т.е. под Windows и переносимых копированием), чтобы те, кто еще не  в теме, погрузились и прониклись немедленно.

Кроме меня будут еще пара интересных и актуальных докладов от наших парней.  Вот на «РИТ: Высоких нагрузках» в кулуарах оказался втянут в всего в два разговора — один, «что делать скучающему аналитику в Agile» — эту тему должен раскрыть доклад «Аналитик в Agile – архаизм или необходимость?», и на тему Continuous Integration — тут будет выступать наш перспективный QA-инженер с докладом «Введение в непрерывную интеграцию или каша из топора».

Ну и конечно, можно будет активно устно пообщаться.

2008-10-12 Highload++ 2008

Заметки о посещенных на конференции Highload++-2008 докладах.

Раньше сделать это не мог — была сумасшедшая неделя, где кроме конференции у меня были лекции в МГУ и МФТИ, к которым пришлось готовится ночами, плюс куча работы, в общем спал мало, и вообще провел неделю на кофеине с ноотропами.

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


2008-10-04 Siemens Gigaset S44 — отстой

Кстати, трубки Siemens Gigaset S44 (которые к Siemens Gigaset S645 идут) — полное дерьмо. И трубка из комплекта, и дополнительная уже во второй раз попадает в ремонт. Ремонт тянет на 60-70% их стоимости, а судя по реакции сервисменов, болезни их известны и широко распространены. Что было — год назад обе трубки «ослепли» — перестал работать дисплей-индикатор, а вот только что — оглохли, одна за другой с интервалом в пару недель — перестал работать динамик. В результате сдал их в ремонт, недели полторы без домашнего телефона дома — жена не простит… Луч ненависти сименсу. 

2008-10-01 INTUIT:CRM

 Прошелкурс «Стратегия управления взаимоотношениями с клиентами (CRM)».

Разумный курс, времен моды на внедрение CRM-систем. (Да, автор курса тоже уже пару лет как не в этом бизнесе, да и сейчас крупным заказчикам вместо CRM/ERP-систем принято «продавать» сервисную архитектуру, ESB, SOA, плюс Master Data Management, а CRM теперь есть всего лишь производный аспект вышеперечисленного).

Автор пишет легко, и в целом разумно, регулярно приводя бизнес-кейсы. Конечно, те, кто на острие маркетинговой мысли (как признак — читают блог Сета Година) , вряд ли узнают какие-либо откровения, но разработчику или внедренцу сервисных приложений читать полезно весьма — даже не в смысле узнать что-то волшебное, а как чисто набор шаблонов/заготовок для всяких внедренческих бумаг (коммерческих предложений, техобследований, ТЗ, НИРов и т.п.).

Вопросы простые, но часто используется плохая форма тестов — multiple select (экспонента вариантов), и смущает, что часто надо отмечать все варианты для правильного ответа (спойлер!).

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

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

Вообще мне стыдно, но надо признаться, что в году 1999 я даже на АвтоВАЗ писал (тогда у них емайл был только у вебмастера сайта), убеждал внедрить CRM-систему с системой регистрации дефектов, советовал багзиллу. (Ничего не ответила рыбка). Прошло десятилетие, рабочие и инженеры ВАЗа попали в инет, но судя по веткам типа этой [1], сие ВАЗу уже не поможет.

Теперь уже полно «народных» CRM на любой вкус в модели SaaS с недорогой арендой. Но то, что они не так распространены — мне видится несколько причин. В определенном смысле весь интернет целиком (совокупность вебресурсов) стал CRM-системой с размазанной информацией о клиенте, а локальные CRM-системы, в каждой из которых нужно отдельно регистрироваться, отпугивают массового пользователя. Ну и опять таки, светить денежные потоки в какой-то общей системе — для РФ, видимо будет неприемлимо весьма долго. 

Но у меня есть идея для нового вебсервиса —  система бронирования времени в сфере услуг. Т.е. поставщики — предприятия или частные мастера. Парикмахерские (парикмахеры), врачи (терапевты или стоматологи), высококвалифицированные строители-ремонтники (типа «крутой электрик-сантехник», а не «комплексный ремонт за год»), репетиторы, массажистки,  ну и вообще, на что фантазии хватит (ЕВПОЧЯ)…

Поставщики держат в системе календари занятости. Потребители идентифицируются с помощью Open-Id (контакты-адреса нужно хранить безопасным образом в системе), и могут заказывать услуги поставщиков, выбирая и аллокируя свободное время (календари со свободным временем доступны). Т.е. не надо звонить, мучительно согласовывать «точку встречи» с секретарями и т.п. Можно хранить историю посещений-отношений, вести обратную связь, электронную репутацию, а деньги выносятся за скобки (как договорятся). Можно также привязать Google Maps (координаты), и загнать в сервис алгоритмы составления-рекомендации оптимальных расписаний — это даст уникальность (УТП) и труднокопируемость сервиса.

И сбудется мечта Пелевина — человек человеку будет не друг, не брат и не волк, а дилер и эксклюзивный дистрибьютер.

2008-09-25 РИТ:Высокие нагрузки-2008 (3)

3 День второй3.1 Sphinx в примерах и задачах

Мне ужасно стыдно, но я проспал. Хотя тема явно интересная, уже есть два эффективных бесплатных и опен-сорс движка полнотекстового поиска — Sphinx и встроенный поиск PostgreSQL. Очень интересно кто-кого, и даст ли «синергию» конкуренция и перекрестное опыление.

Например в некоторых наших внутренних MySQL-системах я уже подключил Sphinx для поиска, в некоторых — думаю подождать и сразу перейти на PostgreSQL, и делать полнотекстовый поиск с морфологией напрямую в БД.3.2 Организация асинхронной обработки задач

Частично опоздал, но в целом доклад не оправдал моих ожиданий. Судя по названию можно было бы ждать опыта использования специализированных продуктов — от вендоров, типа Oracle Advanced Queuing (в тезисах говорилось про оракл), IBM WebSphere MQ,…, а может даже и опен-сорс. Увы, рассказали о простом самодельном решении на оракле. Как-то невозбуждающе.3.3 Практическое использование Hadoop в системе интернет-статистики

Разумное и модное решение задачи параллельной обработки и агрегации логов посещения сайтов. Используется фреймворк Hadoop (параллельные вычисления в парадигме map/reduce), который для таких задач вроде как идеально предназначен, и в общем-то единственно доступный (опен-сорс), ибо гугловый аналог закрыт, а больше вроде ничего нет.

Кластер относительно небольшой (12 восьмиядерников с 8Gb памяти), но справляется. Два прохода:

Схлопывание текстовых многополевых атрибутов в idы (индексирование).

Обработка (агрегация разного рода) полученных индекс-файлов, получени отчетов.

Ну и всякие там хитрости, вроде все разумно. Опять таки, убьют наверно баннерорезки и этот бизнес.3.4 CAS — сервер приложений C++

Как-то не. Ждал «сервер приложений C++». Оказалось, «не сервер», «не приложений», «не C++». То есть ребята написали очередной шаблонизатор, для вызова из скриптовых языков. Вроде как быстрый (судя по картинке-гистограмме с неподписанными осями и без единой цифре), но как-то не то, что ожидалось.3.5 Виртуализация в среде highload servers

Вроде по содержанию маркетинговый доклад, подвигающий фишку виртуализации от SWSoft — вместо выполнения виртуальных машин целиком (VMWare, Hyper-V, Virtual PC, VirtualBox, …), на хост машине размещается одно ядро операционной системы, а виртуализуется все остальное — файловая система и все что на ней.

Для маркетингового доклада выглядел как-то вяло, но оказалось, что докладывал не маркетолог, а инженер техподдержки (для него это нормально).

Выгоды сферической виртуализации в вакууме понятны, угрозы тоже (взлом виртуальной машины высоковероятно приводет к взлому машины хостера, и конец всей сотне виртуальных машин). См. например An Empirical Study into the Security Exposure to Hosts of Hostile Virtualized Environments. Да и без всяких взломов, как выяснилось, трудно рулить физическими ресурсами — например можно ограничить виртуальную память каждой машине, но живую память квотировать нельзя — соответственно одна «оборзевшая» виртуальная машина может поставить «раком» остальных.

Сравнений с конкурентами тоже не было. Но тема интересная. Может доживем до момента, когда и монстры типа яндекса, будут жить на виртуальных серверах, переползающих с одного железа на другое.3.6 Application Streaming

Жесткий маркетинговый («парилово») доклад от ENDEAVORS. Презентация с гламуром и анимацией, причем разработанная видимо зарубежом — ни слова по-русски (даже не локализовали).

Суть — очередные модели SaaS, не только как вебприложений, но как скачиваемых в специальную среду rich-приложений, работающих ограниченное время (за плату). Почему-то утверждалось, что CRM-системы на вебинтерфейсе невозможны (вроде как неправда).

Постоянно упоминались куча софтварных патентов, за которых этой конторе вынуждены отстегивать собственно производители типа Microsofта, технологии защиты цифрового контента, и прочие штуки, которые я ненавижу. Надеюсь в светлом будущем не придется арендовать фильмы в виде защищенного этой технологией одноразового приложения, а все эти технологии благополучно сдохнут. Пусть разве что останутся честные SaaSовсцы, предоставляющие (пусть за деньги) приложения на своем хостинге.3.7 Архитектура Photofile.ru

История эволюции архитектуры фотохостинга, от совсем любительской (на одном сервере), до более-менее масштабируемой. В деталях, как появлялись разные узкие горла, и какими эвристиками с ними боролись — как включали второй сервер, как перетаскивали файлы, оставляя на их месте симлинки, как делали шардинг через Dynamic DNS и т.п.

Алсо, ругали Cache Smarty.

В общем, с появлением таких монстропроектов, как «я.фотки», «netprint.ru», с огромным машинным и человеческим ресурсом, с изначально масштабируемой архитектурой, фотофайлу наверно высокие нагрузки более не угрожают.3.8 Архитектура и реализация сервиса печати фотографий netprint.ru

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

Архитектура — Java, вроде как разваленная на вебсервисы (JMS), плюс PHP+XCACHE+LightHttpd для вебморды. Кстати, опять таки PostgreQL.

Максимальная асинхронность, все операции не более константной сложности, причем константу загоняют до нижнего предела:

вместо удаления — пометка об удалении, удаляет специальный демон потом;

перекодировка изображений — написали сами оптимизированный под Intel код, вроде как порвал ImageMagick в десятки раз.

Ребята не ведутся на марки, тренды и авторитетов:

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

опять таки самописная обработка изображений,

RAID — sucks.

тренировки по восстановлению в формате «внезапная пожарная тревога» (может шутили?),

изучение поведения системы под нагрузкой в дни естественных пиков (пост-праздники, НГ).

Попытался после конференции передать свои пожелания к системе. Например, печать EXIF-дат фото на обратной стороне. Когда я еще печатался в мелкой локальной фотолаборатории, моя самописная утилита переименовывала имена файлов под ISO-дату, и как-раз первые восемь символов имени файла печатались сзади. Очень удобно, легко понять, когда это фото и что. Когда начал печататься в нетпринте, халява закончилась — там все фотки при загрузке переименовывались. Это меня теперь сильно останавливает от печати — не хватало еще усугублять файловый бардак, бардаком с бумажными фото. Подождем, может сделают. На самом деле, им даже не нужно патчить софт в машинах-фотолабораториях, проще написать «переименовывающий фильтр» перед подачей этих файлов в машины.3.9 Решение проблем высоких нагрузок на примере проекта Яндекс. Фотки

Сервис очень хороший, и докладчики наверно хорошие (редкий зверь — два докладчика, практически «парный конферанс»), но доклад вызвал раздражение и аллергию.

Презентация намеренно сделана «банально-попсовой», символы архитектуры заменены всякой порнографией (типа женский бюст — Cisco, банан с двумя апельсинами — сами додумайте и т.п.). Плюс дурацкие фото, как эмоциональная иллюстрация идей. Что-то похожее я видел на презентациях с конференции автоматизаторов торговых сетей — тупые и тривиальные тезисы слайдов засыпаны содержимым с fishki.net чуть более чем полностью.

Но возможно это лично мое извращенное мнение, аудитория вроде реагировала живо, наверно понравилось. По сути, конференция — это гибрид похода в кино, театр, тусовку и ресторан одновременно, и народ алкает зрелищ и развлечений.

А так типа все круто, масштабируемость, распределенные датацентры, супернадежность (мониторинг мониторинга) — остальным фотохостингам остается или закрыватся, или искать нишу (ЕВПОЧЯ).3.10 Доставка контента пользователям

Обнаружил, что есть сервис smotri.com, позиционирующийся как самый крутой в рунете. Вообще в этой теме (протоколы передачи видео и т. п.) практически не разбираюсь, посмотрел архитектуру — местами «стандартно фотохостинговая», местами есть специальные гитики.

Средняя температура по больнице — 4 минуты на ролик, 250Кб/сек — доставка. Отметил, что пользуются WebDAVом для трансляции операций по загрузке и редактированию и не жалуются.

Слегка возбудился, когда докладчик начал утверждать, что маршрутизацию оптимального пути от хранилища видеоконтента до потребителя делают стандартным алгоритмом кратчайших путей на графе с весами обратными пропускной способности — очевидно должна получатся фигня. Тут надо либо специальный BFS-алгоритм использовать, либо вообще, учесть загрузку от передаваемых потоков, может даже линейным программированием попользоваться… — но оказалось (в беседе с автором), что там вообще все на глаз — просто «эксперт» разбрасывает целые оценки ребрам (плохой канал — побольше, хороший — поменьше), а потом кратчайшие пути.

Вроде всех все устраивает, другая оптимизация не нужна. Хотя может если видео пойдет в большем качестве, то наконец все упрется не в диски-память, а в сеть, и тут понадобится более серьезная оптимизация.

2008-09-25 РИТ:Высокие нагрузки-2008 (2)

2 День первый2.1 Что такое нагрузка

Хороший доклад, «еще раз о компьютерной архитектуре от практика-железячника».

Диски, память, сеть. Кэш, кэш, кэш.

Прочувствуйте «физику» процесса, подивитесь огромному GAPу эффективности диска на последовательном и рандомном доступе.

Мимоходом «похоронены» SAS/SCSI диски — их удел только в «кеширующих» машинах с высоковероятным рандом-доступом, а в основном нечего выделываться, берите обычные SATA и используйте правильные алгоритмы, (сортировки дисковых массивов — только слиянием и т. п.).

RAIDы вроде тоже заругали (или в другом докладе, не помню) — смысл, что надежность должна обеспечиваться уровнем выше, типа вместо 3 живучих «Тигров» пусть будет 30 Т-34.

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

AMD с привязкой памяти к процессорам must die.2.2 О проектах, отягощенных производительностью

Очень ценный доклад, наиболее профильный для нашей компании. Докладчик сразу отметил, что сейчас есть два самых распространенных полюса систем:

общедоступная вебсистема, дофига пользователей, большие объемы, куча транзакций, никакой сложной логики, пофиг на отказы (нажмите Refresh, если что не нравится и т. п.)

корпоративные системы — сложная логика, то есть одна транзакция дает движение в куче таблиц-счетов и т. п., и вообще объем кода в строчках и человеко-годах огромен. Ошибаться нельзя, падать нельзя, но нагрузка плевая.Но есть и редкий третий тип. Речь зашла о редких высоконагруженных «бизнес-логичных» системах (такие имеет смысл ловить наверно только в ЖКХ — офигически сложные расчеты всяких там льгот, куча транзакций и т. п.), или какой другой массовый биллинг (телекоммуникационный). Банки думаю не — кроме яндекс.денег, любой интернет-банк по нагрузке отдыхает.

Ну а дальше, докладчик прошелся по всем аспектам разработки таких систем, разрушая мифы, раздавая эпитеты и приговоры различным технологиям:

СУБД кроме Oracle, DB2, MySQL и PostgreSQL — ересь,

Oracle DBA зажрались и в массе лохи,

Java есть современный надежный Cobol, и это есть хорошо.

С# сам по себе ничего, но развертывание дороговато, (в основном за виндовс-сервер-лицензии).

Python прет (Django?), возможно будущее за Java+Python.

Всех (обоих) творцов на Erlangе гнать-избегать,

RoR — тормозит,

двухзвенка масштабируется отстойно (привет «Oracle и PL/SQL» подходу), по сравнению с трехзвенкой,

потому что кэш СУБД слишком тупой-низкоуровневый.

нефиг выделываться с XML-сериализацией — CPU на ветер.

Другие мысли:

на инфраструктуру — 10 % прибыли.

автоматизация тестирования форм — обязательно (видимо имелись в виду веб-формы).

В общем, наверно самый полезный для нас доклад, надо дождаться видео (я даже запросил DVD-диски, может пришлют), и смотреть всем.2.3 Как писать высокопроизводительные сервера

Жаркий дискуссионный вопрос. Давным-давно, во времена первого апача, порождавшего при обслуживании пул с трудом переключаемых процессов, все уяснили, что переключение контекста процесса есть штука чудовищно дорогая, и ее надо минимизировать. На помощь пришли методы телекоммуникационщиков из систем реального времени — никакой многозадачности с планировщиком («кузнец нам не нужен»), должна быть однопроцессная система с конечным автоматом (FSM), обрабатывающем события. На таких принципах реалован очень популярный вебсервер статики nginx. Но много минусов — кроме статики он ничего не умеет, стандартные вебфреймворки к нему не прикрутишь.

Автор же доклада принес благую весть — треды в apache2 уже достаточно эффективны и хороши, можно держать их тысячами и пользоваться всеми благами апача (или они пока только в BSD хороши, а в линуксе тормозят — уже не помню, но это не принципиально).

А если применить собственный механизм переключения облегченных тредов (которых обозвали «зелеными тредами», «ко-рутинами»), то вообще никакого проигрыша конечному автомату не будет. Да, у этих корутин есть некоторые болезни (для переключения используется тот же механизм, что для обработки C++ исключений, поэтому от исключений придется отказаться), но в целом, это прогресс и возможно гвоздь в гроб идеи FSM.

Ну еще известна шизофреничная сложность отладки программы с тредами, на что докладчик искренне удивлялся — «зачем отлаживать? не проще ли писать без ошибок?».

Вроде как проверено на крупных яндекс-проектах, типа краулера и верхнего уровня поиска.

Была жесткая дискуссия, требовали доказательств, цифр, корректного эксперимента.

Я лично склонен поверить докладчику.

Причем с корутинами думаю не столкнусь, а то что апач2 с тредами хорош (пусть даже чуть хуже FSM) — это хорошо, возможно альтернативы ему отомрут сами со временем.2.4 HCS — система хранения данных в Рамблере

Расшифровку аббревиатры забыл — некая библиотека для реализации некоторой алгебры операций (слияния, фильтрация, агрегация,…) над сверхбольшими плоскими файлами. (1011 строк, 10Tb/ 200Gb обновлений в день).

Работает быстро (сравнивали правда с неоптимизированными движками MySQL), но, насколько я понял, это не параллелиться (а ведь есть Hadoop, который вроде как можно было бы применить для этих задач).

Вроде готовится к публикации в опен-сорс.2.5 Сервис хранения данных на базе SQL Server Data Services

Маркетинговый доклад. Верный признак «чисто маркетинга», когда всякие «архитектурные» картинки рисуются блоками с градиентной заливкой, всякий гламур и анимация на слайдах. По сути некая компиляция whitepaperов разных технологий (SaaS, DaaS, PaaS,… все модные buzzwords, все в кучу).

Интерес (судя по заполненности зала) был слабоват.2.6 Проблемы работы с большими объемами реляционно слабосвязанных данных в высоконагруженных веб-проектах

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

В общем и новизны нет, и не похоже, что решение оптимально и вообще адекватно задаче.2.7 Масштабирование системы баннерной рекламы с централизованной базой данных

Примитивная и кривоватая реализация баннероторговли и баннеропубликации на Oracle.

Зачем там Oracle — совершенно непонятно, скорее всего унаследованный код финансовых модулей на PL/SQL, которых лень переписывать, вокруг чего начали воротить все остальное. Ибо надежность там не нужна, транзакционность и немедленность реакции — тоже (грузят апельсины бочками данные SQLLoaderом), вообще как-то все ---. Похоже еще есть момент экономии на лицензиях (другой логики для централизованности СУБД я не вижу).

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

2008-09-25 РИТ:Высокие нагрузки-2008 (1)

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

Сразу замечу, хотя явно вроде не указано (в списке спонсоров-соорганизаторов десятки значков участников, даже «udaff.com»), что эту конференцию (highload.info, не путать с highload.ru) было бы правильней именовать «Яндекс:Нагрузки», ибо практически «контрольный пакет» всех докладов был от «Я», также было немало Я-участников в узнаваемой униформе креативных футболках. Похоже Яндекс тут был ключевым организатором, и ничего плохого в этом факте нет. Может стоило тогда так и назвать конференцию и провести ее на самой территории Яндекса, с экскурсиями по машинному залу и т. п. Когда-то (1999) я был в серверной Яндекса, но сейчас думаю там все сильно круче.1 Общие соображения1.1 Понравилось

Огромные плазменные телевизоры в залах. Лучше, чем проекторы, особенно лучше, чем «проекторы с тыльной стороны экрана» (были такие на РИТ, убивали все цвета в ноль).

Специально выделенное время (порядка 15 минут на доклад) на вопросы. Зачастую интересуют именно вопросы (даже не всегда ответы), то есть чтобы уловить, что интересует сообщество.

Добираться метропешеходу вполне терпимо (по сравнению с дырой типа Крокус-сити). Претензии автовладельцев имеет смысл посылать лесом, ибо в Москве автомобиль уже давно ни роскошь, ни средство передвижения.1.2 Проблемы и предложения

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

Были заявлены бесплатные места для студентов, и у нас была красивая студентка, которую мы намеревались взять с собой. Однако, организаторы слишком поздно прислали ей приглашение (только в понедельник его получила), у нее уже сложились планы и переигрывать было поздно. В результате не попала, а жаль — это была большая потеря, таких был явный дефицит.

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

Возможно был бы полезен формат 5-минутных блиц-докладов. Некоторые доклады вполне ужимались до такого формата. Стоит попробовать — то есть либо большой доклад с вопросами-обсуждениями, либо 5 минут позора (или успеха), — и следующий.

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

2008-09-13 SOA

2008-09-09 INTUIT: Операционная система UNIX

Правильный пользователь — мертвый пользователь (гикнутый сисадмин), понимает как все работает, всегда читает мануалы заранее, механизирует любую рутину. Решение — фигня, инструменты — наше все. Правильная документация прочитанная правильным пользователем гарантирует успех с первого раза. «UNИX» (это не опечатка) — звучит круто. human readable/human writeable В редакторе, как и в любом инструменте разработки, конечно, есть функция отмены последнего действия: человеку свойственно ошибаться. Однако человеку свойственно и обдумывать решения, поэтому достаточно предусмотреть отмену только последнего действия. Правило "захотел - получил" здорово дисциплинирует, хотя на первых порах выглядит жестоко. Короткие блоки лекций, простые мысли последовательно. Добротная история UNIX. «shell написаны все системные сценарии, поскольку он представляет собой еще и удобный высокоуровневый язык программирования» философский курс. апология сисадмина Организация подобного рода интерфейса требует, как правило, значительных ресурсов для имитации пользовательского инструмента, и многие требования, предъявляемые компьютеру, оказываются требованиями интерфейса, а не самой пользовательской задачи. В первую очередь это относится к системам с непременным графическим интерфейсом, в которых даже для отправки текстового сообщения требуются устройства графического ввода и вывода: мышь, видеоадаптер, графический дисплей. Причем последние должны обладать определенными техническими характеристиками. DOS/Windows/atorin Некоторые когнитивные ограничения очевидны: например, нельзя ожидать от обычного пользователя способности перемножать в уме 30-значные числа за 5 секунд, поэтому нет смысла разрабатывать интерфейс, который требовал бы от пользователя такой способности. Однако мы часто не учитываем другие ментальные ограничения, которые оказывают неблагоприятное влияние на нашу продуктивность при работе с интерфейсами «человек-машина», хотя эти ограничения присущи каждому человеку. Интересно отметить, что все известные компьютерные интерфейсы, а также многие некомпьютерные интерфейсы «человек-машина» разработаны с расчетом на некие когнитивные способности, которыми, как показывают эксперименты, мы на самом деле не обладаем. (Джеф Раскин, Интерфейс) http://raskin-interface.narod.ru/interface/ вопросы в тестах ужасны.

2008-06-22 Meet the Experts

Был на вендорской миниконференции «Meet the Experts» — однодневный митинг в Редиссон-SAS-Славянской, бесплатный и с кормежкой.
Вендорами были IBM (толкал железо) и Sybase (толкали Sybase IQ).

В качестве свадебного генерала выписали Билла Инмона, наверное самого известного (наряду с Кимбаллом), идеологом хранилищ данных.

Билл, конечно, не сказал ничего нового, ибо в области хранилищ данных, на уровне концепций (MOLAP/ROLAP/HOLAP, факты/измерения, «витрины», «ETL», …)  ничего нового за последние десять лет не появилось. Но так, понагнетал пафос, рассказал как DW (Datawarehousing) рулил при нефтеосвоении Мексиканского Залива, что объемы серьезных хранилищ меряются петабайтами и петабаксами, и что у всех телекоммуникационным провайдеров и финансовых банков, DW должно быть, ибо иначе некруто. Местами он продолжал полемику с Кимбаллом (у меня в блокноте пометка «агрегация только в витринах» — это явно оттуда), а вообще смешной дядька, напоминал комика времени немого кино (типа Чаплина — застенчиво улыбающийся человек в фраке с усиками, и вроде даже в котелке).

Кстати, о смешных персонажах — из начальства Sybase выступала-модерировала интересная девушка. Мало того, что у нее была IT-шная фамилия Еникеева (Anykey ), так она еще выглядела точь-в-точь, как Alice — персонаж IT-шного суперкомикса Dilbert. Нарытая пара фоток недостаточно передает сходство, но живьем оно было почти стопроцентным (особенно по прическе):Ну, пересказывать технические поинты рекламируемых продуктов (Sybase IQ, Sybase Industry Warehouse Studio) — наверное неинтересно.

Выступали железячники, и согласованным образом наезжали на Netezza, был PR IBM (за пределами добра и нравственности — но  с сейлами IBM я сталкивался — бесстыдные манипуляции это для них скорее норма, не удивляет).

Из интересного — было несколько выступающих от российских пользователей Sybase (торговые сети, финансы). Что в целом интересно, из приводимых ими данных — то, что объемы, пока, достаточно копеечны — считанные терабайты, и несколько гигов ежедневного инкремента. В общем, далеко еще до петабаксового клуба. Ибо потом выступали западные пользователи — Vodafone, налоговики, и т.п. — у них объемы уже да, соответствовали мировым стандартам.

2008-06-20 мой монитор

С выбором монитора было с одной стороны проще, с другой тяжелей. Нужен был добротный широкоформатник на PVA матрице — оказалось, теперь более-менее приличные матрицы живут, за редким исключением, на размере 24" минимум. Монитор на самом деле мне был нужен в основном для чтения и просмотра видео (в том числе и с расстояния-кровати и под разными углами), так что «лаги» и «гхостинг» меня не волновали совершенно, а вот яркость поменьше, минимальная нагрузка для глаз, неискажение под углами востребовано было. И чтобы не шумел.

Судя по некоторым обзорами тому же ixbt, среди 24"-х лучший был NEC 2407. S-IPSная матрица, качество NEC, все дела.  Мешала только одна небольшая проблема — в России его не продавали. Сделал стойку на Samsung 245T — но всплыли кучи жалоб владельцев, среди которых были нетривиальные, не терпимые для меня — такие как свист. Альтернатива — сначала 2407, затем 2408 Dell.  Дождаться исправленной ревизии A01 Dell 2408  не удалось (тянуть до июля, ну нафиг), взял самую первую «бета» версию A00.  В коробке даже не было сетевого шнура.  Взял в слепую, без всяких проверок на битые пиксели субпиксели, но не потому, что повелся на маркетинговую акцию Dell по бесплатной замене мониторов с битыми субпикселями, а потому, что ждать и выбирать уже надоело. А насчет бесплатной замены, то я поразился хитрозамаскированному цинизму Dell — на самом деле, заявлено следующее:

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

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

Это очень мудро, ибо мертвых светящихся пикселей на PVA матрицах почти никогда не бывает (по крайней мере, так писал Олег Артамонов, эксперт по мониторам и не только ) — мертвые пиксели на PVA-матрицах черные, а светящимися они бывают на TN матрицах.

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

Сейчас экспериментирую с монитором, в основном, на тему, какую яркость на мониторе выставить (на видеокарте конечно яркость выкручена в ноль) — выше 40% уже ощутим поток тепла (сидишь, как у камина), ниже — виден веер в «веерном тесте» на мерцание. Пока поставил 32%.

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

2008-06-20 мой компьютер

Теперь слегка опишу текущую рабочую (домашнюю) машинку. Вопрос смены компьютера назрел давно, ибо современная разработка и софтовые эксперименты на машине 2002 года, с Athlon XP 1800, уже стали невозможны. Но я так привязан к старым, добротным и отлаженным вещам, что запланированная смена откладывалась в течении пары лет. Но все же процесс пошел.

Выбор деталей я начал с корпуса. Прошерстив весь рунет, особенно жуткую тусовку перфекционистов — forum.ixbt.com, понял, что при всем богатстве выбора, альтернативы Antec P182 нет. К тому же, этот корпус идеально влезал в нишу в тумбочке моего рабочего стола, сделанного по авторскому проекту за два года до. Тогда я заложил размеры под системный блок на глаз, а потом обнаружил, что более-менее крутой корпус, который как правило, miditower (типа Coolermaster Stacker), туда и не лезет. В общем, то что Антек чудом (в упор, после снятия некоторых декоративных элементов) подошел к этой нише, я воспринял как знак свыше. Проблемой правда оставалось то, что в РФ его не продавали — и я рискнул тащить его из немецкого интернет-магазина, вместе с блоком питания (Antec Fanless Fantom 500) по почте. К сожалению, дурацкий интернет-магазин высылал только UPSом, и в результате я попал под таможню, пришлось геморроиться с оформлением и тратить дополнительные деньги на таможенных брокеров (с обычной почтой покупка на такую сумму прошла бы без растаможки). Ездить на таможню правда не пришлось, переписка, заполнение форм и т.п. — по email.

Остальные детали купил в 128.ру, собрал и тестировал в офисе. Да, это очень похоже на серию из Dilberta  в которой Дилберт покупает в онлайн магазине COMP-U-COMP (похоже на мой  computeruniverse.net ), компьютер, и тащит его в офис для произведения вящего впечатления на коллег.

Да, сборщик я совсем никакой, вместо того, чтобы по уму, посадить процессор на кулер, потом их на мать, потом погрузить все это в корпус — сначала привинтил мать, поставил процессор, а потом приколачивал кулер (мать трещала, прогибалась,', но вроде выжила'— смотреть я на это не мог, даже позвал коллегу на помощь) . Да, к такому подходу я привык лет десять назад, когда кулеры были со спичечный коробок, сейчас так делать нельзя.

Состав с краткими, обосновывающими выбор, комментариями:

  • мат. плата s.775 ASUS P5E WS PRO (iX38 4DDR2 SATA2 RAID 2xPCI-E 2xGbitLAN 1394 USB2.0) — брал самый навороченный АСУС для ДДР2 памяти, что без WiFi, но побольше USB разьемов.
  • процессор INTEL Core 2 Duo E8400 (3GHz 6Mb 1.3GHz EM64T) — Рад, что дождался «45 нанометровых» процессоров, еще более холодные и мощные чем шеститысячная серия, причем за те же деньги
  • кулер Scythe Mugen SCINF-1000 — судя по форум.иксбт.ру — стыдно быть не должно. Хотя еле удалось посадить на процессор, и похоже, фиг его снимешь теперь с матплаты, если ее не разбирать и не вытаскивать.
  • память 2Gb x2 DDR2 SDRAM Corsair XMS2 TWIN2X4096-6400C4DHX G (PC6400 800MHz CL4) — Да, я знаю, что под домашним WinXP больше 3Gb памяти не бывает, но не жалко. Зато есть и запас по памяти, и запас по разьемам, если таки буду дома переходить на Линукс или что-то 64 битное (может через пару-тройку лет).
  • видеокарта PCI-E 256Mb ASUS EN8600GTS Silent/HTDP (GeForce 8600 GTS. DDR3. 2xDVI. TV) — самое навороченное от АСУС с пассивным охлаждением.
  • HDD 150Gb SATA Western Digital Raptor WD1500ADFD 10000rpm. — единственный мирный (SATA, а не SCSI/SAS), десятитысячник. Очень боялся шума, который порушит мою идиллию с тихим компьютером в спальне — но ничего, практически не слышно, иногда легкий, не разражающий стрекот. Зато из гибернации система выходит мигом, слизывая в раз три гига памяти с диска.
  • HDD 500Gb SATA2 Seagate Barracuda 7200.11 ST3500320AS 7200rpm — размер 500 давал в тот момент самый дешевый гигабайт, а сама модель вроде самая тихая среди пятисотников.
  • DVDRW ASUS DRW-2014L1T SATA — взял первый попавшийся
  • Logitech Internet 1500 Laser Cordless Desktop беспроводная черная + лаз. мышь беспров.USB — раскладка такая же, как у моей офисной логитеховской клавиатуры, только беспроводное. Сильно заморачиваться по поводу абсолютной тишины — подвеска винчестеров на леску, урезания питания вентиляторам до 500-700 оборотов и т.п., перенос их в нештатные места — не стал. Спать вроде можно, жену не напрягает (разве что мое печатание).