~hruske Hruške, jabuke, jablane, čežane. » dovhcajt
Home Contact Sitemap

Hruške, jabuke, jablane, čežane.

Ste se gdaj vprašali, zakaj Najboljšega soseda nikoli ni doma, ko pridete na obisk?

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.

Komentarji so izklopljeni

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.

Komentarji so izklopljeni

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/

http://www.mz.gov.si/si/ezdravje/