Вы читаете журнал [info]honeyman

Honeyman

Май. 11, 2012

02:19 pm - Агитационное

Согласно ст. 27 п. 1. Конституции Российской Федерации, «Каждый, кто законно находится на территории Российской Федерации, имеет право свободно передвигаться, выбирать место пребывания и жительства». И я предлагаю всем не забывать про наличие у нас этого права и пользоваться им как можно активнее.

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

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

Впрочем, можно в любой другой день.

Да что уж там, и в любое время.

Погода-то какая, а!

. . . . .

(написано два года назад)

Мар. 5, 2012

03:07 am - Выборы и теория игр

Господи, ну почему у нас при власти сидят и окармливаются ею такие иррациональные и контрпродуктивные руководители? (Вопрос риторический, если что).

Читаю сейчас про карусели, а потом про митинг Путина после выборов.
Казалось бы, что должен сделать мудрый и здравомыслящий фальсификатор, чтобы сфальсифицированные им выборы общество признало легитимными? Если есть огромное количество нарушений, свидетелей, но что надо сделать, чтобы это всё затихло и как-нибудь само собой рассосалось?
Правильный ответ — надо не допустить перехода individual knowledge и mutual knowledge в common knowledge.


Если один человек смотрит на короля и видит, что он голый, но сомневается и думает «а может, он на самом деле одетый, а это только у меня искажение чувств», то это individual knowledge.
Если 50 человек смотрят так на короля и сомневаются, но сомневаются молча и поодиночке — то это mutual knowledge.
А вот если каждый из 50 человек знает, что остальные 49 человек тоже видят дряблое брюшко и впалую грудь — это уже common knowledge. Один человек застесняется показать пальцем на короля — а вдруг этим на посмешище он выставит не короля, а себя? — а с уверенностью, что его мнение поддерживают ещё 49 человек, может и показать.
Знаете, о чём сказка про голого короля на самом деле? О взрывообразном переходе mutual knowledge в common knowledge в момент крика «А король-то голый!».

И так везде. Вот, скажем, один громила цепляется на остановке к девушке, та затравленно смотрит по сторонам, а рядом пять мужичков старательно отводят в сторону глаза? Они бы, может, с радостью наподдавали балбесу, каждый из них сжимает в карманах кулаки, но… они друг с другом не знакомы. У них есть mutual knowledge, каждый думает «надо б помочь девке», но нет common, «давайте впятером ему наваляем». А поодиночке для каждого это может быть непозволительным риском.
Поэтому, кстати, пять (да хоть двое!) знакомых друг с другом людей вероятнее в такой ситуации придут на помощь, чем незнакомых. У них уже есть common knowledge — уверенность друг в друге и во взаимовыручке, понимание, что если любой из них начнёт, то остальные его поддержат.
А что делать, попав в ситуацию mutual knowledge? Переводить его в common knowledge как можно быстрее: переглянуться с соседом, установить хотя бы невербальный контакт, и двинуться к громиле уже вместе.

Гражданское общество, говорите? Да все его последние акции держатся именно на расширении common knowledge. Куча нарушений на избирательных участках? Ещё года 4 назад всё бы относительно затихло, каждый думал, что это только у него так плохо — а сейчас в ЖЖ-ютубах-твиттерах это разошлось достаточно быстро, и масштаб стал понятен всем. Интернет стал двигателем common knowledge.

А что делать по этому поводу? Идти на митинг? Конечно, сходить бы надо, но ой, да что это я, я же никогда на митинги не ходил, я вполне себе аполитичный, засмеют. Но заходишь на фейсбук и видишь, что в событии митинга написано «пойдут: Сергей, Николай, Анна и ещё 15 твоих друзей» и понимаешь, что остальные испытывают такие же эмоции, как и ты. Надо идти. Common knowledge.
Кстати, о митингах вообще. Ещё год назад митинги, «марши несогласных» и акции по 31-ым числам казались чем-то гиковским, привлечением к себе внимания второсортных политиков и бунтом маргинальной молодёжи. Пропагандистская машина поддержания мнения «митинги — для фриков» справлялась со своей работой. Многим не нравилось, что происходит в политике, но они сжимали кулаки в карманах, а идти митинговать рядом с фриками им и не приходило в голову. Разгонят ещё дубинками.

Всё сменилось, когда у мероприятия «Суббота на Болотной площади», запланированного в Facebook-е на 10 декабря, оказалось под 40 тысяч запланировавших поход на него и ещё десяток тысяч колеблющихся. Individual/mutual knowledge сменился на common, и люди пришли.

Именно поэтому контроль над телевидением так важен. Телевизор — это уже давно не источник новостей и информации. Для людей телевизор, понятно — это источник развлечений, а вот для власти телевизор — это в первую очередь даже не агитинструмент, а основной критерий common knowledge. «Если что-то не показали по новостям — этого не произошло», да — про это может знать вся страна, но пока это не объявлено по телевидению, это не считается common knowledge. Я должен был сказать «не является»? Нет, именно «не считается». «Считается», что телевизор смотрят все, а значит, всё, что по нему сказано, «считается» common knowledge. Считается всеми, даже властями.


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

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

Ей-богу, с этой властью не надо даже бороться — она прекрасно борется с собой сама.

Мар. 2, 2012

03:02 am - Комбинаторная биология

В новостях пишут, что «открыты ещё две системы групп крови».

И теперь их известно 32. А не, скажем, «четыре плюс резус-фактор».

Из которых одной, например, является всем известная со школы система ABO с теми самыми «четырьмя группами» (а на самом деле — четырьмя основными группами и кучей возможных подгрупп, плюс ещё редким «бомбейским фенотипом», носителю которого может не подойти даже кровь «универсальной» 1-ой группы).

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

Ещё одной — система Kell. Ещё одной — система MNS. И так далее.

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

Фев. 15, 2012

07:56 pm - Затянутое политическое самоубийство

Интересно, как путинской агитбригаде в последнее время удаётся делать так, что фактически все их действия в последнее время оборачиваются против продвигаемого ими кандидата?

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

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

А те, кто может — просто нипочём не станут с ними сотрудничать? И даже если их заставить — сделают так, что требования заказчиков обернутся против них самих?

Фев. 8, 2012

06:27 pm - Wanted: Django geek

А мы ищем Python-Django-гика: http://moikrug.ru/vacancies/319254395/

Москва, стартап, будет интересно.

Дек. 26, 2011

11:37 am - Window shopping по elevator pitch-ам

24-го декабря Москва ходила на window shopping.

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

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

Дек. 21, 2011

08:44 pm - Архитектура Instagram

http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of — рассказ про архитектуру Instagram.

Краткое резюме:

1. Amazon EC2 — для хостинга.
2. Ubuntu 11.04 — основная OS.
3. PostgreSQL (12 Quadruple Extra-Large High-Memory nodes + 12 replicas) — для основной части данных. Pgbouncer для пулинга.
4. Redis (several Quadruple Extra-Large Memory nodes) — для фидов и сессий.
5. PostGIS → Apache Solr — для гео-поиска.
6. Memcached (6 instances) — для... ни за что не угадаете. Не используют Amazon Elastic Cache, потому что невыгодно экономически.
7. Django (>25 High-CPU Extra Large nodes) over Gunicorn — для динамики.
8. Nginx (3 nodes) позади Amazon Elastic Load Balancer (проверяющим их доступность) — для балансировки загрузки. ELB также и терминирует SSL.
9. Amazon Route 53 — для DNS.
10. Fabric — для автоматизации деплоймента.
11. Gearman — для очереди задач. PyAPNS — PUSH-нотификации.
12. Munin — метрики. Sentry — error reporting. Pingdom — внешний мониторинг доступности. PagerDuty — информация о инцидентах.

Окт. 12, 2011

11:51 pm - Интересный бодихак из Википедии

Берём человека. Обобщённого, сферического. Накладываем ему на лицо подушку и плотно удерживаем. Человек задыхается насмерть... ну, скажем, через шесть минут.

А вот можно ли сделать что-нибудь, чтобы у такого же точно человека, в таком же точно начальном состоянии (ну, типа, без «вдохнуть побольше воздуха») не было притока воздуха дольше, чем шесть минут, а он всё равно бы не умер?

Да. Надо ему на лицо полить воду температурой ниже, чем 20°C.

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

Но и у человека. Причём чем моложе, тем сильнее эффект проявляется. Чем холоднее вода, тем опять же сильнее эффект. Однажды, говорят, сумели оживить мальчика, утонувшего и пробывшего под холодной водой 20 минут. Поэтому у спасателей есть выражение “They're Not Dead Until They're Warm and Dead”.

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

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

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

... Кажется, я только что придумал сценарий для серии «Доктор Хаус в космосе, во время утечки кислорода».

Сент. 28, 2011

03:48 pm - Хотфикс

По напоминанию [info]zlokk, поправил результат для буквы «a» в своём geek code. А то б точно забыл.

Сент. 9, 2011

11:11 pm - Локомотив

lenta.ru: Министерство транспорта России попросило у очевидцев крушения Як-42 под Ярославлем любительские видеозаписи падения самолета, сообщает "Интерфакс".

Не хотелось бы, чтобы это посчитали "пиаром на крови", но не могу не заметить, что полусырой Vizib.li не только "теоретически должен находить" такие видео, но и на самом деле находит парочку таких видеозаписей на ютубе (правда, снятых уже после падения). А если побраузить-позумиться — ещё кучку, но уже новостных сюжетов.

Tags:

Сент. 2, 2011

12:25 am - Восточные танцы

В свете того, что намедни Серебряную Калошу получила Дискотека Авария за то, что ихний Арам-Цам-Цам — это злостный плагиат на тему кинофильма «Собака Баскервилей» (и даже несмотря на то, что на самом деле Арам-Цам-Цам — это древняя марокканская мелодия, которую перепевали все кому не лень, а вот Рольф Харрис умудрился её исполнить даже за десять лет до «Собаки Баскервилей»), вспомнилось мне прелестное, двухлетней давности:



Так интересно вспоминать всё это через два года...

Авг. 10, 2011

03:21 am - Математика убийств

Слышали новости? http://www.vesti.ru/doc.html?id=530720 — в Афганистане талибы сбили вертолёт. "По имеющейся информации, на борту десантно-транспортного вертолета "Си-Эйч-47" "Чинук", сбитого в афганской провинции Вардак талибами, находились бойцы подразделения спецназа ВМС США, которое уничтожило в мае в Пакистане главаря террористической сети Усаму бен Ладена. В вертолете находились 22 спецназовца ВМС, три спецназовца ВВС, кинолог с собакой, переводчик, являвшийся гражданским лицом и экипаж винтокрылой машины, точной информации о численности которого пока нет."

Намедни на lenta.ru как раз была хорошая, написанная едва ли не на уровне интересности повестей Тома Клэнси, статья про операцию по ликвидации бен Ладена. В ней, в частности, писали, кто участвовал в операции по ликвидации бен Ладена, кто высаживался рядом с его домом... "Внутри находились 23 спецназовца из "Отряда 6" "морских котиков", официально известного как DEVGRU - Группа по разработке специальных методов и средств ведения боевых действий ВМС США. Вместе с ними на задание летели переводчик - американский пакистанец, назовем его Ахмед, и бельгийская овчарка - малинуа по кличке Каир." 23 спецназовца, переводчик и собака...

В вашей голове ничего не "щёлкнуло" при прочтении этого?

Если да, то вы не единственный... )

12:55 am - Автомобили

http://motor.ru/news/2011/08/09/pagani/ — а вы знали, что в США (в отличие, например, от России) автомобили обязательно должны оснащаться подушками безопасности? И не просто подушками, а с изменяющейся силой раскрытия в зависимости от веса пассажира, чтобы ребёнка хлопнуло не так же, как и взрослого? И не начиная со следующего года, а начиная с 2000-го?...

Tags:

Июл. 16, 2011

11:22 pm - Навигационное



А вы тоже любите Брюса Стерлинга?

PS honeyman earned the badge "Я видел это видео с 5987 просмотрами!"

Июл. 8, 2011

01:42 am - SQLol

Автор SQLite3 поскупился на стандартные функции, и теперь шестнадцатиричное число я вынужден переводить примерно таким образом:

sqlite> SELECT 1152921504606846976 * CASE substr('0000000000065482', 1, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 72057594037927936 * CASE substr('0000000000065482', 2, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 4503599627370496 * CASE substr('0000000000065482', 3, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 281474976710656 * CASE substr('0000000000065482', 4, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 17592186044416 * CASE substr('0000000000065482', 5, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 1099511627776 * CASE substr('0000000000065482', 6, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 68719476736 * CASE substr('0000000000065482', 7, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 4294967296 * CASE substr('0000000000065482', 8, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 268435456 * CASE substr('0000000000065482', 9, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 16777216 * CASE substr('0000000000065482', 10, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 1048576 * CASE substr('0000000000065482', 11, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 65536 * CASE substr('0000000000065482', 12, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 4096 * CASE substr('0000000000065482', 13, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 256 * CASE substr('0000000000065482', 14, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 16 * CASE substr('0000000000065482', 15, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END + 1 * CASE substr('0000000000065482', 16, 1) WHEN '0' THEN 0 WHEN '1' THEN 1 WHEN '2' THEN 2 WHEN '3' THEN 3 WHEN '4' THEN 4 WHEN '5' THEN 5 WHEN '6' THEN 6 WHEN '7' THEN 7 WHEN '8' THEN 8 WHEN '9' THEN 9 WHEN 'a' THEN 10 WHEN 'b' THEN 11 WHEN 'c' THEN 12 WHEN 'd' THEN 13 WHEN 'e' THEN 14 ELSE 15 END;
414850

Tags:

Июл. 7, 2011

04:12 am - Занимательная математика

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

Люблю я сравнивать несравнимое. Например, сравнивать человеческие жизни с денежными суммами. Насколько я слышал, рабочий период для мужчин составляет 44 года (16-60 лет), а для женщин — 39 лет (16-55). Не буду уж учитывать соотношение мужчин и женщин, благо оно всё равно колеблется в этот период возраста, и точно его не учтём, просто посчитаем, что в среднем человек в России работает примерно 41 год. А средняя зарплата в России составляет на данный момент примерно 15 000 рублей. Ну, или 180 000 рублей в год. Ну, или примерно 7 400 000 рублей за всю рабочую жизнь.

Мило. Чиновник всего-то хотел позаимствовать среднестатистический жизненный труд 50 человек. А его сразу приговаривать...

Июн. 28, 2011

04:51 pm - История демотиваторов

Попытка ответа Витусу Вагнеру на его вопрос, почему формат демотиваторов не вытеснен кучей подсуетившихся конкурентов с генераторами картинок с лучшим оформлением, во-первых, выросла в небольшой иллюстрированный рассказ про историю демотиваторов, а во-вторых, не удалась, потому что OpenID users aren't authorized to reply to this entry. Жаль; впрочем, если человек огораживается от ответов, значит, ответ его особо не интересует. Напишу здесь, может, этот рассказ хоть кому-нибудь ещё понравится.

Потому что сначала были мотиваторы.

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

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

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

Июн. 27, 2011

11:52 pm - Инженерно-экономическо-социологическое

Уже второй раз за последнее время в ЖЖ попадается пост, в котором до половины комментариев вызывают раздражение. И только сейчас осознал, почему, по каким (аж трём) причинам.

Сначала в ru-metro брюзжание машиниста про зеркала метропоездов. А сегодня в чьём-то личном блоге рассказ про то, как у трёхлетнего ребёнка затянуло руку в лифт.

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

Так почему же это глупо?

Инженерный фактор

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

Например, очевидным для любого программиста (и, возможно, даже для любого инженера) является понятие линейной и константной сложности.

O(N) — это когда каждый из сотни тысяч покупатель соковыжималки, чтобы включить её, нажимает кнопку включения, а уже потом прижимает к ней апельсин. O(1) — это когда один раз производитель соковыжималки усложняет её механизм, ставит в неё датчик давления, и она включает мотор автоматом, стоит ей почувствовать давление.

А чем это отличается от описанных случаев? O(N) — это когда каждый из миллиона проходящих в метро читает "правила пользования метрополитеном" от корки и до корки. Ну, или в лифте. Скажите, хоть кто-нибудь всерьёз верит, что больше десяти процентов пассажиров метро на правила пользования метрополитеном хотя бы раз в жизни смотрели? А, да, соблюдать все правила метро во время каждой поездки — это вообще O(N*M). Ну, для простоты, O(N2). Скажите, а сколько людей упало на рельсы или получило травмы от зеркала поезда в питерском метрополитене на закрытых станциях? Там случилось O(1) — там об этом почему-то позаботились строители метро.

А почему то, что работает в промышленности, ориентированной на покупателя, не работает в метро и с лифтами? А потому что там есть экономическая мотивация "сделать лучше", там покупатель "голосует рублём".

Экономический фактор

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

А сколько на самом деле стоит человеческая жизнь в России? В среднем, универсальная цифра, которую можно было бы указать законодательно. По моей методике расчётов у меня получилась сумма порядка миллиона долларов (и чем человек моложе, тем сумма больше) — и нет, это не фантастика, не мечты, не красивая цифра, а вполне математически и экономически обоснованная величина. В принципе, из этой суммы можно вывести и стоимость любой травмы, вызывающей нетрудоспособность.

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

Я надеюсь, такое всё-таки случится.

Социологический фактор

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

А потому что это, с их точки зрения, тоже решение проблемы со сложностью O(1). Не, честно: вместо того, чтобы сделать невозможным падение на пути, можно повесить табличку "На пути падать запрещено!"

Проблема в том, что это не решение для человека, а отмазка руководства, предназначенное помочь не пользователю, а владельцу/хозяину. Оно не решает проблему с падением на пути, оно перекладывает ответственность: "Мы повесили табличку, он не послушался, сам виноват".

Иначе говоря: потому что это не инженерное решение, а юридическое. Потому что вся эта куча комментаторов думает не так, как думает инженер (стремящийся сделать хорошо всем людям), а как думает юрист (стремящийся сделать хорошо одному своему клиенту — строителю метрополитена или лифта).

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

Пожинаем плоды.

07:23 pm - Дамба

А помните, у Навального, про Владимира Когана: "То есть чувак просто сидит в министерстве и, под крышей Путина, просто пилит дамбу. Очень незамысловато и эффективно."

Я тут вспомнил, что мне напоминает этот возникающий перед глазами образ. "Мэри Поппинс" же!

В Сити мистер Бэнкс ходил каждый день, кроме, разумеется, воскресений и праздников. Он сидел там на высоком стуле за маленькой конторкой и делал деньги. Весь день он вырезывал пенни и шиллинги, кроны и трехпенсовики. И приносил их домой в маленьком черном чемоданчике. Иногда он давал детям монетки, а они бросали их в копилки. Но случалось, что монеток не было, и он говорил: "Банк на ремонте", — и все понимали, что в тот день он вырезал совсем мало денег.


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

Июн. 23, 2011

01:09 am - Белорусско-политическое

А в Белоруссии в качестве формы правления теперь, похоже, сюрреализм.

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

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

Июн. 17, 2011

11:13 pm - Итого

Результаты конкурса (максимально возможное количество баллов — 25):


  1. [info]sfinam — 20 баллов

  2. [info]zlokk — 13 баллов

  3. [info]koshurinov, [info]nik — 10 баллов

  4. [info]aka_rider — 7 баллов



Правильные ответы (со ссылками на соответствующие облака тэгов): под катом )

Июн. 16, 2011

03:23 pm - Компетишн апдейт

А литературный конкурс понемногу идёт.

Промежуточные результаты: 4 участника; 11 из 12 книг хоть кто-то по разу да угадал; лучший результат пока — 10 из 12 книг угаданы.

Июн. 15, 2011

04:43 am - Литературная игра

Многоуважаемый [info]_nik_ намедни сделал забавный сервис http://wordcloud.pagemon.net, позволяющий из любой страницы сделать облако ключевых слов на ней. И добавил туда несколько возможностей, позволяющих превратить это из забавной полезняшки в увлекательную игру: можно ли по облаку наиболее часто встречающихся слов (особенно если удалить слова, начинающиеся с заглавной буквы — а то уж совсем явная подсказка получится) — угадать... литературное произведение?

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

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

Upd: на данный момент правильные ответы дали:
1. [info]sfinam, [info]koshurinov, [info]zlokk, [info]_nik_, [info]aka_rider
2. [info]sfinam, [info]koshurinov, [info]zlokk, [info]_nik_, [info]aka_rider
3. [info]sfinam, [info]koshurinov, [info]zlokk, [info]_nik_
4. [info]sfinam, [info]koshurinov, [info]zlokk, [info]_nik_, [info]aka_rider
5. [info]sfinam, [info]koshurinov, [info]zlokk, [info]_nik_, [info]aka_rider
6. [info]sfinam, [info]koshurinov, [info]_nik_, [info]zlokk
7. [info]koshurinov, [info]zlokk, [info]_nik_, [info]aka_rider
8.
9. [info]sfinam
10. [info]sfinam
11. [info]sfinam, [info]zlokk
12. [info]sfinam


Первый уровень сложности, для разминки:

1.

И ещё 11 картинок под катом )

Комменты скринятся до, наверное, начала выходных. Для соревновательности, положим, пусть первый уровень будет по баллу, второй — по два балла, а третий — по три балла :) (Только не надо гуглить по ключевым словам, ладно?..)

Июн. 11, 2011

08:56 pm - unzip в Python-е

zip и izip в Python есть, а вот unzip-а не было, а понадобилось…

from itertools import chain, tee, imap
from functools import partial

def __unzip(iterable, seq_constr):
    iterable = iter(iterable)
    first = iterable.next()
    return tuple(seq_constr(imap(lambda item, i=index: item[i],
                                 iter_tee))
                     for index, iter_tee in enumerate(tee(chain([first],
                                                                iterable),
                                                          len(first))))

iunzip = partial(__unzip, seq_constr = iter)
unzip = partial(__unzip, seq_constr = list)


Как пользоваться:

>>> a = range(10, 20)
>>> b = range(0, 10)
>>> c = range(100, 110)

>>> from itertools import izip

>>> a, b, c
([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [100, 101, 102, 103, 104, 105, 106, 107, 108, 109])

>>> izip(a, b, c)
<itertools.izip object at 0x7f45a7fd8320>
>>> zip(a, b, c)
[(10, 0, 100), (11, 1, 101), (12, 2, 102), (13, 3, 103), (14, 4, 104), (15, 5, 105), (16, 6, 106), (17, 7, 107), (18, 8, 108), (19, 9, 109)]

>>> unzip(izip(a, b, c))
([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [100, 101, 102, 103, 104, 105, 106, 107, 108, 109])
>>> iunzip(izip(a, b, c))
(<generator object <genexpr> at 0x7f45a7fdae60>, <generator object <genexpr> at 0x7f45a7fdaeb0>, <generator object <genexpr> at 0x7f45a7fdaf00>)
>>> a1, a2, a3 = iunzip(izip(a, b, c))
>>> list(a1), list(a2), list(a3)
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

Июн. 6, 2011

07:02 pm - Детское питание

Юное дитя объявило, что мясо ему не нравится. И последние несколько недель питается исключительно вегетарианской кухней. Ну вот что с ним делать, как его отучить от этих глупостей?..

... А то, когда оно наконец пойдет в садик, его там ждет неприятный сюрприз.

Navigate: (Previous 25 Entries)