Prekrasna juhica u Googleovoj zdjelici servisa

“Ej Aco..” – prekinuo me Srki u ___________ dok sam ljenčario na poslu. Naime, zanima ga… da li bi mu mogao prebaciti sadržaj “prodaja Ega/hiperinflacija Emocija” sa http://srdjansandic.blog.com/ na blogger.com. Da li bih mogao… pif….

S obzirom da Aco nije nikad odbio besplatno pivo odlučio sam složiti neku sitnu skriptu koja će mu to raditi. Naime, blogger.com (kaže Srki, nisam ja provjeravao) ne može to sam importati. blog.com nema nikakav public API za export podataka ali zato blogger/blogspot ima.

Brz na idejama, kakav već jesam, bacio sam kratki pogled na
http://srdjansandic.blog.com/. Analizirajući stranice mojim omiljenim FireBugom odlučio sam se na najkraće moguće rješenje (u međuvremenu se malo promjenio template ali u vremenu kad sam prebacivao code je imao smisla).

Daklem…. govoreći riječnikom iskusnih kiber hakera i internauta odlučio sam se za slijedeće:

ćopi_sve_linkove_na_arhivu sa strane "http://srdjansandic.blog.com/";

vrti_kroz_te_stranice { | stranica |

  ćopi_sve_linkove_na_perma_link sa stranica;

  -- LoL !
  vrti_kroz_te_stranice { | stran1ca | 
      ćopi_sadržaj_stranice stran1ca;
      izvuci_iz_dom [title, datum, content] -> snimi_u_bazu;
  }
}

Naime, šema je slijedeća. Ćopim naslovnu stranu. Na naslovnici se nalaze linkovi na stranice sa arhivama. Uzmem te linkove i skinem svaku od tih stranica posebno. Tamo se nalazi popis svih postova (lako je jer je sve na jednoj stranici) sa dijelom sadržaja. Vrtim kroz svaki od tih postova i uzmem linkove na koje pokazuje link na njihov permalink. Uzmem svaku od tih permalink stranica i iz nje izvučem sadržaj naslova, datum objave i sadržaj. Može i komentare na taj način ali Srki je rekao da nema potrebe za tim.

Zatim dobiven sadržaj spremim negdje (u mom slučaju sqlite3). S obzirom da blogger ima neku zaštitu od SPAM-anja podnosi samo određeni broj postova u danu. Preko Web interfacea se može postati više ali se mora popuniti neki CAPTCHA. Preko GData API-a nisam vidio da ima neka opcija za to pa zbog toga svaki dan opalim nekih 50-etak novih članaka iz baze.

U svemu ovome koristio sam Beautiful Soup. Zakon library koji mi je do sad dosta puta uskočio u pomoć. Kuži loš HTML, lako se izvlači sadržaj iz njega i brine se za encodinge. To im čak piše i na naslovnoj stranici 🙂 Iz nepotpunog primjera koji slijedi (koji nisam ni isprobao) je vidljivo kako se koristi Beautiful Soup i kako sam ja primjenio gornji algoritam na Srkijevom siteu.

import urllib
from BeautifulSoup import BeautifulSoup

def fetchURL(url): return BeautifulSoup(urllib.urlopen(url).read(), fromEncoding="utf-8")
soup = fetchURL("http://srdjansandic.blog.com/")
for link in soup.find('div', {"class":"block slideshow"}).findAllNext("a"): archive = fetchURL(link["href"])
for post in archive.find('div', {"id": "posts", "class": "posts"}): for plink in post.findAllNext("span", {"class": "permalink"}): clanak = fetchURL(plink.next["href"])
title = clanak.find("h4", {"class": "posttitle"}).next datum = clanak.find("h3", {"class": "date"}).next text = clanak.find("div", {"class": "posttext"}).next

Fali dio koji izvlači podatke iz baze i preko GData python clienta posta na blogger/blogspot.

Neukusni dobio svoj site

Na adresi http://tasteless.binarni.net/ ili http://neukusni.binarni.net/ počeo sam stavljati neki materijal o Neukusnome. S obzirom da sam se morao prisjetiti svih tih stvari zadnjih mjesec dana odlučio sam malo neke stvari dokumentirati.

Uzeo sam neki free Drupal themu i pobacao neke osnovne stvari. Trenutno sam poprilično zauzet ali s vremenom ću staviti više infoa gore. Stavio sam i neke od članaka online a počeo sam raditi i na pojmovniku. Budem s vremenom izbacio one robote i stavio neku svoju grafiku a mogao bih poraditi i na faviconici.

Slobodno postajte komentare sa ispravkama ili svojim tekstovima. Ako netko ima kakvog dodatnog materijala (ili npr. broj 9 koji sam ja izgubio) bio bih mu vrlo zahvalan.

Hrvoje i Šaban

Što se desi kad doneneš na posao video kameru da pomogneš kolegi oko odluke kod kupovine…. i maaaalo youtube-dl-a, gimpa, ffmpega i avidemuxa. Usput da testiramo i Facebook Video. Zaključak: glup je – ne kuži mp2 pa se zato i ne čuje zvuk a bogami ima problema i sa nekim codecima. Fali mi moj Final Cut i za editiranje.

Jedan tipičan dan u životu IBM Informix tehničke podrške. Ovo je kratki klip iz našeg pilota. Nešto što će zapaliti sve ljubitelje IT Crowda, Flight of the Conchords-a, Napoleon Dynamite-a i The Big Bang Theory-a. Iz tjedan u tjedan nova pričica o ekipi koja svoje shell skriptice započinje sa – “PATH=`awk -F: ‘{for(i=1;i<=NF;i++){if(!($i in a)){a[$i];printf s$i;s=":"}}}'<<<$PATH`". Obrada podataka nikad nije bila smješnija. link na video

Luftwaffenmuseum

Listajući vodič za turiste prije nekoliko godina vidio sam da se spominje (u to vrijeme zatvoren) Luftwaffenmuseum. Ove godine sam provjerio i ugodno se razveselio kad sam shvatio da je otvoren.

Daklem, uputio sam se u http://www.luftwaffenmuseum.de/.

Truckanje U-banima, S-banima, autobusima i na kraju pješačenje od kilometar i pol. Majko mila. Kad se dođe tamo shvati se zašto ne naplaćuju ulaz. U svakom slučaju, radi se o aerodromu na koji su parkirali oveću količinu otpada. Sudeći po websiteu čovjek bi pomislio da će se tamo naći oveća količina željezarije iz drugog svjetskog rata ali trebao sam i znati kako će to završiti sa Joomla powered websiteovima. Kad se uđe na aerodrom dočeka vas veliki natpis “50 godina Luftwaffea”. Da.. dobro ste pročitali – “50 godina!”. Dobri stari američki guilt trip nabijan švabama zadnjih 60 godina je učinio svoje. Od drugog svjetskog rata vidio sam – “malu maketu štuke”, “kopiju Bf-109 prirodne veličine”, “kopiju Me-163 Komet normalne veličine”, “totalno razjebani motor od Me-263 koji se jedva može i prepoznati”, “totalno uništeni i hrđavi nos od V-2” i “radar FuMG 65”. Ono najzanimljivije u Luftwaffeu je tako grozno prezentirano da je meni bilo neugodno. San Diego muzej avijacije ima 100 puta bolje to prikazano. Totalna katastrofa. U Shopu ima za kupiti katastrofalno loše plastične modele (koje su farbali 5 godišnjaci) i neke lutkice medvjeda u avijatičarskim jaknicama. Najviše ima čaša i krigli sa logoima koje ne želite ni vidjeti. Prodaju čokoladicu Mars koja je 30% jeftinija 2 metra dalje na automatu. Totalna katastrofa ali je meni i na kraju cijele balade bilo lijepo.

Slike se nalaze ovdje. Ušasno je jako sunce bilo i teško sam mogao pogoditi neke kuteve u kojima ne bi bilo odsjaja. Kako vani tako i u hali.

Dragi gospodine Schindler

Dragi gospodine Schindler,

wie geht es dir? Evo pišem Vam ponovo. Vaša mi podrška nije ništa odgovorila oko mog upita od prošli tjedan ali u međuvremenu su se desili opet neki problemi sa Vašim liftom. Mislim da smo ovaj put uspjeli i debugirati u čemu bi mogao biti problem.

Zamislimo da gospodin Dubravko M. (46) izlazi iz svojeg ureda na 4 katu. Recimo da je 14:10. Ulazi u lift i pritiščući dugme daje Vašem liftu instrukcije da se uputi na nulti kat (0-ti kat).

Mirjana J. (23) i Sandra G. (34), iz poliklinike sa drugog kata, zbog novog zakona moraju ići van zgrade ne bi li mogle konzumirati svoje cigarete. Gospodin Dubravko i ne sluti što će se dogoditi. Mirjana i Sandra odbacuju čikove u pepeljaru i lagano ulaze u zgradu. Kreću prema liftu.

Gospodin Dubravko uspješno dolazi na nulti kat. Vrata lifta se otvaraju i on izlazi van. Mirjana i Sandra primjećuju da se vrata lifta počinju zatvarati pa brzo ulaze unutra. Sretne su jer nisu morale uopće čekati. Ključna stvar ovdje je da se primjeti kako njih dve nisu pozvale lift pritiskom na dugme.

Mirjana želi pritisnuti dugme kako bi manualno instruirala Vaš lift da ih odveze na drugi kat. U tom dijeliću sekunde gospodin Zvonimir P. (64) na petom katu pritišće dugme. Pritiskom na dugme Vašem liftu kaže “Dođi do mene i odvezi me negdje dolje.”. Gospodin Zvonimir je brži i prvi pritišće dugme.

Mirjana i Sandra trenutak nakon gospodina Zvonimira instruiraju Vaš lift da ih odveze na drugi kat.

Lift uspješno kreće ka petom katu. Mirjana i Sandra su uvjerene da idu na drugi kat. Pače, vide na komandnom panelu Vašeg lifta kako oznaka za drugi kat blješći. Misle si “Još samo dva sata pa onda idemo kući….”.

Vrata lifta se lagano otvaraju. Gospodin Zvonimir je začuđen. “Otkud ovi ljudi” – misli se on. Mirjana i Sandra su poprilično zbunjene (ali ni približno onoliko koliko su bile zbunjene na trećem katu).

“Dobar dan” – ljubazno pozdravlja gospodin Zvonimir. Ulazi unutra. Lift lagano kreće prema dolje i zaustavlja se na drugom katu.

I što ćemo sad gospodine Schindler?! Dokle ćemo ovako? Zar ćemo Vam mi debugirati jebene liftove? Poslali smo vam patcheve prošli tjedan za algoritam. Jeste li patchirali vaš source? Jeste kurac! Otišo sam na Trac i svi oni ticketi stoje nerješeni! Gospodine Schindler… dokle ovako?! Dokle… pitam ja Vas!

09.06.2009. – klub m.a.m.a. – Neukusno prisjećanje….

Dana 09.06.2009. u net klubu m.a.m.a. u 19:00 sati (Preradovićeva 18) budem unutar Geekoskop programa dobio par sati vremena da se prisjetimo davnog vremena “Tasteless/Neukusni”, terminala i tuča na SRCE-tu, S.H.I.T. tuluma, penjanja po gorju….

Daklem priče o Neukusnom iliti prvom hrvatskom e-zineu, danima i noćima uzalud potrošenima na SRCE-u, Srcetu20, Leposavi i Herpesu (nekim mojim programčićima na koje me Bero podsjetio prije koji tjedan) i općenito cijeloj toj atmosferi… Ja sam većinu toga zaboravio i duboko potisnuo u podsvjest tako da bi bilo super da se ekipa iz tog doba pojavi i da se malo zajedno prisjetimo. Ili mi jednostavno pošaljite što od slika na mail. Što god. Aco se ne ljuti.

http://wiki.razmjenavjestina.org/razmjenavjestina/index.cgi?g33koskop_lipanj09