Archive | Programming

Git and Hg

Converting Mercurial Repositories to Git on Windows

If you work with text, you need version control. That rule applies regardless of whether you write code or poetry (some might argue that those two are the same, anyway). Ignoring the CVS and SVN dinosaurs two distributed version control systems are being regarded as state of the art: Git and Mercurial. Functionality-wise they are […]

Continue Reading · 11
uberAgent setup

Real-World Example: WiX/MSI Application Installer

Creating an installer that does not suck is hard. The tools available are expensive, inadequate, overly complicated and/or poorly documented (pick any combination). WiX is one of the better choices. It is free and it is used for some Microsoft products. But WiX is just a wrapper around MSI and as such is unnecessarily difficult […]

Continue Reading · 16

DsGetDcName Timeout

Today I was looking for the source of frequent delays when setting permissions from my new application SetACL Studio. I sprinkled the code with timestamped debug statements like these… (more…)

Continue Reading · 0

How to Map Generic Rights to Standard and Specific Rights

There are two equivalent ways trustees can be assigned a specific set of permissions on Windows: via generic rights and via a combination of standard and specific rights. Generic rights are identical for all object types. There are only four of them: GENERIC_READ (0x80000000) GENERIC_WRITE (0x40000000) GENERIC_EXECUTE (0x20000000) GENERIC_ALL (0x10000000) As the name implies, generic […]

Continue Reading · 1

What is the SYNCHRONIZE File Access Right?

When dealing with Windows NTFS file system permissions, one quickly encounters the SYNCHRONIZE access right, the purpose of which may not be obvious. SYNCHRONIZE belongs to the standard access rights, just like DELETE, READ_CONTROL, WRITE_DAC and WRITE_OWNER. Here is the definition of SYNCHRONIZE from MSDN: The SYNCHRONIZE access right is defined within the standard access […]

Continue Reading · 0

EFS Encryption and CopyFile(Ex): Why DIY is Better

Generally I am not the type to recommend re-implementing functionality present in some API. But with the Windows function CopyFile(Ex) there may be no alternative, because of the less than sub-optimal way Windows copies EFS-encrypted files: If the source encryption key can be used on the target (i.e. if the target computer can access the […]

Continue Reading · 0
Radio button group

Radio Buttons in MFC (Visual Studio 2008 / C++)

This is a quick and dirty description of how to use radio buttons in MFC, written because I could not find this information in a single place on the web. In the dialog editor: Create a new group with the group box control and set a meaningful caption Add radio button controls inside the group […]

Continue Reading · 5