Фотографии отовсюду

Наконец собрался и выложил тучу фотографий с последних поездок.

  1. Мунку-Сардык’2009. Прошу прощения за названия, но сил моих нет нормально такую пачку обозвать.
  2. Велопокатушка Монды-Жемчуг-Аршан-Култук.

, , , , , , ,

No Comments

Видео с ПикникOFFки

Обещанный видеоотчёт:

Get the Flash Player to see this player.

, ,

No Comments

ПикникOFFка

Формат гонки: не слишком напряжная 4-часовая джип-покатушка.

Возможные классы участия: стандарт, туризм, экстрим.

Место проведения: Иркутсткий район, Смоленщина.

Наше участие:

Экипаж: Антон Грудинин (пилот), я (штурман и видеооператор). Позывной “Вишенка”.

Класс: туризм (где веселуха уже началась, не ещё без трясины по шею).

Занятое место в итогах: почётное третье.

Подарили “сертификат соответствия” и ценный приз.

Read the rest of this entry »

, , ,

2 Comments

О гадании по фотографии

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

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

Я разбил присутствие человека на фотографии на три уровня:

  1. “Портрет”. На фотографии это единственный человек, хорошо видно его лицо, в полный рост человек занимал бы (или занимает) минимум 75% высоты фотографии.
  2. “Участник группы”. На фотографии изображено несколько человек, в полный рост занимает не менее 50% фотографии, лицо не обязательно должно быть видно (например, заснята деятельность группы, все спинами).
  3. “Дополнение пейзажа”. Один или несколько человек, можно без проблем узнать кто есть кто, но в целом фотография передаёт пейзаж, а не людей.

Любое прочее присутствие людей считаю несущественным (случайное попадание в кадр четверти фигуры, люди плохо различимы и т.д.). Просмотрел глазками около 50 фотографий одной серии, описывающих одно событие, одного фотографа. Для каждого заснятого участника посчитал количество присутствия по каждому из уровней. И на малую презентативность выборки, получились весьма любопытные данные.

  • Понятно, что по “портретам” можно судить по предвзятостях фотографа.
  • Люди, набравшие наибольшее количество баллов по “участник группы”, оказались одновременно и наиболее компанейскими, и наиболее старыми членами группы. Причём, баллы разделяются очень чётко. Думаю, почему так произошло объяснять не надо.
  • По третьему уровню результат получился несколько неожиданным: наибольшее количество баллов набрала яркая или нестандартная одежда :-)

Есть мысли, куда двигаться дальше. Хочу каждую фотографию описать следующим образом:

фотография = люди (имя, уровень присутствия), количество людей, фотограф

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

Собственно, главный вопрос поста: никто не в курсе, проводились ли какие-нибудь исследования тему гадания по фотографии?

, , , ,

2 Comments

Организация бэкапов с помощью LVM

Вдруг осознал, что я тут двигаю всякие классные технологии, а сам пребываю в каменном веке. Перенёс /home в LVM. Сразу захотелось использовать моментальные инкрементальные бэкапы LVM. Как это сделать в сети написано (точнее, раскопировано и переведено) уже не один десяток раз. Но я пока не встретил ни одной статьи, где простые примеры создания снимка эволюционировали до полноценного скрипта. Восполню этот пробел quick programming’ом.

Read the rest of this entry »

, , , , ,

No Comments

Решение для решателя Sudoku

Хотел вечерком размять мозг — набросать какой-нибудь особенно красивый решатель 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 байт.

Read the rest of this entry »

, , , ,

No Comments

Освоили скальник Зеркала

Небольшой видеоотчёт о велопрогулке на скальник Зеркала.

Read the rest of this entry »

,

3 Comments

На дирижабле за утопающими

В Москве беда: люди тонут в водоёмах, где официально запрещено купаться. Разрешённых для купания водоёмов в Москве всего 7, но люди купаются в десятках. И тонут. Господин Лужков не мог оставить без своего мэрского (прошу прочитать это слово правильно, без мерзкого акцента!) внимания такую больную тему. И запустил дирижабли. Точнее, ещё не запустил, но уже вот-вот, ещё чуть-чуть — и небеса столицы будут бороздить воздушные гиганты.

Read the rest of this entry »

No Comments

Микроязык OpQL

Сделал микроязык запросов для oProxy. Служит, собственно, для управления ею. Что умеет:

  1. Показать всякую текущую статистику (устаревшее show_workers, show_nodes и т.д.)
  2. Управлять списками наблюдения.

Read the rest of this entry »

, , , ,

No Comments

ocaml-epoll

Написал биндинг для работы с epoll(7). Пока бета, но на ней уже ради эксперимента написал успешно работающий маленький веб-сервер :) Скачать можно со страницы Software. epoll является аналогом select() и poll(), но с увеличением количества обрабатываемых сокетов сложность остаётся O(1), что позволяет без особых задержек обрабатывать тысячи параллельных соединений.

, ,

2 Comments