to post messages and comments.

Написал пиздилку/запихивалку стандартных vcard для n900. Теперь адресные книги задроида, linphone и n900 синхронизируются, ня // на самом деле нет, нужно ещё сделать умную мержилку, вместо которой сейчас мясной лях и референс-адресная книга на лаптопе.

Починил noping чтобы предсказуемо работал с ncurses-6, получился какой-то костыль уёбищный, вырезающий oping-подобную функциональность. Жаль больше вменяемых пингеров, запихуемых в небольшое окошко, нет. Сейчас получается что-то такое в дешборде: dump.bitcheese.net

diff --git a/src/oping.c b/src/oping.c
index 8f85234..283593b 100644
--- a/src/oping.c
+++ b/src/oping.c
@@ -1376,8 +1376,8 @@ static int pre_loop_hook (pingobj_t ping) / {{{ */
}

main_win_height = height — (box_height * host_num);
— main_win = newwin (/ height = / main_win_height,
— / width = / width,
+ main_win = newwin (/ height = / 0,
+ / width = / 0,
/ y = / 0, / x = / 0);
/ Allow scrolling /
scrollok (main_win, TRUE);
@@ -1533,7 +1533,7 @@ static void update_host_hook (pingobj_iter_t iter, / {{{ */
context = (ping_context_t *) ping_iterator_get_context (iter);

#if USE_NCURSES
-# define HOST_PRINTF(...) wprintw(main_win, __VA_ARGS__)
+void HOST_PRINTF(char *c, ...){if(c)return;}
#else
# define HOST_PRINTF(...) printf(__VA_ARGS__)
#endif

Просим qingy не лочить иксы, чтобы можно было установить свой скринлокер с красивой заставочкой, который бы правильно лочил дисплей после саспенда (да, я костылятор):
--- qingy/src/libraries/tty_guardian.c 2014-05-17 20:26:53.565035144 +0400
+++ qingy/src/libraries/tty_guardian.c 2014-05-17 20:27:41.562333125 +0400
@@ -387,7 +387,7 @@
int bark = 0;
int idle_time;

— if (!lock_sessions && (!idle_timeout || !timeout_action))
+ if ((!lock_sessions && (!idle_timeout || !timeout_action)) || is_x_session)
{
wait(NULL);
return;

Надоело мышевозить для производства карточек. Наговнякал скрипт:
‰ cat ~/bin/longmanki
#!/bin/sh
fn=/tmp/toanki
true > "$fn"
for w in "$@"; do
printf '%s,"' "$w" >> "$fn"
sdcv -u 'Longman Dictionary of Contemporary English' "$w" | tail -n +5 >> "$fn"
echo \" >> "$fn"
done
anki "$fn"

Можно ещё прикрутить автовпиливание картинок из гугла: nicloay.blogspot.ru

Написал прибивалку SIGSTOP'ом firefox при переключении на другой воркспейс. Довольно криво, но работает. Очень актуально.

--{{{ Fuck firefox
myLogHook = do
wsname <- gets (currentTag . windowset)
case wsname of
"web" -> fuckFirefox False
_ -> fuckFirefox True

fuckFirefox ye = liftIO $ do
(rc, out, _) <- readProcessWithExitCode' "pgrep" ["firefox"] []
mapM_ fuckIt $ lines $ out
where fuckIt s = signalProcess (if ye then sigSTOP else sigCONT) (CPid $ read s)

readProcessWithExitCode'
:: FilePath — ^ command to run
-> [String] — ^ any arguments
-> String — ^ standard input
-> IO (ExitCode,String,String) — ^ exitcode, stdout, stderr
readProcessWithExitCode' cmd args input = do
(Just inh, Just outh, Just errh, pid) <-
createProcess (proc cmd args){ std_in = CreatePipe,
std_out = CreatePipe,
std_err = CreatePipe }

outMVar <- newEmptyMVar

— fork off a thread to start consuming stdout
out <- hGetContents outh
forkIO $ C.evaluate (length out) >> putMVar outMVar ()

— fork off a thread to start consuming stderr
err <- hGetContents errh
forkIO $ C.evaluate (length err) >> putMVar outMVar ()

— now write and flush any input
when (not (null input)) $ do hPutStr inh input; hFlush inh
hClose inh — done with stdin

— wait on the output
takeMVar outMVar
takeMVar outMVar
hClose outh

— wait on the process
ex <- C.catch (waitForProcess pid >>= return) (\e -> seq (e :: C.SomeException) $ return $ ExitSuccess)

return (ex, out, err)
--}}}

Сук%"№, бл№"?!! Клепать эти сайтики это какое-то издевательство. Какая-то каша из PHP и HTML кода, непонятно дл чего созданные таблицы в БД и непонятно дл чего предназначенные поля в этих, бля, таблицах. Интересно, в каких-нибудь прикладных программистов дела обстоят иначе? Грёбан

Собеседователи быдлокодеров, а зачем вы просите поцыэнта показать вам код? Что мешает любому говнокодеру сгенерить килостроку приличного кода чиста чтобы пройти отбор?

Захотел штоб в графе подписей были видны уровни сертификации. Открыл sig2dot и поблевал от перлятины и непригодного к подобному рефакторингу подхода к рисованию. Быстренько перелабал на хаскеле: github.com
Результат работы на вчерашних данных: dump.bitcheese.net
Думаю, надо-ли подобный говнокод заливать на хекедж?

Наляпал убогую тулзу для DoS-атаки на кисервер, по совместительству — рекурсивный фетчер ключей по подписям. Для анализа закрытых коммьюнити типа жуйковской pgp-тусовочки и рисования красивых графов в графвизе и фаллометрии. Вот результат работы на условно-бесконечной глубине 20 относительно меня, по мнению кривой тулзы sig2dot (нет, я не знаю, почему sig2dot'у не понравились подписи у пачки няш; мне пришлось скормить ему -u foobar, чтобы увиделись подписи у mva и ко, но подписей, соединяющих два кластера, я не увидел даже с -r foobar; может, они подсосались каким-то иным путём, но так или иначе они имеют отношение к жуйкокоммьюнити): dump.bitcheese.net

#!/bin/sh
# Usage: $0 root-keyid depth
exec >/dev/null
ikf=/tmp/inaccessible-keys
ckf=/tmp/checked-keys
depth=$2
echo Current depth: $depth >&2
keys="`gpg --list-sigs "$1" | sed -ne 's#^sig..........\([^ ]\) .#\1#p' | sort | uniq`"
unk_keys="`for k in $keys; do
gpg --list-keys $k >/dev/null || echo $k
done | sort | uniq | sort — "$ikf" "$ikf" | uniq -u`"
echo $unk_keys
gpg --recv-keys $unk_keys | sed -ne 's#^gpgkeys: key \([^ ]*\) not found on keyserver#\1#p' | cat — "$ikf" >> "$ikf"-new
mv "$ikf"-new "$ikf"
[[ $depth -le 0 ]] || for k in $keys; do
grep -q $k "$ckf" || {
$0 $k $((depth — 1));
echo $k >> "$ckf";
}
done

Написал уберкостыль для автоматического просмотра рекламы. Теперь можно пользоваться точками доступа с ssid="Beeline_WiFi" бесплатно и без каких-либо телодвижений; разве что интернет каждые пятнадцать минут будет пропадать секунд на десять-пятнадцать, в зависимости от тормознутости конкретной точки, но tcp-соединения не отваливаются.

Как эрлангнуть свою способность к концентрации на не слишком интересных/довольно трудных-сложных задачах, а точнее, на их продумывании? Постоянно убегаю заниматься всякой хуитой от этого.

Скала соснула тунца. Делали тут небольшой проект по учёбе ­– сравнение производительности Java и Scala для задачи обработки графов (довольно больших). Я знал изначально, что всё будет плохо (потому что решил на Scala писать иммутабельные графы, использовать рекурсию во все поля и вообще не использовать мутабельные переменные), но результаты оказались вообще весёлыми: mediafire.com

хочу разработать файловый менеджер для венды, суть такова:
написано на си с вызовами WinAPI (компилятор TCC), малый размер, мгновенный запуск, охренительная скорость, объединён с удобной консолью (возможности cmd + свои команды).

интерфейс навигации по папкам самый примитивный, ч/б, самописный
консоль красивая, цветная

также хотелось бы написать свою оболочку для программиста (замену explorer.exe): фичи те же (скорость, малый размер) + настраиваемость ВСЕХ горячих клавиш, поддержка нескольких рабочих столов. неперекрывающийся оконный менеджер (по типу awesome, subtle, i3 и xmonad в linux)

всё, что есть, оно какое-то тормозное и перегруженное

Блджад, с утра на индикаторе Ubuntu App Showdown (http://developer.ubuntu.com/showdown/) отображался такой срок, что мне бы хватило времени примерно до полтвторого ночи. Сейчас, в полпервого ночи, я захожу туда – и что же я вижу? Усё, срок закончился внезапно!
А я так хотел их футболку, что даже засел писать маленькую казуальную игрушку, которую как раз вот закончил (и наверное даже успел бы за последний час упаковать в пакет для PPA).
Не видать мне футболки, видимо, но игру в Ubuntu Software Center всё равно залью.

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

Символ "$" — хороший пример того, как мода разрушает стандарты и внушает людям писать быдлокод.
Сейчас имею дело с кодом, в котором юзается 2 фреймворка, которые юзают символ $. Однако, есть причины использовать третий — jQuery. noConflict() спас меня. Хотя я минут 30 втыкал и не мог понять от чего это в чужом коде появляется ошибка после моих добавлений.
Стоит отметить, что в чужом коде нигде нет символа "$".
Какие могут быть версии того, как может ещё мешать jQuery без noConflict?