donderdag 17 november 2011

Phonegap en iOS certificaten op Windows


Ik ben onlangs wat aan het experimenteren geslagen met Phonegap. Dit is een framework waarmee je HTML5 applicaties kunt compileren naar apps voor iOS en Android. Als je alleen een Windows pc hebt, en geen Mac, is de cloud compiler van Phonegap een zegen. Helaas is het systeem voor het genereren van certificaten niet zo simpel in Windows. Ik ben echt dagen bezig geweest om alles uit te zoeken.

Phonegap heeft een p12 bestand, een provisioning profile en een certificate password nodig om iOS apps te kunnen compileren.

Meld je aan op http://developer.apple.com en ga naar het Provisioning Portal (let op: gebruik bij voorkeur Chrome als webbrowser).

Eerst moet je je test toestellen toevoegen. Klik op Devices, kies een naam en voeg de Device ID toe. Deze ID kun je vinden door met je toestel naar de mobiele website http://m.diawi.com te surfen. Je kunt maximaal 100 toestellen toevoegen.

De volgende stap bestaat er in om het Signing Certificate en het Mobile Provisioning Profile te genereren. Op een Mac is dit simpel (via de keychain toepassing). In Windows gebruiken we OpenSSL hiervoor.

Download en installeer OpenSSL Light op http://www.slproweb.com/products/Win32OpenSSL.html.
Best mogelijk dat je ook de C++ Redistributables moet bij installeren.

Open een command prompt en verander de directory naar C:\OpenSSL-Win32\bin.

Tik dan:

set RANDFILE=.rnd
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

(uiteraard pas je het pad aan als je OpenSSL ergens anders hebt geplaatst).

Nu genereer je je private key. Tik:

openssl genrsa -out mykey.key 2048

En dan:

openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=mijnemail@domein.com, CN=MIJNFIRMA, C=LANDCODE"

Pas uiteraard de voorbeeldparameters aan.

Ga dan naar Certificates in het Provisioning Portal. Klik op de "Request Certificate" knop.

Upload het bestand "CertificateSigningRequest.certSigningRequest" and start het generatieproces van het certificaat.

Download het gegenereerde certificaat (developer_identity.cer) in de OpenSSL-Win32\bin directory.

De volgende stap is het omvormen van dit .CER bestand naar een P12 certificaat:

openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

En dan:

openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

Kies een paswoord en onthoud het goed. Vervolgens wordt het bestand "iphone_dev.p12" aangemaakt. Dit is het eerste bestand dat we nodig hebben.

Om een mobile provisioning file te maken, moeten we eerst een App ID aanmaken. Ga naar de App ID sectie op het Provisioning Portal.

Kies New APP ID, tik een beschrijving en gebruik "*" als bundle identifier.

Nu koppelen we alles aan elkaar. Ga naar Provisioning en kies New profile. Kies een naam voor het profiel, het certificaat dat moet gebruikt worden, de AppID en de toestellen waarop je de applicatie wilt laten draaien. Kies Submit en download de .provisioning file naar de OpenSSL-Win32\bin directory.

Je hebt nu voldoende gegevens op via http://build.phonegap.com een iOS IPA bestand aan te maken. Om een test link naar je gebruikers te sturen, kun je de website http://www.diawi.com gebruiken.

woensdag 16 november 2011

WeTab


Op eBay heb ik een WeTab op de kop getikt voor 200 euro. Deze pad komt met het WeTab besturingssysteem, maar je kunt er ook Windows op installeren.

Dit leek me een goed moment om eens wat te spelen met de testversie van Windows 8, en om er als tweede besturingssysteem Android 3.2 op te plaatsen.

Om dit te doen moet de WeTab eerst een ander BIOS krijgen. Ga naar http://linuxmirror.pherzog.net/wetab_community_downloads/ en download biosstick.zip.

Download vervolgens Imagewriter vanop http://launchpad.net/win32-image-writer en gebruik dit programma om het IMG bestand uit de voorgaande ZIP op een USB stick te schrijven.

Stop de USB stick in een USB poort, zet de WeTab aan en druk van zodra het blauwe lichtje brandt op de AAN knop en op de quickstart knop linksboven samen. Laat los van zodra je activiteit ziet op je stick. Je hebt wel een USB keyboard nodig om de update te doen. De instructies op het scherm zijn duidelijk.

Na de installatie van de BIOS update krijg je bij een reboot nu twee knoppen: BBS (boot menu) en BIOS, welke met het touch screen zijn aan te klikken. Ga in de BIOS en zet de AHCI mode voor de SSD drive op actief.

Download het 32 bits Windows 8 image bestand vanop http://msdn.microsoft.com/en-us/windows/apps/br229516. Gebruik Microsoft's eigen USB Image Tool om dit bestand op een USB stick te plaatsen.

Reboot de WeTab en start de installatie vanop de USB stick. Wis alle partities.

Windows 8 herkent zo goed als alle hardware. Er moeten nadien maar enkele drivers geïnstalleerd worden. Deze kun je vinden op http://linuxmirror.pherzog.net/wetab_community_downloads/windows_7/driver/

Installeer alle drivers als Administrator en in de Windows 7 compatibiliteitsmodus. Hanteer deze volgorde:

1. Chipset driver (00-Chipset.zip)

2. Mobile Partner software - de modem driver en programma om met een SIM kaart op het internet te gaan (Mobile_Partner_13.001.08.04.538.zip)

3. Bluetooth en WLAN driver (04-BT_WLAN.zip)

4. G Sensor Driver (07-G-Sensor.zip)

5. Millennium - het controlepaneel voor de GPS, rotatie, WLAN, Bluetooth en helderheid (10-Millennium_3.2.zip)

Na de installatie van Windows 8 voeg je Android toe op de WeTab.

Het Android 3.2 pakket kun je vinden op http://uploaded.to/file/pw6v93bo

Ontzip beide directories uit het ZIP bestand naar de C: drive van de WeTab.

Download EasyBCD vanop http://www.chip.de/downloads/EasyBCD_23603661.html en start het programma.

Kies "Add New Entry" - "NeoGrub" - "Install".

Kies links "Edit Boot Menu" en selecteer het default OS.

Geef "Neo Grub Bootloader" een nieuwe naam, bijvoorbeeld "Android 3.2".

Sluit EasyBCD.

Kopieer "menu.lst" uit de "grub" directory naar C:\NST.

Klaar is kees! Bij een volgende reboot krijg je nu een menu, waar je kunt kiezen tussen Windows 8 en Android 3.2. De keuze maak je door kort op de quickstart button te drukken. Lang drukken bevestigt je selectie.

woensdag 14 september 2011

Notepad++

Tijdens het ontwikkelen in HTML en ColdFusion werk ik al jaren met HomeSite (aka ColdFusion Studio). Ik weet dat het er allemaal wat mooier uitziet in Eclipse (ColdFusion Builder) of Dreamweaver, maar die programma's zijn zo traag dat ik er grijze haren van krijg.

Misschien is nu toch de tijd gekomen om HomeSite te vergeten. Ik heb namelijk een mooi alternatief ontdekt, dat nog steeds in ontwikkeling is: Notepad++. In combinatie met een paar plugins is dit echt een pareltje van een editor.

Je kunt de editor hier terugvinden. De ColdFusion extensies zijn hier te downloaden. Om ze te installeren is wel wat copy & paste werk nodig, helaas is er geen makkelijke setup procedure. Verder gebruik ik ook het handige Light Explorer, die je kunt downloaden via de Plugin Manager in Notepad++ zelf, net als de Lorem Ipsum plugin.

maandag 6 juni 2011

EDPnet voip op de BBOX2

Omdat ik zo tevreden ben van EDPnet en ik de hoge kosten voor mijn telefoonlijn bij Telenet een beetje beu was, heb ik besloten om ook voor telefonie de overstap te wagen. De omschakeling zelf ging zeer vlot. Wat papierwerk opgestuurd, wat geduld gehad, en drie weken later was m'n bestaand nummer omgezet naar een VOIP nummer.

De bedoeling was om mijn bestaande analoge telefooncentrale aan te sluiten op de BBOX2. Uren en uren heb ik zitten sukkelen om dit in orde te krijgen, tot ik de gouden tip kreeg op internet. Om je BBOX2 voip te kunnen laten doen, moet deze een IP adres hebben. En dat heeft ie niet als de box in bridge mode staat.

Gelukkig kun je bij EDPnet meerdere PPPoE sessies tegelijk starten, en is het dus mogelijk om én de BBOX2 én de router er achter tegelijk een ander IP adres toe te kennen.

