Thursday, June 30, 2016

Policy Plus - Category tree construction

Some time ago, I finished writing the ADMX/ADML parsers for Policy Plus. The next thing to do is turn that data into useful hierarchies of objects (like the categories with parent/child relationships). So today, I started filling out the BuildStructures method with category management code. It can now figure out the tree structure of categories after loading. I also corrected the type of the ClientExtension field - it's supposed to be a GUID (or String), not a Boolean.

While testing the new code, I discovered something interesting about the default Windows ADMX files. Several categories defined in inetres.admx have invalid parents. That is, the parent field references a nonexistent category. The real Group Policy Editor seems to make these "orphaned" categories top-level categories when they try to reference categories in other ADMX files, but ignores them when they reference absent categories without a namespace prefix. Policy Plus's current behavior is to always put orphaned categories at the top level, but this will probably change eventually.

Wednesday, June 29, 2016

FMod - Number format consistency

"Gridlock" reported to me via IRC that some Abiathar tools, notably the Tile Property Modifier, always show tile IDs and coordinates in decimal no matter what the ShowInHex settings are. That is indeed a problem, since it makes it difficult to see whether you're looking at the right tile/location. I added a new API function to determine the appropriate display string for a number and have started updating the StandardTools extension to take advantage of it.

Tuesday, June 28, 2016

OBS Surprise: "Reset Size" required after changing source's resolution

While fiddling around with Open Broadcaster Software (a very good free program) for recording a screen and a webcam, I experienced something unusual. After manually adjusting the desired resolution of the webcam to be slightly larger than I had it before, the size of the resulting rectangle got smaller and also moved around a bit. I was very confused. After more fiddling around, I figured out that the Reset Size context menu icon on the source made it take on the correct size.

Monday, June 27, 2016

Bugchecked: In the queues with Ben N

Today I recorded and uploaded the first video of a new series, Bugchecked: In the queues with Ben N. In this series, I review posts on Stack Exchange while commentating, and I have my face on a webcam picture-in-picture too, for extra expression. The purpose of the series is to provide entertainment (to people who are somehow entertained by examinations of post quality?), to help me express and coalesce my personal policies in reviewing, and to help post authors understand what goes on in review.

You can watch the first episode now.

Sunday, June 26, 2016

Disabling writes for a program with Low Integrity

Windows processes each have an "integrity level" in addition to a user token. Even if the user has sufficient access to a particular resource, no process can write to an object at a higher integrity level than itself. Most objects have Medium integrity, so processes at Low integrity can barely write anywhere.

To launch a process with Low integrity, you'll need PsExec:

psexec -l -i cmd.exe

That produces a command prompt running at low integrity, which you can see if you do a whoami /all. If you try writing to normal files/folders or Registry keys, you'll get an access-denied error.

Saturday, June 25, 2016

Runaway string literals

The newest version of Visual Basic .NET allows multiline string literals, so that the resulting string values can contain linebreaks with no messing around with vbCrLf. The downside is that when the closing quote is removed (e.g. while backspacing out a string), the string literal can just go on and on. When that happens, code is temporarily reinterpreted as part of the string, blowing away syntax highlighting, causing errors in the Error List window, and slowing the machine. There does not appear to be a way to turn off multiline string literals or fix the runaway problem. I sincerely hope Microsoft fixes this soon, and I'll keep on the lookout for workarounds.

Friday, June 24, 2016

Web hosting on Amazon S3

I've been looking around for web hosting - just a place to store a few static files accessible under a normal domain I bought - and a friend mentioned Amazon S3. S3 is a highly scalable file storage service with a price that's fully determined by how much data is stored and transferred. Since I'll only use a tiny amount of data, my price is a bit of loose change per year, and the first year is completely free.

I followed the setup instructions for websites, which involved setting S3 nameservers as authoritative for my domain and adding a few entries to my Route 53 (Amazon DNS) dashboard. Once the nameserver change went through, I had a website. Updating it is as simple as uploading some files into the appropriate bucket.

Highly recommended, at least from what I've experienced so far.