Fork me on GitHub

Category: Random

Vista: Defective By Design

After ten months, I’ve had a reasonably pleasant experience with Windows Vista. But I recently had a series of problems that really made me consider switching back to Linux on my desktop.

I came home from work Monday to find that my computer had restarted after seventy-two days uptime. I had been in the middle of a project the night before so I already wasn’t happy when I sat down. I tried to launch the Event Viewer to see what had caused the reboot, but got this error:

“Windows cannot access the specified device, path, or file. You may not have appropriate permissions to access the item.”

Now, I’m running as a least-privileged administrator with UAC enabled. I was never prompted to elevate. In fact, forcing it to elevate did nothing. And because the local administrator account is disabled, by default, I was out of luck.

Continue reading »

Playing with SQL Server 2005

I recently setup a SQL server, running Microsoft SQL Server 2005 Developer Edition. Installation was smooth, with a prettier interface than SQL 2000. The disk space requirement was a bit high, but not unreasonable.

The suite now includes a special management studio that uses the VS IDE. In the past, developers needed to use an MMC snap-in to manage databases. It was usable, but generic. Features weren’t obvious and the interface was clumsy. The new feature-rich interface is much more friendly and intuitive.

But the IDE does, however, carry the same massive footprint as Visual Studio. I would have preferred it if they had kept the MMC snap-in for server use. Needing to install the IDE on the server seems silly, considering the amount of use it would get. Overall, though, I’m impressed with the software.

Installing Vista Beta 2 in VMware

Like many other developers, I wanted a chance to play with Windows Vista Beta 2. So I downloaded the whopping 3.2 GB DVD image (in twelve minutes). Since I don’t have a spare machine powerful enough to handle it, I decided to install Vista in a VMware virtual machine. This was, to say the least, not a clean and pleasant experience.

I opened my existing “Beta 1″ virtual machine with 256 MB of RAM and 8 GB of hard disk space, set the ISO as the boot media, and started it. Setup started, but then presented me with this:

The file WinSetup.dll could not be loaded or is corrupt. Setup cannot continue.

Continue reading »

Active Directory and Linux

I maintain several client and server machines that, up until recently, all authenticated users locally. I wanted a more centralized mechanism that could handle the various users and systems on the network. The big catch is that a few key system run Linux while others run Windows. So after doing some research, I turned to Active Directory.

My first chore was to install Windows Server 2003 and configure it to be a domain controller. This part was fairly easy, although a little time-consuming. Once that was working I was able to quickly join the Windows machines to the domain. Now to deal with Linux… for that I chose Windows Services for Unix. This software alters the AD schema to allow for Unix account attributes. On the Linux machines, I installed OpenLDAP, a Kerberos client, configured PAM… and voila! Now AD users can authenticate on the Linux machines.

My home-made DHCP/DNS configuration tool, however, was a little trickier. The data for this tool is stored in a MySQL database and accessed via a PHP script. If I wanted to grant someone access to the tool, I needed to first give them a MySQL account. Since Active Directory is basically an LDAP server, I rewrote the authentication mechanism to query AD.

With very little work, I was able to simplify authentication and account management. While this is not new technology, I still feel all warm and fuzzy with a sense of accomplishment.

.NET Rocks!

I recently had the impossible task of making one of my applications work on OS X. The school uses Microsoft SQL Server 2000 to house its huge volumes of data. The server is integrated with Active Directory to allow for trusted connections. This means that when a client connects to the server, they need only to authenticate locally in the domain. This makes password and privilege maintenance much easier.

The bad part is that only Windows client operating systems are capable of supporting trusted connections (NT Authentication). This means that I can’t write a program to interface with the database server unless it’s running on Windows. So when I was asked to make my Windows creation work on a Mac, I was at a loss. Fortunately, I had been writing the suite of tools in VB.NET, so I started investigating the possibility of running a .NET app on OS X.

I found two contenders: Mono and DotGNU Portable .NET. Both projects are free implementations of the .NET standard. Mono doesn’t seem to have the anti-Microsoft sentiment and was easier to install. Right out of the gate, Mono allowed me to run a .NET app on OS X. PNET complained about ncurses not being installed. While this is probably a simple fix, it was one step that Mono did not require.

The end result? I managed to clone my VB.NET app in C# and make it run smoothly on a Mac. High five for .NET!