wtf

shipilev


ШипиЛёша (tm)

Being responsible sometimes means pissing people off


Самый верхний пост
wtf
shipilev
Привет, меня зовут Алексей Шипилёв. В отношении меня можно использовать имена Лёша, Алексей, Лёха, или в крайнем случае, Шипилёв.

Этот ЖЖ -- мой персональный, сюда я пишу общие мысли и нетехнические заметки. Для остального есть более подходящие сервисы:

Активная страничка "ВКонтакте": http://vkontakte.ru/id288639
Частенько пишу на Хабре: http://theshade.habrahabr.ru/
Мой профессиональный путь (+CV) в LinkedIn: http://www.linkedin.com/in/alekseyshipilev
Дежурная страничка в ФБ: http://www.facebook.com/aleksey.shipilev
Коммуникатор и.о. Президента России: https://twitter.com/shipilev


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

Кто я
wtf
shipilev
(публичная часть, периодически пополняется)

Настоящий я, которого можно увидеть в личном общении, выглядит так:
Read more...Collapse )

Про двести мегабит и бесплатный аттракцион
wtf
shipilev
"Здравствуй, дорогой дневничок" (с)

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

На внешнем линке у меня стоит Mikrotik RB951G-2HnD, у которого все пять портов гигабитные, который поддерживает нужную мне инкапсуляцию в PPPoE и т.п. Из своих прошлых лабораторных экспериментов (у меня этих роутеров ещё целый ящик -- интернеты в летних школах на них работают) знаю, что PPPoE там можно выжать на 150 мбит без ухищрений, и под 180 с ухищрениями.

Окей, захожу неделю назад к провайдеру, переключаю тариф. На следующий день мне отзваниваются админы и молвят: "Чай тариф у вас за 100 мегабит ушёл, вы уверены, что оборудование выдержит чашу сию?". А я куда-то бегу и путано объясняю, что мол да, микротик с гигабитными портами, уже пробовал, должно заработать, ну а не заработает -- мне лишний фан поковыряться. За такие деньги -- это всё равно что бесплатный аттракцион.

Звонит мне позавчера монтажник (М).

(М): Ну что, когда переключаем?
(Я): Мы тут в разъездах -- вы можете меня перебросить просто в гигабит? А я как приеду, посмотрю, встал мой порт правильно или нет.
(М): Не, давайте мы лучше на месте всё проверим.
(Я): Ну ок.

Сегодня отзванивается два раза (в первый раз обнаружил, что лифтёры поменяли замок), приходит, с порога говорит:

