mpb-efi:~/ihome/prototype/server/src fns$ make clean; time make ... real 0m9.264s user 0m7.150s sys 0m1.781s mpb-efi:~/ihome/prototype/server/src fns$ make clean; time make -j ... real 0m5.440s user 0m7.501s sys 0m1.991s
mpb-efi:~/ihome/prototype/server/src fns$ make clean; time make ... real 0m9.264s user 0m7.150s sys 0m1.781s mpb-efi:~/ihome/prototype/server/src fns$ make clean; time make -j ... real 0m5.440s user 0m7.501s sys 0m1.991s
mpb-efi:~/ihome/prototype/server/src fns$ man make ... -j [jobs], --jobs[=jobs] Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given without an argu- ment, make will not limit the number of jobs that can run simultaneously.
Sub testStrangeOverflowBug() Dim a As Double a = 1 / 86400 ' ezt simán eszi a rohadék a = 1 * (1 / (24 * 60 * 60)) ' ez tök ugyanaz, de egy Overflow Error a jutalmad End Sub
Imperial Fun from Gabor Penoff on Vimeo.
Természetesen inkorrekt lenne, ha nem soroltam volna fel, hogy honnan jöttek a képek. Persze a franc nem regisztrálja ezeket magának, amíg gyűlik a netről levadászott anyag… vagy mégis? Hála az Safari és az OS X codereinek, a Safariból kiráncigált/letöltött állományok kMDItemWhereFroms meta tagja megkapja a linket, ahonnan a leechelt file származik. Innen már csak két lépés és készen vagyunk! Elsőnek írjuk meg a geturl scriptet, ami a későbbiekben is hasznunkra válhat, ha CLI-ből akarjuk megtudni, honnan szedtünk le egy file-t:#!/bin/sh mdls -name kMDItemWhereFroms "$*"
for file in `ls .`; do (geturl ${file} | grep http >>~/Desktop/urls.txt); done
Ez pedig a szíjon levő karabíner és a csúszkálást határoló csat:
Így néz ki az R-Strap zseb:
A cég állítása szerint a vékony sodrony alig jelent plusz tömeget. Ez valóban így van, ám a saját példányomban a szíjba integrált fémsodrony “szőrei” néhol kitüremkednek a textil alól és rendesen meg képesek szúrni. Így ez nagyon buta megoldás: ha az integrált szíj kapott volna egy vékony műanyag borítást, a kínos probléma nem létezne.
A vállszíj párnázott része előtt a szíj és a benne levő fémszál rugószerűen fel van tekerve egy neoprén tokban:
Ez az ötlet hatalmas: sokkal kevesebbnek érzed a szíjon lógó tömeget az integrált “rugótól”.
A SunSniper szíja már az R-Strap által aktuálisan használt csavaros karabínert és kamera mountot használja. A kamera oldali mount kapott egy puha talpat a csavar mögé, ami meggátolja, hogy a csavar kitekeredhessen:
A csavaros karabíner lényege, hogy a nyíló szárra vágtak egy menetet, amin egy belül menetes kis csövecske tekerhető fel-le. Ha a karabínert zárod és a csövet eltekered, az nem engedi kinyitni a csatot.
A megoldás jónak hangzik, a gyakorlatban azonban kényelmetlen.
A SunSniper nem tett a szíjra csatot, amellyel a kamera csúszkálását lehetne behatárolni.
A szíjat több magyar forgalmazó is teríti.
Mindkét rész kellően strapabírónak látszik.
A Loop új generációs szíjában azonban a kamera csatlakozás megoldása az igazi ötlet: a gyártó markecing dumája azt mondja, hogy az amerikai hadsereg által is alkalmazott rozsdamentes csatlakozót használják:
Ez a perfekt! A kamera tetszőleges pontjára (így az RRS L-plate szíjvállába) erős zsinórral rögzülő anyacsati végében belül van egy vápa. A szíjra szerelt mount oldalán négy apró golyó fekszik bele ebbe a vápába. A két kis golyóból 2 fix, míg a kettő másik flexibilisen behúzható a szíjon levő csatlakozó végének megnyomásával. Ez a gombot nem tudod véletlenül annyira lenyomni, hogy leválassza a kamerát a szíjról.
További plusz pont, hogy a kamera oldalon levő kis acélcsatlakozóra a gyártó okosan négy darab O gyűrűt applikált, hogy megakadályozza a kamera esetleges sérülését.
Apple TV-t. Az eszköz egy 100 USD-ba kerülő, tenyérnyi dobozka. A doboz hátoldalán egy borotvazsinór aljzat (=beépített tápja van), egy HDMI anya, egy micro USB anya, egy optikai audio out és egy gigabit ethernet aljzat lakik, belsejében b/g/n-es WiFi és Bluetooth 2.1 EDR. A CPU az iOS eszközökbe fejlesztett Apple A4 ARM, a streaming tartalom puffereléséhez 8 GB RAM lakik a készülékben. 5 wattot eszik, mozgó alkatrésztől mentes, fekete fényes porfogó, de amúgy gyönyörű kis kütyü.
Egy hihetetlenül bosszantó tulajdonsága van: ugyan HDMI 1.3a aljzattal rendelkezik, mégsem implementálták benne a HDMI CEC standardet, amely azt tenné lehetővé, hogy a CEC buszvezetéken keresztül ébreszthetné/altathatná a belőle kijövő tartalom megjelenítéséért felelős HDMI CEC kompatibilis audio és video eszközöket. Remélem egyszer ezt meghozza egy firmware update.
A dobozka megjelenése után mohó haxor kezek neki is estek és alaposan körbenézték. Kiderült, hogy ő is iOS-t futtat, így nem elképzelhetetlen, hogy az Apple később a kis fekete kockát képzeli el az iOS platform megjelenítő frontendjének – na de ne szaladjunk így előre!
A kis kütyünek csak ott van igazán értelme, ahol streaming tartalmat is vásárolhatsz hozzá (ergo Magyarországon nincs), így az itthoni almás kereskedőknél sehol nem lehetett kapni. Jofkovot kértem hát meg, hogy kerítsen nekem egyet és ő azonnal intézte is: a tenyérnyi gépezet pár hét múlva költözött be a TV mellé.
Azon túl, hogy a kis dobozkával remekül nézhetsz trailereket, YouTube videokat meg Flickr fotókat, sok mindenre nem volt használható idehaza, egészen a 4.2-es iOS firmware megjelenéséig. Az új iOS firmware mellett jött az Apple TV-re is egy update, ami meghozta a Steve által már szeptemberben demozott AirPlay technológiát:
Az AirPlay nem más, mint egy mezei audio/video streaming, zeroconf (Bonjour) alapokra helyezve. Magyarul ez annyit tesz, hogy bármely AirPlay streamet adni képes eszköz (ezek jelenleg _hivatalosan_ az Apple iOS eszközei) képes bármelyik AirPlay streamet fogadni képes eszközre (ezek az új Apple TV, illetve az Airport Express, valamint 3rd party gyártók AirPlay kompatibilis eszközei (B&W, JBL, Denon, …)) audio és video streamet küldeni. Az AirPlay fogadó “output” eszközök csak megjelenítik a nekik sugárzott tartalmat, fogalmuk nincs annak mibenlétéről (azaz pl. az iPhone-ról streamelt YouTube videot továbbra is az iPhone tölti a netről és mintegy gatewayként továbbküldi mondjuk az Apple TV-nek megjelenítésre).
A dologra akkor figyeltem fel, amikor Steve apu szeptemberben azt mondta, hogy az AirPlay nyitott technológiák gyurmája, azt 3rd party gyártók beépíthetik a termékeikbe. Ebből azonnal jött, hogy előbb-utóbb megjelennek az AirPlay sender / receiver alkalmazások – és így is történt.
A TUAW Erica Sadun-ja volt az első, aki nekiállt az AirPlay hacknek: előbb elkészített egy AirPlayer nevű alkalmazást, mely a Mac-edet képes AirPlay receiver állomássá alakítani, majd a héten kiadta az AirFlick nevű AirPlay sender klienst, mely tetszőleges iTunes kompatibilis videofolyamot (offline tartalmat vagy akár online streamet) tud egy AirPlay receivernek küldeni.
A héten a történet úgy folytatódott, hogy az XBMC coder srácok portolták az AirPlay receiver funkcionalitást a media playerükbe, AirPlay vevővé téve ezáltal bármilyen, XMBC media centert futtató gépet (az első demóban egy Ubuntu Linuxon futó XBMC volt az AirPlay receiver).
Az iOS eszközök hackelése (jailbreak) után ott a lehetőség az AirVideoEnabler installjára, amely után az AirVideo iOS app képessé válik az AirPlay receiverek felé történő streamelésre.
Summa summarum, alakul ez az over-the-air streaming. Már most is baromi kényelmes, hogy esténként leülhetsz a TV elé és ott nézheted meg a napközben beesett YouTube videókat a nagy képernyőn, kényelmesen. Ha ez odáig fokozódik, hogy tetszőleges tartalmat küldhetsz a levegőben a TV-d és az erősítőd irányába, akkor már megint egy lépéssel közelebb került a Media Center Nirvana.
]]>
múltkori “homeaut dióhéjban” előadás után az általunk gyártott rendszer technikai megvalósításának demóját így sikerült összeraknunk szerdán 2*5 percben:
Dataflow from Budapest New Tech Meetup on Vimeo.
Ern0 elképesztő sebességgel beszélt, a dataflow témát szinte esélytelen ebben a formában átadni, mégis megpróbálta. Jól látszott az infoshock hatása az előadás végén: mindössze egy ember kérdezett, mindenki más csak kamillázott ezerrel 🙂 ]]> Preface: a mai workflow mese nem annyira strict OS X dolog, pusztán egy mezei Bash shell scriptet írunk meg benne.
Hónap eleje van – ilyenkor számlázok és írom a worklogot – ez utóbbiról lesz most szó. eFi munkája software support munka: többek között fejlesztek új toolokat és karbantartom a régieket, zömmel VBA-ban. A Microsoft Office VBA nem haszontalan stuff, ám több szempontból is szörnyűséges egy szerzet – elég csak arra gondolni, hogy az Office dokumentumba írt kódot (WTF?) csak egyesével, ún. modulonként tudod kézzel plain text file-ba menteni, az IDE semmi ettől extrább támogatást nem ad.
Anno, amikor elkezdtem VBA-val foglalkozni, írtam magamnak olyan környezetet, ami egy klikkre release ID-t generál az adott verziónak, új sort nyit a kódhoz tartozó changelogban és képes az így megjelölt kódfát tokkal-vonóval plain text file-okba egy verzióként kipakolni. Ehhez aztán készlült egy VBA updater motor is, ami ezt a mentést képes volt visszatölteni, de az egy másik történet – maradjunk most a lementett kódfánál, ami changelogostól pihen a HDD-n egy hierarchikus folder struktúrában.
A velem support szerződést kötő cégnek havonta számlázok, a számla mellé pedig logot kell mellékelnem, ami elmagyarázza, hogy a kiszámlázott hónapban milyen munkákat végeztem el. Ennek a lognak az előállítását automatizálja némiképp a worklog script. Nézzük meg, azt a végén elmagyarázom röviden, hogy hogy is megy ez az egész:
#!/bin/sh SCRIPT=`basename $0` if [ "$#" != "1" ]; then echo "$SCRIPT - list changes made within a month" echo "Usage: $SCRIPT yyyymm" exit 1 fi MYPATH=/Users/fns/Documents/xp/support/_code PATHLEN=$((${#MYPATH}+1)) #+1 to cut first slash character as well echo "$SCRIPT - list of changes made on $1\n" for f in $(find $MYPATH -iname "changelog*") do if [ -a $f ]; then LOG=`cat $f | grep "'$1"` if [ "$LOG" != "" ]; then SRC=${f:PATHLEN} echo "Log from $SRC:" echo "$LOG\n" fi fi done
worklog - list of changes made on 201010 Log from cpt/modules/ChangeLog.bas: '20101011 20:00 * Default report fix (default report created instead of last used one when no SF ARCHIVE present and the last used report wants it). '20101011 20:46 * Asset efficiency % report regional fix. '20101012 12:16 * Demand cmp Reports disabled when no SF ARCHIVE present. '20101013 18:57 + Forced forecast archive generation if user omits it to prevent freezing of forecast archive related reports. '20101013 20:04 + Asset group selection support for Demand share per family report. '20101015 08:20 * Demand share per family report MSO/FCODE array empty fix. '20101016 10:41 + Forecast archive generator hack improved.
]]>
Sasvári “angelday” Józsi előadta nekem, hogy miért is jó így olvasni. A Google Reader nagy kedvenc: szinte ipari standard és a webes kliense szinte mindent visz. A “szinte” szó használatát nálam egyedül egyetlen feature hiánya indokolja: nincs olyan keyboard shortcut a webes alkalmazásukban, amellyel a feedek átfutása közben az engem érdeklő cikket a böngésző a háttérben nyitná meg ahelyett, hogy a feedreader elé nyitna egy tab-ot (V shortcut).
Szerencsére mind Safari, mind Google Chrome alatt van a problémára megoldás: Safari fanatikusoknak a Zak Johnson által írt greader-bgtabs extensiont, míg a Chrome usernek a Google Reader: Open in background tab kiterjesztést kell felpakolniuk ahhoz, hogy a “V” shortcutra a Google Readerben olvasott aktuális cikk a háttérben nyíljon meg. Valószínűleg Firefoxra is van hasonló hack, de én azt a browsert csak ritkán szedem elő.
A Google Reader webapp valamennyire iOS optimalizált is, ám én kifejezetten utálom az iPad verziót: egyszerűen nem áll kézre. Szerencsére ezen a problémán gyorsan átugraszt a Reeder nevű natív iOS Google Reader frontend, amely iPhone és iPad változatban is külön-külön létezik, 3 és 5 USD pénzért (nem szeretem az extra pénzért különválasztott iOS portokat, de ez van – nemrég a Reeder for iPhone szülinapi akcióban volt fogható 1 USD ellenében, akkor elköltöttem rá gyorsan egy liter tej árát).
A Reeder fantasztikus alkalmazás, bátran mondom, hogy ha még nem ismered, de Google Reader felhasználó vagy, vedd meg vakon és nem fogsz benne csalódni. Korrekt, ergonómikus, intuitív UI, szemet gyönyörködtető design.
A fejlesztő dolgozik már a Mac OS X porton is – a reederapp twitter feedből épp pár napja derült ki, hogy a desktop verzió bétája a madeatgloria.com/brewery oldalon landol hamarosan. Bár nagy szükségét nem érzem egy asztali Google Reader alkalmazásnak, de azért érdeklődve várom, hogy vajon hasonlóan korrekt eszközt sikerül-e faragni, mint amilyen az iOS port.
]]>
Házautomatizálás heterogén eszközökkel dataflow alapokon from Budapest New Tech Meetup on Vimeo.
Az 5 percbe zanzásítás nagyon tanulságos lecke – jópárszor átrágod a mondandód, mielőtt nekimész, hogy egyáltalán bele lehessen zsúfolni ennyire szűk időkeretbe. A home automation téma nem kicsi (személy szerint heteket tudnék mesélni róla), de a novemberi meetupon ern0nek a dataflow demoval még sokkal nehezebb dolga lesz. A fényorgonás csillivilli meghozta a gyümölcsét: volt röhögés bőven, főleg, mikor a kérdésre jelentkező cimbora kezéről az accelerometer küldte a jelet a busznak, ami tekert egyet a lámpasoron. A random villogás közben beszélni lázasan azért annyira nem volt egyszerű 🙂 ]]>