Ralf's Sudelbücher
-
Software as an autopoietic entity - or: Survival of the fittest
What´s software anyway? Code, software is code, right? Well, I´d say, software is more than that. And to realize that is important for the whole software production process.
-
Freeing Data From the Silos - A Relationistic Approach to Information Processing
Current data processing is suffering from the bane of the many data silos. Data is locked up in a hierarchy of containers and can hardly be connected in new ways. Once data has been grouped into relational database tables or object oriented classes, it’s difficult to regroup it or set up new relations. Regrouping would either break existing code or mean duplication of data. New relations would entail schema changes and be limited to connections between containers on only a few levels of abstraction. Products like Microsoft’s WinFS, dynamic languages and database refactoring tools are trying to overcome this lamentable state of data processing while having their own perspective on it.
-
Microsoft Webcast on Software Cells: Here are the slide decks
For all those interested in the slides of the Microsoft webcasts I did yesterday and today on my architectural model for software called "Software Universe" and "Software Cells", you can download them here and here as PDF documents.
-
dotnetpro.tv: WCF aka Indigo im Video-Interview mit Christian Weyer
Die dotnetpro hat auf Bitten von Clemens "unser Mannes bei Microsoft" Vasters :-), der in Redmond für die WCF Community zuständig ist, die aktuelle Episode meiner Video-Entwicklerserie dotnetpro.tv online gestellt: Christian Weyer führt darin ausführlich und anschaulich und wie immer eloquent kurzweilig in die Grundlagen von WCF ein und benutzt sogar bis dato nie gesehene, also quasi einzigartige Darstellungen am Flipchart :-)
-
How partial classes can help Unit Testing
Testing a class for correctness using Unit Tests means to exercise all methods of a class. This is especially easy for public methods. You can freely choose where to locate your test code, it always has access to public methods of the class. But how about internal/friend methods for example? They are only visible to test code located in the same project/assembly as the class to be tested. And how about private methods? And how about methods without any "directly visible effect", i.e. methods which change only the private state of an object of the class to be tested?
-
Collective code ownership is limiting software quality
Reading the title of this posting you might think I was out of my mind. But in fact I really mean what I say: After lately thinking quite a bit about the software development process I´m now pretty sure, collective code ownership (CCO) as it is promoted by eXtreme Programming (XP) [1,2] is at least not just plain right.
-
The Original Pile Engine Demystified
If you´ve followed my postings on associative/relationalistic approaches to information representation and were interested in implementations of the Pile concepts (see [1] and [2] for words from the horse´s mouth) you might also have stumbled across a C implementation of a so called Pile Engine at the sourceforge site of the project. (You can find my implementation there, too. But it´s in C#.)
-
Even easier high speed reading/writing of binary data files with C#
In my previous posting I presented a way to avoid unnecessarily copying data during read/write of binary files by using low level C CTR file functions like fread() instead of System.IO. This works just fine - but requires you to link in an unmanaged code C DLL if not even doing programming in C yourself.
-
Easy high speed reading/writing of structured binary files using C#
Quite a bit has been written about reading structured binary data from or writing it to files (see [1,2,3]). [1], for example, compares three different approaches. Unfortunately none is as straightforward as C/C++ code would be. Here´s how you could read the ID3v1 tag from a MP3 file:
-
Coordination structures beat RPC - or: How to keep your mental health while working on distributed software
I received a couple of comments on my posting on how bad RPC can be for your mental health. Although the feedback was positive and agreed with my statements, some expressed concern as to what an alternative to RPC-syntax could be. I thus feel encouraged to elaborate on how I think any software developer can avoid damage to his/her mental health ;-)