Mozaik.

11 Jun, 2009

Dilbert iskalnik

Posted by: Urban In: programiranje

Rad čitam Dilbert stripe, ker tu pa tam zadanejo žebljico na glavico. Nekaj časa sem si ta boljše shranjeval, našel pa nikoli točno tistega, ki bi ilustriral kakšno še posebej absurdno situacijo. V takih trenutkih sem si želel storitve, v kateri bi lahko brskal po arhivu in iskal stripe po tekstu in junakih.

Ko sem pred časom preverjal, se tega še ni dalo, zato sem se napravil zadevo narediti sam. Danes obstajata že 2 podobna sajta (pa jih žal ne znam uporabljat — mogoče sta namenoma prekomplicirana, da preveč očitno ne kršita pravic), spodaj pa opisujem svoj poskus, ki sem se ga lotil že dolgo nazaj.

Izhajal sem iz arhiva sličic, ki ga nekdo pridno fila. K sebi sem zložil vse slike in se namenil na njih narediti OCR. To je dokaj težko, ker je resolucija slaba, font pa majhen in na roko napisane sorte. Sprobal sem cel kup komercialnih in nekomercialnih OCR-ov (tudi tesseract, ki se je obnesel porazno). Za silo sprejemljiive rezultate sem dobil z Microsoft Office Document imaging OCR, ki je del Offica, in se ga da kontrolirati tudi softversko. Na hitro sem zložil skupaj par vrstic VB6 kode in zakrožil po slikah.

Private Sub Command1_Click()

  Dim miDoc As MODI.Document
  Dim File As String

  sPath = "f:dilbert"
  File = Dir$(sPath & "*.jpg")
  Do While Len(File)
      Label1.Caption = "Processing " & File
      DoEvents
      Set miDoc = New MODI.Document
      miDoc.Create sPath & File
      miDoc.OCR MODI.MiLANGUAGES.miLANG_ENGLISH, False, True
      Open sPath & File & ".txt" For Output As #1
      Print #1, miDoc.Images(0).Layout.Text
      Close #1
      File = Dir$
  Loop
  Label1.Caption = "Finished"
End Sub

Da bi izboljšal rezultate, sem poskusil po FBI-jevsko izboljšati kvaliteto slike. Naredil sem Photoshop akcijo, ki je povečala velikost in nato naredila sharpen, za nameček pa še spremenila vodoraven strip v navpično postavitev. Akcijo sem uporabil na celem direktoriju (z manjšimi problemi pri določanju imen izhodnih datotek), nato pa še enkrat naredil OCR.

Rezultat je bil mnogo boljši, ampak še vedno s precej napakami. Obupal sem in raje poiskal user-generated transkripte in jih napopal v bazo kot dodaten stolpec. Voilà.

02 Jun, 2009

Processing.org testna vožnja

Posted by: Urban In: programiranje

Dostikrat sem že videl hude vizualizacije, narejene s Processing.org, čez vikend pa sem zadevo tudi sam probal. In huda je.

Primeri, ki so v distribuciji, pokrivajo vse od 2D in 3D animacij, do zajema in vizualizacije zvoka in manipulacije videa. Na neodvisnem sajtu OpenProcessing.org pa najdemo javen repozitorij številnih dobrih vizualizacij/animacij s pripadajočo kodo.

Processing je osnovan na Javi, zato pišemo javansko kodo. Na voljo pa je cel kup konstruktov, specifičnih za vizualizacijo, kar zelo poenostavi programiranje. Rezultat se dá exportati kot applet (tole spodaj) ali kot Java-based executable aplikacijo za Win/Linux/MacOS.

Tale je čisto moj, rezultat parurnega eksperimentiranja.
(Klikni za štart, oviro pa lahko premikaš z miško.)

This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.

22 May, 2009

Movie Word Cloud

Posted by: Urban In: razno

I’ve calculated the word frequency in the subtitles of about 40k English movies. I thought I’d get something useful, but can’t see it yet. Listing highest ranking words proved almost entirely useless, so I excluded the most common stop-words. Here I listed the highest 500 ranking words.

