donderdag 31 maart 2011

Windows Live Writer 2011–Nederlandse spellingchecker zelf installeren

Om blog-posts te schrijven ben ik zeer tevreden met Windows Live Writer 2011. Dit is een gratis stuk software van Microsoft wat hoort bij de Windows Live Essentials 2011.

Wat echter een minpuntje is, de spellingscontrole van Windows Live Writer 2011 is er blijkbaar alleen voor het Engels. Ik zou de spellingchecker graag ook (naar keuze) voor het Nederlands willen gebruiken.

Dat is me gelukt en de oplossing zal ik hieronder beschrijven.

Je ziet het probleem in onderstaande screenshot:

Windows Live Writer kent geen Nederlands

De Engelse tekst wordt herkend, de Nederlandse niet (rode krulletjes). In de opties vinden we diverse taalinstellingen , maar alleen voor het Engels (English), het Nederlands (Dutch) staat er (nog) niet tussen:

Dictionary Language in Windows Live Writer 2011

Na wat zoeken op internet blijkt dat Microsoft vindt dat wanneer je de Nederlandse spellingschecker wilt gebruiken, je de Nederlandse versie van Windows Live Writer 2011 moet installeren. Ikzelf houdt echter niet zo van Nederlandstalige menu’s en een ander nadeel is dat je dan volgens hetgeen ik gelezen heb niet terug kan naar de Engelse spellingschecker. (Mocht ik ooit een Engels stukje willen schrijven/spellchecken).

Ik heb een betere oplossing. De door Windows Live Writer 2011 gebruikte taalbestanden vind je in de map

C:\Program Files (x86)\Windows Live\Writer\Dictionaries

C:\Program Files (x86)\Windows Live\Writer\Dictionaries

Hierin staan de bestanden voor de Engelse taal. Het lijkt erop dat deze taalbestanden hetzelfde zijn als die door Microsoft Office gebruikt worden. Ze zijn dus hopelijk uitwisselbaar!

Microsoft Office 2010 gebruikers hebben dus geluk, die kunnen een een op een copy maken, de bestanden heten hetzelfde. Ik heb echter Microsoft Office 2007 en dan is er nog een extra stapje nodig. Ik heb een Engelse Microsoft Office 2007, maar met de language pack, zodat ik in Office wel een Nederlandse spellingschecker heb. Deze willen we ook voor Windows Live Writer 2011 beschikbaar maken. Je ziet de taalbestanden van mijn Office versie hieronder.

C:\Program Files (x86)\Common Files\microsoft shared\PROOF

MSSP3NL.DLL MSSP3NL.LEX

De benodigde bestanden zijn MSSP3NL.DLL en MSSP3NL.LEX , deze kopieer je naar C:\Program Files (x86)\Windows Live\Writer\Dictionaries :Windows Live\Writer\Dictionaries

En om ze door Windows Live Writer 2011 te laten laden, rename je deze bestanden naar MSSP7NL.DLL en MSSP7NL.LEX :

MSSP7NL.DLL MSSP7NL.LEX

Na deze truuk starten we Windows Live Writer 2011 opnieuw et voila, in het optie menu kunnen we nu ook kiezen voor de Nederlandse spellingchecker (Dutch), zonder dat de optie voor Engels (English) verloren is gegaan:

Dutch Dictionary Language

Conclusie, met Windows Live Writer 2011 is het mogelijk de taalbestanden van Microsoft Office 2007 te gebruiken. Hier is echter wel het maken van een copy van deze bestanden voor nodig.

vrijdag 25 maart 2011

Array in App Inventor for Android

De laatste tijd ‘s wat zitten spelen met App Inventor for Android. App Inventor stelt je op een laagdrempelige manier in staat om simpele applicaties te ontwikkelen die je kunt laten draaien op je Android telefoon. Het is een online programmeeromgeving uit de Labs van Google. Met deze IDE kan je via drag en drop de componenten voor een GUI en de achterliggende logica middels puzzelstukjes in elkaar klikken.

Om te kijken wat er mogelijk is, wilde ik een simpel bordspelletje ontwikkelen. De bordopstelling zou dan in een 2D array kunnen worden opgeslagen. Helaas blijkt het Array type op dit moment niet aanwezig te zijn in de App Inventor building blocks. Wel handig om te hebben, dus tijd om hier zelf iets voor te maken!

Het gaat erom een twee dimensionele matrix te hebben. Deze bevat elementen die addresseerbaar zijn via rij en kolom (row en column). En gezien mijn vroegere liefde gebruiken we het Row Mayor principe en beginnen de index met 1. Zie onderstaande plaatje:

Array Row Mayor

App inventor kent dan geen Array, maar wel een list type. Door een lijst (als vector) in een lijst te maken, kunnen we een twee-dimensionale matrix, dus onze array, construeren. In “code” ziet dat er als soort van constructor als volgt uit. Hierbij vullen we de array direct maar met wat initieele waarden, 1 tot en met 9:

Array in App Inventor

Om tijdens de programma uitvoering waarden in en uit het array te plaatsen hebben we nog een getter en een setter functie nodig.

Om een waarde uit het array te lezen, aan de hand van zijn row en column. Ook het betreffende array geef ik als argument mee, zodat deze functie binnen het programma generiek voor meerdere verschillende arrays te gebruiken is. De return value van deze functie is de waarde uit het array die je zocht:

getArrayItem

En de andere kant op, replaceArrayItem om een waarde in het array te plaatsen. Zelfde argumenten met als extra uiteraard nog de waarde die je wilt plaatsen:

replaceArrayItem

Voor de naamgeving van getArrayItem en replaceArrayItem heb ik me laten inspireren door het al aanwezig List component. (getListItem en replaceListItem) Op deze manier krijg je in je palette met eigen definities een uniform gevoel:

App Inventor My Blocks

Als laatste nog een tweetal screenshots van het gebruik van bovenstaande definities:

selectArrayItem

replaceArrayItem

Wil je alles zelf nog eens nakijken en uitproberen, dan kan je de broncode met daaromheen een GUI (het speelbord) als een soort van proof of concept hier downloaden: Row_Mayor_2D_Array.zip

woensdag 9 maart 2011

Android op VMWare Player

In deze post beschrijf ik hoe ik Android 2.2 laat draaien op VMWare Player (of Workstation).

Android is een open-source stack (OS, middleware, applicaties) voor mobiele devices, ontwikkeld door Google. Door het open-source karakter zijn er veel communities te vinden op internet die iets doen met/aan Android. Een van deze communities is http://www.android-x86.org/ en houdt zich bezig met het porten van Android naar het x86 platform. Eigenlijk bedoeld om Android te draaien op bijvoorbeld Netbooks, maar deze port gaan wij gebruiken op een virtuele machine.

Voor de virtuele machine gebruiken we VMWare player. Dit is de freeware virtualisatie product van VMWare, gratis voor persoonlijk en niet-commercieel gebruik. Je kan het na registratie downloaden van de VMWare site. Aangezien we op het werk al jaren de VMWare suite gebruiken, heeft dit product mijn voorkeur, andere producten (Virtual Box, Virtual PC etc.) zullen ongetwijfeld ook werken.

Stap 1 – Downloaden Android x86 port

Op de nightly build server vinden we de laatste ISO images die we kunnen gebruiken om een virtuele machine van te booten en te installeren. Kies de ISO die je vindt in het mapje “generic” : http://android-x86.moonman.dk/index.php?folder=Z2VuZXJpYw== 

image

Vandaag is dat generic_x86-20110309.iso Kies niet voor de image met USB in de naam, maar voor de “gewone” ISO.

Stap 2 – Aanmaken virtuele machine

Start je VMWare player op, je krijgt het startscherm.

image

Kies de optie “Create a New Virtual Machine” en laat weten dat je wilt installeren van een Installer Disc Image. Vul de locatie en de naam van je net gedownloade ISO image in.

image

VMWare detecteerd een FreeBSD systeem, wat prima is. In het volgende scherm de naam en locatie opgeven.

image

Daarna wat zaken over de gewenste Disk Capacity. Kan je op de standaard instellingen laten staan.

image

En alweer het laatste scherm.

image

Stap 3 – Installatie van Android x86 op de virtuele machine

