среда, 28 апреля 2010 г.

Хитрость

Умный начинает с конца, дурак - с начала, программист - с середины.
Николай Н.

Найдите биекцию с [хитрый, хитро-умный, хитро-жопый]. Такое ощущение, что последний вариант будет с середины.

воскресенье, 11 апреля 2010 г.

Наконец-то

John C. Mitchell, Foundations for Programming Languages.

Как один из двух основных переводчиков, могу сказать "Сабж".

Книжка конечно полезная, но не всем :) . Сейчас НАКОНЕЦ-то смогу нормально по-русски почитать, и всю...

От начала до продаж прошло года 4, причем 80% перевода было сделано за полгода.

воскресенье, 28 марта 2010 г.

Дела и проблемы

Если на вопрос "Как дела?" вам отвечают "Нормально", значит вы не входите с группу доверия этого человека.

Прикольно, но для меня это даже не рефлексивно. Лично я изобрел фразу: "Ты бы еще спросил как у меня дела..."

А еще в последнее время от меня можно услышать фразу "Это твои проблемы". С большой вероятностью, это означает что мы более-менее хорошо знакомы. Если мы не знакомы, и вы услышали от меня эту фразу - значит мы точно не будем знакомы. А если мы малознакомы, и вы начинаете на что-то жаловаться, то я буду тупо улыбаться, так как природная скромность не позволит мне честно сказать.

Фразу "Это моя проблема" я произношу довольно часто.

А если в решении проблемы заинтересовано более одного субъекта, то это проблема. Поэтому надо делить до "Это моя проблема"/"Это твоя проблема". Только очень маленький класс проблем будет решен парой качественно (тут проблемы с внимательностью). Все остальное надо делить на эгоистические подзадачи.

вторник, 23 марта 2010 г.

Дерево

Таки реализовал порядковую статистику с поиском минимума на отрезке.
Декартовы деревья (они же дерамиды, они же treap, они же cartesian tree, они же деревья приоритетного поиска (по Вирту)) рулят. Смесь дерева и пирамиды. Дерево - для поиска, свойства кучи - для балансировки (у каждого узла есть дополнительный признак - приоритет, выбирается рандомом - по которому имеется свойства кучи). Вставка/удаление/поиск - как дерево, балансировка - как куча (два тривиальных поворота).

В Б-дереве удаление (точнее, сжатие узлов при удалении) - штука довольно нетривиальная при реализации.

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

На Б-дереве (с плотностью более 2) поиск минимума будет еще не тривиальнее.

Странно, все влезло в 10К. Теперь стоит написать комментарии, вынести минимум в сущность моноида и еще пара моментов. В 15К точно буду.

Update:
Дженерики более второго порядка в современном программировании - зло.
Как же называется коммутативная полугруппа? Моноид - не то, промахнулся я с абстракцией. Абелевы полугруппы? В мое время были только абелевы группы, let it be...
Вынес сущность, на (min, +\inf) все работало, на (+, 0) перестало. Где-то дважды хожу по дереву. Все не тривиальнее и не тривиальнее...

Update2:
забыл я алгебру... это просто коммутативный моноид.

воскресенье, 21 марта 2010 г.

Современность

HTC Hero очень современный телефон.

Вставив и достав наушники, он почему-то считает что уши еще есть, и поэтому при звонке голос собеседника отправляется в /dev/null (ну, или в /dev/куда_не_надо). Стоимость двух fake-звонков в Мск составляет двухмесячный бюджет моих звонков, не то что дорого, просто я звоню мало. Помог только перегруз телефона, да и потом я решил звонить с городского.

воскресенье, 14 марта 2010 г.

В первый раз

Сегодня впервые смог оттянуть свояка в невке. Понравилось.

Недавно за пять минут (ибо Haskell) реализовал "почти Рабина-Миллера". Не совсем классический, тупо рандомом выбираю числа и проверяю малую теорему Ферма. Начал тестировать. На двух числах, которые я был уверен что они Кармайкловы (561 как минимальное, и Рамануджан) тест выдает что составные. Что бы разобраться "что за фигня" потребовалось больше времени, чем на написание. Оказывается, все правильно. Казалось бы, что такой тест должен пропускать все Кармайкловы числа, но мы очень часто случайно выбираем число не взаимно простое с числом (561 вообще делится на 3, 11,17; 1729 на 7,13,19). Хотя из определения Кармайкловости "казалось" что должно быть "Кармайкловым".

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

Нашел несколько реализаций красно-черных и других, но там код "вонючий". Если есть приватная филда с именем "tempNode", которая инициализируется в одном методе, а используется в другом - то код для меня "вонючий". В другой реализации кода порядка 130 Кб - что-то много нетривиального, видимо. А мне не надо просто дерево, мне надо динамическую статистику (понятие из Кормена), то есть удаление/добавление/индексный_доступ за log(n), и еще расширив потребуется поиск минимума на отрезке то же за log(n).

Хотя недавно видел на Haskell реализацию красно-черного - там все повороты красиво описаны в 5-ти строках. Я же решил писать Б-дерево, так как оно интуитивно понятно (нет никаких странных поворотов), правда с удалением не совсем все тривиально.

Резюмируя, все что вы делаете в первый раз может сильно отличаться от того, что у вас было в голове всю предыдущую жизнь.

понедельник, 1 марта 2010 г.

n-юродность

Я долгое время не мог понять родственные отношения с n-юродностью, n >= 3. "Троюродная сестра" или "двоюродный дядя" - эти абстракции не помещались у меня в голове. Двоюродные братья/сестры у меня есть, дяди/тети тоже имеются, а всех кто дальше я причисляю к дальним родственникам.

Таки въехал. Оказывается все просто. Берем две вершины. Ищем lca. n = min(r(lca, v_1), r(lca, v_2)). \ldots Дедушка/дядя/брат/племянник/внук /ldots определяется простой разницей: r(lca, v_1) - r(lca, v_2), где r(i, j) - расстояние между прямыми потомками, не симметрично; lca - по определению :) .

Объективно пол определяется по записи в свидетельстве о рождении. Хотя я знаю нескольких физиологически-мальчиков с головами девочек, и несколько физиологически-девочек с головами мальчиков. Так что пол для меня вещь субъективная.

пятница, 5 февраля 2010 г.

Сон, время, убийство

Время не любит, когда его убивают.
Л. Кэрролл

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

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

Единственное, когда я допускаю убийство времени - убийство на вокзале. За все прочие убийства времени надо преследовать по закону (УК, ибо нефиг). У меня алиби, точнее отмаз :) .

Таки я стал обладателем андроида. HTC Hero. Теперь хочется портировать нечто чистое с длинной арифметикой, ибо nix-оподобное, с-шный компилятор где-то есть в сети. Только не знаю, насколько дойдут руки. Даже сделал одну запись в твиттер-е (и понял, что это не мое - сжимать мысль до 140 символов).

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

Шахматы

Шахматы - это когда ты большую часть своих знакомых узнаешь по затылку.

суббота, 2 января 2010 г.

Почти математические фильмы

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

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

Причем сценаристы не смогли проконсультироваться у самих математиков по поводу понятия "равновесие по Нэшу". В фильме фигня какая-то.

Фон Нейман когда узнал от Нэша о его результатах, сказал что это "тривиальное следствие из теоремы о неподвижной точке".

Но как фильм - по деньгам вложились - получилось съедобно.

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

И это пожалуй все. Можно найти "математически фильмы" (тонны лекций по всем направлениям). К "почти математическим фильмам" они не относятся.

Недавно наткнулся на документальные фильмы. http://www.zalafilms.com/. На торрентах и ютубах местами есть. Полностью пока нашел только про Erdös (из-за четвертой буквы религия мне не позволяет писать Эрдоша). Мой ломанный нагло-американский синтаксический анализатор все съел.

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

понедельник, 28 декабря 2009 г.

Еще один

Не вижу заслуг в том, что энное количество раз прокрутился с Землей вокруг Солнца.
Михаил Ботвинник о своем 70-летнем юбилее.

По календарю приближается очередной. Как и Ботвинник, не вижу заслуг.
В 5-ти летнем возрасте (наверное, как и все другие дети) чему-то радовался. Классе в первом/втором, учительница (гадина :) ) раскрыла тайну не существования Деда Мороза. Специально проследил процесс появления подарков под елкой - по-крайне мере учительница не обманула. Может он неконструктивно существует.

Радость - эмоция. Отсутствие информации. Получилось лучше, чем планировали. В последние года три все праздники радости не приносят. Что бы я не делал, Новый год все-равно наступит. "Приносится" удовлетворение от наличия свободного времени, которое не всегда удается рационально использовать.

В последние два года в новогодние выходные ставилась цель - "захватит мир". Как видите, удалось не полностью. Может стоит поставить цель - "захватить вселенную"? И осуществить ее хотя бы на 0.001%. Тем самым мир точно захвачу. Если верить первоисточникам - всю вселенную(или там как-то расплывчато про границы говорится?) Некто построил за 6 дней. Он еще в субботу выходил поработать. Захватить небольшой кусочек за 10 дней точно можно.

В конце боянистое абстрактное пожелание.

Что бы все...

четверг, 17 декабря 2009 г.

Символы

БОльшая часть моих ответов в IM-чатах составляют знаки "+", "-". Хотя я не очень большой ценитель Brainfuck-a. Когда приходится писать на естественном языке, то скобочки нравятся больше :)
, лиспанутые.

В русском (и других естественных) есть союзы типа "а", "и" (а нагло-американском только неопределенный артикль)- могли бы \alpha-редуцировать "да", "нет" в однобуквенные.

Когда же меня просят выбрать из двух вариантов (первый или второй) - я отвечаю 0 или 2 (что бы однозначно все могли понять). Нейтральный элемент по умножению использовать опасно.

update: 23.12.09

В последние лет двадцать мне почему-то задают вопросы в негативной постановке. Например, "ты случайно *не* знаешь об объекте N?" Так как мой ответ обычно односложен, то вопрошающий обычно получает +/-. Но так как это неоднозначно ("да, не знаю", "нет, знаю" :) ), то приходится давать развернутый ответ: "да, знаю". А я вот стараюсь задавать вопросы в позитивной постановке: "у тебя случайно есть ручка?" Feel the difference... (c)

суббота, 12 декабря 2009 г.

Сущность незнания

Каждая область знаний не знает с чем она оперирует.

Математики более-менее представляют, что такое натуральное число. Что такое число (не натуральное), множество - не знают.

Врачи не знают что такое жизнь.

Физики не знают что такое время, материя, энергия.

Информатики не знают, что такое информация.

Экономисты не знают, что такое цена, деньги.

Философы ничего не знают.

Если вы что-то знаете, значит вы не специалист в этой области.

четверг, 3 декабря 2009 г.

##й

Таки приобрел. Правда, еще не играл. Разборный, из 2 частей, 710 грамм, 1.65 метра. Наклейку, скорее всего, придется поменять. В поставке какая-то фиговая, похоже, идет. Но это вообще расходный материал.

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

update 06.12.09.

наклейка жестковата. все остальное - годится.

воскресенье, 29 ноября 2009 г.

Расход на сотню

За два года порвал три пары спортивной обуви (правда, всегда самые простые резиновые кеды рублей за 250..300).
Количество продырявленных носков составляет около двух десятков (предел снизу).

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

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