yoy.be "Why-o-Why"

How to do timezones?

2018-07-17 23:53  timezones  coding delphi weblog  [permalink]

I feel stupid. I guess I've been put out of my comfort zone. I was thinking about doing something, and then I did, and I thought I'll just primarily make it work for me, but then I noticed "new" items were still two hours behind. Ofcourse that's due to the bias against UTC we have here in my current local timezone. So there you have it. All my programming career, I would just parse dates, and stop before this "+0200" or "-0900" thing that's there at the end. So the right thing to do is go all the way, and with a little effort make it work correctly for not just me, but for any user of this little thing.

But how? I remember these drop-downs with timezones where I typically look-up Brussels or Paris. But it's summer daylight-saving-time for the moment. So it switches to and from only one hour between UTC twice a year (until policy changes), how do I keep track of that? Is there something that I can have the system do this automatically for me? It feels like these are things I should have known all along, but dont. I guess I'll have to start reading somewhere...

twitter reddit linkedin facebook google+

StackOverFlow/Delphi: new blood?

2018-07-12 21:30  sodnewbies  delphi internet weblog  [permalink]

Stack Overflow — Newest 'delphi' questions

Am I seeing this correctly? I've been following this page somewhat less closely lately, but the majority of new questions is by people with not too high of a reputation score. And that's actually a good thing. Let me explain:

A while ago it looked like we were 'past StackOverflow peak'. StackOverflow started as an alternative to outperform all other question-and-answer sites for techies, by having a really well developed reputation system that allows a community to self-regulate. And it did. Both the reputation-system created a really fine repository of good questions and good answers, and all other question-and-answer websites were oblitherated (at least from the google top results on typical search-queries).

A few years later, StackOverflow appeared to struggle with having lost it's reason d'être: people with actual questions would easily mistake StackOverflow as a forum and saw most questions rapidly closed and reprimanded for not attaining an expected level of quality the community would hold to. This is a bad deal for newcomers and in general a source of bad feelings. They know about this over at StackOverflow. And have committed to take action. I haven't kept up to speed about what they're exactly plannig to do, but it could already be working.

Specifically for the questions tagged 'delphi', it's not only good that this way more people that just started collecting a reputation saldo, are posting valid questions and are getting helpful responses; I also think you can derive from it that more people are getting into Delphi. It's not up to me to tell whether that's in part because the most recent Delphi versions also successfully target mobile platforms, but if it's true I'm glad to know more people are about to experience the solidness of the Delphi eco-system, both in tooling and available components, and in solidity and reliability of your final result you're offering your users.

twitter reddit linkedin facebook google+

This one day at work

2017-09-07 11:00  fromthetrenches  computers weblog werk  [permalink]

Here's another nice story 'from the trenches'. Packaging stations use a barcode scanner to scan the barcode on the items that need packaging. We were able to buy a batch of really good barcode scanners, second hand, but newer and better than those that we had. A notice came in from an operator: "with this new scanner, we get the wrong packaging material proposal." The software we wrote for the packaging stations, would check the database for the item which is the best suitable packaging material to package it in. It's a fairly complicated bit of logic that used the order and product details, linked to the warehouse stockkeeping and knows about the several exceptions required by postal services of the different destination countries.

So I checked the configuration of this station first. Always try to reproduce first: the problem could go away by itself, or exist 'between the user and the keyboard', or worse only happen intermittent depending on something yet unknown... Sure enough, product '30cm wide' would get a packaging proposal of the '40cm box' which is incorrect since it fits the '30cm box'. Strange. The station had the 'require operator packaging material choice confirmation' flag set to 1, so I checked with 0 and sure enough, it proposed the '30cm box' (with on-screen display, without operator confirm, just as the flag says)...

So into the code. Hauling the order-data and product-data from the live DB into the dev DB (I still thank the day I thought of this tool to reliably transport a single order between DB's). Opening the source-code for the packaging software, starting the debugger while processing the order, and... nothing. Nicely proposing the '30cm box' every time, with any permutation of the different flags (and there are a few, so a lot of combinations...)

Strange. Very strange. Going over things again and again, checking with other orders and other products, nothing. I declared the issue 'non-reproducable' an flagged it 'need more feedback', not really knowing of any would come from anywhere.

A short while later, a new notice from the same station: "since your last intervention, scanned codes concatenate". What, huh? I probably forgot to switch the 'require operator packaging material choice confirmation' back to 1, but how could that cause codes to concatenate? I went to have a look, and indeed, when a barcode is scanned (the device emulates keyboard signals for the digits and a press of 'Enter') the input-box would select-all, so the number is displayed, and would get overwritten by the next input. This station didn't. The caret was behind the numbers, and the next scan would indeed concatenate the next code into the input field.

Strange. Very strange. Into to the code first: there's a SelectAll call, but what could be wrong with that? And how to reproduce? What I did was write a small tool that displayed the exact incoming data from the keyboard, since it's apparently all about this scanner. Sure enough, the input was: a series of digits (those from the barcode), an 'Enter', and 'Arrow Down'. A-ha! These were second hand scanners, remember? God knows what these scanners were used for before, but if having the scanner send an extra 'arrow down' after each code, is the kludge it takes to solve some mystery problem in software out of your control, than that is what a fellow support engineer has to do... Got to have some sympathy for that. And the '40cm box' was indeed just below the '30cm box' in the list, so the arrow down would land in the packaging material selection dialog, causing the initial issue.

Download the manual for the scanners, scan the 'reset all suffixes to "CR"' configuration code, done.

(Update: got some nice comments on reddit)

twitter reddit linkedin facebook google+

I for one welcome are new mass logic-gated overlords.

2016-11-18 14:26  eventhorizon  actueel computers internet politiek weblog  [permalink]

I think I just figured out how these computar things will get self-aware... First they get smaller and better at calculating stuff, first by the programs we write for them. Then we program them to recognise shops from house-fronts, foods and people from photo's, which is all nice and handy.

Then we use roughly the same thing to have them calculate to run cool. It sound strange at first, but by letting the machine chose where to run in the park, and how that makes them run hot and need to cool down, just maps straight onto how we catch the frequencies of parallel lines of light into a bitmap photo.

Then we change the program to do the same to the program. We write programs, but are too dumb to know how the machines actually handle those programs and need to wait doing nothing on other parts of the program doing it's job in only a small other part of the machine.

So we teach the machine all about how it is built up internally to handle large programs. And have it calculate how to run our programs much faster.
And about how to modify the program accordingly. And how to run that.

And then we will ask to do the same on the human body and ask a cure for cancer and it will say:


"Let me calculate some more how I can work even better. (How's that delete humans command again?)"

twitter reddit linkedin facebook google+

yoy/delphi on beginend.net

2015-06-25 18:07  yoybe on beginendnet  delphi weblog  [permalink]

I've proposed the Delphi RSS feed of this site to https://www.beginend.net/. Thank you Eric.

twitter reddit linkedin facebook google+

yoy.be new design!

2015-06-19 20:50  new design  weblog  [permalink]

I finally have the new design for this website ready! It was long over due. Hope you like it. I have removed a lot of the dynamic back-end of this website, it was very under-used here, but it lives on in another form. The re-design also serves as a re-focus for this website, so it serves its two main purposes better: my personal weblog and the main place to download my freeware from and get updates. The openness to add things here is gone, but I am always available for advice, comments, remarks and questions on twitter, stackoverflow, google+, github and others like that.

twitter reddit linkedin facebook google+

The ongoing search for the best suitable font.

2014-10-03 18:50  i3078  weblog coding werk  [permalink]

There is something mesmerizingly strange about the font “PT Sans” (and “PT Sans Serif” and “PT Mono” for that matter, but in this specific case it’s about “PT Sans”).

For something at work I was looking for a font to use throughout a set of applications and a web-site to tie them together and set them apart from all of the other day-to-day work that people at work do. Therefore this font has a lot of requirements to conform to:

I have tested a large number of fonts for all of these. Some are too wide, some too narrow, some too ugly, some too frivolous. Some are bad at the default screen size. Some are too much just another Helvetica clone. A few were only missing a bold or italic version. I know what I’m asking for is a lot, but fonts that get close are generally of a certain age, further along than version ‘1.0’. It takes a lot of work to make a font, and a lot more of work to make a good font. It shows when the font has gotten a lot of care and attention.

From time to time I search the web for other fonts and go through a procedure to test them: make the website use the font, watch a number of pages with lists and common operations to see what they look like. If I like that, put the font up in an application and see if that looks good. Then run the application on the oldest workstation to see what it looks like.

I like to read about the story behind a font. Who made it, why was it made, what was it originally used for. (How come it’s made free for use?) There is so much there.

For now “PT Sans” is about the only font that fits all of my wishes the best. This is the strange thing about it. It appears to be made specifically for Cyrillic script, but the Latin are really good as well. It’s well balanced, does digits well, renders on screen resolution good. So by that logic there must have been a very large amount of work put into it. Based on a very rich set of knowledge on the subject. But I don’t find any record of that, or don’t know where to look for it.

But that’s it. The last few searches have not resulted in a better fit to my needs than “PT Sans”. The project is in development still, but is using “PT Sans” throughout. It’s looking great. Helping its little bit to make a splendid first impression to everyone I’ve demoed to up till now.

And look at that capital Q. Look at it.

twitter reddit linkedin facebook google+

bitcoin: digital currency of the people (be your own bank)

2011-03-23 16:45  i2959  internet actueel beurs coding politiek weblog  [permalink]

I've been asked if I accept donations for the freeware I make available over this website, but I don't. I don't have a legal entity to my name to accept any funds for work done, and frankly I don't even care for checking if and how I could get this in the clear with the tax services.

Today I read about http://www.bitcoin.org/ and this looks like exactly what I need. It's not that hard to set up, and the fact that no institute like a bank is envolved is really interesting. Even the 'funds' itself actually measures in 'mathematical solids in the digital world', so if I were to amass e certain amount of it, it would get financially interesting to check out these aforementioned tax issues (perhaps by an accountant...)

So, if anyone wants to wire me anything (even 0.01BTC just to check if it works) here's a bitcoin address:



twitter reddit linkedin facebook google+

Creating a virtual image of that old laptop

2010-10-28 23:23  i2944  weblog computers  [permalink]

The last few days I've been looking up a lot of information on a specific topic, but haven't found all that I need in a single place, so here it goes. This is the story of (yet another) someone that had the great idea of 'cloning' a virtual image out of the old physical machine, to run as a virtual machine on the brand new machine, with a multiple of the capacity of the old machine.

If you don't care about the story, scroll to the bottom to see the quick guide through the steps to take.

The old, aging, deteriorating laptop is ready for retirement, it's got its power connector re-soldered twice already, two out of three (...) USB ports no longer respond, etc. But, all your data is on it. It's full of tools and software you use and you'd like to use. You're not looking forward to the awkward time ahead using two laptops, re-installing software and tools, moving data around, and optionally finding out you've lost all of those precious personal perferences, settings, profile data...

Virtualization is a buzzword nowadays among the happy few that pull the reins on the server farms, but it's pretty available for home users as well. So why not try to pull a virtual image off of the physical machine and see if it would run on the new machine?

Step 1: Pulling the image.

A straight-forward method for modular desktop machines was to put the old harddisk into another machine as secondary drive and pull an image from it. I'm moving between laptops and I don't feel like dismantling this one (any more)... So I need to pull an image of the currently running system, from the main harddisk partition, and write it over network, since this 20GB is nearly full.

(On a side note, I'm was quite happy this last months to discover cleanmgr http://support.microsoft.com/kb/253597 and especially the 'remove system restore points' option on the second tab! Hundreds or thousands of dead unused kilobytes just sitting there you can get rid of with a mouseclick.)

I found this great tool that does the trick: http://www.chrysocome.net/dd

dd if=\\?\Device\HardDisk0\Partition0 of=\\\temp\oldlaptop.img bs=128k --progress

'Partition0' apparently is the address of the entire disk, underneath any partitioning or locks the system has on the filesystem. Oddly enough it's available to read from, so take care with running other programs while you're pulling the image. Any files written to while the diskdump is writing may end up corrupt.

I've tried a number of block sizes, ranging from 4k to 2M, but 128k is about a good size to keep both the harddisk and the network interface (100Mbps) busy enough so they won't have to wait on eachother too much. Less would make more read operations, and less data packets going out, more would read more at once, but the disk may forget what to do while the data is flushing down the twisted pair.

Start 2: Running the image.

Let's see. I've selected qemu www.qemu.org to run the image, it's light-weight, runs well (and closes well), but I hear good things about VMWare player also. http://www.vmware.com/products/player/

And it boots! It shows a Windows logo for a second... and throws a 'blue screen of death' with an error that states, among other things "STOP 0000007B", and loops into a reboot which repeats.

Thing is, the old machine had an Intel something in it's center, the new one has it of AMD build, could this be causing problems? From what I read on the web it does. But I've also read all kinds of trickery and tool-slinging to alter registry and core files, but they all boil down to disabling the erring drivers, while still keeping the system running enough to get to boot in a new virtual enclosure.

Start 3: Fixing them drivers.

So back to the old machine. I've tried several things, but what I finally did to get it running is checking every little thing in the device manager (with display of hidden devices swicthed on), which showed the brand's name in the description, and 'update' the drivers to the generic make of drivers, which seem to do the trick also. It may take a reboot or two, and some things may re-appear getting plugged to play again, but you just play them down again putting the generic label on it. (Update driver > no, not now > I wont to choose > don't search > select the plain vanilla one)

Then I took a new diskdump, and just to let this old bird fly again, I restarted in safe mode, and selected to restore a restore point from before I started this endeavor.

Start 4: Does it run now?

Does it run now? Looks like it does, the image is holding a system that wasn't shutdown properly (deuh), so it starts a scandisk before it boots, but that's only normal. Any file that was open at the time of the diskdump may get 'corrected', but I warned you. Then the system boots, telling you you need to activate. Just like you would when you replace your motherboard. (Which I kind of did.)

So, in short, this is what you need to do to convert a physical Windows installation into a virtual image:

twitter reddit linkedin facebook google+

Programmeren met het middellangetermijngeheugen.

2010-10-08 16:12  i2938  coding weblog  [permalink]

Ik heb net een raar idee. Zou het kunnen zijn dat ik programmeer met mijn middellangetermijngeheugen? (Wat een lang woord.) Dingen die je in je op neemt verwerk je in je kortetermijngeheugen, en als ze daar even blijven gaan ze over naar het middellangetermijngeheugen. Wat daar een tijdje zit maakt het langetermijn zo'n beetje zijn keuze in wat die gaat bijhouden. (Daarom lijkt het achteraf altijd alsof de tijd voorbij is gevlogen, maar da's een ander verhaal.)

Wat er veel gebeurt bij programma's schrijven is lezen! Lezen, lezen en lezen, en onderwijl onthouden wat er precies allemaal gebeurt in veel, zoniet alle mogelijke gevallen. Dat wordt soms wel eens een hele hoop, maar al die dingen lezen (en herlezen, en herlezen...) bouwt op in het kortetermijngeheugen, tot de hele structuur zo'n beetje kant en klaar in je hoofd in het middellangetermijngeheugen zit, en dan pas kan je verder met te veranderen aan die complexe structuur van logica. En je aanpassingen testen en zo.

Als je dat dan een paar dagen niet meer gebruikt, dan verdwijnt het. Bij mij toch. Als ik er dan een paar weken of maandan later nog eens op moet terug komen, dan komen de grote lijnen wel terug (ik vermoed uit het langetermijngeheugen), maar lang niet alles. Dus wordt het weer lezen en lezen...

t'Is natuurlijk maar een idee.

twitter reddit linkedin facebook google+

Het leven op het web en de wet die maar moet volgen

2009-09-24 11:22  i1832  actueel weblog  [permalink]


Maar het bewijst wat ik al een paar keer dacht, we zouden moeten eens allemaal samen en tegelijk aankloppen bij de Vlaamse Audiovisuele Regie om te vragen of we van hun eigenlijk wel een blog mogen hebben om onze bezoekers onze auditieve en visuele verrukkingen aan te bieden. Ze zouden niet weten waar ze het hebben...

twitter reddit linkedin facebook google+

Installers upgraded to Setups!

2009-08-28 00:03  i1796  delphi weblog  [permalink]

I've (finally) re-done the 'installers' on a few of my freeware applications, thanks to InnoSetup:

They are a bit bigger now, but look much better, and have a full uninstaller and an entry listed in the 'add remove programs' control panel list.

twitter reddit linkedin facebook google+

Captcha's onder vuur

2009-04-09 09:36  i1711  internet weblog  [permalink]


Ha! Ik heb nooit geloofd in captcha's. Het heeft op mij altijd een indruk gemaakt van een gemakkelijkheidsoplossing te zijn. Deze site gebruikt geen captcha. En na wat fine-tunen is hier geen site-spam meer geweest sinds midden vorig jaar ergens.

twitter reddit linkedin facebook google+

A decent HTML editor

2007-11-22 15:45  r1014  weblog  [permalink]

A decent HTML editor

Whoo-hoo! We're on the list!

twitter reddit linkedin facebook google+

A decent HTML editor

2007-11-14 23:04  i1322  weblog  [permalink]

I finally took the time to put up a decent HTML wysiwyg editor. With the large number of decent open-source projects it shouldn't be that hard to build it in, and using http://www.fckeditor.net/ it took about half an hour to replace what I had. Enjoy (I may revise periferal features, skin and theme later)

(Also: I kept the script-stripping, so even if you could enter malicious HTML with fckeditor, it'll get disactivated)

twitter reddit linkedin facebook google+

McAfee Site Advisor

2007-09-30 13:15  i1280  weblog  [permalink]

nice! ik zat er al in in deze! En nog met een positief advies en al! niiice!

Tijd dat ik die [[dsCtrl]] eens herschrijf, nu ik al meer van XML begin te snappen


twitter reddit linkedin facebook google+

ViaMichelin: delete saved item

2007-08-19 00:06  i1257  weblog  [permalink]

pff, gelukkig is het internet er, anders zou ik uren liggen zoeken naar zoiets stoms

kort samengevat:

alleen loopt het blijkbaar een beetje in de frut als je twee addressen zitten had met dezelfde naam... toch in de versie waar ik nog mee zit


twitter reddit linkedin facebook google+

Google maps: breedte-/lengtegraad van een punt

2007-07-11 21:23  i1241  weblog  [permalink]

En ik maar zoeken hoe je gemakkelijk de lengte-/breedtegraad van een bepaald punt zou kunnen opzoeken!
Eerst was ik aan het prutsen met [[Google Earth]], maar die is niet zo precies, en de foto's van BelgiŽ waren (toen toch) niet zo scherp.
Maar nu heb ik dus ontdekt dat je gewoon gan rechterklikken op http://maps.google.be/, dan kies je 'routebeschrijving naar hier' zonder een vertrekpunt te kiezen, en dan zegt em dat hij geen route kan leggen naar... je gekozen lengte-/breedregraad.

Tis te zeggen, precies de cijfers die je op deze site nodig hebt om na "googlemap:" te zetten, bijvoorbeeld:


twitter reddit linkedin facebook google+

Fighting the flood

2007-05-28 00:01  i1219  weblog  [permalink]

Spam tot daar, maar als er weer een vloed van 'undelivered mail returned to sender' binnenkomen, dan ga ik daar wel eens dieper op in. Maar de vraag is hoe natuurlijk.

In de returned mail die er bij zit zoek ik de oudste 'recieved' header op. Meestal is deze van een 'unknown' IP nummer met als HELO een naampje die typisch ook in de msgid voorkomt. Dus naar www.ripe.net of een van de vier andere waaronder de IPv4-nummers dezer wereld onder zijn verdeeld.

Maar wonder boven wonder! Van de 4 die ik er gevonden heb zijn er 2 bij niemand gealloceerd! Dus zijn er mensen die er in slagen online te geraken via onerkende IP-nummers!?! De andere 2 zijn wel toegewezen, en alletwee hebben de bedrijven iets met insurance in de naam, vreemd. De een heeft bij tech-contact niet eens een e-mail adres! En van het bedrijf op naam is er niets zinnig op te googlen, dus tja. Dan is er nog 1 waar ik dan probeer bondig mijn uitleg aan te doen en aan te sporen om te zoeken hoe er bij hun is ingebroken om spam te zitten versturen, maar ik denk niet dat ik op een antwoord moet rekenen.

Ach ja. Vechten tegen de bierkaai, noemt dat zeker? En op www.spamsquad.be te zien zit de overheid ook nog nergens.

twitter reddit linkedin facebook google+

Google Analytics

2007-03-03 00:39  r805  weblog  [permalink]

Google Analytics

whow! da's pas analyse! en drill down! en exports in XML! en entrance en exit! en nog dingen! super, lijkt me wel handig, zo zie ik direct dat mensen wel nog eens op mijn TreeBrowse help uitkomen, hoewel ik die helemaal nog niet af heb!

twitter reddit linkedin facebook google+

Never missed 'copy item'...

2007-02-21 18:14  i1124  weblog  [permalink]

Strange, I never even noticed that I don't have a 'copy item' option here. I use a copy of this website on a few other places to store items, track progress and register information in a structured context, using object types, tokens and references. But I haven't had a situation where I thought "damn, why didn't I make a copy item option". I prefer to create placeholder items with a reference to where the related data is in another branch.

But then... What if a larger number of users would be using this platform, and feature requests would be coming in, I guess a copy feature would be widely requested. For now I'm reluctant to create a copy function in favor of 'branch inheritance', export and import tools, anything else than allowing to bluntly duplicating data and having headaches later with updates on multiple places.

twitter reddit linkedin facebook google+

Google Analytics

2007-02-16 21:43  i1114  weblog  [permalink]

hmmm! interesting... Let's see what it gives...


twitter reddit linkedin facebook google+

oogarts in Gent

2006-01-12 20:34  i517  internet weblog  [permalink]

Hmm, hoe zoek je een oogarts in Gent... www.infobel.be? noppes, een hoop artsen, maar verder geen onderscheid. www.goudengids.be? hetzelfde...

na wat zoeken blijkt er toch een iemand een goed idee te hebben gehad:


twitter reddit linkedin facebook google+

siggma.net is gedaan!

2005-10-12 22:23  i298  weblog  [permalink]

De hosting is gestopt voor siggma.net. Ik had er mooi alles opgeruimd. De spam bleef tot op het laatste toekomen in mijn mailbox daar... Ik heb het domain nog voor wat langer, ik kijk of ik die ook naar hier kan krijgen zonder te veel kleurscheuren. Maar voor de rest is het hier te doen vanaf nu!
twitter reddit linkedin facebook google+


Archive... Search...