Ko sem danes posodobil chromium, sem opazil precej novosti. Najbolj vidna je podpora za teme. Uporabniki pa bodo tudi veseli html5 video podpore, ki sedaj predvaja filme. Edino težavo, ki se mi pojavlja pri html5 video je prekinjajoči zvok.

Še vedno pa mi ni uspelo usposobit flash vstavek. Vendar sem prepričan, da je za to kriv moj 64-bitni sistem. Imel sem upanje, da bodo chromium kmalu prevedli tudi v 64-bitno kodo, vendar sem se motil. Argumenti, ki jih stran navaja, se mi zdijo precej neumni. Sedaj moram svoj 64-bitni sistem umazati z vrsto 32-bitnih knjižnic.

Ko bom pa imel malo več časa, pa bom po vsej verjetnosti objavil kratek prispevek za vse tiste, ki jih zanima WebKit razvoj. Članek pa bo govoril o postopkih, ki jih WebKit izvede, da naloži HTML stran. Za vse tiste, ki vam je WebKit tuja reč: to je spletni pogon,  s katerim lahko prikazujemo HTML vsebine. Taisti pogon tudi uporablja brskalnik Chrome (chromium), vendar malenkost spremenjen. Tako da, stay tuned!

Ustvaril sem majhen wiki za nekatere projekte, ki jih delam oz. se jih nameravam lotiti. Wiki lahko obiščete tukaj. Če pa koga kakšen projekt posebej zanima, mi pa to kar javi na mail.

Večkrat se je zgodilo to, da sem želel nekemu prograu dodati vsaj osnovne funkcije za omrežje. Vendar se mi ni dalo pisati drobovja, ki ima ime “unix sockets”, zato sem začel majhen projekt, ki nosi ime “pnetlib”. Gre pa se za preproste omrežje funkcije. Trenutno implementacijo lahko pogledate tukaj.

Poleg enostavnih funkcij je tudi načrtovana podpora za TLS povezave, Unix lokalne povezave za IPC in določene optimizacije za pogosto pošiljanje. Koda pa je pod BSD licenco in zato ni praktičnih omejitev glede uporabe. Tukaj pa je trenutna TODO lista:

 - support for TLS sockets,
 - support for local sockets for IPC use,
 - more thread safety using mutexes,
 - basic file transfer operations,
 - packet scheduling if the connection should be optimized for frequent transmission - add real support for signals, vtable implementation would be great
  1. cscope – to kar je za kirurga skalpel, je za programerja cscope. Na orodje lahko gledamo kot naprednejši ctags. Naloga orodja je ta, da iz drevesa izvorne kode prebere funkcije in simbole in jih shrani v bazo.  Z vim vstavkom se ta baza lahko bere preko kombinacijo tipk, kadar brskamo po že obdelani kodi. Iščemo pa lahko po definicijah funkcij, izpis klicev na funkcijo, vse simbole z istim imenom v različnih datotekah. Kombinacija tipk pa hkrati omogoča, da se vim razcepi ali vodoravno ali pa navpično, kjer je v novem delu prikazan rezultat povpraševanja po cscope bazi. Sama baza se tudi hitro generira.
    Shrani.si
  2. NERDTree – skripta, ki vim okno razdeli navpično in prikaže vsebino imenika. Torej skripta nam prikaže datotečni brskalnik.
    Shrani.si
  3. FuzzyFinder – še en način za brskanje po imeniku znotraj vim, ki se pojavi v nekakšni “popup meni” obliki. Vendar seznam datotek se samodejno krči glede na naš vpis.
  4. ObviousMode – zelo praktična skripta za vstavljanje zaznamkov preko kombinacije “mm” in pomik po njih s tipko F2. Vse vrstice, ki vsebujejo zaznamko so ob robu tudi označene.

Večkrat sem že naletel na težavo, da bi moral v gdb-ju izpisat stanje neke podatkovne strukture. Vendar to na koncu nisem. Pred kratkim pa sem ugotovil, da tudi gdb podpira skriptiranje. Kar pomeni da lahko sedaj iteriram skozi seznam kar preko zanke. Ko sem še malo raziskoval gdb sem tudi izvedel, da naj bi prihajajoča verzija 7.0 (ki že zamuja) podpirala Python skriptiranje.

