Кто умеет, не учит Среда, Сен 26 2007 

По итогам прошедшего HighLoad-2007.

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

Во-вторых, я разжился футболкой Рамблера.

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

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

К тому же, большинство блоггерствующих пишут какую угодно бурду, только не про дело. Даже не пишут обычно, а распространяют чужой контент — youtube, bash.org и фотки. Фотки, ладно, свои. Но всё равно — процесс написания букв не доставляет им удовольствия (наверно, программируют на перле 🙂 ). С одной стороны лень, с другой NDA, с третьей — надоедает за день компьютерная дребедень. Понимаю. Но кто взрастит новое поколение?

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

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

Мур против оптимизации Среда, Сен 19 2007 

Ну и раз у нас сегодня пошла такая пьянка, напишу-ка я и насчёт программирования немного.

Сегодня утром обнаружил свежую осмысленную статью Джоэла Спольски (Спольского? Та же хрень, что и с Чонтофальски; anyway…), посвящённую перспективам развития веб-приложений. Так, для справки: Джоэл — программист (руководил разработкой MS Excel), предприниматель, израильский десантник и кибуцник, а главное — отличный эссеист на околокомпьютерную тематику. У него вышла пара книжек, и блог его читают, наверно, миллионы. Правда, последнее время он пишет мало (кроме как о своём гешефте), но вот, наконец, разродился.

(тут я, стесняясь, ставлю кат. Кто читает по RSS, не судите строго — уж больно много букв получилось!..)
(далее…)

А мы вам бомбу на рельсы положим! Среда, Сен 19 2007 

Дисклеймер: Заголовок поста является литературным актом в духе Ширинкина, не является (заведомо ложным) сообщением о готовящемся террористическом акте.

К чему это я? К тому, что проникаюсь всё большим отвращением к системе железнодорожного сообщения в одной отдельно взятой стране. Хватит, зажрались!

Началось с того, что, запустив сегодня свою благословенную программу, получил исключение с ошибкой 404 — Page not Found. Сложив пару матов, пошёл смотреть, что там чудят железнодорожники. Оказывается, сайт ORW.ru сдох: все страницы удалены, большими буквами написано:

Уважаемые посетители!
По организационно-техническим причинам с 17 сентября 2007 года услуги по предоставлению справок и заказу билетов временно недоступны.

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

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

Пошёл посмотреть, что такое МЖА и обалдел. Если их сайт не врёт, у них забронированы буквально сотни отличных билетов (в том числе дешёвых плацкарт) на все лучшие поезда до Питера! Бери — не хочу! Любой поезд, верхние, нижние, боковые — что угодно! И всего 190 рублей сверху (правда, надо заранее ехать выкупать), или 290 — с доставкой по Москве.

Ну нет, братцы. Не на такого напали. Уж лучше я завтра весь вечер на кнопке F5 просижу, но возьму себе билет, когда вы бронь снимать будете. И не в рублях дело — при покупке через РЖД не намного меньше переплачиваешь — но надо же совесть иметь! И так у нас РЖД монополист, крутит ценами как хочет, так ещё всякая сволочь будет у них на голове сидеть и дополнительное бабло сгребать!.. Причём ведь, если их сайт не врёт, то у них чуть не треть иного поезда забронирована! Вот кто создаёт проблемы с билетами-то, а? Это именно бронь, в открытой продаже этих билетов нет (уж плацкартных точно, я проверял).

И ещё очень смешно у них на сайте написано:

Основными задачами производственной деятельности МЖА являются:

  • резервирование мест и предварительная продажа билетов в поездах по заявкам министерств, ведомств, госдепартаментов и других центральных учреждений, обслуживание съездов и конференций;
  • резервирование и продажа проездных документов во внутреннем, межгосударственном и международном сообщениях по заявкам организаций, пассажирских служб сети железных дорог РФ, СНГ и Балтии, железных дорог других стран;
  • повышение культуры и качества обслуживания пассажиров за счет расширения предоставляемых пассажирам услуг;
  • развитие сети туристических услуг.

Спасибо, родные, за ваш самоотверженный труд! Куда б мы без вас?..

О криведках и протоколах Среда, Сен 19 2007 

Недавно пробегала по рунету «шуточка» для тех, кто «в контакте»: прислать товарищу ссылку, которая меняет его имя на «я креведко». Я и сам попался на эту дурацкую подколку, да и не заметил, пока братец не подсказал. Было запаниковал, думал — какое-то серьёзное хакерство, но потом разобрался и успокоился: просто кто-то подсунул ссылку типа vkontakte.ru?что-то-там.php?name=ya+krevedko. Действительно, кажется, ерунда — надо смотреть, на что давишь. Однако не так просто.

Не везде ожидаешь подвоха. В аське или в почте, увидев что-нибудь неожиданное якобы от знакомого человека, призадумаешься. С другой стороны, если тот же знакомый оставит тебе ссылку в комментарии к твоему блогу, обычно ничего не опасаешься и смело по ней переходишь. Я, как любой разумный человек, пользуюсь таким браузером, в котором можно ходить по любым ссылкам без опасения словить трояна, и потому не очень внимательно смотрю, на что нажимаю. Так что, на мой взгляд, к попавшимся на этот подкол не стоит предъявлять больших претензий в неосторожности. Это явно вина сервиса, на котором возможны такие косяки.

Ладно, пошутили. Но ведь так можно и сильнее подгадить. Написать что-нибудь совсем нехорошее, например. Как-нибудь скомпрометировать человека. А если запостить что-то в его дневник таким макаром? Взлом! А если так почту можно рассылать? Спамерская дыра! Разговоры о том, что надо каждый раз вылогиниваться, попользовавшись сервисом — в пользу бедных. Не для того делают галочку «запомнить меня на этом компьютере».

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

Как известно, HTTP-запросы бывают GET и POST (не говоря о прочих). Говоря простым языком, GET — это запрос, при котором параметры (данные формы ввода), если они есть, появляются в адресной строке, например: http://www.google.com/search?hl=en&client=opera&q=http+GET+length. Всё, что идёт после search?, — это параметры. А при POST-запросе параметры передаются в теле запроса (что бы это ни значило). Если вы где-то встретили ссылку и нажали на неё, запрос будет отправлен методом GET. Невозможно сделать ссылку, которая отправляла бы POST-запрос (хотя бы уже потому, что негде указать параметры для запроса). Поведение формы ввода можно задать в HTML-коде страницы — это на усмотрение вебмастера.

Почему для отправки форм иногда используют GET, а иногда POST? Обратимся к первоисточнику, сиречь спецификации протокола HTTP.

RFC 2616, sect. 9.3 GET:

The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process.

RFC 2616, sect. 9.5 POST:

POST is designed to allow a uniform method to cover the following functions:

  • Annotation of existing resources;
  • Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
  • Providing a block of data, such as the result of submitting a form, to a data-handling process;
  • Extending a database through an append operation.

Что тут существенно? Сама спецификация велит нам использовать GET для получения данных, и POST — для их изменения. Действительно, известны страшные истории о том, как робот гугла стёр целый сайт, пройдясь по ссылкам вида «удалить страницу». Никакая модификация данных не должна производиться GET-запросом.

Дальше остаётся только заметить, что хотя авторы сайта могли указать метод POST для формы, они не исключили возможности прислать те же данные через GET. Ублюдочный язык PHP (на котором написано ВКонтакте.Ру) — по крайней мере, в некоторой конфигурации — собирает все параметры запроса в одну большую кучу, чтобы ленивому программисту не надо было задумываться, через какой метод приходят данные. Хотя проверка заняла бы одну строчку (а при правильном написании кода вообще произошла бы сама собой), на сайте её сделать поленились, или забыли. В результате получается как всегда: чем удобнее, тем менее безопасно. В данном случае удобно программистам фконтакта, а опасно для нас, пользователей.

Новости от Яндекса Вторник, Сен 18 2007 

Мало того, что в пятницу мы открыли Я.Ру на чтение.

Без пяти дней десять лет назад была запущена новая поисковая машина Яndex-Web, и мы уже разминаемся красненьким. В связи (в связи ли?) с этим Яндекс.Почта увеличивает дефолтный объём почтового ящика до 10Гб. Кроме того, стыдно сказать, на днях попалился яндексовский ярушечный jabber-сервер (см., например, тут, тут и тут) — вероятно, есть причины, почему он не анонсирован официально, как вы думаете? (В любом случае, утекло так утекло — надеюсь, никто мне не настучит по башке за ссылки.)

В общем, что там ни говори, живём, растём, развиваемся. Кстати, кто-нибудь хочет у нас работать?..

Входите, не заперто! Пятница, Сен 14 2007 

Я.Ру открылась на чтение. Добро пожаловать.

Регистрация всё ещё по приглашениям. Если надо — обращайтесь.

Блоги, которые играют в игры Четверг, Сен 13 2007 

Ведение дневника для многих, особенно на больших блог-системах вроде Я.Ру или ЛивИнтернета — это своего рода игра. Без чётких правил и с не вполне конкретной целью, но тем не менее. Причём в ней есть и соревновательная компонента, и коллективная, «на общее благо».

Есть тривиальные, как сейчас любят говорить, «пузомерки»: количество читателей, друзей. Собственно, крутизна любой домашней странички, не только блога, измеряется в простых поисковых категориях: позиция в гугле, индекс цитирования, посещаемость. Эти параметры без изменений проецируются на дневники. Более смешной показатель — разница friends/friend-of, которую тоже можно выводить из формул расчёта PageRank, но в блогах имеет скорее психологический смысл: легко напроситься на подружение, если задружаешься сам, а вот заполучить невзаимного друга — это явная заслуга твоего контента.

Количество комментариев — тоже интересный показатель. Приятно получить к какому-нибудь посту сотню ответов. Понятно, что истинная ценность этих комментов может быть нулевой: например, если это всё «плюс-адин» и «аффтар жжот». Выдержать содержательную дискуссию на сто реплик может не каждый интеллектуал, тем более в Сети, где скорость переключения контекста огромна, и нет причин задерживаться на одной теме. Поэтому наибольший отклик идёт на мультимедийные посты, где достаточно просто отметиться. Комментируя, я выражаю своё почтение автору, поскольку добавляю ему условных очков в условной гонке блогов, и могу потом рассчитывать на ответную благодарность. На таком обмене любезностей растут целые общества «первонахов», которые ставят ссылки на YouTube и Fishki, а потом обмениваются между собой многочисленными восхищёнными «ф десятке».