(М): Ну всё, переключил в гигабитный порт.
(Я): (открывая админку микротика на ноуте, и показывая "autoneg: 100 Mbps") Нифига не верю.
(М): Не понял, в прошлый раз [полтора года назад] у вас же циска была.
(Я): (в ступоре пять секунд) А, ну да, то был Cisco-Linksys, но он мне уже не подходит (вспомнил, что я этим же товарищам показывал в wireshark'е rogue DHCP server в их же сети + мелкий город = помнят!)

Приходим, я вытаскиваю кабель из микротика, показываю -- вот, кабель, живой. Монтажник смотрит на мою стойку с батареей мелких серваков, говорит "Да..." (по поводу стойки) и временно тупит. Пока он это делает, я замечаю, что пины не дожаты (как эта хрень вообще работала?), делюсь этим наблюдением. Монтажник даёт мне в руки кремпер, рассматривает стойку. Дожимаю. Вставляю. Линка нет. Вообще.

Смотрим с монтажником на потрёпаный кабель, потом смотрим друг на друга. Перспектива перебрасывать 50 метров кабеля не прельщает. Окей, сую аплинк в свой Zenbook через Ethernet->USB адаптер. Линка нет. Матерюсь на TrendNet. Открываю Thinkpad, сую аплинк туда -- линка нет. "Ну", -- говорю, -- "надо прозванивать". Достаю кабель-тестер. Всё это происходит в течение 30 секунд (у меня почти всё валяется хламом на столе лежит под рукой).

(Я): (задумчиво) Наверное, не стоит в живой порт тестером тыкать.
(М): (мгновенно отвисая) ОК! Пойду повешу ответку на тот конец. (хватает ответку, убегает)

Прибегает через минуту, начинает рыться в сумке. Я подключаю кабель-тестер -- все пары разомкнуты.

(Я): Что за хрень.
(М): А, я там на вилку посмотрел, зелёная пара с мясом вырвана [как эта хрень вообще работала?], ща переобожму. (роется в сумке) Да, и у меня ещё будет личный вопрос. (убегает)

Прибегает, вставляем, линка нет. Твою же мать. Смотрим внимательно на вилку -- обжата кроссом. Смотрю на монтажника.

(М): (мгновенная реакция!) Всё понял. (достаёт кусачки, начинает потрошить кабель)

Пока он переобжимает вилку, я подбираю бардак. Монтажник заканчивает (куда быстрее, чем обычно я это делаю -- тренировка!), залипает перед стойкой, потому что совсем не очевидно, в какой из портов на этих железках тыкать (а их там штук восемь на трёх девайсах свободных). Хватаю кабель, тыкаю сначала в цисковский свитч, тот радостно мигает гигабитным LED'ом. Перетыкаем в микротик -- "autoneg: 1000 Mbps". Ура!

(М): Надо бы проверить, что действительно гигабит.
(Я): Ок. (открываю Zenbook)
(М): Ну, по вафле, наверняка, не получится.
(Я): И то правда. (логинюсь в десктоп, открываю speedtest). У вас же PPPoE-шный BRAS в Чехове?
(М): (кивает)
(Я): (выбираю Чехов) Ага, ну вот: 170 мбит вниз -- это потолок pppoe на моём микротике, а 130 мбит вверх -- это потолок masquerade+pppoe на нём же, так что норм.
(М): (пауза) То есть, претензий нет?
(Я): Неа, всё отлично.

Монтажник собирает вещи и под конец говорит: "Да, хотел спросить: как нынче правильно писать фейловер-скрипт на два WAN'а в микротиках?". Рассказал ему про свой фейловер на домолинковский adsl, монтажник ушёл со словами "надо же, я думал, что это сложнее". А я сижу под впечатлением и думаю, что:

  1. Я в каком-то Sorkin-style сериале, потому что ничего лишнего не сказано, а всё нужное сказано и сделано с минимальной задержкой. На всё у нас ушло минут 5-10 активного творчества.

  2. "In Soviet Russia, you are providing service to your Internet Service Provider." Но всё-таки я люблю таких монтажников -- им не надо врать, что роутер я уже перезагружал -- не хочется же аптайм в двести дней портить.

(Не рекламы ради, но информации для: это про Rialcom в Пущино. Боевые экскаваторы довольно часто ходят на рандеву с их оптикой -- для этого мне и пригождается фейловер, -- а в остальном всё очень хорошо).

Про благотворительность
wtf
shipilev
В стародавней нашей общаге на Вяземском переулке в Питере в момент нашего там существования бурно развивалась местная локалка. Строилась она силами местных студентов, часто просто из палок и желудей. В своём пике сетка имела в себе примерно 2.500+ хостов, опоясывала четыре крыла в 5-7 этажей и была вся сплошняком построена на неуправляемых свичах сомнительного качества.

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

Вот она, фотография этого красавца:


На бумажке написано "НИЧЕГО НЕ ТРОГАТЬ! - Stas, TheShade" -- что намекает на то, как хрупка была эта инсталляция. Поиск колец в неуправляемой сети без всяких этих (R)STP-протоколов представлял собой применение метода проб и ошибок в промышленных масштабах -- один раз мне пришлось даже несговорчивым китайцам залить один их порт эпоксидкой, но это уже совсем другая история.

Это всё преамбула. В какой-то из моментов меня крайне задолбало, что сетка часто падает: в интернете не посидишь, в контру не пошпилишь, с местных ресурсов ничего толком не качнёшь. Поэтому я пошёл в магазин, и будучи тогда уже условно богатым интерном в Intel, купил 8-портовый гигабитный Cisco-вый ширпотреб за, как сейчас помню, 1.7 килорублей. Пришёл, поставил, победил. Бумажечку обратно повесил, ибо проблем с топологией остальной сети циска героически не решила. Однако свою локальную задачу обеспечения стабильности решила на ура.

Стоило мне несколько часов кряду понаслаждаться не падающим местным IRC, как ко мне в комнату нагрянула делегация из четырёх товарищей с одной женщиной, переодетой мужчиной. Делегация сходу заявила причину своего визита: "ТЫ СВИЧ ПОМЕНЯЛ?!". Я кивнул, и не успел ещё рассказать, какие результаты это принесло, делегация произнесла: "ТЫ ОХУЕЛ?! МЫ ЗА ЭТО ПЛАТИТЬ НЕ БУДЕМ!", -- и переключилась на приём. Когда я отвис и объяснил, что от них вообще-то ничего не требуется, и более того, это нигде не анонсировалось и сделано из благих побуждений нами, местными, ради нашего же местного блага -- так что enjoy и всё такое -- делегация меня недоверчиво осмотрела и бурча отправилась восвояси.

Но первый урок я запомнил надолго, тем более что он закреплялся другими уроками: в благотворительном действе можно легко говна наесться. Почему так происходит, и происходит ли только "в этой стране" (с), я рассуждать не буду, а только скажу, что решил я намедни распродать свой хлам местным жителям, и помня, что бесплатно раздавать незнакомым людям -- себе дороже и нужно взамен просить какой-нибудь эквивалент, выставил я на продажу винт на 80 гигов...

Данные выборов по Москве и МО из ЦИКа
wtf
shipilev


Как обычно, мы собирали данные из ЦИКа, основная страница вот здесь:
http://shipilev.net/pub/articles/elections2013/
(пожалуйста, цитируйте ссылку на основную страницу, а не ссылку на пост, если вам нужны данные; ЖЖ крайне не надёжен в этом смысле)



Я хорошо запарился, чтобы аккуратно запротоколировать, что и в каком порядке появлялось на сайте ЦИКа. Архивы максимально нормализованы, чтобы можно было простыми контрольными суммами увидеть, менялось ли что-то в их содержимом.

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

T Время УИКов Голосов Явка Навальный Собянин Данные Комментарий
+0:00 20:00 MSK 0 (0%) 0.0% 0.0% 0.0% 0.0% csv Пустой сайт ЦИКа
+2:47 22:45-22:47 MSK 240 (7%) 3.5% 34.5% 23.06% 55.98% csv Первый загруз данных
+4:40 00:40-00:48 MSK 794 (22%) 18.6% 32.4% 25.76% 53.05% csv Начало второго загруза данных, частичный дамп
+5:00 00:48-01:00 MSK 1287 (36%) 31.8% 32.1% 26.16% 52.66% csv Второй загруз данных
+6:33 02:33-02:47 MSK 2377 (66%) 63.7% 32.0% 27.03% 51.50% csv Начало третьего загруза, частичный дамп
+6:55 02:47-02:55 MSK 2565 (71%) 69.0% 32.0% 27.03% 51.53% csv Третий загруз данных
+15:00 10:44-11:00 MSK 3597 (100%) 100.0% 32.0% 27.24% 51.37% csv Начало четвёртого загруза данных, частичный дамп
+15:17 11:00-11:17 MSK 3597 (100%) 100.0% 32.0% 27.24% 51.37% csv Четвёртый (финальный?) загруз данных
+23:00 18:40-18:55 MSK 3597 (100%) 100.0% 32.0% 27.24% 51.37% csv Мелкая поправка в контрольных соотношениях


В общем, надежды на то, что cikrf.ru полностью в онлайне публикует результаты, не оправдались. Выгрузка, очевидно, идёт частями, и делает это с существенным опозданием после объявления очередных результатов журналистам и вообще публике. Это, ясен пень, чести ЦИКу не делает.

Теперь несколько вопросов в воздух:

  1. Откуда МГИК брал данные, которыми кормил журналистов? Сайт ЦИКа и сайты нижестоящих ИКов -- это что, просто "регулярно" обновляемые слепки?

  2. Обещавшему результаты к полуночи -- "Как бэ, э?". Нет, ну ладно, это он может погорячился, и в МГИКе реально в поте лица обрабатывали данные. Но всё-таки, сроки в четыре раза сорваны.

  3. Что происходило между 3 часами ночи и 11 утра? Все спали? (Лично я спал, поэтому не могу в этом винить никого другого)



UPD: "Нотариально заверенный скриншот" с калькуляцией.

про памятники и сцинтилляторы
wtf
shipilev
Каждый уважающий себя радиолюбитель должен хотя бы раз потыкать в злачные места. В Пущино я нашёл только два злачных места, на одно из них наткнулся случайно, по срабатыванию триггера нарастания мощности дозы, второе увидел визуально, исследуя первое. Моя новая игрушка чувствительнее моей прошлой раз эдак в сто, потому что она сцинтилляторная, с энергокомпенсацией и прочими ништяками.
Read more...Collapse )

