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

Mac OS X: integrating Beyond Compare 4 into SourceTree 2.x

Posted by jpluimers on 2015/12/28

Unlike SourceTree for Windows, SourceTree for Mac still doesn’t automagically detect Beyond Compare even though that has been available for Mac OS X since :  [SRCTREE-2092] Add built-in support for Beyond Compare version 4 – Atlassian JIRA.

Even modifying my ~/.gitconfig didn’t work, but manual configuration did. Here are the steps:

  1. Start the UI version of Beyond Compare
  2. Select the Beyond Compare menu, install the command-line tools
    Read the rest of this entry »

Posted in Apple, Beyond Compare, Development, DVCS - Distributed Version Control, Keyboards and Keyboard Shortcuts, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, OS X 10.10 Yosemite, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Source Code Management, SourceTree | 3 Comments »

Computer network technologies and services/VoIP – Wikibooks, open books for an open world

Posted by jpluimers on 2015/12/25

Nice explanation of unicast, multicast, RTP and much more:

Computer network technologies and services/VoIP – Wikibooks, open books for an open world.

–jeroen

Posted in Communications Development, Development, Internet protocol suite, TCP | Leave a Comment »

Windows applications: Icons and the Shell; names, sizes, etc.

Posted by jpluimers on 2015/12/23

When adding Icons to your Windows applications a few things matter.

Selecting the icon resource

The icon selected by the Windows Shell (for modern Windows versions usually Windows Explorer), is the one with the lowest ID. When there is no icon with an ID, it selects the icon with the lowest name.

Icons in Windows can have both IDs and names. Even though API calls like LoadIcon have an lpIconName parameter, you can convert the ID to a name using MAKEINTRESOURCE.

There is a difference between the format of an ICO file and the icon resource (technically two things: RT_GROUP_ICON resource directory and an RT_ICON resource for each image) contains a list of icon images.

The selection process is on the RT_GROUP_ICON, and then within the group on the ICON itself.

For the RT_GROUP_ICON process, modern Windows versions still use the algorithm used by Windows 95 (not that by Windows NT):

Windows NT simply chooses the first resource listed in the application’s RC script. On the other hand, Windows 95’s algorithm is to choose the alphabetically first named group icon if one exists. If one such group resource does not exist, Windows chooses the icon with the numerically lowest identifier.

For a Delphi application the icon shown must be named MAINICON, since the below source fragment has been in TApplication.Create(…) like forever:

FIcon.Handle := LoadIcon(MainInstance, 'MAINICON');

Which means that if you want the Windows Shell (usually Explorer) to select that one, all other icon resources in your executable must have names that sort after MAINICON.

Selecting the icon within a resource

For the individual icon, the process is more complex. Even the summary is. To summarise the summary to select an icon for the requested size:

  1. Prefer the image closest in size.
  2. When more images of that size are present, match on the best color depth for the display.
  3. When no color depth matches, prefer the image with the greatest color depth not exceeding the color depth of the display.
  4. When all exceed the color depth, prefer the lowest color depth.

For color depth, treat 8 or more bits per pixel as equal. So there is no advantage of including a 16×16 256-color image and a 16×16 16-color image in the same resource — the system will simply choose the first one it encounters. When the display is in 8-bpp mode, the system will choose a 16-color icon over a 256-color icon, and will display all icons using the system default palette.

I’m not completely confident how 32-bit precisely fits in this scheme. If someone knows, please let me know and I’ll include the information.

I usually take 32-bit color images here which are actually True Color 24-bit + alpha channel RGBA images.

What about requested size?

Actually there are a lot of sizes that Windows can request, and there are many articles about it, some of which contradict each other.

From what I assembled, these are the sizes you need to run on Windows XP / Server 2003 and up:

  • 16×16
  • 20×20
  • 24×24
  • 32×32
  • 40×40
  • 48×48
  • 64×64
  • 96×96
  • 128×128
  • 256×256 (for Windows XP / Server 2003: do not compress this size)

I might be wrong, so here are some links:

–jeroen

via:

Posted in .NET, Delphi, Development, Software Development, The Old New Thing, Windows Development | Leave a Comment »

Delphi 10 Seattle version numbers

Posted by jpluimers on 2015/12/22

The ones I know, hopefully they are the only ones as search results are inconclusive:

–jeroen

XE9

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

paping – Cross-platform TCP port testing, emulating the functionality of ping (port ping) – Google Project Hosting

Posted by jpluimers on 2015/12/22

Hopefully someone will move this to Github before Google code goes down: paping – Cross-platform TCP port testing, emulating the functionality of ping (port ping) – Google Project Hosting.

Paping (pronounced pah ping) is a computer network administration utility used to test the reachability of a host on an Internet Protocol (TCP/IP) network and to measure the time it takes to connect to a specified port

–jeroen

via:

Posted in *nix, *nix-tools, Communications Development, Console (command prompt window), Development, Internet protocol suite, Power User, TCP, Windows | 1 Comment »

How to verify app signatures in OS X | MacIssues

Posted by jpluimers on 2015/12/18

Interesting:

For codesign verification:

find /Applications -d 1 -name "*.app" -exec codesign --verify --verbose {} \;

For system policy assessment:

find /Applications -d 1 -name "*.app" -exec spctl --assess --verbose {} \;

–jeroen

Source: How to verify app signatures in OS X | MacIssues

Posted in Apple, bash, Development, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.6 Snow Leopard, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Scripting, Software Development | Leave a Comment »

Some links on DUnit test cases and test suites, XML and XSD

Posted by jpluimers on 2015/12/17

DUnit registration can mix TestSuites and TestCases.

Some links:

–jeroen

 

 

 

 

Posted in Agile, Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development, Unit Testing | Leave a Comment »

DevOps Is Bullshit: Why One Programmer Doesn’t Do It Anymore | jjmojojjmojo: In Effect

Posted by jpluimers on 2015/12/17

Interesting take to which I agree, as DevOps needs to be in your blood and needs to come from bottom up, just like being agile.

Read the full blog post at DevOps Is Bullshit: Why One Programmer Doesn’t Do It Anymore | jjmojojjmojo: In Effect.

A small quote:

… some of the common mistakes:

  • DevOps doesn’t make specialists obsolete.
  • Developers can learn systems and operations, but nothing beats experience.
  • Operations people can learn development too, but again, nothing beats experience.
  • Operations and development have historically be separated for a reason – there are compromises you must make if you integrate the two.
  • Tools and automation are not enough.
  • Developers have to want DevOps. Operations have to want DevOps. At the same time.
  • Using “DevOps” to save money by reducing staff will blow up in your face.
  • You can’t have DevOps and still have separate operations and development teams. Period.

–jeroen

via: DevOps Is Bullshit: Why One Programmer Doesn’t Do It Anymore | jjmojojjmojo: In Effect.

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

c++ – In which order should floats be added to get the most precise result? – Stack Overflow

Posted by jpluimers on 2015/12/16

Interesting:

sorting in ascending order (of magnitude) usually improves things

–jeroen

via c++ – In which order should floats be added to get the most precise result? – Stack Overflow.

Posted in Algorithms, Development, Floating point handling, Software Development | Leave a Comment »

delphi – RAD Studio 2009 Persistent Selection Issue: Bug or Feature? – Stack Overflow

Posted by jpluimers on 2015/12/15

Bug, also in Delphi 2007:

Just hit Insert twice (which changes the text entry mode between Insert and Overwrite and then back) and your text selection will be back to working normally.

Source: delphi – RAD Studio 2009 Persistent Selection Issue: Bug or Feature? – Stack Overflow

–jeroen

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