The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Development’ Category

On my research list: NCrunch for Visual Studio

Posted by jpluimers on 2015/02/04

Thanks Stefan Glienke for pointing me to NCrunch for Visual Studio:

NCrunch is an automated concurrent testing tool for Visual Studio.

It intelligently runs automated tests so that you don’t have to, and gives you a huge amount of useful information about your tested code, such as code coverage and performance metrics, inline in your IDE while you type.

–jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development | Leave a Comment »

Inversion of Control explained in a few sencences

Posted by jpluimers on 2015/02/04

One of the difficult things with design principles like Inversion of Control, is that virtual all descriptions are lengthy and therefore difficult to grasp.

I’ve been using interfaces to decouple software for a long time, but it also took me a while to get IoC, especially the Inversion part.

The first time I got the Inversion principle was when reading the answer  by Derek Greer to What is the Dependency Inversion Principle and why is it important? and especially the summary in the comment by Patrick McElhaney:

The difference between MyService → [ILogger ⇐ Logger] and [MyService → IMyServiceLogger] ⇐ Logger is subtle but important.

A similar explanation can be found in the somewhat longer, but very well written articles Dependency Injection Is NOT The Same As The Dependency Inversion Principle and A curry of Dependency Inversion Principle (DIP), Inversion of Control (IoC), Dependency Injection (DI) and IoC Container.

The whole point of the “Inversion” part is twofold:

  1. you declare the interface (ILogger) between a service user (MyService) and a provider (Logger) close to the user.
  2. you do this so that MyService does not need to change when you switch to a different provider: a new Logger provider needs to implement the ILogger interface too, even if it is from a completely different source or vendor.

Keeping that interface stable has the consequence that there will be more work on the provider side, for instance by using the adapter pattern to map the provider to the interface.

Knowing this, it was far easier to understand these articles that are often regarded as the fundamental ones, most from Martin Fowler’s site:

–jeroen

Posted in Dependency Injection, Design Patterns, Development, Inversion of Control / IoC, Software Development | 1 Comment »

On my research list: Pharo – Welcome to Pharo!

Posted by jpluimers on 2015/02/03

Thanks Warren Postma for pointing me at this:

The immersive programming experience

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).

And http://jmvdveer.home.xs4all.nl/: Check out Algol68G.

–jeroen

via: Pharo – Welcome to Pharo!.

Posted in Development, Software Development | Leave a Comment »

via Delphi sorcery: Unattended Delphi installation – how?

Posted by jpluimers on 2015/02/03

Cool: this makes it way easier to do repeated Delphi installs for testing purposes:

Setup.exe /s LANGUAGE=English EN=TRUE DE=TRUE KEY1=XXXX KEY2=XXXXXX KEY3=XXXXXX KEY4=XXXX

There are many more parameters in Delphi sorcery: Unattended Delphi installation – how?, but the above is already a good start.

Thanks Stefan Glienke for having shared this!

–jeroen

via: Delphi sorcery: Unattended Delphi installation – how?.

Posted in Delphi, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | 2 Comments »

Update to “Delphi operator overloading: table of operators”: added the `in` operator

Posted by jpluimers on 2015/02/02

Because of [Wayback/Archive] Delphi sorcery: New dynamic array type in Spring4D 1.2, I updated this article from 2009: Delphi operator overloading: table of operators, names, and some notes on usage and ‘glitches’.

When I wrote the original article in 2009 the in operator wasn’t documented to be overloadable.

It is overloadable, and newer documentation includes it: [Wayback/Archive] http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading_%28Delphi%29.

In addition I clarified a few things better (like not needing to return Boolean for comparison and set operators) and fixed a few typos and links.

The glitches are still there, so I’ve kept those.

--jeroen

Posted in Delphi, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | Leave a Comment »

Raspberry Pi 2 Model B Features Broadcom BCM2836 Quad Core Processor

Posted by jpluimers on 2015/02/02

Dang I bought my Raspberry Pi B+ a few weeks too soon: Raspberry Pi 2 Model B Features Broadcom BCM2836 Quad Core Processor.

–jeroen

Posted in Development, Hardware Development, Raspberry Pi | Leave a Comment »

Fun to watch/listen to: Sorting Algorithms (slower, grouped and ordered) – YouTube

Posted by jpluimers on 2015/02/02

A great way to hear/see how these algorithms work: Sorting Algorithms (slower, grouped and ordered) – YouTube.

–jeroen

Posted in Development, Software Development | 1 Comment »

ASCII is not just an RFC. It is an Internet Standard, but only recently.

Posted by jpluimers on 2015/01/29

When people tell you that ASCII is not an Internet Standard but an RFC. They are wrong. They used to be right though. Until 2015-01-12, when IETF declared the RFC 20 to be an Internet Standard: status-change-rfc20-ascii-format-to-standard-00.

So after more than 45 years (like many good things, the ASCII RFC is from 1969), it is not just an American Standard but an Internet Standard (:

Thanks Lauren Weinstein for sharing and Kristian Köhntopp for pointing to the reclassification.

–jeroen

via: ASCII – Wikipedia, the free encyclopedia.

Posted in ASCII, Development, Encoding, History, Software Development | Leave a Comment »

CodeInspect says “Hello World”: A new Reverse-Engineering Tool for Android and Java Bytecode – via: Secure Software Engineering

Posted by jpluimers on 2015/01/29

Thanks  for mentioning this, so it got on my research list:

a new reverse-engineering framework that works on the intermediate representation Jimple and supports all the features above and a lot more.

CodeInspect supports as input format a complete Android Application Package (apk), just the Android bytecode (dex-file) or a jar-file.

In the following we will describe the different features based on a malicious Android apk.

The figure above is a screenshot of CodeInspect. As one can see, CodeInspect is based on the Eclipse RCP framework

–jeroen

via: CodeInspect says “Hello World”: A new Reverse-Engineering Tool for Android and Java Bytecode | Secure Software Engineering.

Read the rest of this entry »

Posted in Android, Development, Java, Java Platform, Mobile Development, Software Development | Leave a Comment »

Some links to Delphi Unit Testing history

Posted by jpluimers on 2015/01/29

Unit testing has been here for a long time, and so has Unit Testing in Delphi. Below a summary of historic links together with some notes on how the state of affairs changed over the years.

Charlie Calvert

I’ll start with one of the first large Delphi Unit Testing articles was a paper by Charlie Calvert summarizing the state of the art on Delphi Unit Testing in 2004. It is present in the wayback machine as DUnit Talk and on his elvenware.com site.

Note that the elvenwere.com site is sometimes slow or hard to reach. Since his evangelist days at Borland/CodeGear, Charlie has moved through a few evangelist jobs at Falafel and Microsoft and finally went back to his old profession: being a great teacher – this time at Bellevue Collegeoften using script based languages and cloud computing, with less focus on his web-presence.

Many of his IT books (during his writing period, he wrote both as Charles Calvert and Charlie Calvert) are still relevant though.

DUnit; Juanco Añez Read the rest of this entry »

Posted in Agile, Conference Topics, Conferences, Delphi, Dependency Injection, Design Patterns, Development, Event, FreePascal, History, Inversion of Control / IoC, Pascal, Software Development | 3 Comments »