vrijdag 25 maart 2011

Apache Derby en ColdFusion / Derby


De laatste versies van ColdFusion komen met een nieuwe database driver, die als naam "Derby" heeft. Het leuke hiervan is dat de software om een Derby server te draaien, reeds in ColdFusion zit. Derby databases zijn file-based, en kunnen dus makkelijk worden verplaatst of gecopieerd. Ik besloot om hier even een kijkje naar te nemen. Vroeger werkte ik altijd met Microsoft SQL Server, maar de versies na 2000 zitten vol bloatware en zijn eigenlijk alleen nog maar te begrijpen door database managers.

Derby is een soort van Access op speed. Je kunt de database gerust in productieomgevingen gebruiken. Multi user is geen probleem.

Alle componenten die je nodig hebt om een Derby server te draaien zitten zoals eerder gezegd al klaar in ColdFusion, maar je moet zelf uitzoeken hoe het werkt.

Om de Derby server op te starten open je een command prompt en ga je naar
C:\ColdFusion9\lib.

Daar voer je het volgende uit: java -jar derbyrun.jar server start

Om de server weer te stoppen, gebruik je: java -jar derbyrun.jar server shutdown

Je kunt de server ook automatisch opstarten via een Scheduled Task. Open daarvoor Start - Control Panel - Scheduled Tasks - Add scheduled task. Kies als programma java.exe met argumenten -jar derbyrun.jar server start. Start het programma in C:\ColdFusion9\lib "When my computer starts". Kies
"Run whether user is logged on or not" en "Do not store password". Vink het vakje bij "Stop if the task runs for 3 days" uit.

Een andere manier is door YAJSW te gebruiken.

Om een database aan te maken, voeg je een datasource toe in de Coldfusion Administrator module. Kies een data source name. Kies Apache Derby Client als driver. Klik op Add. Kies een database name (opgelet, dit moet een directory naam zijn, bijvoorbeeld D:\ColdFusion9\db\mydb). Zet als server localhost op poort 1527. In advanced settings zet je als connection string:

create=true;dataEncryption=true;bootPassword=test1234

Gebruik een bootPassword naar keuze. Dit paswoord wordt gebruikt om je database te versleutelen. Enable CLOB en BLOB indien je deze gebruikt.

Bewaar de datasource. Deze zal nu worden geopend door ColdFusion om te kijken of ze bestaat. Omdat er een create=true in de connection string staat, wordt deze ook meteen aangemaakt.

Om de database te beveiligen met een gebruikersnaam en een paswoord open je een SQL editor (bijvoorbeeld RazorSQL). Als connection profile gebruik je jdbc:derby://localhost:1527/C:\ColdFusion9\db\mydb;bootPassword=test1234

Stuur vervolgens de volgende SQL commando's op naar de lege database:

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.username1', 'password1');
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication', 'true');

Hiermee activeer je de gebruikersnaam "username1" en het paswoord "password1".

Pas nu de datasource weer aan in ColdFusion. Vul je zojuist gekozen username en password in bij de properties. Zorg ervoor dat alleen "bootPassword=test1234" nog in de connection string staat.

Klaar is kees!

Bij Railo wordt Derby niet standaard geïnstalleerd. Ofwel kopieer je derby.jar, derbyclient.jar, derbynet.jar, derbyrun.jar en derbytools.jar van een al bestaande CF installatie uit
C:\ColdFusion9\lib naar C:\railo\lib. Vervolgens doe je een restart van Railo. Ofwel download je de laatste versie van Derby op het net. ColdFusion 9.0.1 komt met versie 10.5.3.0, maar dit is een al wat oudere versie. Wil je de nieuwe (10.7.1.1 op het moment van schrijven), ga dan naar http://db.apache.org/derby/derby_downloads.html en download de LIB distributie.

Om de datasource toe te voegen in Railo kies je als type "Other - jdbc driver". Vervolgens als Class "org.apache.derby.jdbc.EmbeddedDriver" en als DSN "jdbc:derby:C:\ColdFusion9\db\mydb;create=true;dataEncryption=true;bootPassword=bootPassword" als je de embedded versie van Derby wil gebruiken. Beter nog is de netwerk versie. Hiervoor gebruik je als Class "org.apache.derby.jdbc.ClientDriver" en als DSN "jdbc:derby://localhost:1527/C:\ColdFusion9\db\mydb;create=true;dataEncryption=true;bootPassword=bootPassword"

woensdag 16 maart 2011

iOS Developer worden is een hele kunst


Voor 'm werk moet ik een Apple iOS developer account hebben. Dat lijkt makkelijk, maar het volgende verhaal toont dat het dat zeker niet is.

Om te beginnen werkt de website waar je je kunt op registeren niet goed met Internet Explorer. Stukken ontbreken op de formulieren die je moet invullen. Dan maar Chrome gebruikt, en dan werkt het wel. Je moet bij je inschrijving kiezen tussen twee soorten accounts: een individueel of een bedrijfsaccount. Ik koos voor een individueel account, omdat ik de enige ontwikkelaar zal zijn. Even langs de boekhouding om de betaling uit te voeren met de Visa kaart van de baas, en klaar is kees. We schrijven op dat moment 3 februari 2011.

Op 7 februari komt er een mail aan van Apple. Mijn naam komt niet overeen met de naam op de Visa kaart en kan niet in behandeling worden genomen. Ik moet een bewijs van identiteit opsturen. Ik kan uiteraard nooit bewijzen dat ik mijn eigen baas ben, maar kan de bestelling ook niet annuleren. So far gebruiksvriendelijkheid. Ik bel noodgedwongen naar Apple. In het Engels, een Nederlandse klantendienst hebben ze niet. Daar kunnen ze mijn bestelling annuleren.

Op 16 februari kan ik opnieuw een developer account aanvragen, ditmaal als bedrijf. Het lijkt goed te gaan, want de dag nadien al krijg ik een mail waarin men mij vraagt om legale documenten door te faxen, zodat ze kunnen zien dat ons bedrijf wel degelijk bestaat. Ik doe dit dezelfde dag nog.

Daarna blijft het lang stil bij Apple. Op 9 maart krijg ik een mail waarin Apple me zegt dat de gekozen bedrijfsnaam bij de aanmelding niet in overeenstemming is met de naam op de legale documenten. Er staat namelijk VZW in mijn aanmelding, en die melding staat niet op de fax. Men stelt voor om 'VZW' te laten vallen. Ik stuur een mail terug en leg hen uit dat VZW geen deel uitmaakt van de bedrijfsnaam, maar een legale entiteit is, maar dat ze hem gerust mogen weglaten.

Op 15 maart krijg ik een bericht terug waarin ze me danken dat ik het VZW probleem heb uitgelegd, en vragen ze me OPNIEUW een fax te sturen met de juiste bedrijfsnaam in. Holy crap? Ik stuur een antwoord terug en zeg dat ze de naam mogen veranderen zoals ze zelf hebben gesuggereerd.

We zijn nu meer dan een maand verder en ik heb nog altijd geen account.

TO BE CONTINUED.

Winload.exe Is Missing Or Corrupt


Deze foutmelding kwam bij elke reboot op het scherm van mijn server. De machine had eerder problemen met een harde schijf. Die werd vervangen, en toen begonnen de problemen. Intussen ben ik er achter dat meneer winload helemaal niet vermist is. Het is een fout in de bootloader, het scherm dat je te zien krijgt en waar je moet kiezen welke configuratie je moet opstarten.

Je kunt dit eenvoudig zelf checken door in windows/system32 het programma bcdedit.exe te lanceren in een command prompt. Grote kans dat er in de sectie 'Windows Boot Loader' lijnen staan met 'unknown' er in, in de plaats van C:

Staat er 'unknown' bij 'osdevice', tik dan bcdedit /set {default} osdevice "partition=C:

Staat er 'unknown' bij 'device', tik dan bcdedit /set {default} device "partition=C: