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,862 other subscribers

Archive for August, 2011

Nice deal: ANWB – Ledenvoordeel – Yellowbrick – gratis registratie

Posted by jpluimers on 2011/08/15

Handig als je lid bent: ANWB – Ledenvoordeel – Yellowbrick gratis registratie.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Tomazy’s Software Development Blog: Testing modal windows in Delphi

Posted by jpluimers on 2011/08/14

Tomazy’s Software Development Blog: Testing modal windows in Delphi.

Recommended reading!

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Nice gadget: 5Port USB Power Metal Ethernet Network Hub Switch BL-S805-U – DinoDirect.com

Posted by jpluimers on 2011/08/12

Sometimes you are in situations where the number of power outlets and the number of LAN connections is limited.

That’s where the 5 Port USB Powered Ethernet Network Switch BL-S805-U from DinoDirect comes in handy.

It was the only reasonably priced USB powered ethernet switch I could find, and it works like a charm.

Highly recommended :)

Thanks to the BrightHub article that pointed me to it!

–jeroen

via: 5Port USB Power Metal Ethernet Network Hub Switch BL-S805-U – DinoDirect.com

Posted in Gadget, Power User | Leave a Comment »

#fail #rookzone #astmapatient #schiphol personeel weigert in te grijpen

Posted by jpluimers on 2011/08/11

Ik sprak enkele Schiphol medewerkers aan, nadat ik een longpatient hoestend en proestend zich een baan door de massa rokers had zien bewegen, of ze de rokers uit de rookvrije zone naar de (overdekte!) rokerszone wilden sturen.

Wat ik letterlijk te horen kreeg: “We laten die mensen lekker staan, want als we ze wegsturen, staan ze er over 3 minuten weer”.

Ofwel: Schiphol voldoet niet aan haar verplichtingen en laat longpatienten in de kou staan.

Ook na aandringen dat ik het erg op prijs zou stellen, bleven ze bij hun standpunt.

Toen ik aangaf dat ik dan foto’s zou publiceren, gaven ze aan dat dat mocht.

Dus bij deze:

Foto van de rokers om het bord “rookvrije zone” (rechts onder de rest van de overkapping stonden er zeker nog 20):

Foto van de (ook overdekte!) lege rookzone:

Posted in About, Opinions, Personal | Leave a Comment »

Excel XML Spreadsheet: watch your Worksheet.Table.ExpandedColumnCount (or just leave it out)

Posted by jpluimers on 2011/08/11

Recently, I blogged about the Excel XML Spreadsheet: Date.Type is mandatory.

Here is another error you can get:

XML ERROR in Worksheet Setting
REASON:	Bad Value
FILE:	V:\CAS400\docs\statistics.cascall-logs\cascall.JU03HV.Bobbe, P.J.L. (Paul).20110620.xml
GROUP:	Worksheet
TAG:	Table
ATTRIB:	ExpandedColumnCount
VALUE:	9

This basically means your Worksheet.Table.ExpandedColumnCount is too small to hold your spreadsheet.

In other words: you either have more Worksheet.Table.Column definitions than ExpandedColumnCount, or you have a WorkSheet.Table.Row that has more WorkSheet.Table.Row.Cell entries than the ExpandedColumnCount.

In my case, I made an error generating too many Column definitions (by accidentaly duplicating some of them), and invalidated the ExpandedColumnCount.

Lesson learned: Since Excel will automatically calculate an absent ExpandedColumnCount, you can safely leave it out.

–jeroen

Posted in Development, Software Development, XML, XML/XSD, XSD | Leave a Comment »

Windows authorization: Adding/Removing users from local groups

Posted by jpluimers on 2011/08/10

Though there are API ways to add users to local groups in Delphi, you need the JwaLmAccess unit from the JEDI API library project to import those.

Sometimes that is not feasible, and sometimes you want to just script things.

For those, you can use the Windows net localgroup command (if you have sufficient privileges, you can even apply it to the local groups on your domain controller by appending it with the /domain parameter, or use the net group /domain command to execute on global domain groups instead of local groups).

Sample of using this in a cmd script:

net localgroup Guests Me Myself I ACME\BugsBunny /delete

It will remove the local users Me, MySelf and I, and remove the domain user ACME\BugsBunny from the local group Guests.

Sample source of using this in Delphi: Read the rest of this entry »

Posted in CommandLine, Delphi, Development, Software Development | 1 Comment »

batch files: getting directory and parent directory

Posted by jpluimers on 2011/08/09

In some situations, batch files are the only thing you have.

In this case, I needed the parent directory of a batchfile.

i.e. not the directory of the batch file itself, but the

  echo batchfile=%0
  echo full=%~f0
setlocal
::http://stackoverflow.com/questions/636381/what-is-the-best-way-to-do-a-substring-in-a-batch-file
  set Directory=%~dp0
echo Directory=%Directory%
:: strip trailing backslash
  set Directory=%Directory:~0,-1%
echo %Directory%
::  ~dp does not work for regular environment variables:
::  set ParentDirectory=%Directory:~dp%  set ParentDirectory=%Directory:~dp%
::  ~dp only works for batch file parameters and loop indexes
  for %%d in (%Directory%) do set ParentDirectory=%%~dpd
  echo ParentDirectory=%ParentDirectory%
endlocal

The point is that the %~dp0 trick as explained in this StackOverflow answer on substrincgs in batch files only works for batch file parameters (starting with a single percentage sign: %0, %1, %4, etc) or for-loop indexes (starting with double percentage signs: %%1, %%d, etc). They don’t work for getting path portions of  regular environment variables.

So I used the substring trick (as explained in the same answer), and then used a for loop (which will have one iteration) to get the path portion.

Note: The substrings trick only works on regular environment variables, not on parameters and loop indexes.

Note 2: I used setlocal/endlocal so the changed environment variables stay local to the batch file and won’t leak out to your command-prompt. If you need the value there, then remove the setlocal/endlocal, or use an “endlocal & set” command on a single line. Read the rest of this entry »

Posted in Batch-Files, Development, Scripting, Software Development | 2 Comments »

Mac OS X Lion reveals passwords in sleep mode? | The Digital Home – CNET News

Posted by jpluimers on 2011/08/08

If you have a Mac, and enabled automatic login, then it is vulnerable to a FireWire password snooping bug.

Looking at that article, you should either:

  • turn it off
  • disable FireWire
  • disable automatic login and reboot

–jeroen

via: Mac OS X Lion reveals passwords in sleep mode? | The Digital Home – CNET News.

Posted in Apple, Power User | Leave a Comment »

Javascript PC Emulator – Technical Notes

Posted by jpluimers on 2011/08/08

Fabrice Bellard wrote a brilliant piece of code: a PC x86 Emulator running in JavaScript.

It can run JSLinux inside your (FireFox 4.x, Chrome 11+, Opera 11.11 and Internet Explorer 9) browser :)

Some links: News, FAQ, Notes and JSLinux.

–jeroen

via: Javascript PC Emulator – Technical Notes.

Posted in *nix, Power User | Leave a Comment »

@NShispeed: OV Chipkaart en #NS-Businesscard perikelen

Posted by jpluimers on 2011/08/05

Zo maar een greep van de afgelopen weken waarin ik met een NS-Businesscard (een soort OV-Chipkaart voor zakelijke reizigers) die wordt geadverteerd als “Met één kaart voordelig reizen van deur-tot-deur”.

NS-Businesscard als OV Chipkaart

De eerste ervaring was goed: door de zomer dienstregeling, reden er minder treinen van Den Haag Laan van NOI naar Rotterdam Centraal. Dus heb ik de Randstadrail lijn E gepakt: die doet er normaal 5 minuten langer over dan de trein, maar met minder treinen per uur tijdens de NS zomerdienstregeling ben je toch eerder op Rotterdam Centraal daan wachten op de volgende NS trein.

Dit werkte in 1 keer: ik kon de NS-Businesscard moeiteloos gebruiken als OV Chipkaart. Handig!

Onhandig: Activeren van NS-Businesskaart voor in-/uitchecken op NS stations

Je zou denken dat je met een NS-Businesscard meteen vanaf de NS Station kunt in-/uitchecken, maar dat is niet zo. Je moet dit op http://ns.nl/bc activeren.

Daarmee dacht ik dat het meteen werkt: de OV-chipkaart palen van de NS staan on-line in verbinding met de NS, en kunnen zowel lezen als schrijven op de kaart, maar zo simpel is het niet. Je moet eerst op een NS kaartjesautomaat de producten op je NS-Businesscard activeren. Daarna werken de OV-chipkaart palen van de NS.

Onhandige plaatsing van de OV-chipkaart palen op station Schiphol

Op Schiphol staan in tegenstelling tot de stemelautomaten (die staan boven) de de OV-chipkaart palen alleen beneden, vaak verborgen achter wachtende reiziers.

Erg onhandig als je haast hebt en niet precies weet waar ze staan.

Daarom dit eens nagevraagd bij de servicebalie op Schiphol: Schiphol verbiedt de NS om de OV-chipkaart palen op een meer logische plek te zetten. De stempelautomaten mogen wel blijven staan omdat ze daar al sinds het begin staan, maar nieuwe zaken mogen niet.

Handig voor een luchthaven die de efficientie voor reizigers hoog in het vaandel heeft staan!

Standaard NS-reizen met in-/uitchecken op NS stations werkt

Daarna een paar dagen heel makkelijk tussen Rotterdam Centraal en Schiphol: wegens werkzaamheden hoefde je geen Fyra toeslag te betalen, dus maakte het niet uit met welke trein ik ging.

Fyra toeslag op NS-Businesscard kan niet

Een conducteur gaf tijdens een van de reizen aan dat je de Fyra toeslag op een OV-chipkaart kunt laden. Dus dat probeerde ik op Schiphol. Ik had er een minuut of 10 voor uitgetrokken, maar het lukte niet, dus de Fyra gemist en een normale Intercity genomen.

In het weekeinde las ik op de site van de Fyra, dat je de Fyra toeslag wel op een normale OV-chipkaart kunt laden, maar niet op een NS-businesscard (die wel gewoon op de metro werkt). Om met George Orwell te spreken: sommige OV-chipkaarten zijn dus meer gelijk als andere.

Links op de NS-site doen niet wat je denkt dat ze doen

In de loop van de middag gecontroleerd weke trein ik we/niet ging halen. Er is zomerdienstregeling, dus niet alle treinen rijden, en het wil met aankomst/vertrektijden nog wel eens hommeles zijn, dus de vertrektijden van Rotterdam Centraal gecontroleerd. Je denkt dat de link die je op de NS-site kopieert ook echt werkt: http://ns.nl/actuele-vertrektijden/main.action?vertrekstationdetails=rtd

Helaas, je moet hier dus alsnog “rtd” of  “Rotterdam Centraal” intikken om de juiste vertrektijden te zien.

Er zijn verder zat andere links die het op de NS-site niet doen, en die ze nooit gaan terugvinden zoals bijvoorbeeld de eerste link op http://www.ns.nl/zakelijk/producten/voor-reizigers/diensten-met-ns-business-card/de-trein-en-fyra.html die wijst naar een niet bestaande pagina http://www.ns.nl/cms/aanvragen-reizen-op-rekening_1.

Niemand bij de NS gaat die links terugvinden omdat in plaats van HTTP foutcode 404 (not found), er een HTTP successcode 200 (OK) wordt teruggeven.

Product op dezelfde dag bestellen en opladen op de NS-businesscard werkt niet

Toen ik zeker wist welke trein ik ging halen heb ik op de http://www.ns.nl/businesscard site een reis geboekt: 20% korting (want na 09:00), met Fyra toeslag.

Bij station Rotterdam Centraal aangekomen geprobeerd (op 3 verschillende automaten!) om dat product op de NS-Businesscard te laden. Dat werkt dus niet! Alle automaten gaven aan dat er geen producten voor deze NS-Businesscard klaar stonden.

Daarom maar een papieren Fyra-toeslagkaartje gekocht, en met de NS-Businesscard ingechecked op Rotterdam Centraal en later uitgechecked op Schiphol.

Een bestelling waar je niets meer aan hebt verwijderen kan niet

In de trein heb ik daarna gebeld met het 0900-betaalnummer achter op de NS-Business card. Daar in eerste instantie geprobeerd om het product dat ik besteld had te annuleren. Dat was nog lastig, want dit nummer heeft aan de ene kant keuzemenus waar je een nummertje moet intikken, maar op andere plekken moet je met natuurlijke taal inspreken wat je wilt. Daar kom je natuurlijk pas sachter als je een paar minuten en een paar keer de melding dat de computer niet begrepen heeft wat je bedoelt.

Een bestelling verwijderen mag niet als je die op dezelfde dag besteld hebt.

Daarom het nummer nog eens geprobeerd te bellen en een minuut of wat de menus doorgegaan om te kijken of ik een mens aan de lijn kon krijgen, maar dat werkt niet: dit nummer is alleen maar computer-operated.

Service loket op Schiphol weet ook niet precies

Het NS Service loket op Schiphol was heel vriendelijk; ik mocht zelfs op hun kosten de 0900 nummers bellen. Hun eerste reactie was “dat moet u via uw werkgever regelen”, handig: als ZZP-er ben ik dat zelf :)

Ze waren heel verbaasd wat er niet mogelijk was (ook de mensen die per portofoon werden geconsulteerd), en na wat heen en weer gebel bleven de opties “internet” en NS Servicedesk over.

Omdat er inmiddels een redelijke rij achter me stond, heb ik het bel-aanbod vriendelijk afgewezen en dat later zelf gedaan.

De NS servicedesk weet nauwelijks iets van de NS-Businesscard

Om te kijken of ik via een mens verder kon komen daarna via via het 0900-betaalnummer van de NS servicedesk opgezocht.

Dat is ook een computer-operated menu, maar onder sommige entries (niet alle entries die beginnen met “een mens spreken” geven ook een mens aan de lijn) krijg je dus een mens aan de lijn.

Het viel me al op dat in de menu’s nergens “NS-Businesscard” voorkomt, maar omdat dit een OV-Chipkaart is dit en één van de “mens spreken” opties onder “OV-chipkaart” inderdaad een mens aan de lijn gaf, daar gevraagd hoe het zat. En inderdaad: ik kreeg iemand aan de lijn die aangaf  – na de opties “internet en 0900-nummer op de NS-Businesscard” aan te bieden – dat NS-Businesscard iets “aparts” is en dat die een eigen (030!) nummer hebben.

Dat 030 nummer is (handig voor B2B) alleen tijdens kantooruren (08:30 tot 17:00) geopend.

Wordt vervolgd…

–jeroen

Posted in LifeHacker, Power User | 3 Comments »