понедельник, 20 мая 2013 г.

Социопатическое

Кстати, в начале августа я буду тут http://almada2013.ru/en/schedule #ALMADA2013.

Будет сам Голдберг на открытии. Те кто в танке, это потоковые/графовые, проталкивание предпотока - это он. Он, правда, орг, а не лектор. Непонятно про наличиче Миронова. Как раз по ТЧ можно с кем поговорить.

Основной вопрос, куда еще можно в default city сходить? При условии, что уже почти везде был... Всякие "Афиши" и прочие сервисы - исхожены змейкой/в_шахматном порядке/бантиком. А время опять будет.

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

Два года назад, на SSSEV2011 мне очень сильно понравилось. Очевидно, что не будет такой проблемы с трансфером от места проживания до лекций. Но, подозреваю, что стулья будут деревянные. А попа уже отторгает все инородные деревянные стулья/кресла. Видите ли, к мягкому оно быстро привыкает. Как бы опять, хроническое плоско#опие не проявилось.

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

Еще в почти те же сроки будет где-то под Москвой нечто по биоинформатике. Думаю, может и туда заявку подать, пару дней можно и там с интересом провести. Оно сильно по времени с этим пересекается, и ALMADA в большем приоритете.

А еще хочется в следующем году на очень стоящее пробиться. Там поработать придется, но оно того стоит. В общем, один человек, думаю понимает, о чем это я... Я тебе уже об этом говорил.

Остальные мероприятие как-то уже мало для меня. Я туда агитирую всех из контактов, но они как-то слабо агитируются. Самое распространенное: "А что я там делать буду?" Ну и тот человек, из предыдущего абзаца тоже...

Ну посоветуйте, куда еще можно пойти погулять в свободное время?

вторник, 30 апреля 2013 г.

Не помню

Ой, где был я вчера
(с) Володя

Дочитал книжку, начал тыкать на планшете, чтобы выбрать слудующую из коллекции. У меня там местами шлак всякий, худ. лит, тех. лит, статьи какие-то. Тыкнул и смотрю "Efficiently four-coloring planar-graphs". Хоть убейте, не помню как она туда попала. Я только 2 недели назад о ней писал, а она оказывается чуть ли не год (не помню, может и 2 недели) как валяется в iBooks.

В общем, да, раскраска в 3 цвета для планарных - NP-hard, в 5 цветов - линейна, в 4 - тут как-то строят за квадрат. Мне еще почему-то интуитивно кажется, что если хроматическое = 4, то есть подграф стягиваемый к K_4 (?). Черт, и не понятно. То ли это какая-то тривиальщина, то ли вообще неправда. И непонятно, причем тут планарность.

А еще помню, когда не помню. Был где-то классе в 7-ом (может 8-ой), спал что-то днем. Позвонили на домашний, сотовых тогда не было. Спросонья ответил. Минуты через 2 еще звонок. Я уже немного рассерженный в трубку "Ну что еще, мам". А там мне тренер по шахматам, Маргарита Капитоновна: "Я еще вот что хотела спросить...". Как-то сразу проснулся.

И еще два случая помню, когда не помню. По работе приходилось в жизни 3 раза ночевать на работе. Ладно бы сторожем работал, програмистом 32 часа непрерывно что-то колбасить это жестоко. Тьфу^3, давно было.

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

В последую ночевку, отпустили рано, под рассвет. Пришел домой, еще туда к родителям. С мамой только пересекся. Очевидно, лег спать. Вечером родители спрашивают, "мы тебе когда звонили, ты уже дома был?". У меня сразу встречный вопрос, "мне звонили?" Смотрю в телефон, в нем 2 принятых звонка(!), по минуте длиной, в памяти только какой-то негр в очках и с ручкой. Вспышка.

Все остальное я помню, что помню. Заметьте, что это сильнее чем "не помню как нажрался" (лучше "помню что не нажрался").

Если что, то к алкоголю я негативно отношусь. Годовое потребление можно перечислить пальцами одной человеческой руки. В крайнем случае, одной человеческой + 2 пальца.

ЗЫ. Не кидаю ни в кого кирпичом, но фраза "Я запомнила... *пауза* на 10 минут" действительно со второй частью смешна.

среда, 24 апреля 2013 г.

Прогрессия

