Monthly Archives: February 2011

GeekQuiz sörért

A macskaállat az előbb támadást intézett az egyik alkalmazásablak ellen:

A fenti buta minőségű képet elnézve jutott eszembe, hogy ezzel eljátszhatnánk egy kicsit. Játszuk azt, hogy jöhet a commentbe minél több, a képen látható kocka dolog felsorolva. Egy usernek csak egy commentje él, abból is a legelső. Minél több infot sorolsz fel a beazonosított cuccokról, annál nagyobb az esélyed nyerni. A legtöbb jó tippért jár egy serital (ha fds játszik, akkor neki értelemszerűen Piros Mogyorós :)).

Vasárnap éjfélig játszunk. Start!

25:17

Hétfőn felnyitották a lábát, mára már jól van és úgy tűnik, hogy megúszott egy komolyabb csontműtétet. Egy hete lépett bele a drága, ártatlan, bújós kiscica egy csapdába - még nem tudom, hogy ki az a lelketlen féreg, aki lakóövezetben ilyet kirak, de ha kiderül:

Ezékiel 25:17

Az igaz ember járta ösvényt mindkét oldalról szegélyezi az önző emberek igazságtalansága és a gonoszok zsarnoksága. Áldott legyen az, ki az irgalmasság és a jóakarat nevében átvezeti gyöngéket a sötétség völgyén, mert ő valóban testvérének őrizője és az elveszett gyermekek meglelője. Én pedig lesújtok majd tereád hatalmas bosszúval és rettentő haraggal, és amazokra is, akik testvéreim ármányos elpusztítására törnek, és majd megtudjátok, hogy az én nevem az Úr, amikor szörnyű bosszúm lesújt rátok!

Pulykamáj anyukám módra RELOADED

Anyukám igaziból nem így csinálja: befűszerezi a májat, betekeri vékony bacon-be, beteszi egy tepsibe, nyakonönti mustáros tejföllel és készre süti. Egyszer csinálunk olyat is, most azonban megfogott a speizban talált kis kerámiaedény, így variáltam. Rém egyszerű a kaja, a sok fotó ne rémisszen el, pillanatok alatt összerakod. Így fog kinézni, mikor kész:

Belül meg ilyen lesz:

A recept csak annyi, hogy a komponenseket szépen egymásra rakod egy csészében, aztán a végén az egészet sütőbe 130 fokra 45 percig, majd kivesz, megesz örül.

A komponensek, szép sorjában: laskagomba, csípős zöldpaprika, paradicsom, durvára reszelt sajt, pármai sonka, 1 percig forró zsírban sütött, majd durva borsban meghempergetett pulykamáj. Lássuk a lépéseket:

Mac workflow: a supporter fegyvere az embeddelő userek ellen

A probléma

A gonosz user küld nekünk egy hibaüzenet screenshotot, jó esetben csak egy, rosszabb esetben több, általában Office dokumentumban egymásba ágyazva (jött már olyan, hogy a szép fejléces (!) PowerPointba ágyazott debug screenshot csini Word dokumentumba gyógyítva, szép veretes picture frame-mel). Megkapom, ránézek és máris nem kell lemennem evezni, hogy 150-re szökjön a pulzus:

user-embeddelt-hibauzenete

A megoldás

Azért jó ideje már nem szökik. Egyfelől van nekem szép \screenshot fedőnevű TextExpander shortcutom, ami ilyet csinál azonnal a válaszmailbe:

Képernyőfotók küldése Windows alatt a legegyszerűbb módon
 
1. Tegyük aktívvá a fotózandó ablakot (egyszerűen rá kell csak kattintani).
2. Nyomjuk meg az Alt+Print Screen billentyűkombinációt — a fotó az aktív ablakról a vágólapra kerül.
3. Indítsuk el a levelező programunkat, kezdjünk el egy új levelet.
4. Kattintsunk a levél törzsébe, és oda illesszük be a vágólap tartalmát a Control+V billentyűkombinációval.
5. Címezzük meg a levelet és küldjük el!

Másrészt nem lennék címzetes shareware junkie lovag, ha ne tartanék erre fent egy appot. Az app neve File Juicer. A kis 13 EUR-ba kerülő shareware alkalmazás az univerzális kicsomagoló - rengetegszer behozta már az árát nekem. Számos formátumot képes atomjaira szedni, továbbá nagy segítség tud lenni, ha memóriakártyáról kell visszahozni törölt adatot.

A File Juicer kis ronda ikonnal rendelkezik, valamint az UI sem egy díjnyertes csődör:

file-juicer-UI

