Monthly Archives: June 2010

Az iPhone/iPad esete a digitális kamerákkal

A feladat: digitális fényképezőgéped LCD képernyőjénél nagyobb felületen ellenőrizni az elkészült kép minőségét, lehetőleg úgy, hogy a kamerát ne kelljen egy computerhez hozzádrótozni. A megoldás elmélete: WiFi kell a kamerába és már megy is. A probléma hardware-es feloldása Monitor funkciónak használjunk ezúttal iPhone-t, vagy iPad-et és nézzük a kamera oldalát. Az alábbi lehetőségekről tudtam ma hajnalig:

  1. Eleve WiFi-vel integrált kamerát használsz.
  2. Eye-Fi SD kártyát teszel az SD kártyát fogadni képes kamerádba, amely WiFi-t ad a kamerádnak a storage funckió mellett.
  3. CompactFlash-only DSLR-hez a szelén árával vetekedő WiFi adaptert vásárolsz (5D Mark II esetén ez >200kHUF – WTF?), már ha a DSLR-edhez kapható ilyen egyáltalán.
Vegyük ebből a legrosszabb esetet: CompactFlash-only DSLR-be kell WiFi-t hegesztenünk. Erre kínál megoldást a SynchroTech CFMulti CompactFlash Type II to Eye-Fi™ + Multi-Card Adapter, ami CF-nek mutat egy belerakott SD kártyát, ráadásul sikeresen tesztelték vele az Eye-Fi kártyáit is. Ha 2010 június 30-ig rendeled, itt egy 4 USD-t érő kupon: 1259098824. Vas kipipálva, már csak WiFi tethering alkalmazás után kell néznünk. Az “App” ShutterSnitch-nek hívják a varázslatot, ami egy 6 EUR-ba kerülő iPhone/iPad alkalmazás. Az app az RGB hisztogramos review funkció mellett email/FTP integrációt, eltérő beállításokra figyelmeztető triggereket, valamint szerkesztési lehetőségeket kínál. warnings_histogram Sajna 63 USD a legolcsóbb FedEx posta a CF adapter kütyüre, de Jofkovék valószínűleg olcsóbban meghozzák.]]>

Szúnyogvadászat

Preface: az alább leírt “fegyverek” kizárólag kültéri bevetésre készültek. Ez ugyan mindegyik manualjában/dobozán szerepel, de én is szeretnélek figyelmeztetni, hogy nem alkalmasak beltéri használatra. A beltérben maradj a szúnyogháló / légycsapó / illatgyertya / konnektoros párologtató combonál!

Angelday postjában az indoor a fókusz – katt át, ha arra is kíváncsi vagy (érdemes, gyűlik a sok hasznos kontent a commentekben). Aki kis hazánkban él, az tudja, hogy a nagy esőzés miatt keletkezett rengeteg pangó vízben szúnyogok csilliárdjai kelnek ki naponta. Ez mondjuk a békáknak tök jó, de én nem kétéltűből vagyok, úgyhogy nekiálltam ellenük megoldást keresni. Erről szól ez a post.

Mondok magának egy érdekes adatot

孫子 (=Szun Cu) “A Háború Művészete” című művében azt írja:

Ismerd meg az ellenséged és ismerd meg önmagad – száz csatában sem kerülsz veszélybe.