В начальных классах у меня был почти "Компаньон", оно называлось иначе, имело 48Кб оперативной памяти и читало программы с магнитофона. Первый "полноценный" компьютер у появился только в 11-ом классе. Он был с монитором в 17" (1024х768), 64Мб оперативы, 10Гб диска, 500МГц процессора, очевидно в одно ядро и в прочих характеристиках. Хотя почему был... до сих пор работает.

Так вот, я обновил телефон. Там 4 ядра по 1.5 ГГц, 1280х768, 16Гб карточка и 2Гб оперативы. Весит оно 130 с чем-то грамм. Ну, в общем, вы поняли...

В принцице, сейчас выбор между iPhone и не_iPhone. Но так даже в последней модели там нет NFC, то выбор для меня был очевиден. Я в принципе нейтрально-позитивно отношусь к Apple, считая что их планшет пока и сейчас даже очень ничего.

Я вот трачу на телефонную связь сотню рублей месяца на 4, в основном использую как будильник и совсем в редких случаях как карты городов. Поэтому мне в принципе пофиг. Еще я видел девушку в продуктовом магазине с iPhone-ом из последних. Я не настолько крут. А она - крутая. И продает там фрукты/овощи.

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

В предыдущем телефоне был аппаратный компас, и когда ты стоя ловил GPS, то было понятно направление куда смотришь. Сейчас GPS ловится практически мгновенно, но надо немного подвигаться чтобы понять направление.

В стране опять официально можно купить в Связном за 20 тыс. рублей, но почему-то заказать с google + посреднику 70$ за пересылку оказывается в полтора раза дешевле. Очевидно, воспользовался вторым вариантом. Конечно, есть риски. И даже посредник сейчас в новостях уведомляет, что более он именно эту марку не пересылает в Россию, так как участились кражи во время доставки.

С "Компаньоном" я в 5-7 классе писал несложные программки для простой геометрии в 3d, как оказалось к 5-му курсу у нас большинство хуже умело программировать, чем я тогда. Ностальгия... А с телефонами скучно, ну купил зеркальце, там даже кнопок нет.

воскресенье, 14 апреля 2013 г.

Два бояна и кое-что о числах

Мужики уже умеют искать поток за O(n m). Некоторые говорят, что это боян, но я увидел только пару недель назад. Оригинальная работа вышла в августе 2012. До этого было что-то близкое по сложности, со страшными логарифмами.

Мужики умеют искать раскраску в 4 цвета для планарных графов за квадрат. Честно говоря, ВНЕЗАПНО. С какого-то 199? года. Там (с хроматическими числами) чуть ли не половина задач NP-трудные/сложные. Да и как планарность за линию делают - в моей интуиции это не укладывается. Жаль, что времени на это выделить я полноценно не смогу.

Обнаружил замечательный факт по числам Мерсенна. Пока его нигде не видел. Напомню, что тест Люкаса-Лемьера состоит в 

s_0 = 4
s_n = s_{n-1}^2 - 2 mod M_p

Если s_{p - 2} = 0, то все хорошо. 

Я все брежу, чтобы идти с конца. Корни же не всегда извлекаются. 
То есть надо идти с нуля, применяя следующую операцию, \x -> sqrt(x + 2), что дает 2 числа, либо облом.

Так вот, для Мерсенновых получается идеальное бинарное дерево. Начиная с 2 (0 + 2) получаем два числа, затем 4 числа, и так далее. На последнем шаге получаем красоту, пока необъяснимую. Никаких циклов, все числа использованы, из последнего слоя уже корни квадратные не извлекаются. Думал, что извлекаемость корней есть полный беспорядок, а тут идеальная структура. Уже недели две хожу с упоротыми глазами.

А те, которые неМерсенновы, получаем облом на втором шаге. Корень из двух очевидно равен 2^{(p + 1) / 2}. А извлечь корень из 2^{(p + 1) / 2} + 2 быстро не могу. Для неМерсенновых там облом идет. Знаний пока мало, маленький еще. Чтобы решить x^2 = a mod M_p можно просто x = a^{2^{p-2}}. То есть возведениями "в_квадрат" все равно O(p) шагов, что тот же Люкаса-Лемьера ничем не лучше. Фенечка на первом шагу для 2 заключается в том, что 2 порождает хорошую группу размером в p. Поэтому все быстро. Но стоит отойти на шаг в сторону, и размер группы будет несколько великоват, во что и утыкаюсь.

Еще пытаюсь что-то извлечь из x^3 = 1 mod M_p. Так как 2^p - 2 очевидно делится на 3, то у нас есть подгруппа размера 3. Первый корень тривиален. Тут внезапно работает теорема Виетта, та которая про сумму и произведение корней и первый/последний член полинома. Другие два корня тривиально находятся, если найти x^2 = -3 mod M_p. Что эффективнее чем Люкас я пока не вижу как. Утык.

Где бухают теоретики-числовики и прочие алгеброиды? Как в стране, так и в мире... И чтобы дети, моего уровня, смогли приобщиться. Всякие http://math.stackexchange.com/ понятно, но хочется очные.

пятница, 5 апреля 2013 г.

Техническое. Мимоходом.

Если у вас в проекте oracle && .net && куча данных для сохранения, то следующий абзац (два и более, как получится), возможно, будет вам интересен.

Там получилось, что нам надо сохранять довольно много ячеек, порядка одного/двух миллионов. Естественно, хочется быстрее. Ячейки из собственного OLAP, по измерениям отличаются, разных типов штук 10-15, то есть раскидать по таблицам на каждый тип.

В итоге мы плюем на нормализуемость таблиц, тут производительность важнее. Хранится ключ по разрезам, понятно отдельно Id, а потом идет пару сотен столбцов/показателей. У себя внутри мы это называем "развернутые таблицы".

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

Ранее все хранилось как у всех обычных людей, для каждой ячейки отдельная запись. Философски это правильно. А как развернули, база с десятка Гб ужалась в 1Гб, со всеми индексами.

Теперь собственно про запись. Рекомендуется посмотреть на ODP.net (Oracle Data Provider). Там есть фишечки и тюнинг. В нем же есть ArrayBinding, это когда вместо сохранения большого массива записей вы кидаете один запрос, а все параметры биндите на массивы, где каждый массив представляет один параметр. Хоть это и круто, но пока это не все.

Очень важно, чтобы запрос был все время одинаковым. Иначе oracle будет все время его компилять/парсить, как следствие - потери. Для нашего случая мы определяем наиболее общий набор показателей (столбцов) для сохранения. То есть сохранение в просто "развернутой" таблице - это что попало из прямоугольной матрицы, а становится - объединение набора столбцов. Да, это немного лишнее, получается что мы заново сохраняем некоторые ячейки которые уже есть в базе. Но зато так sql-запрос становится универсальным для всей таблицы (конкретного набора для сохранения). А сейчас если воткнуть arrayBinding из предыдущего абзаца, то скорость сохранения увеличится на десятичный порядок.

То есть у нас было несколько итераций.
1) Просто таблица
1.1) Просто таблица + arrayBinding
2) Развернутая таблица, сохраняем одним запросом кучу ячеек.
3) Развернутая таблица, объединеный запрос на все сохранение, биндим параметры на каждый ключ отдельно
4) Развернутая таблица, объединенный запрос, биндим массивы как параметры.

Переход от 3 к 4 - это реально десятикатный прирост. От 1 к 1.1, от 1 к 2 и от 2 к 3 - где-то от полутора до трех раз (в зависимости от данных и направления солнечного ветра).

Сейчас местами я могу сохранять быстрее, чем это все поднимается. В шоке.

Еще важно, чтобы запрос был как можно проще. У нас в итоге после последнего рефкторинга самая медленная таблица оказалась единственная с nullable полем в ключе. И запрос был с NVL/decode. Естественно, решили проверить. И да, бинго. Разнесли данные, и оно относительно себя ускорилось в 2 раза, относительно всех остальных не стало выделяться.

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

воскресенье, 24 марта 2013 г.

Сюр

Извиняюсь, немного о политике.

В последние лет 5-7 мне что-то многие ситуации напоминают сюжеты из моей любимой книги "Алиса в стране чудес". Как будто большинство наелось грибов, ты падаешь в кроличей норе уже который месяц, королева кричит "Отрубите ему голову". Хочется проснуться, а не получается.

В середине и конце 90-х была чехарда в правительствах, Жириновский таскал за волосы неизвестных, иногда плескался водой. Местами это было похоже на цирк, местами это и был цирк.

Потом эпоха цирка устала и ушла. Началась эпоха либо застоя, либо стабильности. Вот Ленин в мавзолее уже более 80 лет лежит - это застой или стабильность?

А потом начинается сюр. Ладно, был чувак который все попереименовывал. Так ведь нет, следующий (он же предыдущий) чувак начинает отменять все, что сам успел принять. Вы заметили, что в Думу вернули выборы по личным спискам (в смысле, половина будет вне партий?). Вернули прямые выборы губернаторов, правда там с оговоркой на местную Думу.

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

