Wednesday, April 22, 2015

Why the Soviet Union fell

Lenin, Soviet Union by rlzobreaker is licensed CC BY 2.0.
I've read a fair number of books about the Soviet Union recently. Each book has done a good job of explaining the problems with the Soviet experiment - the brutality that was used to install the system during the October Revolution; Stalin's symptomatic and seemingly random cruelty; the way politics and ideology bled into every single corner of Soviet life, even the sciences, stalling technological progress; the inherent inefficiencies of the command economy, especially as implemented under "Socialism in One Country"; and so on. None of them, however, explained why the Soviet Union collapsed. Sure, the system wasn't as efficient as capitalism, but North Korea and Cuba have both proven that's not enough to prevent a totalitarian "socialist" government from maintaining power. North Korea's mass starvation in the 1990's proved that a major disaster isn't enough to topple a totalitarian government (as if the Holodomor wasn't sufficient to prove this already), so why is Chernobyl considered one of the keys to the collapse of the Soviet Union? Why was Gorbachev so unsuccessful in his attempts to reform the Soviet system? What made the Soviet Union different? What happened?

Halfway through the first chapter of The Russians, I immediately understood.

Pretend you work in a widget factory for a multinational conglomerate. It's a big, sprawling mess of a company, with as many employees as you can imagine and locations all over the world. To keep the company moving in nominally the same direction, several policies and procedures have been crafted and they are strictly enforced. To ensure the company's procedures are followed and losses are minimized, the company utilizes a sophisticated system of intelligence gathering - surveillance cameras wherever possible, paid bonuses to employees that tattle on their coworkers, transfers to unpleasant departments for people that are found guilty of minor transgressions, and termination of employees caught doing anything halfway major.

One of the rules that all divisions of the company must follow is they are not allowed to buy anything from external vendors if it's being made internally - since the company is quite large and makes all sorts of things, this means the company sources most of its supplies internally. From pens to automobiles to produce to machine parts, the company makes near everything for itself, which ensures that its competition never profits from the company; if the company can't make something, it usually tries to find as close to a substitute as it can make internally, if possible, while it tries to find a way to ultimately supply that thing internally in the long run. This even extends to news and entertainment - since the company owns some newspapers, radio stations, and TV stations, only company-owned newspapers, radio programs, and TV shows are allowed on company grounds. Another rule that employees of the company must follow - and failure to abide by this rule will lead to swift termination - is they are expressly forbidden from talking to employees of competing companies, lest they leak "trade secrets". Since the company makes and sells just about anything and everything, that effectively means that employees of the company can only safely socialize and talk among themselves. To further restrict potential leaks, the company strongly discourages employees from even talking among each other, especially to employees from other divisions.

From your perspective, your particular division doesn't seem to be run particularly well. In fact, near as you can tell, it's run unconscionably poorly. There are frequent supply issues - sometimes you end up with the wrong parts, sometimes the quality of the parts is extremely poor, sometimes you just don't end up with the supplies you need at all. Consequently, your division has serious difficulties satisfying the needs of other divisions that rely on your widgets, to say nothing of your company's customers. Though you and your coworkers generally do your best, you each catch yourselves sometimes letting things slip, letting a substandard widget or two through - better they receive a bad widget than no widget at all, right? Besides, the company has strict quotas about what each division is supposed to produce, and the penalties for failing to produce enough widgets - of any quality - are best left unsaid. On top of the supply and production issues, your division also suffers from a steadily ratcheting culture of micromanagement. For example, management determined one day that it took you 38 seconds to walk from the time clock to the widget press; consequently, if you ever take 39 seconds, you are supposed to lose an hour of pay due to "laziness". One of your coworkers was informed that "shock workers" - the best workers from other widget factories - only required a 74-degree deflection from the top of the press lever to the bottom, which was more efficient than pushing the press down as far as possible due to the reduced range of motion and reduced wear and tear on the press; however, when your coworker attempted to apply this advice, he found that his press wouldn't always cut the widget all the way through the metal. Even so, failure to adhere to management's policies and procedures was strictly frowned on; the last thing your coworker needed was for you or one of your coworkers to turn him in for using a 75-degree deflection and collect that informer's bonus while he and his family were transferred to North Dakota.

Despite it all, though, your division muddles through and keeps producing widgets. Believe it or not, you and your coworkers take pride in your work. Sure, your division may be one of the most poorly run divisions in the company, but you each get it done when it matters and still find a way to deliver. In your own, imperfect way, you and your division are helping to make the company you work for successful. Fellow coworkers around the world - around the world! - count on you and your widgets, a fact that's brought up during every employee meeting, in every internal newsletter, and sometimes even in the company news broadcasts. Not everyone can say their work is relied upon across the world.

To make sure nobody in the world is let down by your poorly run division, you and your coworkers bend the rules a bit. In exchange for you re-pressing some of your coworker's widgets, he'll sometimes clock you in while you're already walking to your press - this way you don't get in trouble for walking too slowly between the time clock and the press and he doesn't get in trouble for improperly pressing his widgets. You have similar arrangements with other coworkers to work around some of the other rules put into place by management, and vice-versa; though this means you could inform on half of the plant if you so desired, they could also inform on you in a heartbeat. None of you really want to do that, though - if the rules weren't bent, the widgets wouldn't get made and none of you would get paid. Sometimes, you even bend the rules a bit and talk to people outside the company - none of them make widgets, so it's probably not competing, right? - or even sneak in some tools and supplies from outside of the company when nobody's looking. Sure, maybe one of the conglomerate's other divisions is losing business because of this, but some of the tools and supplies you're bringing in are really good - way better than anything you can find internally, assuming you can even find it in the first place - and, after all, your job is to produce widgets, right? As long as your division meets its widget quote, it's surely all good.

Again, the alternative is best left unsaid.

One day you wake up and one of your friends from outside the company is calling you. You answer and they immediately ask if you're okay, if you're all right, if your coworkers are all right. "Of course we are," you reply, "why wouldn't we be?" "There was a terrible accident at one of your factories - it's in all the news!", they exclaim. "I'll look into it," you declare, then get ready for work. Once you get to the factory, everything appears normal. Your coworkers are still making widgets, parts and supplies (such as they are) are still coming in like normal. There are no announcements over the intercom and the internal company newsletter mentions nothing out of the ordinary. Surely there was no disaster, you decide, and tell your friend as much once you get home.

A week later, you spot a terse notice in the company newsletter - "Sprockets from the Tennessee Valley factory will be unavailable until further notice." That's it - no explanation, no further details. Even so, that sole sentence is rather strange. You can't think of a single time that the company shut down an entire supplier without some sort of planning, some sort of announcement beforehand. This is very peculiar.