про профессиональный рост
wtf
shipilev
Я часто в мыслях возвращаюсь к одному из докладов на Devoxx, когда Сесилия Борг рассказывала всем, как хорошо и приятно разрабатывать OpenJDK. И упомянула она, кроме всего прочего, что вы, мол, будете расти от простого девелопера, который просто обсуждает изменения, до комиттера, ревьювера, а потом достигнете нирваны, как Даг Ли. В этот момент я выкрикнул с места, что это "hardly a nirvana", и все похихикали. Пусть это будет прологом.

А лог таков. Со стороны кажется, что быть крутым специалистом -- это хорошо, почётно, сидишь себе, всё знаешь, делаешь крутые вещи одна за одной. Периодически пишешь посты, статьи, книги. Десницей своей закрываешь восемьсот багов в день, видишь проблемы насквозь и наперёд (кстати, немцам о рентгене). В общем, интеллектуальный оргазм и всё такое.

А в реальности: чем больше твоя экспертиза, тем более крутые проблемы тебе приходится решать. Звучит заманчиво, да? Да нифига. Кажется ведь, что опыт и квалификация тебе даст возможность решать одни и те же проблемы, но быстрее, выше, сильнее. Нифига, простые проблемы проскальзывают, ты их даже не замечаешь. И у тебя всегда перед лицом новая, под стать твоим скиллам, и занимает она всё то же абсолютное время (пока не задолбает), и требует тех же сил (пока не выдохнешься).

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