De oplossing is simpel. Zorg voor een rechtstreekse verbinding met de BBOX2 door je network interface op een vast IP adres te plaatsen in het 192.168.1.xxx bereik. Open dan je verkenner op het adres 192.168.1.1. Gebruik admin als username en BGCVDSL2 als password. In network interfaces zet je WAN PPPoe weer aan, met het @EDPNET userid en paswoord dat bij de VDSL2 aansluiting hoort. In settings kies je "obtain IP address automatically" en je zet de internet firewall aan op maximum security. Je schakelt uiteraard wel de remote admin modes uit.

In het tabblad Telephone volg je de officiele instructies van EDPnet (stap 4 van de wiki pagina). de interface moet op ppp0 staan.

De geluidskwaliteit van de verbinding is zeer goed. Caller ID blijft gewoon werken, net zoals vroeger bij Telenet. Het antwoordapparaat is volledig te configureren (er is zelfs een andere tekst die de bezettoon kan vervangen). Je krijgt ook een melding via e-mail als er een bericht is. Het enige wat is mis is de stutter tone als er een bericht is ingesproken op de voice mail. Het rood lampje op mijn telefoontoestel brandt dus niet meer. Maar daar valt mee te leven.

donderdag 28 april 2011

Home sweet home!


Ik ben samen met mijn vrouw aan het kijken hoe we ons huis op een mooie en efficiënte manier kunnen verbouwen. Na wat gesukkel met getekende plannetjes ben ik een zoektocht begonnen naar een softwarepakket waarmee we makkelijk onze ideeën kunnen visualiseren. In het verleden had ik al wat programma's getest, maar uiteindelijk bleek zowat elk huis moeilijker op de computer na te tekenen dan in het echt te bouwen. Per toeval botste ik echter op een pareltje, en het is nog gratis ook: Sweet Home 3D. Eenvoudig, snel, makkelijk, meer moet dat niet zijn. Niet alles is mogelijk (je kunt bijvoorbeeld standaard geen verdiepingen bouwen of een dak plaatsen), maar de software voldoet precies aan onze wensen. Een aanrader!

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)
Facebook
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)
Twitter
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!

woensdag 12 januari 2011

WebApps ontwikkelen


Zoals ik al eerder schreef zit ik momenteel tot over mijn oren in de WebApp wereld. Ik ben al een paar dagen aan het zoeken naar bibliotheken die het makkelijk maken om een kleine website te ontwikkelen die op de meeste GSM's te bekijken is. Eerste voorwaarde: het mag geen geld kosten. Tweede voorwaarde: de website mag geen 'native' applicatie zijn (dus bijvoorbeeld Titanium en Appcelerator vallen af).

Wat ik tot nu toe al heb ontdekt:

DHTMLX Touch: een derivaat van de DHTMLX Javascript Ajax Library. Zit momenteel nog in testfase, maar is erg mooi om iPad applicaties te ontwerpen (en niet zozeer websites). In dezelfde stijl is ook Sproutcore terug te vinden.

Jo: een object gebaseerde library. Alles wat je op het scherm wil plaatsen, moet je met javascript toevoegen.

WebApp.net: heeft een paar leuke ideeën, zoals incremental lists, maar is nog in ontwikkeling. De laatste versie verscheen inmiddels al een jaar geleden.

Sencha Touch: een product van de makers van het Javascript framework ExtJS. Visueel zeer indrukwekkend, maar op een oudere browser zijn de applicaties niet bruikbaar.

JQuery Mobile: de tegenhanger van Sencha Touch. Het is een relatief nieuw project dat wordt gemaakt door het team van het bekende Javascript framework JQuery. Het grote voordeel hier is de goede 'backwards compatibility': alle browsers worden ondersteund.

JQTouch: een plugin voor het JQuery framework. Het is ontwikkeld door David Kaneda (die nu ook voor Sensha werkt) en lijkt wat op JQuery Mobile.

Het team achter Yahoo's YUI (ook een veelgebruikte javascript library) heeft sinds versie 3.2.0 ook support voor touch-events, maar heeft geen aparte versie voor mobieltjes.

IUI: een oud project, maar werkt wel de meest gebruikte toestellen (iPhone, Android, Blackberry en Windows). Er is support voor themes zodat je applicatie een native look kan krijgen.

IWebKit: ziet er goed uit, maar is vooral op iPhones gericht. Er is bijvoorbeeld geen animatie op Android.

Uiteindelijk twijfel ik nog tussen JQuery Mobile en IUI...