Параллельно существуют микроигры «ради процесса», которые служат для укрепления межблоггерских связей, всякого рода вирусные штуки. Человек участвует в них не столько, чтобы «набрать очков», но чтобы доказать свою причастность к процессу. Простейший пример — тесты (http://aloepole.ru/faces/tests/ и подобные). Человек проходит тест, чтобы показать: да, я в теме, я со всеми, я тоже прохожу тесты. Прочти и передай товарищу. Иногда появляются цепные посты старого стиля (один мальчик запостил этот коммент двадцати друзьям, и на следующий день ему сломали обе ноги…). Более современная версия — флэшмобы.

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

Тот, кто сделает такую игру, взорвёт мозг всего РуНета. Я уже начинаю придумывать…

О HR и о комментах Понедельник, Сен 10 2007 

Хотел написать комментарий Яше, но так как он подлым образом не позволяет комментировать анонимно или по OpenID, напишу тут. Что, кстати, хорошо согласуется с популярной среди A-List блоггеров концепцией, что комментировать нужно в собственных дневниках, а комменты как таковые отключать (аргументы: если человек имеет сказать что-то стоящее, то он тем самым создаёт некую ценность, и вполне разумно, если эта ценность будет прибавлять веса его собственному дневнику; если же он хочет только отметиться lol-ом или плюс-один-ом, то зачем вообще такие комменты; целостность же дискуссии должна обеспечиваться пингами/трекбэками — предполагается, что приличные блоггинг-платформы их поддерживают). Итак, пара мыслей про HR.

HR, по моим представлениям, грустить не должен. Собственно, он только-только должен появляться, настоящий менеджер по кадрам. Если несколько лет назад люди ходили толпами и просили дать им пару сотен на пропитание, то настоящий толковый HR-менеджер не был нужен. Закидывай себе невод да вытаскивай золотых рыбок. Поэтому поиском сотрудников и занимались люди, к делу непригодные. Мои дорогие лыжники, конечно, вспоминают славного нашего Андрея Львовича, которого, кажется, кроме корпоративных попоек да ухлёстывания за бухгалтерией, ничего не интересовало. И тем не менее сотрудники были, приходили новые, жизнь бурлила. Теперь же, если действительно есть кризис, наконец пришло время засучить рукава и поработать.

Что может делать настоящий Менеджер Человеческих Ресурсов? Работать комиссаром — общаться с коллективом, стараться их чаянья по возможности проталкивать в жизнь, а если нет возможности — объяснять, почему. Раскидывать сети — заниматься хэдхантерством в хорошем смысле слова. Выяснять сравнительные преимущества конкурентов (и избавляться от отставания, по возможности). Потому что говорить, как нам говорили: «составьте список требований, обсудим» — это смешно. Если доходит до того, что я вынужден своему начальству выдвигать требования, чуть ли не забастовки проводить, — значит, кто-то другой не сделал это за меня.

Разумеется, это совершенно другая работа, чем кадровик при советской власти. Это вам не бумажки перекладывать. Но это интересная ип сложная задача, в которой, может быть, и я бы хотел себя в какой-то момент попробовать. А говорить, что HR грустит — это как сказать, что грустят PHP-кодеры, которых вдруг заставили на С моделировать атомную бомбу. Найдите новых людей, и всё будет.

Впрочем, исходная-то проблема в уровне программистов. Мало толковых людей (везде), что поделать. Но это в консерватории надо что-то подправить, где-то с яслей начиная. Тут, конечно, одним HR-ом не обойдёшься.

Заманиваю читателей Пятница, Сен 7 2007 

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

Вкратце проблема такова. Мои записки транслируются в моё Я.Ру (сейчас яруха ещё не открылась на всеобщее обозрение, но это временно), посредством RSS-потока. Если я убираю часть поста под кат, то в RSS попадает только начало поста, настроить это поведение нельзя. Некоторым людям неприятно, что они не могут целиком прочитать мой пост в своей ленте друзей в Я.Ру. (Строго говоря, никто ни в каком RSS-агрегаторе не может прочитать целиком.) Что делать?

С одной стороны, я готов признать, что последнее время стал ставить каты более активно, чтобы стимулировать ярушечников заходить на weekly. Это, как будто, нехорошо: насилие над читателем. Я сам не люблю, когда люди выкладывают в RSS обрезанные посты, поскольку сам читаю всё через агрегатор, и кликать по ссылкам мне неохота. Правда, могу в своё оправдание сказать, что ничего не имею против людей, читающие меня через RSS — каты я стал ставить исключительно для того, чтобы weekly не пропал в тени ярушного журнала — тот всё-таки существует для рабочих моментов и для пустой трескотни, а weekly — для больших серьёзных постов. При том, что ярушная аудитория у меня существенно больше вордпрессовской, я хочу как-то объяснить людям, где у меня «настоящий» блог, а где — так, болтовня. Возможно, кто-то из ярушников даже будет писать комменты в «правильный» блог.

С другой стороны, имеет ли вообще значение, где люди читают? Иные скажут, что это пустое тщеславие и накрутка посещаемости. Отчасти да, но не совсем: многие люди пишут параллельно в несколько, условно говоря, изданий, и понятно, что они могут писать туда по-разному и о разном, без всякого лукавства. Просто потому, что разные издания имеют различные цели и формат. Опять же, вопрос комментариев, и вообще контекста. Я заинтересован в том, чтобы содержательная дискуссия, if any, протекала в нужном месте, это раз. Человек, зашедший с ЯРу на викли, с большой вероятностью может проглядеть и другие мои содержательные посты, которые на ярушке надо кропотливо выискивать, это два.

В общем и целом, расклад выходит такой. Я хочу иметь в RSS полные тексты, и меня не беспокоит, что люди могут читать меня, не заходя на викли, но меня волнует identity этого дневника. Это, если подумать, вполне современная веб-два-нольная проблема, главная проблема синдикации: сетевые тенденции таковы, что информация, производимая неким сетевым ресурсом, должна легко поддаваться манипуляциям, но при этом ресурс хочет сохранять ассоциацию со своим продуктом. Никто не готов отдавать данные за просто так. На гуглмапсах ставятся водяные знаки. В газетных статьях — ссылки и копирайты. На погодниках и счётчиках — логотипы. Они забрасывают приманку, чтобы затащить людей к себе, и жестоко борются с теми, кто хочет перекусить леску. Но если мои слова (вряд ли особо интересные) — это всё, что у меня есть, разве могу я их нацепить на крючок целиком? Наживляю по крошке…

Линукс линуксу linux est Четверг, Сен 6 2007 

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

Следующая страница →