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

delphi – Sorting TDictionary by a key of Integer in ascending order – Stack Overflow

Posted by jpluimers on 2019/05/30

Great answer on [WayBackdelphi – Sorting TDictionary by a key of Integer in ascending order – Stack Overflow by J… comes down to this:

var
  LDictionary : TDictionary<Integer, string>;
  LArray : TArray<Integer>;
...
  LArray := LDictionary.Keys.ToArray();
  TArray.Sort<Integer>(LArray);

I was trying the wrong direction (functional approach like LArray := LDictionary.Keys.ToArray.Sort(); ), but the above procedural solution works.

Members used:

–jeroen

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

GExperts Help: Copy component names

Posted by jpluimers on 2019/05/29

I totally forgot this expert existed [WayBackGExperts Help: Copy component names

–jeroen

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

Conference Call Bingo – E Gilliam

Posted by jpluimers on 2019/05/29

Cool: [WayBack] Conference Call Bingo

Via: [WayBack] Conference Call Bingo Origin: https://www.facebook.com/photo.php?fbid=10213521201006095 – Lars Fosdal – Google+

–jeroen

Posted in Development, Software Development | Leave a Comment »

TInterlocked.Exchange for interfaces?

Posted by jpluimers on 2019/05/29

Via [WayBack] TInterlocked.Exchange for interfaces? Since there is no System.SyncObjs.TInterlocked.Exchange overload for interfaces (and the Exchange versio… – Stefan Glienke – Google+

It has made it to this piece in [Archive.issglienke / Spring4D / source / Source / Reactive / Spring.Reactive.pas — Bitbucket:

class function TInterlockedHelper.Exchange<T>(var Target: T;
  const Value: T): T;
begin
  Result := Default(T);
  PPointer(@Result)^ := Exchange(PPointer(@Target)^, PPointer(@Value)^);
  if Assigned(Value) then
    Value._AddRef;
end;

It is similar to the TInterlocked.Exchange methods.

–jeroen

 

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

IDE Fix Pack 5.92 keyboard binding for finding references

Posted by jpluimers on 2019/05/28

Since I keep forgetting this piece of IDE Fix Pack 5.92 released – DelphiFeeds.com

The new version 5.92 now binds

  • Ctrl+Alt+Enter to “Find References” and introduces
  • Shift+Ctrl+Alt+Enter for “Find Local References”.

No shortcut toggling anymore.

–jeroen

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

Clean Code is a team sport! – writeabout.net

Posted by jpluimers on 2019/05/28

Recommended read: [WayBackClean Code is a team sport! – writeabout.net.

The picture is of a developer journey taking years to go from fresh to seasoned ending up at exactly the same code: over time learning the sweet spot of coding.

The story continues correlating that journey to handling technical debt and finding the sweet spot between that and business value.

via:

–jeroen

Twitter

 

 

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

Starting points for JSON unmarshaller, that applies a JSON string to an existing object…

Posted by jpluimers on 2019/05/28

Interesting subject: [WayBack] I am looking for a JSON unmarshaller, that takes the JSON string and apply it to the object (and not take an object and try to apply the JSON to it). E… – Nicholas Ring – Google+

A start by Stefan Glienke: [WayBackJsonDataObjectUnmarshall — Bitbucket

–jeroen

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

When saving on the WayBack machine at web.archive.org/save terminates the connection

Posted by jpluimers on 2019/05/27

When you get the response “web.archive.org unexpectedly closed the connection” without even returning an HTTP code, but:

  • it works in anonymous mode
  • it works with all extensions turned off

then likely there are too many cookies for archive.org or/and web.archive.org: in my case, I had 90 cookies.

Cleaning these cookies out resolved the problem (I used [WayBackAwesome Cookie Manager for this).

Edit 20231230: Awesome Cookie Manager source repository at [Wayback/Archive] Phatsuo/awesome-cookie-manager: Awesome Cookie Manager.

--jeroen

Posted in Chrome, Google, Internet, InternetArchive, Power User, WayBack machine | Leave a Comment »

Some links and notes on ESXi and virtualised NAS systems

Posted by jpluimers on 2019/05/27

For my own memory:

[WayBack] Best Hard Drives for ZFS Server (Updated 2017) | b3n.org

My blog post Best Buy Guides (BBGs) – mux’ blog – Tweakblogs – Tweakers.

ZFS, dedupe and RAM:

ZFS, FreeBSD, ZoL (ZFS on Linux) and SSDs:

OpenSuSE related

Samba/CIFS related

–jeroen

Posted in ESXi6.5, Power User, Virtualization, VMware, VMware ESXi | Leave a Comment »

When your btrfs partition is damaged.

Posted by jpluimers on 2019/05/27

A while ago, I somehow had a damaged btrfs partition that I found out after the virtualisation host without reason decided to reboot.

I’m not sure what caused that (by now the machine has been retired as it was already getting a bit old), but btrfs was panicking shortly after boot, so the VM as is was unusable.

In the end I had to:

  1. Boot from a Tumbleweed Rescue DVD (download Rescue CD – x86_64 from [WayBackopenSUSE:Tumbleweed installation – openSUSE)
  2. Add a fresh backup hard disk in read-write mote
  3. Mount the old one in read-only mode
  4. rsync -avloz over as much as I could
  5. Restore the VM from a backup
  6. Attach the backup hard disk
  7. Diff what I missed (only a few bits in the /etc tree and my home directory for which I hadn’t yet pushed the git repositories).

These didn’t work, but might work for others: [WayBackSDB:BTRFS – openSUSE – How to repair a broken/unmountable btrfs filesystem

–jeroen

Posted in *nix, btrfs, File-Systems, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »