The Wiert Corner – irregular stream of stuff

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

  • My badges

  • Twitter Updates

  • Pages

  • All categories

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

    Join 1,854 other subscribers

Archive for the ‘Software Development’ Category

Sasha Laundy on Twitter: “The best debugger ever made is a good night’s sleep.”

Posted by jpluimers on 2019/12/26

Very similar to “you get the best ideas while sleeping“:

[WayBack/Archive.isSasha Laundy on Twitter: “The best debugger ever made is a good night’s sleep.”

Via: [WayBack] So true it hurts – CodeProject – Google+

For me, taking a shower and contemplating during a commute are good debuggers too. But sleeping is still the best.

Hope you enjoyed Christmas, good luck on your debugging ventures!

–jeroen

Posted in Debugging, Development, Fun, Quotes, Software Development | Leave a Comment »

Delphi 10.1.2 Berlin: after ….

Posted by jpluimers on 2019/12/25

For my archive: [WayBack] Bummer, a big showstopper with Berlin 10.1.2: an object with an indexed property getter crashes the debugger! Please +Marco Cantù we need a fix for this… – André Mussche – Google+

When debugging and adding a watch on a property:

  1. ‘Function to be called, xxxx, was eliminated by linker’
  2. ‘Assertion failure: “!e32->evalArgs.evalFCallPending”
    in ..\win32src\proc32.cpp at line 1830’

It was fixed in 10.2 Tokyo: [RSP-16522] property getters with index can’t be viewed in the debugger and crashes! – Embarcadero Technologies

–jeroen

Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | Leave a Comment »

Flexible and Economical UTF-8 Decoder

Posted by jpluimers on 2019/12/25

For my link archive: [Archive.is] Flexible and Economical UTF-8 Decoder.

Be sure to read the whole article there as the explanation of the initial algorithm is important and final algorithm is towards the end.

The foundation is a state machine combined with a lookup table to find the initial state and proceed to subsequent states.

Related (and reminder to check what David did):

–jeroen

Read the rest of this entry »

Posted in C, C++, Delphi, Development, Software Development | 1 Comment »

Pythonic

Posted by jpluimers on 2019/12/24

When learning Python, one of the terms to get used to is Pythonic, basically shorthand for a loosely defined idiomatic Python way of writing code.

Some links to help you get a feel for this:

Sometime, I am going to dig into learning how to write Pythonic code for merging and joining dictionaries (preferably those of namedtuple entities). Hopefully these links will help me with that:

–jeroen

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

Delphi and generics: some examples of “E2015: Operator not applicable to this operand type”

Posted by jpluimers on 2019/12/24

I don’t have enough time right now to elaborate on the code, so below is a an example of where I bumped into the very non-descriptive [WayBack/Archive.is] E2015: Operator not applicable to this operand type when using generics in Delphi.

Most have to do with comparing types (one of which is similar to comparing interfaces where you need to have a GUID in order to get an as comparison working, see Source: Delphi – Using FastMM4 part 2: TDataModule descendants exposing interfaces, or the introduction of a TInterfacedDataModule).

Like most post-Delphi 2007 language features in Delphi, generics still have rough edges. I doubt this will change anytime soon and I am not alone in this.

The documentation never got update to cover situations involving generics ([Archive.is] E2015 Operator not applicable to this operand type (Delphi) – RAD Studio), so basically this to show some examples you might bump into as well.

Note the code below usually is an indication of code-smell, as was the more elaborate situation I had to use it in. A long term solution for that code was to introduce more polymorphism.

A shorter term solution involves either the use of local variables or type-casting (for the latter, see [WayBack] delphi – Cannot compile constrained generic method – Stack Overflow)

–jeroen

Read the rest of this entry »

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

imagemagick – Command line convert webp to jpg? – Unix & Linux Stack Exchange

Posted by jpluimers on 2019/12/23

For my link archive: [WayBack] imagemagick – Command line convert webp to jpg? – Unix & Linux Stack Exchange

–jeroen

Posted in *nix, *nix-tools, Development, Encoding, Google, GoogleWebP, Image Editing, Power User, Software Development, The Gimp, WebP | Leave a Comment »

Examining Cross-functionality Bias on Software Development Teams | AgileConnection

Posted by jpluimers on 2019/12/19

Cross-functionality means having all the necessary people and skills on one self-organizing team. Unfortunately, the execution of cross-functionality is often biased. The main traps we fall into are misunderstanding the value of specialization, hero worship, and not “walking the cross-functional talk” as organizations. Let’s examine each of these pitfalls in the hope that your teams may avoid them.

Worthy tread at [WayBack] Examining Cross-functionality Bias on Software Development Teams | AgileConnection

Via: [WayBack] “Cross-functionality is much more than developers and testers working together. It goes against the biases we have of our personal and professional silos… – Marjan Venema – Google+

–jeroen

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

“A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.” – Niklaus Wirth

Posted by jpluimers on 2019/12/19

These quotes remind me so much of a project from a while ago I rolled into and forgot to ask them if they not just nodded “yes” when I asked them “do you understand de concept of technical debt”?

–jeroen

Read the rest of this entry »

Posted in Development, Fun, Quotes, Software Development | Leave a Comment »

Delphi: 2 things to check when FMX/VCL units are inserted when you use VCL/FMX components

Posted by jpluimers on 2019/12/19

On G+Tom Field bumped in the [WayBack] issue that the IDE would add VCL units to the uses list when putting FMX controls on a form.

I’ve observed it the other way around as well, and there are two things you need to check:

References:

David Nottage:

It has to do with whether there’s {$R *.fmx} or {$R *.dfm} in the unit. You may be able to get away with renaming the .dfm file to .fmx, and changing the directive in the unit.

Jeroen Wiert Pluimers:

 Your .dproj file tells you what kind of application it is (FMX or VCL) in the FrameworkType element and the IDE should respond to that correctly.

–jeroen

Source: [WayBackIn the Berlin Update 2 IDE. I’m working on a multi-device app I’m creating. …

Posted in Delphi, Development, FireMonkey, OS X FMX, Software Development | 3 Comments »

IOTAProjectNotifier.Modified notifies when when Project Options have changed…

Posted by jpluimers on 2019/12/18

From: [WayBack] Is there any way using Open Tools to detect when Project Options have changed? This link from +David Hoyle covers a whole bunch of other notifications: … – David Nottage – Google+

IOTAProjectNotifier.Modified

Note a direct “IOTAProjectNotifier.Modified” – Google Search revealed nothing relevant, but a parts “IOTAProjectNotifier” “Modified” – Google Search revealed [WayBack] RadStudioVersionInsight/SvnIDENotifier.pas at master · rburgstaler/RadStudioVersionInsight · GitHub: TProjectNotifier

Further reading are these excellent blog posts:

–jeroen

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