Arhive kategorija: Croatian

Jedna ideja je bezvrijedna, niz ideja nije

Jedan mali rant za ljude koji se boje da će im netko ukrasti ideju, ili kažu “e baš sam ja takvu ideju imao” kad vide nešto uspješno.

Put od ideje do realizacije nekog projekta (o čemu god da se radi) ide otprilike ovako:

  1. Netko ima početnu ideju. Sama ideja u ovom trenutku ne znači ništa.
  2. Početni zanos je tu, ideja zvuči odlično, kreće se u realizaciju.
  3. Ups! Nalet na prvi problem, koji cijelu originalnu zamisao baca u vodu. Katastrofa! Panika! Već smo potrošili X sati, što ćemo sad?
  4. Nakon smirivanja panike, pronalazi se izlaz – maaaalkicu modificirati trenutni plan, da cijela stvar bude postavljena malo drugačije.
  5. S uzdahom olakšanja kreće se u daljnji razvoj. Prethodne dvije točke ponavljaju se prema potrebi, desetak do stotinjak puta
  6. Projekt je realiziran! Svjetska dominacija je blizu!
  7. Umm … nikog nije briga. Aaaa, propast!
  8. Hm, ali nekoliko ljudi je spomenulo da bi nešto slično, ali malo drugačije, bilo dosta korisno. Back to the drawing board.
  9. Prethodnih 6 točaka ponavljati prema potrebi.

Gornji koraci su tipičan primjer iterativnog postupaka. A zgodno svojstvo iterativnih postupaka je da gotovo uopće nije bitno odakle krenete. Recimo, postupak za iterativno računanje broja pi (ili e) u što više decimala može krenuti od broja 200, a ne od 3.14 (ili 2.7). Ako je početni korak, odnosno početna ideja, loša, možda će biti potrebno nekoliko koraka više, to je sve.

Ono što je bitno kod iterativnog postupka je raditi iteracije. Ne stati na prvoj (originalnoj ideji), drugoj, ili dvadesetoj. Raditi iteracije i poboljšavati stvar, sve dok ne bude dovoljno dobra da uspije, ili očito toliko loša da se od svega može odustati.

Polazna točka može biti bitna utoliko što možete završiti u lokalnom maksimumu. Odnosno, napravili ste sve najbolje što ste mogli, ali stvar ne ide prema naprijed. U tom trenu vrijeme vam je totalno zaokrenuti stvar i krenuti sa neke druge točke. Popularni buzzword za to je pivot, a svjetli primjer istog napravila je ekipa iz Pet Minuta sa svojim Shoutem projektom.

Drugi primjeri kretanja ispočetka su napuštanje originalnog projekta i kretanje u sasvim nešto novo. Nakon dovoljno takvih pokušaja, vjerojatnost da će nešto i uspjeti samo raste (pod uvjetom da se rade kvalitetne stvari i da se uči na greškama). Popularni naziv za to je “prekonoćni uspjeh nakon 10 godina” (ten years to overnight success).

Početna ideja, ili bilo koja od niza ideja u lancu od početka do uspjeha (ili propasti), nije previše bitna. Bitna je realizacija i adaptacija.

O kriptografskim algoritmima

Pospremanjem nekih svojih starih programskih uradaka, došao sam i do svojeg seminarskog rada za FER, biblioteku kriptografskih funkcija CyFER i njenu prateću dokumentaciju.

Kako bi ovi materijali nekom mogli biti korisni ili zanimljivi, za sve one kojima nije običaj posjećivati stranice FERovog predmeta OS2 na kojima ima pregršt materijala o svim mogućim aspektima računalne sigurnosti (svakako preporuka posjetiti, i uzeti si dovoljno vremena), evo i ovdje par linkova o tome.

Namjena biblioteke nije korištenje u produkciji, tj. tamo gdje brinete o sigurnosti podataka. Prilikom odabire sigurnosnih proizvoda općenito trebate biti vrlo konzervativni, i odabirati samo one za koje ste sigurni (i imate objektivnu potvrdu) da su široko korišteni, kvalitetno implementirani, testirani, certificirani, itd. Kao primjer prilično pouzdane biblioteke kriptografskih funkcija možemo uzeti OpenSSL (kojemu se, unatoč tome što tisuće ljudi gleda u kod i traži rupe, ipak tuitamo dogodi neki propust.

Ono čemu CyFER je namjenjen je edukacija, odnosno praktični prikaz implementacije velikog broja algoritama. Osim implementacije, dokumentacija ima opis svakog pojedinačnog algoritma te prikaz algoritma u pseudokodu. Ako vas je ikad zanimalo kako rade SHA, AES ili RSA, prateća dokumentacija CyFERa bi vam mogla biti zanimljiva.

Cyfer
View more presentations from senkorasic.

Sama biblioteka kriptografskih funkcija pisana je u C-u pod Linuxom, no uspješno se kompajlira i pod Windowsima i nekim drugim operacijskim sustavima (bar je tako bilo zadnji put kad sam testirao, prilikom predaje seminara). Osim iz C-a, moguće ju je koristiti i iz nekoliko drugi programskih jezika uz korištenje odgovarajućih bindinga.

Da ne duljim, evo i linkova:

  • CyFER repozitorij na githubu – sadrži najnoviju verziju koda (nekoliko compiler warning fixova u originalnom kodu + integrirani python bindinzi)
  • dokumentacija – uključujući PDF seminarskog rada (PDF je također dostupan sa githuba) i bindinge za druge jezike

Računi.hr

Novi projekt Damira Sabola, Računi.hr, ima za cilj olakšavanje procesa primanja i plaćanja računa, uz eliminaciju papirologije, čekanja u redovima ili prekucavanja kriptičnih poziva na brojeve.

Odlična ideja, napokon se netko odlučio pozabaviti tim problemom! Stvar nikako nije trivijalna, trebat će puno guranja ideje uzbrdo, ali vjerujem da računi.hr imaju veliku šansu za uspjeh u svom poduhvatu; ne samo zbog odličnog tima koji stoji iza projekta, nego i zbog činjenice da je već od početka (javnog postojanja) tvrtka osigurala investiciju od strane Bicroa te integraciju sa 20-tak hrvatskih banaka.

Prilikom objave novosti, Gadgeterija komentira “[...] čisto sumnjam da će je korisnicima ponuditi besplatno.” Krenuo sam napisati komentar na to na Gadgeteriji, ali se komentar dovoljno povećao da ga stavim u zaseban post:

Vjerujem da korisnici računa.hr (oni od kojih namjeravaju zarađivati) nisu krajnji korisnici, građani, ljudi (ili tvrtke) koji plaćaju račune, nego tvrke koje izdaju račune. Izdavanje papirnatih računa je, naime, poprilično skup posao ako imate mnogo računa. Samo kao brzi primjer, Vipnet ima oko 2.6 milijuna korisnika – ne znam koliko retplatnika, recimo 1 milijun. Ako uzmemo okvirnu cijenu od samo 10lp po printanju i slanju računa poštom, radi se o 100 tisuća kuna mjesečno. (Napomena: moja računica je vrlo otprilike i odokativna, i prave vrijednosti vjerojatno se prilično razlikuju – ali siguran sam da su iznosi veliki.)

Ušteda od 50% kakvu nude Računi.hr na takve iznose nije uopće zanemariva. S druge strane, dio ostvarenog prihoda dijelit će s bankama, koje zbog toga imaju interes u integriranju sa Računi.hr servisom. U cijeloj priči krajnji korisnici nemaju apsolutno nikakve brige – oni uslugu samo dobiju kao opciju u postojećem netbanking sučelju.

Ovaj način integracije s bankama je zanimljiv – kad sam pogledao intro video, pomislio sam da će Računi.hr biti izravan portal za korisnike, preko čijeg sučelja će raditi plaćanje. Problem s takvim pristupom bi bio činjenica da bi od banaka trebali dobiti pristup na korisničkov račun, što ne vjerujem da bi ijedna banka olako dala – minimalno bi Računi.hr morali imati vlastiti netbanking sustav, zajedno sa karticama, tokenima, čitačima i svom skupom zbrkom koja iz toga slijedi. Činjenica da su banke one koje se vežu na računi.hr lijepo zaobilazi cijelu tu zavrzlamu.

Bit će zanimljivo i vidjeti kako će reagirati velike tvrtke koje već imaju razvijen neki vlastiti način paperless računa. Primjerice i Vipnet i T-Com imaju e-račun opcije i stalno gnjave korisnike da pređu na njih. Kad pogledamo gornju računicu očito je zašto. S jedne strane, oni dakle već imaju sustav koji ih ne košta “ništa” (osim održavanja), ali s druge strane, vjerojatno relativno mali broj korisnika koristi njihov sustav.

Ukoliko Računi.hr pokriju većinu velikih banaka (a ako već imaju dogovor sa 20-tak, vjerojatno već imaju tu većinu), imat će veliku bazu korisnika. U tom će slučaju i velikim tvrtkama sa vlastitim sustavima biti isplativo preći na njihov servis. Paperless troškovi će biti veći, ali će biti manje papirnatih računa.

U svakom slučaju, ukoliko Računi.hr projekt uspije (što uvjeren sam hoće, samo je pitanje dinamike), biti će bolje i krajnjim korisnicima, i bankama, i tvrtkama koje izdaju račune. Ali, netko će i nadrapati: oni koji zarađuju na izdavanju i slanju računa. Dakle, pošta te proizvođači/prodavači printera, papira i ostale opreme potrebne za tiskanje, kuvertiranje i pripremanje papirnatih računa.

Svi mi ostali možemo se veseliti što nam je napokon 21. stoljeće zakucalo na vrata i u Lijepoj Našoj :)

PS. Sasvim je prerano pričati o tome, ali ne bih se čudio da u jednom trenu osim samo plaćanja i pregleda računa uvedu analytics ala Mint.

PPS. Sve ovdje navedeno su čisto moja razmišljanja na osnovu zasad poznatih podataka – nisam u nikakvoj vezi sa projektom pa je moguće da sam potpuno promašio poantu. Kakvo je vaše mišljenje?

Domaće Android aplikacije

Update: složio sam novu, osvježenu listu za 2011. godinu. Novu listu možete pronaći ovdje.

Android

Domaća mobile developer scena zahuktala se u posljednjih par mjeseci. Uz pokretanje Mobile Mondaya, tu su i VIPNet Android Izazov te Budi kreaTivan 2010 natječaji koji su izazvali razmjerno velik interes potencijalnih developera.

Kao rezultat toga, na Android Marketu pojavljuje se sve više domaćih aplikacija, većinom lokalnog karaktera. Kako zapravo ne postoji način za saznati otkud su autori pojedine aplikacije i koliko je aplikacija iz Hrvatske, tijekom posljednjih nekoliko dana bilježio sam domaće aplikacije na koje sam naišao, skupio ih u listu, te vam sada ponosno predstavljam svjetsku premijeru najveće i jedine liste domaćih Android aplikacija:

  • Advanced Call History – praćenje poziva i generiranje izvješća na osnovu prikupljenih podataka.
  • aMazing Submarine – vodite podmornicu kroz labirint, sakupljajte blago i izbjegavajte ribe
  • ATFLOCK – zaključajte telefon za slučaj krađe
  • Aukcije.hr Mobile – pregled najnovijih aukcija na stranicama Aukcije.hr te pregled aktualnih kupnji i prodaje predmeta u aukcijama u kojima korisnik sudjeluje
  • BankoMap – prikaz lokacije bankomata (zasad samo PBZ) u Zagrebu koristeći Google Maps
  • Bela Brojalica – aplikacija za zbrajanje osvojenih bodova u Belotu za četiri igrača
  • Belo zbrajalo – zbrajanje bodova i pregled stanja u Beli
  • Brick Annoyed – klon klasične arkadne igre
  • Burza.ZG – trenutne cijene dionica na Zagrebačkoj Burzi
  • Buzdo, swinging mace – simulacija klatna, koristi akcelerometar za kontrolu
  • Croatian keyboard – hrvatska tipkovnica za Android
  • Croatian News Widget – najnovije vijesti iz Hrvatske na home screenu (widget i aplikacija)
  • CRO City Info – u par klikova iz vašeg mobitela pronađite sve važne lokacije, druge informacije, prijevoz te mapu pokrivenosti besplatnim Wi-Fi-jem
  • CRO Prognoza / Weather – sedmodnevna vremenska prognoza za više od 40 hrvatskih gradova
  • Cro Tourist Guide – pretraživanje turističkih odredišta i smještaja u Hrvatskoj (vuče podatke sa www.crotouristguide.com)
  • Crypto – aplikacija za kriptiranje slika
  • DSSAndroidAutomation – info o kontaktima, nepročitanim porukama, propuštenim pozivima
  • DSS Numerologija – izračunajte svoj sretan broj ili provjerite “kompatibilnost” sa simpatijom
  • Elevation and Sea Depth – saznajte nadmorsku visinu i dubinu mora u smjeru u kojem usmjerite svoj mobitel
  • Gdjesi.com – mobilni klijent za gdjesi.com servis
  • GPS Explorer – aplikacija za mjerenje područja i praćenje ruta
  • GPS Tracker – praćenje lokacije i slanje podataka na server tracking.virtualniured.hr
  • HGSpot Mobile – čitajte vijesti i pretražujte proizvode iz HGSpota
  • HNB Exchange Rate – tečaj Hrvatske Narodne Banke
  • Hoću u kino! – popis hrvatskih kina i njihov raspored
  • Horvat Andro – aplikacija za Android uređaje koja prikazuje najnovije informacije iz hrvatskog internetskog prostora.
  • HotFuzz – saznajte što se zbiva u vašem gradu
  • HRT Teletext – čitajte najnovije informacije objavljene na HRT teletekstu
  • HrStock – pregled burzovnih indeksa regije
  • Lociraj! – traženje obližnjih točaka (POI) – mobilni klijent za Lociraj.net
  • Lokacijski Alarm – podsjetnik o vama važnim lokacijama, pali se kad ste u blizini neke od njih
  • Ljetni Recepti – 20-ak recepata za osvježavajuće napitke koje možete sami napraviti u svega nekoliko minuta
  • Meet Croatia – sakupljajte bodove posjećivanjem lokacija u Hrvatskoj
  • Meet Friends@Vip – jednostavno organiziranje sastanaka s prijateljima putem poruka, slika, zvučnih zapisa i lokacija te pregleda javnih događaja u blizini
  • Mjere (Measures) – ucrtavanje mjera u postojeće slike
  • Mobilisis ATM – pronađite najbliži bankomat u Hrvatskoj
  • Mobilisis Fleet – pratite lokaciju svojih vozila, zaposlenika ili djece (moraju imati instaliranu Mobilisis Tracker aplikaciju)
  • Mobilisis Parking – aplikacija za plaćanje parkinga
  • Mobilisis Tracker – aplikacija za praćenje lokacije mobitela (za praćenje treba koristiti Mobilisis Fleet aplikaciju)
  • mPlaćanje – brzo i jednostavno plaćanje parkinga, garaže ili javnog gradskog prijevoza putem SMS-a u raznim gradovima Hrvatske
  • Novinator – Novinator vam omogućuje pregledavanje vaših omiljenih news portala čak i kada nemate pristup Internetu
  • Novine – pratite najnovije vijesti iz nekoliko domaćih portala
  • Parking – jednostavno plaćanje parkinga
  • Poštanski broj – pregled poštanskih brojeva i ureda unutar Republike Hrvatske.
  • Praznik – prikaz hrvatskih praznika i blagdana
  • Prepaid status widget – provjeravanje stanja prepaid računa i drugih USSD funkcija
  • PrvaPomoc (First Aid) – aplikacija za bilježenje kritičnih informacija kod hitnog slučaja
  • Qibla Compass – aplikacija za vjernike muslimanske vjeroispovjesti – vremena molitava te udaljenost i smjer Meke
  • Rođoš – omogućava vam da na jednom mjestu vidite sve nadolazede rođendane
  • Slooshaj! – aplikacija za slušanje hrvatskih radio stanica putem Interneta
  • Slušaj Radio! – slušanje hrvatskih radio stanica putem Interneta
  • SMSparking – plaćanje parkinga u preko 50 hrvatskih gradova
  • StormWatcher – korištenjem radarske snimke oblaka, aplikacija pokušava predvidjeti nevrijeme
  • Teletext – aplikacija za čitanje HRT Teleteksta
  • Tele2SMS – aplikacija za besplatno slanje SMSova za Tele2 korisnike (putem online Tele2 usluge besplatnog slanja SMSa)
  • This phone is mine! – osvetite se prijateljima koji isprobavaju vaš mobitel
  • Trambus – lakše snalaženje u autobusnom i tramvajskom prijevozu Zagreba automatski računajući rute, locirajući najbliže stanice.
  • Tramzilla – aplikacija za praćenje tramvajskog prometa
  • TransDict – riječnik i prevoditelj
  • Transmeet.TV MusicMap – detaljni pregled zanimljivih glazbenih događanja
  • Troskovnik – planiranje odlaska u kupovinu i računanje troškova prilikom kupovine
  • TVDroid – TV vodič, podržava ~260 TV postaja u Hrvatskoj i široj regiji + satelitski programi
  • Tv Guide – prikaz programa hrvatskih TV postaja s mogućnošću odabira kanala, filtriranja i detaljnog pregleda
  • TV Raspored – brzi pregled tjednog TV programa
  • VIP RoamingViewer – informacije o roaming cijenama, operaterima za korisnike VIPNeta
  • VMC application – mobilni klijent za Croatian Vip Music Club portal
  • Weather Forecast USA – vremenska prognoza za SAD
  • Weekend in Croatia – višejezična aplikacija za pronalaženje vikend/turističkih lokacija (mobilni klijent za vikendi.com)
  • Svjetozor / Worldscope – pregledavanje slika s web kamera diljem svijeta
  • Young Duke Domagoj – preživite što duže dok vas napada horda zombija
  • Zagreb Tram – prikaz tramvajskih linija, stanica, najbliže stanice, voznog reda, kupnja karte za ZET
  • ZETPanic – brzo aktiviranje usluge ZET mPrijevoz
  • Žabolomac – žabac iz bajke kroz 30 nivoa i 3 područja treba savladati niz izazova kako bi došao do svoje princeze

Napomene: Oneliner opisi pojedine aplikacije preuzeti su iz njenog opisa u Marketu, uz ponegdje slobodan prijevod sa engleskog i skraćivanje/parafraziranje opisa – ako uočite bilo koju grešku ili smatrate da sam krivo prepričao opis, ili ste našli aplikaciju koju ja nisam pa je nema u popisu, molim vas da mi javite. Također, većinu ovih aplikacija nisam isprobao, a i za one koje jesam, ovdje ne donosim svoj sud, mišljenje ili preporuku. Prilikom isprobavanja pojedine aplikacije, preporučam pročitati komentare na Marketu (te dati i vlastiti komentar/ocjenu, čime ćete autoru aplikacije dati dragocijeni feedback za daljnji razvoj iste).

Update: dodane aplikacije: Žabolomac, aMazing Submarine, HrStock, Meet Croatia, Tv Guide, Mobilisis (ATM, Fleet, Parking, Tracker), Praznik, Rođoš, VMC application, Hoću u kino!, Gdjesi.com, Tele2SMS. Maknut Columbus (slovačka aplikacija).

Update2: dodani HRT Teletext, HotFuzz, Transmeet.TV MusicMap, Worldscope

Update3: dodani Elevation and Sea Depth, Qibla Compass, Weather Forecast USA.