Na sistem mi je uspelo naložit Chromium in kot se izkaže v najnovejših gradnjah, se brskalnik zelo hitro izpopolnjuje. Podpira prevzem Gtk+ tem, kar omogoča brskalniku, da se bolje zlije z namizjem in poskrbi za celovitost. Žal pa so gradnje samo 32-bitne kar pomeni za 64-bitne uporabnike namestitev 32-bitnih knjižnic in uporaba le-teh. Preizkusno naj bi tudi že deloval Flash vstavek vendar ga meni ni uspelo nastaviti.

Prejšnji teden sem migriral na Arch. Vmes sem imel Fedoro, ki se je izkazala za sistem z ogromno novosti (posebej všečen je nov boot proces).Vendar sem imel velike težave z zvokom (beri PulseAudio). Po neuspelih poskusih popravljanja, sem se odločil da ArchLinuxu dam še eno priložnost po tem, ko sem zvedel zakaj mi je prenosnik zmrzoval (krivi so bili intel gma gonilniki).

Celoten sistem mi je uspelo nastaviti v pičlih 2h urah, kar je bolje kot prvič (približno dva dneva da je vse delovalo). Zelo sem zadovoljen, saj mi je tudi uspelo nastavit modesetting novost za intel grafične, ki prepričuje utrip zaslona med skokom iz TTY terminala v X okolje. Tako celoten boot proces zgleda veliko gledkjši. In ko že govorimo o zagonu, se mi celoten sistem od menija GRUB pa do GDM pozivnika zaganja 23 sekund, kar je presenetljivo hitro. Vendar je še maneverski prostor za hitrejši zagon, saj init skripta, ki se poganja med zagonom, omogoča paralelni zagon procesov, tako kot usplash pri Ubuntu vendar je veliko bolj primitiven (npr. ne pozna odvisnosti).

Ker ima Arch že jedro 2.6.30, se mi tudi ne sesuva več. Uspelo mi je tudi namestiti obvestila programov v balončku, kot ga pozna Ubuntu Jaunty.

Mogoče bi še omenil Linux, ki sem ga na hitro poskusil preden sem naložil Arch. Ta je Foresight Linux. Gre se za rolling-release kot je Arch ali Gentoo, vendar za upravitelja paketov uporablja conary. V grafičnem načinu pa uporablja PackageKit za obdelavo paketov. Je pa namizna distribucija, ki prihaja z namizjem Gnome in ima privzeto nameščene pisarniške in namizne programe, kar jo uvršča v skupino distribucij, kot sta Fedora in Ubuntu. Ima pa še relativno majhno skupnost, tako da boste morali tudi sami malo več prebrati, če boste naleteli na težavo. Glavni vzrok, zakaj Foresight ni dolgo ostal na disku pa je ta, da nisem uspel nastaviti samodejno postavitev zašifriranega /home imenika ob prijavi v namizje.

Kot je že potrjeno, bo prihajajoči Ubuntu 9.10 namesto IM odjemalca Pidgin prihajal z Empathy. To je nov IM, ki je tudi blagoslovljen iz strani projekta GNOME. Empathy uporablja knjižnico Telepathy za dostop do MSN, IRC, XMPP, ICQ, Yahoo protokolov. Ima tudi sposobnost, da prevzema protokole, ki jih podpira Pidgin.

Posebnost knjižnice Telepathy je ta, da je zgrajena zelo modularno, tako da se vsak podprt protokol poganja v lastnem procesu. Ker je dobro integrirana v namizje GNOME, je tako možno dostopati do kontaktov preko ostalih programov (npr. Evolution, Nautilus).

Nekatere zanimive lastnosti razvojne različice Empathy pa so podpora za geolokacijo in podpora za Adium teme.  Geolokacija omogoča prikaz naših kontaktov na zemljevidu. Podatke o lokacijah pa lahko dobi preko IP številke, GPS naprave ali pa telefona. Ker pa novejša izdaja Emapthy podpira spletni pogon Webkit, lahko preko njega v pogovorih prikazujemo teme, ki so narejene za Adium, ki je IM odjemalec za Mac OS X (ki pa sicer za protokole uporabja enako knjižnico kot Pidgin)

Shrani.si

To pa je izgled Empathy, ki v pogovorih uporablja temo paraphelnaria. Na desni strani pa je odprto okno za geolokacijo, ki pa presenetljivo pravilno prikazuje stanje na Slovenski južni meji!

Kaj se zgodi, ko posameznik misli, da ve bolje kot pa državljani, kaj je dobro za državo? Nastane diktatura, tako kot nastaja v Iranu v tem trenutku.

