Thursday, December 13, 2007

New Music

I've recently started listening to Pandora. It's a web radio station that allows you to enter bands that you like, and then plays music by "similar" artists. I was a bit dubious at first, but it actually works quite well. (It does tend to play the same songs again and again, but there's enough new stuff mixed in to keep it interesting.)

My most interesting discoveries have been the result of hearing bands similar to the Mekons, although it's kind of a stretch to say that anyone sounds like them. So far, the major discoveries have been:
  • 999: British punk band. Kinda similar to the Clash (definite rockabilly influences). My favorite song of their's so far is Emergency. Intriguingly, they are still active.
  • Moving Parts: they were a precursor to Mission of Burma, and included Roger Miller and Clint Conley as members. A couple songs off their one album (Wrong Conclusion) that I think are particularly good are Garden of Heat and Line of Fire (both Roger Miller compositions). The album also has a version of the famous MoB song Max Ernst. One thing that stikes me listing to this album is that Roger Miller is an amazing guitar player.
  • Human Television: I don't know how they came up in reference to the Mekons; they play 2 and a half minute pop songs that owe a lot to The Smiths, R.E.M., and the Cure. Their song Saw You Walking By could practically be a lost single from the La's or even the Byrds.
OK, back to work...

Thursday, September 6, 2007

Cool Stuff Alert

The Fall semester just started, and I've discovered some very cool software that's making my life easier and better.

RegeXeX is an electronic tutor for regular expression problem sets. The really cool part is that (thanks to the decidability of regular languages) RegeXeX will tell the student if they have a correct regular expression, and if they don't, gives examples of strings it generates that it shouldn't and strings it doesn't generate that it should. It's described in a SIGCSE paper.

JFLAP is a toolkit for constructing, simulating, and generally working with finite automata. I've used it to demonstrate NFAs and DFAs. You edit the FA using a GUI editor, and there are various ways to execute it on input strings. It can also do cool things such as highlight nondeterministic states. JFLAP appears to have support for other formal languages/theory of computation constructions, including grammars, pushdown automata, and Turing machines, although I haven't investigated these yet.

KompoZer is a WYSIWYG HTML editor based on Mozilla (now Seamonkey) Composer. I've been using Mozilla Composer for quite a while, and although it serves its purpose, it has many annoying quirks, such as generating millions of spurious <br> tags all over the place. I've only be using KompoZer a short while, but it appears to be much better.

Thursday, August 16, 2007

Installing a Visual Studio 2005 Add-in for all users

For posterity, here is a nugget of information that required quite a bit of digging to uncover.

If you want to install a Visual Studio 2005 Add-in for all users, drop the .AddIn and .DLL files (along with any subdirectory containing satellite DLL(s)) in the following directory:
C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\AddIns
If %ALLUSERSPROFILE% is not C:\Documents and Settings\All Users on your machine, adjust accordingly.

Microsoft's documentation on installing a Visual Studio 2005 add-in is fairly confusing, although I do see now that they mention this directory in a comment below the main article.

This issue came up as part of deploying a Visual Studio Add-in for Marmoset which a YCP student and I wrote this summer. Marmoset is a nifty project submission and testing server for programming courses. I expect the Add-in will be a part of the forthcoming open source release of Marmoset, which should happen sometime this Fall.

Monday, July 30, 2007

Ubuntu Studio

One of my projects for this summer is to get my guitar (1995 Fender Standard Telecaster) and amplifier (1976 Fender Vibrolux Reverb) fixed and to do some home recording. I did a few recordings about 6 years ago on a Tascam 4 track tape recorder (you can find them on my UMD web page if you're interested, but bear in mind that I suck). However, audio production on Linux has progressed significantly in recent years---e.g., Ardour---so I figured I'd give it a whirl.

I despise compiling and configuring software by hand, so I was thrilled to discover the existence of Ubuntu Studio. The current release, 7.04, is essentially Feisty Fawn with a low-latency kernel and prebuilt binaries for all of the major audio/video/graphics applications, plus some cool new desktop themes. Through the magic of apt-get, it was a matter of three shell commands to upgrade my home machine to Ubuntu Studio. (Plus 400 MB of downloads through my DSL connection, of course.) The only hitch was breaking X because I didn't get the restricted binary kernel modules for the new kernel (nvidia drivers, alas). Once that was fixed I was in business. People talk about whether or not Linux is ready for the desktop. I think Ubuntu has not only answered this question with a resounding yes, but proven that it is a better desktop system than Windows many times over.

I haven't tried out Ardour yet, since I'm still waiting for my guitar and amp to come back from the shop, and also for the soundcard (M-Audio Delta 1010LT) I won on ebay to arrive. Thanks to Ubuntu and Ubuntu Studio, I'll be ready when they all arrive.

Thursday, July 5, 2007

Visual Studio 2005 works in VMWare Player

Since I had no luck getting WinXP/Visual Studio working in VirtualBox, I decided to try VMWare Player. Long story short, it works! I followed the instructions an a VMWare Player HOWTO at ubuntuforums, and a couple hours later I have a full WinXP VM in which Visual Studio is (apparently) running quite happily. Got TortoiseSVN installed as well. Whee! Networking works just dandy through the NAT'ed virtual ethernet device.

My initial impressions is that VMWare Player gets extremely bogged down by disk I/O. Double clicking a program icon can send it off into space for minutes. It kinda seems to be a one-time hit, though. Maybe I just need more RAM.

Other than the disk I/O problem, responsiveness seems acceptable.

Now I can engage in some Windows development without leaving the cozy womb of Linuxdom.

Can't run Visual Studio 2005 within VirtualBox?

I tried today to get VirtualBox set up on my Linux (Ubuntu 7.04) box at work. WinXP installed without a hitch, but it refuses to install Visual Studio 2005, which is the only reason I wanted to run WinXP in the first place!

Here's a screenshot of the error


Aiiighhh!

A google search on the text of the error message returned no hits. The Properties menu says I have 14.6 GB of space left on my (virtual) hard drive, and Linux has plenty of real disk space left, so I don't think that's the problem.

VirtualBox seems like an excellent product, and responsiveness within the guest OS seems quite snappy, so my current state of affairs is disappointing.

Monday, June 18, 2007

Eclipse CDT

I've been hearing good things about Eclipse CDT (the C/C++ development tools for Eclipse), and I finally sat down and tried it out today. [Back in the day I was a vi/make/bash die hard, but I was won over by the huge (huge!) productivity gains I experienced using the Eclipse JDT (Java development tools) when doing Java, and now I really want something similar for C.]

So far, I'm very impressed. I was able to get the source code to a new version of GeekOS I'm working in imported and (almost) compiling, without writing a makefile. Based on the project settings, CDT generates makefiles automatically. The settings seem pretty flexible---for example, I was able to redefine the command for assembly files with very little effort. (I use gcc to convert assembly files into object files so that they can include C header files.)

Code completion seems relatively functional; not always totally up to date, but in general pretty good. I was actually able to do an automatic renaming of a variable, which is something I now take for granted in JDT and pains me greatly to have to do by hand using grep and vi. Of course, GeekOS is straight C code, so the underlying problem of extracting symbol information from the source code is not as complicated as for C++, but I don't care about C++.

I still have to customize the linking command and add a post-build step to get the kernel into some bootable form, but that should (in theory) be pretty easy. Eventually I would like to be able to support other hardware targets out of the same source base, which would require a mechanism in the build system to select a subset of source directories based on the current configuration (target).