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:
woensdag 16 februari 2011
Galaxian3 on the move
Van gedrevenheid gesproken, hier is een mooi voorbeeld. De kerel vanop dit forum is zot van het arcadespel Galaxian3. Echt retrospul. Galaxian3 wordt gespeeld in een theater, met een aantal stoelen voor een scherm en met een draaiend geweer in de hand. In Vlaanderen stond er tot enkele jaren geleden eentje in de grootste speelhal van Blankenberge, naast de bowlingbaan. Wie even op de link klikt, ziet waar het theater nu is terecht gekomen. Pretty impressive.
donderdag 3 februari 2011
De leukste Android applicaties
Een aantal mensen hebben mij gevraagd naar wat leuke applicaties om op hun Android toestel te plaatsen. Daarom, op verzoek, mijn lijstje van iconen die ik minstens één keer per week aanklik.
Tools
Advanced Task Killer
AndRecorder (sound recorder)
AopReader (RSS reader)
ApptoSD (om applicaties automatisch op SD te plaatsen)
Barcode Scanner (om QR codes te lezen)
BETrains (reisinformatie treinen)
Buienalarm (geeft een biepje als het gaat regenen)
ConvertPad (omzetprogramma)
Dropbox (om bestanden te synchroniseren met mijn pc)
Google Earth
eBay (om veilingen op te volgen)
Eén Teletekst (teletekst van de vrt)
Gmail
Goggles
Google Vertalen
GPS Status
Instant Heart Rate (bepaalt je hartslag)
No Signal Alert (biept als je geen gsm ontvangst hebt)
NOS teletekst
PDF viewer
Photoaf (om panoramische foto's te maken)
Radio.be (online radiostations beluisteren)
Retro Camera (foto's met een retro afwerking)
Runkeeper (om je loopprestaties bij te houden)
Scanner Radio (communicatie vliegtuigtorens)
SoundHound (welk nummer hoor je nu)
Speed Test
Google Talk
TVGids.be (televisiegids)
Vandaag.be (nieuws)
Google Voice
Wapedia (interface naar Wikipedia)
Games
Angry Birds
Jewels (een Bejewelled kloon)
Reversi
Solitaire
Spaghetti Marshmallows
Talking Tom (voor de kids)
Teeter (stalen balletje op een plank)
woensdag 19 januari 2011
Nieuwe NAS, met kleine problemen

M'n oude NAS, een Windows Home Server, heeft de geest gegeven en was eigenlijk ook al een beetje krap geworden. Nieuwe schijven plaatsen had niet veel zin; het oude moederbord heeft geen SATA aansluitingen, dus een harde schijf van meer dan 500GB was niet realistisch.
Op dan naar een gigabit NAS, die ik heb gevonden in de vorm van de tweehonderd euro dure LinkStation LS-WX2.0Tl/R1. In de machine zitten twee schijven van 1TB die je in RAID1 kan gebruiken.
De installatie had heel wat voeten in de aarde. Om de één of andere reden werd in RAID1 een capaciteit van 2TB weergegeven in de interface. Ik besloot om de harde schijven opnieuw te formatteren, een proces dat 36 uur (!) in beslag nam omdat de hele schijf vier keer met random data wordt overschreven.
Toen ik de laatste nieuwe firmware wou plaatsen bleek dit nietszeggende foutmeldingen op te leveren. De schuldige was de firewall van Windows. Al het inkomende verkeer van de NAS toestaan verhielp het probleem en nu werkt alles prima.
maandag 17 januari 2011
Flash Media Server beveiligen
Tegenwoordig gebruikt zowat iedere professional Flash Media Server om z'n videofilmpjes naar de gebruiker toe te streamen. Maar wat als je wil voorkomen dat één of andere "ripper" aan de haal gaat met je videostream? Sinds een tijdje zit hiervoor een ingebakken beveiliging in FMS, waar ik nu pas van hoorde.
De truuk zit 'm op twee niveaus: ten eerste een encryptielaag (makkelijk in te schakelen door RTMPE te gebruiken als transportprotocol) en ten tweede een authorisatie van het SWF bestand dat de stream mag openen. Moeilijk te implementeren? Bijlange niet!
1. Open het bestand %FMS_Install%/conf/_defaultRoot_/_defaultVHost_/Application.xml.
2. Verander SWFVerification enabled="false" naar "true".
3. Zet in SWFFolder een lijst van de directories waarin de SWF files staan die je streams mogen bekijken (met ; als separator).
4. Zet FinalHashTimeout op 5.
5. Zet in DisallowedProtocols rtmp, rtmps, rtmpt. Opgelet: vanaf nu zijn ALLEEN nog maar encrypted streams te bekijken.
Restart FMS en gaan met die banaan!
De truuk zit 'm op twee niveaus: ten eerste een encryptielaag (makkelijk in te schakelen door RTMPE te gebruiken als transportprotocol) en ten tweede een authorisatie van het SWF bestand dat de stream mag openen. Moeilijk te implementeren? Bijlange niet!
1. Open het bestand %FMS_Install%/conf/_defaultRoot_/_defaultVHost_/Application.xml.
2. Verander SWFVerification enabled="false" naar "true".
3. Zet in SWFFolder een lijst van de directories waarin de SWF files staan die je streams mogen bekijken (met ; als separator).
4. Zet FinalHashTimeout op 5.
5. Zet in DisallowedProtocols rtmp, rtmps, rtmpt. Opgelet: vanaf nu zijn ALLEEN nog maar encrypted streams te bekijken.
Restart FMS en gaan met die banaan!
Abonneren op:
Posts (Atom)



