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

Archive for the ‘Software Development’ Category

The Mysterious Case Of The Lost Inherited Call | The Art of Delphi Programming

Posted by jpluimers on 2018/06/25

A history lesson: not all minitor Delphi updates are binary compatible.[WayBack] The Mysterious Case Of The Lost Inherited Call | The Art of Delphi Programming.

I am looking forward to the solution that Uwe comes up with.

–jeroen

via [WayBack] Binary compatibility can be hard to achieve. The Mysterious Case Of The Lost Inherited Call https://www.uweraabe.de/Blog/2018/05/28/the-mysterious-cas… – Uwe Raabe – Google+

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

Mad With PowerShell

Posted by jpluimers on 2018/06/25

Cool blog:

[WayBackMad With PowerShell Tim Curwick’s PowerShell blog, tips and tricks, tools and techniques, explanations and explorations

via: [WayBack] Mad With PowerShell – Excellent blog by +Tim Curwick about the use and abuse of PowerShell, and brimming with good examples and clues. – Lars Fosdal – Google+

–jeroen

 

Posted in CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development | Leave a Comment »

Dennis1000/mos6502-delphi: A MOS 6502 CPU emulator written in Delphi (a very basic C64 + VIC20 emulator included)

Posted by jpluimers on 2018/06/25

Really cool history: [Archive.isDennis1000/mos6502-delphi: A MOS 6502 CPU emulator written in Delphi (a very basic C64 + VIC20 emulator included)

It should run on most 32-bit Delphi versions.

via:

–jeroen

Posted in 6502, C64, Commodore, Delphi, Development, History, Software Development, VIC-20 | 2 Comments »

Main Innosetup site down; downloads are now at GitHub thanks to Martijn Laan

Posted by jpluimers on 2018/06/22

Earlier this week, I wanted to install the most recent version of InnoSetup, but found out the main site at jrsoftware.org is down.

The new versions released earlier this month were on my list of things to try:

There WayBack archive editions of most directories but all of them are too old to hold the 5.6.0 or 5.6.1 versions (some do not even have the 5.5.9 version either).

In the mean time, Martijn Laan has provided the most recent binaries on GitHub:

Parallel to that, I have archived or found back the most recent versions of these pages and downloads:

jeroen

Posted in Development, Inno Setup ISS, Installer-Development, Software Development | Leave a Comment »

I wish the Delphi language supported multi-line strings

Posted by jpluimers on 2018/06/21

Very often, I see people ask for how to embed multi-line strings in a Delphi source file.

The short answer is: you can’t.

The long answer is: you can’t and if you want you have to hack your way around.

The answer should be: just like any of these languages that do support multiline strings:

Many languages support this through a feature called HEREDOC.

Now in Delphi and other languages like Java are building ugly workarounds like for instance this one: [WayBackRAD Studio Tip: Using resource scripts to organize project dependencies. – Chapman World.

–jeroen

Posted in .NET, C#, Delphi, Development, JavaScript/ECMAScript, Python, Ruby, Scripting, Software Development | 17 Comments »

The Spilled Juice Analogy for Technical Debt | Disciplined Agile 2.X

Posted by jpluimers on 2018/06/21

Interesting take on Technical Debt: [WayBackThe Spilled Juice Analogy for Technical Debt | Disciplined Agile 2.X

Not just because of the analogy, but also because of this comment by Ramu Iyer:

Conway’s Law states that software (or the structure of an IT system) mimics and is isomorphic to the organizational-social structure around it. In layman’s terms, a poorly designed software system is a vivid indicator of the underlying pattern of team communication, coordination and cooperation in the software team. Oftentimes, strained social and organizational interactions get in the way of smooth software development and operation. This results in social liabilities during intergroup coordination and accumulates “social debt” within or across one or more communities in a (software) organization. Any suboptimal socio-technical decisions also impact the technical debt of a software system in tandem. Digging one’s “way out of the technical debt pit” also requires the proactive mitigation of social debt around a system.

Reference:
D. A. Tamburi, et al. Social debt in software engineering: Insights from the industry. Journal of Internet Services & Applications, 2015.

–jeroen

via: [WayBack] Vivid and better analogy than interest payments.The Spilled Juice Analogy for Technical Debt http://buff.ly/2nax1Ng #technicaldebt – Marjan Venema – Google+

 

Posted in Development, Software Development, Technical Debt | Leave a Comment »

Two cool features of the TestInsight treeview – navigate and copy

Posted by jpluimers on 2018/06/20

TestInsight is a great tool for automatically running your unit tests and seeing the results to make you more productive.

Two of the results treeview features you might not know make you even more productive:

  • After selecting a node, pressing Ctrl-C will copy the content as text to the clipboard
  • Double clicking will bring you to the unit test in your source code

You can get TestInsight at sglienke / TestInsight — Bitbucket

–jeroen

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

Class helpers and virtual methods – E2003 Undeclared identifier: ‘QueryInterface’/ ‘_AddRef’/’_Release’

Posted by jpluimers on 2018/06/20

Reminder to self: if you want to stay compatible with old (Pre Delphi XE) source code, then do not use virtual methods in class helpers.

Technically you can, as class helpers can inherit from other class helpers, but this is only supported as of Delphi XE.

In lower versions you get these errors as apparently the Delphi compiler tags an IInterface to the class helper compiler result:

[Error] Project1.dpr(14): E2003 Undeclared identifier: 'QueryInterface'
[Error] Project1.dpr(14): E2003 Undeclared identifier: '_AddRef'
[Error] Project1.dpr(14): E2003 Undeclared identifier: '_Release'

Source: [WayBackQualityCentral 9782

–jeroen

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

Amazon Alexa on a Raspberry Pi (add a USB microphone and a speaker with a 3.5mm plug)

Posted by jpluimers on 2018/06/19

I never realised that Amazon Alexa has an open source account on GitHub: https://github.com/alexa

There are full instructions on getting a Java based Alexa Voice Service (AVS) – also used by Amazon Echo – to run on a Raspberri Pi (3 or better recommended, works on 2 as well) with this extra hardware:

  • USB microphone
  • Speaker with a 3.5mm audio plug
  • USB WiFi (essential for Raspberry Pi 2, optional if you want to boost your WiFi signal on a Raspberry Pi 3)

Full instructions are at Raspberry Pi · alexa/alexa-avs-sample-app Wiki and a video is below: https://www.youtube.com/watch?v=baec1CbV6A0

I should find some time to try this out (:

–jeroen

Read the rest of this entry »

Posted in Development, Hardware, Hardware Development, Hardware Interfacing, Software Development | Leave a Comment »

PowerShell – query reboot/shutdown events

Posted by jpluimers on 2018/06/19

Thanks [WayBackgbabu for the below PowerShell ide

As PowerShell command:

Get-EventLog System | Where-Object {$_.EventID -eq "1074" -or $_.EventID -eq "6008" -or $_.EventID -eq "1076"} | ft Machinename, TimeWritten, UserName, EventID, Message -AutoSize -Wrap

Based on it and my own experience, thse Event IDs can be interesting:

  • 41 – The system has rebooted without cleanly shutting down first
  • 109 – The kernel power manager has initiated a shutdown transition.
  • 1073 – The attempt by user [domain]\[username] to restart/shutdown computer [computername] failed.
  • 1074 – The process [filename].[extension] has initiated the restart of computer [computername] on behalf of user [domain]\[username\ for the
  • 1076 – ???
  • 6008 – The previous system shutdown at [time-in-local-format] on [date-in-local-format] was unexpected.

You can also run this as a batch file, but not you need to escape the pipe | into ^| like this:

PowerShell Get-EventLog System ^| Where-Object {$_.EventID -eq "1074" -or $_.EventID -eq "6008" -or $_.EventID -eq "1076"} ^| ft Machinename, TimeWritten, UserName, EventID, Message -AutoSize -Wrap

If you have PowerShell 3.0 or greater, then you can use the [Archive.is-In operator:

PowerShell Get-EventLog System ^| Where-Object {$_.EventID -in "41", "109", "1074", "6008", "1076"} ^| ft Machinename, TimeWritten, UserName, EventID, Message -AutoSize -Wrap

–jeroen

Posted in Batch-Files, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows | Leave a Comment »