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 ‘Software Development’ Category

PowerShell on Mac OS X and other non-Windows systems

Posted by jpluimers on 2018/07/17

I wasn’t expecting it to be so easy to install PowerShell on Mac OS X:

brew install Caskroom/cask/powershell

In the background it executes this script: https://github.com/caskroom/homebrew-cask/blob/master/Casks/powershell.rb. which indirectly goes through the URL template https://github.com/PowerShell/PowerShell/releases/download/v#{version}/powershell-#{version}.pkg.

On other non-Windows systems, you have to go through GitHub yourself: https://github.com/powershell/PowerShell. The PowerShell team at Microsoft has many more repositories including the Win32-OpenSSH port which you can find through https://github.com/PowerShell.

At the time of writing, PowerShell was available for these platforms:

Platform Downloads How to Install
Windows 10 / Server 2016 (x64) .msi Instructions
Windows 8.1 / Server 2012 R2 (x64) .msi Instructions
Windows 7 (x64) .msi Instructions
Windows 7 (x86) .msi Instructions
Ubuntu 16.04 .deb Instructions
Ubuntu 14.04 .deb Instructions
CentOS 7 .rpm Instructions
OpenSUSE 42.1 .rpm Instructions
Arch Linux Instructions
Many Linux distributions .AppImage Instructions
macOS 10.11 .pkg Instructions
Docker Instructions

The first version I installed on Mac OS X was this: ==> Downloading https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0-alpha.17.pkg

By now I really hope it is out of Alpha state.

–jeroen

via:

Posted in *nix, Apple, CommandLine, Development, iMac, Linux, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, openSuSE, Power User, PowerShell, PowerShell, Scripting, Software Development, SuSE Linux, Ubuntu | Leave a Comment »

Interesting take by Robin Message on Twitter: “I wrote an thing: How Scrum disempowers developers (and destroyed Agile)”

Posted by jpluimers on 2018/07/16

A very interesting first post that promises to become a series: [WayBackRobin Message on Twitter: “I wrote an thing: How Scrum disempowers developers (and destroyed Agile)”:

The article is at [WayBack] Lambda Cambridge – How Scrum destroyed Agile and part two is at [WayBack] Lambda Cambridge – How Scrum disempowers developers (and destroys agile) already mentioning part three, so it is indeed becoming a series.

Read the rest of this entry »

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

Need to check out which weather widgets I can get working for a really long period of time with a refresh every minute.

Posted by jpluimers on 2018/07/13

Need to check out which weather widgets I can get working for a really long period of time with a refresh every minute. [WayBackJeroen Pluimers on Twitter: “@Weerplaza ik heb via de widgets op https://t.co/DvF9tucAi9 een pagina voor mijn verstandelijk beperkte broer gemaakt op https://t.co/se9wAjJhaU Na maanden OK, gaan helaas de widgets van WeerPlaza daar niet meer goed. Komt het omdat de page-refresh (1x per minuut) te hoog is?… https://t.co/NX9XTj04Gq”

These will help me fix that:

–jeroen

Posted in Development, HTML, Software Development, Web Development | Leave a Comment »

PlasticSCM: seriously? Comment size too long (which means your checkin message is too long), and why can’t I request a code review?

Posted by jpluimers on 2018/07/13

Good job PlasticSCM! Imposing limits on what you can write. Not!

It is not actually the comment size, but the commit message length (naming things consistently is hard).

---------------------------
Error
---------------------------
Comment size is too long. Its current length is 2397, whereas the maximum allowed length is 1000
---------------------------
OK
---------------------------

This after I had a big fight where the PlasticSCM “Undo Unchanged” action is unreliable: after that, if you refresh, then diff some of the files they show as “idental”, nor nothing at all happens (Beyond Compare is if big help showing “files are binary the same”).

After the commit (which is actually called “Checkin” in the UI button, so far for naming things consistently), I cannot even request for a code review:

Finally I need to find out the cause of the below message when I click on “Checkin” (i.e. not Checkout):

---------------------------
Error
---------------------------
Can't perform a checkout in an edited xlink.
---------------------------
OK
---------------------------

/rant

–jeroen

Twitter threads:

https://twitter.com/TheRealMig_El/status/1017813424078802950

 

Posted in Development, PlasticSCM, Software Development, Source Code Management | Leave a Comment »

CodeRage 8 replays: REST stuff

Posted by jpluimers on 2018/07/12

It seems I forgot to schedule this post, as it was still in the drafts.. So here it is for historic purposes. Likely a few links have died by now.

Last year I could not make it to CodeRage 8 as I was prepping for EKON 17 and ITDevCon 2013.

But there were some nice presentations, some of which I really wanted to see again.

So I was glad to have found the CodeRage 8 Replayshttp://www.youtube.com/playlist?list=PLwUPJvR9mZHiaYvH9Xr7WuFCVYugC4d0w.

Especially for these sessions as REST support is an under-marketed aspect of Delphi XE5:

And a few others as well:

–jeroen

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

The Relationship between Static Analysis and Continuous Testing – DaedTech

Posted by jpluimers on 2018/07/12

You need both, no matter what software development environment you use: [WayBack] The Relationship between Static Analysis and Continuous Testing – DaedTech

Via: [WayBack] The Relationship between Static Analysis and Continuous Testing – DaedTech – Marjan Venema – Google+

–jeroen

Posted in Development, Software Development | Leave a Comment »

Delphi TList.Grow and TStringList.Grow perform differently

Posted by jpluimers on 2018/07/12

Just as a reminder to self: the non-generic TStringList and TList grow way less aggressive than the generic TList:

  • TList.Grow and TStringList.Grow:
    • 4, 8, 12, 28, 44, 60, 76, 95, 118, 147, 183, 228, 285, 356, 445, 556, 695, 868, 1085
  • Generic TList growth via TListHelper.InternalGrow:
    • 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024

Sources:

–jeroen

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

Delphi – pressing Ctrl-A on a TDBEdit was partially fixed in Delphi 10.2 Tokyo

Posted by jpluimers on 2018/07/11

[WayBack] QualityCentral 110308 – TDBEdit updates wrongly Datalink.Modified when Dataset being in Browse mode and [WayBack] QualityCentral 127300 – Closed Exception When Ctrl+A (select text) on TDBEdit have been partially fixed in Delphi 10.2 Tokyo under [RSP-16288] Bug after selecting all the text by pressing Ctrl+A in TDBEdit and pressing TAB – Embarcadero Technologies.

Since there is only manual syncing from Quality Portal to Quality Central, and only Quality Central is indexed by search engines, the public at large usually finds the Quality Central bugs.

Basically, the affected controls ([WayBack] TDBEdit, [WayBackTDBComboBox, [WayBack] TDBMemo, but not [WayBackTDBRichEdit – probably not needed as I could not reproduce the [WayBack] TClientDataSet based QC127300 attachment in Delphi 10.1 with TDBMemo or TDBRichEdit, though neither selected of these two all text, which 10.2 also fixes).

the .KeyPress methods now check for a Ctrl-A case like this:

    ^A:
      begin
        SelectAll;
        Key := #0;
      end;

and some of the .KeyDown methods have been tuned a little by setting Key := 0 when Edit returns false.

–jeroen

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

“Don’t access VCL from a background thread” – how to demo that?

Posted by jpluimers on 2018/07/11

When accessing the VCL from multiple threads at the same time: adopted from ...\DEMOS\THREADS\THRDDEMO.DPR

When accessing the VCL from multiple threads at the same time: adopted from …\DEMOS\THREADS\THRDDEMO.DPR

Great question a while ago:

[WayBack] “Don’t access VCL from a background thread” – how to demo that? – Primož Gabrijelčič – Google+

For me, the ultimate way why not to access the VCL from a background thread is the precursor of the official threads demo that ships from Delphi 2 to Delphi XE6 in ...DEMOS\THREADS\THRDDEMO.DPR. where you’d think the thread isolation would be in ...DEMOS\THREADS\ThSort.pas but actually is in ...DEMOS\THREADS\SortThds.pas.

The first public showing of that demo did not include main thread protection. It originates from a session at the the 1995 Borland Developers Conference where Ray Konopka showed the below code from Bob Ainsbury.

That session reminded why this joke [WayBack] Via the EKON20 sessions… – Jeroen Wiert Pluimers – Google+ was so funny:  “When Ray Konopka enters the room you have a Raize condition.“.

The question above also made me find back this reference to BorCon95 in San Diego:

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 10.2 Tokyo (Godzilla), Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 2 Comments »

Professional techniques for C# – Lecture Notes Parts 1..4 of 4 – CodeProject

Posted by jpluimers on 2018/07/10

If you’re new to C#, below is a good series of articles to get started.

Even if you’re not so new, there are quite some interesting bits to learn from them:

  1. [WayBackAn advanced introduction to C# – Lecture Notes Part 1 of 4 – CodeProject
    1. Introduction
    2. The right development environment
    3. Basic concepts
    4. Namespaces
    5. Data types and operators
    6. Reference and value types
    7. Control flow
    8. Object-oriented programming
    9. Inheritance and polymorphism
    10. Access modifiers
    11. Properties
    12. The constructor
    13. Abstract classes and interfaces
    14. Exception handling
    15. Outlook
    16. Other Articles in this Series
    17. References
    18. History
  2. [WayBackMastering C# – Lecture Notes Part 2 of 4 – CodeProject
    1. Introduction
    2. Enumerations
    3. Delegates
    4. Auto-generated properties
    5. Generic types
    6. Generic methods
    7. Constraints
    8. Lambda expressions
    9. Anonymous objects & inferring types
    10. Extension methods
    11. LINQ
    12. Windows Forms development
    13. Custom drawing in Windows Forms
    14. Outlook
    15. Other Articles in this Series
    16. References
    17. History
  3. [WayBackAdvanced programming with C# – Lecture Notes Part 3 of 4 – CodeProject
    1. Introduction
    2. Events
    3. The .NET standard event pattern
    4. Reflection
    5. Dynamic Types
    6. Accessing the file system
    7. Streams
    8. Threads
    9. Thread-communication
    10. The Task Parallel Library
    11. Tasks and threads
    12. Awaiting async methods
    13. Outlook
    14. Other Articles in this Series
    15. References
    16. History
  4. [WayBackProfessional techniques for C# – Lecture Notes Part 4 of 4 – CodeProject
    1. Introduction
    2. More control on events
    3. Overloading operators
    4. The yield statement
    5. Iterators
    6. Understanding co- and contra-variance
    7. Using attributes effectively
    8. Elegant binding
    9. Unsafe code
    10. Communication between native and managed code
    11. Effective C#
    12. Outlook
    13. Other Articles in this Series
    14. References
    15. History

 

–jeroen

Posted in C#, Development, Software Development | Leave a Comment »