Жизнь, веб, XMPP, TAS, электронные самоделки

Про Белореченск

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

Так уж получилось, что я к этому был совершенно не готов — не взял с собой в дорогу ни копейки. Даже карточка сбербанка — и та была практически пуста. Было, правда, рублей 200 на карточке Яндекс.капусты, но я никогда не использовал её для обналичивания средств и даже не знал PIN. Словом — загвоздка. Конечно, достаточно мелкая (до этого однажды приходилось «застревать» в Москве), но достаточно неприятная.

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

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

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

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

Банкомата в нём, однако, не нашлось, но сотрудница банка подсказала целых три места, где он есть. Ещё минуты три ходьбы — и вот он, сука!

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

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

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

Сновидение

Приснилась одна тян. Никогда не общался с ней ни IRL, ни через интернет, а лишь видел фото. Будь она индонезийской — я бы уже рассказал ей свой сон. Но она была русской.

Cisco

На работе закончились свободные порты для сетевого оборудования, а подходящего хаба не нашлось. Пришлось приспособить в качестве хаба коммутатор Cisco Catalyst 2950.

Cisco Catalyst 2950

На фото также видны маршрутизатор D-Link DIR-620 и ATA Linksys SPA3102. Просто, зато со вкусом (а заодно и с запасом).

Пробуем Qt 5.0

Поэкспериментировал с недавно вышедшим Qt 5.0. С сожалением для себя отметил, что стиль Plastique более не доступен. Однако, модификация кода для его работы на новой версии Qt оказалась достаточно простой, по крайней мере, для столь простого приложения, как мой «Галеризатор».

Gallerizer на Qt 5.0

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

(upd) Проблема со шрифтами сошла на нет после обновления Qt до git-версии.

Мысли вслух

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

<чел> без обид если твоя одна онфа не прекоатит спамить мои учетки то буду самить конйу эту в 8 ядер ********* <WST> привет, да спамь ради бога, у нас больше ядер :) <WST> А если серьёзно, то думаешь я слежу за всем этим? <WST> Мне побарабану что эти идиоты творят <чел> ну тогда без обид <WST> Напиши админу: abuse@jsmart.web.id <WST> Есть же контакт на сайте? <WST> Впрочем, я не против, делай что хочешь (удаляет меня из ростера)

Орфография и пунктуация сохранены.

Django

Закончил работу над небольшим проектом на Django. Ещё предстоит допилить некоторые вещи, но уже можно смело говорить, что этот проект последним не будет. Вполне вероятно, что Django будет задействовано мной при разработке арабского аналога сервиса микроблогов Lopbox, хотя в отношении этого проекта я ещё не определился. Желание заценить в действии Yaf никто не отменял.

Кстати, да, жарить еду на масле кунжута — дорогое, но, всё-таки, удовольствие!

IPv6

Долгое время я был, как я полагаю, единственным носителем футболки he.net в Адыгее (учитывая, что их ещё недавно было 85 человек по всей России, это выглядит правдоподобным). С недавних пор ситуация изменилась и теперь ко мне присоединился Алексей Золотов (shade), друг по «Шаманграду» и ООО «Оргтехсервис». Интересно, кто-нибудь будет следующим?

О социальных сетях

LinkedIn всегда был неюзабельным говном, а теперь им стало вообще совершенно невозможно пользоваться. Письмо с подтверждением того, что я действительно являюсь собой, просто-напросто не приходит. Даже если открыть лог MTA и пытаться авторизоваться, письма не видно. Кажется, с LinkedIn просто пора завязывать.

Почему я люблю Arch больше, чем Debian

Коллеги назвали меня извращенцем из-за того, что я пользуюсь Arch Linux, а не Debian. Это мои аргументы против Debian в качестве ответа.

  • Всё очень сложно, полное игнорирование принципов KISS;
  • Навороченные зависимости пакетов;
  • Пещерная версия MySQL;
  • Допотопная версия Django;
  • Древнегреческий nginx;
  • Куча других первобытных пакетов, которые так или иначе нужно искать на стороне в левых репозиториях типа backports, либо компилировать самостоятельно;
  • Разделение пакетов на бинарные и dev-части, содержащие заголовочные файлы;
  • Непонятные цифры в названиях пакетов библиотек, мешающие угадать название пакета.

Обратите, пожалуйста, внимание, что это не вброс, а лишь аргументация моего собственного выбора.

О работе

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

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

О Mozilla Firefox

Firefox — отличный браузер, но у него есть один существенный минус. Этот минус заключается в том, что обновления браузера очень часто приводят к отказу расширений. Я пользовался Firefox несколько лет, но в итоге был вынужден сменить его на Chromium как раз по названной причине. Мне надоело, что с каждым обновлением что-то «отваливается» и приходится пересматривать список используемых расширений, а отказываться от привычек очень неудобно, гораздо проще сменить браузер.

Пробки

За последние годы дорожные пробки серьёзно и основательно проникли в глубинку. Ещё буквально лет 10 тому назад в Майкопе никогда не было ничего подобного.

Фото

Похожая ситуация наблюдается не только в городах, но и на дорогах вне населённых пунктов. В частности, на выезде из Белореченска на 1Р253 в сторону Усть-Лабинска нередко приходится стоять полчаса, не говоря уже о том, как сильно участились в этом месте ДТП. Интересно, появится ли там когда-нибудь нормальная развязка?

Скрытая опасность

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

Фото

Новые фото

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

Jakarta road

Работа с SVG из PHP

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

На новой работе

На новой работе

Сайт моего посёлка

Спустя лет 10 после меня, мой населённый пункт наконец-то обзавёлся собственным сайтом. Правда, все домены, связанные с именем «Красногвардейское», уже оказались забиты населённым пунктом из Ставропольского края, что, впрочем, неудивительно.

Николаевское.РФ

Про фильтры в Twig

Всем хороши пользовательские фильтры в Twig, кроме одного: при добавлении нового фильтра нужно создавать объект класса Twig_Filter_Method или Twig_Filter_Function в зависимости от того, чем является callback — массивом, содержащим объект и имя метода, или строкой. Возможности передать в качестве фильтра анонимную функцию (объект класса Closure), насколько я понимаю, нет вообще.

Почему нельзя было сделать сразу, чтобы понимался любой корректный callback? Интересно, в шаблонизаторе Django тоже не получится сделать фильтр из анонимной функции?

Юные кулхацкеры

Владельцы крупных интернет-проектов часто получают угрозы атак на их сайты. Вчера как раз был очередной такой случай — какой-то мудак на корявом английском постоянно напоминал, что Jabber-серверу SmartCommunity осталось жить сколько-то там часов. Разумеется, администрация проекта не придала угрозам серьёзного значения и, как оказалось, оно того действительно и не стоило. В «час X» на C2S-порту сервера появился 51 коннект с одного IP, через которые шёл подозрительно быстрый трафик. При пиковой нагрузке в 35 тысяч пользователей это даже не DoS, а так, незначительное отклонение от обычного трафика, различимое только при тщательном наблюдении.

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

Мораль такова — если вашему проекту начинают угрожать — пора в магазин за поп-корном. Пара ссылок в тему: раз, два, три.

ООО «Оргтехсервис»

Иногда я чувствую себя менеджером по приёму на работу в сабж.