donderdag 18 december 2008

(NL) Goed om weten: jobkorting februari 2009

Net gelezen op vacature.com:

Eind februari 2009 krijgt elke werkende Vlaming een jobkorting van 250 euro. Hij ontvangt geen cheque of een storting op zijn bankrekening, maar een vermindering van de bedrijfsvoorheffing op zijn brutoloon. Concreet: hij ziet zijn nettoloon die maand eenmalig met 250 euro verhoogd.

“De jobkorting gaat nu zijn derde jaar in”, verduidelijkt Dirk Van Mechelen, Vlaams minister van Financiën en Begroting. “In 2007 was het 125 euro die in maandelijkse schijven van de bedrijfsvoorheffing af ging en in 2008 was het 200 euro. Gedurende die twee jaar gold de maatregel voor ongeveer één miljoen werkende Vlamingen met een beperkt activiteitsinkomen. In 2009 wordt aan alle werkende Vlamingen een korting van 250 euro toegekend, en die wordt in één keer - in de maand februari - via een vermindering van de bedrijfsvoorheffing toegekend.” Voor een gezin van tweeverdieners maakt dat 500 euro.

De jobkorting stijgt naar 300 euro voor werkenden met een netto belastbaar inkomen van ten hoogste 22.000 euro (met aftrek van RSZ en beroepskosten). “Ongeveer een miljoen werkende Vlamingen zullen van deze hogere korting genieten.”

In dit systeem is de ‘werkende Vlaming’ een inwoner van Vlaanderen met activiteitsinkomsten van minimaal 5.500 euro per jaar. Dus, deeltijds werkenden die boven deze grens vallen, ontvangen de korting. Inwoners van Brussel komen niet in aanmerking. Werklozen natuurlijk ook niet. Maar wat met zelfstandigen zoals Marleen? “Elke zelfstandige heeft recht op de jobkorting. Indien Marleen aan de voorwaarden voldoet kan zij haar voorafbetalingen verminderen met de jobkorting. Indien dit niet gebeurt zal de korting worden toegekend bij de eindafrekening van de personenbelasting”, zegt minister Van Mechelen.

Voor de werknemers die in februari onvoldoende voorheffing moeten betalen, zodat ze de 250 euro niet volledig kunnen aftrekken, gaat de overblijvende som af van hun jaarlijkse personenbelasting. “Dat is vandaag ook al het geval”, verduidelijkt de minister.

Als je werkt en jaarlijks meer dan 5.500 euro verdient, heb je recht op een eenmalige vermindering van je bedrijfsvoorheffing in februari van 2009:

* Verdien je jaarlijks meer dan 22.000 euro (netto belastbaar inkomen), dan zie je jouw nettoloon die maand met 250 euro verhogen.
* Verdien je minder, dan verhoogt je nettoloon met 300 euro


bron: http://www.vacature.com/art35346

vrijdag 17 oktober 2008

Install and configure PostgreSQL on Windows

You can download the msi package from their website, run it.

Next you run the following command
initdb -D /path/to/data/location


start the server with
pg_ctl.exe start -D /path/to/data/location


create a new database:
createdb databaseName


now you're ready to acces it:
psql databaseName

maandag 22 september 2008

Fiddler and GWT both on same port

When starting fiddler today I got a warning because port 8888 was in use. Checked this with the netstat -a command and indeed. So I closed the running GWT shell and problem solved.

dinsdag 2 september 2008

(NL) Eerste letter emailadres bepaalt hoeveelheid spam


...
Het bleek dat mail voor adressen beginnend met a,m,s,r en p voor ongeveer 40 procent uit spam bestond. Voor de adressen beginnend met q, z of y was dat maar 20 procent. Volgens Clayton wordt dit fenomeen veroorzaakt door de manier waarop veel spammers aan hun mailadressen komen.
...


bron: http://tweakers.net/nieuws/55440/eerste-letter-emailadres-bepaalt-hoeveelheid-spam.html

maandag 1 september 2008

css 100% page height layout

Op deze link staat het allemaal uitgelegd: http://www.webmasterworld.com/forum83/200.htm

Komt er op neer dat je de body height:100%; moet geven en dan kun je absolute gepositioneerde elementen in de body ook een height:100%; geven die wel degelijk over heel de pagina komt te staan.