An interesting question here would be: is the relative frequency any different than the relative frequency in English language in general? What words have higher frequency in movies than in everyday language? Can we detect movie speak by the lack of certain words?

wordcloud

But what seems more promising than doing a simple word count is Yahoo term extractor which, surprisingly, does a pretty good job. For example, American Beauty yields these terms:

  • lester burnham
  • neighbor jim
  • pruning shears
  • product launch
  • lover jim
  • miracle gro
  • typical teenager
  • geek boy
  • daughter jane
  • wife carolyn
  • eggshells
  • role model
  • high point
  • clogs
  • misery
  • loser
  • girlfriend
  • honey
  • roses
  • dad

In fact it’s almost as good as watching the movie :) . That’s why the next step will be listing the most common Yahoo-extracted terms for all the movies. Gotta do it while Yahoo’s still around :) .

This bit of Ruby code queries Yahoo term extraction API (you need an API key first):

require 'net/http'
require 'rexml/document'

app_id = '***************'
yahoo_uri = URI.parse('http://api.search.yahoo.com/ContentAnalysisService/V1/termExtraction')

resp = Net::HTTP.post_form(yahoo_uri, { 'appid' => app_id, 'context' => text  } )

terms = REXML::Document.new resp.body

terms.each_element("//Result") do |term|
    puts term
end

04 Apr, 2009

Prihodnost naših podatkov

Posted by: Urban In: razno

Uporabljam kar precej online storitev za organizacijo in shranjevanje podatkov (tj. povezav, teksta, slik, posnetkov, pošte, feedov, ipd.); na hitro sem naštel >15 dokaj pomembnih, kar bi znalo predstavljati problem. Z vsako storitvijo, ki jo dodam, se poveča količina odločanja (kam naj nek podatek shranim, t.i. Paradoks izbire), ter čas iskanja (kam točno sem podatek shranil).

Vedno bolj pa postaja pomemben tale problem1: komu naj zaupam. Vem, da Google bere mojo pošto in mi na podlagi tega servira oglase. Vem da lahko to počne kdorkoli, ker se nikjer zares ne poglabljam v pogoje uporabe storitve. Toda komu naj zaupam, da bo naslednje leto sploh še obstajal? Celo vsemogočni Google je z ustavitvijo razvoja storitve Google Notebook (kjer sem imel par 100 zapiskov) pokazal, da se na koncu ravna samo po številkah (duh).

notebook

K sreči so ponudili eksport v Google Documents, priložnost pa so zavohali tudi drugi in pri Evernote so takoj ponudili importer2.

In tudi če pustimo recesijo in propadajoče startupe ob strani, ne moremo mimo človeške neumnosti. Pravkar sem prebral, da je spletni servis ma.gnolia zaradi napake na disku izgubil vse podatke. Za backup pa žal še niso slišali.

magnolia

Njihov founder na posnetku hehetaje razloži, da so se iz tega naučili, da je treba imeti dober backup. Good for them. Cenjenim uporabnikom pa ponujajo, da si svoje zaznamke poskusijo rešiti iz cache-a ali kakšnea RSS feeda.

Podobna zgodba se je (napol) zgodila tudi pri nas: email.si, čeprav trenutno operativen, je bil dolgo časa nedosegljiv.

email

Kam in kako naj torej shranimo podatke, da bomo do njih lahko dostopali tudi jutri (tj., če ukinejo storitev, če podjetje propade, če nam zaprejo račun zaradi kršitve pogojev ali če nam kdo ukrade in spremeni geslo)?

Še najdlje bi prišli z diverzifikacijo, s tem da ne zaupamo nobeni posamezni storitvi. Tu manjka dober sistem, vendar je veliko mogoče storiti že sedaj. Pošto z večine online mail ponudnikov lahko potegnemo k sebi; enako velja za dokumente, bookmarke in druge zadeve online porekla. Marsikatera storitev si lahko vzame za zgled Google Documents, ki omogoča, da vse dokumente prenesemo k sebi v enem samem zipu. Večino fotografij in posnetkov pa tako ustvarimo offline in jih že imamo pri sebi.

