Организация бэкапов с помощью 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), что позволяет без особых задержек обрабатывать тысячи параллельных соединений.
oProxy release
Posted by John Lepikhin in oProxy, программирование on May 20th, 2009
Не прошло и полгода, как я решил разродиться на релиз прокси. Назовём его “1.1″.
Экскурсия на скальник “Крепость”
Posted by John Lepikhin in Туризм и спорт on April 22nd, 2009
Душевно съездили на “Крепость” на Олхинском плато, завели новых знакомых.
Фотографии: http://photos.john.5070.info/main.php?g2_itemId=1452
В слово из 45 букв вкрались орфографические ошибки
Posted by John Lepikhin in Uncategorized on April 22nd, 2009
Не могу не поделиться новостью:
Торговая палата города Вебстер, штат Массачусетс, обнаружила, что в написании самого длинного географического названия США, состоящего из 45 букв, допущены две ошибки – на 20 и 38 позициях. Речь идет о полном наименовании озера, известного в обиходе как Вебстер: транслитерация его индейского названия записывается Chargoggagoggmanchauggagoggchaubunagungamaugg. О курьезе пишет британская газета The Telegraph.
Оказывается, 20-й буквой в этом слове должна быть “u”, а не “o”, а 38-й – “n”, а не “h”. Название, данное озеру в XIX веке, переводится с языка индейцев нипмук примерно как “Хотя англичане на границе рыбного места в Манчауге”. Популярный миф гласит, что на самом деле название озера означает вот что: “Ты рыбачишь на своей стороне, я – на своей, и никто не ловит посередине”.
45-буквенное название озера Вебстер является шестым по длине географическим названием в мире. Ни в одном другом слове не встречаются 17 букв “g”, а в английском языке нет другого слова, в котором было бы 10 букв “a”.
Мартовские скалоразвлекухи
Posted by John Lepikhin in Туризм и спорт on April 3rd, 2009
Вытащил бойцов потренироваться на скальниках Олхинского плато. Скальники и изба любезно предоставлены Харальдом. Фотографии: http://photos.john.5070.info/main.php?g2_itemId=1244