Девки в балаклавах вообще не смотрятся на общем фоне. Считайте, что сходили в армию. Правда, армия сейчас один год.

Сформировали оппозицию, правда из того что было. А было все тоже. Если первые митинги были хоть с какой-то целью ("честные"), то потом оно все размазывается. Девки в балаклавах или "честные"? Надо же что-то на транспарантах писать? Потом дети...

"Честные", дети или же девки в балаклавах? Дети - вообще странно смотрится. От них отказалась даже собственная мать (очевидно, что понятие родители здесь малоприменимо), общество частично усыновляет/удочеряет/патронирует, каких-то 5-10% забирают иностранцы. Вы можете выложить фоточки, как вы были на митинге, можете пожертвовать 5 тыс. рублей в какой-нибудь дет. дом, все равно вам так же пофиг как всем (как и мне).

Даже были лозунги про "перевыборы Думы". И что? Ну опять в списке вы увидите те же 5-10 партий из тех же людей, которые 100% проголосовали "против детей". А в цепочке еще есть Совет Федераций, который не избирается, который тоже на 100% "против детей". А еще есть текущий президент, который тоже на 100% тоже против. Глупость это все конечно, адекватный ответ американцем был в запрете нашим чиновникам иметь недвижимость и счета у них. Это сделали, но через 3 месяца. Зачем вообще отвечать глупостью на глупость? Предпочитаю молчать.

Еще и интернетчики с защитой детей. Тут вообще трэш. Оградите лучше их от телевизора...

Хуже того, что в лицах за 16 лет ничего не изменилось. Жириновский, Зюганов и другие на местах. Часть прыгает с места на место. Заметьте, что на выборах президента (в тех же США, Франции и других) лица все разные. Да, появился Путин, Медведев, Прохоров, Миронов. Но как-то все равно застой.

Может проблема конкретна не в лицах, а в целях? Цели это что-то более конкретное чем "удвоить ВВП к 20## году", "План Путина будет исполнен". Были нац. проекты... да и Скольково ваше не достроят. Мне местами нравится подход П (не путать с Пу), "надо принять поправки с такими-то числами, это приведет к тому-то и тому-то". Хотя бы видно что он хочет сделать, и для чего он хочет это сделать.

Тот же П пообещал на выборах президента, что "мы проснемся в другой стране". Я проснулся 5 марта 2012 года, посмотрел на новости и понял что проснулся там же. Может и не проснулся. Ущипните меня!

суббота, 9 марта 2013 г.

Нофелет

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

В нашем ДМС сейчас входит 46 медицинских учреждений, и ни одного психо-неврологического. В прошлом году их было 49, но все равно без нервных. Молоко за вредность не выдавали, пить зеленый змий я не начал, да и такую атаку на мозг жидкостью не залить. Каждая девочка в отдельности, возможно, является нормальным человеком, но когда их в комнате более одной мне сильно не уютно. Там же я услышал как говорят 4 одновременно(!), не попарно, а именно одновременно. Мир уже не будет таким, каким был прежде.

В итоге за эти 74 дня я многое узнал из психологии. Возмножно из женской психологии, возможно из своей. Сложно довольно разобрать, все время какие-то голоса в голове. 

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

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

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

Тут есть одна засада, о которой некоторые мужчины просто не подозревают. Если мальчик обновил у себя телефон, а старый нужно куда-то деть, то несмотря на то что это вполне современный iphone4s, это вообще идет не в плюс категории мужика. 93% опрошенных женщин называют много неприличных слов, оставшиеся 7% поджимают губки, невинно смотрят в пол, легким движением руки пытаются скрыть, лежащий на виду телефон. Приходя домой в тот день они плачут, понимая всю ситуацию. В крайнем случае этих 7% добивают подруги в последующие 2 года. В общем, мальчики, будьте осторожны. Своими необдуманными действиями вы можете сломать жизнь человеку.

Так же 4-ый разряд можно получить за счет совместного отдыха на юге. В студенческом стиле - это какая-нибудь Турция/Египет, полноценный 4-ый разряд - это как минимум Испания. Пансионат в Сочи или лечебные грязи под Соликамском, лучше сразу ее добейте поддержанным телефоном. Или ее ждет мучительное добивание подруг.

А потом я пересел в комнату, где включая меня было 12 мальчиков. Ко мне вернулся рассудок, голоса в голове стали появляться все реже, вернулся аппетит и смысл в жизни. 

Хотя там тоже довольно шумно, но это просто несравнимо. Я даже за-за-заи-икать перестал.

четверг, 28 февраля 2013 г.

Типизация динамики или объективизация статики

Чтобы заснуть некоторые рекомендуют считать баранов. Раз баран, два баран, ... двести двадцать семь. Для меня не работает, но пока это не важно. Но вот что делать, если на 117 месте оказалась овца? Можно тоже считать. Но вот у вас слаботипизированная программа и может встретиться все что угодно. И понедельник, и смысл жизни, и зачет по диференциальным уравнениям. Их тоже считать?

А есть еще черная дыра, в просторечии известная как null. Хоар берет ответственность на себя, но до сих пор нормального (не то чтобы идеального) решения как-то не предложено. Это в итоге какой-то ужас. Единственное что можно делать, это сначала спросить: "А вы случайно не черная дыра?" В итоге программы в student-style выглядат как "Если не черная дыра, то считаем". Программа из "Сейчас я встану со стула, пойду на кухню и поставлю чайник на огонь" выглядит как "Если стул не Черная дыра, то (Если кухня не Черная дыра, то (Если чайник не Черная дыра, то (Если огонь не Черная дыра, то ...)))". Я видел такие проекты, с такими людьми я даже за руку здоровался (все отмыть не могу). Это то же от непонимания типов.

Есть тренд, когда в слаботипизированных языках добавляют недо-типы. Тот же python/cpython, аннотации в erlang, к названию языка приписать слева букву J или справа #. Тот же js внутри той же V8 внутри очень типизированный. Даже CoffeScript и javascript чем-то в названии похожи.

Понятно, откуда ноги растут. Только кажется можно растить и в другом направлении. Гибкости хватает, но надежность и скорость местами перевешивает.

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

Так вот, вместо введения типов в нетипизированное может стоит идти в направлении ослабления типизации в типизированном? То есть взять что-то типизированное и ослаблять до некоторого уровня. Если идет фигня с типами и все начинает плохо компилироваться, то можно в оставшейся части модуля возвращать нечто абстрактное (типа, с типом object). И ругаться компилятором, что мол, сударь-с, у вас тут пока не собирается, я тут-с немного подкрутил. Запускать это можно частично, всю работу не гарантирую.

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

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

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

Если бы я понимал зависимые типы, то я бы тоже был их приверженцем. Но, имхо, до чего-то жизненного они пока не доросли.

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

понедельник, 18 февраля 2013 г.

Языковое

Я так не люблю телевизор, что новый год встречал в окружении мороженного и scala. Ну как встречал, о чем-то (понятно о чем) задумался, поднял голову - там уже 0:10. Президентов я не слушаю, они не могут сказать ничего нового. Да и не на чем.

Таки уже первого числа сходил к родителям. Получил дозу облучения телевизором (где-то 14-16 микроРентгенЧас), поел, подарил web-камеру и ушел как Винни Пух с фразой "ну, раз больше ничего нет..."

Очевидно, что пост не про это. И даже не про ЭТО.

В праздники таки добил bloxorz - эта такая пошаговая полу-логическая игра. http://www.coolmath-games.com/0-bloxorz/index.html , вот тут можно попробовать. С Димой непонятно зачем прошли вручную за вечер. Недели за полторы я смог вбить все уровни и сделал это в автоматическом режиме. Несколько непонятен смысл автоматизации, когда вручную можно сделать за день, а автоматизируешь в десять раз дольше. Удовольствие в самом процессе, а смысла нет.

Результат можно посмотреть тут https://github.com/ajtkulov/bloxorz_scala , если у вас стоит scala + sbt, то можно забрать исходники, в корне запустить sbt и набрать там test.

Это отнаследованная вещь от заданий с coursera. Все что без комментариев, очевидно, мое.

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

Отлаживать уровни - это местами ад. Во всех случаях в итоге где-то косячишь на +-1 по координатам, отловить такое нетривиально. Косяков с кодом практически не было. В одном месте забыл переопределить hashCode. Еще оказалось, что ++ для стримов лучше не писать, а .append() эффективнее. На маленьких данных все работает, а чуть дальше памяти не станет хватать.

