31 May 2019
I keep telling myself that I'll get round to maintaining and modernising the site, but the hard fact is I won't.
So I'm announcing that delphidabbler.com will get few if any more updates and will close in one year. I've just renewed the web space for another year ... it will expire on 15 June 2020 and after that the site will be gone.
I will try - no promises - to do one final release of CodeSnip that removes it's dependency on the web server.
I will be retaining ownership of delphidabbler.com for at least a while longer because I'm dependent on it for email. The plan is to point it at my GitHub account and to move more stuff there. If anyone would like to take over the site content, please get in touch.
What am I doing instead? I'm concentrating on my guitar playing and learning to play acoustic blues under the pseudonym Alo Phogg. If anyone's interested check out my YouTube and Facebook accounts.
I'm sorry that I've neglected the site after investing so much time in it since 2002. It was the escalating costs of updating Delphi that discouraged me in the first place. But when my love of guitar playing resurfaced that sealed it. Anyway, it's not gone yet. I'll keep you posted thru this blog. And thanks for the support over the years.
19 October 2018
28 March 2018
What a long time between posts!
Not a lot (i.e. nothing!) has happened on DelphiDabbler.com for well over a year now. Among other things that means that the Delphi Tips database hasn't been updated - and it won't be in future. So I've decided to deprecate it with the view of removing it from the site.
To avoid losing all the data forever, I've 'printed' each tip to it's own PDF file and placed them in a Git repository on GitHub - see https://github.com/delphidabbler/delphi-tips. In addition to the tips from the site I've also added a couple of extra documents that contain numerous other tips. One has loads of tips from the former Delphi Pool website and the other contains tips published in the past by Topellina.
If anyone wants to take over the database just fork the repo. If you want the original HTML include files and associated SQL database just open an issue on the GitHub repo and ask. Or leave a comment below.
The great majority of the tips have not been tested by me and they're all pretty old. Use at your own risk!
22 September 2016
After a mere five and a half years in beta, I've finally got round to finishing off and releasing v2.0 of my PasHi Pascal Syntax Highlighter.
This is a command line program that highlights Pascal source code and outputs CSS styled HTML code. I use it to highlight source code for my website.
Version 2 is a massive update from version 1 - there are loads of new commands. This would turn into a very long post if I was to list everything the program does - there's a comprehensive user guide for anyone interested. For a list of changes from the last v1 release see the change log.
There's a GUI front end that can control PasHi to save typing in lots of commands. That too is now out of beta. Here's a pic of the program after it's used PasHi to highlight some code using an emulation of Delphi's twilight style:
PasHi lives on GitHub. You can grab the program and its source code from the GitHub release page.
19 September 2016
Version 0.2.8 of the BDiff / BPatch Utilities has just been released.
This version is mainly a recompilation with Delphi XE to enable support for Unicode file names and Unicode internal string processing.
Zip files containing the executable files and source code are available from GitHub.
You can also fork the project on GitHub if you wish.
12 September 2016
Release v5.3.0 of the System Information Unit from the DelphiDabbler Code Library has been released.
This release adds support for detecting Windows 10 "Version 1607", i.e. the Anniversary Update. It can also now detect Windows 2016 Server tech previews 1 to 5.
Some other tweaks have been made: for a full list see the change log.
14 February 2016
31 December 2015
This is because the article demonstrated how to use the Google Earth API with Delphi. Now that Google has withdrawn the API the article itself has become redundant.
09 December 2015
The bottom line is that I'm persuaded that the site should continue.
So what decided me?
But, there's always a "but"
- Most of the site's content will be frozen. This means:
- No new articles
- No new hints and tips
- The online code snippets database and SWAG database apps may never get out of beta, and may even go away (but I'll ensure that the data remains available).
- The program and code library pages will probably get simplified.
- The content of the documentation "wiki" may get frozen, or even moved elsewhere. I don't like the wiki software much and it's a pain to maintain.
- I'll probably push ahead with giving the site a much needed make-over to make it mobile friendly. It all depends how long it's likely to take.
- I'll be limiting my programming quite severely. That means:
- Many projects will be abandoned, which means no support, no bug fixes, nothing. They'll still be available though.
- Several will become maintenance only - bugs may get fixed but no new features will be added.
- A very few will continue to be developed. These will be the ones that interest me. And I'm not sure which they are yet!
- I'll no longer be testing the code library or code snippets across multiple compilers. Everything will be compiled or tested with either Delphi XE or XE4.
- I can't foresee a time when I'll upgrade beyond Delphi XE4.
30 November 2015
This release adds support for detecting and reporting on the new "November Update" TH2 release of Windows 10.
This has been quite hard to detect because although Microsoft bumped the build number they haven't classed the update as a service pack, so TPJOSInfo reports no service pack as being present. In fact everything looks the same as the original Windows 10 except for the build number.
To allow users to display a bit more information when running on Windows 10 TH2 I've added a new ServicePackEx method to TPJOSInfo. This returns the same result as the existing ServicePack method when run on any OS prior to Windows 10 TH2. However on that OS ServicePack returns an empty string while ServicePackEx returns 'TH2: November Update'. The rationale of providing the new method is that I don't want to subvert ServicePack from its documented remit of reporting genuine service packs and only genuine service packs.
The intention is that ServicePackEx will also detect any future major updates that aren't classed as service packs by MS. Whether this is possible remains to be seen.
The other change in v5.2.0 is that the TPJOSInfo.BuildNumber method now always returns 0 if it can't determine the build number. Prior to this BuildNumber would sometimes try to get a build number from the registry as a last resort. This feature has been removed because it's become apparent that the registry can return the incorrect value for the build number despite the correct number actually being visible when the registry is viewed in regedit. It seems like Windows is spoofing the registry to report an older OS in these circumstances.
Well it all gets more and more complicated with each release of Windows doesn't it!
01 October 2015
What it boils down to is this: the time has come to decide whether to continue with the site or not.
And I need your help to decide.
There are a couple of reasons why I've got to this point. The first is that my interest in music, playing the guitar and recording has resurfaced and it's taking up some of my spare time. The second, and most important, reason is that I'm getting disillusioned with Delphi (the compiler, not the language). I just can't, or won't, keep up with the cost of upgrades.
The problem is that I'm just a hobbyist developer and the cost of staying up to date is getting prohibitive. I feel I'm getting more reward by spending my cash on musical instruments and studio kit than on a constant stream of compiler updates.
I'm not having a pop at Embarcadero here. Amateurs are probably not part of their target group of customers. And if that's true, I can offer no argument as to why we should be! I'm simply commenting that the cost of entry is too rich for me right now.You'd be staggered to learn quite how many decent quality instruments and bits of studio kit I've paid for just by missing out on a couple of Delphi Pro updates and not upgrading to the Android support module!
A consequence of all this is that if I'm cutting back on my Delphi development, I need to look at whether the DelphiDabbler website is worth continuing with. After all it's a lot of effort and costs me money to keep going. Donations have been drying up lately, meaning that more of the financial burden falls on me. (Whether the lack of donations is a sign of the website's diminishing relevance or the fact I've not been updating it much is debatable).
There's still time to decide what to do because the domain has been secured up to August 2017 and the web space is paid up to June 2017, but I think that now is an opportune time to start the debate.
I don't want to just pull the plug and waste all the effort that's gone into the site since it started back in 2002. So at the present time, here's what I think I might do to salvage as much as possible:
- Move all my apps and components etc. wholly onto Github (Git projects) and SourceForge (Subversion projects).
- Convert the articles and tips into PDF format and put them on GoogleDrive or similar.
- Close down the SWAG database web app and simply make the database available as a zip file.
- Close down the Code Snippets Database web app and make the snippets available as a Git project or as Gists on Github.
- Close down the site Contact page to reduce the amount of email I need to deal with.
- Cease development of most of my apps, components etc., leaving some in maintenance mode only, with a just a chosen remaining active. I'm likely to keep only my CodeSnip application (in a modified form) and the System Information Unit and Window State Components under active development.
- When the web space account expires redirect DelphiDabbler.com to some pages on GitHub.
- When the domain comes up for renewal either let it expire or move to a new cheaper .co.uk domain. Alternatively invite others to take it over.
All the above is up for debate and if there's sufficient interest I may keep a more tightly focussed and easier to maintain version of the site up and running.
The only things that are pretty much fixed at the moment are that I won't give up the music and I won't upgrade Delphi beyond XE4.
In the meantime I may explore the Free Pascal and Lazarus options. However once XE4 becomes so outdated as to be useless, that's likely to be where I bail out.
I'm still considering making the site more mobile friendly for what is potentially its last 18 months of existence.
I need your views
So, what do you think? Any observations will be welcome. I've come to a crossroads and I need some guidance about which way to go.
Please comment. Should I let DelphiDabbler.com die? Should I keep some parts? What's the most useful to you, if anything?
I'd also like to hear from anyone who might like to take over the site and/or domain over?
Just encountered a strange bug in one of my programs when running it from the Delphi XE IDE on Windows 10.
Triggering a TBrowseURL action with a valid URL property value causes the program to hang and the default browser (Chrome) is not displayed. The BeforeBrowse event is triggered, but AfterBrowse is not until the program is closed. Sometimes the program hangs and I have to close it with Ctrl+F2.
Running the same code outside the IDE works correctly, but running the program either with or without the debugger in the IDE makes no difference.
I've tracked this down to where TBrowseURL calls ShellExecute from the ShellAPI unit. If I call ShellExecute directly I get the same problem.
I never noticed this problem before when running Windows 7 on my old laptop - it just seems to have started on my new Windows 10 laptop. Still, it's possible the bug was still there on the old machine and I just never noticed it, but I doubt it.
Anyone else had this problem? Any ideas what may be causing it?