grack.com

Old News (2004)

Full postings from 2004.

Friday, December 31, 2004: Primus Updates + WRT54GS

After a month of playing around with the Primus service, it's finally starting to settle into a stable and reliable home-phone system.  My major problems in the first few weeks were (in no particular order):

  • (solved) Calls couldn't be made after leaving the router up for a few hours.  All calls would result in a busy signal until the router was rebooted.  The problem with this was likely that the RTP connections were established by the first phone call and left up behind the firewall.  This problem was solved with a new WRT54GS router (see below).
  • (solved) Making calls while Bittorrent or other P2P apps were running would result in crackling on the other side of the phone call.  This was fixed by properly setting up QoS on the WRT54GS.
  • (solved) Phone calls were plagued every ten seconds or so by load popping noise on our side.  This happened whether it was plugged directly into the cable modem or behind a router.  From what I glean from Primus' tech support and forums was that it was a bad interaction between their service and Shaw's routers.  It seems to be working fine now.

All in all, the service is pretty good now.  I finished off my QoS tweaks this morning to get rid of any problems while we're on the phone.  So far there don't seem to be any excessive delay, crackling or echoing problems.

The biggest solution to the problem was changing out my old Linksys BEFSR81 router for a brand new WRT54GS.  I also took a leap and tried installing the upgraded Sveasoft firmware on it so I could take advantage of SSH and other utilities.

The BEFSR81 had a problem in gateway mode where it would drop stagnant connections from behind the gateway after a while.  This seems to be fixed in the WRT54GS (both stock and Sveasoft firmware versions).  In fact, I didn't have to forward any ports whatsoever to get it working.  Very cool!

The other problem with the BEFSR81 was that it supported QoS, but not very well.  No matter what settings I tried, it wouldn't give enough priority to the VoIP packets to survive while Bittorrent was running.  I had to set the upload/download maximums on the QoS page of the WRT54GS before I could get this to work reliably.  From what I've heard, a cable modem may queue up outgoing packets if you're close to your maximum outbound rate.  This is pretty terrible for VoIP since packets need to reach the other side 100-150ms later to get a good quality call.

In the last couple of weeks, Primus has also been supporting the VMWI light on my Nortel Vista 350 properly.  The light comes on when we have voicemail and turns off once you've listened to it.  They seem to have preliminary support for emailing voicemail messages as .wav files, but it doesn't seem to be working reliably.  It's pretty nice to have an attachment in your mailbox to listen to whereever you are.  Saves having to remember the external voicemail access numbers as well.

I highly recommend picking up a WRT54GS or two and making these things part of your network.  It's such a powerful little wireless router/gateway that it would be worth it at twice the cost.

Friday, December 10, 2004: Primus Canada Talk Broadband

I signed up for Primus Canada's Talk Broadband service last week.  Out of all the Canadian VoIP offerings, Primus was the only service I felt was up to the task of replacing our home phone entirely.

Talk Broadband is an MGCP-based offering.  This means that all your communication with the outside world goes through a central clearing house.  Contrast this with SIP, which is capable of working without a central server.

From the time that I ordered the service to the time they fully configured the service was about ten days.  They sent the VoIP gateway, a D-Link DVG-1120M, within about five days of ordering, but the service wasn't provisioned for another five days.  Note that they don't tell you your service isn't hooked up - you'll discover that by calling their technical support line.  If given a choice, I think I'd rather wait ten days and get phone service that's ready to go.

The default configuration for the VoIP gateway is to place it between your current home NAT box and your Internet connection (basically using the VoIP gateway as the real firewall).  I've read reports that the QoS implementation in the gateway is pretty terrible - you won't have much bandwidth available for surfing while making calls.  I decided to place the gateway behind my current Linksys router, a BEFSR81 w/QoS.

D-Link's VoIP gateway can power your entire home phone system, but Primus considers this to be an unsupported feature.  All you need to do is plug the phone port on the phone into an existing wall jack.  It worked fine for us, but I had to disconnect the dead line providing service from the pole before it functioned correctly.  With the dead line connected, the phone would never be released after hanging up.  We have four phones on the home phone circuit, connected to the VoIP gateway, and no issues so far.

Thankfully, with a bit of configuration you can successfully run your VoIP gateway behind a NAT device behind a gateway.  Primus Canada's FAQ mentions that you'll need to forward ports 2427 (TCP/UDP for MGCP) and 16384-32767 (UDP only, for RTP) to your VoIP device.  No matter what I tried, I couldn't get it working with this configuration.  Each number I dialed would result in a busy signal.  When I configured the Linksys box to place the gateway in its DMZ, everything seemed to work properly.  I'll have to do some more research/packet sniffing to determine which ports the phone needs to receive.

The Linksys router I have has a good port-based QoS feature.  I connected the VoIP gateway to port "4" on the router and configured the QoS to give highest priority to any traffic on this port.  I made a phone call and started a high-speed FTP transfer from a remote site without any dropped VoIP packets or slowness on the FTP transfer.  Not too bad.

The real "cool factor" in the Primus service is their new residential "My Talk Broadband" online console.  From this console, you can see a history of all incoming/outgoing calls, play/delete/forward any of your voice mail and change options for their call-screening service.  I'd like to replace our answering machine with their voice mail service, but I'll need to figure out a way to disable annoucement of the current time and caller's number from the start of each message.  You can even configure it to send you email each time someone leaves a voice message.

From their web console, you can manage a directory of numbers that can be auto-dialed for you.  It's a little bit strange - you pick up your home phone, click a URL on their site and it will connect you to the number directly.  I can see this being somewhat useful as a quick family phone directory.  I might see if I can set up an LDAP directory locally and tie it into this service.

More on this service as I discover what it can do.

UPDATE: See my Primus Updates + WRT54GS entry for more details on recent problems and solutions.

Friday, November 26, 2004: Jersey Girl
This is one of the best Kevin Smith movies so far.  I wasn't really a fan of Dogma or Jay and Silent Bob Strike Back, but I've been watching Clerks over and over since it first came out in the mid-90's.  Chasing Amy was also one of my favorites from the View Askew series, but I've already strayed from the original topic too much not to end this post right ....  now.
Friday, November 26, 2004: IE7

Gotta give IE7 some serious Google juice.  This has got to be one of the most important hacks of the IE5-6 era.  Even after understanding what the magic Javascript does, I'm still amazed that it manages to fix so many of the rendering bugs IE.  At some point I'm going to scrap my IE-specific workarounds for this site and just use proper CSS and the IE7 patch for those unfortunately souls stuck with Internet Explorer.

Note that IE7 won't fix every problem with IE, but it certainly picks off the major ones (lack of position: fixed, inability to specify right: and left: at the same time, etc.).  If I have some time, I might try to get my own hack to fix <textarea style="height: 100%;"> for CSS strict mode in IE.  I suppose it might be time to revisit my Design for Firefox, Hack for IE article and replace it with a "Design for Firefox, Use IE7 for IE" one instead.

To be fair to Microsoft, my big CSS issue with Mozilla is the lack of support for display: inline-block in Mozilla/Firefox.  Once bug 9458 is fixed, we can stop using the "display: -moz-inline-box" hack to work around it.

Sunday, November 14, 2004: Fedora Core 3: Running CVS in a chroot Jail
How to set up a secure CVS server running over SSH in a chroot jail.
Sunday, November 07, 2004: Fedora Core 3: Coming Very Soon

Looks like Fedora Core 3 is being pushed to mirrors as we speak  I couldn't find any concrete evidence of a Monday release, but the Fedora Release Schedule does indicate it as a likely target.

The release notes for the last development version are available, but they may have changed for the final release.

I'm guessing that FC3 DVD torrents will appear on the Duke torrent site after the release.

Thursday, November 04, 2004: SANE Scanner Setup Weirdness

Getting my scanner up and running was easy enough.  The strange part of the whole ordeal is that the RPMs for SANE place all of the config files in /etc/sane.d, but the executables are all looking in /etc!  I noticed that the RPM was from the yoper repository - it doesn't seem to be a core Fedora package.  After looking at it more carefully, I think I managed to install a package that doesn't really fit my installed Fedora Core 2 at all.

I managed to fix it for now by creating a "sane" entry in /etc/profile.d that sets SANE_CONFIG_DIR globally.  Note that this whole thing is not really a huge deal- I imagine that it would work "out of the box" with a standard Fedora install.  I'm a little too impatient to wait for Fedora Core 3 and its updated version, however.

If you're curious, this is the shell script to place in /etc/profile.d:

SANE_CONFIG_DIR=/etc/sane.d
export SANE_CONFIG_DIR
Sunday, October 24, 2004: More Home-Office Setup Experiences

I just finished setting up dovecot this morning to aggregate my various email boxes and make them available via a single server.  Dovecot seems to be a server from the new golden age of Unix services.  It's easy to set up and has reasonable defaults for getting a server up-and-running without much effort.  Note that this is in contrast to sendmail configuration, which is as cryptic as could possibly be.

My ideal "unix service" - mail, web, ftp, etc - is a drop-in application that tries to work with your current configuration, rather than reinventing the wheel each time.  It should use PAM for authentication whenever possible, pick up system configuration from shared files and "just work" when you start it up.

So far, I've managed to get my home network up and running with the following services:

  • Windows domain (via Samba)
  • DHCP with static addresses assigned per MAC (via ISC's dhcpd)
  • DNS, including integrated dynamic-DNS with DHCP (via bind)
  • Single-source, aggregating IMAP email server (via dovecot, fetchmail and procmail)
  • Spam filtering and anti-virus protection for above (via spamassassin and clamav, respectively)
  • Networked printing (via CUPS)

To run all of these services off Windows Server 2003 would cost me approx. CDN$1,200 for the basic serverlicense (and five CALs).  I'd also have to add in the basic Exchange package for another CDN$1,200.  Spam filtering might still be possible via spamassassin on Windows and I could probably use the free version of AVG anti-virus for email protection at the client level (versus the server).

Note that my current solution would likely scale up to a medium-sized, single-office solution by upgrading the hardware (no additional effort).  I'd probably be looking at more than CDN$10,000 in license fees to pull this off legally in Windows 2003.

Grand total amount of time to set all of this stuff up: six hours.  To do it again would probably take about two hours.

Saturday, October 23, 2004: Are People Waking Up to Microsoft?

Are people finally waking up to Microsoft's attempts to get their fingers in every pie?  A few months back, Microsoft managed to kill the IETF Marid working group's attempts to build a common spam filtering framework by refusing to license their technology openly.  This leaves room for SPF to take over, already with the backing of a large number of mail server operators.

Just recently adoption of the WMV9 codec, slated for inclusion in the sequel techology to DVD, is hitting some roadblocks:

Multiple sources close to the SMPTE process told EE Times last week that Microsoft created the impression in the industry that its WMV9 codec had a leg up on H.264/MPEG-4 AVC in quality and licensing terms. But now that the WMV9-based VC-1 has been put to the test in the arduous SMPTE standardization process, VC-1 is "perceived as behind in quality and behind in licensing terms, compared to H.264/MPEG-4 AVC," one source said.

Does this sound familiar?

Friday, October 22, 2004: Linksys Upgrade Debacle

While upgrading my Linksys router through the upgrade page, I somehow managed to kill the thing.  Having spoken with others that have tried to upgrade the firmware, I don't seem to be alone.

Luckily, the Linksys-modified TFTP program saves the day.  It seems that the hobbled router comes up in a crippled mode on 192.168.1.1 with a password of "admin".  Once you re-upload the firmware, it comes back up with the proper settings.

I think the trick is not using the HTML-version of the upgrade page.  Stick with TFTP!

Thursday, October 21, 2004: Networked Printing in Fedora Core

Networked printing is really cool in Fedora!  You can configure CUPS to automatically browse the network and discover other printers by using the Printer Configuration tool and, under the "Sharing..." menu, choose "Automatically find remote shared queues".

You can even use this to set up a remote print queue for Windows.  Install the generic Adobe postscript printer driver and point it to your CUPS printer share when it asks for the URL.  The CUPS URLs are generally of the form:  http://servername:631/printers/printer-name.

You'll find the printer URL by browsing the CUPS webpages and selecting the printer under "manage printers".

The cool thing about CUPS is that there are no specialized drivers to load under Windows.  You use the generic postscript driver and everything just works.

Wednesday, October 20, 2004: Fedora Core Network Install

I decided to pave over my Windows 2000 box with a brand new install of Fedora Core 2.  The network install is awesome - burn the 4MB boot.iso to a CD, select "HTTP" install, point it any Fedora mirror and go!

It took about 30 minutes to get the installation completed on my old PII-400.  Your time may vary based on CPU hugeness and mirror fastness.

I've been using my Linksys firewall for managing internal DHCP, but it doesn't really give you much flexibility to assign static IPs that I'd like.  I hope to get a quick and dirty DHCP server up and running with brand-new DHCP-managed static IP addresses for all of my networked devices (including my Xbox). 

It also gives me a chance to try my hand at setting up a full IMAP mail server at home.  I've been using hotwayd for snarfing messages from Hotmail and getting them remotely via POP3.  I'd prefer to have them sit in a common mailbox that I can read from either work or home.

Thursday, October 14, 2004: Google Desktop Search: How it Works, Pt 1

I tried out Google Desktop Search today and I decided to take a deeper look at how it works and how it integrates into your daily experiences.  This information all comes from reverse-engineering and file/registry observation.  None of it is guaranteed to be correct.

From looking at some of the PDB file references, I think the internal name of this Google search engine is "Total Recall".  This fits with the replacement string returned from Google ("<!--trs2-->") and the port number registry key "trs_port".

The search utility consists of three main applications and a number of "information provider" plugins.  The main applications are:

  • The Google Desktop Search main application.  This provides the UI for configuration of the Google search programs and launches them as necessary.
  • The indexing service.  This program runs a small HTTP server on port 4664, receiving desktop search requests and outputting search results.
  • The crawler service.  This program runs in the background, indexing local files that exist on your disk.

The plugins are:

  • A Winsock1/2 protocol filter.  These intercept requests to www.google.com, www.google.ca, etc. and add a "Desktop" link to the search page, as well as placing the local search results in with the remote search results.
  • An IE-specific BHO (browser helper object).  The BHO indexes the pages you visit and takes a screenshot to store as a thumbnail for later.
  • Microsoft Word/Excel/Powerpoint plugins.  Unknown at the time, but they are probably used to index Office files.

The Winsock 1/2 interception is one of the cooler parts of the Google Desktop Search Application.  Each request you make runs through this filter.  Whenever a Google search is performed, the interception layer sends the requests to the local indexing server and merges the results with the web search results.  I verified this by running Windump on the machine and comparing the request made to Google with the results that Firefox received.

The BHO uses the GoogleDesktopAPI2.dll to add pages to the indexing service.  To take screenshots, it uses the GetDC function to grab the current bitmap from IE itself.  You'll notice that if any Windows are obscuring the IE window at the time the screenshot is grabbed, they'll appear in your thumbnails.

GoogleDesktopAPI2.dll has a number of unnamed imports.  Each of the search plugins loads these imports by ordinal and calls into them.  So far, none of the imports have been decoded.

More info as it comes!

Friday, October 08, 2004: Spyware Installing on Fully-Patched XP SP2!

After reading the full-disclosure list for more ASP.NET vulnerability information, I came across a report of spyware installing on fully-patched XP SP2 IE instances.

The thread is here.  Basically, a site is forcing a CAB file down user's throats without any sort notification.  If you want to try it out in VMWare or some other safe environment, jump to the URL http://www.themexp.org/about_wrap.php.

I can't repeat it enough: Install Firefox today

Friday, October 08, 2004: ASP.NET Security Bug: The Real Information

Has anyone noticed that Microsoft is willing to admit to that "a bug in ASP.NET canonicalization exists", but refuses to divulge any more information?  Considering that the information is easily available and being distributed by bloggers between themselves, you should have all of the information at your fingertips to protect yourself.

Basically, the bug involves subverting Windows or Forms authentication by modifying your URL slightly.  By replacing traditional URL slashes with backslashes, you can fool ASP.NET into serving files that should be protected.

Note that you'll need to use Firefox to check out some parts of this bug, since IE automatically replaces DOS-style slashes with URL-style slashes in the address bar.

The original message is here on NTBugTraq.  Don't let Microsoft keep the important security information away from you!

Note: there are alternate ways to exploit this bug by using the URL-encoded version of a slash to subvert the URL scanner.  The one described above is the easiest attack to implement.  I'll post more information here as I discover it.

Friday, October 08, 2004: Neat Image - Digital Camera Noise Reduction

Neat Image is a tool for automatically reducing digital camera noise.  I tried it out last night on a few photos - it manages to clear up a lot of random noise you see when zooming in on most digital pictures.  Best of all - it's free for personal use!

I managed to get results that were pretty good, but not as striking as their examples.  I suppose the developers of the tool would understand how to get the most out of it.  You'll notice a subtle difference in the shots that you've processed with the tool. 

It's a bit of extra work for each shot, but I think it pays off to clean up the pictures you really like.

As far as I know, cleaning up pictures this way won't affect how they look when printed professionally.  I believe that proper processing blurs the image enough that you won't see small per-pixel artifacts.

Thursday, September 30, 2004: Microsoft's FAT Patent Rejected

GrokLaw is just reporting that Microsoft's FAT Patent has been rejected.  This is good news!  Check out the story on GrokLaw, or read the good bits here:

At PUBPAT's Request, Patent Office Rejects Microsoft's FAT Patent: All Claims of Reynolds '517 Patent Ruled Invalid

NEW YORK -- In the reexamination proceeding initiated earlier this year by the Public Patent Foundation ("PUBPAT"), the United States Patent and Trademark Office has rejected all of the claims of Microsoft's patent on the FAT file system, which Microsoft describes as "the ubiquitous format used for interchange of media between computers, and, since the advent of inexpensive, removable flash memory, also between digital devices."

One down, 500 million to go.

Monday, September 27, 2004: Web Developer Toolbar

If you use Firefox (you are using Firefox, right?) and you do anything even remotely related to web development - including maintaining a blog - you must download the Web Developer Toolbar.

This toolbar allows you to do everything from disable images to editing CSS live or even viewing response headers. 

If you're editing CSS, it opens a sidebar with the current stylesheets loaded in separate tabs on the left.  As you type in each stylesheet, the styles are updated on the page to the right.  You can save and load stylesheets for future editing purposes.  It's handy for checking out a site to see how they pulled off a CSS trick.

Another nifty trick is viewing block sizes in your document.  It applies a border to all of your display:block elements and places a tooltip-like label in the top-left corner of the block with the size information.

I could list every feature in this application, but it would take a few dozen posts.  Check it out!

Thursday, September 16, 2004: Cabinet Checklist, Take Two

I've been doing bits of work here and there on the cabinet.  Here's my revised phase one to-do list with completed items crossed out (they may not appear crossed-out in my RSS feed).  Stuff that I decided not to do, or decided to modify or added since the last list is in red:

Stage One: Construction

  • Round cabinet corner sides (won't be doing this).
  • Attach 2x4's to sides of cabinet for all edges, monitor and speaker/marquee shelves.
  • Construct strong monitor shelf from already-cut wood and 2x4's.
  • Attach cabinet sides to base, using 2x4s to connect sides together.
  • Install cabinet front using Blum hinges and key lock. (decided not to put hinges on the front, just screwed it in)
  • Install cabinet back with Blum hinges and key lock.
  • Cut 45-degree angles on cabinet back diagonal piece.
  • Install cabinet top and back diagonal piece.
  • Cut T-moulding groove with router and slot-cutting bit.
  • Install T-moulding.
  • Cut 45-degree angle for control panel back.
  • Cut groove and install T-moulding on control panel.
  • Assemble control panel, using blum hinges and draw hasp for top.
  • Install drawer slides in cabinet and control panel, attach control panel to cabinet.

I've done some of the T-moulding grooves and installation, but I'll leave it as unfinished until I get around to putting it in entirely.

Sunday, September 12, 2004: Firefox 1.0rc Rocks

I've been surfing with Firefox 1.0 for a few days and it absolutely rocks.  Some of the really cool stuff:

  • Anti-phising protections for user:pass URL sites.  IE manages this by stripping off passwords while Firefox still allows you to visit:

  • The "find as you type" bar comes up as you're searching, instead of using the window's status bar:

  • You can now show blocked popups:

  • I don't know if this feature is from the Web Developer toolbar or Firefox itself, but holding down shift gives you useful mouseover tooltips on links:

  • Firefox detects embedded RSS links, offering you the chance to subscribe:

  • "Read mail" is now available from the Firefox tools menu (and as an optional toolbar icon):

  • You can now install components from the updates dialog.  Very cool!

I keep finding new and funky features in Firefox that have been added for 1.0.  This release is going to absolutely rock.

Tuesday, September 07, 2004: Babylon 5: Season 1

Just finished watching Season 1 of B5 on DVD tonight.  Chrysalis (the final episode of S1) is fantastic.  If you have the opportunity to watch the DVD set, take it!

One of the most interesting things about the series is that it coincided with the birth of the web.  The Lurker's Guide to Babylon 5 was probably one of the first pages I hit on the web.  Strangely enough, the site is pretty much the same as it was a decade ago- save for some recent updates of course.

On the other hand, feel free to skip the episode "Grail" in season 1.  It's absolutely terrible: probably made the cut originally because of the CGI alien bit they talk about in the guide.  The rest of the episodes range in quality from good to excellent.

Thursday, September 02, 2004: CSS Tweaks

My old default style was starting to tire me out.  I've changed the default font and tweaked some of the general style for the site to spruce it up a bit.

If I feel brave enough, I might just whip up an entirely new set of style and create another dynamic style link at the bottom of the page.  ;)

Oh yeah - I've also got three more Gmail invites to give away.  If you're interested and happen to notice this, leave me a comment with your full name, email address and website/blog (if applicable).

Monday, August 30, 2004: mod_rewrite Saves the Day

I wanted to move all of my old articles into yearly subdirectories, but I didn't want to break any of the incoming links to my site.  Thankfully, mod_rewrite allows me to redirect incoming requests as necessary!

RewriteEngine on

RewriteCond         %{REQUEST_FILENAME} ^(.*/news)/
RewriteCond         %1/2004/$1          -f
RewriteRule         ^news/([^/]+)$       /news/2004/$1 [R,L] 

RewriteCond         %{REQUEST_FILENAME} ^(.*/news)/
RewriteCond         %1/2003/$1          -f
RewriteRule         ^news/([^/]+)$       /news/2003/$1 [R,L]
														  
RewriteRule   ^(.+)  -  [PT]

Basically, these rules check to see if the file exists in the /news/2004/ or /news/2003 subdirectories and, if so, redirects immediately to the yearly subdirectory.

It took me a while to figure out how to do this, but I think I've got a good idea of what's going on.

The strange (but cool?) thing about mod_rewrite is that you can use the "back-references" captured in the RewriteRule in the RewriteCond lines! In the rules above, %1 represents the request filename captured in the first RewriteCond, while $1 represents the URI segment captured in the RewriteRule below. See figure 1 in the mod_rewrite manual page for more information on how this works.

If you want to figure this stuff out for your own nefarious purposes, here are some links to help:

Monday, August 30, 2004: Gmail Invites

I've got gmail invites to give away to the first five to leave their name and email address in the comments.

First come, first serve!

Sunday, August 29, 2004: Sharpreader with Embedded Mozilla
I just tried out my Sharpreader via Mozilla hack on the latest version of Sharpreader.  It still works!
Saturday, August 28, 2004: Sucking the Facism from RNC

The Brooklyn Orgastic Politics Collective is going to suck the facism from Madison Square Gardens during the RNC:

On Thursday, September 2nd, for several hours prior to and during George Bush’s re-nomination ceremony, the Brooklyn Orgastic Politics Collective (BOP-C) will be conducting Orgone operations with several of our Cloudbusters, attempting to suck the fascism from the Republican National Convention at Madison Square Garden. From an undisclosed location on the Brooklyn waterfront, we will be redirecting the flow of Life Energy above the deadly concentrations of hatred and greed accumulating in midtown Manhattan. If indeed our theories prove correct, it may be possible to reduce the entire convention floor to a quivering Saturnalia. The moans of Love shall ring out across the Land!

I hope they succeed!  ;)

Saturday, August 28, 2004: Longhorn Stillborn?

Lots of shakeup with Microsoft these days.  Of course, Scoble disappears on the verge of the big "Longhorn to be Stillborn" announcement from Microsoft.

I wonder if Microsoft might be moving towards a more open-source like approach, at least on the release side of things.  Perhaps the concept of a named and branded OS will disappear, replaced with a framework that is constantly upgraded via Windows Update (kernel and all!).  Unfortunately, I don't think it's possible to keep home users, who generally purchase Windows once and only once with their new PC, as well as business clients that would prefer to seamlessly upgrade their client systems piecemeal (browser today, explorer shell tomorrow, kernel the day after) to keep them up-to-date.

In somewhat unrelated new, the quality of non-OS products coming out of MS recently has really dropped.  Case and point: Visual Studio 2002 and 2003.  These two are the poorest releases of the Visual Studio line so far (Visual Studio 6 being the best, IMHO).  Part of me wonders if they QA'd the product on anything but simple two or three "Hello World" project solutions.  If you don't believe me, try any of the following tasks:

  • Reference DLLs larger than 64kB.  You can only build once before having to delete all DLLs from the solution!
  • Edit tables in the VS.NET HTML editor.  In fact, try pasting something over top of something else in the editor. 
  • Use the Windows Forms editor for a complex form with nested panels and the like.  Have fun when you can no longer load the form in the editor and/or Visual Studio trashes your form class!  I hope you've checked in - into something other than VSS itself.
  • Enjoy the random crashes of Visual Studio.  No pattern detected so far.

I don't have much faith in MS to release a stable version of VS.NET 2004 (or whatever this one will be).  The fact that serious bugs that hinder your ability to write complex solutions have existed all the way from the beta up to the latest VS 2003 is almost unforgivable.

Ob</rant>

Saturday, August 21, 2004: Firefox .NET Hosting Flicker Fix

After some playing around with various bits in System.Windows.Forms, I've managed to pretty much eliminate the graphical glitches in the .NET control hosting plugin.

The only thing left is some strange WM_ERASEBKGND/WM_PAINT messages that seem to be coming out of nowhere.  Whenever I resize the browser I get a subtle flicker on some controls - it's almost like the entire control has been invalidated by something.  Perhaps the Gecko plugin hosting window is doing this to force a refresh on any plugins.

Here's another screenshot for fun:

Thursday, August 19, 2004: Firefox Hosts .NET Controls!

I managed to get my .NET plugin wrapper for Firefox working just now.  I can get a .NET UserControl to show up embedded in an HTML page through Firefox.

Next step - hook up the <object> tag to download arbitrary .NET assemblies and run them as UserControls (with security of course).

Check it out!

The only issue I'm dealing with right now is that there's lots of flicker as the control is overwritten by Mozilla (for some reason).  It's almost like I'm supposed to be clipping the paint messages, but I don't know enough right now about the event system to solve this.  I worked around it by forcing an invalidation on a WM_PAINT message.

It could be related to the interaction between the UserControl and Mozilla itself- perhaps the control is leaking some messages to its parent that shouldn't be being sent.

Tuesday, August 17, 2004: New Google Zeitgeist Out - No Browser Stats

Google has released their latest zeitgeist, but this time without the browser stats of yore.

I was hoping to see a rise in Gecko-based browsers for July, but I don't think we'll be seeing it for a few months.  Could this be related to the IPO?

Saturday, August 14, 2004: RSS Needs an Acceptable Use Flag

RSS (and Atom) should come with an acceptable use flag that lets me tell people that it's okay to syndicate my blog posts in full.

For future reference, it's okay to quote or aggregate any of my posts, even in full. 

Saturday, August 14, 2004: Firefox Promotional Buttons

As part of the latest Mozilla Firefox grassroots marketing blitz, I received a personalized email message from Blake Ross.  I have to admit, a non-form letter really does make a good impression. 

To be honest, I'd been thinking of adding it before but this gave me the last little push to add it to my front page.  I might find a different spot for it later on, but it looks really good where it is right now.

Get Firefox

UPDATE: If you're looking for a button for your own site, check out the Mozilla Firefox - Promotional Buttons page.  The little guy they have there (Get Firefox) is really nifty.

Saturday, August 14, 2004: Fun with T-Moulding

I started applying the T-moulding to the edges of the cabinet today.  It took a little while to figure out the right height for the router but it goes quickly once you've got it set right.

I managed to cut the moulding slot too high or too low in a few places - I'm using "No More Nails" to hold it in.  If this doesn't work I'll probably try picking up a hot glue gun (a suggestion I saw elsewhere).

I'm pretty close to getting the cabinet sides attached (once the rest of the shelving supports are in).  This should be a virtual milestone for myself - it's tough to see the pieces lying around unassembled for so long.

UPDATE: Looks like I'll need a glue gun after all.  Home Depot, here I come!

Friday, August 13, 2004: Copyright Economics

There's an interesting Wiki discussing Copyright Economics.  It breaks down the interaction between producers and consumers of "intellectual property", comparing it with the interaction between buyers and sellers of physical goods.

From what I can tell of the analysis, a "social gain" is equivalent to saying that the extra money that the producer gained over the minimum they would have done it for plus the extra money that the consumer has that they didn't need to use to buy what they wanted results in extra money for everyone!

The interesting conclusion is that pirating IP actually results in a social gain in the short term, while in the long term can potentially result in a social loss:

Since the producer cost is $0 the short term social gain of piracy is always positive (PC = $0, CV > 0, SG = CV - PC = CV so SG > 0). In other words, pirating software that would not be bought is economically beneficial.

and later:

So piracy can harm society when the software would otherwise be purchased but the producer never produces the software in the first place since expected piracy levels are too high.

I'm curious to see how this sort of analysis sees concepts like tax-supported-free-music and the eventual drop of food in cost to $0.  Well, the latter certainly requires some major technological hurdles to exist, but I'd like to see it.

As an aside, what value does IP have in a world where food and shelter (effectively all basic necessities) are free?  A point to ponder for tonight!

Wednesday, August 11, 2004: Snitchy, the BSA Weasel^H^H^H^H^H^HFerret

I don't usually report stuff from Slashdot, but this is too funny to pass up.  There's also two lame videos that someone in the Slashdot comments picked out here and here.

The BSA--a trade group supported by Microsoft, Adobe Systems and other major software makers to enforce software licenses and copyrights--revealed the new mascot Tuesday as part of a national campaign to scare kids out of using peer-to-peer networks.

Snitchy the Weasel sez: "Remember kids - rat out your friends!"

Monday, August 09, 2004: United Nations Monitoring US Election

This is good news.  The sad thing is that it's necessary in the most visible western democracy:

The Organization for Security and Cooperation in Europe was invited to monitor the election by the State Department. The observers will come from the OSCE's Office for Democratic Institutions and Human Rights.

It will be the first time such a team has been present for a U.S. presidential election.

It's a shame that the world can't vote in the US elections.  I don't think Bush (or any other unilateral xenophobes) would stand a chance.  US foreign policy affects everyone worldwide - from us up in Canada to those murdered by the hundreds of thousands in Africa.

Political rant ends...  now.

Sunday, August 08, 2004: Cabinet Checklist, Take One

Okay, gotta make myself a checklist so I can finish this project up in a reasonable amount of time.  It looks like a lot, but I can usually take out a number of these in a day.

Did I mention that a MAME cabinet requires a huge amount of commitment?  ;)

