lighttpd + mod_proxy trick on OpenWRT

Ну что, кажется я таки вернулся. После краша рейд зеркала на сервере. По ходу 1Tb WD + 1Tb seagate решили навернуться вместе (практически) после около 19000 часов работы (согласно смарту). По счастью smartd обнаружил вовремя релокейты и рантайм бэд блоки вовремя, так что я успел вырубить все нахрен и заказать замену. Пользуясь случаем я решил переконфигурить разом все, так что в награду получил несколько дней даунтайма. Но я ж не гугл, какое мне дело. Ну а 5-летний конфиг апача2 занимающий более тыщи строк, успевший поработать и под FreeBSD и под Debian, и под Agilia выглядел уже слишком стремно.. Даже для меня некоторые его строчки уже стали тайной.
До кучи заменил роутер на связку OpenWRT+lighttpd чтобы тот делал всю грязную работу, и потому хочу описать небольшой заюзанный мною трюк.
По сути я хотел, чтобы luci был доступен по адресу вроде router.myhost.net, на поддомене а все запросы на hyhost.net и anythingelse.myhost.net проходили насквозь до (более) мощного сервака.
Чтобы такое запилить, нужен mod_proxy для лайти, и что-то типа нижеследующего в конфиге.

$HTTP["host"] != "wrt.myhost.net" {
 proxy.server = ( "" =>
   (( 
   "host" => "192.168.0.7", #web server ip in the lan
   "port" => 80
   ))
 )  
}

Добавляем андройдовскому хотспоту юзабельности

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

пруф-оф-концепт: OpenGL в емаксе

Скорее просто небольшой хак, порожденный моим воспаленным разумом. Работает только под X11, так что виндузятникам не грозит. Фактически трюк заключается в получении от емакса id окна, передачи его сишной программулине, которая создает ему подокно с OpenGL контекстом.

Обязательный скриншот ниже:


(далее…)

xEMACS: полезности

Vi конечно хорош, kate местами даже лучше, но ничто не сравниться с verilog-mode в емаксе. Потому-то я и решил окончательно пересесть на емакс.
Однако, емакс такое блюдо, которое перед применением надо доработать напильником. Вот, что сделал я.
Для начала, надо сделать синхронизацию инстансов на работе, дома… Да и вообще на всех компьютерах, где я работаю. Потому мои кастомные скрипты были сложены в ~/.emacs.d, которое стало гит репозиторием с origin’ом указывающим на мой аккаунт на гитхабе. Далее надо допилить ~/.emacs чтобы тот автоматически цеплял ~/.emacs.d/autoexec.el Я это сделал вот так:

(load-file "~/emacs.d/autoexec.el")

Остальное под катом.
(далее…)

Быстро генерим символы для еесхемы (Код внутри!)

Если доводилось юзать кикад, то должна быть знакома ситуация, когда символа нет. Оный можно быстро сгенерить вот этим веб-тулом Но что делать если у чипа овер 100 ног?

Раньше я использовал грязный хак на баше и xdotool’e, но вот пришла пора сделать что-то получше. пасибки летят автору xil2kc, которая генерит символы из Xilinx’овских .pkg файлов, которые выдавливает из себя ISE.К сожалению, они выбрали пистон, Один из моих наименее любимых языков. Так или иначе, переписывать с нуля мне было в лом, потому пришлось вспомнить питон.
(далее…)

Пакетная запись дисков, pktcddvd и бакапы.

Энное время назад у меня приказал жить один жесткий диск. С бакапами, которые я, как несложно догадаться с некоторых достаточно давних пор всегда делаю. Причем накрылся после двух лет работы в режиме “включилось раз в неделю мосфетом питание, сделался инкрементальный бакап, питание отключилось”. Причем судя по анализу трупика накрылся движочек, вращающий этот мелкий ноутбучный хард от врубаний/вырубаний. Даром что вестерн джигитал.
Это заставило меня почесать голову и всерьез подойти к проблеме бакапов. Можно считать меня редкостным параноиком, но хранить что-то у гугла/дропбокса в облаке – “не наш метод ™”. И вот тут-то я увидел на столе покрытую пылью, cdrw болванку, года 3 использующуюся как подставка под чашку.

(далее…)

Юзаем POST карту из юзерспейса

Предыстория
Нда, мой уютненький сервачок накрылся медным тазом. Тотально, как показалось. Рандомные сегфолты, пейджфолты и паники ядра на ровном месте, а под конец оно вообще не стартовало. ССХ отвалился, и перед окончательным фейлом я судорожно траблшутил это безобразия сидя в туалете (там стоит сервер) с УАРТом и POST-картой (Монитора по понятным причинам там нет). В конце пришлось вытащить железяку на стол. Прогон тестов и разбор полетов показал, что накрылась планка памяти. По счастью под рукой оказалась другая, и я ее быстренько воткнул. Но пока я это траблшутил, я пользовал POST-карту, которая и породила эту идею. Не знаю, извращался ли кто так до меня.
(далее…)

Scam-o-matic

Кажется, меня попытались надуть. Наверное, все уже слышали о “чудестных” карточках, у которых реальный размер здорово отличается от заявленного и сообщаемого карточкой.
Комплект из 5 microSD карт, по ‘якобы’ 4 GiB каждая недавно ко мне прихал, Реально там было около 115 MiB.
К счастью, денежки через диспут удалось вернуть, да и карточки остались у меня. Потому я стал думать, чем бы протестить эту хреновину.
Вообще, для теста разного рода скама есть две утилиты: h2testw and f3. Первая для винды, вторая для linux’a и прочих юниксов. Они как раз и находят реальный объем карты. Но у них есть пара недостатков. Можно бороду отрастить, пока они сканируют одну карту. А еще работают поверх файловой системы, что как по мне – так не совсем хорошо.
Потому, я решил изобрести свой костыль, с блэкджеком, который бы был побыстрее. Итак, ‘scam-o-matic’ в 200 строчках быдлокода на С.
(далее…)

Прошиваем Xilinx’овскую FPGAшку от ARM’a

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

В наличии имелась вот такая борда от стартеркита, в составе которой есть крайне годная ПЛИСина, которую я и решил юзануть.
(далее…)

Реверсинг протокола прошивки STC

Энное время назад я раздобыл оные микроконтроллеры. Дешево, сердито… Но вот засада в том, что их нечем прошивать в линуксе, а юзать Keil религия запрещает.
Можно для компиляции юзать sdcc, но вот прошивать надо их г***ом. И эти ребята долбануты настолько, что не хотят открывать протокол обмена.
Пора красноглазить…
(далее…)