|, me, hikki, ok

Без девяти

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

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

В мои без девяти с копейками часа двадцать два года меня чертовски печалит всего одна вещь:
* всеобщая безответственность.

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

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

Обогатив вас этими своими прекрасными взглядами на жизнь предлагаю лишний раз не страдать фигнёй и не писать «поздравлений из вежливости», чтобы я также из вежливости на них отвечал. Смиримся с тем фактом, что я и так знаю кому на меня не насрать (и мне с этими существами, для того чтобы это продемонстрировать, не нужно несколько раз в году поздравлять друг друга с несуществующими праздниками), зато тем кому насрать можно лишний раз не заставлять себя и меня писать всякую чушь.
Замечу также, что я никого не хочу обидеть, всем, кто искренне хотел меня порадовать — спасибо, всех люблю, но давайте уже бросать этот карго-культ с никому не нужными поздравлениями.
Если бы дней рождения не существовало вообще — было бы ничуть не хуже, инфа сто процентов.
|, me, hikki, ok

Ещё одна Тамаки

Проанализировал несколько картинок, явно преобразованных из 2D в стереограммы, и нифига не понял как это делают. Что печально.
Но создаётся ощущение, что их просто деформируют на 1-2 градуса по горизонтали.

От бессонницы сделал ещё одну стерео-Тамаки.
Collapse )
|, me, hikki, ok

CHDK

Где-то месяц не читал слешдот, в лайфрее скопилось что-то типа девятисот непрочитанных постов, потому ночью я решил, что срочно пора уменьшать их количество.
За один присест осилил где-то 500 штук и почти никакие из них не осели в памяти, зато те, что осели отвлекли меня на целый день.

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

CHDK это такой SDK для хаченья фотиков серии Canon PowerShot. История на офсайте говорит, что штука сия была создана вопреки прошивкам канонов, чтобы снять ограничение на создание фоточек в RAW, ибо железка у Canon такую возможность имеет, а официальные прошивки — нет.

Насколько я понял, по диагонали пробежав документацию, то при загрузке камеры прошивка от Canon, при некоторых условиях, ищет на SD-карте бинарник с обновлениями, загружает его в память и отдаёт ему управление, а после завершения его работы грузится ОС камеры.
CHDK притворяется бинарником с обновлениями, при своей загрузке резервирует верхний кусок оперативной памяти устройства и «слегка» правит основной код ОС, добавляя туда свои «хуки».
Эти хуки вмешиваются во все нажатия клавиш камеры, в процесс фотографирования, сохранения полученных фотографий, etc. В результате на устройстве как бы работают сразу две ОС.

Так вот, совершенно случайно, у меня имеется камера Canon IXUS 860 IS. Потому на игры с CHDK на ней ушёл целый день. Я не профессиональный фотограф, фотографией не увлекаюсь и не собираюсь начать. Лично меня привлекла возможность добраться своими грязными лапами до забавной железки с армовским процессором.
Но возможность произвольно менять выдежку, ISO и три тысячи других настроек, сохранять результаты в RAW, запускать скрипты на uBASIC и LUA меня порадовала. Ещё эта штука рисует на экране чертовски информативный OSD.
Если даже меня впечатляет, то фотографы небось вообще кипятком писают.

Только я как-то обработкой изображений не увлекаюсь, и, в принципе, делать что-то конкретное с CHDK лень, однако есть пара идей.
1) Если вклиниться в USB-стек, то можно, например, сделать из фотика веб-камеру (непонятно, правда, зачем).
2) Сделать набор весёлых пост-процессингов. Например, фоткаем деньги, разбросанные по столу, а оно говорит сумму разбросанного.

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

Экспериментируя с тулзами для создания стерео-картинок в камере, сделал Collapse )

Краткое руководство для получения стерео-эффекта:
0) открываем картинку из под ката на полный экран,
1) ставим на расстоянии 10см. перед глазами указательный палец,
2) теперь, если (не убирая пальца) посмотреть на монитор, то палец раздвоится,
3) передвигая палец находим такое его (а может быть ещё и головы) положение, когда правый квази-палец находится над правой Тамаки, а левый — над левой,
4) теперь фокусируемся на пальце,
5) медленно убираем палец с линии взгляда (например, сгибаем его), но не меняем точку фокусировки (то есть нужно смотреть в точку, где был палец, а не на монитор, который становится видно после исчезновения пальца),
6) на экране должно быть видно три Тамаки, где средняя — стерео-версия.
После некоторой тренировки палец становится не нужен, можно сразу поставить глаза в нужное положение.
Если стерео-Тамаки сильно размыта, то нужно, не теряя концентрации, медленно отодвинуть голову от монитора (или, наоборот, придвинуть ближе).
Ещё можно попробовать сфокусироваться на плинтусе, который находится за стерео-Тамаки.
Кроме того, теоретически, можно убрать размытость просто заставив глаза правильно деформировать хрусталик, но на практике это очень трудно сделать, ибо мозг привык фокусироваться на то, на что смотрим, а не смотреть в одну точку, а фокусироваться на другой. У меня такая магия получается очень редко, отодвинуться от монитора гораздо проще.