В каждой из функциональщин есть джентельменский набор вопросов, которые необходимо знать. Как клеятся списки - это пожалуй один из первых вопросов. В пятерке также входит не использование foldr с бесконечными ленивыми объектами (это вам не foldl).

Не знаю, может немного подрос. Сейчас везде с легкостью втыкаются fold. До этого я что-то ручками все рекурсию писал. А сейчас прямо прет.

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

Система сборки sbt довольно радует. Очевидно, вы пишете простые скрипты на scala, при том все типизированно. Конечно, уже сильно привык к тому же Resharper, что позволяет просто вертеть проекты в 20+Мб исходников. Писать в emacs десяток Кб нетрадиционщину для меня уже (или пока?) напряжно.

Прохожу еще на coursera курс, там был месяц ML, сейчас Racket (оно же Scheme). ML приятен на вкус. Довольно прост и местами абстрактен. Папа многих, Хиндли-Милнер ногами растет от туда. Если не про ML, то я щупал около 4..6 диалектов скобочек, мелочи есть, я их ощущаю. Scheme && Racket немного рафинированы, и немного урезаны с практической точки зрения. А так, скобочки как скобочки. Мне нравится. Отсутствие статической типизации и лексический scope как-то напрягает, но если закрыть глаза... то практически не тошнит.

В общем, детский восторг на детском уровне. 

понедельник, 11 февраля 2013 г.

Не о грибах

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

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

В принципе, это все сводится к опять к мерилкам, ценнике на шубе или длине полового члена. На данный момент я нахожусь в понимании, что
  • меряться каким-то одним измеренем есть плохо. Можно даже собрать какой-либо агрегационный рейтинг и меряться им, но это все равно плохо. Проблема в адекватности рейтинга, все равно это сводится к одному измерению=рейтинг.
  • меряться в таком понятии есть несколько плохо. Плохо меряться публично, а для внутреннего понимания "где ты сейчас находишься?" может быть полезно. "Где я" и "куда двигаться" - это хорошие вопросы. Вопрос "зачем" философский и часто очень хорош.
В мировом масштабе говорят что американцы (США) должны меряться более активно. Опять же, не могу ничего сказать адекватного. Тот, один/два десятка, которых я видел, этим не отличались. Обычные люди.

Далее, наверное, таки идут москвичи. Какие-то нотки есть у всех крупных городов, тот же Екатеринбург с Питером иногда чувствуется. Но победитель по длине тут явно один. Однажды я видел такой диалог, люди перечисляют города, откуда они родом.

- Я с Пскова.
- Петрозаводск.
- С Оренбурга.
- Я с Фили.

Тут можно вызывать санитаров. И заметьте, что такое могло быть только с Москвой.

Конечно, абсолютное большинство москвичей - нормальные не контуженные люди. Просто вот эти 0.5% с заскоками чаще видно, потому что этому логарифму надо сильнее выделяться. Самое такое место обнаружено мною в Москве - это между Охотным рядом и Лубянкой, почти напротив Думы. Там нужно подъезжать на феррари/мазерати/бентли, специальный человек подвинет колпаки на тратуаре, вы выйдите и пойдете пить кофе на террасе. В принципе, феррари больше ни для чего не приспособлен, цемент на дачу возить вообще не удобно.

Далее я отмечаю контузию у МГУ. Опять же большая часть популяции - это нормальные люди. Но самое высокое здание среди учебных заведений... Какой еще вуз так раскрутил свое здание? Вы знаете как выглядит МИТ или CMU? СПбГУ только исторически свою двухэтажку рисует, но это только 2 этажа.

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

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

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

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

В общем, меряйтесь дома перед зеркалом, оно для рефлексии полезно. Не надо только результаты в твиттер/инстаграмм выкладывать. От рвоты монитор сложно отмывать, проверено. Если меня покормить грибами и сказать что-нибудь про "статус/престиж", то вы даже не успеете отпрыгнуть. Сами виноваты будете. 

среда, 16 января 2013 г.

200 тыс. пробега

Пробил 200 000 прочитаных сообщений в google.reader. Сейчас я подписан на 433 фида, это где-то 5400 (+-300) сообщений в месяц.

Писать про состав не буду, за предыдущую отметку оно мало изменилось. Года полтора назад тут был пост про 100 тыс. пробега ) .

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

Подписан на несколько человек, которые в столицах ходят на митинги. А потом идут домой, смотрят первый канал и пишут, что все не так, что #нтвЛжет. Ну не дураки ли, а? А в другое время, вроде, приличные люди. 

