While setting up the poll on the right I did something wrong and it was prematurely closed.
This has now been corrected – you can again vote for your favourite.
Last week I started solving weird ‘out of memory’ crash in one of our services. First reports of problems came in from a client but with some experimenting I managed to repeat it on the test configuration. The program works nicely for few hours and then something weird happens and it starts using the memory, few megs per minute, until it crashes.
Repeating the problem on the test configuration usually means half the victory won but this time it wasn’t so :( I was fighting the most terrible of memory leaks – a live leak. Memory was allocated, stored away in some management structure and properly disposed off when the program terminated. FastMM have shown no problems at all. Such problems are always hard to find.
Chris Rolliston has published his monumental[*] work “Delphi XE2 Foundations” in Kindle format (paper version to follow). The book is split in three parts (TOC is provided in the book home page), each priced at £7.99/€8.99/US$9.99 (which of course translates to $13.79 for people not living in USA, UK, DE, FR, ES or IT – damn Amazon!). As the book is excellent, the price is more than fair – if you doubt my words, download the sample from the Amazon.
As the book site is called “delphifoundations.com” and not “delphixe2foundations.com” I can’t but assume that Chris will update the book to following Delphi releases, which would indeed be a great thing.
[*] It is hard to tell book size from the Amazon’s download size but I have read Chapter 15 (Multithreading) in advance and I can attest to the fact that it is a) very long and detailed, b) very exhaustive and c) very well written.
I have finally pushed the Publish button and “The Book” is now available on LeanPub.
To get the current book status, click here or on the book cover image right to this post.
If you want to affect the order in which the book is written, participate in poll on the right (below the book cover image). I will complete the “High-level Multithreading” chapter regardless of your votes but then I’ll follow the majority.
In accordance with the Lean Publishing Manifesto, Parallel Programming with OmniThreadLibrary is published as it is written. When I’m happy with a chapter (or even with a section, if it is important enough), I click the Publish button on the LeanPub site and new, updated book is available to all the readers.
Such a book would be of a little use if you would not be able do buy and read it before it is finished. Therefore, you can buy the book in the current state of completion and you’ll get all future versions for free. That way, you will get the information as soon as it is ready and I get feedback from my readers before the book is completed (which also means I am able to react immediately, fixing the errors and updating the already written parts). You’ll be informed by the email when an update is ready. Alternatively, you can follow this blog or my Twitter feed.
The picture on the right shows the structure of the book. Chapters marked green are already finished. Blue color marks the chapter I’m currently working on. Orange color indicates chapters that are available in the free sample book. Brown color marks the content that is only partially included in the sample book.
To get a better idea about the way the book is written, check the sample PDF.
Do you know that feeling when you can’t put together a simple piece of code? You turn it around and around and there’s always “one last” problem. Even after you’ll happy with it, the first user that tries it out will find a problem. And then you correct that and you’ll happy with it again and the first user that tries it now will find a new problem. :(
It looks like I’m playing this game with Parallel.Join. I can’t make the @#$%^ thing to work correctly. That’s why I have just issued another hotfix. If you are following the SVN head, just do the Update. Otherwise, please download the updated OtlParallel unit.
Thanks go to [meishier] for reporting the problem!
I have decided to start up a new blog, dedicated to programming with Smart – www.smartprogrammer.org. If you are using the Smart Mobile Studio or if you think that programming mobile applications with Pascal is an interesting idea, make sure to bookmark it.
I will however not move all my Smart-related posts there, most important stuff will also be published here.
My book about the Smart is now available – read more in my post on the new blog. [But feel free to comment here, if you want.]
And the last but not least – I have created a Twitter account. (Took me a long time, I know.). Follow me @thedelphigeek and you’ll get notifications about the OmniThreadLibrary, A Smart Book and more.
There was a nasty bug in Parallel.Join which (sometimes) raised its ugly head when number of tasks submitted to the Join abstraction was larger than the number of parallel execution units (threads). Big thanks go to [Passella] for reporting the problem together with a reproducible test case.