Сама стерео-Тамаки даёт приятное представление о качестве самой фигурки. Такие дела.
|, me, hikki, ok

Очередной поток кирпичей

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

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

А ещё забавляют причитания лектора на тему того, что в будущем хотят убрать из учебных планов технарей один семестр философии и, вроде, всю культурологию. Если это правда, то мне, например, жалко только, что я не в будущем.
Не меньше меня забавляют причитания о «былых временах» типа:
— В Древней Греции люди тысячами собирались на городских площадях, чтобы послушать философов, а сегодня все смотрят тупые передачи по телеку.
— Раньше все ходили в библиотеки, а теперь бездумно поглощают потоки информации из интернета.
— Раньше все играли в шахматы, а теперь в «контр-страйк».
— А вот в советские времена командир подводной лодки получал аж 1000 советских рэ, а сегодня они работают в охранных агенствах за копейки.
Можно продолжать, только это всё разговоры для бедных.
Вчера гик, целыми днями торчащий в интернете, считался хикикомори-задротом и ассоциалом, а сегодня ассоциален тот, кто не просиживает часы фтентакле/фейсбаке/твиттуре.
О том как плохо, что молодёжь не читает книг, говорят только те, кто не видел чего-нибудь типа «колхоза» (а идиоты были всегда, может быть только концентрация поменялась).
О том какое говно показывают по телевизору говорят только те, кто его смотрит.
Тотальную увлечённость спортивными зрелищами критикуют те, кто сами ими увлекаются.
А все вокруг отдыхают только у того, кто сам нифига не работает.

И ещё перл: «Бывают гении-вундеркинды по математике или физике, но история не знает примеров вундеркиндов по истории и философии. Это говорит о том, что гуманитарные науки сложнее технических, поскольку для технических достаточно только способностей, а для гуманитарных требуется и большой багаж знаний.»
Логика в этом утверждении, несомненно, есть, но я, например, склонен интерпретировать упомянутый факт несколько в другом ключе. Но, дабы никого не обидеть, промолчу.
|, me, hikki, ok

Игрушки

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

От большой любви к железкам купил ещё 4Гб памяти, интелловскую гигабитную сетевую карту, асусовский гигабитный свич и клавиатуру Sven wireless 9004 (о которой, в данный момент, имею весьма двойственные впечатления, но с кровати рулить компьютером — ок).

Происходящее вокруг заставляет думать о вещах, о которых мне думать очень не нравится, и, к тому же, абсолютно не оставляет свободного времени. А так хочется уйти в анимушный запой на неделю.
В не очень свободное время парю себе мозг представлением (автоматного, да) eDSLя на хаскеле при помощи всяких там стрелок и категорий. Глубина научного достижения невелика, перспективы смутны, но немного пахнет FRP, а это сейчас модно. Такие дела.
|, me, hikki, ok

Задачка

В четверг на военке компания увлечённых товарищей поделилась забавной задачкой:
«Доказать или опровергнуть, что у выпуклого многоугольника хотя бы одно ребро лежит на bounding box.»

Для общего случая решить не смог (порвал брутфорсом для треугольника и ромба), но нашёл в интернете, что это утверждение действительно всегда верно и доказано товарищами Freeman и Shapira в «Determining the Minimum Area Encasing Rectangle for an Arbitrary Closed Curve». Хотел было почитать их статью, а за неё везде денег просят. Она, блин, 1975-ого года. Эти буржуи совсем офигели, я считаю. Какая, нафиг, наука, если ничего нахаляву прочитать нельзя? А потом удивляются, что студент дурной пошёл.
|, me, hikki, ok

Надо что-то делать

Решено написать о вещах, которые тут как-то не очень упоминались. За последние несколько недель я: собрал очередной компьютер, ко мне дошла посылка из Китая (почта это ок, три недели лежать на импорте — это здорово), похачил Арч, почитал умные книжки.