Naslednji korak je backup; vsaj na prenosni disk, optimalno pa še na kakšno bolj zanesljivo napravo ali — v oblak. Pojavlja se cel kup storage storitev (večina bazira na Amazon S3, recimo ZumoDrive3, DropBox4 ), ki brez problema služijo kot backup. Mogoče celo ni neumno, da se pri vsem tem izognemo posredniku (tj. startupu, ki bo jutri propadel zaradi boljše alternative).

Zključna misel: oblaku očitno lahko zaupamo le, če je naš; in čeprav se zdi, da bi le neumnež edino kopijo (včasih celo vitalnih) podatkov zaupal brezplačni in nepreverjeni storitvi, nas je tej skušnjavi podlegla že večina.. in samo čas bo pokazal ali smo res neumneži.

  1. tale post o url shortenerjih mi je dal misliti []
  2. to in dejstvo, da imajo odličnega klienta za iPhone ter tudi importer za OneNote, so tudi razlogi, da sem jim dal še eno priložnost. Zaenkrat nisem razočaran []
  3. Na voljo tudi klient za iPhone []
  4. dejansko zelo uporabna rešitev, ker dela samo “sync”, kar pomeni da podatki nikoli niso samo online, temveč vsaj še na eni lokaciji []

23 Dec, 2008

Display in koleno

Posted by: Urban In: razno

Pred kakšnim tednom smo obesili LED prikazovalnik v avlo Fakultete za elektrotehniko. Prikazuje SMS sporočila mimoidočih (tj. user-generated content), vsake toliko pa navrže še kakšno modro misel.

Po enem že precej počitniškem in neaktivnem tednu je statistika 118 poslanih SMSov, porazdelitev po pošiljateljih pa kaže, da je 30% pošiljateljev prispevalo 70% vseh sporočil.

12 Oct, 2008

Ringfleš

Posted by: Urban In: fotografija

S kolegom sva se navdušila nad čudovitostjo ringfleša (za portrete brez trdih senc) :) in sam se je takoj lotil šniclanja. Po neprespanih nočeh je nastala tale ringfleš pošast.
Tudi mene je matralo in potihem sem planiral kakšne skodele bi nabavil, da bi zadeva optimalno svetila. Končno sem šel do Merkurja, pod vtisom tega (domačega) dizajna, potem pa še po gospodijnskih oddelkih, iščoč primerne sklede. Domov sem prišel založen in se takoj lotil dela.
Nekaj ur, tri počene sklede za solato in še 2 obiska trgovine kasneje sem obupal. V tem času sem izpilil tehniko rezanja plastike: najprej z razbeljenim žebljem, nato sem plastiko zmehčal s curkom vročega zraka in jo rezal kar z nožem. Moj končni dizajn je bil impresiven (khm, to je ZELO lomljiva plastika — ko poči je konec), a neuporaben: svetloba se ni dobro odbijala in zadeva je svetila samo pri vrhu. Razočaran sem šel spat.

Neuspešen prvi poskus

Danes sem najprej naredil manjšo raziskavo: poiskal drug dizajn (tokrat iz kartona) in po krajšem brskanju je bil ključen nasvet tale: veliki in mali krog ne smeta biti koncentrična, saj je v tem primeru zgornji del neprimerno bolje osvetljen kot spodnji.
V nekaj urah sem imel zadevo izdelano, zaradi neučakanosti pa sem načrtoval zgolj v glavi in sama izvedba mi ni ravno v ponos. Dela pa. (Umotvor se natakne na Speedlite 420/430EX).

Ringflash od spredaj

Ringflash od zadaj

In še prižgan.

Seveda sem moral zadevo tudi sprobat. Posnel sem par slik, tole je ena izmed njih. Učinek ringfleša se definitivno pozna, zraven pa je še par drugih pomembnih sestavin:

  1. ozadje
  2. 50mm f/1.8 objektiv
  3. ventilator :)
  4. fajn workflow, ki sem ga našel pred kratkim
  5. in pa čudovit model :)

27 Sep, 2008

Kotiček za materni jezik

Posted by: Urban In: razno

