Danes sem prenovil izgled moje domače strani in ji tudi dopolnil vsebino. Stran sedaj tudi gostuje na strežniškem prostoru, ki ga je Visionect ponudil po tem, ko mi je domači strežnik po dolgih letih odpovedal.
Moram priznat, da sem po začetnem razočaranju nad Ubuntu 9.10 sedaj precej zadovoljen s sistemom. Vse deluje kot mora. Gonilniki za ATI Radeon delujejo brezhibno, prav tako “suspend to disk” in “sleep”. Še vedno pa je poraba energije na bateriji prevelika. Namesto 3:30h baterija zdrži ~ 2:30. Kljub temu sistem deluje stabilno in odzivno.
Naslednja različica Ubuntu, ki pride aprila letos in bo LTS izdaja, pa bo med drugimi vsebovala namizje GNOME 2.30, boljšo podporo za transparentne programe in z jedrom 2.6.32. Treba je opozorit, da se je zaradi načrtov GNOME spremenil datum izdaje namizja 3.0. Tako je izdaja 2.30 še vedno pod 2.x platformo. Namizje 3.0 pa pride septemba/oktobra letos, ki bo tudi vključeno v Ubuntu 10.10.
Kot ste lahko na internetu zasledili, je Google pod vodstvom Roberta Pikea izdal jezik Go , ki velja za strukturiran sistemski jezik z dobro paralelno podporo in z zelo hitrim prevajalnikom. Jezik ima namen se neposredno potegovati za naslednika uspešnega jezika C. Ker je jezik visoko nivojski, tako prinaša precej novosti, kot so samodejno upravljanjem s pomnilnikom, vgrajena podpora za nitenje preko “lightweight” niti, vmesnike (interfaces), kanale in veliko več. Jezik Go je najlažje opisati z “c meets python”. Pripravljam tudi kratko predstavitev jezika.
Zadnje čase redkeje blogam. Razlog za to tudi morda tiči ob intenzivnejšem twittanju . Morda pa je tudi kriva šola in služba, ki poskrbita, da mi ni dolgčas.
Funkcijsko programiranje
Mogoče je le samo krajša faza, vendar ta trenutek me zelo zanima funkcijsko programiranje. Name so močno vplivale diskusije na ##c@freenode.net, nedavno predavanje o lispu v kiberpipi in učenje jezika prolog v šoli.
Torej funkcijsko programiranje spada pod deklarativno paradigmo programiranja, kar je obratno od imperativnega, ki je trenutno v industriji zelo razširjen. Deklerativno programiranje pa je predvsem razširjeno v akademskih sferah. Zanjo pa je predvsem značilno sledeče:
funkcije so prvorazredni predmeti,
rekurzija namesto iteracije,
Posamezni jeziki, ki spadajo pod deklerativne jezike, imajo nato še svoje lastnosti. Mogoče bi izpostavil dva jezila. To sta lisp in haskell. Lisp je zanimiv splošnonamenski jezik, ki ima precej skupnega z XML jezikom. Obstaja celo XKCD strip , ki prikazuje novopečenega lisperja. Lepši uvod v lisp pa najdete tukaj .
Karmični Ubuntu
Izšel je Ubuntu 9.10, ki pa, sodeč po prvih odzivih , razočara. Moje mnenje je, da je 6-mesečni cikel za izdaje prekmalu in bi ga morali razširiti na vsaj 9 mesecev oz. eno leto. Težava je sedaj v tem, da so uporabniki postali razvajeni in vedno želijo “the latest and greatest” programje, četudi pomeni to na račun stabilnosti. Zato distributerji, kot so Fedora in Ubuntu, velikokrat poberejo iz repozitorijev kar neizdano kodo za programje (npr. NetworkManager, Xorg). Posledica tega je so nepopolni programi, velike razlike med upstream in downstream (to kar se je zgodilo z Intel grafičnimi gonilniki v 9.04). Morda bi moral Ubuntu za svoje LTS izdaje imeti neodvisen urnik, ki bi lahko šel preko teh 6 mesecev.
Sam sicer že od marca uporabljam ArchLinux, ki je rolling-release distribucija. To pomeni, da so novi programi v uradnih repozitorijih na voljo kar kmalu po izdaji (običajno dan/dva po izdaji). Če redno posodabljam sistem, imam tako vedno najnovejše programje. Vendar ima takšen način posodabljanja sistema svoje temne plati. Včasih se zgodi kakšna nadgradnja, ki lahko sistem zlomi. Zato je dobro, da smo malce bolj pozorni pri nadgradnjah.
GNOME 3.0 bližje
Naslednja izdaja namizja GNOME bo prišla z obilico novosti tako za končne uporabnike kot razvijalce. Prevzem JavaScript kot glavni jezik za razvoj lupine, bo nekatere razveselil, druge pa razočaral. Vendar jezik kot jezik, ima svoje dobre in slabe plati. Zagotovo je varnejši od npr. jezika C, ki še vedno ostaja de facto jezik razvoj jedra namizja.
Nova lupina namizja bo povsem osredotočena na razporejanje opravil in brskanje po zgodovini. Bolj podrobne novosti pa sem že omenil v preteklosti. Vprašanje je sedaj koliko obstoječih GNOME uporabnikov bo uspela 3.0 obdržati in koliko novih bo privlačila. Sam sem bil dolgo zvest uporabnik GNOME od različice 1.4 dalje, ko je namizje dobilo brskalnik Nautilus. Vendar sem pred nekaj meseci zamenjal okolje in prešaltal na wmii, ki je pametni upravitelj oken. Nekaj več o wmii sem tudi že povedal.
Ukazi za git:
Kako potegnemo source oz. nekaj z git programom / How to download with git
git clone git://yourhost.org
Ko pa sem totega videl kako se smeji onim… LOOOOL!! Morete videt.!
Po dolgem času spet nekaj pišem. Zapisal bom par ukazov, ki mi večkrat pridejo prav pri nadzoru prometa uporabnikov in nezaželjenih gostov.
Izpiše vse po interface eth0 in vratih 80
tshark -i eth0 -f "port 80"
Z parametrom -R “” lahko dodamo prikazne ( display ) filtre. Ker poslušamo port 80 bomo uporabili HTTP prikazne filtre. Več o filtrih .
tshark -i eth0 -f "port 80" -R "http.request and http.location"
With the release of gdb version 7.0, the debugger gained support for python scripts. This means that we can extend gdb with out own commands or create functions to operate with data structures (lists, BLOBs, …)
There are several ways to write python scripts in gdb 7. The quickest is to type the ‘python’ command in gdb prompt, write our script and quit the prompt by typing ‘end’. The other method uses object filenames where you have an object ‘test1′ and the python script for the object is ‘test1-gdb.py’. If gdb finds such a file in the current path, it will automatically open it.
Let’s say we have a structure in our program:
struct _node {
int weight;
char tag[20];
};
We use the _node struct in out program:
int main () {
struct _node *mynode = malloc(sizeof(*mynode));
mynode->weight = 210;
strcpy(mynode->tag, “dummy node”);
free(mynode);
return 0;
}
When compiling the program and running it under gdb, we have to address the structure members by ourselves and sometime even convert them to an appropriate format. This might be acceptable if we operate with a single structure but what if we have a linked list or even a more complicated data structure? For a list we want to print out all the items in it. Doing that by hand would take unreasonable amount of time. Now gdb had scripting support before 7.0 but now we can do in in Python. This is pure awesomeness.
Back to the example. Out script looks like this:
import gdb
def print_node(value):
frame = gdb.selected_frame()
try:
val = gdb.Frame.read_var(frame, value)
except:
print “No such variable”
return
if str(val.type) == “struct _node *”:
print “Weight: ” + str(val["weight"])
print “Tag: ” + str(val["tag"])
else:
print “Is not a node (” + str(val.type) + “)”
We make some type checks so we don’t operate on the wrong variable. As you can see, all we do is get the current frame, get the value from the frame by it’s string representation and because the value is a structure, we lookup the members by looking up the member name in the value object.
Now we compile the program with debug support (-ggdb -O0) and start gdb.
luka@luka-laptop:~>
(gdb) b main
Breakpoint 1 at 0×40056c: file test1.c, line 12.
(gdb) r
Starting program: /home/luka/test1
Breakpoint 1, main () at test1.c:12
12 struct _node *mynode = malloc(sizeof(*mynode));
(gdb) n
14 mynode->weight = 210;
(gdb)
15 strcpy(mynode->tag, “dummy node”);
(gdb)
16 free(mynode);
(gdb) python print_node(“mynode”)
Weight: 210
Tag: “dummy node000000000000000000″
(gdb)
In this gdb session we first create a breakpoint at main(), then run the program. When we get to the breakpoint we create our struct and fill it with data. Then we invoke the function print_node() that is in our python script. Invocation begins with the keyword ‘python’, followed by the function call. As a parameter we give the name of our struct variable. We then see an output from the print_node() function that correctly prints the structure values.
This is a trivial example but it’s a start. If we would like to traverse a list, we’d probably iterate through some ‘next’ member until the value is ”0×0″ which means NULL.
Naredil sem launchpad stran za gsfm file-manager. Glavni razvoj še vedno poteka na github straneh , vendar je na launchpad mirror za git repozitorij, tako da lahko najnovejšo kodo dobite tudi preko ukaza:
bzr branch lp:gsfm
Snapshot master repozitorija v obliki DEB paketa sedaj dobite na tej strani .
V master pa je tudi že koda, ki doda dodaten “EXT” stolpec, ki prikazuje končnice datotek. To je predvsem praktično kadar imamo v imeniku RAR arhiv, ki je porazdeljen po različnih datotekah. Da lahko gsfm odpre arhiv s pravilnim programom, pa moramo izbrati datoteko s pravilno končnico, kar pa do sedaj ni bila vedno vidna zaradi krajšanja imen.
UPDEJT: v repozitoriju je sedaj tudi commit, ki omogoča branje izgleda iz config datoteke.
Uporabni ukazi za urejanje paketov – pkg_*
Izpis nameščenih paketov
pkg_info -a
Izpis vseh datotek in lokacij, ki jih vsebuje paket
pkg_info -L pidgin-2 .5 .5
Če se nahajamo na lokaciji, kjer je paket pidgin-2.5.5 ga lahko tako namestimo
pkg_add pidgin-2 .5 .5
Namestimo paket iz default ftp FreeBSD streznika
pkg_add -r pidgin-2 .5 .5
Namestimo iz default ftp FreeBSD streznika z dodatnimi informacijami
pkg_add -rv pidgin-2 .5 .5
Uporabni ukazi za urejanje portsov – /usr/ports
Izpis vseh programov, ki jih potrebuje za namestitev
make all-depends-list
Razširimo ports source v work direktorij
make extract
Namestimo ports source
make install
Odstranimo nalozen paket oz. program
make deinstall
Ponovno naložimo paket oz. program.
make reinstall
Počistimo razpakirano oz. extractano..
make clean
Uporabno z irca
Namestitev openoffice 3 z paketi:
<hexidigital> t3ch: http://freebsd.dev-urandom.com/packages/openoffice/
<t3ch> ok tnx you
<t3ch> that all is for 7.2 ?
<t3ch> ql
<hexidigital> t3ch: setenv PACKAGESITE http://freebsd.dev-urandom.com/packages/openoffice/ && pkg_add -r http://freebsd.dev-urandom.com/packages/openoffice/openoffice.org-3.0.1.tbz
FreeBSD Guide
Torej moj home-brewed brskalnik datotek , podoben programu Norton Commander , se počasi bliža prvi izdaji. Kar pomeni da bo program kmalu pripravljen za vsakdanjo uporabo. Trenutno podprte funkcije so tako:
ustvarjanje imenikov, preimenovanje datotek/imenikov, brisanje datotek, kopiranje datotek,
pomik med pogledoma preko tipke Tab
izpis vseh postavljenih zunanjih naprav (USB diski, …) preko tipke CTRL+Tab,
opazovanje trenutnega imenika za spremembe, sortiranje po imenih, velikosti, lastniku
nastavljanje izgleda (trenutno samo preko izvorne kode)
Za prvo izdajo pa manjkajo še sledeče funkcije:
rekurzivno kopiranje, brisanje,
odprava manjših napak
Izdaja bo verjetno kar kmalu, zato iščem prostovoljce, ki so pripravljeni izdelati kakšne RPM in DEB paketke.
Stay tuned.
Ker sem nedavno migriral z namizja GNOME na wmii, sem iskal neko spodobno orodje za brskanje po imenikih. Iskal sem čim manj bloated programe. Tukaj se je gnome-commander kar dobro odrezal. Vendar pa je njegova izvorna koda zaradi preskoka iz C v C++ grozovita mešanica obeh dveh jezikov. Poleg omenjenega gnome-commander ne upošteva MIME pravil za programe in zato odpira napačne programe.
Zato sem se odločil na hitrco zmazat en osnoven brskalnik z dvema pogledoma. Podpira Gtk+ teme za ikone, pravilno upošteva MIME vrste, je zelo lahek, vendar še v razvoju. Zaradi tega še tudi ne podpira nobenih operacij npr. kopiranje, premikanje, ipd.
Izvorno kodo lahko potegnete iz git repozitorija. Domača stran brskalnika je zaenkrat kar na github .
V prihodnosti nameravam podpreti vse osnovne operacije nad datotekami/imeniki ter bližnjice na tipkovnici.
Odkril sem vero Baha’i . Citat iz strani o načelih :
1.Opustitev vseh vrst predsodkov
2. Enakopravnost ženske in moškega
3. Prepoznanje relativnosti verske resnice
4. Odpravitev skrajne revščine in bogastva
5. Uresničitev vzgoje in izobrazbe za vse
6. Odgovornost vsakega, da samostojno išče resnico
7. Ustanovitev svetovne zveze držav
8. Ravnovesje med znanostjo in religijo
Potem sem se pa vprašal, zakaj bi kdo rabil vero, da bi uresničeval ideje 1, 2, 3, 4, 5. Po Bahai je torej potrebno verovat za dosežek teh temeljnih moralnih vrednot? Ni to mogoče doseči s preprostim pravilom “ravnaj z drugim tako, kot želiš da drugi ravnajo s tabo”? Bahai-jevci so torej za njihova načela našteli nekaj, kar je danes samoumevnega. Vendar nekatere točke pa so mi močneje padle v oči. Govorim o točkah 4, 6, 7, 8.
“4. Odpravitev skrajne revščine in bogastva” – to načelo nebi bilo narobe, če me nebi zmotila beseda skrajne . A res, samo skrajno revščino bi odpravili?
“6. Odgovornost vsakega, da samostojno išče resnico” – a tako, da bere izbrano literaturo (npr. iz vaše vere)?
“7. Ustanovitev svetovne zvezne države” – so morda imeli v mislih globalno politično velesilo (beri new world order). A ni ravno OZN bil ustanovljen, da bi imela vsaka država svoj “glas” v svetu. Sicer praksa dokazuje nasprotno, pa vendar “been there, done that”. Takšna zveza bi pomenila še večjo birokracijo pa razvrednotenje lokalnih parlamentov, kar že sedaj EU povzroča. Posledično to pomeni, da ima običajen državljan manjši vpliv na politiko, saj je do vrha politične piramide preveliko stopničk, da bi jih lahko smrtnik prehodil.
“8. Ravnovesje med znanostjo in religijo” – ah ja, prepričanje da lahko jablana prinese tako jabolko kot hruško. Znanost in religija se že po jedru razlikujeta, njune vrednote so popolnoma drugačne. Prva časti resnico, druga pa, hm, vero. Ravnovesje teh dveh bi pomenilo da lahko samo zaradi lastnega prepričanja nekaj postane resnica. Kar pa enostavno ne drži, nikoli ne bo in nikoli ni.
Končno so tudi prišli prvi 64-bitni buildi za Linux. Kar pomeni da lahko odstranim 32-bitne knjižnice, ki jih je chromium do tega trenutka potreboval za zagon.
ArchLinux uporabiki lahko 64-build dobite iz AUR repozitorija chromium-browser-dev .
Za flash podporo si prekopirajte 64-bitni flash plugin in ga skopirajte v imenik /opt/chromium-browser/plugins. Nato poženete chromium s parametrom –enable-plugins. In flash sedaj mora delovati.
Ker je brskalnik 64-bitni, lahko uporablja vse 64-bitne knjižnice na sistemu. Če sedaj videz preklopim na Gtk+, se tudi upošteva Gtk+ tema.
Sedaj sem že dokaj reden obljavljalec na Twittru . In seveda sem v iskanju prave aplikacije za twitranje na raznih platformah. Potreboval sem aplikacijo tako za Ubuntu in Nokio E63.
Za Ubuntu sem našel Gwibber. Ugotovil sem, da stable aplikacija ne vsebuje mnogo funkcionalnosti, ki jih imajo aplikacije kot npr. TweetDeck in Twhirl, ki sta spisana za AdobeAir platformo in sem ju uporabljal na WinXP. Ne diši mi prav AdobeAir vendar bom imel v glavi “Niso vsi Adobovi produkti enako slabi kot Flash v vseh OSjih!”
Seveda je mogoč dostop tudi do “development” verzije. Na launchpadu kliknite Trunk namesto Stable . Funkcionalnost se nato naenkrat izboljša na nivo vseh ostalih Tweeter aplikacij!
Gwibber si potegnite iz njihove uradne Launchpad strani
No za nokio pa sem našel najbolj s Twitter funkcionalnostjo nafilanego aplikacijo, ki je seveda tudi preprosta za uporabo Twibble. Ima vse kar vsebujejo veliki (t.j. desktop aplikacije) vendar vseeno omogoča dostop na majhnih ekrani 240×320. Aplikacija je zastonj. Je v beta fazi vendar še nisem doživel sesutja!
Prenesite si jo iz uradne spletne strani kjer omogočajo prenos tudi desktop aplikacije vendar Windows-Only.
Gwibber in Twibble sta zakon programa in ni razloga da ju ne bi uporabljali!!! S twitterjem naprej v boljši svet. Moje TwitBlodnje lahko spremljate na že objavljenem http://twitter.com/christooss
Prejšna objava: Christooss na twitterju
Članek na OSNews , kjer se avtor (neupravičeno) izživlja na X.org, mi je dal nekaj za mislit. Načeloma ne se strinjam z avtorjem, ker za nestabilnost njegovega namizja krivi X.org namesto gonilnikov.
Vendar pa ima prav, da v primeru če se X sesuje, barka nebi smela potopiti še vse ostale odprte programe. Razlog, da se to dogaja je predvsem v dizajnu, kjer je X strežnik, vsi grafični programi pa se na njega povezani. Ustvari se socket komunikacija. In če se strežnik sesuje, se zgubijo vse povezave nanj oz. se bodo grafični programi zaradi tega brez zadržkov zaprli.
Mogoče bi tukaj bila rešitev v tem, da bi se med knjižnico xlib in X strenikom nahajal minimalističen proxy strežnik, ki bi ob sesutju X strežnika znal ohraniti povezave do odprtih programov ter počakal tako dolgo, dokler se X ponovno ne postavi.
Vendar običajno nek program alocira določena stredstva, ki jih potrebuje za prikaz. Na primer površino za izrisovanje, tabelo signalov, stanje programa. Rešitev bi lahko bilo deljen pomnilnik, ki bi se tudi ob morebitnem sesutju X strežnika ohranil. Nekaj podobnega že obstaja v obliki dodatka xshm, ki namesto socketov uporablja deljen pomnilnik za izmenjavo podatkov.
V primeru sesutja X strežnika, npr. zaradi slabih gonilnikov, nebi zaprlo programe. Ko se bi Xorg ponovno postavil, se bi povezal na proxy in tako lahko dalje sprejemal/pošiljal ukaze, deljen pomnilnik o sejah pa bi povrnil nadzor nad sredstvi, ki so jih programi ob zagonu alociral.
Neizbežno se bliža mesec september, ki bo poleg novega šolskega leta prinesel Gnome 2.28. Zato razvijalci namizja že zdaj pridno razvijajo namizje Gnome tretje generacije, ki poleg popolne vizualne preobrazbe prinaša številne novosti:
integracija jezika JavaScript,
nov način za organizacijo naših opravil,
uporaba preteklih dejavnosti za hitrejše delo,
hitrejše iskanje dokumentov.
Integracija jezika JavaScript bo omogočila zelo prilagodljivo okolje, saj lahko do posameznih komponent na namizju (npr. pult) dostopamo kar s pomočjo JavaScript jezika. Za to poskrbi knjižnica gjs, ki uporablja Mozilla pogon Spidermonkey in GObject introspekcijo (za podrobnejši opis prebrskajte po zgodovini bloga).
Nov način za organizacijo naših opravil velja za temeljno novost namizja 3.0, ki ga bodo uporabniki najprej opazili pri ustvarjanju navideznih namizij, poganjanje novih programov in odpiranju dokumentov. Razvijalci so se tukaj odločili za koncept opravilno-orientiranega namizja . Ker običajno uporabnik uporablja računalnik za več opravil, je za njega pomembno, da si enostavno organizira delo in kasneje tudi hitro preklaplja med enim in drugim opravilom.
Preko projekta, ki nosi naslov “gnome-zeitgeist”, bo možno brskati po zgodovini naših opravil na namizju. Tukaj so mišljeni nedavno odprti dokumenti, pognani programi, predvajani filmi/glasba. Dostop do pretekle dejavnosti bo možen preko novega “Aktivnosti” pulta ali pa preko gnome-zeitgesit grafičnega vmesnika.
Načrtovana je tudi integracija projekta tracker, ki je zmožen indeksirati datoteke na disku in tako omogočiti zelo hitro iskanje ne samo po imenih datotek, temveč tudi po sami vsebini ali pa preko oznak. Preko posebnih gumbov, vidnih v pultu Aktivnosti bo mogoče vsakemu predmetu na namizju dodeliti oznako, ki jo lahko kasneje uporabimo za hitro iskanje.
Tudi ogrodje, iz katerega je zgrajeno namizje GNOME, knjižnica Gtk+, bo dobila nekaj zanimivih novosti. Različica Gtk+ 3.0 bo morda podpirala uporabo CSS stilov za določitev vizualnih tem. Razvijalci okenskega upravitelja Metacity pa se tudi potijo in poskušajo dodati CSS podporo za teme.
Novi pult Aktivnosti in pogled na trenutne delovne površine.
Seznam programov, ki so prikazani v pultu Aktivnosti.
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!
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
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.
NERDTree – skripta, ki vim okno razdeli navpično in prikaže vsebino imenika. Torej skripta nam prikaže datotečni brskalnik.
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.
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.
Danes sem se odločil, da se prijavim na twitter. Sicer ni tak big deal, ker ga bom večinoma uporabljal za komentiranja na ostale tweete. To mi je namreč zadnje čase zelo primanjkovalo. Vseeno bom objavil kakšen tweet o meni in z mano ampak to gotovo (kot večina) samo prve dni navdušene uporabe. Predvsem bodo padali gor kakšni linki do strani ipd. Zaenkrat vam podarjam na desni strani zadnjih 5 tweetov če pa ste zainteresirani pa me followajte na http://twitter.com /christooss
Pa še krajša navodila za uporabo twitterja in uporabne povezave:
Registracija je povsem preprosta oddite na twitter.com in se tam registrirajte z vam željenimi podatki. Takoj po uspešni registraciji vas sistem povpraša bistveno vprašanje:”Kaj zdajle delaš?” in odgovor na to vprašanje je tweet v jeziku facebooka je to trenutno stanje or smth.
Za unčinkovitejše branje in pisanje tweetov vam seveda spletni vmesnik ne bo dovolj! In prav je tako zato vzemite zunanjo (third party based) aplikacijo npr. Tweetdeck. Aplikacija vam omogoča filtriranje, dodajanje, brskanje, twittanje in vse kar si srce poželi! Super in uporabna stvarca.
Za še hitrejše twitanje uporabite enega od mnogih dodatkov za Firefox npr. Twitterbar
In to je to. Poleg objavljanja trenutnega počutja in delovanja lahko objavite tudi slike, video posnetke, povezave, zvočne posnetke ipd.
Skratka porabite twitter za reklamo vaših projektov ali pa za preprosto debato s kolegi! Meja je nebo. Spremljajte christoossa na twitterju in življenje bo lepše!
Aja če še niste opazili so in bodo moji twitsi v angleščini saj bom komentiral na večino angleško govorečih se ljudi
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)
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 .
Pa so se končale volitve ze evropski parlament. Udeleženost je okoli 20% 28%, kar je še nižje kot leta 2004. Od tistih 20% 28% udeleženih se je okoli 25% 27% odločilo za desničarsko SDS, drugi so bili SD in četrti Zares.
Poslušanje povolilnih komentarjev me spravlja v smeh. Ne razumem kakšna volja ljudstva je to, če pa se izrazi 20% 28% upravičencev. Zakaj naj bi se takšne volitve sploh upoštevale. Saj ni v javnosti bilo niti ene debate o evropskih vprašanjih, volicec ni moral ugotoviti, kje kandidati stojijo glede gensko spremenjene hrane, ekononmski krizi. Vse je je vrtelo okoli Golobiča in njegove bedne laži. Čudi me le to, kako lahko politiki, ki so se očitno lagali javnosti in se sprenevedal, naravnost v kamero pridigali, kako je Golobičeva laž oz. “white lie” kakor bi nekateri američani temu rekli, nedopustna, nemorala, nekaj najhujšega. Mediji pa pridno napihovali celotno zgodbo oz. “afero” do konca. Niti eden ni imel dovolj jajc, da bi povedal kako politika deluje. In tukaj so imeli celo javnost za norce. Kdor je takšen idealist in verjame, da je politika nedolžna kot Marija pred porodom Jezusa, je pomiljevanja vreden. Vendar niti eden ni povedal, da je laž v politiki nekakšno nujno zlo. Pa si predstavljate kako bi bilo, da bi politiki govorili le resnico? Dobili bi scenarij za odlično tragokomedijo. Sedaj pa so politiki z Golobičem dobili grešnega kozla in javnosti pokazali obsojanje laži.
In kje naj bi bil alarm za trenutno vlado, če se 50% od tistih 20% 28% populacije, ki je dejansko šlo volit, izrazilo proti trenutni vladajoči stranki? Dejansko je tako, da je večina volilcev bila tistih, ki so bili že opredeljeni. In kaj je počelo ostalih 80% 72% volilcev? Verjetno je večina ostala v tem deževnem dnevu doma. Zakaj pa bi se trudili hodit na volitve za tistih 7 ljudi, ki bodo realno imeli zelo malo vpliva v parlamentu EU, zato pa poceni hrano v menzi, masaže, fitnese, pa še plačo nad 10000 evrov?
Torej kakor mi je znano, ima 50% gospodinstev dostop do interneta. Kaj če bi naša država za vsakega državljana ustvarila digitalni certifikat, ki bi veljala kot osebna izkaznica za medmrežje. Tako bi se tudi volitve lahko izvajala preko interneta in s pomočnjo transparentnih (beri odprtokodnih) rešitev tudi zagotovila verodostojnost takšnih volitev. Mislim, da bi se v tem primeru udeležba lahko povečala tudi za 50%.
Hm torej nekateri ste že slišali za pojem globalizacija oz. “en prstan, ki vlada vsem.” To da ima EU dovoljšno avtoriteto, da lahko državo toži, če ne uzakoni sprejeto direktivo v EU parlamentu, pove marsikaj (kar se je tudi zgodilo z Švedsko, ki ni ubogala gospodarjev v EU). V kaj smo se le spustili?
Med tem, ko je Chromium za Linux že na voljo nekaj časa, je včeraj prišla prva razvojna gradnja brskalnika Chrome za Linux. Razlika v Chromium in Chrome je ta, da je prvi odprtokodni projekt, licenciran pod BSD-podobno licenco, Chrome pa zaprtokodni izdelek od Google, ki temelji na Chromium kodi.
Brskalnik je že dovolj dodelan, da lahko z njim brskamo po vseh straneh, ki ne zahtevajo vstavke. To pomeni, da še ni podpora za Flash in druge vstavke. Manjkajo še nekatere možnosti pri nastavitvah. Moti me tudi stil okna. Zgornji del, kjer so zavihki, je prevladajoča barva modra, kar pa nikakor ne sovpada z mojo sistemsko temo, ki je temno siva. Tukaj predlagam, da brskalnik upošteva sistemske barve.
Drugače pa je brskalnik zelo odziven, požene se hitro in tudi strani naloži zelo hitro. Če ga želite preizkusiti, najdete DEB pakete tukaj . Imejte pa v mislih dejstvo, da se vendarle gre še za razvojno gradnjo in da so napake in hrošči pričakovani.