Als je niet zoals in het voorbeeld een kolom links en rechts een daartss een inhoud wil, dan kun je ook met breedte in percentages voor left en right element werken. Bv 30% left en 70% right geeft je dan een linkerkolom menu en inhoud rechts. Bv: http://cappelleh.f-sw.com/portal

zondag 10 augustus 2008

Install Trac on Windows

"Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies."
source: http://trac.edgewall.org/

I'll quickly go over the different steps for installation on the Windows platform. This is a link to the installation guide.

Prerequisites


First of all you'll need a database on your system. You can use any of the following: SQLite, PostgreSQL, or MySQL. They all come with a windows installer so that should be fairly simple. I had MySQL already installed on my system so that was an easy choice for me. Next I created a database and user that Trac could use.

Trac is al written in python so that needs to be installed as well. Allthough python 2.6 s available I had to stick to 2.5 because setuptools didn't support 2.6 yet. So download a windows installer for Python 2.5 and run it. To easify using this Python install you could set the Python install folder and its Scripts folder to the windows PATH system variable.

If you are using mysql you'll also need the MySQL Python lib. For other dbms I have no clue.

Next install some required Python scripts for Trac. To begin with setuptools, again there is a windows installer for it.

Having setuptools installed you can now use it to install Genshi. That is a templating framework that Trac relies on. Execute the following command with python to get it:
easy_install Genshi

This easy_install script is in the Python Scripts folder of your install.

Trac


And now we are ready to install Trac. Even that has a windows installer available. All you need to do with these installers is point it to your Python install. You could also use setuptools again:
easy_install http://svn.edgewall.org/repos/trac/tags/trac-0.11


Start using


Now that all is installed you can configure a project with the following command:
trac-admin /path/to/myproject initenv

This script is also in the Python Scripts folder. An example of the path on a windows system is:
c://projects//project1

You will be asked for some options like projectname and database string. For MySQL this string is something like:
mysql://johndoe:letmein@localhost:3306/trac

Correct database configuration strings for other systems can be found here.
You should get a Congratulations! at the end of the script if all went well.

Next step is launch the trac system. This is done with the following command:
tracd --port 8000 /path/to/myproject
And then the system is available at http://localhost:8000/.

Have fun!

Trac XML-RPC java plugin

Next I'll get into this plugin: http://trac-hacks.org/wiki/XmlRpcPlugin

install the plugin with easy_install:
easy_install /path/to/unpacked/xmlrpcplugin.zip/trunk

and add the module to the trac.ini in /path/to/project/conf/trac.ini:
[components] 
tracrpc.* = enabled


assign privileges to anonymous user account:
trac-admin /path/to/project permission add anonymous XML_RPC

Also other permissions might be required, like TICKET_CREATE, etc.

Now you can connect over Java using the following code (for required libs see http://trac-hacks.org/wiki/XmlRpcPlugin java example code and the apache xml rpc client.

This example code creates a new ticket:
String connUrl = "http://test:test@localhost:8000/project/login/xmlrpc";

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(connUrl));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);

TrackerDynamicProxy proxy = new TrackerDynamicProxy(client);

Ticket ticket = (Ticket)proxy.newInstance(Ticket.class);
int newCreatedTicketId = ticket.create("test", "test-description");


I'm currently experimenting with these interfaces. I figured out I can query for a property using:
Vector ticketIds = ticket.query("description=value");
.

(NL) Jobhoppen valt niet in goede aarde

Werknemers die het nergens langer dan twee jaar uithouden, worden door managers niet met open armen ontvangen. Jobhoppers worden immers beschouwd als opportunistisch en weinig loyaal.

Bijna de helft van de Nederlandse managers ziet jobhoppers als opportunisten. Ook hun trouw stellen ze in vraag. Een kwart neemt dan ook geen mensen aan die nergens langer dan twee jaar aan de slag zijn geweest. Dat stelt het vakblad Management Team vast.

Maar liefst 84 procent vindt dat organisaties niet veel hebben aan werknemers die maar kort blijven. De helft ziet personeel dat lang op zijn stoel blijft als essentieel voor de toekomst van de onderneming. De meerderheid beschouwt langer dan drie jaar op één functie blijven ook niet als stilstand.

Pas na zes jaar is het tijd voor verandering, zeggen de bevraagde managers. Dan is het tijd voor een nieuwe uitdaging (82 procent), zijn de doorgroeimogelijkheden bij de huidige werkgever uitgeput (65 procent) of kan je elders een beter salaris bedingen (38 procent).

source: http://www.jobat.be/nl/info/articles/jobhoppen.aspx

dinsdag 15 juli 2008

javascript array's

I'm currently working on some javascripting code and had some trouble with very basic operations on array's. This website was a great help:

http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

donderdag 26 juni 2008

(NL) It-studenten outsourcen opdrachten naar India

It-studenten outsourcen opdrachten naar India

Door Hielko van der Hoorn, donderdag 26 juni 2008 21:41, views: 2.713

Volgens onderzoekers van de Birmingham City University besteden it-studenten op grote schaal studie-opdrachten uit aan lagelonenlanden, zoals India en Roemenië. Werk dat uitbesteed wordt varieert van huiswerkopdrachten tot afstudeerscripties.

De onderzoekers zijn in 2004 begonnen met het in de gaten houden van verschillende websites waar middels een vraag- en aanbodsysteem programmeerwerk uitbesteed kan worden. Volgens de onderzoekers hebben in deze periode duizenden studenten gebruikgemaakt van deze sites om studie-opdrachten uit te besteden, waarbij prijzen tussen de 5 en 100 pond betaald moesten worden voor het werk. Van de studenten bleek ongeveer een derde de Britse nationaliteit te bezitten. Hoeveel Nederlandse studenten betrapt werden is onbekend.

Landkaart India (klein)Volgens de onderzoekers is het probleem groeiende en is het erg lastig te detecteren doordat het aantal websites waar programmeerwerk uitbesteed kan worden sterk groeit. Daarom pleiten de onderzoekers voor het opzetten van een nationale database met universiteitsopdrachten en deze te vergelijken met het werk dat aangeboden wordt op contract coding websites. Momenteel is het – ook in Nederland – al gebruikelijk dat belangrijke opdrachten, zoals scripties, met de computer gecontroleerd worden op plagiaat.

Tevens stelt men dat de academische wereld meer aandacht moet besteden aan werk dat wordt ingeleverd. Studenten zouden bijvoorbeeld ondervraagd moeten worden, om te testen of het ingeleverde werk daadwerkelijk eigen werk is. Ironisch genoeg is de kans aanwezig dat afgestudeerde it-studenten in het bedrijfsleven juist het werk moeten uitbesteden aan landen zoals India en Roemenië.

bron: http://pro.tweakers.net/nieuws/54212/it-studenten-outsourcen-opdrachten-naar-india.html

(NL) eenvoudig een google sitemap genereren

Blijkbaar een vraag die veel terugkomt is hoe je nu een sitemap kunt aanmaken. Zo'n sitemap is niet alleen handig voor je gebruikers om een overzicht te hebben op de website. Ook google en andere spiders maak je het zo eenvoudiger om al je pagina's te vinden en te scannen.

Google zelf geeft via de webmastertools al heel wat uitleg online staan. Alleen is dit via een python script te doen wat niet voor iedereen evident is. Voor wie er mee weg kan: https://www.google.com/webmasters/tools/docs/nl/sitemap-generator.html

Heb je geen verstand van python of andere scripting dan kun je alsnog online gratis een sitemap laten genereren. Daarvoor bestaan verschillende tools zoals deze: http://www.xml-sitemaps.com/.

Enige wat je daar hoeft te doen is de url opgeven en nog wat instellingen aanpassen als je wil en je klikt start en in de volgende stap krijg je al je sitemap. Deze kun je dan aan google doorgeven.

Deze tool is wel beperkt tot 500 pagina's. Ben direct ook eens gaan googlen om te zien of er nog verschillen zijn met de geavanceerde methoden en dit is wat ik gevonden heb:

Voordelen
1) De snelheid waarmee je site wordt doorlopen is hoog.
2) De gebruikersinterface is prettig en eenvoudig.
3) De site geeft je goede feedback tijdens het indexeren.
4) Je kunt je sitemap in meerder formaten downloaden: .xml, .txt, .html, etc.

