Compile script voor Java projecten

Sinds vorige week werk ik met openSuse 11.2 en dus programmeer ik er ook mijn Java projecten op. Ik heb besloten om eens Vim te leren ipv het automatisch gedoe van Netbeans/Eclipse. Een Java programma schrijven is niet moeilijk maar het compilen is iets anders. Daarom heb ik een bash script geschreven die mijn eigen project map structuur doorloopt en alles compiled en in een executable JAR stopt. Me project map structuur ziet er als volgt uit.

Java
— Project naam
—- src
—- bin
—- lib

In de src zit mijn broncode bestanden, in de bin komen alle compilde bestanden in en in lib zitten de images en third party JAR’s.

compile.sh: http://aiids.pastebin.com/ckCbfjUn

Het gebruik ervan is simpel.

compile.sh Project_Naam package.Main

De eerste parameter is de naam van je project. Dit is de naam van de ma in je java projecten map. De tweede parameter is de klasse die de main methode bevat. Als die klasse in een package zit, moet je die package ook meegeven.

Wie dit ook wil gebruiken moet javac en jar geïnstalleerd hebben en je moet regel 5 aanpassen naar de map waar je projecten in staan.

Opensuse 11.2

Na een hele lang weg heb ik dan uiteindelijk mijn favoriete distro gevonden. Jarenlang heb ik met (K)ubuntu gewerkt tot deze op een bepaald moment mijn keelgat begon uit te hangen. Na een halfjaar Windows 7 RC te draaien, kreeg ik de melding dat ik nog 0 uren kon spelen op de RC. Nu goed, ik vond dat Windows 7 aan het einde van zijn krachten was. Hij crashte geregeld zonder reden.

Op Fosdem had ik Opensuse 11.2 in werking gezien en had ik een DVD’ke meegenomen. De installatie verliep vlekkeloos en ben nu ook overgestapt van 32-bit naar 64-bit. Na een kleine fix voor het afspelen van MP3 en toestanden, is bijna alles geconfigureerd. Voor mensen die een mooie en goeie Linux willen proberen, raad ik toch Opensuse 11.2 aan.

Vlaamse programmeerwedstrijd

Vandaag was het de Vlaamse programmeerwedstrijd. Ons team (JaWS) staat op de 20ste plek van de 45 teams binnen onze categorie. Er waren vijf vragen waarvan we één heel snel hadden. Ik had degene met priemgetallen maar was de zeef van Eratosthenes vergeten en had hem bijna maar hield geen rekening met priemgetallen tussen 1 en 10. Althans dat is wat ik denk. Mijn programma kwam hetzelfde uit met de voorbeeld input en output. Een andere kwam foute output uit. Een vierde waren we bezig maar we hadden tijd tekort voor te implementeren en de vijfde lieten voor wat het was. De vragen post ik wel nog eens als ze online komen.

Het was een toffe ervaring, vooral omdat het eens iets anders is dan het gewone programmeren aan de KHL. Ook enkele oude bekenden van de KULAK waren er ook. Dus tof om deze mensen nog es te horen.

Er was gratis drank en een broodje ’s avonds. We kregen een gratis t-shirt, dat was onze enige prijs. Ook minister Vincent van Quickenborne gaf een toespraak op het einde. Hij begon over Twitter omdat onze lector hem op Twitter lastig viel. Daarnaast sprak hij vol lof over Opensource projecten en dat hij voorstander ervan was en dat ze ook meer en meer Opensource gebruiken op zijn kabinet en de overheid (50 sites draaien op Drupal) en dat allemaal bij het bijzijn van de sponsor Microsoft ^^.

Image viewer uitgebreid

Ik ben net klaar met me vijfde opdracht voor Visuele gebruikersomgevingen. Ik ben redelijk tevreden van het resultaat maar struikel toch nog over het heap overflow probleem. Wat heb ik gemaakt? Ik heb mijn vorige Image Viewer uitgebreid met extra functies zoals een slideshow. Er zit dus een Timer in, een JPopupMenu die je toelaat om tijdens de slideshow te pauzeren of te stoppen, een Toolbar die je bovenaan ziet en nog zoveel meer.

Download: ImageViewer.jar (243 kB)
MD5 checksum: 34109082368238f57b9b6fa9d806f4d5
SHA-1 checksum: f71d0d8813924d856ee347a438c27766559b1a44

Pastebin API in PHP

Pastebin.com heeft een nieuwe website en ook een API nu. Ze laten zelfs toe om je code te embedden in je blog of website. Dit kan door een iframe of gewoon met javascript. Ik heb voor de PHP mensen onder ons een Pastebin klasse geschreven.

Wat is het nut ervan?
Je kan als webmaster je code hosten bij pastebin.com en daarna embedden in je website. De stijl wordt door pastebin.com verzorgt. Dus als je …

hebt, maak je een nieuw object aan. Stuur je het naar pastebin en kan je de embedded URL opslaan. Bijvoorbeeld:

$pastebin = new Com_Wordpress_Aiids_Util_Pastebin(… , taal);
$pastebin->post();

$jsUrl = $pastebin->getEmbeddedJsURL();

echo ‘<script src=”‘ . $jsUrl . ‘”></script>’;

De broncode!

Pastebin.php: http://aiids.pastebin.com/10UmGg9A
Exampe.php: http://aiids.pastebin.com/wgY5zLAB

Enjoy!

Pastebin subdomein

Vanaf heden worden alle code fragmenten op een subdomein van de site pastebin.com opgeslaan. Dus vanaf nu allen naar http://aiids.pastebin.com om mijn code fragmenten te begluren.

Kotnet onderzocht!

Jupjup, het is terug zover. Kotnet frustratie deel 2. Ik heb een mail gestuurd naar de kotnet admins dat ze hun limieten moeten verhogen omdat ze nog limieten hanteren van 2004. We staan nu zes jaar verder en het internet is sterk gegroeid qua multimedia (youtube, …), rich internet applicaties (flash, javafx, silverlight, …), cloud applicaties (google, facebook, …) enzovoort. Ik zal wachten op hun antwoord.

Nu heb ik nog iets ontdekt. Per seconde komt er 1543 bytes bij je limiet. Dus als ik nu 1543 bytes download, staan er binnen de seconde terug 1543 bytes erbij. We gaan ervan uit dat we nu op 0 bytes staan. Kotnet zegt het volgende:

Vanaf 15 agustus 2004 geldt er een volumelimiet van 4 Gigabytes downloadverkeer per 30 dagen per gebruiker.

Dus ik moet binnen 30 dagen terug 4GB kunnen downloaden. Ik heb voor jullie even de rekensom gemaakt.

1543 * 60 * 60 * 24 * 30 bytes = 3.72 GB

Dus kotnet geeft ons per 30 dagen 0.28 GB te weinig. Ik zit al 17 maanden op kotnet en dat betekent dat kotnet mij iets meer dan 5GB verschuldigd is! Ik wil dan nu mijn 5GB en hogere limieten!

Check/generate checksums

Ik verveelde me deze morgen en ben dan maar begonnen aan een checksum programma. Je kan er checksums mee maken van je bestanden. Je kan ook de checksum van een bestand controleren. Het programma kan gemakkelijk bestanden van GB’s controleren of checksums van maken (het duurt gewoon lang -> zie progressbar die tevoorschijn komt).

Een checksum is een reeks van hexadecimale getallen (32 voor MD5 en 40 voor SHA-1). Het vertelt of het gedownloade bestand wel correct is. Stel ik publiceer mijn Checksum.jar en geef de checksum. Iemand anders geeft jou ook die Checksum.jar maar met een virus erin. Dan kan jij met de checksum van mij kijken of die Checksum.jar correct is. Je kan van ieder type bestand een checksum maken of controleren.

Voor de geïnteresseerden, de broncode zit in de jar pacakage.

Download: Checksum.jar (203 kB)
MD5 checksum: 09afcf61c88784b7ce4ffca260395682
SHA-1 checksum: d52b46e2c8da5d909093ed34dafd1d04e4ea1058

Versie 1.1 – ondersteuning om een bestand te slepen naar het “File: ” tekstvak zodat een bestand kiezen sneller gaat. Het menu is een beetje uitgebreid met informatie.

Image viewer

Alweer een nieuwe applicatie. Deze keer moesten we een eigen layout manager maken en het template patroon gebruiken.

http://dl.dropbox.com/u/1056571/Java/imageviewer.normaal.jar
http://dl.dropbox.com/u/1056571/Java/imageviewer.negatief.jar

Er zitten twee foutjes in. Als de afbeelding kleiner is dan 100 op 100 pixels, gaat hij een exception gooien. Als er teveel afbeeldingen zijn om te laden gaat hij een heap overflow exception gooien.