Rat web video formata: VP8 vs. H.264 (iliti Google vs. Apple)

VP8 vs. H.264

Prošli tjedan je Google na svojoj IO konferenciji objavio kako će svoj VP8 video kodek učiniti dostupnim svima pod slobodnim licencama. Samu objavu podržao je veliki broj organizacija i firmi, među ostalima Mozilla, Opera, Adobe, donekle Microsoft, kao i neki proizvođači hardvera – nVidia, ARM, AMD, Texas Instruments.

Posebnost objave je to da je VP8 ne samo kvalitetan (kvalitetniji od H.263, Theore ili Flash videa) i besplatan (odnosno enkoder/dekoder i specifikacija su potpuno otvoreni i slobodni za korištenje) nego je i neopterećen patentima. Točnije, Google kaže da je u posjedu svih patenata koje VP8 koristi, kao i da te patente daje u slobodno korištenje svim korisnicima VP8 kodeka. U praksi ovo znači da bilo tko može koristiti kodek (bilo za kreiranje sadržaja, distribuciju, ili samo gledanje) bez da ima obavezu bilo kome bilo što plaćati.

Worse is better?

To ga čini puno privlačnijim (sa pravno/ekonomske strane) od H.264, trenutno najzastupljenijeg (ako ne računamo ne-hd Flash videe, koji koriste stariji i lošiji kodek) kodeka za web video. H.264 je tehnološki bolji od VP8, ali je opterećen patentima. MPEG-LA, organizacija koja zastupa vlasnike patenata koje koristi H.264 trenutno dozvoljava njegovo korištenje uz prilično liberalne uvjete, ali vrlo je vjerojatno da će ih pooštriti (tj. početi naplaćivati) kad zaključi da joj se to isplati – odnosno čeka da većina sadržaja bude u H.264 i da ga svi koriste, pa će onda samo ubirati svoj dio.

