Фотографии отовсюду
Posted by John Lepikhin in Туризм и спорт on June 25th, 2009
Наконец собрался и выложил тучу фотографий с последних поездок.
- Мунку-Сардык’2009. Прошу прощения за названия, но сил моих нет нормально такую пачку обозвать.
- Велопокатушка Монды-Жемчуг-Аршан-Култук.
Видео с ПикникOFFки
Posted by John Lepikhin in Туризм и спорт on June 25th, 2009
Обещанный видеоотчёт:
Get the Flash Player to see this player.
ПикникOFFка
Posted by John Lepikhin in Туризм и спорт on June 20th, 2009
Формат гонки: не слишком напряжная 4-часовая джип-покатушка.
Возможные классы участия: стандарт, туризм, экстрим.
Место проведения: Иркутсткий район, Смоленщина.
Наше участие:
Экипаж: Антон Грудинин (пилот), я (штурман и видеооператор). Позывной “Вишенка”.
Класс: туризм (где веселуха уже началась, не ещё без трясины по шею).
Занятое место в итогах: почётное третье.
Подарили “сертификат соответствия” и ценный приз.
О гадании по фотографии
Posted by John Lepikhin in Uncategorized on June 19th, 2009
Кто-то предпочитает кофейную гущу, но я предпочитаю более технологичные методы. Немного размышлений об использовании статистической информации с фотографий в социальном анализе.
Не знаю как другие, но я, делая свои фотографии, совершенно не задумываюсь о социальных аспектах. Т.е. делая фотографию, подавляющее число людей никаких коррекций своих подсознательных предвзятостей не производят. И тут появляется интересная, но в общем-то очевидная картина: на фотографиях мы видим тех людей, которых хочет видеть фотограф. Видим его предвзятости в голом виде.
Я разбил присутствие человека на фотографии на три уровня:
- “Портрет”. На фотографии это единственный человек, хорошо видно его лицо, в полный рост человек занимал бы (или занимает) минимум 75% высоты фотографии.
- “Участник группы”. На фотографии изображено несколько человек, в полный рост занимает не менее 50% фотографии, лицо не обязательно должно быть видно (например, заснята деятельность группы, все спинами).
- “Дополнение пейзажа”. Один или несколько человек, можно без проблем узнать кто есть кто, но в целом фотография передаёт пейзаж, а не людей.
Любое прочее присутствие людей считаю несущественным (случайное попадание в кадр четверти фигуры, люди плохо различимы и т.д.). Просмотрел глазками около 50 фотографий одной серии, описывающих одно событие, одного фотографа. Для каждого заснятого участника посчитал количество присутствия по каждому из уровней. И на малую презентативность выборки, получились весьма любопытные данные.
- Понятно, что по “портретам” можно судить по предвзятостях фотографа.
- Люди, набравшие наибольшее количество баллов по “участник группы”, оказались одновременно и наиболее компанейскими, и наиболее старыми членами группы. Причём, баллы разделяются очень чётко. Думаю, почему так произошло объяснять не надо.
- По третьему уровню результат получился несколько неожиданным: наибольшее количество баллов набрала яркая или нестандартная одежда :-)
Есть мысли, куда двигаться дальше. Хочу каждую фотографию описать следующим образом:
фотография = люди (имя, уровень присутствия), количество людей, фотограф
Это позволит составить статистику по группам, присутствию групп и более подробно будет описаны предпочтения фотографа. Думаю, должно получиться ещё более любопытно. Только надо более серьёзное количество фотографий забивать. А это уже по-хорошему надо какой-нибудь интерфейсик разработать…
Собственно, главный вопрос поста: никто не в курсе, проводились ли какие-нибудь исследования тему гадания по фотографии?
Организация бэкапов с помощью LVM
Posted by John Lepikhin in программирование on June 19th, 2009
Вдруг осознал, что я тут двигаю всякие классные технологии, а сам пребываю в каменном веке. Перенёс /home в LVM. Сразу захотелось использовать моментальные инкрементальные бэкапы LVM. Как это сделать в сети написано (точнее, раскопировано и переведено) уже не один десяток раз. Но я пока не встретил ни одной статьи, где простые примеры создания снимка эволюционировали до полноценного скрипта. Восполню этот пробел quick programming’ом.
Решение для решателя Sudoku
Posted by John Lepikhin in Blogroll, Ocaml, Performance, программирование on June 10th, 2009
Хотел вечерком размять мозг — набросать какой-нибудь особенно красивый решатель Sudoku на Ocaml. Но возникла мысль изучить вражеские аналоги. Итак, решатель Sudoku размером 800 с небольшим байт:
include Set.Make(struct type t = (int * int) * int let compare = compare end) let (@) g f x = g (f x) and id x = x and sw f x y = f y x and zip x y = (x, y) let fold9 f = let rec loop i = if i>8 then id else loop (i+1) @ f i in loop 0 let fold81 f = fold9 (fold9 @ (@) f @ zip) let mark ((i,j),x as e) : t -> t = add e @ fold9 (fun k -> remove ((i/3*3 + k/3, j/3*3 + k mod 3), x) @ remove ((i,j),k) @ remove ((i,k),x) @ remove ((k,j),x)) let search = let g p f s = fold (f @ sw mark s) (filter ((=) p @ fst) s) in fold81 g let read () = let f p = Scanf.scanf "%d " (fun x -> if x>0 then mark (p,x-1) else id) in fold81 f (fold81 (fold9 @ ((@) add @ zip)) empty) let print s () = let pr ((i,j),x) = Printf.printf "%d%c" (x+1) (if j=8 then '\n' else ' ') in iter pr s; print_newline ();; search print (read ()) ()
Вы посмотрите эту красоту, это же [почти] совершенство! А если учесть, что 272 байта — это чтение задачи с STDIN и вывод результата, размер кода сокращается до менее чем 600 байт.
Освоили скальник Зеркала
Posted by John Lepikhin in Туризм и спорт on June 4th, 2009
Небольшой видеоотчёт о велопрогулке на скальник Зеркала.
На дирижабле за утопающими
Posted by John Lepikhin in жизнь в России, политика on June 3rd, 2009
В Москве беда: люди тонут в водоёмах, где официально запрещено купаться. Разрешённых для купания водоёмов в Москве всего 7, но люди купаются в десятках. И тонут. Господин Лужков не мог оставить без своего мэрского (прошу прочитать это слово правильно, без мерзкого акцента!) внимания такую больную тему. И запустил дирижабли. Точнее, ещё не запустил, но уже вот-вот, ещё чуть-чуть — и небеса столицы будут бороздить воздушные гиганты.
Микроязык OpQL
Posted by John Lepikhin in Ocaml, программирование on June 3rd, 2009
Сделал микроязык запросов для oProxy. Служит, собственно, для управления ею. Что умеет:
- Показать всякую текущую статистику (устаревшее show_workers, show_nodes и т.д.)
- Управлять списками наблюдения.
ocaml-epoll
Posted by John Lepikhin in Ocaml, Performance, программирование on May 29th, 2009
Написал биндинг для работы с epoll(7). Пока бета, но на ней уже ради эксперимента написал успешно работающий маленький веб-сервер :) Скачать можно со страницы Software. epoll является аналогом select() и poll(), но с увеличением количества обрабатываемых сокетов сложность остаётся O(1), что позволяет без особых задержек обрабатывать тысячи параллельных соединений.