Ennek tükrében először nézzünk meg pár érdekes adatot ezekről az utálatos dögökről:

  • Az általunk szimplán szúnyognak titulált vérszívó dögöknek mintegy 3500 (!) faja ismert – ebből nálunk nagyjából 3 honos.
  • Csak a nőstények csípnek, a hímek nem. A hímek növények nedveit szívogatják, akár el is lenne a világ velük, ha nem kellene nőstény a szaporodásukhoz (lásd békák vs szúnyogok).
  • A szúnyog a vért szíváskor egy pufferbe tolja és később onnan kezdi el megemészteni, azaz mohón raktározva zabál és nem figyel a vonalaira.
  • A nőstények egyszerre csak egyet csípnek, de ezzel az egy csípéssel megduplázzák (!) saját testsúlyukat.
  • A nőstények is eszik a növényi nedveket, de nekik minimum egyszer emlősvér is kell, mivel abban van annyi power, hogy az általuk lerakott petéket kikelésig táplálja – innen ered tehát a gonosz vérszívó ösztön.
  • Az áldozat hőjét, szagát, de leginkább a kilélegzett szén-dioxidot veszik legjobban észre, s így találnak ránk.
  • A nőstény 30-300 petét rak, ezekből pár nap alatt lárva lesz, akikből 4-7 nap alatt kelnek ki a szúnyogállatok.
  • A hímek pár napig élnek, szex után végük.
  • A csípést egyáltalán nem érzed. A viszketést az okozza, hogy a szúnyog beléd köp egy, a mi szervezetünktől idegen véralvadásgátló fehérjét, ami kiváltja az emlősben az immunreakciót. Ez nagyjából úgy megy, hogy odamennek a falósejtek az idegen fehérjéhez, jól felzabálják azt meghalnak. A fehérvérsejteket a csípés helyén felszabaduló hisztamin “hívja oda” (btw sokszor ebből van kevés az impotens pasiknak). A csípés helyén azt a “búbot” az érfalból kilépő extra folyadék hozza létre, a piros szín is a hisztamin miatt kitágult erektől jelenik meg és szintén ez az anyag birizgálja a környező idegvégződéseket, ezért viszket az egész. A csalán szőreiben is ez a hisztamin húzza az ívet, mikor hozzáérsz (abban van még fincsi hangyasav, szerotonin meg acetilkolin is, de az egy másik mese).

Ha már megtörtént a “baj”

Ha nem untad el a fenti utolsó érdekes adatot, akkor már fejben van, hogy nekünk a szúnyogcsípés a hisztamintól nem igazán jó. A kis gonosz hisztamint Antal nevű rokona gyógyítja, ennél fogva a szúnyogcsípés tüneteit minden olyan készítmény enyhíti, ami antihisztamint tartalmaz. Szun Cu tanácsát követve azonban lépjünk egy fokkal előrébb és nézzük meg, hogy mitől jön a sok hisztamin – hát a megjelent idegen fehérjéktől. Na mit nem szeret még nagyon a fehérje úgy általában? A forróságot (gondolj csak a tojásfőzésnél koaguláló fehérjekupacra). Persze az nem megoldás, hogy egy adag lobogó forró vízzel öntsünk le minden szúnyogcsípte bőrdarabot – léteznek erre sokkal lokalizáltabban ható spéci kis kütyük. Ezek elemmel működő eszközök, melyek kb 1 cm² felületet fűtenek fel 50-70 Cº hőmérsékletűre. A forró felületet a csípésre nyomva kicsaphatjuk az idegen fehérjék egy részét, így a viszketés enyhülni fog. Eleink ezt anno egy csepp forró viasz csípésre cseppentésével oldották meg és az is működött – gyertya meg biztos van nálad is otthon.

Riasszunk

A szúnyogriasztó módszerek mind a dögök szaglására apellálnak – valami olyan illatanyag kell, amit ők nem “csípnek”. A boltban kapható rovarriasztószerek legtöbbje dietil-toluamidot és/vagy pikaridint tartalmaz. Ezek megjelenése előtt a diófalevél lefőzött levétől kezdve a savas gyümölcsbe szurkált szegfűszegig sokféle hagyományos módszer volt ismeretes. Számos cimborám esküszik a citromfű és a paradicsompalánta illatának visszatartó hatására is. A nagy bagósok kipárolgása és a durva lábszag is taszítja a vérszívókat, de pusztán ezért ne válj láncdohányossá és moss lábat is rendesen – helyette keressünk emberhez méltó fegyvert.

Csatába!

A fenti hatalmas kanyar után jöjjön a lényeg, ami meglökte a postíró triggert. A geek fejemmel találtam pár hardware-t, nézzük ezeket sorjában.

ThermaCELL Outdoor Lantern ~9000 HUF

