Вероятно стигахте до тук през С раница без граница и очаквахте да намерите гробище със стари постове. Изненада 🙂 Void and Null ще продължава да живее, докато е жива и моята простотия. Вероятно ще се ъпдейтва далече по-рядко от травъл блога и няма да си има лъскава Facebook страница с притурки. Няма да има и прилежащ спам, и за това тези секции тук ще останат само за ценителите 🙂
Беше добра година
January 3rd, 2015Голяма година беше, наситена с приятни емоции и покорени върхове във всяка област на живота. Толкова много вълнения имаше, че чак ме е срам да направя списък. Един списък предполага че мога да ги степенувам по по-по-най, а действителността е че всичките спомени и постижения са ми скъпи.
Все пак самохвалството трябва да почне от някъде, та ето – пробягах 2 километра! Преди години в средното училище покривахме нормативи по физическо и бягането на 600 метра го завършвах пълзейки и повръщайки. А ето, тази година си поставих за цел да излизам поне 2 пъти седмично и малко по малко всеки днешен абсолютен лимит се превръщаше в утрешния норматив.
Започнах да си готвя супички. До скоро за мен кухнята беше *тера инкогнита*, а вече кълцам зеленчуци и слагам тенджерата на котлона. Не се получава нещо кой знае какво, но удовлетворението от това да хвърлиш малко труд в храната си е голямо.
Позавъртях се покрай климатика в квартирата и му направих онлайн дистанционно с жив видео поток и дистанционно за андроид с Bluetooth. Видео с демонстрация и глупости – тук.
През цялата година направихме няколко пътувания с приятели, всяко от които лесно може да се опише с “беше уникално – закриваме годината!” 🙂
Оженихме половината фирма – Диди и Митко, Гери и Павел. След това Невена я напънаха пророчески сънища и за моята сватба, но за целта първо трябва да се появят кандидатки 🙂
Юни месец с Димо направихме 5-дневна екскурзия до Рим. За първи път летях и останах очарован. Много впечатления ми останаха и сега като гледам дори съм изписал 6 поста в блога 🙂
Най-после си взех нормална раница. Онзи ден скъсах и първите си нормални обувки, но съм им навъртял над 200 км, така че – доволен съм. Взех си също и още доста благи неща, но няма да правя инвентарен списък сега 🙂
Август и септември се направиха доста къмпинги, къде с нощни разходки, къде с други интересни благини. Дръпнахме една разходка до Мальовица и една покъртителна 30-километрова обиколка на Балкана.
След това се бях приготвил да закривам годината, но съвсем скоро се откриха планове за разходка около Широка Поляна. Имаше фото-оргазми, а разходката с уазка до Орлово Око си беше приключение!
Последните седмици от годината бяха мъгливи и дъждовни и това ми развали плановете за наблюдение на големите метеорни потоци есента. За сметка на това Геминидите ме изненадаха с идеални условия за наблюдение и снимки и резултатите надминаха очакванията ми.
Измежду 10-те хиляди изщракани кадъра ми е трудно да избера десетина снимки които са били голяма емоция за мен, но да пробвам.
Това не са катакомбите в Рим или някой музей на Холокоста. Това е част от българската история и близко минало. Никой не трябва да забравя клането в Батак.
Трявна и къщите-музеи
Балканът смръщва вежди над Аневското кале
Тук имаше няколко дни надхитряне с дъжда и игра на гоненица, която завърши с красиви гледки към Пловдив
Толкова търсех макове, а те всичките се били скрили до Червената църква в Перущица
Тази година доста пъти ходихме до Сливодолското падало, всеки път имаше нови емоции.
Памучни облачета над язовир Пясъчник
Селфи на Колизеума, където ни чука гръмотевична буря със светкавици, сипещи се на броени метри от нас
Още селфита на Копринка, докато гръмотевиците се изсипват зад гърба ни
Част от двудневния пешеходен мазохизъм в Балкана
Първия допир с Рила, който ме очарова с много неща: циркусните долини, лазенето по морените, напомпаните от налягането кроасани 🙂
Безценното чувство да се събудиш с тази гледка! Язовир Широка Поляна.
Първия сняг за сезона се случи отново до Мальовица, където го комбинирахме с отровно-горещи минерални извори 🙂
Леко инцидентна разходка над язовир Въча ме хвана с перфектното време на Бековите скали.
Една лятна буря напълни с електричество Стара Загора
Записване на онлайн радио
April 3rd, 2014От известно време слушам Eurodance канала на Digitally Imported. Отвреме навреме пускат уникални миксове, които не могат да бъдат намерени никъде из нета. За това се захванах и написах едно кратко скриптче за да ги рипна.
Радиото излъчва ICY таг, който съдържа името на песента. По този таг може да се разделят песните в общия стрийм, като единствения кусур е че идва с няколко секунди закъснение или предварение.
Използвах -dumpstream опцията на mplayer за записване на потока. Паралелно с това върви още един mplayer процес, който наблюдава за пристигането на ICY таг и пуска ново записване в нов файл. Скрипта създава нова директория за всеки ден, като песните които запазва са с префикс на времето в което са излъчени.
-
#!/bin/bash
-
-
# задаваме някой директории и файлове
-
FIFO=/tmp/mplayer_recording
-
OUT_DIR=/home/ivanatora/di.fm
-
-
LAST_PID=0
-
LAST_SONG=""
-
-
if [ ! -e "$FIFO" ]
-
then
-
mkfifo $FIFO
-
fi
-
-
# това е процесът, който следи таговете с имената на песните и ги изпраща в едно FIFO
-
nohup mplayer -ao null http://pub3.di.fm:80/di_eurodance | stdbuf -o L grep ICY > /tmp/mplayer_recording &
-
-
# тук четем от FIFO-то и пускаме нов записващ процес при получаване на ICY таг
-
-
while read LINE < $FIFO; do
-
DATE=`date +%F`
-
if [ ! -d "$OUT_DIR/$DATE" ]
-
then
-
mkdir "$OUT_DIR/$DATE"
-
fi
-
-
echo "—–"
-
echo $LINE
-
# името на песента е заградена в единични кавички
-
# @TODO: понякога в самото име има единични кавички – да се обмисли този случай
-
SONG=`echo $LINE | cut -d\‘ -f2 | sed -e ‘s/ /_/g‘`
-
echo "Last: $LAST_SONG"
-
echo "Current: $SONG"
-
# тук имам един бъг някъде – получавам таговете по два пъти. Това е workaround, който дава да се продължи само ако тагът който идва е различен от предния.
-
if [ "$SONG" != "$LAST_SONG" ]
-
then
-
TIME=`date +%T`
-
echo "##### $TIME"
-
-
# ако вече имаме записващ процес – време е да го спрем и да пуснем нов
-
-
if [ $LAST_PID -ne 0 ]
-
then
-
kill $LAST_PID
-
fi
-
-
nohup mplayer http://pub3.di.fm:80/di_eurodance -dumpstream -dumpfile "$OUT_DIR/$DATE/$TIME"_"$SONG".mp3 &
-
LAST_PID=$!
-
LAST_SONG="$SONG"
-
fi
-
done
-
Тук имам следние проблеми:
1) Таговете ми идват по два пъти.
2) Закъснението на таговете, което не е константа, която може да бъде уловена и компенсирана. На практика няколко секунди от началото на песента се записват в предния файл.
3) Предполагам че може да бъде оптимизирано и направено само с 1 mplayer процес.
4) Ако ми умре нета за секунда, mplayer-ите се прекратяват, което минава през фифото и цикъла `while read` заминава.
Някой bash-майстор може да се произнесе с идеи 🙂
Alpine mass delete messages
March 7th, 2014You have new mail.
Почти не използвам локалната пощенска кутия. Всъщност единственото за което я ползвам е да следя за грешки по кроновете които работят на системата. Принципно целия STDOUT+STDERR бива изпращан по мейл на текущия потребител. STDOUT не ми трябва, понеже често си оставям някакви дебъгващи принтове тук-таме по скриптовете. За това си описвам задачите с >/dev/null. По този начин STDOUT се филтрира, и остава само STDERR. Ако искам да махна абсолютно целия изход от изпълнението правя >/dev/null 2>&1.
Ако нещо по кроновете видимо не работи, отварям пощата и чета. Обикновено я преглеждам през няколко седмици за да изтрия старите логове от крона. За това използвам alpine, понеже не ми се занимава с никакви тежки и сериозни GUI изпълнения като Thunderbird. Удобно е да се логна в ssh от където и да е и да изтараша пощенската кутия.
Днес alpine се стартира малко по-бавно и какво да гледам в пощенската кутия – 12 136 писма. Оказа се че съм написал доста тъпо един от кроновете:
*/5 * * * * cd /home/ivanatora/rilski_ezera; wget "http://www.rilskiezera.bg/meteo/rilskiezerahut.jpg" -O img_`date +\%Y-\%m-\%d_\%R`.jpg >/dev/null
Това сваля снимка от х. Рилски Езера на всеки 5 минути и по-късно си правя таймлапс със свалените изображения. Въпросът е защо така злобно ми е нафлудил пощата, при условие че STDOUT е филтриран?
Защото съм забравил че `wget` не принти съобщенията си в STDOUT, а вместо това в STDERR (факт)…
Както и да е – оправих крона, но сега проблема беше как да изчистя пощенската кутия с alpine. Обикновено трия пощата по следния начин – отивам върху първото писмо и задържам D. Това го маркира за изтриване (което ще се случи след затваряне на клиента) и преминава към следващото. Това минава през съобщенията едно след друго и нормално за няколко секунди изчиствам цялата кутия. Само че в случая с 12 хиляди писма това би ми отнело към 20 минути набиране върху D-то.
Поблъсках се малко и намерих процедурата за изтриване на всички съобщения:
1. В INBOX се натиска `;` за Select messages
2. Натиска се A за Select all.
3. Натиска се A за Apply command
4. Натиска се D за Delete
След това се излиза нормално от клиента с ^X и писмата се изтриват.
Джобна печка
January 16th, 2014Взех си джобна печка. Гори бензин за запалки, развива доста голяма температура, но няма открит пламък и не е по-огнеопасна от GSM-а ви, примерно.
Реакцията на повечето ми приятели като им я показвам обикновено е “WTF е това”, а когато им я дам да се потоплят и изцъклят очите 🙂 И аз не знаех че съществуват такива неща, докато не прочетох в някакъв форум обява за продаване. Оказва се че тези грейки са доста популярни сред ловци и туристи и въобще хора, които прекарват време навън по студовете. По-възрастните, които са били войници преди години я познават под името “каталитична грейка” и е била стандартен артикул по руско време. Топлината не е достатъчно за да те стопли целия, но определено е две идеи повече от това да ти тракат зъбите. Печката има и други приложения. Слагаш си я на врата преди лягане и по тялото ти се разлива една приятна топлина като от горещ душ. Сецнах си кръста и топлината от печката на болното място беше голямо облекчение докато се оправи.
Само един бъг съм забелязал до сега. По документация (и по думите на десетки хора, които ползват такива неща), с едно зареждане трябва да гори поне 24 часа. Моята не караше и 3 часа. Вариантите бяха три – кофти печка (има имитации, които не са много успешни), повредена каталитична дюза или кофти бензин. Първия вариант го отписах, понеже си взех точно от този модел, който се препоръчваше по всички места. Втория вариант също бих го отписал – вярно че дюзата трябва да се гледа внимателно, но моята си беше практически нова и съм я ползвал само по инструкции. Взех си друг бензин, малко по скъп, за да тествам и третия вариант. И о, чудо – температурата се вдигна с много и времетраенето на горенето се увеличи над 12 часа. Не можах да повярвам че печицата е способна на такива неща и рекох да направя малко по-обективно сравнение между двете горива. Сложих ги при еднакви условия, свалих температурната крива във времето и статистиката потвърди това което усетих.
Тествах три вида гориво:
* бензин ZIPPO купуван от магазин “Всичко за левче” – цена 2 лв
* бензин ZIPPO купуван от магазин за цигари “Premium” от старозагорския мол – цена 6 лв
* бензин STAR купуван от магазин “Метал мания” в старозагорския универмаг – цена 4 лв
Всяко измерване извърших по един и същ начин – грейката се напълва с един дозатор (до второто деление), запалва се и се оставя легнала на масата. За нея се прикрепя температурния сензор, пъха се във фабричното калъфче и повече не се пипа. Температурния сензор е DS18B20 – цифров, фабрично калибриран, с грешка от 0.5 C. Чете го Arduino Uno, свързано към компютъра, който записва показанията на всеки 15 секунди. Температурата на околната среда е 23 C. Замерванията са от момента на запалване на грейката, до момента в който температурата и се връща обратно до 23 С след изгасването ѝ.
Суров Excel с резултатите: readings_benzini_v2
На графиката се набива че синята линия почва малко по-горе от червената. Това се получи така, понеже изпуснах първите няколко измервания от евтиния бензин. Иначе и трите опита се извършиха при еднаква стайна температура.
* Евтиния гори малко, с ниска температура, достига пика рязко. Имам чувството че съотношението пари-въздух не му е както трябва. Вижда се че накрая когато парите намаляват температурата рязко се покачва.
* Скъпия определено гори най-много време, най-стабилно и с по-висока температура. Плавно достига максимума.
* STAR бензина гори с най-висока температура – рекордьор е със 70 градуса. Изгасва около 2 часа преди скъпия и като че ли не гори толкова равномерно.