Thursday, June 21, 2012

Parallel Programming Poll Extended

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.

Monday, June 18, 2012

Hacking FastMM for Debugging Purposes

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.

Saturday, June 16, 2012

Delphi Foundations

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.

Recommended!


[*] 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.

Tuesday, June 12, 2012

The Book is Here!

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.

Thursday, June 07, 2012

Parallel Programming with OmniThreadLibrary – Current Status

imageIn 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.

If you want to affect the order in which the book is written, go to the home page of this blog and vote in the current poll. The poll is restarted each time new part of the book is published.

To get a better idea about the way the book is written, check the sample PDF.

image30image31

Translations

Parallel Programming with OmniThreadLibrary is also available in Russian (translated by Егоров Александр) and in Spanish (translated by Juan Antonio Castillo H.).

Tuesday, June 05, 2012

When a Hotfix Requires a Hotfix

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!

Sunday, June 03, 2012

A New Web, a New Book and a New Info Source

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.

Parallel.Join hotfix

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.

If you are following the SVN head, just do the Update. Otherwise, please download the updated OtlParallel unit.