Direct na het drukken van Finish zal de zojuist aangemaakte virtuele machine gaan starten en booten vanaf de aangegeven ISO (Virtuele CD-ROM). Je komt in het Android x86 installatiescherm:

image

Je kunt ervoor kiezen om de ISO als live CD te gebruiken en zo direct Android-x86 te booten, echter is het leuker om het OS te installeren op de virtuele harddisk van de virtuele machine. Dit zodat je straks ook leuke dingen kan doen als een virtuele SD card aanmaken en apps installeren.

Kies de optie “Installation”:

image

En het OS start op:

image

De virtuele harddisk is helemaal leeg. Allereerst moeten we een partitie aanmaken om het OS op te installeren.

image

Kies de eerste optie “Create/Modify partitions” en in het daarop volgende scherm “New” :

image

We maken er een primary partitie van:

image

Gebruik alle ruimte (Dat is de standaard waarde) en de partitie is aangemaakt. Nu moet deze nog bootable gemaakt worden:

image

Nu zijn we klaar met cfdisk. Niet op Quit drukken, maar eerst nog onze wijzigingen wegschrijven met het commando “Write” :

image

Yes, we weten het zeker:

image

En na Quit komen we weer terug in de installer, waar onze nieuwe partitie als sda1 zichtbaar is:

image

Deze partitie selecteren we om het OS op te installeren en we willen deze graag formateren in het ext2 fs formaat:

image

En dat weten we ook weer heel erg zeker:

image

Het formateren gaat voor mij te snel om er een screenshot van te maken, daarna krijgen we de optie om de boot loader GRUB te installeren, dat willen we:

image

En als laatste vraag of we de system map read-write willen maken. Dat is niet standaard en voor ons doel (het draaien van Android om mee te spelen) niet nodig, dus doen we niet.

image

En eindelijk wordt Android-x86 geinstalleerd op ons virtuele systeem:

image

Als laatste willen we graag een virtuele SD card in onze telefoon/tablet (wat je je er maar bij voor wilt stellen) , dat doen we in het laatste installatie scherm:

image

En ik kies voor de voorgestelde groote van 2GB:

image

En de SD kaart wordt “aangemaakt”:

image

En nu kunnen we gaan rebooten.

image

Stap 4 – Opstarten van Android x86 op de virtuele machine

Eerst halen we de virtuele CD-ROM uit de virtuele CD speler, zodat de virtuele machine na de reboot van de harde schijf zal starten.

image

We vervangen daarom de installatie ISO voor de physical drive:

image

En als we rebooten en alles is goed gegaan, zien we het volgende GRUB bootscherm (HDPI is 480x766 en MDPI is 320x480) en kunnen we Android starten.

image

De bovenste optie geeft ons dus de hoogste resoluatie. Na selectie start Android op en de eerste keer duurt dat even:

Android op VMWare

Maar al snel hebben we een virtueel Android device.

Android op VMWare

Met de muis wordt het touchscreen bedient en kunnen we door het slotje omhoog te “sliden” de machine unlocken en komen we in de bekende app launcher:

Android op VMWare

En er zijn al een flink aantal applicaties meegeleverd. Onder andere een alternatief voor de Google appstore en een browser.

Android op VMWare

Uiteraard kunnen we niet bellen (dit wordt nog niet geemuleerd) en ook de emulatie (of op een andere manier beschikbaar maken) van bijvoorbeeld rotatie detectie en kompas heb ik nog niet kunnen vinden. Ook geluid heb ik nog niet gehoord (Dit ligt er maar net aan of er een Android driver is voor de geluidskaart die je onderliggende systeem ter beschikking stelt), maar het netwerk werkt wel en we kunnen dus met een webbrowser het internet op:

Android op VMWare

Ook bellen werk niet Winking smile

Android op VMWare

Handige knoppen om te gebruiken. De meeste knoppen kan je ook langer ingedrukt houden.

Muisbeweging met linkermuisknop ingedrukt is sliden/sweepen.

  • Home : Home (lang indrukken = most recent tasks)
  • Windows : Home
  • Rechter muisknop / Esc : back
  • F3 : Call button (groen)
  • F4 / End : Power button
  • Cursortoetsen : Cursorblok
  • Spatie : Select

En de power button leidt tot het einde van deze tutorial.

image

 

Android Power Off