Author Archives: eFi

Mac workflow: Open source URL, v2

A probléma Leszedtél egy file-t valahonnan, a browser beletette a file metaadatai közé, hogy honnan kotortad azt elő a neten és most vissza kellene találnod a forráshoz.

A megoldás

Korábban ezt megcsináltuk Thingiverse-specifikusra, de nem tetszett, hogy a script önkényesen dönt, hogy nekem épp melyik URL kell, ezért faragtam belőle popup menüset, amivel Te választhatsz, hogy melyik metában tárolt URL-t nyissa a Safari. Lustáknak itt a bezippelt workflow, aki meg olvasgatná itt a postban a forrást az ide nézzen:
on run {input, parameters}
	set theFile to (input)
	set aFile to quoted form of POSIX path of theFile
	set theURL to (do shell script "mdls -name kMDItemWhereFroms -raw " & aFile)
	if theURL is "(null)" then -- no attribute
		set theURL to "(URL info not found)"
		set theMessage to ""
	else
		set URLs to {}
		repeat with i from 1 to the count of paragraphs of theURL
			set p to paragraph i of the theURL
			set firstQ to findFirst(p, "\"")
			set lastQ to lastOffset(p, "\"")
			if firstQ > 0 and lastQ > 0 and (lastQ - firstQ > 1) then
				copy characters (firstQ + 1) through (lastQ - 1) of p as string to q
				set end of URLs to q
			end if
		end repeat
		set selectedURL to false
		if (count of URLs) = 1 then
			set selectedURL to (item 1 of URLs)
		else if (count of URLs) > 1 then
			set selectedURL to (choose from list URLs with title "Open URL" with prompt "Select URL to open:" without multiple selections allowed)
		end if
		if (selectedURL is not false) then
			tell application "Safari"
				tell window 1
					set current tab to (make new tab with properties {URL:selectedURL as text})
				end tell
			end tell
		end if
	end if
	return input
end run
on findFirst(str, findString)
	-- HAS (http://applemods.sourceforge.net/mods/Data/String.php)
	local str, findString, len, oldTIDs
	set oldTIDs to AppleScript's text item delimiters
	try
		set str to str as string
		set AppleScript's text item delimiters to findString
		considering case
			set len to str's first text item's length
		end considering
		set AppleScript's text item delimiters to oldTIDs
		if len is str's length then
			return 0
		else
			return len + 1
		end if
	on error eMsg number eNum
		set AppleScript's text item delimiters to oldTIDs
		error "Can't findFirst: " & eMsg number eNum
	end try
end findFirst
on lastOffset(the_text, char)
	try
		set i to 1
		set last_occurrence to 0
		repeat count of the_text times
			if item i of the_text as string = char then
				set last_occurrence to i
			end if
			set i to i + 1
		end repeat
	on error
		return 0
	end try
	return last_occurrence
end lastOffset
]]>

A hordozható adattárolókról

Józsi ajánló posztját, így azt gondoltam, pont passzolna mellé a dolog, úgyhogy vágjunk bele! Ha a Macintoshodon külső storage-ről szeretnél adatot elérni, az alábbi interfészek állnak rendelkezésre:

  • optikai meghajtó – nem jó. Kicsi, elavult, sérülékeny, lassan írható.
  • SD kártya – majdnem oké. Nem a leggyorsabb és a relatíve nagy kapacitás még drága, de kicsi, univerzális és viszonylag jól bírja a gyűrődést.
  • USB2 – lassan már nem oké. A leguniverzálisabb, de ahogy nő a storage igény, úgy érzed egyre lassabbnak. Cserébe viszont lassan a kávéfőzőn is van USB slot.
  • FW800 – nem oké. Sebességben veri az USB2-t, viszont minden ilyen csatlakozóval ellátott eszköz megkapja az AppleTaxot, amit a “buziAlmás” felhasználó fizet meg. Ezért cserébe a penetrációja is sokkal kisebb.
  • Gigabit Ethernet és WiFi – nem oké. Kevés a sebességük.
  • USB3 – oké. A sebesség már az, ami tisztességesnek mondható a mai (=2013-as) mércével, eszköz van bőven, az ár is megfelelő, viszont az Apple csak 2012 táján kezdett neki a 2008-ban tervezett standard implementálásának.
  • Thunderbolt – oké. A sebesség brutális, a szabvány tartalékai szintén, ám itt minden eddiginél irgalmatlanabbul súlyt le az AppleTax: az amúgy is méregdrága Thunderbolt csatolós eszközökhöz a gyártó licencspórolási céllal nem mellékeli a Thunderbolt kábelt, ami a usernek akár 10kHUF nagyságrendű újabb lehúzást is jelenthet (lásd a printerkábelek kispórolása anno, csak ez ma még gusztustalanabb mértékben megy).
A teljesség kedvéért: fentiekhez non-Apple világban csapódna még az eSATA. Megvan a lista, nem is elemezgetném, hanem inkább elmondom az általam talált megoldásokat.

The Nifty MiniDrive

Kickstarter project. A lényege, hogy a ma már minden Mac notebookon jelen levő SD kártya slotba egy olyan micro SD kártya foglalatot gyártsanak, ami teljesen belesimul a gép síkjába: Micro SD kártyák jelenleg 256 GB kapacitásnál tartanak (igaz eddig csak noname-ben láttam ekkorát, a SanDisk 64 gigánál tart). A Kickstarter project 2012 augusztus elején zárult, az utolsó infók szerint 2013 január végén indul a szállítás.

Seagate FreeAgent GoFlex Thunderbolt Adapter

A Seagate a hordozható GoFlex HDD családjához fejlesztette ezt a Thunderbolt adaptert: thunderbolt-portable-adapter Noha erről a gyártó sehol nem tesz említést, az adapter természetesen egy közönséges 2.5″-os SATA HDD csatlakozó. Ennek megfelelően bármilyen vele kompatibilis storage-et rádughatsz, nem kell annak GoFlex dobozban lennie. Egy tetszőleges méretű SSD-t ráapplikálva lényegében lebomlanak a sebességhatárok és brutális teljesítményű mobil adathordozót kaptál a kezedbe. Just think about it.]]>

3D nyomtatás: az Apple Lightning connector esete az Ultimakerrel

illesztések méretváltozásaival kell megküzdenem. Jó példa erre az új Apple Lightning csatlakozónak szánt furat esete – nézzük is meg! Az átlátszó tokban lakó iPhone 5 számára szerettem volna gyártani egy bármire felcsavarozható dokkot. A töltőkábel befogatását ugyanúgy szerettem volna megoldani, ahogy anno a Brodit dokkolót módosítottam. Ilyen lett az ojjektum: iPhone5-screwable-dock-model A kábelvezető lyuk elkészítéséhez szépen kimértem a Lightning csatit: egy 7.7×4.6mm-es, lekerekített sarkú téglalapba pont passzolni fog.Mivel korábban is megküzdöttem már az extruder nyomtatásból fakadó kisebb pontatlansággal, ezért azt gondoltam, jó ötlet, ha csak felkerekítem egész mm-ekre a befoglaló téglalapot és csinálok egy 8×5 mm-es, 2.5 mm-re kerekített lyukat. Meg is csináltam, “okosan” beleterveztem a modellbe, majd nyomtattam egy egy és háromnegyed órásat – íme az eredmény: lightning-hole1-too-tight A Lightning csatinak szűk lett a járat. Még ekkor sem jött meg az eszem, hanem inkább gyártottam egy 9×7 mm-es furatot. Persze ezt is rögtön a modellbe, újabb ~100 perc elpazarlásával: lightning-hole2-too-loose A csati most már elfért a vájatban, csakhogy az most meg mindkét irányban túl bőnek bizonyult, ettől pedig elfordulhat a csatlakozó, ami nagyon nem jó. Harmadik nekifutásra megjött az eszem és legyártottam egy 1 mm vastag kis lapkába az újabb furatot, ezúttal 8.5×5.5mm méretben: lightning-hole3-too-loose Az eredmény ismét egy laza vájat, de már közeledtünk az igazihoz. Lemértem, hogy mekkora lett a tervezetthez képest a nyílás és csodák csodája, pontosan a CAD-ben beállított méretet láttam a tolómérőn. Még 0.25 mm-rel csökkentettem a méreteket, a kerekítést 2.63 mm-re vettem, majd jött egy újabb print próba és láss csodát: lightning-hole4-perfect A szinte tökéletesre sikerült lyukat visszamérve az derült ki, hogy az 7.7×4.7 mm-esre sikerült, azaz az pontosan akkora, amekkorára szükségem van. A méretek gonosz ugrándozását a 0.4 mm vastag PLA alapanyag okozza. Sajnos pontos recept nincsen arra vonatkozóan, hogy mekkora tűréssel kellene számolni. A tanulság annyi, hogy a végleges modell tervezése előtt érdemes mintafuratokat készíteni, amelyeket pillanatok alatt kinyomtathatsz és ellenőrizhetsz, hogy a hőn áhított rést mennyire fedi a valóságos izéd. ]]>

Mac workflow: Open source URL service

erre. Ahogy töltögettem le Karácsony előtt a sok printelni való STL file-t a Thingiverse-ről, egyre többször jött elő, hogy meg kellene újra néznem valamit az STL file-t tartalmazó oldalon újra. Szerencsére OS X alatt a kMDItemWhereFroms metadata attribútumba bekerül a letöltés URL-je, amit én néha meg-meg néztem már korábban is egy vérbuta shell scripttel, ami nálam eddig így nézett ki:

#!/bin/sh
mdls -name kMDItemWhereFroms -raw "$*"
Ez egy zárójelek közé zárt comma delimited URL listát ad vissza. Nekem ebből az URL listából az utolsó kellene (a Thingiverse Amazon S3 storage-et használ, az első URL a storage-ra mutat, míg a második az eredeti Thingiverse oldalra), mégpedig minél kevesebb szüttyögéssel, azaz monjduk egy Service formájában. Némi rövid googling után dobta a gép a közel konyhakész scriptet a MacScripter oldaláról, már csak hozzá kellett ragasztani az Automator Service script számára szükséges paraméterátvételt és kész is:
property getSpecific : false -- show the specific download URL?
on run {input, parameters}
	set theFile to (input)
	set aFile to quoted form of POSIX path of theFile
	set theURL to (do shell script "mdls -name kMDItemWhereFroms -raw " & aFile)
	if theURL is "(null)" then -- no attribute
		set theURL to "(URL info not found)"
		set theMessage to ""
	else
		if getSpecific then -- get the first item (the download URL)
			set theURL to paragraph 2 of theURL
			set here to offset of "\"" in theURL
			set theURL to text (here + 1) thru -3 of theURL -- the download URL
			tell application "Finder"
				set name of theFile to theURL --I have no idea what im doing
			end tell
		else -- get the last item (the page/site URL)
			set theMessage to "page/site "
			set theURL to paragraph -2 of theURL
			set here to offset of "\"" in theURL
			set theURL to text (here + 1) thru -2 of theURL
		end if
		tell application "Safari"
			tell window 1
				set current tab to (make new tab with properties {URL:theURL})
			end tell
		end tell
	end if
	return input
end run
Ebből nagyjából két klikk az Automator workflow megalkotása, de ha ezzel bajban lennél, akkor
  • konyhakész service zippelt változata leszed innen
  • bemásol a ~/Library/Services/ folderbe, majd ott kicsomagol
]]>

Apple Maps for iOS vs Google Maps for iOS IRL teszt

iPod illesztőkábel. Az út elején erre a kábelre csatlakoztattuk az iPadet, míg egy mezei szivargyújtós töltő töltötte az iPhone akksiját. Sokáig nem tudtuk mire vélni, hogy mitől bolondult meg az iPad: bármelyik navigációs alkalmazást indítottuk el, mind össze-vissza dobálta a pozíciónkat, fogalmuk nem volt, milyen irányba halad épp az autó. Közel 10 perc küzdelem után jöttünk rá, hogy a problémát a Pioneer CD-IU51V kábele okozza: amint lehúztuk az iPad-ről, a GPS újra magához tért és minden ment simán. Summa summarum, ha ilyen bajod van, mindenképp érdemes a töltőkábelre is gyanakodni.]]>

3D nyomtatás – tuning v2

Fények Elképesztő élmény, amikor ez a szerkezet dolgozik. Jópár hónap után is még mindig ugyanaz van: elindítom a printet, megvárom, míg korrektül leteszi az első layert (ezt egyébként mindenképp illik megtenni), de még jó darabig ezután sem ereszt a gép. Egyszerűen annyira lenyűgöző, ahogy rohangál a nyomtatófej, hogy alig bírom otthagyni. Mindezt még lehet fokozni azzal, ha a tárgyasztal rendesen be van világítva. Persze a sok oldalról érkező fény a kész ojjektumok fényképezésekor sem jön rosszul. Két nekem szimpatikus világítós hackot is találtam a Thingiverse-en. A hullo3d által készített mount az IKEA Dioder ledcsíkját applikálja fel a nyomtatő felső szélére: lights-dioder mpatoulachik pedig az IKEA Ledberg ledcsíkot pattintja be a gép belső keretébe vertikálisan: lights-ledberg Az így felpakolt 4 ledcsík sok fényt ad, sok irányból.

Etetés