Если посчитать, то 25000 твитов эквивалентны "Война и мир". Печально, но есть такие люди, у которых в понаписанном столько. Есть да же и больше. Хотя 6250 твитов эквивалентны одному тому "Война и мир". Таких людей уже гораздо больше. Мне пока там далековато, но как бы фильтровать твитерастов в обычной жизни? Зомби сами палятся, когда в разговорах говорят "я тут вчера смотрел по телевизору". А ты так сразу настораживаешься и заносишь человека сначала в "карантин", а потом в "черный список". Но пока не слышал, чтобы кто-нибудь сказал "я тут написал 6250 твитов". Тот же зомби, вид спереди.

В итоге пост сводится к понятию времени. Я видел людей, которые сильно ударялись в игры. Очень сильно. В основном мальчики. Вместо развития как человека получается ничто, а могли бы вырасти хотя бы человеком. Хотя убиваться можно хоть чем, хоть футболом 5 раз в неделю (если вы не профессиональный футболист), хоть наркотиками, хоть youtube-ом, хоть играми. Людей, которые на ежедневное перемещение в одну сторону тратят более 30 минут, я называю "москвичами". Они даже не подозревают...

Просто как представляю суммарно 200 тыс. прочитанных постов, так становится немного страшно. Если от каждого поста взять только по одной букве, то это уже 200 Кб, то есть четверть тома "Война и мир" или примерно 200 страниц текста. Даже есть посты шли бы по 17 байт в среднем, то это уже нормальная "Война и мир". Стоит конечно учесть, что это около 4-х лет активного (минут по 15 в день) чтения. Агрегированное число несколько пугает.

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

Даже бывают дни, когда я могу вообще не зайти в поиск. reader.google.com пропускаю не по своей воле: только из-за командировок или отсутствия интернета. Таки, это пожалуй, основной проводник во внешний мир.

четверг, 3 января 2013 г.

TODO: Придумать заголовок про кино

Попробовал поддержать разговор с семилетним человеком. Спросил когда будет следующий фильм про Гарри Поттера. Вот так смотрят на динозавра, даже Ленин на буржуазию так не смотрит. Понял, что кино это не моя область. Хотя, и так знал.

В кинотеатры я хожу раз 4-5 в год. Или по дурости, или по болезни, или поблизости. По дурости и поблизости по сути есть одно и тоже. По болезни - это когда болеешь с недельку, выздоравливаешь и надо куда-нибудь ногами просто пройтись. На футбол/в лес не разумно еще, поэтому иногда хожу. Дурость не объяснить, когда совсем рядом находишься - почему бы и не зайти?

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

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

Рекомендовать фильмы вообще глупо, это как советовать заниматься спортом лежа на диване. После первого абзаца даже пытаться не стоит. Тогда я просто скажу, что мне понравилось за последние полгода. Очевидно, что это будет не ширпотреб из кинотеатров, вы могли и там это видеть.

И так,

"Общество мертвых поэтов". Только сейчас прочитал, что у него Оскар за 1990 год за лучший оригинальный сценарий. Про бинарные отношения на людях. Что-то из дружбы и недружбы. Робин Уильямс из состава.

"An education" на русский название перевели как "Воспитание чувств". Про бинарные отношения на людях. Мальчик, девочка. Мальчику правда около 35, а девочке 16. Даже бОльшая амплитуда, чем у Пушкина. Я за то, чтобы в любых отношениях (дружба-человек-человек, любовь-девочка-мальчик) был общий язык и система ценностей/понятий, оно конечно немного зависит от возраста, но может и не коррелировать. В фильме есть мхатовский паузы, и при другой актрисе это было бы не возможно. Из состава никого звезданутых.

"Снежная тюрьма" (Into the white). Очевидно, что про бинарные отношения на людях. Что-то из дружбы, что война таки из людей, которым "пришлось". Из актеров только рыжий друг Гарри Поттера.

Сумарно за три фильма убито/умерло 2 человека, так что не ширпотребовские боевики.

А еще, если тут есть фанаты Стругацких, то оказывается есть фильм "Гадкие лебеди". Собственно по "Гадкие лебеди" или "Туча" (лепрозиторий, дети и дождь). Если вы фанат Стругацких, то собственно вы знаете что делать. Конечно, не Тарковский, но дух, вроде, передан. Я по дурости посмотрел первый у Бондарчука (простите, но это говно говном). Тут гораздо лучше. Еще в ближайшие годы должен появиться ТББ, должно быть на уровне. Хотя Стругацких лучше читать, в любом случае.

пятница, 21 декабря 2012 г.

Анабиоз

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

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

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

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

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

Летом - все что более 23 - жарко. Выше 25 спать с одеялом довольно затруднительно. Больше 28 - невозможно уснуть. Для этого изобрели и поставили кондиционер. Правда, сбить можно только до 23, выключить и уснуть. Проснуться, опять 25.

Зимой в некотором смысле проще. Поднять выше 23 уже не получится. Опустить до абсолютного нуля можно только в физических лабораториях. Диапазон в 21.5... 22.5 - идеален. Все что ниже 21 в летней форме (футболка/шорты) в течение пары неподвижных часов и вы тоже научитесь отделять каждые полградуса. Если после движения переодеться в летнее, то не почувствуете разницу между 17/19/21 (первые несколько минут).

На ночь открываю окно по минимуму. Сначала бывало с утра 16.8, 15.8, 14.3. Сегодня очередной минимум в 12.8. Когда утром вас будит будильник, вы первым делом закрываете окно, и только потом выключаете будильник. Минут через 10-15 становится теплее и все восстанавливается. 

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

В такие морозы сплю в футболке, и сейчас даже в носках, с ними комфортнее. В памяти холодом в сердце вырезаны две командировки: Пермь-2006 и Петрозаводск-2012. Сейчас дома просто закрываешь окно и температура восстанавливается. В тех кошмарах такое не прокатывает, там и так все закрыто. Тогда у меня не было с собой электоронных часов с градуснинком, но подозреваю что это было не более 15, причем постоянно. В Перми я спал в 2-х футболках, штанах, шапке и шарфе.

На улице я все время в движении, обычно мне надо дойти от абстрактной точки А до абстрактной точки Б. Летом мне комфортно в 15-17 при небольшом ветре. Зимой все сложно, потому что три слоя одежды. Рубашек с длинным рукавом у меня не было класса с пятого-шестого, именно по этой причине. Да, у меня есть пиджак, который я одевал не более десятка раз. И никакая мама не сможет убедить меня что это некрасиво. Прагматика важнее.

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

четверг, 13 декабря 2012 г.

Этикет

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

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

С дверьми я предпочитаю так. Если впереди или наравне идет женщина или физически не очень сильный человек (дети, старики/старухи, депутаты ГосДумы 6-го созыва), то имеет смысл немного обогнать и пройти первым. Так я могу пройти на нормальной (максимальной) скорости, при этом открыв дверь позади идущим. Экономия 10 секунд на итерацию, 40 секунд в день (вход/выход  * обед), в 200 рабочих дней в году это уже два с гаком часа.

Иначе бывают вообще случаи: человек хватается за ручку, тянет на себя. Фэйл. Толкает вперед. Тоже фэйл. Хватается за соседнюю дверь. Уже толкает от себя. Да сколько можно - фэйл. Тянет на себя - бинго! Подходит ко второй двери. Ну, тут вы уже поняли... и по аналогии опять 3 неуда. Хотя на каждой двери четко русским языком написано "на себя", "от себя". Убивал бы.

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

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

Кроме шуток, а после Беслана в некоторых школах поставили двери покрепче. Сам видел как первоклашка, может и пришедший точно к началу занятий, не смог открыть дверь. И стоит минут 5 до случайного прохожего.

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

воскресенье, 2 декабря 2012 г.

Богатый внутренний вакуум или части тела

Тут по городу в нескольких местах висит реклама на щитах, видимо, недвижимости в Докше. Если кто не местный, то это вроде поселка на берегу Камы. Но почему-то половина рекламы занимает женская попа #опа.

Осталось придумать нормальный слоган, вроде "Купи дачу в #опе", "свяжись с нами - попади в #опу", "заключи договор - и мы тебя нагнем" или "купи недвижимость - недвижимость в подарок". Был тут у нас котеджный поселок "Европа", но они так не креативили.

В углу рекламы висит то самое "18+". То есть дети, идущие утром в школу, увидев рекламный щит, должны разыскать в верхнем левом углу ограничение на возраст, закрыть глаза и пройти 150 метров думая о чем-то прекрасном.

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

Реклама всяких шурупов и винтов выполена в двух цветах и без картинок. Если бы они знали английский, то тоже могли обыграть слово "screw". Может они и знают, но просто решили остаться людьми?