Posts

Logical order of SQL Query execution

First of all we should know that logical and physical order of query execution are different but result must be the same. Every RDBMS can optimize the order in which parts of query are executed for performance reason. However that rearrangement must not influence the final result. The query must return the same records as if it is executed in this logical order:     FROM     WHERE     GROUP BY     HAVING     SELECT     DISTINCT     ORDER BY     TOP X / LIMIT X/ select * from ( subquery ) ROWNUM <= X The programmers should always be aware of this sequence in order not to fall into a trap. A common mistake is to try using column alias in GROUP BY, WHERE and HAVING clause but actually it is possible to use it only after SELECT clause is executed (ORDER BY and TOP/LIMIT/that long stupid oracle boilerplate). Another mistake is to try sorting by column...

SQL Fiddle

If you need fast try and error check against some of the most popular relational database management system  SQL Fiddle is the wright address. It is also free as in beer :) It is an online application in which you can select to work some of supported RDBMS. There are 2 text area fields: first is used to set your schema and data, the second is used to write some query that will run against your schema and data. Using SQL Fiddle you can share your script similar to Gist for source code sharing. It is also useful as online SQL code beautifier and formatter. Here is an example of SQL Code for Oracle DB: http://sqlfiddle.com/#!4/1897b/1

XMLUnit

XMLUnit for Java provides a set of supporting classes (e.g. Diff,  DetailedDiff, Transform, SimpleXpathEngine, Validator,NodeTest) that allow assertions to be made about: The differences between two pieces of XML The outcome of transforming a piece of XML using XSLT The evaluation of an XPath expression on a piece of XML The validity of a piece of XML Individual nodes in a piece of XML that are exposed by DOM Traversal XMLUnit for Java can also treat HTML content (even badly-formed HTML) as valid XML to allow these assertions to be made about the content of web pages too.   Experience I've used XMLUnit in 2 situations: assert that 2 xml files are semantically the same regardless of structural differences (eg. different formatting, different namespace prefixes, usage of opening and closing tag vs. empty tag...) and finding real differences between two xml files regardless of prior mentioned differences in structure. The equality of ...

How to download multiple files using cURL

A few months ago I've bought Kobo Aura HD eBook reader. That is my best investment this year :) I am using every chance to read books, but also I am reading magazines that do have ePub format (PragProg, Libre!, FullCircle, BSDMag and Linux Magazine. But I've had a problem to download all issues of some magazine. If download URL for particular issue can be guessed than cURL will do the job perfectly. As example here is a command to download all 78 issues of FullCircle: curl http://dl.fullcirclemagazine.org/issue[1-78]_en.epub --create-dirs -o "/home/zlatan/Downloads/fullcircle/fullcirclemagazine#1.epub" Particular url is http://dl.fullcirclemagazine.org/issueXX_en.epub where XX is issue number. The option o controls output, and because there are 78 files filename will be constructed from fullcircleXX.epub name where XX is corresponding issue number taken from URL cUrl is free software that exists as package for almost all platforms. So Linux user can use th...

How to install Lotus Notes 8.3 on Kubuntu 12.04

Installing Lotus Notes became easier than in previous versions and  fortunately  there is no need to edit .deb files anymore. Follow these steps to install Lotus Notes (Kubuntu 12.04.1 32b): untar the installation:  tar xvf lotus_notes853_linuxUb_en.tar run installer: sudo dpkg -i ibm-lotus-notess-8.5.3.i586.deb dpkg will throw missing dependencies, you should search and install all that dependencies using apt-get, aptitude or Muon package manager run: sudo dpkg -i ibm-lotus-notess-8.5.3.i586.deb again install other lotus notes parts: sametime, activities and so on using the same approach similarly untar and install fixpack install the wrapper: mkdir -p / tmp / notesfix cd / tmp / notesfix   wget –no-check-certificate https: // github.com / sgh / lotus-notes_gtk2.23.3 / raw / d3492c997bc7a92b895fa1369d4743a8e20b56b5 / Makefile   wget –no-check-certificate https: // github.com / sgh / lotus-notes_gtk2.23.3 / raw / d3492c997bc7a92...