Ez a kütyü a konnektorba dugható szúnyogriasztókhoz hasonlatos, csak nem kell hozzá 230V. Ugyanúgy egy lapkát párologtat, csak a párolgáshoz szükséges hőt egy mini gázégő termeli. Az eszköz létezik övre csatolható, illetve asztalra pakolható változatban is. Ez utóbbi lámpás formájú, az aljába 4 db AA elemet pakolva LEDek világítanak benne. A lapka 4 órán át párolog – a gyártó 21 m² szúnyogmentes területet ígér. Múlt hétvégén teszteltük az övre csatolt verziót egy szúnyogos teraszon és működött.

Amplecta AMT 100 ~100 EUR

Ez a cucc az igazi 230 V-ról üzemelő csatakanca: a szúnyogpopulációk rettegett terminátora. Az eszköz tetején egy párologtató kocka van, mely 4 hónapig tolja ki magából a csaliszagot. E mellé áll csatasorba a 360 fokban látható UV fény, mely további csábítást jelent a szúnyogok számára. S ha mindez nem lenne elég, rákapcsolhatsz egy CO₂ palackot is, melyből lassan adagolja az így már kilélegzett levegőnek látszó fullos csalit. Az UV lámpa alatt egy nagy átmérőjű ventillátor található – ez hoz létre egy olyan szívóhatást, amely becuppantja a csapda közelébe repülő dögöket a csapda aljában található kb. 1.5 literes hálóba. Az eszköz dobozára nyomtatott marketing bullshit 1500 m² lefedettséget ígér. A hálóban semmiféle méreganyag nincs, a csapda azt a nagyszerű tényt használja ki, hogy a vérszívóknak 2 órán belül nedvesség (vér vagy növényi nedv) kell, különben elpusztulnak. Brilliáns! Természetesen őt is beteszteltük. A “harcos” 24 órára beállt a kertben a diófa alá. Másnap annyi halott szúnyogot öntöttünk ki belőle a halaknak a kerti tóba, amennyi simán fedezte volna egy standard marhapárizsis zsemle húsigényét (igen, a marhapárizsiban van hús).

Update #20190722: csy kolléga elszánt kutatómunkájának eredményeképpen ráakadt az Aliexpressen egy olyan nyomáscsökkentőre, ami a Sodastream palackokra tekerve lehetővé teszi, hogy azokat CO₂ forrásként használjuk az Amplecta AMT 100-as, illetve bármilyen másik CO₂ csapdaként működő szúnyoggyilkoló gépezetben, aminek 8 mm-es gázcső inputja van. Az infoért egy ország rebeg köszönetet.

Arctic MKS

Pusztán hő és CO₂ alapú (=vegyszermentes), az előző fegyverhez hasonló elven működő elektromos csapda. A beszippantott vérszívókat alacsony feszültséggel azonnal megöli. Nagyon szimpatikus benne, hogy szakaszosan működik, illetve igény szerint egy fotocella segítségével a nappali periódusban szünetelteti az eszköz működését (a szúnyogok szürkülettől hajnalig aktívak, a napsütést nem szeretik annyira). Sajna ez a kütyü jelenleg nem kapható.

Mosquito Magnet 136000 – 556000 HUF

A Mosquito Magnet gépek propán elégetésével termelnek CO₂-t, továbbá Octenolt használnak kémiai csalinak. Az előző két csapdához hasonlóan egy ventillátorral vákumot képezve gyűjtőhálóba szívják a vérszívókat. A palack és a kémiai betét 3 hét non-stop üzemelést tesz lehetővé.

Előzzünk

Culinex Plus Végül, de nem utolsó sorban létezik egy módszer a vérszívó dögök szaporodásának gátlására: a Bacillus thuringiensis nevű baci meggátolja a lárvák kifejlődését. A “fegyver” tabletta formájában kiszerelve kerül forgalomba. Egy tabletta 2-4 hétig hatásos és kb. 200 liter vízre elegendő. Létezik olyan magyar város, ahol a tablettát a szúnyoginvázióra való tekintettel az önkormányzat ingyen osztja a polgároknak. Ha a Te városodban ilyen akcióról még nem hallottál, akkor is érdemes megkérdezni a hely ÁNTSZ-t.

