Visit site The Delphi Geek
The Delphi Geek – I don’t want to use long SQL strings in the code. Really. Firstly, it is a pain to write long multiline strings in Object Pascal. (Embarcadero, are you listening? Can we please get multiline strings in Delphi? Please?) Secondly, I’m very OCD when it comes to compiler watching my every step. I ...
The Delphi Geek – The Unit Testing workshop was pretty much full. It was good to see that many interested Delphi programmers in one room. Thanks for coming, everybody! The downloads for the workshop are now online. --- Published under the Creative Commons Attribution 3.0 license
The Delphi Geek – On March 19th (that’s next Thursday), I’ll be leading a workshop dedicated to unit testing Delphi programs. We’ll start with basics and and cover different tools (DUnit, DUnit2, DUnitX, TestInsight) and different programming methodologies. Register here. --- Published under the Creative Commons ...
The Delphi Geek – OmniThreadLibrary 3.04 is now released. Get it here or check out the release-3.04 tag (or just follow the trunk, which is the best way to experience the OmniThreadLibrary). Some other links you may need: Home page: http://www.omnithreadlibrary.com/Google+ community: ...
The Delphi Geek – RC for the new OmniThreadLibrary release is available here. This version should work with Delphis from 2007 to XE7. Win32 and Win64 are supported for Console and VCL applications. --- Published under the Creative Commons Attribution 3.0 license
The Delphi Geek – Blocking collections (IOmniBlockingCollection) are basic elements for data storage and transfer in many high-level OmniThreadLibrary abstractions. They can, however, be somewhat clumsy when you want to read data from them, as there is no indexed access, just the basic “give me next element” ...
The Delphi Geek – At my latest parallel programming presentation a participant suggested that I should extend the OmniThreadLibrary with a parallel mapping abstraction. Dear sir, here is a gift for you.var numbers: TArray<integer>; odds : TArray<string>;begin //initialize the `numbers` array (not ...
The Delphi Geek – Yesterday I hinted at having a working (and easy to use) solution which allows you to detect a record assignment (or copying, if you want) and to access both records (left and right part of the assignment operation). You can also modify record data when an assignment is detected. I also mentioned ...
The Delphi Geek – Following the yesterday’s hunch, I did some research and I came up with a way to detect when a record is copied (simple, supported, working everywhere) and even to access both records (source and target) during that operation (unsafe, unsupported and currently working only for Win32). Now I can ...
The Delphi Geek – Smart records in Object Pascal are very nice, but they have a stupid limitation – you cannot implement a destructor for a record. A solution for that is quite simple and can be found all over the internet – add an interface to this record and implement the cleanup in this interface. To make it even ...
The Delphi Geek – Paweł’s recent post reminded me of a veeeeeery old raytracer I wrote in years 1985/89. (Yes, young ones, we had computers then!) Header states: 1985-07-10: Computer: VAX-11/750 Language: Pascal V2 Graphics: VT100 1988-02-03: Computer: IBM-PC Language: Turbo Pascal 4.0 Graphics: EGA 640 x 350 ...