Nadelen
1) Je kunt online slechts tot 500 pagina’s opnemen in je sitemap. Je kunt eventueel een offline versie kopen om op je eigen PC te installeren. Deze heeft niet de 500 pagina beperking.
2) Ook deze tool negeert instructies uit robots.txt.
3) Als er gebroken links zijn wordt dit wel vermeld, maar moet je bijbetalen om die te zien.
4) Na afloop kan je de inhoud van je sitemap niet online aanpassen.

bron: http://www.whelp.nl/2007/03/14/een-sitemap-maken-met-xml-sitemapscom/

dinsdag 24 juni 2008

(NL) Installeren firefox flash plugin ubuntu 64bit

In de hoop flash hier werkende te krijgen ben ik maar es gaan zien naar de downloadpage van adobe. Blijkt dat daar enkel een 32bit package beschikbaar is :@.

Gelukkig via google de nodige instructies gevonden om dit alsnog geinstalleerd te krijgen:

1. Make sure you don't have any other flash plugin installed on your system:
sudo apt-get remove -y --purge flashplugin-nonfree gnash gnash-common mozilla-plugin-gnash swfdec-mozilla libflashsupport nspluginwrapper

1.1 To be sure we don't have any other old flash libs let's cleanup the folders where it usually resides:
sudo rm -f /usr/lib/mozilla/plugins/*flash*
sudo rm -f ~/.mozilla/plugins/*flash*
sudo rm -f /usr/lib/firefox/plugins/*flash*
sudo rm -rfd /usr/lib/nspluginwrapper


2. Install ia32-libs and latest nspluginwrapper
sudo apt-get install ia32-libs nspluginwrapper


3. Download the latest flash player from Adobe Labs and extract it:
cd ~
wget http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_linux_051508.tar.gz
tar zxvf flashplayer10_install_linux_051508.tar.gz
sudo cp install_flash_player_10_linux/libflashplayer.so /usr/lib/mozilla/plugins/
rm -rf ~/install_flash_player_10_linux/

4. Use nspluginwrapper to install the plugin and link it to firefox
sudo nspluginwrapper -i /usr/lib/mozilla/plugins/libflashplayer.so
sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/mozilla/plugins/
sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-addons/plugins/


Ffkes firefox herstarten en alles was in orde :-).

bron: http://www.myscienceisbetter.info/2008/05/install-adobe-flash-player-10-on-ubuntu-using-nspluginwrapper.html

zondag 22 juni 2008

(NL) ubuntu update 8.04 problemen

Na m'n update van ubuntu 8.04 had ik wat kleine probleempjes.

ubuntu 8.04 loginscherm resolutie en keyboard layout


De resolutie en keyboard layout van het loginscherm bleken om zeep te zijn. Dit had ik snel opgelost door de nodige aanpassinge in /etc/X11/xorg.conf. Voor bewerking daarvan geef je volgende commando op in terminal:

sudo gedit /etc/X11/xorg.conf


De aanpassingen zelf spreken voor zich als je de inhoud van deze config doorneemt. Voor keyboard layout:

Option  "XkbLayout" "be_nl"


De resolutie kon ik aanpassen met de volgende regels verder in hetzelfde bestand:

SubSection "Display"
Depth 24
Virtual 1280 1024
Modes  "1280x1024@75"
EndSubSection


Het is natuurlijk aan te raden een backup van dit bestand te nemen alvorens je wijzigingen aanbrengt.

ubuntu 8.04 firmware Broadcom wireless controller


Verder bleek wireless netwerk ook plat te liggen. De broadcom controller vraagt een specifieke firmware die blijkbaar niet meer werkte na de upgrade. Via logboek (System>Beheer>Systeemlogboek) kon ik de foutmelding vinden met een url waar de nodige instructies staan. UIteindelijk moest ik enkel volgens de juiste kernel bepaalde commando's uitvoeren en de rest ging vanzelf. Na een reboot was alles terug in orde. De link:

http://linuxwireless.org/en/users/Drivers/b43#devicefirmware

De nodige aanpassinge voor kernel versie 2.6.24

wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
tar xjf b43-fwcutter-011.tar.bz2
cd b43-fwcutter-011
make
cd ..


en

export FIRMWARE_INSTALL_DIR="/lib/firmware"
wget http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2
tar xjf broadcom-wl-4.80.53.0.tar.bz2
cd broadcom-wl-4.80.53.0/kmod
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o

donderdag 17 april 2008

log4j properties and JUnit

Running my testcases I couldn't get them to find the log4j.properties, resulting in the well known "no appenders found ..." exception. Putting this file on the classpath didn't help. The only way I could get it to work is to manually put the property in the testcase setup, like this:
String path = this.getClass().getResource("./log4j.properties").getPath();
PropertyConfigurator.configure(path);

maandag 7 april 2008

(NL) Belg opgepakt voor surfen op andermans wifi-netwerk

Door Dimitri Reijerman, zondag 6 april 2008 16:44
Submitter: Choxo, views: 25.561

De Belgische politie heeft zondag een 22-jarige man gearresteerd in het Oost-Vlaamse Sint-Gillis-Waas. Hij zou zonder toestemming gebruik hebben gemaakt van een wifi-netwerk van een buurtbewoner.

Wifi logoDe man, een inwoner van Sint-Gillis-Waas, zat met een laptop op schoot in zijn auto en had een verbinding gelegd met het wifi-netwerk van een naburige bewoner. Het is onduidelijk of het draadloze netwerk van het slachtoffer was beveiligd, zo meldt persbureau Belga..

De politie arresteerde de man en liet hem na het opstellen van een proces-verbaal weer gaan. De Belg zal zich voor de rechter moeten verantwoorden wegens hacken. Het is volgens de Belgische wet niet toegestaan om zich zonder toestemming van de eigenaar toegang te verschaffen tot een informaticasysteem van een ander. In Nederland is soortgelijke wetgeving, omschreven met de juridische term 'computervredebreuk', van toepassing.

bron: http://core.tweakers.net/nieuws/52805/belg-opgepakt-voor-surfen-op-andermans-wifi-netwerk.html

dinsdag 18 maart 2008

Eclipse-plugin van AMD meet prestaties van Java-applicaties (NL)

AMD heeft de Ecplipse-plugin Codesleuth onder een opensource-licentie beschikbaar gemaakt. De tool kan gegevens direct uit een processor lezen, zodat Java-ontwikkelaars hun code kunnen optimaliseren op cpu-gebruik.

Eclipse-logoAMD heeft op Eclipsecon, een conferentie voor Eclipse-gebruikers, aangekondigd dat Codesleuth als opensourceprogramma beschikbaar wordt gemaakt. Met deze Eclipse-plugin kunnen ontwikkelaars inzicht krijgen in de performance van hun Java-code: Codesleuth ontsluit de data die Codeanalyst Performance Analyzer uit processors leest. Met behulp van de analysedata kan de Java-code aangepast worden om optimale prestaties te leveren.

De plugin moet ontwikkelaars tijd besparen door het zoeken naar performace-problemen te versnellen. Door gebruik te maken van de in processors ingebouwde performance counters kan de Codeanalyst-software analyseren hoe de cpu op de aangeboden code reageert. Vertragingen in de verwerking worden door Codesleuth naar de Java-code herleid, zodat eventuele fouten door de programmeur hersteld kunnen worden. Aangezien de Codesleuth-software afhankelijk is van Codeanalyst, werkt de plugin alleen met data afkomstig van Barcelona-processors. Sourceforge heeft de code onder de Eclipse Public License in Subversion gezet.

bron: http://core.tweakers.net/nieuws/52475/eclipse-plugin-van-amd-meet-prestaties-van-java-applicaties.html

codesleuth project: http://developer.amd.com/codesleuth

donderdag 13 maart 2008

Intel® PRO/Wireless 2200BG Network Connection Troubleshooting

[TODO: translation needed here]

Ik heb eigenlijk nog nooit een deftige verbinding kunnen maken met de intel 2200BG wireless netwerkkaart van mijn dell inspiron 1500. En ik ben het beu dus ik ga es zien wat ik er eigenlijk aan kan doen. Als ik er echt niets aan kan doen dan klaag ik intel aan voor het produceren van een slechte netwerkkaart, ze mogen me een nieuwe laptop opsturen :D

Ik heb al veel tips gelezen en het staat iig vast dat ik niet de enige ben. Ik zal maar beginnen met mijn probleem te omschrijven.

Als ik de laptop net opstart kan ik gewoonlijk wel verbinden met m'n draadloos netwerk. Maar na verloop van tijd verlies ik dan die verbinding en als ik dan terug ga zien naar de beschikbare netwerken krijg ik gewoonlijk de melding dat er geen netwerken binnen bereik zijn. Ook al zit ik naast mijn AP en ontvangt m'n desktop in de kamer er naast met een belkin kaart meerdere netwerken waaronder dat van mij.

Ik had een USR 8054 router maar omdat die zijn voeding het begeven heeft heb ik nu een linksys WRT54GC. En de problemen blijven bestaan dus aan de router ligt het niet.

Zonder beveiliging op het netwerk gaat het wel al beter. Zo heb ik het een tijdje gehad en dan filterde ik op mac adres. Probleem is dat je bezoek dan altijd eerst moet registreren wat omslachtig is. Ik denk ook dat het signaal in de ether dan totaal niet geencrypteerd is dus gemakkelijk door eender wie uit te lezen.

Andere tips die ik kreeg:

  • * Recentste drivers van intel installeren en na installatie verifieren dat deze effectief up to date zijn. Zoniet manueel opnieuw installeren. De installer werkte bij mij goed en ik heb nu versie 9.0.4.37 van intel zelf, niet van bij dell.


  • * Bluetooth uitschakelen, dit lijkt bij mij niet veel invloed te hebben op de netwerkkaart.


  • * Connectie met b netwerk zou beter zijn dan g (maar dan hadden ze deze adapter 2200B moeten noemen ipv 2200BG). Dit is tot nu toe de enige tip waar ik echt iets mee ben.


  • * WPA2 zou problemen geven, dus WPA gebruiken. Ik heb nog altijd WPA2 geactiveerd.


  • * Energieverbruik op maximum om zo een beter signaal te hebben, ten koste van de batterijduur


  • edit:

    Momenteel test ik met de router op gemengd b/g en de intel 2200bg op enkel b. Dit lijkt goed te gaan. Al heb ik nu natuurlijk wel een tragere verbinding. Voor Internet heb ik daar gn last van. Voor transacties op mijn lokaal netwerk waarbij ik wel de maximale rate kan benutten merk ik dat uiteraard wel. Als dit de enige manier is om met m'n laptop deftig te netwerken ga ik toch nog van me laten horen bij intel.

    edit2:

    Bovenstaande gaf beterschap maar durfde nog fout te gaan. Dus nu heb ik maar een linksys (heb momenteel ook een linksys router) usb adapter gekocht. Weg met de problemen.

    dinsdag 19 februari 2008

    jstl el troubleshooting

    A comprehensive troubleshooting guide handling some common jstl/el mistakes:

    http://thoughtsgarden.com/p/jstl-1.1.x-installing-configuring/

    My experience



    1. Download the yakarta taglibs from here: http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi and copy the standard.jar and jstl.jar towards the /WEB-INF/lib/ folder of your webapp.

    2. make sure to have the right web.xml declaration, at least 2.4

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">



    3. In your jsp pages define the taglibs like this (only the ones you need):
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

    <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

    <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


    At this point jstl and el should work without the need of adding any tld definitions in the web.xml definition. You can put a javabean on the request in your servlet by this code:
    request.setAttribute("idOfTheBean",beanInstance);

    Note that a javabean should always have a no args ctor and public setters and getters for private properties.

    A great toturial on the MVC part of jsp/servlets/javabeans is this: http://courses.coreservlets.com/Course-Materials/pdf/msajsp/0B-MVC-Review.pdf

    woensdag 13 februari 2008

    remote debugging

    to remotely debug servers, local java executions, ... add the following arguments:

    -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n


    You can then connect with eclipse, starting a remote java debug on the given port. here that is 8787.

    dinsdag 5 februari 2008

    free svn hosting

    I started using http://opensvn.csie.org but could problems (host not responding) when actually trying to import.

    Now I'm evaluating http://www.assembla.com and so far import is working. It's a different approach because you need to sign up for a developer acount and then you can sign in into projects, become members. So in order to give rights to another user these have to register with assembla.

    Don't forget that you can find a lot of information on svn in the following free ebook: http://svnbook.red-bean.com/

    edit:

    assembla



    I'm now getting into assembla and it is all for free and very usefull so far!

    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