Mac workflow: blogpic HOWTO

A Mac recept Hozzávalók:

  • Acorn – image editor Gus Mueller billentyűzetéből. Puritán, letisztult, szeretem.
  • JSTalk – script bridge, szintén Gustól. Segítségével a scriptelhető OS X alkalmazásokhoz JavaScriptes vagy Objective C-s stílusban írhatsz scripteket.
  • TextExpander – (akár) scriptelhető text makrózó tool, mely számos változó használatát (dátum és idő, clipboard tartalom, kép, kurzorműveletek) engedi meg.
  • WordPress FancyZoom plugin – Cabel Sasser JavaScriptben írt remeke. Ő állítja elő az oldalba pakolt img HTML tag-ekhez a zoom effektet, amikor a thumbnailre klattyolsz.
A workflow A dolog onnan indul, hogy a kívánt képet 1280×1280 max méretre cropolom, majd lementem jpg formátumban. Az így előkészített képet bedobom az Acorn-ba, majd lefuttatom a Framer fedőnevű JSTalk scriptet, aki előállít egy 500 pixel széles smallDoc.png thumbnail image-et a beledobott képből. A két képet feltöltöm a WordPressbe, majd egy TextExpander makró segítségével berámolom a postba a thumbnailhez és az alatta levő image-hez szükséges HTML kódot. Nézzük meg a JSTalk scriptet és a TextExpander snippetet, aztán jöhet a kovászos ubi receptje. Elsőként itt a script – ehhez túl sok közöm nincs, Gus csomagolta a JSTalk példák közé, nekem meg nagyon megtetszett az eredménye. Persze lehetne ez egyszer CSS3, de amíg nem, addig jó ez így is, hardcoded módon:
var acorn = [JSTalk application:"Acorn"];
// var doc = acorn.open_("/path/to/SomeImage.jpg");
var doc = [[acorn orderedDocuments] objectAtIndex:0];
// scale our image down
[doc scaleImageToWidth:492];
var image = [[[NSImage alloc] initWithData:[doc dataRepresentationOfType:"public.png"]] autorelease];
// close the doc, since we've already got the data we need.
[doc close];
var bitmap = [image bestRepresentationForDevice:nil];
var extent = NSMakeRect(0, 0, [bitmap pixelsWide], [bitmap pixelsHigh]);
var xOffset = 5;
var yOffset = 35;
var curveHeight = 15;
var imageYOffset = 10;
var whiteBorderWidth = 4;
var doubleBorderWidth = whiteBorderWidth * 2;
var newSize = NSMakeSize(extent.size.width + (whiteBorderWidth * 2),
                         extent.size.height + imageYOffset + (whiteBorderWidth * 2));
var newImage = [[[NSImage alloc] initWithSize:newSize] autorelease];
[newImage lockFocus];
[[NSGraphicsContext currentContext] saveGraphicsState];
var shadow = [[NSShadow alloc] init];
[shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:.6]];
var shadowOffset = NSMakeSize(0, -(yOffset + 5));
[shadow setShadowOffset:shadowOffset];
[shadow setShadowBlurRadius:5];
shadow.set()
// make a curved path, at the bottom of our image.
bezierPath = NSBezierPath.bezierPath();
[bezierPath moveToPoint:NSMakePoint(xOffset, 40 + yOffset)];
[bezierPath lineToPoint:NSMakePoint(extent.size.width - (xOffset) + doubleBorderWidth, 40 + yOffset)];
[bezierPath lineToPoint:NSMakePoint(extent.size.width - (xOffset) + doubleBorderWidth, 10 + yOffset)];
[bezierPath curveToPoint:NSMakePoint(newSize.width / 2, curveHeight + yOffset)
           controlPoint1:NSMakePoint(extent.size.width - (xOffset), 10 + yOffset)
           controlPoint2:NSMakePoint(newSize.width *.75, curveHeight + yOffset)];