Pro Spring 3

Right now I am reading Pro Spring 3 written by Clarence Ho and Rob Harrop (a SpringSource co-founder). Very up to date book about Spring covering version 3.1. This book doesn't lack information, almost every part of Spring is covered including some useful addons like Spring Data JPA, Spring Batch, Spring Integration and Roo, The book is not just about Spring it is about how to be productive with Spring. Author explains how to use SpringTool Suite (STS), how to decide which approach to follow, examples are very profound. And through the book author is developing a real application! I wish that authors have paid attention on Spring security (not covered at all) and Beans Validation chapter is too thin with only 2 field validation annotations mentioned (@NotNull and @Size). Still this is the best book that will make you a good and capable Spring programmer even if you don't have any precognition about Spring.

YU18n

Raspad SFRJ doneo je mnogo problema lokalizatorima za naše pordučje. Autori Java jezika se nisu baš najbolje snašli u tome pa i u javi 6-te verzije postoje problemi. Rešenje za te probleme kao i kratak istorijat problema pogledajte na sledećem linku: http://klaus.e175.net/java-yu Hvala Draženu na ovom linku :)

Zanimljivosti iz istorije Ujedninjenog kraljvestva

Dok sam u Škotskoj često gledam emisije iz njihove istorije što i nije teško naći jer ih ima na svim kanalima a postoji i poseban kanal samo za to pod slikovitim nazivom Yesterday. Evo nekoliko zanimljivosti nabacanih na gomilu: U toku 2. sv. rata zalihe čaja su strateški raspoređene na 7 lokacija kako bi se izbeglo uništavanje što bi po moral Britanaca bilo pogubno. Šetland, ostrvo na pola puta između Britanije i Norveške danas deo Škotske je istorijski deo Norveške. Norveški vladar je dao engleskoj kraljici u zakup ostrvo a ono nikad nije vraćeno majci Norveškoj. Na ostrvu i dan danas imaju svetkovine posvećene Vikinzima jer oni i jesu njihovi potomci Racionalisanje ishrane (dobijanje sledovanja hrane na bonove, tačkice i slično ograničavanje i razdeljivanje hrane) u UK je ukinuto tek 1954. godine. Toliko ih je rat upropastio. U 17. veku je škotskim brđanima (Highlanderima) bilo zabranjeno da nose tartane i oružje. Mnogi klanovi (npr. Mc Donald) su bili desetkovani zbog nep...

Spring: how to send a mail

Spring has module for email sending. First one need to configure mail sender bean. Actually there are two mail sender implementations. The first one is MailSender that can be used for simple mails. For advanced mails (MIME support) JavaMailSender must be used. It is good practice to divide your configuration into several files, so we'll put mailing configuration into service-mail.xml (or you can choose your own name) and then include that file into main config file. Just for example we'll use gmail as SMTP server so configuration looks like this: true true Spring needs two additional libraries: javax.mail and javax.activation. For maven users: simply add dependency for javax.mail (groupId: javax.mail, artifactId: mail) into your projects pom.xml. Now we can implement our mailing service: @Service("mailService") public class...

Instalacija Arch Linux-a na LVM i obratno

U prošlom postu opisao sam šta je to LVM i kako se pravi. Ali da bi LVM radio na Arch Linux-u mora se izvršiti određeno podešavanje i o teme će biti reči u ovom tekstu. Treba obratiti pažnju na 2 fajla. U rc.conf treba postaviti USELVM="yes" U mkinitcpio.conf treba da stoji: MODULES="dm_mod" . . . HOOKS="base udev autodetect pata scsi sata usb lvm2 filesystems usbinput" Zatim traba ponovo naraviti initramfs: cd /boot mkinitcpion -p linux Manuelno mountovanje LVM particije Ponekad je nužno ručno mountovati particiju, sa običnim je to lako: mount /dev/sda4 /mnt/arch Ali to ne pali kod LVM particija. sa pvs saznajemo ime VG i na koje PV su u VG Recimo sa se VG zove VolGroup00, zatim sa: lvdisplay /dev/VolGroup00 izlistamo LV na VG Kad smo se odlučili koju LV (LogVol00 u primeru) ćemo mountovati radimo: vgscan --mknodes lvchange -a y /dev/VolGroup00/LogVol00 mount /dev/VolGroup00/LogVol00 /mnt/lvm

Logical volume manager - LVM

LVM je način da linux dobije particije koje se mogu lako širiti i skupljati. Osim toga moguće je raditi apstrakciju diskova i particija, zgodno za sistem sa puno diskova. Nad LVM se često kombinuje sa softverskim RAID-om i enkripcijom. Pre nego što nastavimo dalje moramo defisati osnovne pojmove. Physical volume - PV Disk ili particija diska koja je određena da se priključi u LVM. Particija treba da je tipa 8e Odnosno Linux/LVM. Pravi se npr. preko disk partition alata cfdisk ili fdisk. Volume groupe - VG VG je apstrakcija između PV i LV (niže opisano). VG je nešto kao disk van LVM rečnika. Razlika je što se VG može sastojati od više diskova/particija tj. phisical volume-a. VG se potom deli na logical volume-e. Logical volume - LV Predstavlja ono što se u van LVM zove particijom. VG se izdeli na više LV. Pri tom se veličina LV odredi tako da se ne iskoristi čitava veličina VG, zato što se kasnije kad se ukaže potreba lako LV poveća ili smanji. Pravljenje LVM PV, VG i LV ...

IBM Lotus Notes on Ubuntu: invalid character in revision number

Few days ago I needed to upgrade Lotus Notes 8.5.1 to 8.5.2 fixpack 2. IBM provides .deb packages and .sh scripts for smart upgrade. Upgrading to 8.5.2 version passed without any problem, but installing fixpack was problematic. I was getting: error in Version string '8.5.2-20110323.0837_FP2': invalid character in revision number I have found a solution reading this post at Lotus forum but that post is too much bare. So I am giving a full explanation on how to solve this problem. The problem is in "_" character in control file that is part of .deb package. Also file paths with that character in .deb package makes a problem. So we need to unpack .deb file, edit control file, change file paths and pack it again in .deb file: # make directory wiht same name as package but without extension mkdir ibm_lotus_notes_fixpack-8.5.2.i586 # unpack .deb file in that directory cp ibm_lotus_notes_fixpack-8.5.2.i586.deb ibm_lotus_notes_fixpack-8.5.2.i586 cd ibm_lotus_n...

Учиться, учиться и еще раз учиться!

Stanford je objavio nekoliko programa učenja na koja se možete besplatno prijaviti. Machine Learning: http://www.ml-class.com/ Artificial intelligence: http://www.ai-class.com/ DB: http://www.db-class.com/ I za kraj par finih webinara za JPA i Spring: http://javapassion.com/portal/webinar/webinar

Besplatni časopisi

Image
Izbor 10 besplatnih online časopisa koji zavređuju pažnju, ukoliko znate neki koji nije na spisku oplemenite me :) JAX Magazine  Java magazin sa aktuelnim tekstovima http://jaxenter.com/jax-magazine Libre Domaći časopis o slobodnom softweru još uvek u povoji :) Link: https://libre.lugons.org/ BSD magazine za sve BSD-ovce uključujući i MAC OSX-ovce. Deluje zanimljivo jer se dosta tekstova može primeniti i na linux. Imaju i napredne tekstove npr. o GIS-ovima i Cloud computing-u. Link: http://bsdmag.org/ PCLinuxOS Magazine Magazin koji pokriva jednu od boljih i laganijih distribucija linux sistema. Ima tesktove o linux softveru. Link: http://pclosmag.com/ FullCircle Magazine Slično ko prethodni samo za najpolularnijji distro sadašnjice: Ubuntu Link: http://fullcirclemagazine.org/ Open Source Journal Žestoki softverski časopis za koji pišu svetske face, vrlo ozbiljan i kvalitetan Link: http://opensource-central.com/downlo...

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 layou...

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...

#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 mod...

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 ...

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 pohva...