The Wiert Corner – irregular stream of stuff

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

  • My work

  • My badges

  • Twitter Updates

  • My Flickr Stream




    More Photos
  • Pages

  • All categories

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

    Join 1,315 other followers

Archive for the ‘Development’ Category

For GIT/Mercurial users: SourceTree for Windows 1.6.1 – Now Available! (via: SourceTree Blog)

Posted by Jeroen Pluimers on 2014/08/20

via the SourceTree for Windows 1.6 – Now Available! | SourceTree Blog.

Make sure you download the 1.6.1 version as that is really the latest:

SourceTree 1.6


  • All new file status view
  • Improved diff view
  • New view configurations
  • Cleaner user interface
  • All new welcome wizard

SourceTree 1.6.1


  • SRCTREEWIN-1902: Fix crash bug when trying to create a new repo from hosted repos screen
  • SRCTREEWIN-1915: Fix a rare crash bug which could happen when closing/re-opening a repository
  • SRCTREEWIN-1894: Staging/unstaging will get ‘stuck’ and not refresh the file list if you turn on ‘always display full console output’ when performing these operations. The refreshing now happens regardless of whether that option is turned on or not.
  • SRCTREEWIN-1897: Fix a crash bug when listing Stash repos from hosted repos list.
  • Confirming removing files now shows the file names in a list so you know which files you’re removing
  • SRCTREEWIN-1909: Can now commit files if committing individually even if they’re at the root and not using staging (so either Mercurial, or no staging mode in Git)


via: SourceTree Release Notes.


Posted in Development, DVCS - Distributed Version Control, git, Mercurial/Hg, Software Development, Source Code Management, SourceTree | Leave a Comment »

When deadlocks become livelocks (via: Do deadlocks cause high CPU utilization? – Stack Overflow)

Posted by Jeroen Pluimers on 2014/08/20

Depending on how you organize locks (for instance via waiting on semaphores or mutexes or spinlocks), deadlocks can become livelocks:

Inability to make forward progress because of conflicting spinlocks is usually referred to as ‘livelock’.

Thanks to Martin James for reminding me of that and Danny Thorpe for describing different ways of locking.

Be sure to read on deadlock prevention as well.


via: c++ – Do deadlocks cause high CPU utilization? – Stack Overflow.

Posted in .NET, C++, Delphi, Development, Software Development | Leave a Comment »

Some more notes on ASUS RT-N66U, firmwares, temperatures and versions

Posted by Jeroen Pluimers on 2014/08/20

In the the irregular series of ASUS RT-N66U and TomatoUSB posts:

Execute this script from the Tomato USB interface, or a ssh/telnet shell:

cat /dev/mtd0ro | grep bl_version
nvram get os_version
nvram get clkfreq
wl -i eth1 phy_tempsense | awk '{print $1/2+20;}'
wl -i eth2 phy_tempsense | awk '{print $1/2+20;}'
  • Line 1 gets the CFE bootloader version
    (1.0.2 and lower boot with 32K of NVRAM, 1.0.3 and up with 64K of RAM; some Firmwares work around the 32k limitation)
  • Line 2 gets the Firmware model and version
  • Line 3 gets the CPU speed
  • Line 4 and 5 get the temperature for eth1 (2.4 Ghz) and eth2 (5 Ghz) in Celsius
    It is based on the RMerlinDev (firmware developer) information on temperatures: These are for each radio. Take the returned value, divide by 2, then add 20. Results are in Celcius.
    Next to that knowledge, it uses a few tricks on awk calculation, and first parameter in awk (the second parameter would be the hex value of the temperature code in parenthesis) which is easier than shell calculations.

Based on those, I found a few very useful scripts:


Posted in ASUS RT-N66U, Awk, bash, Development, Internet, Network-and-equipment, Power User, Scripting, Software Development, TomatoUSB | Leave a Comment »

GitHub System Status

Posted by Jeroen Pluimers on 2014/08/19

Any site should have a stat system like this: GitHub System Status.

Posted in Development, DVCS - Distributed Version Control, git, Power User, Software Development, Source Code Management, Subversion/SVN | Leave a Comment »

Delphi and C++ Builder VCL Library Buffer Overflow

Posted by Jeroen Pluimers on 2014/08/19

Since this did not make it to DelphiFeeds yet: I’ve seen the function PaletteFromDIBColorTable in Graphics.pas go back as far at least until Delphi 2006, and references on the web as far back as Delphi 4.

So: this bug is old, but as it is a security one, make sure you patch soon.

For Delphi XE6, download 29913 BMP Buffer Overflow hotfix – Delphi, C++Builder, RAD Studio XE6.

For older Delphi versions, read this piece that was adapted from the EDN article Delphi and C++ Builder VCL Library Buffer Overflow:

For users of prior versions of Delphi and C++Builder: these steps should be followed to modify the VCL source code and add it to your application.

For each application:

  1. Add the modified Edit Vcl.Graphics.pas or Graphics.pas or Borland.Vcl.Graphics.pas to your project
  2. For C++Builder: Under Project | Options | Packages | Runtime Packages, set “Link with runtime packages” to false
  3. Rebuild your application

Once for the native VCL and .NET VCL:

  • Note: Variable names and scoping might be slightly different depending on your product version.
  1. Edit Vcl.Graphics.pas or Graphics.pas or Borland.Vcl.Graphics.pas
  2. Locate the function PaletteFromDIBColorTable.
  3. Add the following code just before the line assigning a value to Pal.palNumEntries when the DIBHandle = 0
    if ColorCount > 256 then 
      InvalidGraphic{$IFNDEF CLR}@{$ENDIF}SInvalidBitmap;;


via Delphi and C++ Builder VCL Library Buffer Overflow.

Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development | Tagged: , , , | 4 Comments »


Get every new post delivered to your Inbox.

Join 1,315 other followers

%d bloggers like this: