Category Archives: Uncategorized

Movie to animated gif

To get an animated gif from a movie, I do this:

ffmpeg -i themovie.mov themovie-%02d.png
convert -verbose +dither -layers Optimize themovie*.gif GIF:- > themovie.gif

convert comes from ImageMagick. I could/should pass some more stuff to ffmpeg and convert, such as -s to resize and -r to change FPS of the PNGs, or -resize to resize the output gif.

More info in this gist.

iCloud Bookmarks: WebDAV + XBEL format

Just a few small notes and random thoughts.

iCloud Bookmarks are stored in WebDAV, as evidenced by the name of the syncing process: SafariDAVClient. Some googling revealed that you can find out the URL by opening the ~/Library/Safari/Bookmarks.plist file. (If you don’t have Xcode, convert it using plutil -convert xml1.) Each bookmark has a remote XBEL file associated with it; so just cut the part of the URL up to and including “…/bookmarks”.

Now you have URL you can browse using a WebDAV client. I didn’t have any success with Cyberduck; I kept getting ‘Unauthorized’ error. I presume it’s confused by the @ symbol in the username (the email address, y’know), but I don’t know.

Mac OS X’s built in WebDAV client (also known as ‘Finder’s WebDAV client’) can correctly mount the remote filesystem; but you can’t view the file list in Finder. Once it’s mounted, listing it through Terminal works very well.

It’s interesting that XBEL appears to originated within the Python community, as evidenced in its XML namespace: http://www.python.org/topics/xml/xbel/.

Apple really, really, REALLY likes to use existing standards wherever possible. The original push notification system was done via XMPP, for example, but noone dug deep into it; and FaceTime is suspected to be RTP deep inside. The strategy may be embrace, extend and lock down, but it’s ok. If I start having problem with it, the data is still accessible, I can still take it out.

And not just because they use WebDAV and XBEL for their cloud storage, but because I actually have the data on my local machine. Which brings me to another topic: knowing they use WebDAV and XBEL would have been useless, since you ordinarily would not be touching that directly. It would have been far better to actually mess with Safari, whose bookmark sync support is more-or-less documented. Via SyncServices.framework. Except it is not. Since that magical underused technology has been deprecated in 10.7.

Damn you, business strategy centered around iCloud ;-)

Izgubljen novčanik/osobna – što sad?

Dovoljno puta mi se dogodilo da bi bio red da dokumentiram. Između ostaloga, radi sebe. Dosta neugodna situacija.

Prvo, ja sam posve odustao od toga da prijavljujem policiji. Predzadnji put pokušao sam prijaviti policiji na otoku Silbi, no kako je nemoguće iskopati jednog ili dva policajca koliko ih je nazovimo-to-dežurno na otoku, pokušao sam zvati telefonski i dobio policiju u Zadru. “A šta bi vi tili, da vam mi sad, ka, tražimo novčanik?!” Ukratko — nula bodova.

Drugo, malo pričekajte s prijavom nestanka kartica, za slučaj da se novčanik nađe — ali ne predugo. Tu procijenite sami. Da biste izvadili nove kartice u PBZu, potreban vam je dokument sa slikom. Ako nemate putovnicu, praktički jedini dokument ste upravo izgubili i vadit ćete ga preko mjesec dana. Ako nađete novčanik, bit će vam žao 50kn po kartici koliko PBZ (pravedno) uzme. Ipak! Ne previše odugovlačiti! Makar su kartice računa neupotrebljive bez PINa, PBZova kartica žiro računa je itekako upotrebljiva na Internetu. Ako imate American Express bez čipa, ta kartica prema mojem iskustvu traži samo potpis. Dakle, ne odgađati predugo.

A sad, kako do osobne.

Kako do nove osobne

Minimum minimuma je dva dana hodanja. Ne možete u manje od toga. Rezervirajte barem nekoliko sati u oba dana, primarno zbog čekanja u redu.

Dan prvi. Odlazite u policijsku upravu zaduženu za područje na kojem ste prijavljeni. Najvjerojatnije ista policijska postaja koja vam je izdala prethodnu osobnu iskaznicu – primjerice, u Petrinjskoj, ili (ako ste na području dijela kvarta Dubec, ili na području Sesveta), u Sesvetama.

Ponesite neki dokument tipa rodni list, makar vam vjerojatno neće trebati. Odmah kupite 70 kn u državnim biljezima. (Obično najbliža trafika kod policijske postaje ima biljege. Pitam se zašto.)

Ulazite unutra, stojite, dobivate od “tete na šalteru” formular za prijavu gubitka osobne iskaznice. Stanete sa strane, popunite ga u miru. Formular vas pita stvari poput OIBa, JMBGa, okolnosti pod kojima je osobna izgubljena, te da potvrdite da osobnu niste prodali, dali u zalog i slično.

Predajete popunjeni formular teti na šalteru zajedno s biljezima. Teta na šalteru vas upućuje da se vratite npr “sutra”, “prekosutra” ili “za tri dana”.

Međukorak. Možete obaviti slikanje za dokumente. Koliko sam ja upućen, slika za osobnu ne smije biti starija od 6 mjeseci. Neka vam ne pada na pamet pokušati “podvaliti” istu fotografiju za dokument koju ste predali prošli put, upravo zbog tog pravila; pred-predzadnji put sam otkantan kad sam pokušao dati istu, lijepu sliku, te sam se išao nabrzinu slikati. Recimo samo da sam prozvan MMK.

Dan drugi. Dolazite na šalter i predstavite se. Pokupite rješenje o proglašenju osobne nevažećom – komad papira A4 koji je državi od krucijalne važnosti da sami odnesete u Narodne Novine™ i predate kao “zahtjev za objavom oglasa o proglašenju osobne iskaznice nevažećom” – za što ćete biti oderani za 35 hrvatskih kunića. Posve mi je nejasno zašto efektivno državna institucija Narodne novine ne može surađivati s policijom dovoljno da uplatim policiji novce i da oni to srede. But I digress.

Odmah pokupite i formular kao zahtjev za izradu osobne iskaznice (OIB, JMBG, …) te uplatnicu na 48.50kn. Pripremite i par kuna više; FINA odere za dodatni 4.80kn, a tko zna kako je u drugim bankama i poštama. Internet bankarstvo bi bilo teoretski moguće, ali morali biste donijeti natrag i uplatnicu, ali i isprintanu potvrdu o uplati. Printati vam se, naravno, za 5kn razlike ne da.

Pitati tetu gdje su najbliže Narodne novine – recimo, u Sesvetama ih nema, pa ih možemo potražiti najbliže u Aveniji Dubrava 35 – kod Lidla. Što se tiče Petrinjske, najbliže Narodne novine su na famoznom ilitiga popularnom Trgu žrtava fašizma, i čak imaju zaseban odjel za objave oglasa. Put pod noge!

Stričeku u Narodnim novinama kažete zašto ste došli, predate mu papir, predate mu A4 papir, i mirni ste. On vam da natrag vaše rješenje o proglašenju, kao i račun vezan za objavu oglasa. Oboje predajete teti na šalteru.

Ako ga niste obavili dosad — sad možete svratiti na gore spomenuti međukorak ilitiga slikanje! Osobno sam dosta zadovoljan uslugom i ne poznajem osobno niti vlasnika niti ikoga od djelatnika — ali ako ste rješavali objavu oglasa u Aveniji Dubrava 35, mogu preporučiti Foto Studio Đurđica koji se nalazi odmah iznad Lidla. Kad kažem iznad, mislim iznad; skriveni su doslovce na brdu u Ulici Hrvatskog proljeća 15 preko puta ceste u odnosu na Lidl. Čekao sam 20ak minuta i platio 50kn, ali slike su odlično ispale, uz minimalno popravljanje slike (ne prepravljanje, što bi bilo zabranjeno, jel’). Oko 50kn je, čini se, standardna cifra kod fotografa onda kada izrađujete fotografije za dokumente. Možete proći jeftinije, no iovako ionako ste izgubili novčanik i trošit ćete hrpu love na povrat svega. A bar ćete imati par novih slika. (Whee!)

Konačno, vraćanje u policiju. (Whee! Još uvijek dan 2, nadajmo se, ako ste dovoljno rano ujutro krenuli.)

Čekate opet na šalteru. Teti predajete “uplaćenu uplatnicu”, dvije fotografije izrađene za osobnu iskaznicu, formular sa zahtjevom za izradu osobne iskaznice, rješenje o proglašenju osobne iskaznice nevažećom, račun za oglas o proglašenju osobne iskaznice nevažećom. Teta uzima žutu kartonsku karticu, popunjava, traži potpis na žutu kartonsku karticu, traži potpis na papir, traži otisak desnog kažiprsta (ponesite maramicu, salvetu ili nešto slično da obrišete tintu) i konačno uzima žutu kartonsku karticu i daje vam rok u kojem će osobna biti izrađena.

U nekim policijskim postajama/upravama/whatever pitat će želite li SMS dojavu kad je iskaznica gotova. U Sesvetama ne nude tu uslugu za osobnu iskaznicu.

Ukupni trošak? 155kn + fotografije 50kn. Oko 8h kombinirano u 2 dana potrošeno na čekanja u redu, vožnju po tramvajima i busevima, itd itd.

Kako do ostalih dokumenata?

Vjerojatno nikako dok ne dobijete osobnu iskaznicu. Ali…

Gubitak studentske “iksice” (odnosno ja imam iskustva samo s nasljednikom, ‘e-indeksom’) prijavljujete u studentsku referadu. To je mali problem ako su trenutno ljetni godišnji, ali što se može, menza iovako ionako ne radi, niti su predavanja u tijeku. Na FERu sam platio 100kn “kazne” za e-indeks, plus 35kn za objavu u Narodnim novinama, uz informaciju da sljedeći gubitak sankcioniraju sa 150kn. Ne sjećam se da li sam plaćao izradu novog e-indeksa. Na TVZu još nisam prolazio kroz postupak, jer je studentska referada na godišnjem.

Gubitak kartica u PBZu možete prijaviti telefonski već isti dan: 0800 365 365. PIN stiže kroz svega par dana na kućnu adresu. Nažalost, to apsolutno ničem ne služi jer morate podići karticu koristeći osobnu iskaznicu ili drugi dokument sa slikom. (Vozačka ili putovnica, koje ja, recimo, nemam.) Koliko se sjećam, naknade za izradu kartice skidaju se izravno s računa.

ZETov pokaz — uopće nemam pojma što s njim, i gubitak ovoga je najstrašnija stvar. Ovaj elektronički pokaz je toliki organizacijski promašaj da je to strašno. Nemam pojma što ću uopće s time i kada ću ići po njega. Naime, koliki su biseri, vjerojatno će inzistirati da pokažem (e-)indeks, jer nagađam da su nesposobni vidjeti da osoba s mojim imenom i prezimenom, OIBom, te karakterističnim licem i predivnim “osmjehom” uistinu već jest student i da je ta čudna individua već imala pokaz. To je samo nagađanje, ali mislim da neće to povezati.

Dalje, na izradu pokaza sam čekao tri tjedna… a za to vrijeme nisam mogao uplatiti 120kn. Da, tako je — izradu sam platio 30kn i čekao tri tjedna i za to vrijeme plaćao vožnju po redovitim cijenama. Naravno da k tome pokaz vrijedi od 1. do 31. u mjesecu, pa kad je bio izrađen, za 120kn sam mogao platiti pola mjeseca vožnje, ili nastaviti plaćati po redovitim paprenim cijenama. Očekujem slično se provesti i sada, kad sam izgubio taj krucijalni komad plastike koji je toliko fantastično bolji (za praćenje kretanja nazovi-slobodnih građana) od komada papira i plastike koji smo prethodno imali, a koji sam dobio za prestrašno dugih 5 minuta po ulasku u njihov ured u Remizi.

No o ZETovim manama kao vjerojatno najnesposobnijoj državnoj firmi jednom drugom prilikom u nekom drugom dugačkom postu. (Sad jedva čekam “je al nije državna neg gracka striček Vuč’ca… i nema ZETa nego Zagrebački holding striček Vuč’ca…” — yeah right: same difference.) To što je javni prijevoz u drugim gradovima u još većoj banani nikako ne može i ne smije značiti da možemo tolerirati ZETove igrarije i skupoću izazvanu novim tramvajima, aparatima za “cvikanje” (Linux, by the way), bezobrazluk (vjerojatno i preplaćenost) zaposlenika, prečestim polupraznim vožnjama, kršenje privatnosti bilježenjem “svakog” ulaska u vozilo (kako nas podsjeća striček na svakom stajalištu!), iritantno puštanje “ZET radija”, itd.

Idemo dalje!

Upute za budućnost

Otvorite mobilno bankarstvo. Ja sam se spasio tako da sam prenio kolegi dio novca preko mobitela, jer za razliku od Internet bankarstva ne trebam karticu.

Ostavite barem jednu bankovnu karticu kod kuće.

Nabavite putovnicu. Jest da dođe oko 400kn (320kn + 70kn biljega), ali ako izgubite novčanik, bit ćete presretni što imate bar jedan dokument sa slikom za dokazivanje identiteta. I dalje morate prolaziti ovaj gore navedeni postupak, ali u kombinaciji s bankovnom karticom koja je kod kuće, bar nećete ostati bez novca. A da ne spominjemo da u slučaju potrebe nećete trošiti dodatne novce na “hitnu izradu” putovnice, ako baš žurno morate ići u inozemstvo negdje gdje vam nije dovoljna hrvatska osobna iskaznica za prelazak preko granice.

Ostavljajte stvari kod kuće, jer usprkos oprezu, dovoljno je da se malo zamislite ili da netko u blizini ima spretne prstiće kako biste prolazili horor. Osobnu iskaznicu ne možete ne nositi (koliko znam, protuzakonito, je li), no možete pokušati ne nositi baš sve bankovne kartice.


ŠTO KAD JE NOVČANIK PRONAĐEN? (update 23. kolovoza 2012)

Pred nekoliko dana stigla mi je obavijest na kućnu adresu da se javim u Policijsku postaju “vezano za novčanik”, uz dobilježeno da donesem “pristojbu od 20kn”.

Odmah sljedeći dan ujutro otišao sam, i stvarno, novčanik je pronađen. 20kn se odnosi, naravno, na biljege. Šteta što je skoro sve bilo otkazano, osim pokaza, iksice i studentservisne članske iskaznice.

Disable Safari Webpage Preview Fetcher

This site says you enter the following into the terminal and restart Safari:

defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

Revert using:

defaults delete com.apple.Safari DebugSnapshotsUpdatePolicy

The site says it works with Safari 4. Let’s see if it works with Safari 5.

See also “Secrets” at BlackTree.

Regaining access to a passcode-disabled iOS device

You have a passcode-disabled iOS device? You get a message similar to “iPhone disabled for XYZ minutes”? Especially if the message mentions millions of minutes, this may be a problem. Or if the iPhone instructs you to plug it in iTunes, and then iTunes says that you need to unlock the passcode, without a way for you to enter it?

One way is to restore the device. Unacceptable if you have important info on the device.

Let’s instead destroy the passwords and Springboard settings. You’ll still need to enter your passcode, but at least you’ll be able to unlock the device. If you forgot the passcode, you’ll at least have SSH installed and a way to connect to the device. If you find the instructions on how to remove the passcode completely, leave a comment below.

Instructions for OS X. Tested on iPhone 3GS with 5.0.1. You’re expected to have at least a brain, some experience with jailbreaking, and understanding of UNIX systems.

1. Grab latest redsn0w. (At the time of writing, redsn0w 0.9.11b4)

2. Grab “SSH_bundle.tgz“.

3. Run redsn0w and click “Jailbreak”.

4. Follow instructions and choose “Install custom bundle”

5. Wait until device reboots.

6. Grab “usbmuxd”. Tested with “usbmuxd-1.0.7.tar.gz

7. Unpack it, open Terminal, and go into the newly created “usbmuxd-1.0.7″ folder.

8. Go to “python-client” subfolder. Type “python tcprelay.py 22:2023″. This allows you to connect to the device via the USB cable.

9. In a new Terminal window or tab, type “ssh root@localhost -p 2023″. This’ll work about 30 seconds after the device boots successfully.

10. Try typing “alpine” as the password. If it works, congratulations! Let’s move on.

11. In terminal that is connected via SSH to your iPhone, type “rm /var/mobile/Library/Preferences/com.apple.springboard.plist”.

12. In terminal that is connected via SSH to your iPhone, type “rm /var/Keychains/keychain-2.db”.

13. Just to be sure, let’s check your date. In your local Mac terminal, type “date”. Copy the result to the clipboard. In terminal that is connected via SSH to your iPhone, type “date”. If the dates aren’t reasonably close (a couple of hours of difference max), type “date -s PASTETHEDATEFROMYOURMAC” into terminal for your iPhone. Now type “date” on iPhone terminal just to be sure.

14. Reboot the device. Enter the passcode.

Congratulations!

Information source: this post, research

 

Again, if you are able to remove the passcode completely, tell me. Thread in which the post I linked to is located contains some info, but I haven’t been able to verify it. (I don’t plan on locking customer’s iPhone again just to check, thank you very much ;) )

Figuring out software version of a passcode-disabled iPhone

If you have an iPhone that’s passcode-locked, especially with message that iPhone needs to be connected to iTunes, you may want to try to unlock it by jailbreaking, installing SSH and messing with the filesystem. (tcprelay.py from usbmuxd is very helpful for SSHing if the iPhone doesn’t connect to a known wireless network.) There’s this tutorial on installing SSH on a disabled iPod, which doesn’t use tcprelay.py and is targeted for Windows users, but it should nonetheless give you the starting info.

Before you start you may want to discover which software version is installed on the iPhone.

Current redsn0w, 0.9.11b4, displays the device name, ECID, and software build when you use the “Fetch SHSH” functionality. There’s also “Identify” functionality which should do the same thing, but you won’t be collecting SHSH blob (it’s a good idea if you want to downgrade in the future.) Build name is a string similar to iPhone2,1_5.0.1_9A405 and can be used to obtain the correct .IPSW for your device, enabling you to jailbreak the device and to install contents of “SSH Bundle.tgz”. Most important thing is – fetching SHSH blobs is a non-destructive operation.

You’re welcome.

(All files mentioned are googleable.)