[bezierPath curveToPoint:NSMakePoint(xOffset, 10 + yOffset)
           controlPoint1:NSMakePoint(newSize.width *.25, curveHeight + yOffset)
           controlPoint2:NSMakePoint(xOffset, 10 + yOffset)];
[bezierPath fill];
// get rid of our shadow
[[NSGraphicsContext currentContext] restoreGraphicsState];
// draw a white border
[[NSColor whiteColor] set];
[[NSBezierPath bezierPathWithRect:NSMakeRect(0, imageYOffset, newSize.width, extent.size.height + whiteBorderWidth * 2)] fill];
// draw our gray border around the white border
[[NSColor lightGrayColor] set];
[[NSBezierPath bezierPathWithRect:NSMakeRect(.5, imageYOffset + .5 , newSize.width - 1, (extent.size.height - 1) + (whiteBorderWidth * 2))] stroke];
// NSImage takes into account dpi of the image.  So we force it's size, to avoid small images.
[image setSize: extent.size];
// draw our image
[image drawAtPoint:NSMakePoint(whiteBorderWidth, imageYOffset + whiteBorderWidth)
          fromRect:NSMakeRect(0, 0, extent.size.width, extent.size.height)
         operation:NSCompositeCopy
          fraction:1];
[newImage unlockFocus];
var smallDoc = [[acorn sharedDocumentController] newDocumentWithImageData: [newImage TIFFRepresentation]];
[[smallDoc dataRepresentationOfType:"public.png"] writeToFile:"/Users/fns/Desktop/smallDoc.png"];
[smallDoc close];
Ez pedig a TextExpander snippet:
<a href="//fns.pappito.com/files/%Y/%m/%clipboard.jpg"><img src="//fns.pappito.com/files/%Y/%m/%clipboard.png" alt="" title="%clipboard"/></a>
A TextExpander snippetnél mindössze annyi dolgom van pluszban, hogy a kép nevét a clipboardba másoljam. Ez meg OS X alatt egy Enter a filenéven, majd ⌘C és Sanyi. A kovászos ubi recept Egy 5 literes befőttes üvegbe kb. 3 kiló uborka fér. Az üveget forró vízzel kimosom, majd elfektetem, hogy könnyebb legyen bele pakolni. Az uborkák két végét levágom, hosszában 4-5-6 vágást ejtek rajtuk. Nekiállok úgy bepakolni az uborkákat, hogy függőlegesen álljanak majd az üvegben, mikor érleli őket a Nap. Egy réteg uborka után egy nagy adag kaprot teszek be az üvegbe (persze csak akkor, ha épp nem Pappitonak készül a cucc :)), majd megint ubi és ez így megy addig, amíg meg nem telik a bödön. Óvatosan felállítom az üveget, majd 2 púpos evőkanál sót teszek a tetejére. Felforralok 3-4 liter vizet és egy merőkanállal rákanalazom az uborkákra, amíg tele nem lesz az üveg. A végén egy szelet kenyeret nyomok a tetejébe, letakarom az egészet egy tányérral és megy ki a Napra, 3-4 napig. Mikor a lé már zavaros, leszedem a kenyeret, de 1-2 napot adok még neki a melegen, hadd érjen össze. ]]>

GIRO számlaszám ellenőrző algoritmus

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define INPUTLEN 27
int main() {
	char szlaszam[INPUTLEN];
	int o, i, digit, sum, cs, cc;
	int mul[] = {9, 7, 3, 1, 9, 7, 3};
	printf("GIRO számlaszám 00000000-00000000-00000000 alakban: ");
	fgets(szlaszam, INPUTLEN, stdin);
	for (o = 0; o < 19; o += 9) {
		sum = 0;
		for (i = 0; i < 7; i++) {
			digit = szlaszam[o + i] - '0';
			sum += digit * mul[i];
		}
		cs = szlaszam[o + 7] - '0';
		cc = 10 - (sum % 10);
		printf("checksum: stored =  %d vs calculated = %d -- %sVALID\n", cs, cc, ((cs == cc) ? "" : "IN"));
	}
	return 0;
}
]]>