Updates from August, 2010 Toggle Comment Threads

  • Urban 22:40 on 27 Aug. 2010 Permalink  

    Kje so GPS fotoaparati 

    Že leta gledam kako Flickr podpira geotagging (označevanje slik z geografskimi koordinatami); podpira ga Googlova Picasa, Applov iPhoto, in še cel kup drugih programov in platform. Vsaka slika iz fotoaparata že praktično od rojstva digitalne fotografije naprej vsebuje metapodatke v formatu EXIF, kjer je zapisan datum fotografiranja, zaslonka, ISO, in še cel kup drugih parametrov; format EXIF seveda podpira tudi podatke o geografskih koordinatah.

    Kaj čemo lepšega, kot da lahko slike organiziramo ne samo po datumih in obrazih, ampak tudi po lokacijah, kjer so bile narejene (del te priladnosti lahko vidimo v Evernotu, ki prav tako geotagira slike, narejene s telefonom, ki ima GPS).

    Ob predstavitvi programa iPhoto s podporo geografskemu označevanju (cca. 2008) so Applovci na odru mahali s takrat edinim GPS fotoaparatom na trgu: Nikon Coolpix P6000. Nikon je ta model nehal proizvajati, jaz pa kljub kar nekaj googlanja nisem našel kompaktnega naslednika, ki bi imel GPS.

    Canon podobno ne proizvaja prav ničesar z GPS 🙁

    Edini primerki, ki so danes na trgu, so neki Panasonici, Samsungi, Sonyji in ena še kar draga Leica.

    Seveda se nekako le dá. Dobijo se zunanji GPS moduli za resnejše Nikone: slednji imajo konektor za priklop GPSa in nato označujejo slike s pridobljenimi podatki. Za Canon spet revščina.

    Zvita (ampak zame preveč naporna) rešitev je t.i. GPS logger, majhna napravica, ki jo nosiš s sabo med slikanjem. Ves čas spremlja tvoje koordinate in jih shranjuje v spomin, skupaj s točno uro (delovanje GPSa tako ali tako temelji na točni uri, zato ta podatek ni problematičen). Če ima tudi fotoaparat vsaj približno točno nastavljeno uro, lahko post-festum primerjamo uro slike z uro GPS izpiska (loga) in nato v EXIF zapišemo ugotovljene koordinate.

    Seveda pa rabiš s seboj nositi 2 napravi, in vsakič moraš napolniti 2 bateriji. In če ne slikaš, moraš seveda logger ugašati, sicer mu prehitro iztrošiš baterijo. Nič kaj hands-free, vedno je treba na nekaj misliti.

    Seveda porečete, da ima tako ali tako že vsak telefon tudi fotoaparat, opremljen z GPS. Že res, ampak po večletni uporabi iPhona sem se kar nekako sprijaznil, da fotoaparat to pač ni. Vsak trotelaparat ima danes 10+ megapikslov, vsaj za silo uporaben fleš, avtofokus od blizu do daleč, optični zoom, stabilizacijo slike, visoke ISOje, itd. Sklep: tudi najcenejši trotelaparati so nekaj let pred fotkiči v telefonih.

    In zadnjič mi slučajno kapne, zakaj fotoaparati nimajo GPS-a: uporaba mobilnika s tako imenovanim A-GPS1 precej dobro skrije dejstvo, da “hladen” GPS sprejemnik za določitev lokacije rabi (odvisno od tega kdaj je nazadnje vedel točno pozicijo) kjerkoli od 1 do 5 minut, in to ob dobri vidljivosti neba2. V mestu, kjer nebo zakrivajo stolpnice (in pa v zaprtih prostorih), lahko do določitve lokacije ne pride zelo dolgo (ali celo nikoli).

    To pomeni, da je za uporabo pri dopustniškem fotografiranju (prižgeš fotoaparat — slikaš — ugasneš) GPS brez asistence praktično neuporaben.

    Drug razlog, sicer zame (ta hip) precej manj problematičen, pa je gotovo zasebnost. Predstavljam si, da bi marsikoga motilo, če bi izvedel, da je malomarno pošiljal okrog svoje slike, ne da bi se zavedal, da lahko iz njih vsakdo ugotovi lokacijo njegove hiše, vikenda, delovnega mesta, otroškega vrtca, itd. Ampak mlajša populacija, ki že danes na internetu objavlja vse živo, s tem gotovo ne bi imela prevelikega problema.

    1. assisted GPS, kjer modulu GPS približno lokacijo pomaga najti neka druga tehnologija, recimo lokacija bazne postaje, oz. naprava dobi že kar GPS almanahe in točno uro preko podatkovne povezave []
    2. podatki za nekaj realnih naprav, v odvisnosti od časa zadnjega fixa: http://www.pocketgpsworld.com/ttffcomparisons.php []
     
  • Urban 08:24 on 21 Aug. 2010 Permalink  

    Zeleni laserski kazalnik 

    Če mislite, da so rdeči laserski kazalniki uporabni (za kazati po tabli), počakajte, da vidite zelenega.

    Podnevi ne bo velike razlike — v dobrih svetlobnih pogojih v naših očeh najbolje funkcionirajo čepki, to so receptorske celice, ki zaznavajo barve. Človeško oko se je po več milijonih let evolucije razvilo tako, da je najbolj občutljivo prav tam, kjer ima največji izsev naša glavna luč — Sonce. To je pri rumenozeleni barvi oz. valovni dolžini okrog 550 nanometrov.

    Če pa je svetlobe malo, so čepki praktično slepi. Takrat vskočijo paličice, to so receptorji, ki so posebej prilagojeni za slabe svetlobne razmere. Paličice imajo samo en tip receptorja, zato lahko zaznavajo samo intenziteto svetlobe, ne pa tudi barv.

    Na spodnji sliki vidimo, da paličice svetlobo zelene barve zaznavajo (takole čez prst) ranga 100x bolje kot svetlobo rdeče barve. (Rdeči laserski kazalniki ponavadi sevajo pri 650nm, zeleni pa pri 532nm; glej zeleno in rdečo piko).

    Zato pri rdečem kazalniku moči 5mW vidimo samo rdečo piko. Pri zelenem enake moči, pa je v bližini osi zaradi sipanja svetlobe lepo viden tudi žarek, in to je strašno uporabno za pokazat kakšno zvezdo. (Tudi rdeč žarek je viden, ampak moraš biti že tako blizu osi, da ti praktično sveti v oči. Zeleni je za razliko od tega viden v radiju par metrov).

    Na tej sliki recimo kažem na srednjo zvezdo v Orionovem pasu.

    Zeleni 5mW pointer je z Dealextreme.com, za pičlih $10 + free shipping. Obvezno opozorilo: laser ni igrača, sploh pa ne nad 5mW. Nikoli ne sveti folku v oči1.

    1. Čeprav.. pri vidni svetlobi vsaj refleksno zamižimo. Pri IR laserju pa ne bi. Zato nikoli ne sveti folku v oči, še zlasti ne z nevidnim IR laserjem 🙂 []
     
  • Urban 21:51 on 19 Aug. 2010 Permalink  

    Lifestream in content stream 

    Vedno težje spremljam kje vse puščam svoj content — sprobal sem že 101 platformo za shranjevanje, deljenje ali organiziranje informacij, kak ducat pa jih tudi redno uporabljam.

    Poglejte kaj mislim: imam blog za resne poste, fotoblog za izbrane slike, Picaso za malo manj izbrane slike, še kakšen blog za čačke, Google reader shared feed, spam blog na Tumblrju, Twitter za mini statuse, Delicious za bookmarke, Youtube za favoritanje posnetkov, Instapaper za daljše članke, Evernote za zapiske, Dropbox za fajle, pa še par platform ki jih ne uporabljam zares za posredovanje vsebin (Facebook, Flickr, LinkedIn), itd., itd.

    Večina od teh storitev je pri meni zapolnila kakšno res specifično nišo. Spam postov nočem objavljati na glavnem blogu, hkrati pa jih ne morem sharati na Google Readerju (vsaj dokler niso napisani). Sharanih postov na Google Readerju — skupaj z duhovitim komentarjem, za katerega porabim več časa kot upam priznati in včasih naraste že skoraj v svoj post — pa tudi ne morem nikomur poslati kot link, ker pač nimajo permalinka (fail).

    Ta vedno večja množica opcij, ki se vse bolj prekrivajo, mi počasi že začenja iti na živce (paradoks izbire: sedaj se moram pred vsakim sharanjem še odločati, kaj bi bila najprimernejša platforma 🙂 ).

    Zares grdo pa postane, ko hočem kaj najti. Kje sem zadevo napisal, sharal ali komentiral? Dostikrat stvari hitreje na novo najdem na Googlu, kot da se prebijem čez vse svoje storitve in eno po eno preiskujem oz. ugibam ključne besede.

    In nenazadnje: storitve crkujejo1; dogajajo se zlorabe, zapirajo se accounti, in hitro lahko ostaneš brez podatkov2. Podatki pa so vredni toliko, kot je bil vreden čas, ki si ga porabil, ko si jih ustvarjal.

    Zaradi vseh naštetih razlogov sem čutil silno potrebo po tem, da ves svoj content stream nekako zberem vkup. Pa sem ga (večino).

    Najprej disclaimer: lahko bi izbral lažjo pot in inštaliral WP lifestream. Tako bi dobil strašno fin lifestream, z lepimi ikonami. (Sicer precej bolj namenjen agregaciji statusov, manj pa arhiviranju pravega contenta).

    Ker pa ga seveda nisem našel na prvi strani prvega searcha, sem se odločil za agregiranje RSS-ov z WP-o-Matic-om. Ta omogoča, da vse svoje smetenje po raznih platformah potegnem v svoj posebej za to narejen WordPress kot polnokrvne poste. S tem dobim tudi zastonj search in arhiv celotne zgodovine (in ja — WP-o-Matic zna cachirati tudi slike).

    Glede na to, da je vsa dosedanja vrednost v preteklih objavah, je bilo nujno poskrbeti za kompleten izvoz vseh starih vsebin. S tem pa je bilo več dela kot sem mislil.

    Štartal sem z Delicious.com, kjer imam 3000+ javnih bookmarkov (privatnim se zaenkrat odpovem). Delicious preko RSS daje na voljo samo največ 100 objav, lahko pa jih dobiš v celoti na spodnjem linku.

    https://api.del.icio.us/v1/posts/all

    Seveda so v delicious XMLu in ne v RSS, zato sem jih s spodnjo quick’n’dirty Ruby skripto prepisal v RSS ter nato z WP-o-Maticom importal kot file s svojega strežnika. (Skripta z if-om v 18. vrstici tudi izloči vse privatne bookmarke).

    require 'rexml/document'
    include REXML
    
    data = open('all.xml')
    xml = Document.new(data)
    root = xml.root
    
    puts '<?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/">
      <channel>
        <title>Delicious</title>
        <link>http://delicious.com/urbans</link>
        <description>Delicious bookmarks</description>
        <atom:link rel="self" type="application/rss+xml" href="http://feeds.delicious.com/v2/rss/urbans?count=15"/>'
    
    count=1
    root.each_element do |e|
    	if e.attributes["shared"].to_s != "no"
    		desc = "<description>" + e.attributes["description"].to_s + "</description>"
    		puts "<item>
          <title>#{e.attributes["description"].to_s}</title>
          <pubDate>#{e.attributes["time"].to_s}</pubDate>
          <guid isPermaLink=\"false\">http://delicious.com/url/#{e.attributes["hash"].to_s}#urbans</guid>
          <link>#{e.attributes["href"].to_s}</link>
          <dc:creator><![CDATA[urbans]]></dc:creator>
          <comments>http://delicious.com/url/#{e.attributes["hash"].to_s}</comments>
          <wfw:commentRss>http://feeds.delicious.com/v2/rss/url/#{e.attributes["hash"].to_s}</wfw:commentRss>
          <source url=\"http://feeds.delicious.com/v2/rss/urbans\">urbans's bookmarks</source>
            #{desc}
          </item>"
    		count+=1	
    	end
    end
    
    puts '</channel></rss>'
    

    Naslednji je na vrsti Google Reader. Z malo brskanja najdemo tale URL:

    http://www.google.com/reader/public/atom/user%2F{USER_ID_HERE}%2Fstate%2Fcom.google%2Fbroadcast?r=n&n=100000

    Zamenjati je treba {USER_ID_HERE} z našim Google Reader user idjem. Naj vas ne zavede tako kot mene — to ni ime vašega accounta. Dejansko se rabiš zlogirat v Reader, kliknit Sharing settings in skopirat numeričen user id (slika).

    Potem lahko številko n nastavimo na poljubno visoko in importamo celotno zgodovino (Yay, Google). Samo ne pozabit zbrisat potem tega joba in narediti enega, ki vleče samo 10 itemov, da ne bo WP-o-Matic vsakič nalagal vseh itemov.

    Za WordPress je bilo najhitreje, da sem začasno povečal output RSSa na dovolj veliko številko (Settings / Reading / Syndication feeds show the most recent n items).

    Pri Twitterju lahko potegnemo preko RSS-a do 200 updatov, če na konec RSS URL-ja dodamo ?count=n. Za več bi bilo treba kodirat in uporabit API.

    Pri parih zadevah pa sem imel tudi srečo, da še ni prav veliko objav in sem vse potegnil kar preko običajnega RSS-a.

    Saga še ni končana, precej je še storitev, ampak nekako po Paretovem pravilu sem podelal tistih 20% za 80% izkupička, tako da iskanje in permalinkanje delata zelo zadovoljivo — zadeve pa imam zdaj seveda na svojem serverju in jih lahko v prihodnje uporabim tudi za trening kakšnega bayesovega filtra (recimo za rangiranje blogpostov, ki jih pregledujem).

    Update (15.9.2010): WP-o-matic mi vsake toliko povsem naključno podvaja objave. Izgleda, da gre za nek long-standing bug, delno odpravljen, v enih primerih pa še vedno nagaja. Na hitro sem pogledal kodo in plugin res preverja unikatnost objave glede na hash, nisem pa naprej debugiral kje se zalomi, ker je napaka preveč sporadična. Kot rešitev sem zato inštaliral plugin Duplicate Post Eraser.

    1. Sajt Ma.gno.lia je tekel na enem ne-backupiranem Macu mini, in ko je ta izdihnil, so vsi uporabniki ostali brez bookmarkov []
    2. da ne omenjamo, da tudi linki umirajo; zanimiv eksperiment bo, ko enkrat preverim, koliko od mojih 3000 bookmarkov na Deliciousu še kaže na žive linke. []
     
    • dare 15:04 on 24 Aug. 2010 Permalink

      “Podatki pa so vredni toliko, kot je bil vreden čas, ki si ga porabil, ko si jih ustvarjal.”

      Love this.

    • dare 15:06 on 24 Aug. 2010 Permalink

      Drugač pa super, tole si bom tut jaz zrihtal. Nisi pa nič elaboriral kaj je narobe z WP-Lifestreamom?

      Naslednja naloga: na enem mestu zberi vse komentarje na vse sharane zadeve 🙂

    • Urban 17:32 on 24 Aug. 2010 Permalink

      WP Lifestream je super. Samo da sem štartal s temle, pa kasneje tud nisem več probaval, če bi se dalo zrihtat search, shranjevanje celotnih postov, import zgodovine in cachiranje slik.

      Drugače pa za commente še najbližje pride Disqus, ampak za sajte ki ga nimajo (recimo tale), to odpade :s .. Drugače pa nimam ideje kako bi sploh iskal commente; pri WP se načeloma lahko naročiš tud na commente na posameznem postu, ampak to niso samo tvoji.

    • dare 23:24 on 31 Aug. 2010 Permalink

      evo, zdele sem se cist slucajno spomnil, da sem ti pustil komentar in da si mogoce kaj odgovoril 🙂

      dost neucinkovita komunikacija, ce mene prasaste

c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel