Monday, May 21, 2012

Extended Radio Silence - ending in Q3 2012

To anyone who's still following any of my public works - FastFormat, Pantheios, STLSoft, Breaking Up The Monolith, Quality Matters, VOLE, etc. - and wondering whether these activities are permanently moribund, I want to let you know that I'll soon be free of a very intense and overwhelmingly consuming commercial engagement over the last 2.5 years, and the second half of this year should see much activity in open-source, commercial, and writing activities.



Sunday, January 16, 2011

New system tools this year

Although it'll still be a couple of months away, I'll be releasing new and updated system tools this year, reflecting the substantial improvements in software resources and practice in the 6+ years since they were last released.

Updated version of Quality Matters #5 posted

I've just reposted a re-edited version of the fifth instalment of Quality Matters, "Exceptions: The Worst Form of Error Handling, Apart From All The Others", on the Synesis Software website. Most were typos or improvements in phrasing, found as I'm rereading as part of the research for the seventh instalment, which will hopefully be ready for this month's deadline for the Feb 2011 instalment of ACCU's Overload.

The one important semantic change is correcting the sentence:

"If a software entity exhibits behaviour that contradicts its design, then it makes the transition from correct or unknown to defective."

"If a software entity exhibits behaviour that contradicts its design, then it makes the transition from unknown to defective."

If a software entity is correct, it has been proven to be free from defects, and therefore cannot, in and of itself, experience faults.

Friday, October 22, 2010

Breaking Up The Monolith: Coming at last ...

Yesterday, after four years of vacillation and procrastination and occasional modification, I finally got the Monolith preface into a form with which I'm happy.
Over the next few days I'll be talking to the editor and contacting all those kind, smart folks who've previously agreed to be a reviewer. As soon as things are sorted, I'll start posting what bits I can, probably starting with the book's Manifesto and Preface.

Watch this space ...

Tuesday, October 19, 2010

Generic method name clash: recls 1.9.1 alpha 6 released

I've just released a new alpha of recls 1.9, which incorporates some defect-fixes to ensure it works correctly when compiled/linked in widestring mode, and some new features. Most particularly, I've added a get_file_size() method, which replaces the now deprecated size() method. The reason for this is that I got caught out by my own library when mistakenly using size() (which gives the number of bytes in the file entry) for the length of the entry's path. (I was doing so in combination with c_str(), which gives a pointer to the entry's path's character array.) Oops!

I figure if I can do it, so can any other user, hence the new method and the deprecation.

Wednesday, January 6, 2010

Jan 2010: recls 1.9; commercial work; writing (QM, Monolith)

First off, Happy New Year to all. Let's hope that this one is better than 2009, in lots of ways.

I'm already busier than I expected (or wanted) to be so early in the year, but you can't complain when the sun is shining.

In terms of research, at long last I've written the new C++ mapping for the recls library, which means version 1.9 can finally be released. Apart from the release of - a 100% .NET implementation of the recls library - I haven't released any open-source stuff in over three months.

The drought's about to break, however. As well as recls 1.9 (and a final, defect-fix, version of 1.8), I will be releasing new versions of STLSoft 1.9 (1.9.88), STLSoft 1.10 (1.10.1 alpha 14), FastFormat (0.5), Pantheios (1.0.1 beta 194; hopefully the last beta), b64 (1.4), and probably some more (incl. VOLE)

In commercial work, I'm busy on three fronts simultaneously:
  • A multi-screen control system for a local (Sydney) client, written in C#/.NET
  • A review/remediation piece for an international financial client (C++, COM)
  • A review piece for an Australian client (C++)
In writing, I'm currently busy with:

So, wishing a prosperous new year - in spirit, as well as in wallet - to all, and don't hesitate to get in contact if you need my help in commercial guise.


Sunday, November 22, 2009

Measuring Process Times with ptime

I'm currently doing a little series of posts for my Windows/.NET DDJ Guru Blog covering the performance of the recls (C++) and recls 100% .NET libraries. The first study involves writing a simple application to search for C# source files (excluding Properties/AssemblyInfo.cs), and reporting how much effort it is to write, and how fast it executes.

The latter point has some interest: how do you meaningfully compare performances of tools that have strong interactions with operating system components that exhibit high and variable latency?

The answer I've been using for many years relies upon (on Windows) the use of the ptime tool. The command-lines are (for the C++ program):

ptime --r3 --ah -- ...\CSharpSourceFinder\cpp\CSharpSourceFinder\vc9\Release\CSharpSourceFinder.cpp.exe

and (for the C# program):

ptime --r3 --ah -- ...\CSharpSourceFinder\dotnet\CSharpSourceFinder\bin\Release\CSharpSourceFinder.exe

I'll leave you to peruse the ptime usage, but will comment that each of these command-lines causes the search to be run three times, and averages the times for all runs, after discarding the largest (which we can reasonably presume would be the first). It's not ultimate precision, but it's pretty useful at discarding unrepresentative measurements in such conditions, and gives figures within (I'm guessing now) 5% of their true figures.