Это ситуация, которую ещё Лем описывал в "Мегабитовой бомбе": по мере того, как фронт знаний растёт, расстояние между тянущими этот фронт всё увеличивается -- до предела, когда даже смежники перестают друг друга понимать. У нас, конечно, не всё так трагично, но засада структурно примерно такая же: удельное количество проблем на специалиста настолько велико, что нет никаких ресурсов, чтобы заниматься чужими задачами, свои бы успеть додумать.

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

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

"Нирвана". На месте Дага Ли я орал бы от бессилия без остановки.

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

"Зачислено 197.00 руб Пополняй баланс за 0%, инфо 0533,oplata.beeline." от +796871171xx.

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

"Извините я вам деньги ошибочно положила верните пожалуйста обратно" от +796871171xx.

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

"Зачислено 666.00 руб Пополняй баланс за 0%, инфо 0533,oplata.beeline." от +7905xxxxxxx

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

Над Петербургом сгущались тучи.

JPoint: отвечайте на мой ответ!
wtf
shipilev
(снобизм aлёрт, лив зе плэнет иммидеатли)

Приехала пачка отзывов с докладов на JPoint, хардкорной увертюры перед JavaOne Russia. Несмотря на то, что мы по заказу организаторов выдавили адовый хардкор, подавляющее большинство отзывов очень позитивны, есть даже пара таких, после которых я хлопнул себя по лбу и зарёкся не скосячить на J1. Но это ведь не интересно, да? Критичные отзывы куда круче! Их процентов десять максимум, но дайте косточки перемыть :) Они ко мне пришли уже в анонимном виде, и пусть в этом виде и остаются.
Read more...Collapse )

JavaOne Moscow 2013
default
shipilev
Пока еду в Москву, размышляю над темами докладов. Сдаётся мне, что не нужно особенно ничего выдумывать, а только расширить и углУбить. Посему у меня в голове следующие темы:

1. Per Aspera Ad Lambdas. Мы с Серёгой уже достаточно раз его прочитали, чтобы понять, где и что в докладе накосячено. Некоторый логистический затык может быть в том, что приедет Brian Goetz, и он естественно будет читать про лямбды. В этом смысле доклад может отпасть.

2. Performance 101. (Надо, наконец, назвать его так, как называют его в курилке знающие люди). Уже всем известный доклад про методологию оптимизации производительности. Он уже давно обкатан, его можно дополнить демками, как у нас с Кирком получилось весьма зачётно на Devoxx.

3. (The Art of) (Java) Performance Benchmarking II. Судя по зондированию окружающей обстановки, появилось много новичков, которые слыхом не слыхивали про этот доклад, надо перечитать. Углублено может быть тем, что ко времени конференции должен выйти наш тёплый ламповый харнесс, и можно будет на его примере разбирать типичные косяки (внутри Оракла доклад про микробенчи куда более насыщен по этому поводу)

4. High-Performance Fork/Join in Java. Продолжение про FJP, углубленное новыми фичами, трюками, диагностикой и прочим. Полдоклада придётся отдать под CountedCompleter'ы, ещё половинку про наблюдения в ходе работ над bulk collections operations.

5. Bulletproof Java Concurrency. Доклад про опыт тестирования конкарренси в JDK/JVM, разного рода паззлеры, примеры как оптимизации и баги в HotSpot ломают модель памяти, и что нам с этим делать. Доклад наверняка будет требовать знания JMM, особенно клёво его будет послушать тем, кому скучно на Серёгиных докладах про JMM.

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

И да, самое главное: скоро откроем публичный Call For Papers, думайте над тем, что бы вы хотели рассказать широкой публике! Ориентировочные даты -- 23-24 апреля 2013.

?

Log in