Posts

Showing posts from 2010

K/Ubuntu i Windows 7 poređenje

Ovih dana sam dobio laptop sa instaliranim Win7. Bio je to povratak korenima (sad će me prozivati win ovisnici) jer je ipak 3.11 moj prvi OS :) Ali isto tako XP je bio poslednji a sa njima nisam imao dodir od 2007. godine.

Utisci su pomešani. Win nije ružan OS. Task bar je promenjen, više nije tako lako primetiti program koji vam treba jer se ne ispisuju imena, ali bar deluje preglednije, no samo dok se ne otvori više instanci istog programa jer tad radi grupisanje. Očigledno je takav pristup iznuđen nepostojanjem više desktopa.

Tako dođosmo do prve stvari za koju mi se čini da je Linux bolji: postojanje više desktopa. Mislio sam da je moguće srediti problem instalacijom dodataka. Čini mi se da je čak u XP postojao Power Toys dotatak za to... No više ga nema, a programe iz drugih izvora nisam stavljao jer sam u komentarima viđao da uzrokuju nestabilnost.

Druga stvar koja me je nervirala a koju sam rešio je zamena z i y u layoutu za naš jezik. Kubuntu ima za svaki jezik više layouta. N…

If Operating Systems Ran The Airlines...

If Operating Systems Ran The Airlines...

UNIX Airways

Everyone brings one piece of the plane along when they come to the airport. They all go out on the runway and put the plane together piece by piece, arguing non-stop about what kind of plane they are supposed to be building.

Air DOS

Everybody pushes the airplane until it glides, then they jump on and let the plane coast until it hits the ground again. Then they push again, jump on again, and so on...

Mac Airlines

All the stewards, captains, baggage handlers, and ticket agents look and act exactly the same. Every time you ask questions about details, you are gently but firmly told that you don't need to know, don't want to know, and everything will be done for you without your ever having to know, so just shut up.

Windows Air

The terminal is pretty and colourful, with friendly stewards, easy baggage check and boarding, and a smooth take-off. After about 10 minutes in the air, the plane explodes with no warning whatsoever.

Wi…

#ubuntu channel dijalog :)

Danas sam radio upgrade KUbunta 10.04 na 10.10 pa sam napravio par grešaka i trebala mi je pomoć. Najlakše je do pomoći stići preko irc.freenode.net na #ubuntu kanalu. Pomoć sam dobio :) Ali ono što mi je bilo zanimljivo je sledeći dijalog:

[12:21] malicai: Thanks, I'll go there and never use ubuntu again, it deleted most of my porn anyways, cya all, thanks again!
[12:22] liquid: Malici, porn means little in the grand scheme
:))))

Ubuntu, scalability, java i baze

Nisam pisao duže vreme pa se nakupilo dosta dobrog materijala kojeg bi podelio sa vama.

Sutra je veliki dan za linux jer izlazi xUbuntu 10.10, već godinama najpopularnija distribucija linuxa. Zato vam predstavljem 12 razloga zašto da ga instalirate. A ime sledećeg izdanja (11.04) će biti Natty Narwhal

Ako ste se odlučili za instaliranje novog Ubuntu-a tekst Top things to do after installing Ubuntu 10.10 Maverick Meerkat će vam biti od pomoći

9 Ways to Instantly Code Faster, kako poraditi na svojoj produktivnosti u IT poslovima

7 Most Useful Regular Expression Snippets, gotovi regexi za različite prilike

Map Reduce: A really simple introduction, bez linije koda na vrlo lak način objašnjen algoritam koji se danas koristi svuda gde je potrena skalabilnost

Example how to model your data into nosql with cassandra, za one koji su bili na predavanju koje je organizovala Scalability grupa i kojima se dopalo Dedino predavanje o Cassandra-i. Prikazan je način na koji bi se modelovali podaci za c…

Vreme je za Linux

Godinama ranije su izlazili tekstovi koji su se pitali da li je ovo godina
linux-a ili predviđali da će naredna to biti. I svi su omašili :) Iako
isključivo koristim linux već godinama mogu reći da je pitanje godine linux-a
stvar prošlosti. Linux je tu među nama i više nije nikakav stranac kog čekamo da
se pojavi. Pogledajte IT oglase. Uopšte nije neuobičajeno da se u njima kao
jedna od stavki pominje i linux. Web programiranje je usko vezano s njim. Uz
programiranje na java platformi često ide linux. Android se ne može zamisliti
bez njega. Kad se doda iPhone i Mac OSX, deca Unix-a nikad nisu bila bliža nama.

U narednih mesec dana očekuju nas dve velike premijere. Prvo 10.10.'10.
izlazili Ubuntu i drugari u verziji 10.10 :) I ne samo da se igra na foru
poklapanja datuma i verzije, nego kad se verzija pročita binarno dobija se čista
desetka! Taman kad se uhodamo sa Ubuntom a ono već početkom novembra pojaviće se
drugi linux div: Fedora 14.

Šta nam donosi novi Ubuntu pročitajte u i…

The state of Java

Stephen Colebourne je u tekstu The next big JVM language izneo nekoliko vrlo zanimljivih opaski i ideja. Prvo se kritički osvrće na javu i nabraja šta u njoj ne valja i na osnovu toga postavlja kriterijume za savršeni JVM jezik. Potom prolazi kroz sve nove JVM jezike i ocenjuje ih na osnovu postavljenih kriterijuma. Na kraju zaključuje da ni jedan jezik ne zadovoljava sve kriterijume.

To ga dovodi do ideje da ne treba tražiti novi jezik već popraviti samu javu. Tolika popravka bi svakako značila raskid kompatibilnosti sa ranijim kodom. Ali Colebourne predlaže upotrebu konvertora koda, nešto što je već primenjeno u Pythonu :)

Jedna od njegovih kritka jave su Exception klase koje ne nasleđuju RuntimeException (tzv. checked exceptions). U tekstu Checked exceptions dalje razrađuje tezu

U vezi sa ovim je i tekst For those naysayers who say Java will be dead…, u kojem se tvrdi

Java will be the money-maker for cloud computing over the next few years.
i to pokazuje najnovijom pohvalom Oracle-a…

Bazno o bazama

Objašnjenje u slici, reči i tabelama šta su indeksi, čemu služe i kako da znamo na koju kolonu da ih postavimo u tekstu: An Absolute Beginner’s Introduction to Database Indexes

Na istom blogu se nalazi i objašnjenje šta je B-tree indeks pomenut u prethodnom postu: A Simple Explanation on How B-Tree Database Indexes Work

Pisao sam o korišćenju connection pool-a u Tomcat-u. U toku razvoja se vrlo često mesto Tomcat-a koristi Jetty, a kako se u njemu koristi connection pool i kako se podešava možete pročitati na: http://docs.codehaus.org/display/JETTY/DataSource+Examples

Pošto se Jetty uglavnom korisiti u Maven-u preko plugin-a, pročitajte kako da podesite DataSource za tu priliku: http://java.dzone.com/articles/jetty-maven-plugin-running

Šta se dešava sa db transakcijama ako se bazi ne pristupa direktno JDBC-om već preko JPA u tekstu Transactions in a JPA World

U slavu naše profesije

Peter Denning u tekstu The Great Principles of Computing koji je napisan za American Scientist razmatra mesto i ulogu računarstva i infromatike. Njegova misao je da infromatika i računarstvo može predstavljati jednu od četiri osnovne oblasti nauke: Computing may be the fourth great domain of science along with the physical, life and social sciencesZato budimo ponosni na našu profesiju :)

12 stvari koje svaki programer treba da zna, brzo, kratko i tačno:

Ovo pokazuje kako naša profesija nije ni malo naivna ;)

Projektni obrasci i principi

John Lindquist je došao na genijalnu ideju kako da objasni projeknte obrasce (design patterns) preko screencasta. Upotrebio je analogiju sa igricom StarCraft da pokaže razlog za upotrebu obrazaca. Potom je u screencastu krenuo da rešava razlog na klasičan način i time ukaže na problem, a potom nudi rešenje u obrascu. Fantastično očigledno. Ovo bi trebalo emitovati na Projektovanju softvera na FON-u :) Za sada je opisao 5 obrazaca: http://johnlindquist.blogspot.com/search/label/design%20patterns

Kad smo kod obrazaca, evo jednog prostog a vrlo korisnog, pri tom nije toliko poznat jer ne pripada grupi GOF pattern-a: Null object pattern

Dobar sajt sa opisom GOF obrazaca kao i projektnih principa na kojima svi obrasci počivaju: http://www.oodesign.com/

Vim - imperator

Pročitao sam jedan izuzetan tekst o Vim editoru. Do tada sam razmišljao o njemu kao arhaičnom editoru iz doba monohromatskih monitora i rada iz konzole, te da je za editovanje bolje koristiti editor sa GUI-om (moja višegodišnja pretraga za dobrim editorom se završila sa jEdit-om). A ako je potrebno nešto editovati iz konzole tu je MC, nano i joe editor.

Izgleda da je uz vežbu moguće jako produktivno koristiti vim editor, daleko produktivnije nego druge koji se koriste mišom, eventualno sa par shortcutova i prolaskom kroz menije preko mnemonika sa tastature. Podešavanjem i instaliranjem dodataka može se svašta uraditi sa Vim-om. Pri tom se troši malo resursa (za razliku od jEdita :)) a stabilnost garantuje to što se Vim razvija skoro 20 godina!

Naravno, editor je samo editor. IDE će za neke zadatke ipak biti daleko lakše za korišćenje. No znanje rada sa Vim-om i tu se može iskoristiti. Jer svaki dobri IDE i editor mora da ima Vim mode. Tako je u Eclipse, NetBeans, IDEA, čak i jEdit im…

Ćirilični slobodni fontovi

Image
Ako vam se čini da nema dovoljno lepih ćiriličnih fontova ili vam je dosadilo da se naša slova p i t u kurzivu ćirilicom ispisuju kao ruska, postoji rešenje! Poslužite se sa 8 naših ćiriličnih fontova koja su potpuno slobodni za korišćenje:


Resavska BG
Resavska BG Sans
Adamant BG
Neoplanta BG
Lovely BG
ПЛАТАН БГ
Ниоки БГ
Адамант Санс БГ

Fontovi su tesitrani na mom linuxu uveženi u OpenType obliku

Tekstovi o skalabilnosti

Stonebraker pionir u razvoju relacionih sistema za upravljanje bazama podataka priča o novinama u polju njegovog rada i o svom novom sistemu kojeg predstavlja kao postrelacioni. Želja mu je da dobije prednosti NoSQL baza a da ne žrtvuje ACID. SciDB: Relational daddy answers Google, Hadoop, NoSQL

Malo NoSQL igrarija:
Cassandra cluster in a single machine with Ubuntu and VirtualBox

Applying Scalability Patterns to Infrastructure Architecture

Nešto iz Google kuhinje: Sibyl - Lage scale machine learning

NoSQL sistem za upravljanje bazama dokumenata. Learning Mongodb

Blogeri studentima

Predavanja koja povezuje maksima „Open source pristup znanju“ održaće se u oktobru, novembru i decembru. Predavaće Dragan Varagić, Bogdan Kecman, Goran Rakić, Milan Stojanov, Nebojša Radović - Eniac, Stefan Jocić i Istok Pavlović.

Organizator ovog događaja je FONIS – udruženje studenata informatike FON-a.

Više o predavačima i rasporedu predavanja na: http://b2s.fonis.rs/#b2shome

IT vestii

IT vesti

PostgreSQL korača krupnim koracima napred. Posle verzije 8.3 u kojoj je značajno unapređena brzina, verzije 8.4 koja je donela windowing funkcije i neke uobičajene operacije na tabelama pretvorene u izraze, predstojeće verzije 9.0 sa Straming Replication i Hot Standby već je krenulo da se radi na verziji 9.1: PostgreSQL 9.1 Alpha Arrives Ahead of 9.0 GA

Nadam se da će ove promene i poboljšanja uz Oracle-ovo preuzimanje MySQL-a doprineti većoj popularnosti ovog sjajnog rdbms.

Tekst iz oblasti IT menadžmenta, napisan iz teorije i prakse, a zanimljiv u pristupu i povezivanju sa radovima japanskih stručnjaka iz organizacije u Toyota fabrici (čuveni Šigeo Šingo koji je jednom gostovao na Fakultetu organizocionh nauka): The Seven Wastes of Software Development

Mark Reinhold, glavnokomandujući razvojnog tima java platforme u Oracle, objavio je na svom blogu da će doći do odlaganja u planovima za izdavanje JDK u verziji 7. U tekstu se navode 2 mogućnosti: prva da se izdavanje 7. verzije pomeri z…

Scalability udruženje

Grupa entuzijasta, koji vole da rešavaju aktuelne probleme u softverskoj industriji, okupila se na sajtu http://scalability.rs/. Kao što se iz imena može pretpostaviti najveći deo tema kojim se bave proizilazi iz rešavanja problema obrade ogromne količine podataka u uslovima ograničenih resursa: vremena, procesora, memorije...

Scalability grupa je već održala 3 susreta. Možete na blog sekciji sajta videti šta ste propustili, a da se to ne bi više dešavalo prijavite se na mailing listu.

Reddit oglas sa zagonetkom :)

Reddit, sajt za postavljanje linkova ka zanimljivim vestima (vrsta social bookmarking Web 2.0 aplikacije), je objavio vrlo zanimljiv oglas za prijem novih stručnjaka.

U oglasu se traži da kandidat za posao reši par izuzetnih mozgalica od kojih je najveća dokaz P = ili != NP. Više o problemu na http://en.wikipedia.org/wiki/P%3DNP

A kao šlag na tortu dolazi mail na koji treba poslati CV. On je zadat u vidu zadatka! Pa hajmo ga rešiti :)

Adresa konkursa: http://blog.reddit.com/2010/08/reddit-is-hiring.html

DevProTalk roštilj - IT professionals meets[sic] BBQ

Internet forum DevProTalk organizuje susret (čitaj roštilj i pivo) ove subote (11. sep.) od 10 sati na Adi Ciganliji mesto za roštilj kod restorana Oaza.

Više o susretu na: http://www.devprotalk.com/t9082-devprotalk-rotilj--it-professionals-meets-bbq.html

Tomcat connection pooling

Dobavljanje konekcije je skupo. Pravljenje globalne konekcije je loše rešenje u uslovima kad postoji više niti (npr. u web aplikaciji) jer se po jednoj konekciji obavlja jedna transakcija, što znači da ako više niti deli istu konekciju one će sa conn.commit() i conn.rollback() da smetaju međusobno. Rešenje je da se ima Connection Pool da kad se zahteva konekcija da se ne prvi novi objekat, a kad se povozove conn.close() da se konekcija ne zatvori već se vrati u pool i reciklira.

Tomcat ima ugrađenu podršku za poolove. U webapp/WEB-INF/web.xml (webapp ako je projekat pravljen pomoću Maven-a) fajlu se definiše resurs preko sledećeg taga:


<resource-ref>
<res-ref-name>jdbc/bankDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

Ovde se definiše ime resursa, njegov tip i da će autentifikaciju obaviti servlet container (tomcat)

Zatim se u webapp/META-INF/context.xml daje def…

JPA2/Hibernate kao fil na torti ili kao temelj kuće

JPA je Java persistence API, zvanični standard (ili kako ga oni zovu specifikacija) za objektno-relaciono mapiranje u Javi. Deo je JEE 5 specifikacije iako se može koristiti i u običnoj javi (JSE). Kao svaki standard JPA je tu da uvede red među različitim specifičnim ORM bibliotekama i pruži jedinstven način za rad s njima na dobrobit programera koji sad mogu na isti način da rade sa Hibernate i sa TopLink ORM biblotekama.

Prva JPA verzija kao deo JEE 5 je bila prilično siromašna u mogućnostima. Od svih velikih ORM biblioteka uzeto je samo ono što je zajedničko, najveći zajednički sadržalac. Uz JEE6 6 je izašlo drugo izdanje JPA standarda a već je implementiran u Hibernate 3.5+ i EclipseLink 2.0+ (bivšem TopLinku). Nova verzija je donela dosta novina ali i par razočarenja (o tome više u nekom drugom postu).

E sad da pokažemo kako nam JPA preko Hibernate (JPA/Hibernate) može pomoći. Nastavljam se na prethodni post. Pokazao sam kako se treba aplikacija podeliti u slojeve i kako se sa Sp…

Staleži u java svetu

Image
Htedoh dati naslov Klasne podele u java svetu u smislu podele na slojeve kako smo učili iz istorije da je svako društvo bilo podeljeno, ali reč klasa ima posebno značenje u programiranju.
Čitajući jednu dobru knjigu po prvi put sam video kako se na moderan način vrši raslojavanje programa u nivoe i čime se programeri pomažu da bi to raslojavanje uradili na najbolji način. Svi smo učili da savremena softverska arhitektura podrazumeva najmanje 3 sloja: korisnički interfejs sloj poslovne logike DB orijentisani slojU praksi se sve klase sistema dele u 4 kategorije:
Klase domenskog sloja koje predstavljaju objekte i veze izmađu objekate u poslovnom domenu (npr. u bankarstvu bi to bili računi, korisnici...). Te klase ne treba da znaju ništa o klasama drugih slojeva. Tako da npr. klasa Kupac ne treba da zna ništa o tome kako će se ona predstaviti korisniku sistema (kao web, swing, konzolno i kako u okviru tih mogućnosti). Takođe ne treba da zna kako će se čuvati u bazi niti kako će se koristit…

Baza znanja

Ova tema mi se nametnula od kad sam počeo da radim, Gomila je novih stvari koje treba naučiti, Pamćenje je najbolja baza, ali količina novih informacija i gustina B/s je prevelika.

U prvoj firmi smo koristili trac project management alat. Wiki stranice su sastavni deo tog alata i u njima smo pisali dokumentaciju, pravila itd. U drugoj je korišćena MediaWiki aplikacija, ista ona koja pokreće Wikipediju.

To mi je dalo ideju da probam sa nekim desktop ili ličnim wiki aplikacijama. Probao sam neku gnomovu ali mi nije išlo, pa sam instalirao DokuWiki, wiki za dokumentovanje. To je aplikacija koja se vrti na Apache serveru, Podatke organizuje u fajlove te za razliku od MediaWiki ne mora da se instalira baza. DokuWiki nije lični wiki ali može i tako da se koristi, a može da se omogući pristup mnoštvu ljudi. Ima opcije pretrage, zna da farba primere koda (syntax highlighting), moguće je kod zakačiti kao datoteku a da se sadržaj ipak prikaže uz dodatno dugme za skidanje datoteke, prati korake k…