Nincsenek szavak. Flickr set itt.]]>
Monthly Archives: August 2012
OS X Address Book → Nokia C1-02
Preface: kiábrándító kompúteres kálvária körülírása következik, kizárólag kockáknak! Az élet úgy hozta, hogy mostantól két SIM kártyát kell használnom egyszerre. Mindig rettegtem attól, hogy két telefont hurcolásszak magammal, de hiába, amíg a roaming aranyárban van, addig nincs más választásom. Azt találtam ki, hogy main telefonnak megmarad a mindenkori iPhone, míg a másik SIM kártya megkapja a létező legolcsóbb && legegyszerűbb független telefont, amit csak be tudok szerezni. Az új készülékkel kapcsolatban az alábbi elvárásaim voltak:
- ha már muszáj, akkor kicsi és észrevétlen legyen
- egy töltéssel menjen minél többet, hogy ne kelljen sokat foglalkoznom vele
- legyen valami kommunikációs interfésze, amin rá tudom venni a jelenlegi címlistám szinkronizálására
- azonnal kapható legyen
- OS X 10.8 alatt a szebb napokat megért iSync már nincs, ezt az utat felejthetem
- Létezik egy SyncMate nevű alkalmazás, amely azt ígéri, hogy az ingyenes verzióban S40 készülékekkel menni fog a Contact sync Bluetooth-on keresztül. Itt jelezném minden további kommentár nélkül, hogy HAZUDIK.
- Van a Nokia által Windows-ra írt alkalmazás, a Nokia Ovi Suite, amely még megoldást jelenthet. Ez Bluetooth és USB kapcsolaton keresztül is képes az alkotói szerint szinkronizálni.
- Feliratkozós bétában létezik egy, szintén a Nokia által fejlesztett Nokia Software Updater nevű OS X alkalmazás is, melyről valahol azt olvastam, hogy szintén sync-kelne nekem address bookot. Az alkalmazás oldala azért van annyira cserépedény, hogy csak a subscribe után közli a támogatott eszközök teljes listáját, melyben a C1-02 momentán nem szerepel.
SyncMate hiszti
A SyncMate egy süt-főz-mosogat alkalmazás – talán csak a mikrosütőddel nem hajlandó szinkronizálni -, amely településekor az alábbi szemetet kívánja feltúrni a gépedre: Ezeket ő azért szeretné nagyon, mert meg van győződve arról, hogy te minden egyes alkalommal automatikusan szinkronizálni szeretnéd a Bluetooth eszközöd vele, amint az a SynMate host gép közelébe ér. Nyilván szegénykém nincs felkészítve arra, hogy a rideg lelkű iPhone user egyszer használhatós alkalmazásnak tekinti őt. Summa summarum, nem barátkoztunk össze én és a SyncMate. A Bluetooth kapcsolattal nem volt különösebb gond, sőt látszólag maga a szinkron is pöpecül lemegy, csak miután befejeződött a contact sync, örömmel közli, hogy nulla darab contact adatot pumpált át a Mac-ről a kis szerencsétlen Nokiára. Néhányszor tíz alkalommal próbálkoztam mindenfélével (mondjuk tény, hogy ezúttal a fekete kakas áldozat teliholdkor kimaradt), majd a SyncMate ment a kukába.Nokia Ovi Suite
Ez a bárány már valamivel segítőkészebbnek bizonyult. Első ránézésre látom rajta, hogy van pöpec VCARD import funkció. Ész nélkül rohanok az Address Bookba, exportálom a címlistát v3.0 VCARD-ba, majd vissza az Ovis programba importálni. Az eredmény siralmas: az Ovi Suite egy rohadt szót nem szól, hogy mi a baja, egyszerűen csak nem importálja a több contactot tartalmazó VCARD file-t. Nosza itt is megkezdődik a vudu, VCARD 2.1, single contact export, UTF-8-ból bárkibe (hátha az a baja neki), de semmi nem segít, az Ovi Suite nem eszi az OS X Address Book által gyártott VCARD-ot. Nota bene: a 2012-ben letölthető Ovi Suite egyesével akarja a VCARD-okat enni, azt el nem tudja képzelni, hogy több contact kerüljön ugyanabba a VCARD file-ba. Megnézem, hátha van contact sync az állatorvosi lóval (=Outlook Express). Voila, van! Most, hogy van új ellenfelünk, mehetünk ezt is kiismerni (Outlook Expresst a saját gépemen talán még soha az életben nem indítottam el). Az Outlook Express egy csomó address book formátumot támogat – az egyik ilyen az LDIF (=LDAP Data Interchange Format). Frankó, már csak OS X Address Book → LDIF konverter kell. Némi keresgélés után rátalálok a PHP-ban írt vCard to LDIF konverterre itt. Leszedem (mert ugye az embergyerek az egész Address Book-ját egy random szembejövő service-nek csak nem adja ki, ha nem muszáj), gyorsan gyártatok vele szép LDIF file-t, azt megetetem az Outlook Express-szel, az Outlook Express címlistáját az Ovi Suite-tal, majd csillogó szemekkel nézem, ahogy 2012 augusztus végén a 193 kilobyte-os állományt az USB2-es dróton az alkalmazás mintegy kettő perc leforgása alatt átrepíti a telefonba. Sync kész, ránézek: egy jó nagy kupac foshalom az egész – az ékezetek Windowsosan széjjelcsúszva, a contactoknak vagy van neve, vagy nincs – ez így nem jó. Első varázsigeként szedek a stackoverflow-ról egy Unaccent függvényt, bánja kánya az ékezeteket, csak menjen az a tetves contact sync (annyira szép megoldás, hogy ideteszem):function Unaccent($string) { return preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')); }
Media Center Szent Grál: raspbmc
A probléma Van egy csomó videóanyagunk, amelyek nem H.264-ben vannak tárolva és nincs kedvünk konvertálgatni, de azért a TV-n szeretnénk viszontlátni őket. Egyúttal az egész bulira túl sok pénzt sem akarunk áldozni.
A megoldás
Vásároljuk meg az alábbi cuccokat:- 13000 HUF: Raspberry Pi computer
- 1800 HUF: micro-USB táp a computerünk számára
- 2000 HUF: 8 GB-os SD kártya
- 2000 HUF: legalább 1.3-as HDMI kábel (bár én a helyedben 1.4a-t vennék, abban ott a 100 mbit-es ethernet is, ami ugyan most nem kell, de ki tudja, mikor jön majd jól)
- 5000-9000 HUF: rádiós, egérrel egybeépített billentyűzet – mondjuk ez, vagy ez
- 300 HUF: hálókábel
Bárányos cucc
Lehelletnyi papaszalonna, pici olívaolaj, héjas krumpliszeletek, kis só, sok rozmaring, nagy marék friss rókagomba, bors, fokhagyma. Layer 2: Fiatal, gyenge bárány oldala, sózva, durva borsozva, papaszalonna katonákkal, további fokhagymagerezdekkel és rozmaringgal kényeztetve, alá pici víz. Sütőbe 150 fokra, aztán amikor puha, akkor 180-200 fok pár percig, majd kiszed, tálal, örül, megesz. Jóféle új zélandi sauvignon blanc kíséri és egy-egy 3rd party által gyártott babeczka z malinami dugózza majd le: Update: ez lett az állatból végül: ]]>
Zamki Bobolice i Mirów
Szép nagy vár a mészkő tetején mindkettő. Bobolice zsír újnak tűnik – azért, mert egyébként az is. A helyiek lényegében a régi vár alapjaira ráépítették a valaha volt eredeti pontos mását. Mirównál találkoztunk egy híres nemzeti étellel, a magyar lángossal (?): Ez igaziból egy sűrű gulyással vagy pörkölttel töltött tejfölös lángos. Fura, de egyszer megkóstoljuk, az tuti. Ha esetleg ettetek ilyet, ne titkoljátok az élményt!]]>
Find duplicates
A probléma Szorgosan fotózunk. Idővel rákapunk arra is, hogy a fényképeinket szépen rendszerezett formában tároljuk valamelyik fotós workflow alkalmazás segítségével. A fotóink egy folder struktúrába importálódnak, példás rendben. Minden oké, amikor egyszer csak véletlenül egy nagy kupac régi képet kétszer húzunk be a libraryba – kész a baj, egy zsák fotónk lesz meg két példányban, feleslegesen. Lista kellene a duplikált file-jainkról!
A megoldás
Mielőtt alkalmazást keresnénk a feladat leküzdésére, agyalunk egy kicsit és kitaláljuk, hogy *nix-like környezetben menni fog ez külső segítség nélkül is. Két file egyezésének megállapításához pont elég, ha azok MD5 hash-e megegyezik. Írjunk hát egy scriptet, amely az egyező MD5 hash-ek alapján elkészít egy duplikált file listát:# A script a duplikált file-okat tartalmazó foldert várja paraméterként # és a jpg kiterjesztésű állományok egyezését vizsgálja csak. NAME="*.jpg" ALLFILES="/tmp/finddups.allfiles.tmp" DUPHASHES="/tmp/finddups.duphashes.tmp" find $1 -name "$NAME" -exec md5 {} \; | sort >$ALLFILES find $1 -name "$NAME" -exec md5 -q {} \; |sort|uniq -d|sort -n >$DUPHASHES while read hash do cat $ALLFILES | grep $hash | grep -oE '\((.*-[0-9].jpg)\)' | sed "s/(// ; s/)//" done <$DUPHASHES
find
-del kezdődő sor a célfolderben levő összes jpg file-unkból számol egy MD5 hash-t, majd a filelistát hash-estől leteszi egy file-ba. Ez a file valahogy így fog kinézni:
MD5 (./2000/05/15/20000515-0084.jpg) = 747888000b422d619a1b308346b7d81e MD5 (./2000/05/15/20000515-0086-2.jpg) = d3a064924fb8306519475b09cb90d66b MD5 (./2000/05/15/20000515-0086-3.jpg) = d3a064924fb8306519475b09cb90d66b MD5 (./2000/05/15/20000515-0086.jpg) = d3a064924fb8306519475b09cb90d66b
md5 -q
opciója), majd a uniq
binárissal csak a duplikált hash-eket szűrve (=-d opció) letesszük az összes, többször előforduló MD5 hasht egy másik file-ba.
Ezután már csak végig kell rohannunk a duplikált hash-eken, kikeresni, hogy mely file-okhoz tartoznak és kilistázni azokat – ezt teszi a script végi ciklus.
A ciklus közepén levő regexp arra hivatott, hogy az első körben előállított hash-es filelistából csak a filenevek jelenjenek meg – azok közül is csak azok a file-ok, amelyek neve -[0-9].jpg-re végződik.
Tudom, hogy a végén levő sed (amellyel a kibányászott filenevek elől és mögül lecsippentjük a zárójeleket) ágyúval verébre kategória. Nekem sem tetszik, gusztustalan – azonban szűk egy órán át nem találtam más megoldást, ezért maradt ilyen. Commentben lehet szárnyalni, ki hogyan választaná le így shellben az egrep által elkapott első capture group-ot.]]>
Curiosity landolás
Curiosity touchdown!
Curiosity
Kedvcsináló videó – egy percben a Marsról: Egy videó arról, hogy mennyire kemény meló sikeresen a Mars felszínére juttatni a robotot: Ha a fenti videók felkeltették az érdeklődésed, íme még pár link:
- Minden a NASA MSL-ről (=Mars Science Laboratory) itt.
- Erre találsz szépen összerakott, egyszerű és látványos pdf-et a küldetésről és magáról a robotról.
- A komplett Mars misszióval kapcsolatos sok-sok érdekes video erre (a fenti három is innen jött).
- A Curiosity landolásával kapcsolatos friss infók RSS-ben erre.
- Livestream.com landolási video stream erre.
- Ustream Nasa streamek erre. Én ezt a streamet ajánlom: egyfelől magyar a fejlesztő csapat, másfelől a múltkori, SpaceX – ISS összekapcsolódást közvetítő csatornájuk is messze akadásmentesebb volt, mint a NASA saját live streaming szolgáltatása.
Media Center Szent Grál: behódolunk a H264-nek
A probléma Mondjuk, hogy van egy zsák DVD-nk (tényleg van), adja Isten találtunk hozzájuk .SRT feliratokat is és mindezt cakkumpúder csinosított formában szeretnénk felajánlani az iTunes librarynknak népgazdasági hasznosításra (egy üveg fröccs már bennem van, elnézést a hablatyért).
A megoldás
A feladatot két részre bontjuk: előbb hagyjuk a computerünket tömegesen konvertálni, aztán majd szerzünk az eredményhez metaadatot is, végül megszólítjuk iTunes komát is. Csapjunk bele!1. lépés: tömeges konverzió
Szóval nagyjából úgy, ahogy a fenti bagoly rajzolós HOWTO mutatja. Igaziból persze leszedünk egy HandbrakeCLI-t, bemásoljuk a /Applications mappánkba a binárist és megírjuk az alábbi scriptet:#!/bin/sh # # Handbrake gyipaci # lmdate 2010.07.05 # # Végigmegy rekurzívan egy könytáron és megkeresi a filmcim-hu{n}.srt, filmcim-en{g}.srt feliratfile-okat, # aztán ha igazán akarod, csinál neked soft subtitle-os m4v-ket az avi-jaidból. # # A script feltételezi, hogy ha csak egy, az avi file-lal megegyező nevű srt file-t talál, akkor abban magyar # subtitle lakik. # convert() { film="$1" base="${film%.*}" srt="$base".srt hu="$base"-hu.srt hun="$base"-hun.srt en="$base"-en.srt eng="$base"-eng.srt srthuc=0 srthu="" if [ -e "$srt" ]; then srthuc=1 srthu="$srt" elif [ -e "$hu" ]; then srthuc=1 srthu="$hu" elif [ -e "$hun" ]; then srthuc=1 srthu="$hun" fi srtenc=0 srten="" if [ -e "$en" ]; then srtenc=1 srten="$en" elif [ -e "$eng" ]; then srtenc=1 srten="$eng" fi let srtc=$srthuc+$srtenc srtfiles="" srtcodes="" srtlangs="" case $srtc in 0 ) ;; 1 ) if [ -s "$srthu" ]; then srtfiles="$srthu" srtcodes="WINDOWS-1250" srtlangs="hun" else srtfiles="$srten" srtcodes="ISO-8859-1" srtlangs="eng" fi ;; 2 ) srtfiles="$srthu","$srten" srtcodes="WINDOWS-1250,ISO-8859-1" srtlangs="hun,eng" ;; esac if [ $srtc -ne 0 ]; then echo Found $srtc subtitles: echo "$srtfiles" echo "$srtcodes" echo "$srtlangs" else echo No subtitles found. fi options="-e x264 -q 20.0 -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 -4 -X 960 --loose-anamorphic -m -x cabac=0:ref=2:me=umh:b-pyramid=none:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500 -C 8" case $srtc in 0 ) # ha felirat nélkül is konvertálnál echo "" | $hbcli -v -i "$film" -o "$2" $options ;; 1 ) # ha konvertálnád a home videód akkor is, ha csak a default magyar felirat van meg hozzá echo "" | $hbcli -v -i "$film" -o "$2" $options --srt-file "$srtfiles" --srt-codeset "$srtcodes" --srt-lang "$srtlangs" ;; 2 ) # ha konvertálnád a home videód mind az angol, mind a magyar felirat birtokában a kétnyelvű családod számára echo "" | $hbcli -v -i "$film" -o "$2" $options --srt-file "$srtfiles" --srt-codeset "$srtcodes" --srt-lang "$srtlangs" ;; esac return } hbcli=/Applications/HandBrakeCLI source_dir="." input_file_type="avi" output_file_type="m4v" echo "# Using HandBrakeCLI at "$hbcli echo "# Using source directory "$source_dir echo "# Converting "$input_file_type" to "$output_file_type # Convert from one file to another convert() { # The beginning part, echo "" | , is really important. Without that, HandBrake exits the while loop. echo "" | $hbcli -i "$1" -o "$2" --preset="AppleTV 2" -C 8; } # Find the files and pipe the results into the read command. The read command properly handles spaces in directories and files names. find "$source_dir" -iname "*.$input_file_type" | while read in_file do echo "Processing…" echo ">Input "$in_file # Replace the file type out_file=$(echo $in_file|sed "s/\(.*\.\)$input_file_type/\1$output_file_type/g") echo ">Output "$out_file # Convert the file convert "$in_file" "$out_file" if [ $? != 0 ] then echo "$in_file had problems" >> handbrake-errors.log fi echo ">Finished "$out_file "\n\n" done echo "DONE CONVERTING FILES"
options=
kezdetű sorban a -C utáni számot kicseréljük a rendelkezésünkre álló CPU magok számára.
Egy folderbe bepakoljuk az eddig bután .avi formában tárolt filmjeinket / sorozatainkat, melléjük tesszük az .srt file-okat (ha ezt nem értjük, elolvassuk a scriptet, nem csak nyakló nélkül mentjük). Ha ez kész, nyitunk egy shellt, bemászunk a filmek könyvtárába és elindítjuk a scriptünket, majd a végén örülünk a sok szép új m4v file-nak.