13 siječnja, 2013

Kindle i carina

E pa, živo me zanima kako je moguće da neki ljudi, kad naručuju Kindle:
Ne znam koliko ima veze, ali meni je za ovu Novu godinu stigao Amazon Kindle bez carine, PDV-a i ostalih naknada. Naplaćena je samo cijena uređaja + poštarina unaprijed plaćena Amazonu. Dostavna služba je bila DHL.
I neki drugi ljudi isto:
0 kn (slovima: nula kuna) dodatnih troškova povrh dostave od strane Amazona (~20 US$ na cijenu oba Kindla, za mene i suprugu)
...a ja, kad se nakon tri godine odlučim kupiti ga, dođe me...


...321 kunu, što je više od polovice cijene uređaja zajedno s poštarinom. Dio toga iznosa odlučuje carina, a dio naplati DHL kao troškove ovoga s carinom. DHL mi je jasan, ali ponašanje carine nije.

Ne kažem sad da meni nije trebalo biti ništa naplaćeno -- pripremio sam se na to. Ne razumijem kako je moguće da, nakon toliko godina postojanja Kindle uređaja, carina još uvijek nije interno odlučila što će s time točno raditi.

Mogu razumijeti prvih nekoliko godina, dok nisu uopće znali što je to, kako funkcionira, tko naručuje i zašto. Kindle postoji od 2007! Za to vrijeme su se valjda mogli dogovoriti sami sa sobom što im je činiti, pa da barem izgledaju konzistentno.

11 siječnja, 2013

Ping

Malo nerd humora -- komentar na Amazonu na dječju knjigu (slikovnicu?) "The Story Of Ping":

Excellent, heart-warming tale of exploration and discovery. Using deft allegory, the authors have provided an insightful and intuitive explanation of one of Unix's most venerable networking utilities. Even more stunning is that they were clearly working with a very early beta of the program, as their book first appeared in 1933, years (decades!) before the operating system and network infrastructure were finalized. 
The book describes networking in terms even a child could understand, choosing to anthropomorphize the underlying packet structure. The ping packet is described as a duck, who, with other packets (more ducks), spends a certain period of time on the host machine (the wise-eyed boat). At the same time each day (I suspect this is scheduled under cron), the little packets (ducks) exit the host (boat) by way of a bridge (a bridge). From the bridge, the packets travel onto the internet (here embodied by the Yangtze River). 
 (...)
Sa http://ftp.arl.army.mil/~mike/ping.html

03 siječnja, 2013

Novosti u knjizi o gitu

Uzeo sam si par sati vremena i nadopunih knjižicu o gitu s nekoliko (početnicima) bolnih tema. Konkretno -- pitanja na koja sam u zadnjih nekoliko mjeseci najčešće odgovarao su:
  • Git grafovi i kako shvatiti što u stvari prikazuju,
  • Jesmo li pushali svoje izmjene na udaljeni repozitorij?
  • Commitali smo u krivu granu,
  • Commitali smo u granu X, ali te commitove želimo prebaciti u novu granu,
  • Imamo necommitane izmjene i git nam ne da prebacivanje na drugu granu,
  • Kako zadnjih n commitova treba "stisnuti" u jedan,
  • Pushali smo u remote repozitorij izmjenu koju nismo htjeli.
Odgovore ću vjerojatno s vremenom još malo srediti i nadopuniti, ali prva verzija istih su za sad u knjizi.

02 siječnja, 2013

Novogodišnje odluke

Ja imam 3:
  • Naučiti Haskell i napisati nešto korisno u njemu,
  • Krenuti (opet) programirati u C-u (nakon što ga nisam taknuo 15 godina) i napisati nešto korisno u C-u,
  • Skinuti još 5-6 kg.
Moram priznati da ovdje malo varam, jer na sve tri odluke neko vrijeme radim. 

26 prosinca, 2012

Digresija o astrologiji

Iako u principu nemam puno posla s ljudima koji vjeruju u astrologiju, sjetih se nešto što uvijek zaboravljam spomeniti onim rijetkim poznanicima koji spadaju u tu skupinu.

Prvo i osnovno, oni koji vjeruju u astrologiju, a saznaju da sam horoskopski znak vaga -- uvijek se slože kako sam ja tipična vaga. I svi bi to, navodno, pogodili i da im nisam prethodno rekao datum. Međutim, priča ide ovako nekako, ja sam u stvari rođen par minuta nakon ponoći zadnjeg dana "vage". Jedino su doktori malo frizirali podatke (za par minuta)... Jerbo bijah zdravo dijete, pa smo tako mogli otići kući dan ranije.

Tako da u stvari i nisam vaga nego škorpion. Ono, tipična vaga, a u stvari nešto drugo. Nem'reš fulat koliko je to egzaktna znanost.

19 prosinca, 2012

OAuth da, ali...

Meni je super što ne moram pamtiti password i mogu koristiti Facebook, Twitter, Google ili Github account za autentikaciju na drugim sajtovima, ali nikako ne kužim zašto na internetima još nije počela medijska kampanja protiv servisa koji rade ovo:

 

...jer, OAuth nije protokol samo za autentifikaciju (tj. garanciju da je netko taj kako se predstavlja) nego i autorizaciju (tj. traženje ovlasti da u njegovo ime nešto može napraviti). E, pa, meni je potpuno nezamislivo da Geeklist ili bilo tko drugi traži ovlast da može mijenjati nešto na mom Github (Facebooku, Twitteru, ...) profilu. 

Čini mi se da se to dešava sve češće.

PS. Naravno, ja na ovo nisam pristao. 

18 prosinca, 2012

Python 2to3

Prepisah sam jedan mali projektić da se može vrtiti i u pythonu2 i pythonu3. Iako vjerojatno još neko vrijeme neću početi koristiti python3 ozbiljnije, mislim da sam imam neki osjećaj o tome gdje su, otprilike, problemi.

2to3 uglavnom zna riješiti najopćenitije probleme, ali malo složenije treba riješavati na ruke. Konkretno, u ovom slučaju, problem su bili stringovi. Odnosno činjenica što python2 razlikuje unicode od ascii stringova (i onda id treba encodeati, decodeati, i sva neka čuda).

Na primjer, lxml je library za rad sa stringovima. Oni nikako ne vole unicode stringove i ovaj programčić:


import lxml.etree
xml = u'<?xml version="1.0" encoding="UTF-8"?><test />'
dom = lxml.etree.XML(xml)

...bi bacio Exception: ValueError: Unicode strings with encoding declaration are not supported. Zato što je string -- unicode string (slovo u ispred stringa). Kad se string prebaci u ascii (tj. makne se ono u) -- onda stvar radi.

Međutim, s pythonom3 su svi stringovi unicode stringovi, tako da ovdje prestaje raditi čak i:


import lxml.etree
xml = '<?xml version="1.0" encoding="UTF-8"?><test />'
dom = lxml.etree.XML(xml)

Konkretno, ovdje je riješenje bilo što python3 umjesto stringa (koji je uvijek unicode) koristim bytearray kojeg se dobije s xml.encode('utf-8').

E sad... ja bih najradije da ne moram pisati puno uvjeta tipa "ako je python3 onda radi ovako inače onako", nego bih da imam kod koji se izvršava isto i u jednom i u drugom. Međutim, u par slučajeva nisam uspio. I to su uglavnom stvari sa stringovima.

16 prosinca, 2012

Uvod u git bez NC

Samo da spomenem (i ovdje) da maknuh "Non Commercial" klauzulu iz licence Uvoda u git. Uglavnom potaknut jednim pitanjem u intervjuu, a i zato što ionako nemam pojma kako bih na knjizi zaradio (osim da ju prevedem na engleski, ali tamo je konkurencija još i žešća).