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,835 other subscribers

Archive for the ‘Software Development’ Category

UMass Amherst CICS Distinguished Lecture: Daniel Jackson (MIT) “Towards a Theory of Software Design”

Posted by jpluimers on 2019/11/07

A brilliant lecture, worth the 1+ hour watching: UMass Amherst CICS Distinguished Lecture: Daniel Jackson (Massachusetts Institute of Technology) “Towards a Theory of Software Design”

[WayBackTowards a Theory of Software Design

Abstract:  Engineers make things work reliably and efficiently; designers make them useful. In the development of buildings, for example, the civil engineer is concerned with the internal structural that prevents the building from falling down; the designer (i.e., the architect) is concerned with the aspects of the building (light, space, etc.) experienced by its users.

I like how his group tags these to a concept part:

  • name
  • purpose
  • sample uses
  • mechanisms
  • variants
  • misfits
  • related to

During the talk there are many examples from common usage patterns and especially misfits. They range from file-sharing (like dropbox), selection and selection application (files/folders, designer objects) via option selection to the tool we all hate and love: git (more on that tomorrow).

–jeroen

via: [WayBack] Interesting talk about software design. – Asbjørn Heid – Google+

Read the rest of this entry »

Posted in Development, Software Development | Leave a Comment »

How to convert a Delphi enum or set to a JSON value, with different specific values…

Posted by jpluimers on 2019/11/07

As I will probably need this one day: [WayBack] How does one convert a Delphi enum to a JSON value, with different specific values? – CHUA Chee Wee – Google+:

eg, TEnum1 = (test1, test2, test3)

TSomeClass.FEnum := test1;

When converted to JSON, I’d like to see maybe
{"Enum": "Value1"} instead of test1

and test2 to "Godzilla", test3 to "Tiburon"

The solution is in his repository: github/chuacw/EnumJson:

After initially suggesting to look into [Archive.is] Serializing User Objects – RAD Studio, he based his solution on a set of clever tricks circumventing Delphi compiler limitations and bugs:

Later he extended the solution to include sets in additions to enums: [Archive.is] Persisting enumeration and sets to JSON – Chee Wee’s blog: IT solutions for Singapore and companies worldwide (via [Archive.isMade my JSON interceptor demo public. Now you can save your enum and sets to JSON, with customized output to boot! – CHUA Chee Wee – Google+)

Clever!

Hopefully this got Lars Fosdal some ideas to solve [WayBackJSON in Berlin – Can I persuade TJSon to treat “params” as it was a string and not an object for the TJsonRPC class? – Lars Fosdal – Google+

Enums with Delphi

Enums with Delphi and their mapping is a repeating topic, see for instance [WayBack] What’s the easiest (ie., least coding) way to map an enum to a const string and vice versa? (Can attributes be used on enum values yet?) eg., type TMyColor… – David Schwartz – Google+

It shows how much the Delphi language is in need of language enhancements as right now there are way too many open source libraries struggling with the same issues each working around them or providing solutions in slightly different way.

Three things immediately come to mind:

  • the NameOf that – analogous to TypeOf – gets the name of an identifier as a string
  • expose all RTTI for all enum types (especially the ones with non-contiguous values or starting at another value than ordinal zero)
  • allow for attributes on enum values

Some examples of libraries providing enumeration support:

Some more thoughts from a different perspective: [WayBackWhat’s New in Edge Rails: Active Record enums

–jeroen

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

Software quality: economics of formality

Posted by jpluimers on 2019/11/06

Interesting read: [WayBackSoftware quality: economics of formality

At one time formal methods were thought to be the only hope for software development. That did not turn out to be the case.

Via: [WayBack] Software quality is better in practice than in theory. Formal methods improve software quality, but at a high cost that is sometimes worthwhile and some… – Jeroen Wiert Pluimers – Google+

Comment there:

Pedro Marcal:

+Jeroen Wiert Pluimers +John Cook , I think that when a code has been in service for even a short time, we can divide the code into two classes. The first is that part that has been executed at least once. The other code has never been executed. The latter code has an error rate that may be measured as a function of the language used. In the old days Fortean had a bug in every seven lines. C used to be 100 to 200 lines. We set up instrumentation to determine the number of lines tested in the first class and found that it was a linear function of the new bugs found. This was a good way to ensure a high quality code.

Related:

–jeroen

Posted in Agile, Code Quality, Development, Software Development | Leave a Comment »

Changing the order of TabSheets in a PageControl in Delphi – twm’s blog

Posted by jpluimers on 2019/11/06

Good to know this as the Structure View sometimes lets me down: modify the PageIndex position as it is less stable than the Object Treeview in Delphi 7 and below.

Via:

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Fast Good Cheap

Posted by jpluimers on 2019/11/06

You want a Fast, Good, and Cheap project?

Make your choices at [WayBackFast Good Cheap

–jeroen

via: [WayBackWeekend Reader 2017.48 – reality-loop / [WayBack] I just published “Weekend Reader 2017.48” – Jonas Bandi – Google+

Read the rest of this entry »

Posted in Development, Software Development | Leave a Comment »

Next up: TPDFPrinter and TPDFCanvas Expect a high paced (and easy) update cy…

Posted by jpluimers on 2019/11/05

For my link archive: [WayBack] Next up: TPDFPrinter and TPDFCanvas Expect a high paced (and easy) update cycle for Ultra, with a constant stream of new goodies! Zero hassles – it … – Joe C. Hecht – Google+

–jeroen

Posted in Delphi, Development, PDF, Power User, Software Development | Leave a Comment »

The Channel9 programming languages guys to watch: Eric and Erik

Posted by jpluimers on 2019/11/05

When watching the episodes of Eric and Erik,

They both worked on the C# team, but have lots of experience designing and developing other languages.

Their views of the languages, teams and companies that make software today is enlightening as basically more and more companies should be software companies but forgot they are.

I’ve been advocating this to both large and small companies since the mid 1990s and by now you see the people getting it are having a blast.

When you look at the language leve, you clearly see how slowly progress is made and how far most languages are behind. I think both the JVM, CLR, LLVM and JavaScript are the foundations to base on but that tooling is still very much in its infancy.

–jeroen

via Stefan Glienke pointing me to Checking In: Eric Lippert – On Compiler Evolution, Designing C# and Blogging | Checking In with Erik Meijer | Channel 9

Posted in Development, Software Development | Leave a Comment »

When whas the global FormatSettings variable deprecated?

Posted by jpluimers on 2019/11/05

Reminder to self to check out when [Archive.isFormatSettings global variable of type [WayBackTFormatSettings was deprecated as it was only documented as of Delphi 2010 but available much much earlier.

–jeroen

via [WayBackdelphi – Is there a consistent global FormatSettings variable availabe? – Stack Overflow

Posted in Delphi, Development, Software Development | 2 Comments »

Meeting Ticker – the real cost of a meeting visualised

Posted by jpluimers on 2019/11/04

Ever figured out how costly meetings are?

Show the [WayBackMeeting Ticker during a meeting and be amazed after filling in just a few fields:

Of course it is open source: github/tobytripp/meeting-ticker

And I also found who originally referred me to it: [WayBack] Weekend Reader 2017.48 – reality-loop

–jeroen

Posted in Agile, Development, LifeHacker, Power User, Software Development | Leave a Comment »

.NET: IHostedService – hosting services inside any .NET process

Posted by jpluimers on 2019/10/31

Have any service related stuff implement IHostedService, so it is easy to deploy it in all kinds of processes:

  • console to test
  • windows service
  • ASP.NET Core service
  • Linux host application

Peter Groenewegen ([WayBackpgroene (Peter Groenewegen) · GitHub; [WayBack] { Think Rethink }) has some great examples and blog articles at [WayBack] IHostedService – { Think Rethink }:

Background information:

Posted in .NET, .NET Core, .NET Standard, Development, Software Development | Leave a Comment »