A feeder blokkot mára már három hack tökéletesíti. A műanyagszálat továbbító tengely kézzel történő megtekerését segíti bkubicek “feltétje”: feeder-screw-extension Ennek akkor lehet jelentőssége, ha épp kiürült a fej és kézzel szeretnénk a már forró extruder fejet etetni. LawrenceJohnston készített egy egyszerű alátétet, amely megakadályozza, hogy a nyomtatás során oda-vissza rángatott műanyagszál magával cibálja az őt körülvevő műanyagcsövet: feeder-tube-fix MoonCactus megoldása a lötyögő feeder mechanizmust szorítja le megfelelően a helyére: feeder-lock

Hűtés

A kedvencem owen hackje. Az Ultimakerhez csomagolt összehajtogatós légterelő vérgagyi ahhoz képest, hogy mennyire fontos a lepakolt réteg minél precízebb hűtése. Owen megoldása nagyon korrekt: cooling Aki még itt nem aludt el, az észrevette, hogy a fenti fotó jobb szélén megjelöltem egy önzáró anyát is. Az úgy volt, hogy Ultimakerék kitaláltak egy új fejet (=hot end v2). Megrendeltem, megérkezett, majd nekiálltam átszerelni. Ehhez a művelethez nagyjából a gép 10%-át kell szétrámolni és vissza… nem mondom, hogy repestem az örömtől. A tevékenységnek a brass pipe törése lett az eredménye, valamint az, hogy a rohadék alsó alumínium blokkban elforgott a hosszú csavar menete. Mivel pont ez a sarok szorítja a teflon blokkot a műanyagszálat továbbító csőhöz, úgy gondoltam, hogy muszáj neki erősen tartani – így került fel rá a most már stabilan tartó önzáró anya.

Övfeszítők

Már a kezdetektől sok panaszkodó userről olvastam, akik folyton a lelazuló ékszíjak miatt sírtak. Eleinte nem is értettem, hogy miről beszélnek, aztán pár órányi nyomtatás után egyszercsak én is azt vettem észre, hogy valóban a kelleténél lazábbak az ékszíjak – nekiálltam hát megoldást keresni. A számomra legszimpatikusabb verziót chasmaker készítette: belt-tensioner Ez lényegében 4 pár szíjfeszítő, különböző méretben. Attól függően alkalmazod a különböző méreteket, hogy mennyire lazák a szíjak. Frappáns, gyorsan installálható és főleg nincs útban akkor sem, ha a fejet valamelyik X vagy Y végállásba kell mozgatni.

XY aligner

A végére egy egyszerű szerszám maradt, jolyboy alkotása: xy-aligner Ez arra jó, hogy az XY tengelyeket két végükön egyforma távolságra eltartva azokat precízen egymáshoz igazíthasd. Nem is értem, miért nincs egy pár ilyen eszköz gyárilag a printer mellé csomagolva. Itt tartunk ma, 2012 végén. Ezúton is szeretném megköszönni a hackek megálmodóinak a modelleket. A következő év is rengeteg izgis 3D print lehetőséget tartogat, különös tekintettel arra, hogy egyre inkább “mit hackeljek műanyagból” szemmel járom a világot. Stay tuned, jövőre folytatom!]]>

3D nyomtatás – öntözünk

A probléma Számos öntözéssel foglalkozó cég forgalmaz csepegtető öntözéshez tervezett kis műanyag mütyüröket – mütyürök alatt most a 3-4 mm átmérőjű vékony öntözőcső különböző irányba történő elágaztatását megoldó műanyag bizbaszokat értjük. Egyfelől ezek a kis műanyag izék meglepően drágák (pl. egy 10 db-os “T” osztó csomag eléri az 1000 HUF-os szörnyeteg árat), másrészt mindig abból az elemből fogyunk ki, ami épp kellene, de nincs otthon. Hogy plasztikusabb legyen, amiről beszélek, itt van példának a Gardena “X” eleme, ami 4 csövet képes összekötni: 4-way-coupling-46-mm-3-16-70c82dfe

A megoldás

Természetesen nyomtatni fogunk – az alábbi megoldás a Gardena által forgalmazott 3/16″-os csőhöz passzol. A tapasztalatom az, hogy ebben a mikrovilágban, ahol a tizezmilliméterek számítanak, sajna az extruder típusú printerek nem túl precízek. Hiába mérem meg 0.1 mm pontosan tolómérővel a belső csőátmérőket és tervezek ennek megfelelően a CAD-ben csatlakozást, a kinyomtatott bigyók rendszerint valamivel kisebbek lesznek, köszönhetően az extruder fejből kilépő 0.4 mm vastag olvadt alapanyagnak. Sebaj, akkor tapasztalati úton kell megtalálni a megfelelő méretet. Nekiálltam kis mintákat nyomtatni és belepróbálni a 3/16″-os mikrocsőbe, és az lett a végeredmény, hogy a 5.6 mm külső átmérővel nyomtatott 3 mm belső átmérőjű csövek megfelelőnek bizonyulnak. Agyaltam egy kört azon is, hogy a Gardena csatlakozókhoz hasonlóan készítsek-e a csővégekre bordázatot. Pár próbálkozás után feladtam, tekintve, hogy a bordák igen bénára sikerültek és itt inkább fontos a precíz zárás, mint a bordázottság (=úgyis kicsi a nyomás). Végül ez lett a próbálkozások végeredménye: microdrip-connectors Egy ilyen szett cirka 40 HUF anyagból áll elő, azaz a legdurvább “X” elem is megáll 10 HUF pénznél, ami azért a bolti bő 10x-es árhoz képest már elgondolkodtató. STL file-ok a Thingiverse-en, VIACAD forrásfile-ok itt.]]>

3D nyomtatás – muslincacsata

fruit fly). Ha rettentő jó szemed van, akkor azonnal kiszúrod, hogy a hím seggén csak 3 fekete csík van, míg a nőstényén 5: muslicasegg vectoricus Téglavörös szemük van, sárgásbarna, 2.5 mm hosszú a testük. Ezen a makrófelvételen elég jól látszik, ki a főnök: fruit fly sex Szobahőmérsékleten nagyjából egy hónapig élnek, a lárva állapotból a kifejlett rovarrá válásig 7-11 nap kell nekik. A 0.5 mm hosszúságú lárvák cukrot és mikroszkopikus gombákat zabálnak. A muslincák hozzánk hasonlóan eukarióták (=valódi sejtmaggal bíró sejtekből épülnek fel), a tudósok örömmel piszkálják emberek helyett inkább az ő génjeiket különböző laborokban. Az ecetmuslinca pechjére a biológiakutatók által az egyik legtöbbet vizsgált élőlény. Igénytelenek, kis helyen tarthatók alacsony költséggel, szén-dioxiddal vagy hűtéssel leszedálva könnyen vizsgálhatóak, rendkívül gyors a generációváltás, igen termékenyek (a nőstény 100 petét rak naponta kb. 20 napon át), ráadásul mindössze 4 pár kromoszómájuk van, plusz a komplett géntérképük 2000 óta kész. A többi rovarhoz képest elég jól látnak (760 egységből összeálló összetett szemük van), a szárnyaikkal 200/sec ütemben csapkodva repkednek. A kis dögöket ki muslicának, ki muslincának hívja – felénk délen az utóbbi dívik. A gyümölcslégy magyar neve a délszláv mušica (=legyecske) szóból ered, a Magyar Helyesírási Szótár mindkét alakot tartalmazza, úgyhogy ezt nem ragozzuk most tovább. Egyszer egy cimborám kérdezte egy vacsoránál, hogy vajon honnan jönnek a kis dögök? Hiszen lehet akármilyen tiszta, jól záró nyílászárókkal megáldott légtér, a muslincák az erjedő cuccok hatására elkezdenek megjelenni. Nos, erre az a válasz marad, hogy a lárváik ott vannak a behordott friss növényi élelmiszereken és az erjedés kapcsolja be rajtuk a turbót. Gyerekkoromban csináltam én is muslincagyárat: fogtam egy 5 literes befőttesüveget (merjünk nagyot álmodni jeligére), tettem bele anyu baracklekvárjából egy keveset (persze a bontott lekvárt már muszáj volt megenni :)) és kapott némi élesztőt, hogy beinduljon rendesen. Az egészet kitettem a napra, majd egy-két óra múlva, mikor már jópár állatka tolta az üvegben az ipart, lefedtem egy harisnyával. Nem kellett egy-két napnál több és az üvegen alig lehetett átlátni, annyi muslinca hepázott bent. Eddig az okosság. Most képezzünk ezekből extraktot, használjuk fel a 3D nyomtatót és gyártsunk ellenük fegyvert! A muslincacsapdánk a varsák elvén alapul: befele könnyen megy az állat, a kijáratot azonban nehezen találja meg. Ehhez egy, a befőttesüvegbe mutató tölcsért gyártunk, mindjárt a befőttesüveg kupakjával egyben: fruitflytrap fruitflytrap-irl Innentől nincs más dolgunk, mint némi csalit tenni az üvegbe, majd rázárni a csapdára a kupakot. Az egész mehet egy konyhapolcra, a kis zavaró legyeknek elsődleges elterelő táplálékul. ]]>