Pomemben trenutek za naš jezik s samo 2.4 milijoni govorcev1 — Google je lansiral (obojesmerni) angleško-slovenski prevajalnik. Ker zadeva deluje na podlagi statistike in čistega avtomatizma, je ta prvi korak samo začetek, pri katerem pa se je treba zavedati, da bo hitro postal zelo uporaben — ko dosežemo neko “prelomno točko”2 in ko Google na spletu najde še kakšen paralelni večjezični korpus.

Do takrat pa se lahko posmehujemo njegovi okornosti; recimo, če prevedemo (prihajajočemu letnemu času primerno) Murnovo pesem Sneg v angleščino in potem nazaj v slovenščino:

Original: Sneg

Brez konca padaš, drobni sneg,
na tihi gozd in na poljano,
nekje kraguljčki, hitri beg,
spet molk za mano in pred mano.

Kaj moč mi, čas, kaj si mi dan?
Kar bilo - kot v sneg zakopano!
Kar bode - kot ta tiha plan
brez konca širi se pred mano.

Slo->Ang->Slo: Sneg

Brez konca padca, v redu sneg,
na tihi gozd in poljano,
nekje kraguljčki, visoke hitrosti letenja,
tišina enkrat za mano in pred mano.

Kaj je moč mojega časa, kaj si danes?
, Kar je bilo - kot je pokopan v sneg!
Kot bode - kot to tišino načrt
brez konca širi pred mano.

Samo za arhivsko referenco, tole. Ko bomo ob letu obsorej ponovili eksperiment, ne bo več smešno.

  1. gl. Wikipedia, tule []
  2. Tipping point, Wiki []

18 Aug, 2008

Trik za vztrajnost

Posted by: Urban In: razno

Še posebej uporaben pri programerskem in/ali raziskovalnem delu :) , kjer se hitro srečaš s problemi, ki bi zahtevali vsaj teden dela, rezultate pa hočeš takoj.

Jacob Rabinow1, an electrical engineer, uses an interesting mental technique to slow himself down when work on an invention requires more endurance than intuition: “When I have a job that takes a lot of effort, slowly, I pretend I’m in jail. If I’m in jail, time is of no consequence. In other words, if it takes a week to cut this, it’ll take a week. What else have I got to do? I’m going to be here for twenty years. See? This is a kind of mental trick. Otherwise you say, ‘My God, it’s not working,’ and then you make mistakes. My way, you say time is of absolutely no consequence.”

Izvleček je iz zanimivega (a dolgega) čtiva na temo kreativnosti (The Creative Personality), avtorja Mihalyja Csikszentmihalyija2, ki je znan tudi kot avtor pojma “Flow” — to je občutek popolne zatopljenosti v neko aktivnost, ki predstavlja stanje, v katerem smo najbolj srečni.

  1. Znan inženir in izumitelj z več kot 230 patenti; med drugim tudi za magnetni disk []
  2. Na Hrvaškem rojeni ameriški profesor psihologije, ki je preučeval kreativnost in srečo; Wiki []

27 Jun, 2008

Kako biti povprečen

Posted by: Urban In: razmišljanja

Ko sem pred leti gledal Gospoda Schmidta (imdb: About Schmidt), sem bil dokaj razočaran — češ, ne razumem; kaj bi mi ta film rad povedal? Bil sem v zgodnjih 20-ih, na tem da superuspešno zaključim faks, ahead of the game v vseh zame relevantnih pogledih.
Ko sem pred kratkim zgolj iz dolgčasa in firbca pogledal Schmidta še enkrat po TV, sem bil še cel teden depresivne volje. Namreč, gospod Schmidt je v penziji, pogruntal je, da je celo življenje živel by the book in da ni dosegel nič omembe vrednega. Njegovo življenjsko delo v firmi odpeljejo na odpad, otroci se odselijo in ga ne kličejo več, žena mu umre in nihče več ga ne potrebuje.

Warren Schmidt: Relatively soon, I will die. Maybe in 20 years, maybe tomorrow, it doesn’t matter. Once I am dead and everyone who knew me dies too, it will be as though I never existed. What difference has my life made to anyone. None that I can think of. None at all.