Az ablak bal oldalán található drop target boxba, vagy az alkalmazás dokkon levő ikonjára kell dobnod a gonosz felhasználó által küldött dokumentumot, amit az app szétszed, ahogy illik:

file-juicer-result

A File Juicer természetesen AppleScriptelhető, így semeddig nem tart egy Service-t gyártani hozzá, ami jobb clickre indítja a konverziót. Minden embeddelő userellenséggel találkozó Mac OS X usernek kötelező fegyver ez a kis gyöngyszem.

Update: Józsi párhuzamos postja a témában erre.

Aglio e Olio

Rém egyszerű kaja, Ala cimborám nagy kedvence:

Aglio e Olio from Gabor Penoff on Vimeo.

Nem tradícionálisan, hanem eFisen fogjuk elkészíteni.

Előkészül

Két, velünk inkompatibilis (=kisebb belű, standard) személyre mérünk.
Vesz egy fej fokhagyma, Egy fej vöröshagyma, 5-6 száraz vagy friss chili paprika, 3 csokor petrezselyem, olívaolaj, só, bors, 250g spagetti. Mielőtt nekiállsz a többinek, felteszel egy nagy fazék vizet zubogva forrni. Fokhagymát szétzúzod, vöröshagymát apróra kockázod, petrezselymet széles késsel apróra trancsírozod, chilit szintén felaprítod.

Csinál

Kifőzöd a tésztát al dente, majd leszűröd. Serpenyőben olívaolajat hevítesz, forró olajba vöröshagymát és a chilit bedobod. Ha már barnulni kezd, bele a fokhagyma, gyors átkever és hozzádob a petrezselyem fele, csipet só, két csipet bors. Két kavarás, bele a tészta, átkever, hagy lesülni egy picit. Mikor serceg a tészta (=sül), rádob petrezselyem, belekever, serpenyő tűzről lehúz, tálal, esz, örül.

Száraz muskotályt kóstolj hozzá.

Space a /etc/fstab-ban

Fél órája szívok egy mount definícióval. Próbáltam az alábbi két módszert, hiába:

//vmware-host/Shared\ Folders/plannr /plannr smbfs binary 0 0
"//vmware-host/Shared Folders/plannr" /plannr smbfs binary 0 0

A kézivezérlésű mount simán mountol bármelyikkel. Kis RTFM után megjött a megoldás, gyorsan rögzítem is ide, okulásul, mert *nix alatt így megy a móka (incl. OS X ugye):

//vmware-host/Shared\040Folders/plannr /plannr smbfs binary 0 0

FYI: a \040 a Space (32-es ASCII kód) oktálisan, az kell a drága szentemnek.

Chat fun

Az első VBA related volt, Skype-on jött:

chat-work

A második homeaut téma volt, amibe beleszólt egy hozzá nem értő is:

chat-nrg

PepeSalad [restored post]

Tápláló, könnyű saláta HOWTO Pepe cimborám agyából kipattintva - egyszerű, mint egy faék, tessék reprodukálni és örülni:

Mac workflow: fordító service

Preface: a workflow Google API-t használ, így feltételezem, hogy rendelkezel a használatához szükséges Google accounttal, továbbá Growl felhasználó vagy. Ha nincs Google accountod és nem is akarsz gyártani magadnak, illetve a Growl-tól is kiver a víz, akkor ez a leírás számodra nem nyújt explicit megoldást.

Update: fds Mester hatására kigyomláltam a gusztustalan urlencode függvényt és az amúgyis nagyon okos curl binárisra róttam ezt a terhet.

A probléma

Idegen szóval / kifejezéssel találkozunk a computeren olvasás közben, amire a gyári Dictionary.app-ba integrált szótárunk nem ad fordítást.

A megoldás

Van a Google-nek jóféle online translation API-ja, amit megkérhetünk szépen, hogy fordítson nekünk. Az OS X nagy varázslata a rendszer szintű AppleScript támogatás és az Automator fedőnevű makrózó csoda - őket szólítjuk most csatába.

Első körben ellátogatunk a Google Translate API oldalára és végigolvassuk a doksit. A dokumentáció szépen elmagyarázza, hogy Google-ék egy ilyen GET requestre adnak értelmes választ:

https://www.googleapis.com/language/translate/v2?parameters

A HTTPS request felparaméterezve így néz ki:

https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&q=hello%20world&source=en&target=hu

Miután ezt megtudtuk, a doksiban leírtak szerint látogassunk el a Google APIs Console oldalra, készítsünk egy új Translate projectet és már meg is szereztük a Translate API híváshoz szükséges kulcsot.

Megvan a kulcs, csinálhatunk jó kis Service-et!
Elindítod az Automator alkalmazást, majd kiválasztod a Service típusú template-et:

A megjelenő editorban a Library/Utilities szekcióból kikeresed a Run AppleScript actiont és behúzod a munkaterületre:

Ezután már csak bepakolod a script helyére azt, amint én hajnalban már kiszenvedtem, beteszed a set myKey to "PUT_YOUR_GOOGLE_API_KEY_HERE" sorba a te saját Google Translate API kulcsod és lemented a file-t Translate néven.

Ha mindent jól csináltál, akkor megjelent egy Translate nevű service a gépeden, ami úgy működik, hogy egy tetszőleges alkalmazásban kijelölt szövegen jobb clicket nyomva, majd a Services menü Translate opcióját kiválasztva a script megküldi a Google Translate APInak a kijelölt szöveget és a visszakapott fordítást megjeleníti neked egy Growl notification buborékban, valahogy így:

Végül nézzük meg a scriptet egyben, úgy, ahogy magamnak implementáltam:

(*
	Translate
	by Gabor PENOFF (http://fns.csokolade.hu)
 
	release 20110208_092849
 
	About:
 
 
	Requirements:
	- insert your own Google API key
	- install Growl from http://growl.info to get non-modal notification dialogs
 
	Usage:
	- select some text and run the service
 
	That's all.
*)
 
on run {input, parameters}
 
	set srcText to input as text
 
	set srcLang to "en" -- source language
	set tgtLang to "hu" -- target language
	set myKey to "AIzaSyCI-2oapEkMpRFfd6Ltv4HkZhf1Zq-VU9o"
	set myScriptID to "Translate" -- ID for Growl display
 
	set myTranslation to do shell script "/usr/bin/curl -G --data-urlencode q=" & quoted form of srcText & " --data-urlencode key=" & quoted form of myKey & " --data-urlencode source=" & quoted form of srcLang & " --data-urlencode target=" & quoted form of tgtLang & space & quoted form of "https://www.googleapis.com/language/translate/v2"
 
	if myTranslation = "" then
		tell me to notifyWithGrowl(myScriptID, "ERROR")
		return
	end if
 
	-- get rid of JSON (ugly but works)
	set myPrefix to "translatedText\": \""
	set myPostfix to "\""
	set myStartPos to (offset of myPrefix in myTranslation) + (length of myPrefix)
	set myText to text myStartPos thru -1 of myTranslation
	set myEndPos to (offset of myPostfix in myText)
	set myText to text 1 thru (myEndPos - 1) of myText
 
	tell me to notifyWithGrowl(myScriptID, myText)
 
	return "" -- myText
end run
 
-- GrowlCheck:
on growlInstalled()
	try
		do shell script "ls /Library/PreferencePanes/Growl.prefPane/"
		return true
	on error
		return false
	end try
end growlInstalled
 
-- Growl notifier:
on notifyWithGrowl(myApp, myText)
	set myIconApp to "Safari"
	set notificationID to myApp & ".default"
 
	if growlInstalled() then
		tell application "GrowlHelperApp"
			-- list of notification types
			set the ANL to {notificationID}
			-- list of enabled notifications
			set the DNL to {notificationID}
 
			-- register script
			register as application myApp all notifications ANL default notifications DNL icon of application myIconApp
			-- send notification
			notify with name notificationID title myApp description myText application name myApp
		end tell
	else
		-- skip alert if no Growl installed
		--display alert "Growl is not installed"
	end if
end notifyWithGrowl

Türelmetleneknek / elfoglaltaknak / lustáknak az egész service szedhető innen - persze még ebben is be kell pakolnod a saját magad Google API kulcsát, hogy működjön.

eFi, a búvárpasi

A búvártanoda nekiállt megkeresni Magyarország legnépszerűbb búvárhölgyét, majd valamivel később a legnépszerűbb magyar búvárpasit is - és itt hullámzik be a képbe az én pocakom:

Gondoltam egy merészet, megkerestem azt a 2004 októberi fotót, amelyik a 10 órás Brač szigetre vezető autóút után készült, két merülés között (ez van itt feljebb). A képet Lacus barátom készítette. A dagi kimerült eFit ábrázolja, akit úgy lestrapált az éjszakai vezetés, hogy a két merülés között simán bealudt a hullámzó vízen közlekedő hajón a 7 mm-es dög meleg neoprénben.

Ez a fotó felkerült a búvártanoda által kreált esemény oldalára.

Nézzük meg feleim, mire képes a social media: áramoljatok az event irányába, lájkoljátok előbb a búvártanoda oldalát itt, aztán meg keressétek meg a fenti eFis képet ezen az oldalon és lájkoljátok azt is.

Március 8-án zárás, addig lehet tolni a lájkokat ezerrel :)