The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,861 other subscribers

Archive for 2011

tortoisegit – Porting TortoiseSVN to TortoiseGIT – Google Project Hosting

Posted by jpluimers on 2011/10/26

This should be the first line on the TortoiseGITS home page; I always keep forgetting this step at new installations:

Please install msysgit 1.6.1 or above before install tortoisegit http://code.google.com/p/msysgit

–jeroen

via tortoisegit – Porting TortoiseSVN to TortoiseGIT – Google Project Hosting.

Posted in Development, DVCS - Distributed Version Control, Software Development, Source Code Management | Leave a Comment »

Jon Skeet and Tony the Pony on Vimeo

Posted by jpluimers on 2011/10/26

This is from 2009, but still sooooo funny.

Lets use these 2 thumbs as parity bits.
I should have done this with pounds and pounds.
Why doesn’t John Skeet does never sleep.
No, you can’t have Visual Studio … yes telepathy is fine.

And more great quotes, sample code and experiences (like the Turkey Test) in this wonderful presentation by Jon Skeet and the famous Tony the Pony
[Wayback] Jon Skeet and Tony the Pony on Vimeo on Vimeo

Hilarious, and true :)

--jeroen

via Jon Skeet and Tony the Pony on Vimeo.

Posted in .NET, Development, Jon Skeet, Pingback, Software Development, Stackoverflow | Leave a Comment »

John McCarthy — Father of AI and Lisp — Dies at 84 | Wired Enterprise | Wired.com

Posted by jpluimers on 2011/10/25

So far, this month 3 important people in the computing industrie passed away.

Earler this month, Steve Jobs, and Dennis Ritchie.

Today John McArthy, aged 84, father of AI (he coined the term “Artificial Intelligence”) and LISP (in 1958, and still a very important language; I remember playing with muLISP and muMath in the 80s, modern languages like Scheme and Haskell were greatly influenced by it).

He got the fifth Turing Award in 1971, and kept being very active in the field of AI.

He was very versatile (read his views on sustainability) and some things were far ahead of its time (in 1961 he understood how important Time Sharing was, now look at Cloud Comuting 50 years later!).

Wired published a nice IM.

–jeroen

via: John McCarthy — Father of AI and Lisp — Dies at 84 | Wired Enterprise | Wired.com.

Posted in Development, LISP, Opinions, Software Development | Leave a Comment »

File Sharing Mac OS X Lion and PC Windows 7 | Mac OS X

Posted by jpluimers on 2011/10/25

Somehow, Apple made file shareing between Mac OSX and Windows a lot harder with OS X Lion.

My Mac Mini Server at home (running OS X Leopard Server) connectso Windows with ease (and vice versa).

But I could only connect from Windows to an OS X Lion share on my sevelopment setup.

The tips in File Sharing Mac OS X Lion and PC Windows 7 | Mac OS X allowed me to share the files on my OS X Lion machine form Windows 7, but not the other way around. The Access PC Windows 7 Files from a Mac OS X Lion tips didn’t accomplish that either.
Bummer.

–jeroenp

Posted in Apple, Power User | Leave a Comment »

Delphi XE2 Hands-On Workshop met better office – beperkt aantal plaatsen beschikbaar

Posted by jpluimers on 2011/10/25

Op dinsdag 6 en woensdag 7 december 2011, organiseren Barnsten en better office benelux een 2 daagse Delphi XE2 Workshop in Hoofddorp.

Het aantal plaatsen is beperkt, aanmelden kan via de Barnsten.com site.

Het doel van deze workshop is ervaren Delphi ontwikkelaars snel productief te laten werken met Delphi XE2. De workshop is modulair opgezet: inschrijving is per dag mogelijk.

De workshop sluit aan op de workshop die vorige week door Barnsten en The Delphi Company is georganiseerd: er zit nauwelijks overlap in de onderwerpen.

Samenvatting

Dag 1 heeft de focus op nieuwe features voor Windows gebruikers.

Dag 2 gaat compleet over cross platform FireMonkey (Windows, Mac en iOS: iPad/iPhone/iPod-touch). Neem hier je eigen

Voorbereiding

Nodig voor dag 1 en dag 2:

Nodig voor dag 2:

Programma

In samenwerking met better-office organiseert Barnsten een Hands-On workshop voor de gevorderde Delphi
ontwikkelaar. Het doel van deze workshop is u, als ervaren Delphi ontwikkelaar, snel productief te laten werken met
Delphi XE2. De workshop is modulair opgezet zodat u zich per dag kunt inschrijven.
De Hands-On Workshop vindt plaats op 7 en 8 december 2011 en wordt gehouden in Hoofddorp. Kijk voor de
beschrijving onder het kopje Product info en voor de dagindeling onder het kopje Specificaties.

Inhoud Dag 1: Introductie Delphi/RAD Studio XE2

  • Wat is nieuw in XE2
  • Migreren van oude projecten
  • Introductie x64: wat is nieuw, hoe zet je projecten over naar x64. Meer over de platformen en performance
  • VCL Styles: hoe werkt het, wat kun je er mee
  • Live Binding: wat zijn de voordelen / nadelen
  • Unit Scoping: voordelen / nadelen, backward compatibility
  • TZipFile ondersteuning
  • Conditional defines
  • FireMonkey: HD en 3D software ontwikkeling met FireMonkey
  • RAD Studio XE2 Roadmap
  • Installatie XE2 op Windows en Mac OS X

Dag 2: FireMonkey

  • Basis FireMonkey en de verschillen op de platformen Windows, OS X en iOS
  • FireMonkey op iOS: het gebruik van Xcode
  • Maken van een eenvoudige FireMonkey HD applicatie: basisprincipes, animations, effects
  • Maken van een eenvoudige FireMonkey 3D applicatie: basisprincipes, animations, effects en belichting
  • Beide applicaties van Windows naar Mac OS X omzetten
  • Debuggen op Mac OS X en iOS emulator
  • Gebruik van HD en 3D in 1 applicatie
  • Een iOS versie maken van beide applicaties
  • Fundamentele verschillen tussen mobile en desktop: hoe ga je daar in je UI mee om
  • XML, data en data binding in de FireMonkey applicaties: hoe maak je dit cross-platform
  • Hoe breng ik VCL applicaties naar FireMonkey
  • Windows: mixen van VCL en FireMonkey
  • Overzicht van interessante blogs, sites en artikelen

Installatie instructies

Installatie instructies op de Windows PC

  1. Installeer RAD Studio XE2 en de on-line help (gebruik overal de default instellingen)
  2. Installeer InterBase XE Developer edition

Installatie instructies op de Mac

Voor FireMonkey Mac OS X ontwikkeling

  1. Kopieer het bestand setup_paserver.zip naar je Mac. Deze staat meestal in (X: je Windows drive):
    64-bits systeem: X:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer
    32-bits systeem: X:\Program Files\Embarcadero\RAD Studio\9.0\PAServer
  2. Pak de file setup_paserver.zip uit op de Mac (je krijgt dan een bestand setup_paserver)
  3. Run de setup_paserver op de Mac.
  4. InterBase Developer edition:
    volg de algemene installatie instructies op de Embarcadero site,
    gevolgd door de specifieke Mac OS X instructies op de Embarcadero site.

Voor Apple iOS (iPad, iPhone, iPod touch) ontwikkeling

  1. Download en installeer Xcode 4 van de Apple site (je moet je eerst registreren) http://developer.apple.com/xcode/
  2. Kopieer de file FireMonkey-iOS.dmg naar je Mac; deze staat meestal (X: is je Windows drive) op:
    64-bits systeem: X:\Program Files (x86)\Embarcadero\RAD Studio\9.0\FireMonkey-iOS
    32-bits systeem: X:\Program Files\Embarcadero\RAD Studio\9.0\FireMonkey-iOS
  3. De file FireMonkey-iOS.dmg is een disk image.
    Mount het DMG image op je Mac. Deze wordt dan geopend in /Volumes/FireMonkey-iOS/ en er komen 2 vensters met de installers.
  4. Installeer beide in deze volgorde:
    a. fpc-2.4.4.intel-macosx.pkg (het vertelt dat het in 2 minuten installeert; dat duurt meestal korter)
    b. FireMonkey-iOS-XE2.pkg (het vertelt dat het installeert in “less than a minute”, maar meestal duurt dit veel langer, houd rekening met een kwartier of langer)
  5. Eject in de Mac Finder de DMG die je gemount hebt

Zie ook deze twee online installatie instructies:

–jeroen

via: Delphi XE2 Hands-On Workshop met better office – Barnsten.com.

Posted in Delphi, Development, Event, FireMonkey, PowerDay, Seminar, Software Development | Leave a Comment »

Delphi XE2 installation instructions on Windows and Mac (#ekon15 conference)

Posted by jpluimers on 2011/10/24

If you are attending the EKON 15 conference and want to prepare your laptops for some hands on experience, please follow the guidelines below.

I’m looking forward meeting a lot of interesting people, and having a great conference!

And if you are not attending, the below guidelines will help you get started doing cross platform FireMonkey development in Delphi :)

Installation instructions

Installation instructions on the Windows PC

  1. Install RAD Studio XE2 and the on-line help (use the default settings in all steps)
  2. Install InterBase XE Developer edition

Installation instructions on the Mac

For FireMonkey Mac OS X development

  1. Copy the file setup_paserver.zipto your Mac. Usually you can find it in here (X: is your Windows drive):64-bits system: X:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer32-bits system: X:\Program Files\Embarcadero\RAD Studio\9.0\PAServer
  2. Unpack the file setup_paserver.zip on your Mac (you will get the file setup_paserver)
  3. Run the setup_paserver on the Mac.
  4. InterBase Developer edition:follow the general Installation instructions on the Embarcadero site,followed by the speficif Mac OS X instructies on the Embarcadero site.

For Apple iOS (iPad, iPhone, iPod touch) development

  1. Download and Install Xcode 4 from the Apple site (you need to register for an account first) http://developer.apple.com/xcode/
  2. Copy the file FireMonkey-iOS.dmgto your Mac; Usually you can find it in here (X: is your Windows drive):64-bits system: X:\Program Files (x86)\Embarcadero\RAD Studio\9.0\FireMonkey-iOS32-bits system: X:\Program Files\Embarcadero\RAD Studio\9.0\FireMonkey-iOS
  3. The file FireMonkey-iOS.dmgis a Mac disk image.Mount the DMG image on your Mac. It will be openend in /Volumes/FireMonkey-iOS/ and you will see 2 installers.
  4. Install both in this order:a. fpc-2.4.4.intel-macosx.pkg (it tells you that it will take 2 minutes, usually it will take less time)b. FireMonkey-iOS-XE2.pkg (it tells you it installs in “less than a minute”, usually it takes much longer, and can take more than 15 minutes)
  5. In the Mac Finder, Eject the mounted DMG

See also these two online instructions:

–jeroen

Posted in Delphi, Development, FireMonkey, Software Development | 2 Comments »

#yellowbrick en #anwb #fail: Als de website nu ook nog nice was… (deal: ANWB – Ledenvoordeel – Yellowbrick – gratis registratie)

Posted by jpluimers on 2011/10/24

Een tijd geleden blogde ik over Nice deal: ANWB – Ledenvoordeel – Yellowbrick – gratis registratie

De eerste horde begint al goed: je moet je ANWB lidmaatschapnummer invullen, maar het nummer op je lidmaatschapskaart werkt dus niet.

Dan maar even inloggen op de anwb site. Ook dat lukt niet: mijn account (gebaseerd op een username, password en postcode) werkt niet meer, want iemand heeft besloten dat het anders moet. En alle bestaande accounts dus een nieuw ANWB account moeten aanvragen.

Dat ook niet helemaal soepel:

  1. alle cijfers van de ANWB lidmaatschapskaart ingevuld, dat was OK. Postcode ook. Daarna wat details toegevoegd (mijn oude accountnaam was reeds vergeven, dus een nieuwe gekozen), en dan krijg je een scherm dat de gegevens niet matchen. Blijkt na flink wat pielen dus dat je GSM nummer niet moet invullen als dat bij de ANWB nog niet bekend is.
  2. Niet + Niet is een dubbele politieke ontkenning voor: vul zo weinig mogelijk informatie in. Wist ik wel, maar was ik even vergeten. Zucht
  3. En nu maar wachten of de bevestigings mail door de  (SPAM, whitelist, blacklist, greylist, antivirus, etc, anwb mail komt.
    En helaas, twee problemen:
    – Milter: from=<noreply@anwb.nl>, reject=550 5.1.8 Sender address verification failed
    – sender check failed: <noreply@anwb.nl>, 145.222.128.6, mx1.pinkroccade.net
    Ofwel: anwb stuurt mail van een adres dat niet bestaat, door een ander domain dan dat van de anwb.

Dit dus maar even gelaten voor het was, want “Als u de e-mail niet binnen 30 minuten ontvangt, moet u zich opnieuw registreren.”

Eerst dus maar even verder met het Yellowbrick varkentje:

Omdat op de ANWB site het lidnummer wel klopt, dan toch maar iets ‘slims’ geprobeerd: alle inkomende fysieke post heb ik op de storage server als PDF staan. Daar dus de laatsteANWB factuur erbij gepakt. Het eerste cijfer op de ANWB lidmaatschapskaart is geen deel van je lidnummer, maar bevat het laatste cijfer van het jaar waar die kaart voor is (grappig in het voorbeeld rechtsboven dat ik van de ANWB site heb geleend: de kaart is voor het jaar 2013 – eindcijfer 3 – maar het eerste cijfer in het nummer is een 0, dus dat klopt al niet. Het voorbeeld lidnummer daar is 123222333).

Dus: bij Yellowbrick het nummer op de kaart zonder voorloopcijfer ingevuld, en waarpel: ik mocht naar de volgende stap!

Helaas: “… u gaat niet langs start, u ontvangt geen…”.

Ook hier helaas weer een flink minpunt: de Yellowbrick aanmeldpagina doet allerlei ‘slimme’ dingen met javascripts en data validatie.

En daarmee is het onmogelijk om op de meeste mobiele apparaten (o.a. Android) je aan te melden: zowel je kenteken als je GSM nummer worden tijdens de invoer vernaggeld.
Er komen tijdens het intikken van kenteken of telefoonnnummer onderstepings tekens (_) op semi-willekeurige plekken in de invoer te staan.

Een typisch voorbeeld dus van een site die slim probeert te zijn, en daardoor hun publiek inperkt.
Je moet je aanmelding dus doen via een PC of Mac.

En je moet de streepjes in je kenteken en telefoon op de juiste plek zetten.

Jammer, juist omdat dit hele Yellowbrick gebeuren bedoeld is om makkelijk vanaf je GSM, SmartPhone of PDA het parkeren te regelen, en invoer daar zo makkelijk mogelijk hoort te zijn.

En jammer dat dit weer twee voorbeelden zijn van websites waar de user experience ver te zoeken is.

Kom op, een simpele site bouwen die overal werkt, gebruikersvriendelijk is en volgens de spelregels mail verstuurt, is niet zo heel moelijk, toch?

Nou vooruit: nog twee dan. Als je bij Yellowbrick een bedrijf invult, met een postbus, dan zijn de plaats bij de vestiging en die bij de postbus een woonplaats. Uiteraard. Stel je voor dat je het vestigingsplaats of plaasnaam noemt. Dat zou toch veels te korrekt zijn?

In ieder geval komt Yellowbrick wel door het het sender check filter:
sender check succeeded: <info@yellowbrick.nl>, 212.123.229.196, [212.123.229.196]

–jeroen

Posted in Opinions, Power User | Leave a Comment »

Software updates – ForTheRecord 1.6.0.1 | Electronics | Tweakers.net Meuktracker

Posted by jpluimers on 2011/10/21

Boy I wish I had found this earlier: Software updates – ForTheRecord 1.6.0.1 | Electronics | Tweakers.net Meuktracker.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Gmail Labs: Smart Labels – Official Gmail Blog

Posted by jpluimers on 2011/10/21

I forgot to monitor the new Google Labs entries, and recently discovered the “Smart Labels” feature in Google Mail.

Having it used for about 3 months now, I can say it is awesome: a far less cluttered inbox.

Every week, I go through the BulkNotifications, and Forums labels and won’t miss a thing.

I added similar labels for some social networks for a weekly scan as well. Maybe not as social, but it saves a truckload of time.

–jeroen

via: New in Gmail Labs: Smart Labels – Official Gmail Blog.

Posted in LifeHacker, Power User | Leave a Comment »

.RESX translation and tools examples based on Paint.NET Forum -> Translation and Localization

Posted by jpluimers on 2011/10/20

The process of translating RESX files is time consuming, so it is wise to study a good example before starting such a journey.

Paint.NET (driven by Rick Brewster) happens to have great (and complete!) translations serving as great )ample materia.

So below are steps that you can use to get started.

The process

Create good Base RESX files

The first step is to create good .RESX files for your base language. This alone is a tedious process in itself, as for all the strings (and potentially other resources) used in your application, you need to determine if they should be translated. If so, you should make a key for each one, put them in the appropriate .resx file, and access it. The MSDN documentation explains how.

Use version control and differencing/merging/syncing tools

When translating software, you not only have the history axis, but also a language axis. That combination makes it much harder to keep everything, so a good version control together with good differencing tools is very handy.

I’ve had good experience with Team Foundation Server, Subversion (SVN), Git, and Mercurial (Hg), but less good experience with StarTeam, Visual SourceSafe and Serena Dimensions.

Beyond Compare is my favourite tool of choice for comparing files and managing with differences, merges and syncs.

Translate the RESX files

This is the really hard part; many translation agencies are specialized in this, companies have complete teams working on it (for instance, the Microsoft Developer Devision did the Paint.NET translation for 4 years in their free time).

Often, it helps to generate Excel or Word documents from the RESX files, but often translation deportments or agencies can handle RESX files fine.

Usually, there is much more to do than just translating, you should look at the whole internationalization picture, for instance by reading Guy Smith Ferriers book on .NET internationalization.

Verify the RESX files are complete and valid using ResxCheck

A important requirement of translation is to make sure the translated resources are at least technically valid and complete.

Doing that by hand is a very tedious job. Luckiliy, Rick Brewster (yes the Paint.NET one) wrote a great Resx tool to do just that.

An example is below.

Compile the RESX files into .resource and assembly files

When your RESX files are ready to be tested, you need to generate .resource files from that and sometimes resource assemblies.

You can use ResGen to generate resource files, and the Assembly Linker to link the resource files into assemblies, or generate sattelite assemblies.

Using the resources

I won’t go into much detail here, as there are many ways to use the translated resources.

The tooling

There are many tools you can use, and the actual use highly depends on the size of your project, the number of translations, and how your process is organized.

I’ll point to a few tools that are interesting or that I have used.

The Bing Translation API

Now that the Google Translate API has been deprecated, the only online translation API is the Bing Translate API provided by the Bing Translator team. There are plenty of examples on how to do that from various environments.  You need a Bing AppID in order to use this. And you can do “only” 50 translations per minute (each at a maximum of slightly less than 64 kilobyte).

Examples

I downloaded the Dutch 3.10 translations of Paint.NET because it includes an Excel document that is a good example of how to track progress or compare multiple translations.

Then I downloaded the Paint.NET 3.5.x original strings, and the Dutch 3.5.x translations and unpacked them in the C:\TEMP directory.

Finally, I ran the ResxCheck on them:

C:\temp\PaintDotNet.Strings.3.NL>ResxCheck.exe ..\Strings\Strings.resx PaintDotNet.Strings.3.NL.resx
ResxCheck v3.30.3033.25892
Copyright (C) 2008 dotPDN LLC, http://www.dotpdn.com/

--- Start @ 13:46:01
Analyzing base Strings.resx ...
Analyzing mui PaintDotNet.Strings.3.NL.resx ...
--- End @ 13:46:02 (156.25 ms), processed 2 resx files
There were no errors

Hopefully this will save you some time, and me too when I’m working on another translation project.

–jeroen

via: Paint.NET Forum -> Translation and Localization.

PS: If you want the Paint.NET installer to be multi-lingual, follow these steps on the Paint.NET forum.

PS2: For the people wondering why the Dutch language is not called Nederlandisch or something similar, please read the Wikipedia articles on  Names for the Dutch language and Netherlands (terminology).

Posted in .NET, Development, RESX, Software Development | 2 Comments »