3 minute iskanja smisla življenja:

About Schmidt - Schmidt’s Final Letter

Nekaj dni nazaj sem slučajno našel manifest A brief guide to world domination [pdf] s podnaslovom How to Live a Remarkable Life in a Conventional World, od nekega Chrisa Guillebeaua1.
Skeptično sem zadevo preletel (češ, spet en pametnjakovič, ki bi bil rad pomemben), videl da ima 29 strani in pospešeno zaključil. Ko pa sem zadevo dobil še po dveh drugih kanalih, sem ji dal še eno možnost… in prva stvar, ki sem jo prebral, je bila tole (vir):

11 ways to be unremarkably average

Z izjemo točk 3, 4 in 5, bi to lahko bilo moje življenje.

To je priročnik za ljudi, ki nočejo živeti na tak način. Predlaga, da najprej razčistimo odgovor na 2 vprašanji:

  1. Kaj zares hočeš od življenja?
  2. Kaj lahko ponudiš svetu, kar ne more ponuditi nihče drug?

In še bistveno sporočilo — 2 stavka, klasični floskuli, ki jih poslušamo že celo življenje, pa se še nikoli nismo ustavili in razmislili kaj točno to pomeni za nas. Ker je težko. In ker odgovor ni enostaven.

  1. Ni ti treba živeti tako, kot od tebe pričakujejo drugi.
  2. Svet čaka nate, da boš ugotovil, kaj lahko le ti prispevaš. Vzemi si toliko časa kot je potrebno, da najdeš odgovor, nato pa se tega loti.

Proces iskanja takih odgovorov se lahko zavleče na celo življenje. Ampak že samo razmišljanje o tem pomeni, da smo korak bližje. Kdor išče, ta najde? Razmišljanje in upoštevanje gornjih nasvetov. Drugače bomo končali kot Schmidt. In — saj veste — Schmidt happens.

  1. Seveda je vedno treba preveriti čigave nasvete poslušamo (predstavitev, prve tri minute). []

26 Jun, 2008

Odnosi

Posted by: Urban In: razmišljanja

Po delavnici vodstvenih kompetenc, ki nam jo je sponzoriral šef, sem zelo pod vtisi — tako predavatelja kot sodelavcev, ki sem jih videl v povsem drugi luči. Kar naenkrat se zdi, da nam je vsem zelo pomembno v kakšnem okolju delamo, da si vsi prizadevamo doseči isti cilj in da smo prav vsi v enakih čevljih. Dejstvo, da smo bili večino časa prisotni čisto vsi, kaže, da nam ni vseeno in da hlastamo po priložnostih za osebno rast in boljše medsebojne odnose.

Končno lahko tudi na glas rečem, da sem se v službi intenzivno in načrtno ukvarjal z osebno rastjo; pa čeprav nisem čisto bos na tem področju, se izkaže, da imajo tudi najbolj preproste tehnike čisto drugačen učinek, ko jih moraš izvesti brez goljufanja in ti nekdo gleda pod prste.

Med drugim sem po dolgem času spet dobil dokaz, da smo ljudje zelo predvidljive živali1, ter da — čeprav že celo življenje lezem na en hrib — nisem niti slučajno blizu vrha. Mogoče podobno kot kak naiven alpinist, ki se ustavi na prvi ravnici, si odpre pirček in počiva na lovorikah — čeprav sploh ne ve, kako daleč je še do vrha.

  1. Moist robots, kot pravi Scott Adams []

  • Urban: Ja res je.. premikanje krogle ni blo planirano, dodal sm ga za foro, k sm pogruntal da sta samo 2 dodatni vrstici in da je dobr efekt... Problem je, d
  • dare: hudo! sam neki maš čudno fiziko... če postaviš kroglo nad tok (tako da gre vse mimo), potem jo pa potegneš dol v tok, špricne mal partiklov z
  • Urban: prov maš.. stemming in lematizacija bi dost pomagala. sploh nism pomislu.

About

This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from.

Zadnje s fotobloga

Vauxhall Bridge Sailboat Snail Tree Trunk Trafalgar Lights Road and Sky