Stage One: Construction

  • Round cabinet corner sides (optional).
  • Attach 2x4's to sides of cabinet for all edges, monitor and speaker/marquee shelves.
  • Construct strong monitor shelf from already-cut wood and 2x4's.
  • Attach cabinet sides to base, using 2x4s to connect sides together.
  • Install cabinet front using Blum hinges and key lock.
  • Install cabinet back with Blum hinges and key lock.
  • Cut 45-degree angles on cabinet back diagonal piece.
  • Install cabinet top and back diagonal piece.
  • Cut T-moulding groove with router and slot-cutting bit.
  • Install T-moulding.
  • Cut 45-degree angle for control panel back.
  • Assemble control panel, using blum hinges and draw hasp for top.
  • Install drawer slides in cabinet and control panel, attach control panel to cabinet.

Stage Two: Installation/Wiring

  • Purchase 25" or 27" inch TV (possibly Sony Wega).
  • Order buttons, joysticks, coin box, marquee light, marquee retainer from Happ Controls.
  • Order Opti-Pac, i-Pac, joysticks and trackball from Ultimarc.
  • Order spinners and spinner tops from Oscar Controls.
  • Cut coin box hole in cabinet front.
  • Install coin box.
  • Drill speaker holes above display.
  • Drill control and joystick holes in cabinet top.
  • Test-install all controls, make sure everything is correct, remove controls.
  • Sand, prime and paint all cabinet surfaces.
  • Re-install controls.
  • Wire all controls to i-Pac and Opti-Pac, test controls.
  • Install TV on monitor shelf, secure.
  • Construct paper bezel for TV (from arcadecontrols.org forum instructions).
  • Install plexiglass (tinted and clear?) in front of TV.
  • Install speakers in speaker holes.
  • Install light behind marquee.
  • Install marquee with marquee retainer.
  • Install extra speakers, if needed.
  • Install subwoofer in cabinet base.

Stage Three: Computer Hardware/Software

  • Mount motherboard in cabinet by mounting in slotted 2x2 pieces of wood.
  • Mount power-supply to cabinet interior.
  • Mount harddrive and enclosure within cabinet.
  • Install additional ventilation- top and back of cabinet.
  • Install 4-port home-connect-style multimedia ports with ethernet jack in rear of cabinet (any other wiring?).
  • Drill/cut hole for single external power cord.
  • Install Fedora Core 2.
  • Install MAME packages.
  • Test-play system for kicks.  ;)
  • Set-up front end and fancy boot process.
  • ... ?
  • PROFIT!
Sunday, August 08, 2004: Starting Assembly + Some Misc Thoughts

Started putting together the MAME cabinet on friday.  I managed to get as far as assembling the base.  Since it's such an integral part of the entire cabinet, I spent a bunch of time with tubes of No More Nails and some good wood screws to make sure nothing moves. 

It supports me standing on top of it- hopefully it'll support the weight of the cabinet and the TV (which probably weighs twice as much as me together!)

Fancy tip: pre-drilling all of the screw holes should ensure that none of your wood splits.

I'm still trying to figure out how to cut rounded corners for the cabinet.  I picked up a toonie-sized washer at Rona, hoping that I can use it with some double-sided tape to guide the router around the curve.  I'm not very confident in the success (or safety) of doing it this way.  I've noticed that a lot of cabinets seem to skip the rounding step - I suppose it won't be too terrible if I just keep my 90-degree corners.

Since my last update, I've found a number of cabinet construction inspirations:

  • http://www.garry.ca/: Nice pictures of cabinet construction, including T-moulding insertion.  Lots of detail about creating marquees.  Fellow canuck (big plus).
  • arcadecontrols.org forum: Nifty implementation of a control screenshot with button labels.  I was thinking about doing this for my cabinet, but it would be nice to have something to just drop in.  Think of it as "context help" for the game you're playing on your cabinet.
  • Massive MAME Project: Canadian source for Oscar spinners.
  • Stealth Boy's MAME Cabinet: Lots of detail on good construction techniques.  Interesting links.
Saturday, July 31, 2004: Yet More Cutting

I took the cabinet sides and used the circular saw to clean up some of the nastiness I left by using a spinsaw.  The trick is building a jig using a straight piece of wood and an aluminum guide.  You can use one edge of the wood to line up your cut and then use the aluminum to guide the saw in a straight line.

I also got the top of the control panel cut.  By the time I started I was getting pretty tired and really messed up the first cut.  Thankfully you can fix most cuts with more cutting.

My recommendation to anyone considering building a MAME cabinet: make sure you can commit for a couple of months.  For inexperienced woodworkers like myself, you'll probably take a couple of hours to do cuts that a skilled worker could do in a few minutes.  I'm glad that I've been doing it- I can at least count myself as someone who can now use a power tool safely and figure out a way to make any basic cut that I need.

The MAME-cabinet-related posts are a little boring and repetitive, I know.  It's mostly so I can keep a journal of when I've worked on it so I can string them together as a basic instruction guide after I'm done.  Bear with me.  :)

Thursday, July 29, 2004: More MAME Cutting

Lots of cutting involved in creating a MAME cabinet.  This last weekend I managed to cut out the two side panels using my brand-new spinsaw from Canadian Tire.  It's a sweet tool - a bunch of different rotary tools in one.  Like a Dremel, but more heavy-duty.

I went to a number of stores looking for the T-moulding that I'll need on the cabinet edges.  None of the places here in Calgary stocked it, so I decided to order from t-moulding.com.  They also carried the 1/16" slot-cutting bit that you need to route the edges with.  I don't know how long it'll take to arrive.  At least there's some assembling to do before it all gets here (the base of the cabinet can go together before anything gets routed).

Sunday, July 25, 2004: iPod + iTrip = iLove

Thanks to the nice guys at Brightspot Consulting and their "win an iPod draw", I've come away with a brand-spankin'-new 15Gb iPod.  First thing I did was get myself one of those amazing iTrip FM Transmitters from Griffin Technology.

These devices together make up an amazing one-two combo of convenience.  To get music working in my truck, I just pop the iTrip into the iPod, hit my iPod station preset and go.  As long as you keep the iPod's volume around 70-75% you'll get a crystal clear signal.  I tried using a cassette-tape-adapter at first, but this is by far more convenient.

You should be able to find the iTrip at your local Mac dealership.

Sunday, July 25, 2004: Married Now

Been busy over the last few weeks as we get married, took a week off hidden in the mountains of BC and then returned to Calgary to get back into our regular groove.  It's been really hectic but a lot of fun.

Our wedding was in a mountain up around Abraham Lake, Alberta.  We chartered a helicopter company to take us to a little nook above a beautiful mountain lake.  It took six trips to haul our 20-person wedding party to the mossy outcropping.  The pilots gave us a great ride, even following a fantastic sepentine mountain valley river for a short while.  From the destination's ledge the view was spectacular: a green, glacial mountain lake sitting at the bottom of two enclosing mountain chains.  There was even a small glacial waterfall on the nook that we used for all of our pictures.

There's a surprising amount of work (and stress) to organize a wedding- even a small one like ours.  I can say one thing for sure: it's definitely worth it.  :)

Wednesday, June 30, 2004: Forumzilla for Thunderbird

From a suggestion in one of asa's posts, I just took a quick look at Forumzilla.  My first impression is that it's a pretty cool concept - it would allow me to reduce my number of running applications by one.  I've been running SharpReader for some time and it's certainly a memory hog, especially when you get a fair number of feeds in it. 

Forumzilla has a different concept than SharpReader, however.  Instead of each feed having its own, individual, leaf-type folder, Forumzilla lets you pick one of your mail folders to drop a particular feed in.  While this is a cool concept, I think I would prefer to have something similar to the new bookmark manager for handling the feeds:

 

I'd imagine that you would display the available folders on the right without feeds and have the folders on the right contain the actual feed locations.  You could drag and drop the feeds to the existing mail folders on the left and right side, allowing you to quickly add and organize new feeds.

What do you think?

Tuesday, June 29, 2004: Software Storage Virtualization?

Is there a good cross-platform, storage virtualization application available?  I want a magical, automatically-clustered-and-redundant service that concatenates all of the free space within an entire network into a single "megadrive" and makes that available as a shared drive to all systems.

Ideally, it would allow you to "hotswap" computers in and out of the ad-hoc array, mirroring the data between nodes as necessary to ensure that more than one copy of all data is available at all times.  I suppose this is similar to the approach that Google has been taking with their distributed file system.

You could combine all of the storage within your network into a massively-redundant shared drive.  Every night, you could even move all of the data closer to the nodes that request it most often.

If you run out of space on the ad-hoc array, just run out and buy a couple of drives and USB 2.0 enclosures to get by in the meantime.

I suppose I can keep on dreaming, but true storage virtualization would be an amazing feat.

Afterthought: I'd like a clustered filesystem that ran over TCP/IP/Ethernet rather than the expensive fibre-channel stuff.  I'll take mega-storage over mega-performance in this case.

Sunday, June 27, 2004: Far Cry in Transgaming Cedega

Far Cry works great in Transgaming's Cedega.  Chalk up another (recent!) game for Linux.

Make sure you use the Loki Installer rather than the .msi-based setup program.  It'll copy the files to the correct spot on your drive and create a launcher executable for the game.  Fire it up and enjoy!

Sunday, June 27, 2004: Fahrenheit 9/11 Post-Mortem

Saw F9/11 last night.  Good flick, certainly could have been longer - probably a ten-part mini-series with all the info in it.

The interesting part was how Moore discussed the constant, elevated fear level of the US.  Flipping around CNN, I found this story (FBI warns of possible deadly floating material).  There have been so many "terrorist warnings" without actual attacks that it makes you wonder why they even use the phrase "credible intelligence."

Saturday, June 26, 2004: Get the (so-called) Facts

I keep seeing these so-called "Get the facts" and they're ticking me off with their blatant misrepresentation of facts.

The one I just saw compared the price of Mainframe Linux with the price of Windows Server 2003.

Uhh...  isn't that a little unfair?  What about comparing PC Linux with PC Windows Server 2003?  Are they afraid to do this thing head-to-head on the same platform?  If you read the test, they are using Samba 2.2.x and Apache 1.2.x - not 3.0.x and 2.x, the latest versions respectively.  Wouldn't it be fair to compare the newer versions of the applications with Windows 2003?  Or perhaps the older versions with the equivalent of Windows 2000?

I'm sure that in this case there isn't any real lying, as far as distortion of facts goes, but it's certainly not very honest.  It's a shame no-one is running any true head-to-heads tests on the same hardware to counter these studies.

Wednesday, June 23, 2004: Transgaming Cedega Rocks

Fired up WineX 4.0, aka Cedega, to play some Tribes 2 tonite.  What an amazing accomplishment - it runs perfectly, and fast to boot!

Running Windows games under Linux: one more reason never to dual-boot (as if I had any left ;)).

Wednesday, June 23, 2004: .NET ThreadPool Woes

I discovered a deadlock in some code using the ThreadPool to do some database connectivity tests.  It turns out that some of the database code in the .NET framework uses the thread pool to get database connections.  This results in deadlocks when spawning too many threads trying to open database connections.

Microsoft needs to add a parameter to the QueueWorkItem method that specifies the approximate number of additional threads needed by a work item.  This could ensure that the appropriate number of threads were free before starting the item.

Looks like it's back to the custom thread pool implementation again....

Monday, June 21, 2004: My Adblock Patterns

Here's some home-grown Adblock patterns for your enjoyment (save as "adblock.txt" and use the import option on the Adblock preferences screen):

[Adblock]
http://*.atwola.com/*
http://*.atdmt.com/*
http://i.cnn.net/*.js
*/partner_backlinks.js
http://*.googlesyndication.com/
http:/*.imrworldwide.com/*
http://*.questionmarket.com/*
http://*.bluestreak.com/*
http://images-aud.slashdot.org/*
http://ads.*.com/*
http://*.tribalfusion.com/*
http://*.serence.com/*
http://*.burstnet.com/*
*advert*
http://*.tangozebra.com/*
http://ads.*/*
http://*.doubleclick.net/*
http://*.adtech.*
http://*.subsitesadserver.*
http://*.msads.net/*
http://us.a1.yimg.com/*/a/*
http://*.cecash.com/*

I try to block ad network URLs versus pathnames - there's only so many sources for ads out there. Thankfully the sites listed above seem to provide the majority of ads that I've seen.

The goal is to be able to read a few of the sites I visit each day without the annoying/flickering ads.

I have no sympathy for webmasters that make their living solely from ads. When ads were small (!) banners at the top of each page, they were annoying but livable. Once they doubled the average size, started adding multiple ads along the sides, putting rectangular ones in the content and scattering little ones all over they lost any chance of keeping my support.

At least most blogs are ad-free for now- that's where the content is anyways. I won't hesitate to unsubscribe from anyone that tries it, however. :)

Saturday, June 19, 2004: Morality of Blocking Ads

An interesting comment posted by one of my readers:

Blocking ads is very nice and all, but you do expect most websites to provide free content don't you? For most content websites, advertisements are the only way to cover their bills (and maybe even make a little profit). If you and everyone else block these advertisements, content websites will either have to close or go paid-subscription only. Would you like this? I think not, so how about uninstalling that Adblock extension, and viewing a few advertisements now and then?

Dennis assumes that I have some moral obligation to view ads on a site because I am viewing the site itself.

I managed to find an interesting article on Google Groups that sums up my position pretty clearly:

An expectation of revenue on their part is not a commitment on your part.

Personally, I fast-forward through all TV ads on my PVR and block 99% of web ads with Ad-block  I don't really see how I'm obligated - morally or legally - to view ads on a site's page to support a tenuous business model.  As well, it's been legal since the 70's for me to tape live TV with commercials and watch it any time later sans-commercials.

When it becomes illegal for me to leave the room while watching Fox I might become a little concerned.

Saturday, June 19, 2004: MAME Cabinet Woodworking

I managed to get the majority of the wood cuts done for my MAME cabinet today.  It took about an hour to mark each piece out, then about two hours of clamping the aluminum guide and running the circular saw.

Before I started the project, I never would have guessed how much work it would turn out to be.

The last cuts are going to be the cabinet sides.  Fortunately it's better to cut both sides at the same time - this ensures that even if you make a mistake the cabinet sides will still match.

Wednesday, June 16, 2004: Why you should use Firefox + Adblock

CNN.com, before and after installing Adblock.

 

It takes a bit of getting used to (remember your old DOS wildcard days?), but it's pretty easy to come up with good patterns to block 90% of all ads within about 20 minutes.

Tuesday, June 15, 2004: Firefox 0.9

In a word - still really amazing!  Oh wait, that's three.  Well, Firefox sure deserves all three anyways!

Install it today - even though the promise of automatically installed spyware sure is mighty appealing.

Monday, June 14, 2004: Canadian Copyright Issues

I'm not certain how many of my readers are fellow Canadians, but copyright is certainly something on my mind this coming election.  There's an excellent editorial in the Toronto Sun that Canadians should read.

I think I'll be voting NDP this time around.

Sunday, June 13, 2004: Scoble's Link Blog

Scoble's link blog posts an excerpt from the article, then seems to pick one of the links from within the article as the "More..." item.  There's no way to read the full article!

I'm not sure that the blog is too useful for original-content (versus external linking) articles. 

This is an excerpt from one of my posts on his link blog:

.NET Desktop Apps - Slow & Bloated (from: grack.com)

I've got a couple of .NET desktop apps running on my work system (with a gig of RAM nonetheless) and it seems like they are always the applications that are sucking up the most memory. ...More

Posted by scoble at 10:32 PM

There's no way to read my the text of my article from there - it picked up the reference to Draco.NET that I placed in the post, but won't let anyone visit my blog to read what I said. :)

Saturday, June 12, 2004: .NET Desktop Apps - Slow & Bloated

I've got a couple of .NET desktop apps running on my work system (with a gig of RAM nonetheless) and it seems like they are always the applications that are sucking up the most memory.

I run Sharpreader at work for a couple of interesting feeds and it hovers around 70MB when open!  Minimizing it seems to reduce the working set to 2MB, but it's still using 69MB of virtual memory while sitting there.

A GUI monitoring tool that I wrote for Draco.NET seems to take up 30MB (plus 30MB of swap) all the time while it's sitting in the taskbar.  It's basically just a WinForms app that calls a remoting service - no fancy tricks.

We seem to be at the same place with .NET apps now that we were with Java apps five years ago - they hog tons of memory. 

Is there any way to get your apps to run leaner?  Heck, the AVG anti-virus console on my home computer uses 2MB of total RAM.  That's physical + virtual.

For now, I'm questioning the usage of .NET for any application that normally runs in the background.  I'm not sure that 60MB for a simple monitoring app is a good call.

Wednesday, June 09, 2004: Fixing Firefox Winstripe Spacing

All my readers, please note that this is constructive criticism (as well as a fix!) for the new theme, not an emotional rant or complaint.  Ben Goodger has done an awesome job in getting Firefox ready for 0.9.

The first time I fired up Firefox 0.9, I wasn't too happy with the new, default Firefox theme.  However, It turns out that it mostly the awkward spacing that was making the icons look out-of-place.  As strange as it seems, reducing the spacing makes the entire theme look a lot better.

I managed to reduce the spacing on the toolbar buttons by hacking the skin chrome.  You'll need to place this in a file named "userChrome.css" under your Mozilla\Firefox\Profiles\profile\chrome directory.

.toolbarbutton-1, 
.toolbarbutton-menubutton-button 
{ padding: 3px !important; }

.toolbarbutton-1[checked="true"], 
.toolbarbutton-1[open="true"], 
.toolbarbutton-menubutton-button[checked="true"], 
.toolbarbutton-menubutton-button[open="true"] 
{ padding: 4px 2px 2px 4px !important; }

Here's the shot from before (with awkward spacing):

And after tightening up the spacing a bit:

Looks much better to me - not a huge change, but enough to make me feel more comfortable with it.

Monday, June 07, 2004: Big Flames Game Tonite

The underdog team has made it to game 7 of the finals.  "Flames fever" has pretty much devoured the city.

We're in for a game tonite.

Sunday, June 06, 2004: Source Control for the 21st Century

Having been using CVS for the last four years in a commercial environment, I'm certainly pretty comfortable with it.  Branching and merging is tricky (sometimes painful) as usual, but losing file history on rename is a killer.  WinCVS has been the gravy on top that keeps us using CVS.  Anyone who might have had the misfortune of trying to work with command-line rcs or cvs knows how much more productive a GUI makes things.

I've been evaluating alternatives in the next generation of free SCC applications.  Given the above issues I've had with CVS, my requirements are:

  • Supports directory/file renaming with file history saving
  • Supports common-ancestor file merging (ie: multiple merges to a branch won't conflict)
  • Has a reasonably good GUI to support 90% of the CLI functionality

My "nice-to-haves" would be:

  • Visual Studio integration
  • Conflict resolution via "three-file method" (file.mine, file.other, file.ancestor) versus imbedded conflict markers (CVS-style >>>>>> and <<<<<< markers)
  • Easy on-line backup capability (for any SCC system running off a database)

I'm crossing my fingers waiting for Subversion to support the multiple-merge support.  It feels like the project with the most elegant and future-proof design.  It certainly is a pain to get up and running on some older RedHat distributions (db4 and Apache 2.0 requirements).

Friday, June 04, 2004: Fahrenheit 9/11
The trailer for Fahrenheit 9/11 is out.  Looks like it'll be a great movie - hopefully as interesting as Bowling for Columbine was. 
Friday, May 28, 2004: IntensIT

Myself and a number of co-workers entered the IntensIT competition here in Calgary.  The competition is designed for IT workers, the goal being to write as much of a complete system as possible within eight hours. 

We ended up taking 1st-place overall thanks entirely to the excellent meshing of our team.  I suppose this proves that methodology doesn't matter whatsoever, but people do...  at least when you're creating an entire system in eight hours, that is.

Oh yeah- using NUnit, NAnt, Draco.NET and CVS really do make your life easier when you're under the gun.

Monday, May 24, 2004: Easy News Server with Cyrus-IMAPD

I've been playing around with Fedora Core 2's Cyrus IMAP a bit and discovered the cyrus-imapd-nntp package.  This lets you export a shared IMAP folder via NNTP.  The cool part about this is that it's a standard IMAP folder, like every user's INBOX and custom folders.

This means that to set up a newsgroup, you only need to run cyradm and enter the following commands:

cm netnews.some.newsgroup
setacl netnews.some.newsgroup group:users post

Assuming you've added "newsprefix: netnews" to your imapd.conf, this will add a new newsgroup "some.newsgroup" and give everyone post permissions.

Cool, eh?

The tricky part for me was figuring out how to actually connect to the Cyrus administration tools.  The secret was the reset the password for the "cyrus" account and connect with "cyradm -u cyrus --admin=login localhost".

Monday, May 24, 2004: Study Shows WMA Not That Great

Looks like Vorbis walloped WMA on the Multiformat listening test.  You probably won't see any Microsoft "Get The Facts" ads touting the quality of WMA any time soon.  :) 

If you're interested in how the test was run, Roberto Amorim has a page with all the details.

Personally I'm still using MP3s as my primary ripping format as it's the format supported by pretty much every piece of software and hardware out there.  After this, I'm considering switching to Vorbis.  Unfortunately, I'll have to give up my coveted iTunes at work unless I can find either a plug-in for Vorbis music or an iTunes clone (for Windows) that supports it.  Any hints?

The second-place winner,Musepack, is something I haven't heard of until I saw the test results.

Sunday, May 23, 2004: More 1&1 Frustration

Not only was 1&1's server hosting my site down for a few days, but they've managed to bring it up with incorrect permissions so that I can't modify anything within it! 

At least it's still accessible to the outside world.  Sigh.

Saturday, May 22, 2004: Fedora Core 2

I'm performing the task of "apt-get dist-upgrade"ing to Fedora Core 2 as we speak.  The biggest reason is that I can't get the latest development 2.6.5/2.6.6 kernels to boot on my system.  It's freezing right after the "freeing kernel memory" line (trying to find /sbin/init, I assume).

I've found a thread on Google Groups potentially related to this issue, but I haven't tried out the patch mentioned.

Saturday, May 15, 2004: Trouble with 1&1 Hosting

Looks like 1&1 hosting is having some trouble with my site.  I'm in the process of temporarily shifting the site elsewhere so things might be a bit broken for a bit while the DNS changes propagate.

UPDATE (6/26/2004): Since Google has been directing a few people to this site, I thought I'd at least describe the situation a bit more.  It looks like one of the 1&1 servers with my host on it crashed, leaving my site inaccessible for more than a week.  When they finally brought it back up (from backups, I assume) it had incorrect permissions and I couldn't update anything.  After a number of support requests (email and form-based), I finally managed to convince them that it was their problem.  The first engineer even gave me a templated response, without reading my support mail!

It took a total of two weeks for the whole thing to be resolved, but it's been pretty good so far since then.  I know of another person hosted by 1&1 that hasn't had any issues, so I might just have been unlucky.  Since I'm using their three-years-free-no-strings-attached plan, I'm not going to complain too much.

My biggest peeve with 1&1 is that DNS has to be hosted by 1&1.  You'll get a nasty mail if your domain's nameservers aren't 1&1's and they check once a week.  This means that you can't host www.yoursite.com on 1&1 with your NNTP or FTP server somewhere else.

Other than that, their management console is pretty sharp.  It's easy to set up permissions, passwords and the like for all your directories.  SSH access is provided too, for extra tweakage.  :)

Monday, May 10, 2004: SCO Poland Dead - 1 Down, X to Go!

Groklaw reports that SCO of Poland has closed its doors.  This part is classic:

Furthermore the former head of the office has set up a Linux business, specializing in helping folks migrate from SCO software to Linux.

Sadly, a number of engineers caught up in SCO's nastiness might now be unemployed.  My best wishes go out to them.

This, I kid you not, is the image currently on SCO Poland's site.  Classic!

 

Wednesday, April 28, 2004: QEMU Reloaded

With the latest release of QEMU (0.5.4), it now boots Win2k perfectly.  I've fixed a small bug in the code preventing the Bochs VBE display driver from working and the full-color support looks awesome.  All but the first screenshot are running 1024x768x16bpp visuals.

Note that XP should boot full-color fine without the patch since, AFAIK, it has full VESA 2.0 support built-in.  You should be able to get 8-32 bpp visuals from the default Standard VGA driver.

Also, notice that QEMU runs Firefox flawlessly.  It's a good test for full-color screens.

   

VMWare has a new contender.  :)

Friday, April 16, 2004: Boycott Caller ID for E-mail?

I was looking around for more info on spam/joe-job prevention and I came across a site proposing a boycott of Microsoft's Caller ID for E-mail technology.  The page raises some interesting points - mostly about why Microsoft has filed patents on what they want to be a core Internet technology. 

Unfortunately, with their track record, I'm not certain that I can trust them with holding all the cards.  If the patents really are defensive, why don't they assign the patents over to the IETF and remove that silly patent attribution clause that prevents interoperability with some open-source licenses?

Tuesday, April 13, 2004: QEMU Boots Win2k

I'm a sucker for i386 on i386 emulation.  Check out QEMU booting Win2k in Linux:

   

I think the screenshot window clipped the first shot by accident as it was coming up.  Oh well.  Still very, very cool.  ;)

Seems to take a while to enumerate devices after install (still happening right now).  I'll post more shots later if it works.

Tuesday, April 13, 2004: Draco.NET Gets a GUI

Are you a .NET coder?  Using continuous integration, or want to?  If so, check out Draco.NET.

Draco.NET now has a client-side GUI.  It can monitor your check-in builds and trigger a forced or normal build.  It sits in your system tray and hides itself when not needed.

You'll need to build Draco from CVS to get this particular feature.  With any luck, there will be a 1.5 release soon and 1.6 betas soon after!

Monday, April 12, 2004: Cool Firefox Extension Idea!

Okay, I'll admit it.  My mind is racing with extension ideas right now.  May as well dump one here for future reference.

So, here's my cool extension idea: take all of the bookmarks in the browser and sync them with a central server via a webservice.  Allow deep custom categorization of bookmarks and keep the folder structure on the server.  For extra credit, archive a current copy of the page for future reference if the page goes away.  If you have extra time, write an IE plugin (or external program) that does the same thing.

Now, where to host such a webservice?  :)

Monday, April 12, 2004: Innovate, Don't Cry?

I found a particularily amusing comment in my earlier Thunderbird article:

You seem to know the Thunderbird developers by name, which makes your post quite biased, but comparing Outlook to Thunderbird is like comparing USA to Afghanistan in military power. At least be reasonable and compare it with Outlook Express. The bias you guys are expressing makes mozilla look like a toy without much substance. You got to shows some honesty somewhere if you want to build real relationships with customers and users. Outlook is a platform, there are tons of useful programs that extend Outlook in anyway they want. Thunderbird is more like a simple program and has its own competitors in the shareware business. There are many shareware programs which is faster and better than Thunderbird, yet you pick Outlook as competitor. Most probably you want to gain sympathy, but believe me every company that does that goes out of business sooner or later. You got to innovate, instead of cry.

Unfortunately, Outlook Express isn't a fair comparison.  It would easily take a beating when stacked up to Thunderbird's features, stability, UI and speed.  I might be deluged with comments saying "try Outlook instead!" 

As much as I'd like to say that I'm "in" with the Thunderbird developers, I'm just an outsider that's been keeping an eye on Thunderbird for a while.  Anyone who's scanned the Thunderbird forums would know who mscott is.  I've also been using Mozilla Mail for about four years before my Thunderbird switch. 

I'm sorry to say that no, I haven't had any experience with any of the Windows shareware mail programs out there.  There was a period of about a week that I used The Bat! in the 90's, but I was using Outlook at the time and it didn't fit the bill.  Other than that, nothing.  I use Evolution on my Linux box at home, though I'm considering a switch to Thunderbird there as well (if only for Evolution's VFolders in Thunderbird!)

I stand by my previous glowing review of Thunderbird.  It's small, fast and looks like a modern email client should.  It's also dog-easy to extend via XUL and Javascript- something that Outlook Express sorely lacks (there you go - I compared with OE).  If I somehow find myself lacking a certain feature in the future, I might just try my hand at extending it.

BTW, the Macro Editor and XULMaker extensions might be an interesting thing to try.  Perhaps another day.

Sunday, April 11, 2004: Organizing Filters in Thunderbird

It took me a while to figure something out that works, but I've figured out a way to organize my filters in Thunderbird.  Since I have something like 40 rules, editing and understanding them was started to become difficult. 

My solution?  I started adding fake filters as separator lines between the groups of filters.  They now look like this:

--- People Filters ---
Person A
Person B
--- Mailing Lists ---
List A
List B
--- Miscellaneous ---
Spam
Viruses

I would love to have filter folders or some other form of hierarchical organization, but this will do for now. It's much easier to understand your filters when you can see them executing as a block of similar filter types. I prefer my people filters to execute first, followed by mailing lists and opt-in notifications (bank, Yahoo, Google, etc.) and, finally, my SpamAssassin-tagged-message rule filters.

Sunday, April 11, 2004: IE6 for Linux
Wow.  You can run this script to automatically install IE6 in Linux.  If you feel that the CSS support in Firefox is too good, you can now use a broken browser in Linux too!  ;)
Saturday, April 10, 2004: Shazbot! Tribes 1 and 2 for Free

Vivendi Universal is releasing, for free (gratis), two of my favorite games ever: Tribes 1 & 2.  This release is geared at getting games' juices fired up in anticipation of Tribes 3. 

I'm glad to see that people realize that freeing abandonware can be useful. 

Wednesday, April 07, 2004: Multi-Session X and Project Utopia

rml posted some use cases for Project Utopia.  If they can solve these issues smoothly (which I'm pretty sure they'll pull off), Linux will take a big jump in terms of general plug'n'play usability.

Unfortunately, the use cases miss out on one of my favorite new features - multi-session X.  You can easily start two X servers on two different virtual consoles right now, but the new gdm stuff will support suspending and resuming X sessions, as well as nested X servers.  This will help Linux catch up to the cool multi-user login features of Windows XP. 

It's tricky to get this working well in Linux right now - there's a bunch of magic that goes on behind the scenes to make sure the console user gets the proper permissions.  This stuff needs to get upgraded to handle this multi-session magic.

I've got a solution where I've added all of my potential console users to a "console" group and assigned root.console to each of the devices that console users might need (ie: /dev/nvidiactl, /dev/dsp).  This works for now, but I'd like to see this handled via ACLs or some other fancy way.

Wednesday, April 07, 2004: Evangelism: First Firefox, Now Thunderbird?

After installing Mozilla Thunderbird yesterday, all I can say is "wow!"  Not only is the look ultra-slick and refreshing, but it's so fast that it really does deserve to be alongside an amazing browser like Firefox.  They've done such a great job that people nearby just start using it without even saying anything.

Before Thunderbird I wasn't willing to push the Mozilla mail client on anyone.  I was using it before and, while it was fast, it looked like a relic of the Netscape 4.0 days.  As well, you needed to match it with the Mozilla browser.  Also fast, but not an end-user polished package.

Thanks to mscott and the rest of the Thunderbird team, however, it has been transformed into a modern, polished mail client.  It even fits seamlessly into XP, something I find that Office 2003 doesn't do well.

The build I'm using at work is their latest "weekly build".  So far it's been smooth sailing.  Alongside Firefox (with its Google bar, ad-blocking and tabbed browsing), I've got a couple of amazing productivity tools that Outlook could never beat.

Wednesday, March 31, 2004: Canadian