Iscrpnu usporedbu tehničkih karakteristika oba kodeka napravio je Jason Garrett-Glaser, glavni developer na x.264 (open source H.264 enkoder, vjerojatno najbolji na svijetu). Njegov zaključak je kako je VP8 tu negdje po kvaliteti kao osnovna verzija H.264 (tzv. Baseline Profile, inačica koja se većinom koristi u mobilnim uređajima), dok su naprednije verzije H.264 puno bolje od VP8 (dakle, nećemo uskoro gledati 1080p filmove u VP8 kodeku). Također kaže da su sami enkoder i dekoder trenutačno prilično ne-optimalni, za što je realnio zaključiti da će se popraviti s vremenom.

Jason također tvrdi da su VP8 i H.264 zapravo vrlo slični – toliko slični da je moguće da VP8 ipak krši patente iz H.264. Njegovo mišljenje također dijeli i Steve Jobs, iako je za vjerovati da je to Jobsov primarno politički stav (Apple svugdje koristi H.264, jedan je od vlasnika patenata nad njim, i nikako im ne odgovara da svi ostali pređu na VP8).

Rat patenata

S druge strane, prilično je teško vjerovati da brojni odvjetnici Googlea i ostalih firmi koje ga podržavaju u ovome projektu nisu vrlo pažljivo pregledali svaki komadić kodeka i uvjerili se da nema opasnosti. Softverski patenti su vrlo specifični – da bi se dokazalo da netko koristi tuđi patent, potrebno je dokazati da precizno radi točno ono što piše u patentu. Kod H.264 stvar je čista, jer sam standard specificira točno one stvari koje su i u patentima. Ali kod VP8, ako je on samo “sličan”, ne mora značiti da krši bilo što. Dapače, lako je moguće da su očiti nedostaci VP8 u odnosu na H.264 izostavljeni baš zato kako bi se zaobišli patenti.

Naravno, MPEG-LA je već najavila pripremanje “patent poola” i analizu VP8 kako bi ustanovila koji su patenti prekršeni. Ali njihovu izjavu treba shvatiti u kontekstu toga da se oni samo tim i bave, i već godinama najavljuju da će krenuti u pohod na Vorbis (slobodni i otvoreni audio kodek) zbog povrede neimenovanih patenata, pa još nisu. S druge strane, Google se drži prilično samouvjereno, i već je najavio da će svi sadržaji na YouTube-u biti rekodirani u VP8.

Ono čemu se mnogi nadaju i što bi svakako zacementiralo sigurnost u VP8 je Googleova izjava da će na sebe preuzeti sav rizik od eventualne tužbe za povredu patenata – no teško je vjerovati da bi se Google želio toliko izložiti, bez obzira na to koliko su samouvjereni. U nedostatku toga, vrijeme će pokazati koliko su strahovi oko VP8 utemeljeni. U svakom slučaju, zanimljiva su vremena za web <video/> pred nama.

PS. VP8 podrška dostupna je već za brojne free software multimedia projekte, među kojima su GStreamer, FFMpeg, MPlayer, VLC, itd. Više informacija kako gledati VP8 sadržaje može se naći na stranicama WebM projekta. I hrvatski web može se pohvaliti eksperimentalnom podrškom za VP8 na CARNet Media on Demand portalu.