Archives:
- November 2011
- Avgust 2011
- Junij 2011
- Maj 2011
- April 2011
- Januar 2011
- December 2010
- November 2010
- Avgust 2010
- Julij 2010
- Junij 2010
- Maj 2010
- Februar 2010
- Januar 2010
- December 2009
- November 2009
- September 2009
- Julij 2009
- Junij 2009
- April 2009
- Marec 2009
- Februar 2009
- November 2008
- Oktober 2008
- September 2008
- Avgust 2008
- Julij 2008
- Junij 2008
- Maj 2008
- April 2008
- Marec 2008
- Januar 2008
- December 2007
- November 2007
- Oktober 2007
- September 2007
- Avgust 2007
- Julij 2007
- Junij 2007
- Maj 2007
- April 2007
- Marec 2007
- Februar 2007
- Januar 2007
- December 2006
- November 2006
- Oktober 2006
- September 2006
- Avgust 2006
- Julij 2006
- Junij 2006
- Maj 2006
- April 2006
- Marec 2006
- Februar 2006
- Januar 2006
- December 2005
- November 2005
- Oktober 2005
- September 2005
- Avgust 2005
- Julij 2005
Meta:
Categories:
- blunt-hate
- comp
- debian
- django
- dogbert
- dovhcajt
- faks
- kiberpipa
- kitchen sink
- kultura
- linux
- ljubljana
- mediji
- opendata
- pootle
- python
- slovenija
- zanimivosti
Recent Posts:
- Prosti podatki za zabavo: 22. Liffe
- Kako pravilno uporabljati Supervizor
- Trgovanje z Burmo
- Avtoprevozniški hlapci
- Ne tolerirajte, da vam pijanci narekujejo dejanja
- Kolesarska zmaga: Bicike(LJ) in Android aplikacija
- Zakaj mora vsak operater kakršnega koli omrežja javno objaviti pregled nad stanjem omrežja
- 598
- Naj poslancem krava crkne
- Malo delo: da ali ne?
Blogroll:
Prosti podatki za zabavo: 22. Liffe
Posted on November 2nd, 2011 in dovhcajt, kultura, ljubljana, opendata, python, slovenija |
Prosti podatki so pogosto opevani kot zelo uporabna reč, vendar je očitno, da marsikdo te uporabnosti ne prepozna. Pa poglejmo zakaj so podatki, ki so dostopni v tabelarični obliki, lahko uporabni.
Recimo, da si na primer želimo ogledat kak film na Ljubljanskem mednarodnem filmskem festivalu. Izbire je preveč, zato je nujno narediti selekcijo. Kako to narediti? Ročni način bi bil, da z miško klikaš po seznamu, prebereš opise, morda pogledaš še video in si sproti ustvariš zaznamke. Če se ti da še malenkost bolj potrudit (ali če je opis premalo sporočilen), pogledaš še na IMDB za oceno. Na podlagi teh zaznamkov se potem odločiš za ožji izbor.
Malo manj ročni način je z uporabo računalniškega programa. Program festivala žal ni na voljo v tabelarični obliki, kar pomeni, da bo s pridobivanjem podatkov nekoliko več dela. Podatke je potrebno izvleči iz kode spletne strani.
Za programiranje bom uporabil prost programski jezik Python. Najprej preberimo kodo spletne strani. Da bo program “razumel” kodo, bomo uporabili dodatno knjižnico lxml. Sam sem uporabil Python 2.7 in lxml 2.3.
#!/usr/bin/python # nalozimo knjiznico import lxml.html # naslov, kjer se nahaja program festivala root = 'http://www.liffe.si/program/abc-seznam/' # preberimo spletno stran h = lxml.html.parse(root).getroot() h.make_links_absolute(root)
Zdaj smo prebrali spletno stran. Ta se nahaja v spremenljivki h. Iz naložene spletne strani je zdaj potrebno dobiti zapise o posameznem filmu. Koda spletne strani ima obliko drevesa. S plezanjem po drevesni strukturi izberemo delčke strani, ki nas zanimajo. Če izberemo vse vrstice, bomo lahko prebrali vse filme.
# ... koda se nadaljuje od zgoraj
# zanimajo nas zapisi v tabeli filmov
# s spodnjim ukazom poiščemo vrstice (tr) znotraj tabele (table),
# ki se nahaja znotraj obrazca (form), katerega atribut "id" je "pluginAppForm"
trs = h.xpath('//form[@id="pluginAppForm"]//table/tr')
# seznam za shranjevanje zapisov
filmi = []
# sprehodimo se po vseh vrsticah
for tr in trs:
# znotraj vrstice tr izberemo polja
tds = tr.xpath('.//td')
# iz vsakega polja poberemo besedilo
teksti = []
for c in tds:
teksti = teksti + c.xpath('.//text()')
# ker so v nekaterih vrsticah črte med črkami abecede,
# je potrebno te vrstice ignorirati, kar naredimo tu
if len(teksti) != 6:
continue
# izpisimo informacije, ki jih imamo sedaj
print teksti
# dodajmo informacije o filmu v seznam filmov
filmi.append(teksti)
Datoteka: liffe1.py
Zdaj smo uspeli prebrati kar nekaj informacij o filmih, ki se bodo na festivalu predvajali. Slovenski naslov, naslov v izvirniku, država in leto, režiserja, jezik in kategorijo, v katero je na festivalu umeščen.
Ker bi želeli to prebrati kot preglednico, se nam splača to shraniti v zapis, ki ga bo prebavil Calc ali Excel. Najenostavnejši je CSV oz. z vejico ločena polja.
# informacije o filmih so shranjene v spremenljivki "filmi"
# nalozimo modul csv
import csv
# odprimo novo datoteko liffe22.csv, v katero bomo podatke shranili
wr = csv.writer(open('liffe22.csv','w'))
# vpisimo naslove stolpcev
wr.writerow(['Naslov', 'Originalni naslov', 'Drzava, Leto', 'Rezija', 'Jezik', 'Kategorija'])
# vsak film vpisemo v datoteko
for f in filmi:
polja = []
for p in f:
polja.append(p.encode('utf-8'))
wr.writerow(polja)
Datoteka: liffe2.py
Če sedaj datoteko liffe22.csv odpremo z Excelom oz. Calcom, bomo videli nekaj podobnega spodnji sliki:
Z uporabo preglednice lahko potem izvajamo bolj zanimive stvari, npr. filtriramo. Najprej uporabimo AutoFilter:

Če sedaj označimo, da želimo pregledati le perspektive, potem vidimo nekaj podobnega:
Če želimo pregledovati po letniku filma, pa naletimo na težavo, saj je leto združeno z državo. Zato moramo naš program malo popraviti:
...
if len(teksti) != 6:
continue
# locimo drzavo in leto v dve polji
drzava_leto = teksti[2].rsplit(', ', 1)
# vkomponiramo novi polji
teksti = teksti[:2] + drzava_leto + teksti[3:]
# izpisimo informacije, ki jih imamo sedaj
print teksti
...
# vpisimo naslove stolpcev
wr.writerow(['Naslov', 'Originalni naslov', 'Drzava', 'Leto', 'Rezija', 'Jezik', 'Kategorija'])
...
Datoteka: liffe3.py
Skoraj perfektno, sedaj lahko filtriramo tudi po letu izida.
Sedaj imamo podatke v tabelarični obliki v zapisu, ki ga lahko uporabimo, da podatke obogatimo še s čim drugim… na primer s podatki, ki so v IMDB. IMDB ima v bazi povprečje ocen filma, ki so jih filmu prisodili uporabniki, kar je včasih kar dober indikator. Dodajmo še to:
# nalozimo knjiznice
import lxml.html
import json
import urllib
...
# locimo drzavo in leto v dve polji
drzava_leto = teksti[2].rsplit(', ', 1)
# dodajmo še ocene in žanr iz IMDB
# sestavimo url
orig_naslov = urllib.quote(unicode(teksti[1]).encode('utf-8'))
url = 'http://www.imdbapi.com/?t=%s&y=%s' % (orig_naslov, drzava_leto[1])
# prenesimo url
imdb_text = urllib.urlopen(url).read()
# nalozimo zapis v program
imdb = json.loads(imdb_text)
# preberemo oceno
imdb_ocena = imdb.get('Rating', '')
imdb_zanr = imdb.get('Genre', '')
# vkomponiramo nova polja
teksti = teksti[:2] + drzava_leto + teksti[3:] + [imdb_ocena, imdb_zanr]
...
wr.writerow(['Naslov', 'Originalni naslov', 'Drzava', 'Leto', 'Rezija', 'Jezik', 'Kategorija', 'IMDB ocena', 'IMDB zanr'])
...
Datoteki: liffe4.py in life22.csv
Tako dobljeno CSV datoteko zdaj ponovno odpremo s Calcom oz. Excelom, ponovno uporabimo AutoFilter in podatke posortiramo padajoče po IMDB oceni (Data -> Sort). Tako dobimo dobro informacijo če je določen film vreden ogleda ali vsi pred njim bežijo.
Seveda teh ocen ni nujno upoštevat. Liffe je super priložnost, da si človek ogleda kak tretji film, ki ga brez festivala sploh ne bi opazil.
Kako pravilno uporabljati Supervizor
Posted on Avgust 24th, 2011 in dovhcajt |
Supervizor je z moje strani dobrodošla novost. Javne finance, javno razgrnjene, na voljo kot kvalitetna podlaga za argumentirano debato o potratnosti države. Zdaj so številke vsaj javno dostopne in lahko ovržejo ali potrdijo teorijo oz. dajejo nadalnje smernice za raziskovanje.
Pri raziskovanju pa opažam, da ljudje ne razumejo osnov delovanja ekonomskega sistema in možnosti, ki jih ponuja Supervizor in drugi viri. Teh virov ne izčrpajo, pa že vlečejo (napačne) zaključke.
Kaj je po vaše zaslužek? Če pri dobavitelju kupim 100kg klobas po nabavni ceni 5€/kg, me to stane 500€. Če te klobase odprodam po ceni 15€/kg, dobim 1500€ dohodkov. Pridelal sem 1000€, od katerih moram odšteti še razne stroške (prevoza, hladilnika, plača prodajalca, ipd.). Kar ostane je (po mojem mnenju) profit oz. zaslužek. Če torej 100kg klobas prodam Policiji, od države dobim 1500€, kar pa še ne pomeni, da sem z državo tudi zaslužil 1500€. Zaslužkov v pravem pomenu se ne vidi niti iz Supervizorja niti iz nobenega računa, ki vam ga izda kdorkoli, ki opravlja storitve. Zaslužek je v osnovi interna zadeva podjetja.
S tem v mislih se lahko odpravimo po primeru članka na Žurnalu, kjer razkrivajo “zaslužke”. Pravilno ugotavlja, da država večinsko uporablja storitve od podjetij, ki so v njeni lasti (Mobitel, Zavarovalnica Triglav, itd.), niso pa tista nakazila zaslužki. Novinarka bodisi ne razume besede “zaslužek” bodisi jo namenoma narobe uporablja, da je članek bolj senzacionalen.
Pravilno tudi ugotavlja, da Stanovanjski sklad RS močno sodeluje z Andrejem Škrkom, ne navede pa povezave do grafa na Supervizorju, niti ne omeni, da je bila večina sredstev nakazana julija 2007. Je novinarka povprašala notarja ali Stanovanjski sklad o teh transakcijah? Zaenkrat ne kaže.
Nevključevanje že znanih dejstev iz drugih medijev je šlamparija. Kot navaja Dnevnik, je pri milijonskem nakazilu Mestne občine Ljubljana Marijanu Sušniku šlo za odkup zemljišča.
“Razmeroma neznana družba AAS” ima polno ime Avtorska agencija za Slovenijo, registrirana pa je za dejavnost “druge pravne storitve”. Na njihovi spletni strani najdemo obrazce, iz katerih lahko sklepamo, da gre za posredniško agencijo za sklepanje avtorskih pogodb. So to torej odvetniki? Razmerje med nakazili iz javnega sektorja in čistimi prihodki od prodaje je 1000%, 10-kratnik. To je smiselno, saj AAS v resnici prodaja posredovanje denarja, le manjši procent teh prejetih sredstev pa šteje tudi v čiste prihodke od prodaje. “Študentski servis” za avtorske pogodbe torej.
Kako torej dobiti več informacij, na podlagi katerih je možno sklepati kaj več?
Supervizor pokaže ogromno podatkov, a zelo malo informacij oz. odgovorov na kaj, zakaj in kako.

Ob kliku na ime podjetja (zgoraj označeno z rdečo) vas Supervizor ponese na Ajpes. Tam si lahko (prijavljeni) ogledate nekoliko več informacij o podjetju:

Alternativa Ajpesu je Bizi.si, kjer se vidi še kako informacijo več (npr. število zaposlenih).

Ob kliku na “več” (zgoraj označeno z rdečo) se pokaže polni izpis

Več informacij o bilancah imajo še Finance v svojem mini finančnem poročilu:

Torej, preden kdo začne trditi, da je nekdo “zaslužil” z državo, naj najprej preveri pojem “zaslužek” v SSKJ, potem pa še izdatno preveri kaj se je zgodilo v javno dostopnih zbirkah in tudi pri proračunskih uporabnikih. Še posebej to velja za tiste novinarje, ki si želijo, da bi jih sogovorniki jemali resno.
P.S.: Še enkrat: bodite pazljivi pri branju in dvakrat premislite kaj napišete.
Trgovanje z Burmo
Posted on Avgust 17th, 2011 in dovhcajt |
“To je umetniška zadeva, ki jo podari burmanski vladi, oni pa ji dajo potem v zahvalo kakšen briljant, kakšnih sedem, osem karatov, potem pa to prodamo. Takšno je življenje. Če se znajdeš, je v redu, če pa ne znaš, si pa tipičen Slovenec,” je za POP TV dejal Jelinčič.
Vir: Siol.net
Ne ravno posrečena argumentacija: Transparency international letno objavlja “Corruption perception index” oz. indeks koruptivnosti in Burma je leta 2010 skupaj z Afganistanom pristala na predzadnjem mestu. Vseh opazovanih držav je 178.
Naj poslancem krava crkne
Posted on April 14th, 2011 in dovhcajt |
Malo delo je referendum o 20 letih Slovenije.
V nedeljo me je izid malo presenetil. Nisem pričakoval, da bo zakon obstal, prav tako pa tudi nisem pričakoval tako odločnega “ne”. Očitno se Slovenija še ni streznila, vprašanje kdaj se sploh bo.
Zakon sam ni bil slab – bil je vsaj delno to, kar Slovenija še vedno rabi. Ukinitev oz. primerljivo obdavčitev študentskega dela in vnos fleksibilnosti na trg dela. A bilo bi prelepo, da bi to šlo skozi. Študentske organizacije so premočne, študenti pa so ravno v tistih letih, ko jim je bolj ali manj vseeno za svet okrog sebe, imajo pa volilno pravico, ki jo lahko uveljavljajo. V rokah študentskih politikov in njihove – roko na srce – zavajujoče kampanje, so se izkazali kot zelo močno orodje.
Ker bi zakon posegal tudi v trg dela, se je takoj vzdignil tudi gospod Dušan Semolič, večni borec za pravice delavcev, in se podal v boj zoper zlobni zlobni zakon, ki bi morda malo načel trg dela in ga morda celo naredil malo bolj prilagodljivega, vsaj toliko, da vsak podjetnik ne bi razmišljal o izselitvi svojih obratov iz Slovenije. No, z omejitvami malega dela to sicer ne bi šlo brez goljufije oz. ponarejevanja števila ur. Kakršen koli zakon, ki bi posegal v trg dela in ga morda naredil malo bolj fleksibilnega, je že vnaprej obsojen na javni linč s strani gospoda Semoliča.
Poleg teh dveh čeri pa sceno (raz)burkavajo še mediji in novinarji, ki niso sposobni kvalitetno opravljati svojega dela in zmotno širijo prepričanje, da še dve leti ne bomo mogli spreminjati študentskega dela, ko pa je v resnici zgolj eno leto. In pa mit o prelaganju odgovornosti. Kako lahko mediji trdijo, da so politiki preložili odgovornost na ljudstvo, če pa so študentske organizacije zbrale podpise za referendum in tako preglasovale Državni zbor. Dobro, razumem, da so v primeru arbitražnega sporazuma želeli, da ljudstvo potrdi odločitev. Pa vendar – ne pomeni, da je tudi vsak referendum prelaganje dela poslancev na ljudstvo.
Slovenija tako ždi med Scilo in Karibdo, se ne premika ne naprej in ne nazaj, ampak se prepušča toku vrtincev. Živimo na kredite, s tem referendumom pa smo Slovenci jasno pokazali predvsem eno stvar – če vi gospodje, ki ste na vrhu hierarhije niste pripravljeni poslovati pošteno, tudi vsi ostali nismo. Ultimativna državljanska nepokorščina in pravna potrditev starega slovenskega pregovora – “Naj sosedu krava crkne, če je že sami nimamo.”
Dost mamo!
Posted on November 17th, 2010 in dovhcajt |
Pretekli mesec je zagorelo v Pinusu v Račah in takrat sem videl, da se je nekdo na Delu, ki je vnašal novico, potrudil in poiskal novico iz leta 2005, kjer se je podobna nesreča že zgodila, pri čemer je celo nekdo umrl. Podoben primer je tudi Fenolit v Borovnici, kjer je leta 2006 umrl delavec, leta 2008 pa je spet prišlo do delovne nesreče. Vse te nesreč so po mojem mnenju bistveno premalo raziskane – nihče ni pripravil resnega pregleda kaj se dejansko dogaja v Sloveniji. Potem tudi ni čudno, da ministrstvo ne reagira, saj se z lahkoto izgovarja na prvi izgovor, ki v danem trenutku pade na misel.
No, če so nesreče razmeroma redki dogodki, a s toliko hujšimi posledicami, je dolgotrajno onesnaževanje po malem oz. “po obrokih” še toliko težje zaznati. Skozi čas se navidez nič ne dogaja, a na dolgi rok ljudje počasi in vztrajno obolevajo za raznimi kroničnimi boleznimi. Najbolj pereč primer tega je kvaliteta zraka, saj se prašni delci in ostale nezaželene spojine neomejeno širijo in tako vplivajo na veliko širši krog ljudi, kot se sprva zdi.
Tega se zavedajo tudi Zasavci, ki so se pred 11 dnevi zbrali na protestnem shodu pred uradom predsednika vlade … ki pa jim jo je ucvrl skozi zadnji izhod. V Zasavju stoji Termoelektrarna Trbovlje, ki že dobrih 30 let ljudem krha zdravje, zdaj pa je tam še Lafargeova sežigalnica, in ljudje imajo tega pač dovolj. Sežigalnice so lahko eden bolj nevarnih objektov. V Italiji se je leta 1976 v mestu Seveso zgodila nesreča (povezava je v angleščini), pri kateri je prišlo do največjega znanega izpusta dioksina v okolje. Po študijah, ki so nastale po tej nesreči, pa je nastala tudi obilica zakonov, ki to področje urejajo. Sežigalnica pa je med drugim tudi Pinus v Račah, ki leži prav v središču kraja. In vodstvo Pinusa se na vse načine brani javne objave meritev. Ob tem, da Pinus v povprečju skuri 300 ton nevarnih odpadkov mesečno, prav pa tako sežge praktično vse sorte odpadkov, ki jih dobijo (PDF). Zanimivo, ne?
No, poraja se vprašanje kako se situacije lotiti in trenutno vidim izvedljivi dve rešitvi.
Očitno je, da ustanovam ne moremo še zaupati, zato je potrebno vzpostaviti alternativne vire informacij. Natančno zaznavanje kakovosti zraka je lahko zelo drago, če pa ne želimo imeti tako natančnih meritev, pa je možno relativno hitro in za dokaj ugodno ceno (nekaj tisoč eur za razvoj in 100-200 eur za izdelavo) doma narediti vezje, s katerim lahko merimo nekatere parametre. Največja omejitev pri tem je sicer dobavljivost senzorjev za pline, ki jih želimo meriti – za nekatere pač merilne naprave v obliki elektronskega elementa ne obstajajo ali pa obstajajo v obliki kombirinanega senzorja, ki vrne eno številko za zmes večih zaznanih plinov. Drago pa utegne biti tudi umerjanje, ki je potrebno za vsak merilni senzor posebej.
Z lastnimi merilnimi napravami bi si sicer nakopali nekaj navidez nepotrebnega dela, ampak v rokah bi imeli oprijemljive meritve, ki temeljijo na znanstveni podlagi in ne na subjektivnem počutju.
Druga pomembna rešitev je informatizacija zdravstva, ki se pripravlja že dalj časa. Gre za zelo pomembno zadevo, ki ima moč rešiti marsikatero življenje in na katero bi morale biti ekološke iniciative zelo pozorne. Trenutne statistike so namreč regijske in za kakršno koli obravnavanje lokalnega vpliva raznih industrijskih obratov popolnoma neprimerne. Informatizirano zdravstvo pa je za to kot nalašč, saj omogoča poljubno velike prostorske enote kot podlago za statistično obdelavo. To pa je, za razliko od regijskih statistik, vir podatkov, s katerimi si initciative lahko pomagajo.
Viri:
http://www.had.si/blog/2010/11/11/dost-mamo-vcerajsnji-protest-pred-vlado-rs-in-borut-pahor-ki-se-je-skril-pred-zasavci/ (preberite tudi komentarje)
http://www.delo.si/clanek/125248
http://www.delo.si/clanek/127409
http://www.delo.si/clanek/o154974
http://www.delo.si/clanek/58856
http://www.arso.gov.si/varstvo%20okolja/odpadki/podatki/
http://race.blog.siol.net/category/sezigalnica/
http://www.pinus-tki.si/sl/Ravnanje_z_odpadki_sezigalnica_storitev_seziga_odpadkov/