Новая железка состоит из Intel DQ45CB, Core 2 Duo E7600, 4 Gb RAM, смешной корпус Foxconn, смешной кулер CoolerMaster, HDD Hitachi на 2TB.
Раз я уж начал, называть машины из домашнего кластера именами персонажей из Cowboy Bebop, то этот получил имя «ein».
Такую забавную материнку выбрал из за чипсета Q45, у него есть VT-d (хочу IOMMU и проброс девайсов в виртуальные машины) и хардварное декодирование HD видяо. Правда под лялихом оно пока не очень поддерживается, но vaapi подаёт надежды. Сначала хотел взять с чипсетом G45 (оно vaapi поддерживается целиком), но тот без VT-d, а это не так весело.
Мать сама оказалась всем хороша, кроме просто невозможно бажного биоса. В каждом обновлении одно чинят, а другое ломается, сейчас отвалился хардварный мониторинг %_%.
И ещё оно E7600 не поддерживало до первого обновления чудесного биоса, потому пришлось выковыривать ЦПУ из другого компьютера, перепрошивать биос (что само по себе было достаточно весело), и только потом юзать новый проц. У ASUSов, хочу заметить, мать запускается и на неизвестных ей CPUID. Бутлоадер не грузит, но хоть биос обновить можно без шаманства.

Collapse )

Что касается линуксов. В общем, появилась у меня бредовая идея сделать не просто кучу компьютеров, а нормальный мейнфрейм, чтобы все грузились с одинаковых образов. Но дом — не датацентр и все компьютеры должны немного отличаться в железках (а потому и в софте), иначе каждый из них как бы бессмысленный, ибо белки сворачивать у меня желания нет.
ein у меня вообще есть желание поставить к телевизору, но образа у всех хочу одинаковые.
Потому моя гениальная мысль заключается в том, чтобы всё, что можно, унести в виртуальные машины (с дисками расшаренными по сети, на случай фейла одной ноды), а всё что нельзя (ибо оно должно работать напрямую с железкой, например) — совать в бранчи aufs2, отпочковывающиеся copy-on-write от основного образа.
Основной образ я сначала было хотел слепить из Debian Live, но узрев миллион строк кода в livehelper я эту идею отложил. Следующий хорошо мне известный дистрибутив — Arch.
За три дня выходных я:
* изучил всю доступную документацию по Arch (чем сэкономил в следующие два дня уйму времени);
* изучил то, как работает larch (Live Arch), понял, что оно мне не нравится и надо писать свой;
* поигрался с утилитами из Арчевых dev-tools, где есть mkarchroot (типа debootstrap от Дебиана), понял что это близко к тому, что надо, но тоже надо написать свой;
* написал свои «правильные» версии утилит из dev-tools, позволяющие быстро собирать произвольные Арчевские образы в chroot, рут которого может находится на aufs2;
* написал свои хуки mkinitcpio, делающие aufs2 root при загрузке системы, слегка переписал rc.* скрипты, чтобы они не пугались такого метода загрузки;
* заставил всё это работать.

Итого:
* собираем chroot с Арчем;
* вваливаемся в этот chroot с пустым rw бранчем, на который ставим необходимые модификации;
* получаем ванильный Arch внизу и модификации на другом лейере, которые система видит как общую файловую систему;
* сжимаем все бранчи в отдельные файлы при помощи squashfs;
* кладём эти файлы в специальную директорию в /boot;
* хук в initrd подхватывает эти образы при загрузке и восстанавливает из них рабочий / с rw слоем на tmpfs.
В результате можно использовать один ванильный образ на все компьютеры, с маленьким образом локальных модификаций. При этом никакой NFS-root не нужен, работает это быстрее чем по NFS, и вообще даже сеть не нужна, можно иногда только базовый образ, получаемый упаковкой в squashfs chrootнутого ванильного Archа, обновлять хоть с флешки и радоваться.
Надо ещё только допилить, чтобы rw бранчем при загрузке можно было ставить раздел диска/lvm2, а то это тоже может быть полезно иногда.

И есть ещё глупый вопрос по математике: вот не вполне понятно почему сигнатуры алгебр иногда содержат нульарные функции, которые, казалось бы, выражают объекты, которые должны быть элементами множеств над которыми эти алгебры растут. Когда это F-алгебра и теория категорий, то эти нульарные штуки (ну там они уже даже и не функции, а эндофункторы с доменом из ко-произведения с терминальным объектом, но это не суть важно) воспринимаются чисто как технические ограничения (потому что есть объекты, но нет множеств, а, например, нейтральные элементы группы надо как-то выражать), но в аксиоматике теории множеств нульарный нейтральный элемент среди «функций» выглядит странно. Чего я не понимаю? upd: сам разобрался, ок
|, me, hikki, ok

Экзамены

Вот, кстати, раз вспомнил об этом.
Я знаю следующие стереотипы поведения преподавателя при приёме зачёта/экзамена, когда экзаменуемый начинает говорить ерунду:
* послать его на пересдачу (вроде бы самый часто практикуемый),
* смажорировать его своим всеведением и его незнанием и послать на пересдачу,
* свести множество утверждений экзаменуемого к абсурдному утверждению/найти противоречие и попросить его с этим что-то сделать (этим методом обычно пользуюсь я),
* заставить экзаменуемого самого найти противоречие в своей формулировке (вроде работает, только когда формулировка является чем-то типа теоремы, и, как метод, достаточно хардкорен, ибо требует от экзаменуемого сильно много знаний. слышал о его применении только от одного человека),
* перейти к следующему вопросу.
Очевидно, что речь идёт не о гуманитарных предметах (там почти всегда сказав почти любую глупость можно выпутаться сведя всё к игре понятиями).
Интересует, существуют ли ещё какие-нибудь адекватные методы общения экзаменатора и заблуждающегося экзаменуемого?
|, me, hikki, ok

Выходные и философия

Осознание, что уже послезавтра начинаются аж три дня выходных меня печалит.

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

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

А ещё несколько часов назад была очередная лекция по философии. В аудитории кроме меня, на этот раз, нашёлся ещё один забавный молодой человек.
Я обычно IRL придерживаюсь мнения, что надо задавать наводящие/каверзные вопросы и смотреть, что будет, а этот молодой человек весело и сочно холиворил с лектором.
Слепок сегодняшнего мнения по предмету: философия, как дисциплина, — говно, но лекции бывают весьма забавными.
|, me, hikki, ok

Фильтроспам

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

Вот смотрите, ведь часто вместо того, чтобы написать емейл открытым текстом типа «vasi@pupkina.tut.netu» пишут «vasi (at) pupkina (dot) tet (dot) netu» или что-то в этом роде, чтобы боты не осилили поиск на странице спрятанного адреса. В отчаянных случаях, чтобы получить емейл нужно решить какую-то загадку и из её ответов составить адрес типа: «возьмите первое слово в этом абзаце, припишите к нему собаку, а потом припишите имя домена, на котором находится эта страница».
Какое-то время назад ещё было популярно восстанавливать адреса из «зашифрованного» состояния при помощи джаваскрипта и прочие подобные извращения.
Ну и, наконец, можно класть емейл в картинку, и использовать её.

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

Я, в своё время, для борьбы со спамом от незнакомых адресов, своим студентам предлагал писать мне письма с темой определённого формата (что-то вроде «Студент группы 1234 ФИО лабораторная 1»). Письма с топиком, подходящим под нужные регулярные выражения складывались в специальные директории на сервере даже не доходя до спам-фильтра. Но студенты почти всегда тупили и добавляли в топик отсебятину, которая регулярными выражениями не съедалась. Дрессировать младшекурсников мне было лень и, в итоге, на эту систему я плюнул.

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

Заметим, что, например, у гмейла два емейла считаются эквивалентными, если они отличаются только вставками точек в юзернейм. То есть для гмейла «example@example.com» и «ex.am.p.le@example.com» эквивалентны. Разместим оба эти адреса на странице и будем человеческим языком просить писать письма, например, на первый из них. Теперь, если какое-то письмо приходит нам на второй адрес, то бросаем его в спам. Если такое же письмо (а может просто письмо с того же адреса) приходит на «настоящий» емейл, то тоже бросаем его в спам. То есть, руководствуемся принципом, что все письма, приходящие не на тот емейл, на который мы просили, приходят от ботов, а все письма от ботов надо выфильтровывать и из ящика «настоящего» емейла.
Вообще замечу, что основная проблема большинства спам-фильтров, которыми я пользовался/пользуюсь, заключается в том, что они «жадные». Если письмо сейчас ещё не было опознано как спам, не означает, что оно не станет спамом через пару минут/три часа.

Способ с различиями емейлов по количеству точкек, описанный выше слабоват. Но если у нас есть, например, свой хостинг (а лучше не один), то можно весело поразвлекаться.
Итак, заведём кучу различных емейлов, существенно отличающихся друг от друга по юзернеймам и доменам. Какие-то из них будут «настоящими» (письма приходящие только на такие адреса считаются письмами возможно не от спам-ботов), а какие-то «фальшивыми» (все письма приходящие сюда считаются спамом).
Фальшивые емейлы можно публиковать где попало и в любых количествах, но так, чтобы здравомыслящий человек не стал бы на них что-то писать. Настоящие емейлы следует как можно чаще публиковать среди фальшивых (но не обязательно размещать фальшивые на этой же странице, что и настоящие). Если настоящие размещать только среди фальшивых, то их можно вычислить посмотрев какие емейлы не встречаются в одиночку. Также, для большей параноидальности, следует стараться выдерживать примерно равномерное распределение фальшивых и настоящих адресов, чтобы настоящие нельзя было бы вычислить другими статистическими методами.
Теперь настоящий емейл от фальшивого сможет отличить только тот, кому это разрешено.
А далее, как и раньше, будем вычищать весь спам, приходящий на фальшивые емейлы из всех настоящих почтовых ящиков.

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