woensdag 30 januari 2008

(NL) Belg eet graag boterhammen op het werk


Meer dan de helft van de Belgen maakt ’s ochtends een lunchpakket klaar voor op het werk. Dat blijkt uit een bevraging die voedingsproducent Ebly uitvoerde bij 441 personen.
Het gaat meer bepaald om 72 procent van de vrouwelijke actieve bevolking en 56 procent van de mannelijke. Meestal gaat het om boterhammen, nauwelijks 15 procent neemt een klaargemaakt gerecht mee naar het werk.

Ebly onderzocht zelfs hoeveel tijd de gemiddelde Belg neemt voor zijn middagmaal. 22 procent doet het in een kwartier, 37 procent in een half uur. Zeven procent van de ondervraagden eet aan zijn bureau.

Elf procent van de Belgen voorziet helemaal niets voor het middagmaal. Het gaat - niet geheel verrassend - vooral om mannen.

sdg

bron: http://www.standaard.be/Artikel/Detail.aspx?artikelId=DMF30012008_023

donderdag 24 januari 2008

donderdag 17 januari 2008

some SQL talk

not in and null values



I was joining some tables with a versioning table and needed a way to filter out some specific versions. So I was thinking of the NOT IN check with the versions that shouldn't show up. But not everything is present in versioning so also needed to make it an OUTER JOIN. I quickly set up a query and discovered id didn't show the unversioned objects.
SELECT A.a, A.b, A.c, B.a, B.b, B.c
FROM A
LEFT OUTER JOIN versioning V ON V.obj_id=A.obj_id
INNER JOIN B ON A.obj_id=B.obj_id
WHERE V.version_id NOT IN (1,2)

I thought my OUTER JOIN was not working. After stripping down the query I realised the JOIN was fine, only the NOT IN doesn't include NULL values :D. This is the fix:
SELECT A.a, A.b, A.c, B.a, B.b, B.c
FROM A
LEFT OUTER JOIN versioning V ON V.obj_id=A.obj_id
INNER JOIN B ON A.obj_id=B.obj_id
WHERE V.version_id NOT IN (1,2) OR V.version_id IS NULL


use columnames



Also I now saw in real how much faster a query is when you provide columnames instead of using the * symbol. It took me a join of 5 tables to realise :)

oracle dialect for outer join



When joining in oracle you can also use the (+) symbol to indicate an outer join. An example:
SELECT A.a, A.b, B.a
FROM A, B
WHERE A.id=B.id (+)

In this example the B.id can be null.

woensdag 9 januari 2008

custom input dialogs

JOptionPane is very easy to use. You can even pass your own JPanel to display on the dialog. This way you can easily retrieve user input. An example:


TerminologyVersionPanel panel = new TerminologyVersionPanel();
int answer = JOptionPane.showConfirmDialog(
parentComponent, panel, title, JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE
);
if (answer == JOptionPane.YES_OPTION){
// do stuff with the panel
System.out.println("your input: "+panel.getVersion()+" "+panel.getDate());
}
//otherwise input has been canceled


and an example for the panel


public class TerminologyVersionPanel extends JPanel {

/**
* txtfield for the version name
*/
private JTextField txtVersion;

/**
* datepicker for releasedate
*/
private JXDatePicker datePicker;

/**
* def ctor
*/
public TerminologyVersionPanel() {
super();
init();
}

private void init() {
// set layout here
setLayout(new GridLayout(0, 2));

// string title
add(new JLabel("version name"));
txtVersion = new JTextField();
add(txtVersion);

// datepicker
add(new JLabel("release date"));
datePicker = new JXDatePicker();
datePicker.setVisible(true);
add(datePicker);
}

// getters to retrieve input

public String getTxtVersion() {
return txtVersion.getText();
}

public Date getDate() {
return datePicker.getDate();
}

}




sources:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=2&t=016466
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JOptionPane.html
http://forum.java.sun.com/thread.jspa?threadID=680092&messageID=3966133