Na milijone ljudi je šlo na cesto, da bi pokazalo svetu nelegalnost volitev. Med tem, ko je večina evropskih medijev poročala o nemirih, so mediji v ZDA bili povsem ignorantni do dogodkov. Tako nobena večja medijska hiša ni posvečala več časa za poročanje iz Irana. Šele po množičnih poročanjih po internetu, so se novinarji zmigali iz stolov. Čeprav niso imeli prav dosti dela, saj so lahko samo čakali na sporočila preko Facebook, Twitter in ostalnih socialnih strani.

In ravno s pomočjo socialnih strani se je pričela revolucija v Iranu, saj je to trenutno njihov edini stik, ne samo z ostalim svetom, temveč tudi z ostalimi sodržavljani. Namreč Iranska vlada je pričela cenzurirat internet in utežila uporabo telekomunikacijske tehnologije (telefoni, SMS sporočila). Preko Facebook skupin se demonstranti osklajujejo, preko Twitter sporočil pa širšemu svetu pripovedujejo o dogodkih.

Ker pa Iranska vlada poskuša zatišati tudi Twitter skupnost, so se pojavli pozivi, naj ostali Twitter uporabniki nastavijo svoj časovni pas na GMT+3:30 (Teheran) in s tem utežijo blokiranje storitev sporočanja. Svoj časovni čas sem že spremenil.

Pomagajte Irancem in nastavite vaš Twitter časovni pas!

Odkar je prišla prva gradnja Google Chrome za Linux, le-tega uporabljam pogosteje. Izkazalo se je, da se Chrome v primerjavi z Firefoxom zaganja neverjetno hitro. Tako prvi zagon traja okoli 2 sekundi, poznejši zagoni pa pol sekunde oz. se okna pojavljajo kar v trenutku.

Kljub alpha stanju, se brskalnik obnaša presenetljivo stabilno. Tudi hitrost odpiranja strani je neverjetno hitrejša od Firefoxa. Vendar to hitrost bi lahko pripisali nepodpori za vstavke. Tako se zraven strani, ki običajno naloži kul Flash reklam, teh ne naloži in posledično se stran tudi prej pokaže.

Kot že omenjeno, Chrome ne podpira vstavkov, tako da še ni podpore za npr. Flash ali Java applete in ostale vstavke. Opazil pa sem še eno zanimivost. Namreč po intenzivnem pomikanju gor in dol po strani, poraba CPU naraste za okoli 70% in to na mojem dvojedrniku. Enako dejanje pri Firefoxu pa CPU nabije na 50%. Vendar pa Firefox nove dele strani počasneje izrisuje in pojavijo se zakasnitve (šteka), kar je ravno nasprosto pri Chrome, kjer pomikanje po strani poteka izjemno gladko. Morda je za hiter izris v Chrome kriva ravno knjižnica za 2D grafiko (skia), ki se razlikuje od tiste, ki jo uporablja Firefox (cairo). Lahko pa je to znak, da so pri Googlu razvili algoritem, kjer se izrisovanje strani porazdeli po procesorjih oz. pri mojem primeru po jedrih.

Naslov vsebuje besedo chrom(ium)e, ker imam na sistemu naložen tako Google Chrome, kot Chromium. Med tem, ko je Chrome zaprtokoden izdelek od Google, je Chromium odprtokoden projekt brskalnika, licenciran pod zelo svobodno BSD licenco. Brskalnik Chrome pa temelji na projektu Chromium, vendar uradna koda za Chrome ni na voljo za javnost.

Končno sem si razjasnil, zakaj mi Linux zadnji mesec deluje tako nestabilno. In še tedaj, ko sem imel Arch in sedaj, ko imam Ubuntu, mi namizje preprosto zamrzne. Vzrok pa je v neposrečeni kombinaciji Intel gonolnikov za grafični čip in Linux jedrom. Namreč grafični podsistem za Linux je pred kratkim dobil nekaj novih nastavitev, kot je GEM v jedru, Intel gonilniki pa UXA način. Težava je v tem, da se morata ta dva ujemati.

Če imamo malo starejše jedro in novejše Intel gonilnike se pričnejo težave. Težava je, da razvijalci Intel gonilnikov uporabljajo najnovejše jedro za preizkušanje njihove kode, ki se izkaže za stabilno. Distributerji Linux sistemov pa uporabljajo starejše verzije Linux jedra in najnovejšo izdejo Intel gonilnikov. Zaradi te neodgovornosti iz strani distributerjev, pa sedaj lastniki Intel čipovja doživljamo nestabilnost.

Za Ubuntu naj bi bila rešitev pri namestitvi jedra 2.6.30, ki je izšel pred nekaj dnevi. Podrobnost pa lahko zveste tukaj.