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

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 »

Choosing a centralized logging and monitoring system

Posted by jpluimers on 2018/06/18

Interesting read:

Searching through logs and remoting to a machine to check it’s load is not a fun thing to do. This is why I’ve decided to look for a centralized logging service. And what I’ve chosen.

It looks like Microsoft App Insight is very much worth trying.

–jeroen

Posted in *nix, Development, Monitoring, Power User | Leave a Comment »

Practical Color Theory for People Who Code

Posted by jpluimers on 2018/06/18

Recommented reading and playing: [Archive.isPractical Color Theory for People Who Code which is not just about the colour wheel, but also about:

  • desaturation
  • mixing
  • contrast for tints and shades

Oh: don’t forge the “Party Mode” (:

–jeroen

PS:

 

Posted in Color (science), Color (software development), Development, LifeHacker, Power User, science, Software Development, UI Design | Leave a Comment »

GExperts 1.3.10 experimental twm 2018-06-03 – twm’s blog

Posted by jpluimers on 2018/06/14

I just saved it to [WayBackGExperts 1.3.10 experimental twm 2018-06-03 – twm’s blog.

It includes:

–jeroen

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

Firebird error “Operating system call _beginthreadex failed. Error code 8” can mean your server process ran out of memory

Posted by jpluimers on 2018/06/14

On a production system we had this error occurring without warning:

Operating system call _beginthreadex failed. Error code 8

The cause was running out of private bytes or virtual size as they were almost 2 gigabyte which is too much for a 32-bit process:

The not so nice thing is that there were no memory warnings in the Firebird.log file at all.

In the client application the DAC (Data Access Layer) was getting lots of  “unable to allocate memory from operating system” errors back from Firebird (and logging them in the client log file), so the client didn’t run out of memory: the server did.

This was with 2.5.2.26540 (at that time the most recent version) and it looks like more people suffer from this:

We put a monitor to watch the fbserver.exe process and warn us if it was reaching 1.5 gigabyte so we could re-start it before running out of memory.

–jeroen

Posted in Database Development, Development, Firebird, Power User | 2 Comments »

Delphi MS OpenXML files – ZIP and XML…

Posted by jpluimers on 2018/06/14

If I ever need to do OpenXML in Delphi: [WayBack] For some years i’ve had a subsystem that directly manipulates MS OpenXML files… – Dany Marmur – Google+

Summary:

  • Zipping: units from mORMot. Brilliant! Fast. Does not puke!
  • XML:ing: Oxml (kluug.net).

–jeroen

 

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