четверг, 25 июня 2009 г.

И последнее на сегодня - о крутом

Если бы я был крутым типа Гугла или Яндекса - одно из извращений "принимать на работу", которое бы я сделал (а ведь они, наверное, могут себе позволить мучать кандидатов хотя бы часик) - дать кандидату машину с установленным UNIX и emacs и попросить поиграть в игру dunnet. Даннет - это такой квест, где ты пишешь действия а робот тебе и отвечает. Если человек совсем не знаком с юниксами и устройством емакса - можно, конечно, рассказать ему, мол: "почти все в емаксе (в том числе dunnet) написано на лиспе и лежит себе спокойно скриптом", но так менее интересно.

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

Такое.

Статья на хабре про обработку картинок

Увидел вот статейку интересную с названием "Фильтрация изображений методом свертки". Дай, думаю, пока есть чуток времени - напишу на питоне из исходных условий (заранее скажу что то ли автор слукавил, то ли еще чего, но картинки у меня чуть иными получаются, чуть режче)).

Сразу столкнулся с некоторыми проблемами и "нехваткой условий", что ли, продублирую свой комментарий к этому посту на хабре:

Конечно да. Решил таки написать на питончике этот скрипт просто по описанному вами алгоритму — не получилось до конца, пришлось таки текст программы читать. Чего именно не хватало:

1. Что делать на границе? Первый же пиксель (0, 0) и я в ступоре. Оказалось что пиксели изображения недостающие надо пропускать (это еще очевидно), но неочевидным оказалось то, что сумму сетки тоже надо брать только ту, что на пиксели наложена (тоесть не учитывать некоторое на границе как и в случае с изображением).
2. Деление на ноль (а как по коду оказалось — если меньше нуля то тоже надо единицу ставить)
if (kSum <= 0) kSum = 1;

А в целом — спасибо огромное, куча позитива и все такое). Вот, собственно, программка: dpaste.com/hold/59566/ (привентил прогресс-бар на всякий случай, брать его здесь code.google.com/p/python-progressbar/)


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

Емакс и буфер обмена

Так уж сложилось, что долго я мучался с копированием текста из емакса и вставкой того обратно, а решения тогда как-то не нашел. Приходилось пользоваться емаксом из терминала (gnome-terminal или tilda, к примеру), а затем копировать текст при помощи Ctrl+Shift+C. Не очень удобно на больших кусках текста, скажу я вам. Так вот, оказывается ооочень просто сделать так, чтоб емакс использовал буфер обмена операционной системы и при нажатии M-w на выделенном тексте он скопируется из емакса куда надо. Так я вернулся к графическому емаксу (который как-бы гуевый и умеет картинки показывать)). Вот что нужно написать в .emacs:
;;;; делаем чтоб можно было копировать из емакса во вне
(setq x-select-enable-clipboard t)