A week after that, a letter from the new CEO thanks the Tennessee Valley factory workers for their "sacrifice" and also thanks the company's internal disaster response team for their "service to the factory workers". "Remaining factory workers", the CEO further explains, "will be transferred to other factories."

Two weeks later, a couple of new factory workers arrive. They look like they haven't slept in ages. They claim they're from "Kentucky", but neither of them say much else. They barely talk to each other and never talk to anyone else. At first, you and your coworkers decide they must be informants - these two aren't willing to "scratch your backs", nor do they seem particularly interested in letting anyone else "scratch theirs". After about a month or so, though, none of you notice any odd firings or transfers, so each of you decide these two just must be the quiet type and leave them alone.

A year passes.

You and your coworkers are really starting to like the new CEO. He's much younger than any previous CEO you can remember, and the company news all show him visiting and conversing with other division workers - really conversing with them, not just lecturing at them or letting them parrot company-sourced motivational phrases. Your father, who also worked for the company when he was your age, mentioned there being a CEO like this one when he was your age, but "that CEO didn't last long". You hope this new CEO lasts a while.

Recently, the new CEO announced two new changes to the rules. First, he announced, the company was going to pursue a policy of "Openness" - though employees were still forbidden from talking to employees of competing firms, they were now expressly encouraged to talk to each other, even if they were in separate divisions. Next, he announced the company was going to pursue a policy of "Restructuring" - it was no longer forbidden for company divisions to purchase goods from competing companies.

Finally!, you and your coworkers thought to yourselves. Now you can get supplies and parts from anywhere - no more waiting on unreliable internal suppliers of dubious quality. Surely you'll be producing your quota of widgets in no time. However, you and your coworkers quickly discover that you actually can't - there's no money. It was one thing sneaking in the occasional used tool or scrap when times were tight - none of your competitors minded that - but it turns out it's something else entirely when you want a regular supply of something at a consistent quality. In fact, now that your division is a potential customer, your competitors are even keeping a closer eye on their leftovers.

Meanwhile, as you and your coworkers grow increasingly confident in talking to each other - really talking to each other - about work, about life, and even talking to people in other divisions about these things, you begin to realize that your division isn't particularly poorly run - all of the company's divisions are poorly run. Every single coworker you talk to from every other division shares with you the same stories you know so well - of failed supply lines, lousy quality, and endemic micromanagement. Near as any of you can tell, none of you have made anything bought by anyone other than another company division; the company swears it has billions upon billions in sales, but none of your coworkers are making enough widgets or anything else to meet internal demand, much less enough to sell to the public. This, you suspect, explains why your division has no money to buy anything.

At the same time, you also discover that several other divisions also had some silent transfers, just like the two guys that showed up at your factory a year ago. Some of them, it turns out, are actually willing to talk about what happened now, and the stories they tell leave you awestruck. They describe, independent of one another and with near-total fidelity between each of them, a horrific cataclysm, one that killed several of their coworkers and led to entire cities being evacuated. The pollution from the cataclysm destroyed nearby forests and rendered much of the surrounding countryside uninhabitable. The kicker? The factory is still open. Despite the disaster, despite the devastation, the company still insists that factory workers show up at the remains of the factory each day and keep the lines that weren't destroyed operational. You can't believe it - surely, after a disaster like that, they would shut down such an unsafe factory, or spend some time rebuilding it so such a disaster would never occur again, or... or something.

If they won't shut that factory down, if they won't make that one safe after something like that, how do you and your coworkers know that your factory is safe?

You and your coworkers decide it's time for action. You collectively decide to do something unprecedented and talk to your manager. Understand, this sort of thing is never done - everybody fears management, the threat of transfer, the threat of termination far too much to ordinarily consider something like this - but you and your coworkers feel your lives are on the line. Much to your shock and amazement, when you share your concerns with your manager, the manager actually agrees with you and your coworkers. In fact, the manager says something downright amazing:

"I'm not showing up here again until they get this place fixed up, and I don't think any of you should, either."

Then, even more amazingly, the manager left.

At first, you and your coworkers are at a loss. Do you keep working? Do you go home? Something like this has never happened before - a manager has never, ever walked off the floor like that. On the other hand, the manager did tell all of you to go home... right? You and your coworkers talk among yourselves for a bit, trying to sort out what to do next. Finally, after a while, one of your coworkers announces that, "screw it", they're going home. Then, a little while later, another one makes the same announcement and leaves. Then another. Then another. Before long, it's clear to the rest of you that there won't be enough workers around to run the factory, so all of you might as well just head home.

What you don't realize is that, while this is going on in your widget factory, the same conversations are happening in every other division in the company, and many of them are making the same decision yours did. Before long, none of the divisions are able to work - since your factory isn't making widgets anymore, any division that relied on your widgets has to shut down, which causes other factories and offices down the line to shut down as they lose their supplies of whatever divisions the widgets were supplying, and so on. Just like that, the entire company collapses, one division at a time like a row of dominoes, first slowly, then really, really quickly as each small failure in the company cascades into progressively larger and larger ones. It doesn't take any time at all before, one day, you wake up and read in the newspaper that the company you work for - the company you worked for - is now bankrupt and liquidating its assets.

**********

That, more or less, is what happened to the Soviet Union. It might - might - have been able to survive Chernobyl if a hard-line Stalinist was at the helm and carefully controlled information about the disaster, or at least left everyone so fearful about the consequences of speaking up that they'd continue to work anyway. It might - might - have survived (or even thrived!) after Glasnost and Perestroika if Chernobyl didn't prove that the people in charge of the USSR had been all too willing for far too long to sacrifice everything - people, the countryside, everything - for the sake of the system as it was written on paper. It might - might - have survived losing in Afghanistan, might have survived the oil glut of the 1980's, might have survived the effort required to keep the increasingly dysfunctional satellite states in the Warsaw Pact economically viable, might have endured the Soviet Union's increasingly expensive adventurism in Africa. But the Soviet Union couldn't survive all of these things - not with a polity that, by the 1970's, the time period The Russians describes, was already doing everything within its power to work around the system to meet their needs. Once it became clear, crystal clear, that the system didn't mean well, that the system simply didn't work, it didn't take long before everyone just stopped pretending to live under its rules anymore.

And that was that. That was the end.

In short, by the 1970's, the communist experiment, at least in the Soviet Union, was already done. Everybody had been working around it for generations by that point. They tolerated working around the system because they thought that, well, maybe it's kind of working - who knows? There was a time, especially in the 1950's and 1960's, when it really did look like it was working, when it really did look like it might catch up to the capitalist countries in the West. There were Soviets flying to space, advanced Soviet military hardware going toe-to-toe against the West in Vietnam and Africa, even the standard of living was slowly but steadily improving. But, once the Soviets started comparing notes with each other, once the Soviets started comparing notes with what was really going on outside the Soviet Union, and once the Soviets came to grips with their past - not all of it, not even close to all of it, but enough of it - they realized that enough was enough.

Will that happen here some day? Why didn't it happen in Cuba or North Korea? What happened in China? These are good questions, but they will have to wait for another day.

Wednesday, April 15, 2015

Remotely Rearming Microsoft Office 2010/2013

Tesla Robot Dance by Steve Jurvetson is licenses CC BY 2.0.
When it comes to work, I live and die by the following motto:
If it's worth doing twice, it's worth doing automatically.
With that motto in mind, I ran into an issue. When setting up our computer lab image, I forgot to rearm the source image's Microsoft Office installations - this caused all of our lab PCs to share the same Office activation ID, which in turn led our KMS server to attempt to activate them as if they were all the same computer. Consequently, within a week, I faced some rather confused coworkers who were wondering why Microsoft Office was telling them that it wasn't properly licensed. Meanwhile, whenever I fired up VAMT to perform a volume activation via KMS, each of the client PCs reported the following error message:
0xC004F038 The software Licensing Service reported that the computer could not be activated. The count reported by your Key Management System (KMS) is insufficient. Please contact your system administrator.
When I checked the activation count on our KMS server for Microsoft Office (cscript slmgr.vbs /dlv all), I noticed that the current count was 1 - since we definitely have more than one computer in our computer lab, something clearly wasn't right. This led to a bit of Google sleuthing, which revealed articles that addressed this very issue for Microsoft Office 2010 and Microsoft Office 2013. Trouble was, I was in no position to re-image all of our computer labs, nor was I in a mood to walk up to an innumerable number of PCs and manually run a script, nor was I in a mood to reboot every single computer in the building.

Luckily, I didn't have to. Thanks to psexec, a rather handy part of the Sysinternals Suite, I was able to modify the script for remote execution:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET _OSPPreArmPath="C:\Program Files (x86)\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPREARM.EXE"
SET _OSPP10Path="C:\Program Files (x86)\Microsoft Office\Office14\ospp.vbs"
SET _OSPP13Path="C:\Program Files (x86)\Microsoft Office\Office15\ospp.vbs"

FOR /F "tokens=2 delims=,= usebackq" %%G IN (`dsquery computer ou^=Your PC OU^,dc^=YourInternalDomain^,dc^=YourInternalDomainSuffix -limit 0`) DO (
        SET _Target=^\^\%%G
        ECHO:Rearming Office...
        PSEXEC !_Target! %_OSPPreArmPath%
        PSEXEC !_Target! cscript.exe /nologo %_OSPP10Path% /act
        PSEXEC !_Target! cscript.exe /nologo %_OSPP13Path% /act
        PSEXEC !_Target! reg add "HKLM\Software\Microsoft\Office\14.0\Common\OSPPREARM" /f
        PSEXEC !_Target! reg add "HKLM\Software\Microsoft\Office\15.0\Common\OSPPREARM" /f
)


Some caveats:
  • This assumes that you're using a 32-bit installation of Microsoft Office on your PCs, which, unless you're dealing with really big Excel files or something, you probably should be.
  • It assumes that all of your PCs are in the same OU, or at least are all nested inside the same OU. Note that you can run this on a parent OU and it'll work on all PCs in any child OUs.
  • Make sure to fill in YourInternalDomain and YourInternalDomainSuffix with information appropriate for your environment.
  • You'll need to run this script in an administrative command prompt from a directory that contains psexec - or, alternatively, you'll need to copy psexec to some place previously listed in your PATH, or add the location of psexec to your PATH.
  • All of the affected computers will need to be on.
  • I personally found that, even after running this script, it wasn't a bad idea to double-check licensing information in VAMT and reactivate any PCs that were Out of Grace. I will note, though, that the KMS server actually did hand out licenses successfully to those PCs after running this script.
If you need to run the script on a particular computer:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET _OSPPreArmPath="C:\Program Files (x86)\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPREARM.EXE"
SET _OSPP10Path="C:\Program Files (x86)\Microsoft Office\Office14\ospp.vbs"
SET _OSPP13Path="C:\Program Files (x86)\Microsoft Office\Office15\ospp.vbs"

SET _Target=^\^\%1
ECHO:Rearming Office...
PSEXEC %_Target% %_OSPPreArmPath%
PSEXEC %_Target% cscript.exe /nologo %_OSPP10Path% /act
PSEXEC %_Target% cscript.exe /nologo %_OSPP13Path% /act
PSEXEC %_Target% reg add "HKLM\Software\Microsoft\Office\14.0\Common\OSPPREARM" /f
PSEXEC %_Target% reg add "HKLM\Software\Microsoft\Office\15.0\Common\OSPPREARM" /f


Then just save the script and call it with scriptname.cmd computername (e.g. reactivateoffice.cmd LABPC-1). The same caveats as above more or less apply.

Thursday, April 9, 2015

In defense of small-l libertarianism

Two porcupines by Denali National Park and Reserve is licensed under CC BY 2.0.
My name is David Colborne, and I'm a small-l libertarian.

Having been active in libertarian circles for a number of years, I've had several people ask me why I'm not a full-throated anarchist. Don't I think the initiation of force is evil? Don't I think government is inherently coercive? Why settle for smaller government, for minimal government, when I should clearly be advocating for no government as a matter of philosophical principle? My short answer has usually been, "Perhaps, but I'm not really sure that would work". My longer answer has been to throw such people at Scott Siskind's Non-Libertarian FAQ and then try to go through it point-by-point, but even that felt like it was dancing around the core issue that really prevents me from embracing Full Metal Anarcho-Capitalism.

Then, while reading Meaningness' Systems of meaning all in flames, I came across this passage:
Any serious system has a network of justifications that answer all “why” questions—not perfectly, but well enough for most people most of the time. So it ought to work.
That's when it hit me - "Big L" Libertarianism, the kind of Libertarianism you see presented from the Ludwig von Mises Institute, the kind you sometimes see from the Center for a Stateless Society, the kind you hear argued about at Libertarian conventions where people throw Murray Rothbard quotes at one another, is a system. Oh, sure, it's a heavily decentralized one (in theory), but it's still definitely a system.

Don't believe me? Ask it questions.

