Повечето съвременни мишки имат два допълнителни бутона на колелцето на скрола, които се активират респективно при натискане колелото наляво и надясно. Не се виждат и в повечето случаи дори не знаете че са там, освен ако не си четете упътването на мишката
Много лесно можем да вкараме тези екстри в употреба. xev ги разпознава като Mouse6 и Mouse7, така че веднага можем да ги сложим в .fluxbox/keys:
scp е много удобен инструмент за прехвърляне на файлове между различни машини. Може да работи както за ъплоуд, така за даунлоуд, та даже и директно да мести от втора на трета машина. Използва демона на SSH и не се налага да стартирам допълнителни услуги.
Взима рекурсивно папката 2011_05_18_plovdiv/ от домашното ми PC и я копира на текущата машина (лаптопа). Освен това -P опцията ще рече че SSH слуша на порт, различен от дефаултния. Ако искам да направя трансфер в обратната посока само трябва да разменя source и destination.
Та така днес рекох да си олекотя малко харда на лаптопа и да прехвърля всички файлове на таймлапсовете от предните постове на домашното PC. Това са доста файлове - 20 хиляди е добро предположение. Общия размер е към 2-3GB, което не е много и в случая това което натоварва са операциите за отваряне и затваряне на файлове. А да - и имах неблагоразумието да пусна всичко това да върви през един wifi рутер, който забива като се погледне накриво. Всичко си вървя към един-два часа, когато трансфера спря и scp умря с "Connection closed: broken pipe".
Опцията беше да го пусна на ново, да чакам час-два и пак да забие. scp няма resume. Освен това не копира файловете в някакъв ред, а хаотично. Не мога да видя до къде е стигнало (коя папка от петте, кой пореден файл) и да продължа ръчно от там.
Тук на помощ идва rsync. Какво е и как се ползва - който иска да чете man-страницата.
Това което ми свърши работа - довърши копирането без да презаписва вече качените файлове:
Сценарият е следния: Ubuntu машина, стандартен потребител (ivanatora), който има нужда да свърши няколко неща изискващи root достъп. Вместо потребителя да пише sudo преди всяка команда, той си съкращава писането с:
$ sudo -i
[sudo] password for ivanatora:
#
И минава в интерактивен root-ски логин. От този логин той излиза с `exit` или CTRL+D. До тук всичко е ясно.
Проблем: root логинът се захвърля на някоя конзола измежду всички останали и се забравя там. На повечето системи, които съм виждал този логин би останал отворен вечно, докато не се затвори ръчно.
Решение: следното се добавя в /root/.profile
if [ $SUDO_USER ]; then
export TMOUT=1200
fi
Обяснение: Опцията "-i" симулира първоначален логин, като се изпълняват и съответните файлове ~/.profile, ~/.bash_profile и т.н. на новия акаунт. TMOUT е променлива на средата, която казва колко секунди след последния вход ще се прекрати процеса. Ако се сложи TMOUT=0 автоматичното прекратяване ще се забрани. SUDO_USER е променлива на средата показваща кой е потребителят изпълнил sudo. На някои системи тази променлива не съществува и там трябва да се ползва "who am i" (с интервалите).
Взех си евтина китайска батерия от eBay, която държи 3 пъти повече от оригиналната. Естествено електрониката въобще не се разбира с лаптопа и единствената информация, която може да бъде извлечена е процента на заряд. Брой презареждания, температури, напрежение на елементите, тоци - абсурд. Такъв абсурд, че даже и светодиодът за батерия не работи - има само едно - зелено състояние. По принцип с оригиналната батерия като падне под 30% зеленото се сменя с оранжево, а като падне под 20% оранжеовото почва да мига. Ама те и процентите на новата са едни проценти... на 20% гасне лаптопа.
Липсата на някаква осезаема индикация за батерията ми бърка в здравето. За това си написах едно просто скриптче, което взима процента на батерията и при ниски или критични нива примигва осветителния светодиод и издава звук. Скриптът е Thinkpad специфичен и няма да работи на други машини.
Става много бързо и лесно.
Използван хардуер:
- Canon SX120IS (става всеки CHDK-съвместим фотоапарат)
Използван софтуер:
- CHDK
- intervalometer script - без значение точно кой
- enfuse - за сливане на различните експозиции и получаване на HDR
- PHP - долу ще намерите бърз скрипт за сливане на много на брой кадри
- mencoder - за сливане на HDR-ите във финално клипче
Какво е timelapse?
Това е кинематографска техника при която честотата на заснемане на кадрите е по-малка от честотата на възпроизвеждането им. Примерно ако една сцена се снима всяка секунда и после клипа се пусне на 30 fps резултатът ще бъде увеличаване на скоростта 30 пъти.
Какво е HDR?
Ако се абстрахираме от математиката и засуканите термини, можем разговорно да кажем че това е техника за получаване на равномерно осветен кадър (с изчистени преекспонирани и недоекспонирани области). Технологията стандартно използва три кадъра с различна експозиция (-2, 0, +2), които слива в един - изчистен.
Какво става като комбинираме HDR с timelapse?
Красиви клипчета
Как се прави HDR timelapse с CHDK?
CHDK не прави HDR - това се прави после от софтуера, който слива трите снимки на сцената. CHDK прави "bracketing" - автоматичното заснемане на трите кадъра с различна експозиция. Следвайте следните стъпки:
1. В менюто на CHDK изберете "Extra Photo Operations" -> "Bracketing in Continuous Mode". Там изберете "Tv bracketing" = 2EV, "Av bracketing" = OFF, "Bracketing type" = "+/-"
2. В менюто на фотоапарата изберете режим "Continuous Mode".
3. В менюто за самоснимачка изберете "Custom mode" със следните параметри: "Delay" = 0s, "Shots" = 3
От тук нататък пуснете кой да е intervalometer скрипт с параметри по избор. Какво ще се случи когато скриптът даде команда за снимане? Ще се задейства самоснимачката, която ще направи 3 последователни снимки с различна експозиция.
В края на сесията след няколко минути/часа ще имате X броя сцени с Х*3 броя изображения. Прехвърляте ги на компютъра и със следния скрипт получавате HDR-ите:
От тук нататък имате всяка сцена на HDR с име от типа hdr_shot_001.jpg. От тези трябва да се получи клипче.
Това става с mencoder:
mencoder mf://*.jpg -mf w=640:h=480:fps=15:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
Тук 640 и 480 са размерите на снимките ви. Може да си поиграете с параметъра fps за да получите по-бързи или по-бавни клипчета.
Настоящата статия не претендира за изчерпаемост на темата, нито за професионализъм. Но пък претендира за най-лесния и бърз начин за създаване на HDR timelapse