Firefox 3 beta 2

Ovaj post pišem iz verzije Firefoxa u naslovu, pa htedoh da ostavim utiske. Tačna verzija je ovo: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b2) Gecko/2007121016 Firefox/3.0b2.

Firefox 3 beta 2

Na prvi pogled nema mnogo izmena u odnosu na aktuelnu stabilnu verziju. UI je skoro potpuno isti (u stvari ja nisam našao ni jednu konkternu razliku, sem combo-box-a koji se pojavi pri unošenju adrese). Ono što je novina je jedna zvezdica na kraju address-bara koja omogućava brzo dodavanje sajta u bookmarks i dodatna stavka u Bookmarks toolbaru nazvana Smart Bookmarks gde mogu da se vide najčešće posećivani sajtovi, poslednji dodati ili kategorizovano po tagovima koji mogu da se zadaju prilikom dodavanja.

Na nekoliko sajtova sam našao greške pilikom prikaza koje se nisu pojavlivale dok sam koristio stabilnu verziju, ali ne mogu da tvrdim da je to do FF-a, jer je sasvim moguće da na tim sajtovima standardi nisu ispoštovani.

U trenutku kucanja ovoga FF3b2 je zauzeo 21.1 MB memorije sa 5 otvorenih tabova i samo jednom učitanom ekstenzijom, tako da mi se čini da ne troši spektakularno manje memorije od svojih prethodnika, ali iskreno se nadam da će se ovo promeniti do finalne verzije.

U par sati korišćenja nisam primetio nikakvu nestabilnost iako se radi o beta verziji. Jedina stvar koja me sprečava da ga koristim kao default browser je činjenica da ni jedna ekstenzija, kao i tema koju koristim, nije podržana za sad, a sa ekstenzijama mi je surfovanje mnogo udobnije.

Ako je još neko zainteresovan da isproba, može da skine ovu verziju odavde.

Sve u svemu, biće lepo kad se pojavi final.

Rešenja za PythonChallenge

Već sam pisao o sajtu PythonChallenge. Kada sam se prošli put igrao sa ovim zagonetkama stigao sam do 12. nivoa i tu sam, što zbog obaveza, što zbog toga što nisam mogao da skontam šta treba da radim, stao. Sinoć mi je, kako to obično biva, taman kad sam trebao da počnem da radim projekat obavezan za fakultet, sinula ideja da probam da rešim još koji nivo.

Na žalost, zbog svoje gluposti sam ostao bez podataka sa jedne particije, a, pogađate, upravo na njoj su mi bila rešenja do kojih sam ranije došao. Naravno, malo sam popizdeo što nemam back-up, ali to me nije mnogo omelo nego sam krenuo ispočetka da rešavam sve ne bih li opet došao gde sam bio (a i nije mi se radio projekat za fakultet – naravno, zato sam danas morao da ga uradim). I tako, nakon sat – dva vremena sam ponovo rešio sve zagonetke do 12. nivoa (mnogo brže ide drugi put, kad se znaju svi fazoni, ali svejetno, treba sve programe ponovo napisati). Dvanaesti nivo, oko koga sam se mučio nekoliko dana sada sam rešio za pola sata. Stvarno ne znam kako i zašto mi je to tad bio toliki problem. Sad mi je problem da rešim ovaj 13. nivo :)

Nego, kao posledicu činjenice da sam isti posao radio dva puta odlučio sam da napravim back-up (ne, neću početi da redovno pravim image diskova :) ) na sajtu, a isto to može dobro da dođe ljudima koji žele da se dalje da se igraju, ali su zapeli na nekom od nivoa. Spojio sam korisno sa korisnim.

Ovde možete naći sva moja rešenja. Napominjem da ne gledate rešenja ako želite ne da si pokvarite igru (bolje pitajte za neki dodatni savet). Pored samog koda uglavnom sam pisao i kratko objašnjenje kako sam došao do rešenja.

Pa, nadam se da će bar nekom pomoći i da neću stati na ovome.

Brainfuck

Sinoć u trenutcima dokolice (dobro, dobro, imao sam i pametnija posla, ali ovo mi je bilo zanimljivije) napisao sam Brainfuck interpreter. Verovatno zvuči ozbiljnije nego što stvarno jeste, jer je ceo program stao u nekih 200 linija koda sa sve komentarima i inline dokumentacijom.

Brainfuck

Za one koji ne znaju, Brainfuck je jezik koga je napravio Urban Müller 1993. godine kao pokušaj da napravi najmanji kompajler, pa mu je trebao i kompaktan jezik. Nema nikakvu upotrebnu vrednost. Jako lako se uči, ali se jako teško programira u njemu, a kod je čitljiv koliko i binarni.

Struktura podataka koju koristi jezik je jedan niz (zavisi od implementacije, ali obično je niz 8-bitnih vrednosti) i jedan implicitno deklasiran pokazivač. Sintaksa se sastoji samo od 8 znakova:

  • + uvećava za jedan vrednost na koju pokazuje pokazivač
  • - umanjuje za jedan vrednost na koju pokazuje pokazivač
  • < pomera pokazivač za jedno mesto u levo
  • > pomera pokazivač za jedno mesto u desno
  • . ispisuje ASCII vrednost znaka čiji kod se nalazi na lokaciji na koju pokazuje pokazivač
  • , učitava kod ASCII znaka sa tastature i smešta ga na lokaciju na koju pokazuje pokazivač
  • [ započinje petlju koja se izvršava sve dok vrednost u lokaciji na koju je pokazivaš pokazivao na početnu petlje ne bude 0
  • ] završava petlju

Jedan primer brainfuck programa je ovo:

++++++++++[>++++++++++>+++++++++++>++++>++++
+++++++<<<<-]>.+.> - - .>+++++.<<---.>+++.<<+++[>>
>>+++<<<<-]>>>>++.

Ovaj kod, kad se propusti kroz interpreter koji sam napisao (ili bilo koji drugi brainfuck interpreter) će kao rezultat dati string “del-boy”.

Kao što možete pretpostaviti, za ovakav jezik je dosta jednostavno napisati interpreter. Moje rešenje je dosta jednostavno i nekompletno. Napravio sam jedan niz od 1000 elemenata (u praksi je potrebno dosta više… u stvari, u praksi bi taj niz trebao da bude ograničen samo količinom memorije u računaru, ali to ću možda napraviti tek u sledećoj verziji). Ako se dođe do kraja niza odlučio sam da će pokazivač da se vrati na početak. Ista situacija je ako program pokuša da pomeri pokazivač levo od nulte pozicije – vratiće se na kraj.

Nisam ugrađivao nikakve provere sintakse ili bilo šta slično (mrzelo me) tako da vrlo lako može da se desi da interpreter upadne u beskonačnu petlju ili da se neredvidivo ponaša, ali tad je uglavnom program loše napisan. Mislim, najverovatnije ima stvari koje sam propustio, ali za moje test primere je vraćao dobar rezultat.

Svi znakovi sem gore nabrojanih 8 se zanemaruju, tako da slobodno možete da pišete komentare u kod pod uslovom da se u komentaru ne pojavljuju brainfuck znaci. Čak šta više, ako želite možete da sakrijete brainfuck program u neki drugi program, napisan u nekom drugom programskom jeziku.

Jezik koji sam izabrao za implementaciju je Python. Njega već neko vreme učim, ali nikako da nađem više vremena da mu se posvetim tako da sam stalno negde na početku, tako da mi je ovo došlo kao dobra vežba.

I za kraj, kod.

OpenSolaris predavanje – utisci

Ono što sam najavio u prethodnom postu odigralo se danas. Za one koji nisu pročitali prethodni post, u pitanju je predavanje o OpenSolarisu.

Predavanje su održala dva developera iz Češke zaposlena u Sun-u (Tomas Dzik i Milan Jurik). Malo duže je trajalo nego što su najavili, ali su teme bile krajnje zanimljive (bar meni) tako da mi je i drago zbog toga. Pošto sam do sad imao jako malo dodira sa Solarisom (znam samo osnovne stvari) dosta novih stvari sam saznao. Teme o kojima je govoreno su napisane u prethodnom postu, a propraćene su live primerima.

Na kraju (kad je samo nas nekoliko ostalo) su podelili brisače šoferšajbne sa OpenSolaris logo-om uz rečenicu: “Wipe your windows!” :D

Drugi deo je možda i bio zanimljiviji jer je bio neoficijalan, a bilo je i piva :) . Dvojica predavača su došla u LUGoNS prostorije i u opuštenoj atmosferi su pričali o razmim IT temama. Na početku su uglavnom odgovarali na pitanja o OpenSolarisu, ali kasnije su se dotakli raznih tema. Jedna od zanimljivijih stvari koje sam saznao je kako je Eclipse (pomračenje sunca) dobio ime. Naime, IBM je bio kum, a ime je dato kao odgovor na ime firme koja je razvila JavuSun (sunce). I pre sam mislio da je Eclipse dobro ime, ali nikad se nisam potrudio da saznam zašto se tako zove.

Nisam ništa slikao (aparat mi je extremno star, a i nemam naviku), ali dreamerns jeste tako da možda okačim i koju sličicu ako se setim da tražim da mi pošalje.

Sve u svemu, odlično proveden dan.

OpenSolaris – informacije iz prve ruke

U četvrtak, 13. decembra 2007. godine sa početnom u 12h u svečanoj sali na Fakultetu Tehničkih Nauka u Novom Sadu biće održano predavanje o OpenSolaris-u. Predavanje će biti na engleskom, a predavači su Tomas Dzik i Milan Jurik iz Sun Microsytems predstavništva iz Češke.
Open Solaris

Teme koje će biti obrađene su:

  • OpenSolaris i OpenSolaris distribucije, kako učestvovati u razvoju.
  • DTrace – novi alat za tracing + demo uživo.
  • ZFS – novi 128-o bitni fajl sistem + demo uživo
  • Solaris Zones i BrandZ – Linux virtuelizacija pod Solrisom + demo uživo

Predviđeno vreme trajanja manifestacije je sat i trideset minuta.

Ulaz je slobodan i predavanje nije ograničeno sam0 na studente i zaposlene na FTN-u.

Ko kaže da je instrument bitan

Guns’n'Roses – Sweet child o’ mine na malo drugačiji način:

Zbogom uptime

Nisam fanatik što se tiče velikog uptime-a, ali uglavnom se desi da prođe dosta dana od poslednjeg restarta. Pogotovo je to slučaj sa računarom koji mi služi kao router, jer preko njega i sestra ide na net, tu mi je portage, BNC, DHCP za lokalnu mrežu i još dosta stvari… Zbog svega toga jako retko ga gasim (svojom voljom nikad :) ) i dogurao je do 135 dana uptime-a. Poslednji put sam ga ugasio za vreme Exita jer sam imao goste koji su koristili moju sobu, a smetao im je računar dok spavaju.

Sve je to super i verovatno bi nastavio u istom ritmu da struja nije odlučila da nestane večeras oko 8 sati. Naranvo, vratila se nakon 30 sekundi, ali i to je bilo dovoljno da mi pokvari planove.

Međutim to nije ono što me iznenadilo. Pravo iznenađenje (pozitivno) je bila činjenica da se računar upalio bez problema posle gašenja. Nisam mislio da je nešto pregorelo, već sam verovato da posle 135 dana njakanja i prekompajliranje kompletnog sistema naživo (zbog raznih update-ova) sistem nema šanse da se podigne jer sam pretpostavio da sam gomilu puta zaboravio da menjam skripte koje će raditi automatski ono što sam ja mesecima ručno radio. Međutim, posle nekoliko minuta bez problema sam se ulogovao preko mreže i posle brzinske provere video da sve radi kao što je i ranije radilo. Prosto nisam mogao da verujem. Bravo ja… Već sam se pripremio na akrobacije sa premeštanjem monitora i tastature (pošto je taj računar headless) i popravljanja brljotina od ranije.

Sad sam zadovoljan samim sobom jer sam (izgleda) dobro sve ispodešavao. Gašenje sam iskoristio da update-ujem i kernel na poslednju verziju, jer je to bio jedini deo sistema koji je bio stariji, međutim sad sam uključio i kexec podršku, tako da će i kernel redovno da se menja bez reboota…

Sad mi ostaje da vidim koliko će računar ovaj put izdržati :)

Dve Čorbine pesme

Plašim se
Plašim se vukova i besnih pasa
plaše me agresivne ženke
plašim se podrške širokih masa
često se plašim i sopstvene senke.

Plašim se doboša, plašim se truba
plašim se Zemlje zato što se vrti
plašim se vatrenih rodoljuba
plašim se starosti, plašim se smrti.

Plašim se ustaša, plašim se četnika
od nesvrstanih i od blokova
plašim se pravednih osvetnika
ludila i elektrošokova.

Plašim se desetara i generala
od Homeinija i Prištine
mnogo se plašim moćnih budala
manje od laži, više od istine.

A ja sam hteo da budem hrabar
najhrabije da nadmašim
ali sam brzo prdnuo u čabar
i počeo da se plašim.

Balada o glisti
Pada kiša priroda je čista
nešto živo mrda se kroz travu
iz skrovišta izmilela glista
pa iz trave pomolila glavu.

Od ljubavi živahna je ona
jer je glista romantično biće
hrabro traži slobodnog glistona
da sa njima napravi glistiće.

Da hodnike svud po zemlju buše
da uspešno vaspitaju mlade
da zajedno strahuju od suše
da se vole do kraja balade.

Dugo glista tražila glistona
kiša stala, priroda se prlja
dejstvom jednog neopreznog đona
nesta gliste, osta samo mrlja.

Mala svetla

Pre neko veče krenuo da spavam, ugasio svetlo i legao. Za divno čudo, nije mi se spavalo u tom trenutno kao što mi se inače spava, i dok sam tako ležao i gledao po sobi skontam da mi soba i pored ugašenog svetla šljašti kao Las Vegas. Na sve strane nešto svetli, što inače opšte ne primećujem preko dana ili kad je “veliko” svetlo upaljeno…

Odmah pored kreveta je jedan produžni kabl koji ima svoj prekidač za paljenje i gašenje. Pošto je non-stop upaljen, svetli crveno. Dalje, u njega je uključen računar koji mi služi kao router, i koji je isto stalno upaljen. Na njemu svetli zelena dioda, a oko 12 i 3 posle ponoći svetli i crvena (tad cron pokreće sync portage-a i updatedb).

U zadnje vreme je i lap-top čestu uključen po noći. Kad je otvoren ima 3 male zelene svetiljke (jedan za wireless karticu, jedan označava da je računar upaljen i jedna za bateriju), a kad je zatvoren vidi se samo jedna (za bateriju).

Desktop računar je isto upaljen stalno i on ima svoju svetiljku. Na njemu postoji i jedno svetlo koje baca dosta jaku (uslovno rečeno) plavu svetlost, ali postoji dugme za isključivanje toga, pa sam to i uradio. Monitor obično daje narandžastu svetlost sa svoje diode kad se ugasi nakon 15ak minuta neaktivnosti, a inače je plava.

Ispod desktop računara se nalazi switch. Na njemu u svakom trenutnu svetli 5 dioda (jedna za napajanje i 4 priključena računara) i neretko dosta njih treperi, predstavljajući protok podataka kroz switch. Pored njega je još jedan produžni kabl koji se isto kao i onaj prvi nikad ne gasi. Naravno, i zvučnici su uvek upaljeni, tako da je to još jedno dodatno svetlo (plave boje).

Desno se nalazi WebStar modem. Na njemu se nalazi 5 dioda i obično 4 trepere bez prestanka.

E sad, ako sam dobro sračunao to je najmanje 15, a naviše 20 različitih izvora svetlosti. Ne znam kako je u drugim sobama po noći, ali sad kad sam obratio pažnju ovo mi izgleda kao vatromet koji se raspao svuda po sobi (ima mnogo svetla različite boje :) )…

Kakva je situacija kod drugih?

Novi član familije…

Nisam dugo ništa pisao… Mislim da je to posledica činjenice da su predavanja na fakultetu počela, što znači da je ispitni rok odavno završen, pa više nemam šta da izbegavam (kao što je na primer učenje) i pišem po blogu. Ali eto, nakon par nedelja sam uhvatio malo vremena…

Najveća novost je to što sam dobio novog člana računarske porodice… U pitanju je IBM ThinkPad T41 lap-top. Izgleda ovako:
T41

Kupio sam ga polovnog, iako to nikad ne radim sa tehničkim stvarima (u stvari ne radim to sa bilo čim što kupujem), ali naleteo sam na zaista dobru ponudu, a sam računar je perfektno očuvan (nigde jedne ogrebotine nema).

U svojoj kratkoj istoriji kod mene je prošao par faza. Kad sam ga doneo kući, na njemu je bio instaliran piratski Windows. Nije preživeo ni sat vremena… Sledeća faza je bila da instaliram (K)Ubuntu na njega dok ne spremim Gentoo na desktop računaru, što sam i uradio… Posle toga mi je u jednom trenutku prilično hitno zatrebala jedna aplikacija i trebalo mi je oko 3 sata da iskompajliram sve zavisnosti, pa mi je pali na pamet da Gentoo i nije baš za lap-top, baš zbog tih situacija. Posledica toga je bila da sam ponovo instalirao Ubuntu, obrisao Gnome, instalirao KDE (jebi ga, nisam imao pri ruci Kubuntu) i instalirao i Fluxbox, koji i koristim.

Međutim, sada nakon dužeg korišćenja Gentoo-a na 2 računara pizdim na sve na Ubuntu-u. Prvo što nisam mogao da ga nateram da automatski podiže eth0 interface. Podesio sam sve konfiguracione fajlove, ubacio skripte u odgovarajući runlevel i ništa. Na kraju sam podigao KDE i tamo našao opciju “Automaticly start up interface” (ili tako nešto), to štiklirao i sad radi kako treba.

Desetak minuta sam proveo tražeći gde se nalazi prokleti /etc/inittab i na kraju ga nisam našao jer Ubuntu koristi Upstart.

Dalje, sat vremena sam proveo tražeći kako da sklonim splash pri podizanju (to je lakši deo) i da nateram kernel da koristim radeonfb ili vesafb… Našao sam da su moduli iskompajlirani, ali ne znam zašto neće da se učitaju pored svih pokušaja da u grubu dodam pravu opciju. U stvari ne zanima me koji module se u pozadini koristi, samo da dobijem neku normalnu rezoluciju u konzoli.

Dobra strana je to što mi je sav hardware prepoznat i drajveri su automatski instalirani (sem fglrx drajvera za grafičku). Čak je i dial-up modem bez problema prepoznat, samo što ga nisam još isprobao, ali to nije zanimljivo. Nemam šta da čačkam… ;)

Kontam da ciljna grupa Ubuntu-a nisu korisnici kao ja, koji vole da čačkaju ispod haube i koji ne vole da koriste GUI alate, ali videću kako će mi ležati malo kasnije. Moguće je da samo treba da prođe neko vreme da se naviknem. Vreme će pokazati…

Switch to our mobile site