Okay, will there be law in an Anarcho-Capitalist society? Sure - there will be competing forms of law that individuals can choose from. Will there still be a police system? Absolutely - there will be several, in fact. But what about the roads? And so on. How are these questions answered? The same way any system answers questions - it makes certain base assumptions:
  1. The initiation of physical force against persons or property, the threat of such, or fraud upon persons or property, is evil.
  2. Since government requires physical force to enforce its edicts, it is therefore, by nature, evil.
  3. Even if government didn't require physical force to enforce its edicts, it suffers from the knowledge problem - its information is incomplete - so it must, by its very nature, also be incompetent. 
  4. Therefore, all optimal solutions to all political problems must therefore be small, decentralized, self-governing voluntary organizations, i.e. a stateless society, with all services provided via a free market of exchange.
Then, using these assumptions, it solves for X. Worried about militaries? If they exist, they should purely be defensive in nature (see point 1), they should be voluntarily staffed (1, 4), and they should be voluntarily paid for (1, 4). How will this pay for nuclear weapons? It won't - nuclear weapons are inherently immoral due to the collateral damage incurred by detonating one (1). Okay, what about a social safety net? Easy - use private charity (4). Anything else, such as income redistribution, would violate all four tenets above, and probably be more harmful to boot since it's impossible for the anyone implementing a forced income redistribution scheme to know how much income needs to be transferred to poor people to meet their particular needs.

See? It's a system. It has rules. You can ask those rules questions and they'll answer them. It ought to work.

And that's my problem.

Simply put, I don't believe in systems, even ones based on ideological assumptions I happen to share. Even a system like Anarcho-Capitalism, one that is ostensibly decentralized, still requires everyone to play by the rules. Everyone has to believe that, even if 99 out of 100 people in a neighborhood think it's a really good idea to put up sandbags next to their river right before it floods, they are not allowed to use physical force to secure "consent" from the lone straggler. Those 99 people further must believe that "trespassing" under those circumstances is "physical force". Philosophically, if it's really a problem, they can just install sandbags around the property line of the lone straggler and let what may come - it may not be quite as expedient, but it's morally right, and that's what matters, isn't it?

Perhaps, but good luck convincing enough people for the system to work.

Don't get me wrong, I think it's a wonderful idea. I'm sure there are plenty of arguments about why this system will work, why this system is morally right and good, why this system will lead to more happiness, health, and so forth. I'm sure they're all fascinating, and logical, too. None of that matters. There will be failures - perhaps warlords, perhaps violent feuds between competing companies, perhaps something totally unanticipated. Either way, it won't matter - eventually, people will tire of the problems of this system and replace it with something else, one that fixes these problems (and inevitably introduces new ones). This is, in my opinion, the lifecycle of all systems.

So what's the alternative?

There isn't one. Well, more accurately, there are several of them - you could probably paint me comfortably in a corner somewhere between political existentialism and nihilism and probably get "close enough for government work". My personal belief is that the philosophies behind Anarcho-Capitalism are arguably the most morally sound, that they make an excellent framework to consider differing political choices against, but that, as the old saw goes, "no plan survives contact with the enemy". When in doubt, we should try policies and prescriptions that move us in a Libertarian, potentially Anarcho-Capitalist direction, but we should also be willing to stop if we're not getting the desired results and try policies and prescriptions from other frameworks if they get us closer to the desired results than we were getting using the Libertarian framework.

Take defense, for example.

Any defense plan that calls on me to accept that, while defending my apartment, I may lose the lives of at least one member of my family is not what I would call an ideal defense plan. Similarly, any defense plan that requires me and my neighbors to suffer through about a decade or so of brutal occupation before we finally wear down our oppressors is also not what I, or any of my fellow voting neighbors, would call an ideal defense plan. Instead, we're probably going to collectively decide, with near total unanimity, that we should do everything possible to ensure that no fighting happens in our backyards, even if that potentially means periodically invading or destroying the backyards of those sketchy people across the street. Because of this, neither I nor my neighbors will ever voluntarily choose a strictly Non-Aggression Principle compliant defense structure if an alternative is available - we're not going to wait for others to invade our neighborhoods, in other words, before defending them. Not if we have the option to make those others defend their neighborhoods first.

Perhaps if we're feeling really principled, we might justify this on the grounds that, well, the Non-Aggression Principle also prohibits threats of violence, and, well, those people over there look awfully threatening...

Ah, but wait! - you're thinking to yourself - what if the other neighborhood makes the same decision? Well, congratulations - you just demonstrated that, even in a presumably stateless society, war will still happen. In fact, since individual neighborhoods will have far less effective methods of deterrence than your average nuclear arsenal or aggressively funded military-industrial complex, there's a pretty good chance that wars will be more common in a stateless society than they are now, even if they might in aggregate be considerably less destructive and shorter than the "total wars" of the 20th century - what's stopping either neighborhood from misjudging their opposing neighborhood's strengths or intentions? Consequently, if we really want a more peaceful, liberty-friendly environment, one in which people are free to do what they will without worrying incessantly about whether their paranoid neighbors from across the street might feel threatened and react accordingly, we shouldn't necessarily rule out a society in which one particular organization has a monopoly on violence - preferably an organization that all of us, including the paranoid neighbors, have some limited control individually but near-total control in the aggregate. Granted, history has shown issues with this approach as well, but it still seems to beat seasonal raids whenever someone's low on salt or bacon. Besides, whenever there are organizations competing for the right to commit violence for citizens in an area, the first thing everyone in the area wants is for the competition to stop, preferably before the competing organizations kill and maim everyone. Then again, small, local civil wars usually don't last for long periods of time or involve genocide like larger state-run conflicts, except when they do, so there's that.

Perhaps I'm wrong about defense, though. Maybe Scott's wrong about fish, despite further evidence to the contrary. Maybe the 19th century was wrong about private police forces and private scrip. Maybe if we re-privatize everything and get government out of the way once more this time will be different. It's possible - it's not the 19th century anymore, after all, and a lot of our beliefs, customs and technology have evolved dramatically since then. That counts for quite a bit, actually - it's a little harder to keep a "company store" going when Amazon's always around the corner, and it's a little harder to try to drum up business for your private security agency when everyone can record everybody. Maybe this time will be different. But, if it's not, if our attempts at increasing liberty result in, paradoxically enough, less liberty for most people, we need to retain the philosophical flexibility required to change tack and not confuse the path with the destination.

That's why I'm a small-l libertarian. Maybe you are too?

Friday, April 3, 2015

10 Best Places in Reno to Play PAC-MAN in Google Maps

This year's April Fool's Day "prank" from Google - a long and storied tradition - was adding PAC-MAN to Google Maps, which, of course, inevitably led to several articles like Wired's The Top 15 Spots To Play PAC-MAN In Google Maps. Of course, all of these lists focus on trendy, hip locations, like New York, San Francisco, Boston, or other trendy, hip locations that house online journalists or that online journalists aspire to live in, which is a shame - there are plenty of great places to play PAC-MAN that don't involve places with $40 parking.

With that in mind, here are the ten best places I could find in Reno (okay, "Reno/Sparks and other nearby areas"), in alphabetical order:

Arrowcreek


I honestly expected more from Arrowcreek, along with other developments of its type. I figured the winding paths would make for some interesting PAC-MAN mazes; however, it turns out that Google's implementation of the game strongly prefers dense, packed neighborhoods compared to sprawling, spread out ones. Even so, Arrowcreek made for a few fun rounds - East Desert Canyon Drive makes for an excellent escape from the ghosts based on High Vista and Indian Ridge.

It gets better from here, though.

California Ave.


Now we're talking. The triangle where Liberty, Arlington and California meet was an absolute hellscape of frantic maneuvering and button mashing. Meanwhile, the old Southwest streets led to some rather interesting escapes.

Caughlin Parkway


Though most of the newer subdivisions didn't lend themselves to effective PAC-MANing due to their relative lack of density, the shopping area around Caughlin Parkway lent itself nicely, especially when McCarran Boulevard was included. Thankfully, ghosts can't change lanes - less thankfully, neither can you if you have ghosts coming at you from both sides of McCarran.

The Legends at Sparks


This was actually the first place I played PAC-MAN on, in no small part because of the roundabouts and because I drive by the place every time I go to work. Between Sparks Boulevard's three lanes on the right, the various roundabouts and exits, and the random little blind corners by the big box retail stores (good luck cleanly navigating near Target), you're in for quite the ride.

Mountain View Cemetery


The fact that Google made it possible for me to run away from ghosts as Pac-Man in a cemetery tickled me to no end. That Mountain View Cemetery actually makes a surprisingly decent PAC-MAN maze was icing on the cake. Be careful, though - all northbound lanes lead to the entrance to the cemetery on the right.

Pyramid & Victorian, Sparks


PAC-MAN really prefers older, denser neighborhoods, so I thought to myself, why not try a game on the oldest, densest neighborhood in Sparks? The results, like Sparks itself, were quite straightforward.

Stead & Silver Lake


The Sierra Shadows Mobile Home Park - the squarish area that the ghosts spawn in on the left - drew my eye, and I'm glad it did. It serves as a nice and dangerous counterpoint to the otherwise sprawling, meandering streets of the newer housing developments in Stead on the right.

University of Nevada, Reno


I don't think it would be an exaggeration to declare it a criminal offense to do something like this without including UNR somehow. I was rather surprised with how detailed Google Maps decided to make the maze out of UNR's footpaths - you can not only clearly see Lawlor (the round circle at the top), but you can also see the better part of UNR's parking and street system.

Verdi


Ah, Verdi... small, simple, straightforward, green. Much like the actual town itself, come to think of it.

Wingfield Park


Most of downtown Reno honestly doesn't map up very well due to the larger casinos, but, the older, tighter area by the river turned out nicely. Have fun navigating around the Truckee.

So, there you have it - the ten best places I could find to play PAC-MAN in or near Reno. If you, like me, are watching the progress bar move listlessly and need to kill some time, you could certainly do worse things than trying to find ten better ones.

Wednesday, March 25, 2015

Government in action - a parable

red tape by Eugene Peretz is licensed under CC BY-SA 2.0.
All characters appearing in this work are fiction. Any resemblance to real persons, living or dead, is purely farcical.

Once upon a time, there was a government worker. She was a good, conscientious, publicly minded individual of high morals, higher standards, and impeccably professional decorum and bearing. Her job was to prepare a report for the State, a job which she had performed without complaint for over two decades, which, according to a state law that was drafted in the 19th century, was to be mailed to the State Capitol about a half hour away every quarter for review and submission. This report was a fairly large, heavy document, totaling at least a hundred pages, and was consequently not particularly cheap to send via post.

One day, a politician was searching around for examples of waste and fraud. He noticed that this report had ostensibly been generated by the same person for over two decades, but he didn't believe it. Surely, he thought to himself, this lazy public servant had found a way to delegate it to one of her coworkers while she sipped some tea and added public funds to her overly fat pension plan! Clearly, he thought to himself, what this public servant needed was greater transparency. So, he drafted a piece of legislation, which was approved by like-minded politicians, that required our government worker to drive the report to the State Capitol herself so that the politicians in the Capitol could ask the government worker questions and confirm that she did, indeed, write the report in question.

The government worker was annoyed, but she had served in public service long enough to know not to take the whims of politicians seriously. She performed her duty faithfully - every quarter, she drafted the report, got into her car, drove to the State Capitol, handed it to an administrator that would politely nod and ask a few perfunctory questions about its contents, then she would drive back to the office. Being a good, conscientious, publicly minded individual of high morals and higher standards, she faithfully recorded her mileage and her time, all of which were spent performing State business, and submitted them for reimbursement every quarter, just like she was supposed to.

One day, another politician was searching around for examples of waste and fraud. He noticed that the cost of submitting this particular report had increased dramatically - what used to cost only $5 in postage every quarter suddenly jumped to $30 in mileage reimbursements and an hour and a half of experienced public servant labor! This politician was no fool - there was no way this government worker was consuming $30 in gas driving to the State Capitol, which was about a half hour away, and back. Furthermore, why was it taking this worker an hour and a half to drive to the Capitol, drop off the report, and then return? He knew from experience it only took a half hour to get to the state worker's office from the Capitol - multiply that time by two to cover both legs of the trip and it should only take an hour. So, he drafted a piece of legislation, which was approved by like-minded politicians, that required our government worker to use a state-owned car - this would save money since state mileage would be reimbursed at cost, not IRS reimbursement rates - and required the government worker to submit the report and return back to her office in an hour or less.

The government worker was annoyed, but she had served in public service long enough to know not to take the whims of politicians seriously. She did, however, have a problem - her office did not have a state-owned car issued to it. So, she submitted a requisition for a new car, using the newly-passed piece of legislation as justification, which was summarily approved. In order to meet her hour-long window, she also started to take some liberties with the speed limit when driving to the Capitol to submit her report - this didn't sit well with her high morals, higher standards, and impeccably professional decorum and bearing, but, if pressed, she felt she could explain to her fellow state employees that, since the law demanded she drive fast enough to submit the report, answer any questions asked, and return in an hour or less, she must therefore drive fast enough to accommodate that legislative requirement.

One day, yet another politician was searching around for examples of waste and fraud. He noticed that the cost of submitting this particular report had increased dramatically - what used to only cost $30 in mileage reimbursements and an hour and a half of experienced public servant labor every quarter suddenly cost over $20,000 thanks to a recently requisitioned new car and sundry maintenance expenses! Furthermore, he recently received complaints from his constituents about how state employees in state-owned cars weren't respecting the rules of the road and were passing them like they were standing still. This, the politician decided, simply could not stand. So, he drafted a piece of legislation, which was approved by like-minded politicians, that required government workers to adhere to the speed limit when driving state-owned cars and required state workers to drive the same state car for longer periods of time so the state would buy fewer new cars.

The government worker was annoyed, but she had served in public service long enough to know not to take the whims of politicians seriously. She did, however, have a problem - it was physically impossible for her to drive to the Capitol, submit the report, field any questions asked, and drive back in an hour or less while adhering to the speed limit. She thought about the problem for a bit, rereading the offending piles of legislation that circumscribed how she must discharge her duties, and then made some phone calls. The law required three things - for her to use a state-owned car, to submit the report and return to her office in an hour or less, and to adhere to the speed limit - but at no point did it say where she was to drive to. So, she drove to a nearby helicopter pad, chartered a flight to the pad next to the Capitol, and made it with time to spare. She couldn't think of very many public servants with enough creativity, drive, and willingness to embrace this sort of out-of-the-box thinking to serve the demands of the public.

One day, yet another politician was searching around for examples of waste and fraud. He noticed that the cost of submitting this particular report had increased dramatically - what used to only cost $20,000 in car purchasing and maintenance suddenly cost tens of thousands of dollars each quarter for private helicopter rides of all things! He simply couldn't believe it. Clearly these public servants were not getting the message - belts needed to be tightened and this sort of wanton extravagance had to be nipped in the bud. So, he drafted a piece of legislation, which was approved by like-minded politicians, that forbade government workers from chartering personal helicopter flights for official business.

The government worker was annoyed, but she had served in public service long enough to know not to take the whims of politicians seriously. She did, however, have a problem - it was still physically impossible for her to submit this report by car, the airport took too long, and the helicopter was the only thing close enough and fast enough to get her to the Capitol within her legislatively mandated hour long window. Very well, she thought to herself - she knew what she needed to do. Within a quarter, she secured a helicopter pilot's license - the costs of which she billed to the State - requisitioned a helicopter, and even requisitioned a helicopter pad for her office, which she justified via her new legislatively mandated requirements. To her mild amazement, her requisitions were approved; the measures she was taking were, after all, the only way she could possibly perform her job according to the requirements set forth by statute. Thus, she proceeded to fly a brand new, state owned helicopter from her office to the Capitol, report in hand, each and every quarter.

One day, yet another politician was searching around for examples of waste and fraud. He noticed that the cost of submitting this particular report had increased dramatically - what used to only cost tens of thousands of dollars each quarter for a chartered helicopter suddenly cost tens of millions of dollars for helicopter flying lessons, a brand new helicopter, and associated maintenance personnel and parts! This wasn't just out of hand, it must have been downright criminal! - and all of this just to submit some stupid report every quarter. So, he drafted a piece of legislation, which was approved by like-minded politicians, that eliminated the report and those responsible for generating it from the books.

The government worker was no longer annoyed - she was unemployed - but not for long. Thanks to her new helicopter license and flying experience, she found work flying chartered helicopters for well-heeled clients. The politicians that put her out of a job were all reelected owing to their ability to slash waste and fraud - especially the last one, which save taxpayers tens of millions of dollars!

And that's the story of how the government saved itself $5 in postage each quarter.

Monday, March 23, 2015

Libertarians don't hate government workers - but conservatives do

This is what a union looks like (iii) by George Kelly is licensed under CC BY 2.0.
An article in the Reno Gazette-Journal covered how the Reno City Council has decided to "take a position of active neutrality" on collective bargaining changes being proposed during this year's legislative session:
Republican lawmakers, fresh off taking the majority in the Nevada Legislature for the first time in decades, are pursuing sweeping changes to the state's collective bargaining law, which sets the ground rules for how local governments wrangle with their public employee unions over salaries and benefits. 
If successful, the changes would shift power to local government managers. They also could take public employee unions out at their financial knees. 
[...] 
The old council also had an aggressive legislative agenda geared toward convincing state lawmakers to give city management "greater authority" in labor negotiations and more control over the city's pocketbook. 
But in one of its first political moves this year, the new council gutted the collective bargaining agenda that city lobbyists had planned to take to Carson City this year, replacing it with a deceivingly simple one-line position statement: 
"The City of Reno will take a position of active neutrality" on collective bargaining changes to "maintain and place value on the relations the city has with its employees."
Most of the proposals floating in the Legislature are ones that I can happily get behind - getting rid of seniority-based promotions and personnel retention, expand options for laying off public employees (Nevada law currently only allows local governments to lay off public employees due to lack of work or lack of money - anything else immediately triggers mandatory bargaining with the representing public sector union), eliminating mandatory raises, increasing transparency during contract negotiations (though I think this idea might backfire - more on that in a bit), letting cities pocket a larger cushion when negotiating (though I think this idea might also backfire), and prohibiting local governments from collecting union dues are all measures that bring public sector employment in line with their private counterparts. Then, in the Legislative Council's Digest of AB182, I read this:
Section 1 of this bill also bars a local government employer from providing paid leave or paying any compensation or monetary benefits to an employee for time spent by the employee in performing duties or providing services to an employee organization. 
***

Several years back, I worked for what was, more or less, a family-run company in a small town. Most of my coworkers were from this town - they lived close to each other, their children went to the same schools, they socialized together after work, and so on. I, however, commuted in from out of town - it was about an hour drive each way, give or take, depending on weather and traffic. This wasn't a huge deal for me - I grew up in suburban Los Angeles, so I was pretty much raised on the idea that driving long distances to get to work wasn't beyond the pale, and the job paid considerably more than the job that preceded it and had better benefits to boot.

One night, at the tail end of my work day, I overheard my boss complaining about how she found out from a friend that one of my coworkers had used her vacation time to go to a Mary Kay conference so she could start making a little extra money on the side. This upset my boss greatly - how dare this employee betray the company this way? I was confused by this reaction, so I confronted my boss about it - why was it my boss' business what my coworker did on her own time, as long as she wasn't directly competing against my boss? My boss replied that it showed disloyalty - if my coworker still had profitable labor to provide after her shift was complete, she should have approached my boss about performing additional work that could have further profited the company. After a bit more back and forth, this led me to say something that, in retrospect, was weapons-grade immature and pathologically stupid, especially in early 2009:
"I am so glad I don't live in this town. As far as you know, I could be going home every night, moonlighting on the side, banging prostitutes, and snorting lines of blow, and you would never find out about it."
That I wasn't immediately fired after that outburst can be safely attributed to the following:
  1. My boss and I had worked together long enough at that point where she knew I was mostly joking to make a point.
  2. My job is the sort of job that's somewhat challenging to hire for in a hurry. Not impossible, mind you, but challenging enough where it's usually not worth the effort.
  3. I'm really good at my job.
Though it was, beyond any reasonable shadow of doubt, the most blindingly stupid tone available to communicate the simple message that I value my privacy and the privacy of those around me and require those around me to do the same, I still stand by the point I made that night - I am not owned by my employer and do not respond well to employers that think that, just because they cut me a check every two weeks or so, that gives them the right to dictate what I do on my own time. In return for this consideration, I generally make it a point to avoid doing things on my own time that would raise any employer's ire - for example, I have work tomorrow, so I'm sober and will be going to bed soon so that I get enough sleep to be productive at work in the morning. I also don't talk ill about my employer, especially in public - if I have a problem with my employer, I'm going to bring it up with them, not with someone who has no control over the situation; plus, it's rude to talk ill about your customers, which, in effect, is what my employer is to my labor. I also don't compete against my employer, though I'll note that I spent quite a few years as an IT consultant providing services for companies that actively competed against each other without any issue whatsoever; in fact, I'd argue that I was able to provide for these competing companies better by working for all of them and thus achieving a better understanding of their industry as a whole than I would have if I was "faithful" to any particular one of them. They generally must have agreed since the consulting company I worked for was known as an "expert" in IT services in our area for legal and dental businesses, which is what drew competing legal and dental firms to do business with us. However, irrational as I personally think it might be, I do understand that more than a few employers are particular, to put it mildly, about employees moonlighting for competitors on the side, so I concede to today's social and employment norms and let that particular issue go.

In short, I won't make it your business to know my business, so stay out of my business, please and thank you. What I do with the compensation I receive in return for my labor is my business and nobody else's.

***

Libertarians are absolutely fanatical against collectivism. As Ayn Rand (yes, yes, not really a Libertarian per her own self-categorization, but if someone out there finds me a libertarian that disagrees with her on this, let me know and I'll pick someone else) put it:
"Racism is the lowest, most crudely primitive form of collectivism. It is the notion of ascribing moral, social or political significance to a man’s genetic lineage—the notion that a man’s intellectual and characterological traits are produced and transmitted by his internal body chemistry. Which means, in practice, that a man is to be judged, not by his own character and actions, but by the characters and actions of a collective of ancestors. 
Racism claims that the content of a man’s mind (not his cognitive apparatus, but its content) is inherited; that a man’s convictions, values and character are determined before he is born, by physical factors beyond his control. This is the caveman’s version of the doctrine of innate ideas—or of inherited knowledge—which has been thoroughly refuted by philosophy and science. Racism is a doctrine of, by and for brutes. It is a barnyard or stock-farm version of collectivism, appropriate to a mentality that differentiates between various breeds of animals, but not between animals and men. 
Like every form of determinism, racism invalidates the specific attribute which distinguishes man from all other living species: his rational faculty. Racism negates two aspects of man’s life: reason and choice, or mind and morality, replacing them with chemical predestination."
This fanaticism against collective identity, in fact, even extends to government workers. Don't believe me? Try the following searches - I just did expecting to find a plethora of "all government workers are parasites of the people" posts:

lewrockwell.com:government worker
c4ss:government worker
- As an aside, the closest C4SS gets to painting government workers as evil collaborators is this article, which says the following:
Now, some will argue that public workers are not part of the productive class, and are parasites just like congress. But is that really fair? Sure, some or all of them may be foolish for believing that their job is funded through anything but theft. Some may also know that they are parasites, and don’t care. At the same time, we anarchists should be careful about judging other people from our lofty position as non-public workers and realize that for many people, no matter how duped they have been, regard their job at a public museum or a park as just that – their job. For them this “shutdown” is an example of how much the State does not care about them, and here lies our opportunity for discourse on the political class’s war on the productive class.
reason.com:government worker
thelibertarianrepublic.com:government worker
- This TNR article, which suggests shutting down most of the federal government forever, looks mildly threatening:
Undoubtedly many of the government employees who would be impacted are good people and the human factor can’t be overlooked in all this.
Oh. Well, never mind. Want to know who really thinks government workers are evil?

I'm not going to lie, I was more than a little surprised. At this point of this post, I was expecting to rant about how libertarians need to do a better job thinking of government workers as people, how we paint with such a broad brush, how we resort to extremist rhetoric that government workers are kapos, collaborators of the men with guns that call themselves "the state", and... I couldn't find it. I couldn't find any of it. I tried. I really, really tried. Maybe I should try harder. But, at some point, when you're scouring the Internet, trying desperately to find a shred of evidence that proves you're right and you're not finding it, it's probably pretty safe to say that it doesn't exist

Are you surprised? I am - and I'm a libertarian. So, if libertarians - stalwart enemies of the state and all that - aren't, in fact, painting government workers as vicious parasites, who is?
So, if the top results are any indication, the people really treating government workers collectively and assuming that, merely by guilt of association, they're evil parasites that should be treated with utter disdain, are none other than arch-conservatives.

I should have known.

***

Circling back around to AB182, I'm no longer surprised that it's being sponsored by the establishment conservative wing of the GOP instead of the group that John Ralston likes to derisively call "the GOP Ass. Caucus/Citizen Outhouse wing of the Republican Party" (e.g. Michele Fiore and her allies in the Assembly). Though Fiore and her friends certainly have their flaws (oh dear whatever deity I believe in right now, she most certainly does have her flaws), they do tend to lean libertarian-ish, and libertarians generally don't like telling people how to spend their time or their money. Sure, you're never going to hear a libertarian come out in favor of public sector unionization, but you're also never going to hear a libertarian claim that public sector employees should be legally forbidden from associating with unions - that would strike at the very core of freedom of association. Similarly, you're never going to hear a libertarian come out and say that public sector employees should be legally forbidden from spending their money on union dues if they wish - it's their money, after all, once we give it to them - and you're also not going to hear libertarians claim that public sector employees shouldn't be free to do what they wish with any other forms of compensation they receive, including paid time off. It's their vacation time, just as our paid time off is ours - libertarians don't believe in forcing others to do what we wouldn't be willing to voluntarily do ourselves.

In fact, libertarians don't believe in forcing other people to do anything at all. Not even government workers.

If we as a society could tell public sector employees how they're allowed to spend their paid time off - a key part of any hourly employee's compensation package - what would stop us from paying them exclusively in Buy Local certificates that are only good at local, tax paying businesses? What would stop us from demanding they only live in local houses or rent from local landlords? Once we decide that public sector employees are no longer people but are, in fact, servants, that we can dispense or dispose of as we wish, what stops us from subjecting them to any indignity we may wish to imagine? For libertarians, the answer is obvious - the fact that public sector employees are people, just as capable of free will and independent thought as the rest of us, is enough to make such ideas morally reprehensible to us. Conservatives, however, labor under no such moral compunction - and as long as that's true, and as long as conservatives keep getting elected, libertarians are going to have a tough time explaining to public sector employees why they shouldn't unionize.

Perhaps - just perhaps - we libertarians should spend less time hanging out with conservatives and more time hanging out with public sector employees. 

Friday, February 27, 2015

Running Dentrix without Local Admin or UAC Disabled

Yep, this looks safe enough for me to put everyone's Social Security Number, medical history, and dental history into.
I used to support more than a few Dentrix installations back in the day. It was not fun - this particular Electronic Health Record (EHR) package, which is all the rage in dental practices across the US, requires local administrator access (see page 8) for all users. It's also strongly encouraged to disable User Account Control so that users aren't constantly bombarded with UAC prompts whenever they try to use the software. Needless to say, this is a highly less-than-ideal way of running a piece of software that's ostensibly designed for HIPAA compliant medical practices, which is why I was thrilled to no end when I changed jobs and stopped supporting dental IT.

Last Friday, I received an email. In it was a request that sent a chill down my spine:
We're teaching a class on Dentrix and need it installed in a computer lab.
Images of fresh-faced students with local administrator access on computer lab PCs filled my mind. Now, this isn't the first time I've faced this - the usual solution is to set the PC to dual-boot, with the administrator image being off of the student lab domain. It's not a perfect solution, but it at least keeps the damage to a minimum and protects our student lab servers. However, this solution only works with technologically sophisticated instructors and users; the instructors that needed Dentrix are sophisticated about Electronic Health Record systems, but not so much about proper Windows booting protocol.

I needed a better way. With some trial and error, I think I found one.

The first reason Dentrix requires local administrator rights is because it places its data folders in its installation directory, which, by default, is C:\Program Files (x86)\Dentrix [1], and whatever user is running Dentrix must have sufficient access to write to these directories. So, the first step to the solution is to make it possible for standard users to write in the standard installation folder:
cd %programfiles(x86)%
icacls Dentrix /grant "Users:(OI)(CI)(F)" /t
I also, just on the safe side, granted write access to everything else installed with Dentrix:
icacls "GURU LE" /grant "Users:(OI)(CI)(F)" /t
icacls "Guru Limited Edition Server" /grant "Users:(OI)(CI)(F)" /t
icacls "Business Objects" /grant "Users:(OI)(CI)(F)" /t
Next, we need to move the installed desktop shortcuts to places accessible by everyone instead of just the profile that Dentrix was installed under:
move %userprofile%\Desktop\*.lnk C:\Users\Public\Desktop
move "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Dentrix Learning Edition" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\"
move "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GURU Limited Edition" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Guru Limited Edition"
Oh, and fix the permissions on them, too:
cd "C:\Users\Public\Desktop\"
icacls *.lnk /reset
cd "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\"
icacls * /reset
That made it possible to run Dentrix as a standard user with UAC disabled. Now it was time to get around UAC. To do that, I followed the spirit of Ghack's guide on doing just that - I installed the Microsoft Application Compatibility Toolkit, then created Application Fixes enabled RunAsInvoker for each of Dentrix's client-centered applications, while explicitly avoiding the database rebuild utilities like _Rebuild or _Rebuild2. Namely:
  • Appt.exe - Appointment List
  • Apptbook.exe - Appointment Book
  • Chart.exe - Patient Chart
  • Document.Center.exe - Document Center
  • Document.Convert.Daemon.exe - Document Convert Daemon
  • Document.UnfiledUtility.exe
  • Dtx.ThreeDDataLoader.exe
  • DtxLink.exe
  • DtxLinkNet.exe
  • DtxRx.exe - Prescription Module Wrapper
  • DXPort.exe
  • Dxprint.exe - Dentrix Print Module
  • DXWeb.exe
  • Famfile.exe - Family File
  • Journal.exe - Patient Journal
  • LabTrack.exe
  • Ledger.exe - Ledger
  • Mailer.exe - Mail Merge Utility
  • Office.exe - Office Manager
  • Patpict.exe - Patient Picture
  • PayerId.exe
  • Perio.exe - Perio Module
  • PEXI.exe
  • Presenter.exe - Dentrix Presenter
  • query.exe - Query engine
  • Questionnaire.exe - Questionnaire engine
  • QuickLabels.exe - Quick Labels
  • RA.exe
  • SearchPayments.exe
  • Snapshot.exe
  • TimeClock.exe - Time Clock
  • Totscr.exe
  • Tpman.exe
  • Trintf.exe
  • TxPlanner.exe
  • Wizard.exe
Then it was time to use it:
sdbinst "\\server\path\to\Dentrix\install\dentrix-fix.sdb"

Note that I largely aimed with a shotgun instead of a scalpel - I basically whitelisted almost every single executable in the Dentrix folder I could find that I knew wasn't a database utility and wasn't something that already ran without UAC whitelisting (e.g. AppLauncher). I also excluded eSync's executables since we don't use eSync in our lab. Also note that, since this was a classroom environment, I didn't have to deal with integrating this with Dexis, Dentrix Image, SUNI, or the other, similarly broken imaging solutions that are used in the dental field - that said, the same solution might work. I'll further note that, at least in my case, data integrity is not a high priority; since this is for a lab environment, it just needs to work well enough to get the point across, not remain stable through several Dentrix upgrades. That last point is important since the Microsoft Application Compatibility Toolkit calculates checksums for each executable you add to your database - if Dentrix upgrades a particular executable, you'll need to re-whitelist it for it to work.

The result? A Dentrix installation that let me, as a standard user, load up every Dentrix module I tried and make changes to patient records without a single UAC prompt.

If anybody is actually brave enough to try this in the field, let me know - I'm genuinely curious.

1. Note that, for the purposes of my lab, we're instructing using Dentrix G4. Dentrix G5 is theoretically 64-bit native, so it might install in C:\Program Files on 64-bit systems.