grack.com

2003

Atech Pro-9 9-in-1 Card Reader in Linux

I just purchased the Atech Pro-9 9-in-1 flash card reader.  This thing is extremely cool- it has a number of different ports on the front to plug various storage items into.  A bit pricey (CDN$100), but cool nonetheless!

Getting it to work under linux is trivial.  If your kernel has CONFIG_SCSI_MULTI_LUN set, it will work out-of-the-box.  If not (RedHat kernels don’t set this flag by default), just add the following line to your modprobe.conf file for 2.6.x:

options scsi_mod max_luns=512

Or, if you are running 2.4.x, add the following line to modules.conf:

ASP.NET profiling is here

I’ve just checked in some code that will allow profiling of ASP.NET. Anyone interested in trying this out before the 0.8 release should send a note to the nprof-developers mailing list.

nprof 0.7 released - fixes packaging bug

I had made a mistake in packaging 0.6 and forgot to include NProf.Hook.dll. This has been corrected in the 0.7 package.

Sorry for the inconvenience.

nprof alpha 0.6 released

The nprof 0.6 alpha release is now available. Changes in this version are:

  • Fixes for recursive function calls
  • Some minor GUI updates (double-click profiler runs to open)
  • VS.NET add-in work - moved enable item to menu
  • Fixed major slowdown in large profiler runs introduced last version

Those people who use the VS.NET add-in should be very happy to know that it’s been worked on a fair bit. It should perform as expected now (at least it did in my testing).

Bugzilla.NET 0.1!

Bugzilla.NET version 0.1 has been released!

Bugzilla.NET is my Visual Studio.NET <-> Bugzilla integration project. So far it has the ability to query Bugzilla from within Visual Studio and synchronize a set of tasks with a given set of server-side queries.

Requirements:

  • Bugzilla 2.16.1 or later
  • Visual Studio.NET 2003 (2002 may work, but is untested)

nprof alpha 0.5 released

The nprof 0.5 alpha release is now available. Changes in this version are:

  • Improved UI (about box, new project icon)
  • Fixed sorting - faster, doesn’t crash
  • Removed GUILibrary dependency
  • New NAnt build scripts
  • Fixed callee timing percentages (now display as % instead of useless total ticks)
  • Added suspended time in callee description
  • Added command-line interface for SharpDevelop integration

The big change for me is the NAnt integration. This should allow me to release nprof more often (by removing the previously tedious and error-prone release steps). It should also help anyone interested in enhancing nprof to get a packaged release for testing.

Linux for Travel Systems

Since Scoble has been pushing Morton Thiokol stories over the last few days, I thought I would counter with a Linux success story from this article (first page here). 

“Sabre Holdings Corp., based in Southlake, Texas, is a $2.1 billion holding company with four technology-based travel business units: the Travelocity online travel site; the Sabre Travel Network, which operates the Sabre reservations system for travel agents, suppliers and travelers; GetThere, a Web-based corporate travel service; and Sabre Airline Solutions, which provides software and consulting services to airlines.”

New Google Zeitgeist

The latest Google Zeitgeist is out.  Using the approximate readings from this forum post, it looks like the new (very approximate) browser shares for Google are:

  • MSIE 6.0: 68.5%
  • MSIE 5.5: 10%
  • MSIE 5.0: 11.5%
  • Netscape 6+ (Mozilla): 5%
  • Other: 5%

The total is 100%, but that luck more than anything.  I didn’t fudge any numbers, but I eyeballed most of them.  Each of those Google major ticks are 15%, from what I can tell. 

Good news: Mozilla is now 5% of the web (according to Google). 

Spamassassin Cleaning (Updated)

UPDATE: Perhaps I don’t know my procmail as well as I thought. There was something wrong with this setup and I don’t know what it was. I ended up with major mail loops as sendmail tried to redeliver messages to my local address over and over, which were then forwarded to the unpublished account (which refused it because it was an invalid address!). Any ideas?  For now, I’ve updated this setup to deliver locally–something that’s fairly straightforward to do for most people.

And now, back to our regularly scheduled entry:

nprof: Long Delayed Update

It’s been a while since I last put any news on this page, so I thought I’d do a quick update:

New Project: Bugzilla.NET

I’ve started a project to integrate the Bugzilla bug tracking system with Visual Studio .NET.  So far, I’ve managed to get a “quick query” window in Visual Studio, as well as synchronization for server-side saved searches with the Task List window.  This should help make bug lists more available for anyone using both VS.NET and Bugzilla.  My plan is to put it up on Sourceforge, but I haven’t had a chance yet. 

Pushing RSS with XSL

I wonder if I can get Dave Winer to start pushing more user-friendly RSS with XSL.  I would like to see someone collect a library of XSL transformations for RSS/RSS2.0 and Atom that can handle pretty much any valid feed.  Would this be a better way to softly introduce visitors to RSS?

Permalinks

I’ve added permalinks for all of my articles, as well as commenting for most of the pages within this site (the news pages themselves being one exception).  This means that you can now comment on the various coding projects I’ve worked on.

x0rfbserver dead - long live x11vnc

It seems as if x0rfbserver is no longer around.  I’m not sure the program was really supported by its author, so it’s no surprise.  Fortunately, a number of replacements have popped up!

So, for a fantastic replacement application, try x11vnc by Karl Runge.  I managed to get this installed and running with virtually no effort.  It uses the fantastic libvncserver library to do its magic.  Just make sure that you have the requirement libraries, headers and source (libjpeg-devel, zlib-devel and XFree86-devel) available.

Starting it is just a matter of running the x11vnc executable.  For anyone looking for VNC for an existing X11 session, I highly recommend this program.

CreateToolWindow without a Shim

For those of you writing Visual Studio.NET 2003 add-ins in C# (or any other .NET-enabled language), you might have noticed that CreateToolWindow doesn’t really work with real .NET controls.  Fortunately, this piece of code fixes this problem.  It’s a bit of hack, but it works for me so far and was created by using Reflector to figure out exactly what was going on.

Sharpreader via Mozilla

I’ve managed to replace the built-in IE control in SharpReader with a nice, fast Mozilla ActiveX control.  There’s a few easy steps to follow to get this working:

  1. Stop SharpReader.
  2. Download and install the Mozilla ActiveX control: MozillaControl.exe (5 MB).
  3. Rename the file AxInterop.SHDocVw.dll to AxInterop.SHDocVw.dll.old.
  4. Extract the new AxInterop.SHDocVw.dll file from here: (download no longer available) (11 KB).

That’s it- when you start SharpReader, you’ll see a nice Mozilla window instead of IE.  To test if it works, right-click the page and select “Properties”.  You’ll see a Mozilla-style window like this if everything worked:

RSS + CSS + XSL = Love

In his latest post about RSS, Robert Scoble says:

“Now, imagine a new syndication format that brought up a page that showed what a news aggregator was, and explained how the system worked and why it’s more productive.”

My challenge: create a plug-in XSL file that works with RSS to explain to the user what RSS is and point him at a application to read RSS.

This is actually a fairly easy task.  XSL can be plugged into any arbitrary XML file via something called a processing instruction.  In the XML file, these appear as tags of the form:

FreeTextBox

Mental note: FreeTextBox looks really cool.  This would be a great addition to TWiki.

Dead Like Me

If you haven’t seen Dead Like Me yet, try and find it.  Good stuff.

Bittorrent + Reed Solomon Revisited

I posted the analysis from earlier to the Bittorrent development mailing list. I received a reply from Bram Cohen illustrating one flaw in the argument:

You make the assumption that the probabilities of different clients having a given block are decorrelated, which is wrong. That’s the point of rarest first, it makes it so that if one peer doesn’t have something it’s more likely that another peer will.

New provider

grack.com has moved to a new provider.  Thanks to 1&1 hosting, I’ve got 500 MB of webspace for the next three years - free!  It’s got a nice control panel interface, SSH and FTP access.  You can see more details about this package here.

Bittorrent + Reed Solomon Code

For a while I’ve been wondering if a hybrid Bittorrent/Reed-Solomon system would be a more effective swarming download system. 

Just to make this clear ahead of time, I don’t believe the benefits of the Bittorrent/Reed-Solomon system would kick in until the torrent had been running for a longer amount of time.  The reason for this is that Bittorrent has a built-in “rarest first” algorithm (described in this Bittorrent paper).  The obvious goal the “rarest first” algorithm to replicate the rarest pieces of the system first, while leaving the most common pieces - the ones most likely to be around longer - until the end. 

RSS 0.91 feed

I’ve added an RSS 0.91 feed.  Get it at http://feeds.grack.com/grack, or use the RSS links at the bottom of this page.

x0rfbserver

UPDATE: x0rfbserver has disappeared from the web.  No worries, however, as x11vnc is an excellent replacement.

I’ve just discovered the joy of x0rfbserver.  I always had trouble understanding why the unix VNC’s wouldn’t allow exporting of a pre-existing X session.  With x0rfbserver, you can export your existing X session to another computer.  This is how WinVNC works under Win32 - it’s handy in certain cases when you don’t own a KVM switch.

You’ll need to install the xclass and rfb rpms.  I couldn’t find any for RedHat, but the Connectiva i386 ones worked like a charm.

Bochs GUI

This is the prototype Bochs GUI that I’m working on. Many Windows users judge the quality of a program by the “Windows-ness” of its interface. Bochs is a powerful tool, but as the current Bochs interface looks archaic (despite it’s full-featuredness), it may potentially turn off a number of users. My goal is to create a UI that feels rich and native to a Win32 user, without needing major modifications to Bochs.

Screenshots:

(UPDATE) Newer screenshots:

Getting into Death Match

I managed to find a copy of Death Match on an old CD.  It took me a little while to the program running.  The first thing that came up was a copy protection scheme that I had written into it.  At the time it was written, most commercial games had a lookup sheet that you would need to consult to get the program to run.

I had written up a scheme where each letter would map to a different symbol.  For instance, the letter A maps to .  The screenshot below illustrates what a user would see:

Identd added

I added a page for a description and download for Identd (binaries and source).

Located more code

I’ve managed to locate the code for HP-Kermit, as well as the binaries for the first version of Death Match.  I’ll have these items up (as well as screenshots for Death Match) as soon as I can.  I also managed to find the source for some of my POV-Ray  stuff, as well.

Style picker

I added a style picker to the bottom of the page to allow the visitor to pick which style they would like to use when navigating the site.  It uses a piece of Javascript written by Mark Wilton-Jones to save the current stylesheet in a cookie and later restore it when the page changes.

Each style link consists of a short Javascript link like so:

javascript:changeStyle('Default Style')

A small script in the <head> section of the HTML, along with the body onunload method, is hooked up to the style saving/loading code to transparently maintain the user’s current style:

New site up

I’ve finally got grack.com up to a point in Citydesk where I can publish it.  I’m still not completely convinced that I’ve got all my content up, but it should at least appear as if I do.  Let me know if you find any errors or omissions.

nprof: New Feature Idea

I was considering adding a new feature to the profiler, but I’m looking for some feedback before starting. My idea is to hook up a function call tracer that could be enabled or disabled at any time during the profile run. This would allow you to track function calls made in response to a user action, such as clicking the mouse or hitting a keystroke. Ideas? Suggestions? Send them to the mailing list.

nprof alpha 0.4 released

The nprof 0.4 alpha release (both binaries and source) is now available! The tabbed interface has been improved and a number of bugs have been fixed.

Note: there was a last-minute correction to the download, for those who might have jumped on it after it was released. The latest filename should be nprof-0.4a-alpha.zip.

Remember to send me some feedback if you’re trying it out.

Screenshots:

nprof alpha 0.3 released

The nprof 0.3 alpha release (both binaries and source) is now available! The new feature this time is a tabbed profiler interface. The source zipfile is a direct dump of CVS, so it should compile fine for you.

The VS.NET add-in is very basic right now and has some issues with VS.NET stealing focus. This will be enhanced in future versions. See the README.TXT file for more information.

Remember to send me some feedback if you’re trying it out.

nprof: Not Dead Yet

Contrary to popular belief, I’m not dead and neither is this project. :) I’m busy getting ready to release the next version of NAnt, the other open-source project I work on. Unfortunately, I only have a limited number of hours per week to devote to all of the projects I contribute to. This means that progress might be spotty at times depending on whether I’ve gotten to something or not.

As for the code in CVS, I’ve had reports of it not being compilable. Unfortunately, there have only been a few reports in total. Let me know how the code works for you if you’ve had a chance to try it out!

Importing nprof sources to CVS

I’m trying to import the nprof source into CVS as we speak, but I think the Sourceforge servers are down. This may have to wait a day or two. There is currently a source zip snapshot on the Files page for interested parties to take a look at.

Update - whadayaknow? I managed to get it uploaded.

nprof alpha 0.2 released

The nprof 0.2 alpha release is now available! Some of the new features include:

  • More accurate numbers for total time %
  • Correctly handles exceptions thrown
  • GUI allows working directory and arguments to be specified
  • Namespace filter to filter timing info by specific combinations of namespaces
  • Basic VS.NET add-in

The VS.NET add-in is very basic right now and has some issues with VS.NET stealing focus. This will be enhanced in future versions. See the README.TXT file for more information.

Main window:

nprof alpha 0.2 in development

The next alpha release (0.2) of nprof is currently in development. The exciting new feature in this release is Visual Studio integration.

By installing this VS.NET add-in, you will be able to enable profiling for your .NET projects from within the environment!

nprof alpha 0.1 released

The nprof 0.1 alpha release is now available! Some of the new features include:

  • Ability to profile managed/unmanged code transitions
  • Profiler now tracks runtime suspended time
  • Thread-aware GUI, filter timing info by thread
  • More accurate numbers for total time %
  • Show % time in method as well as % time in children
  • Check for profiler hook version number, ability to veto profiler hook if mismatched version

Screenshot:

nprof alpha 0.0 released

The nprof 0.0 alpha release is now available! It’s mostly a proof-of-concept release, but it will profile most applications. Please try it out (see the download link here) and send me some feedback.

nprof alpha 0.0 in the works

The first version of nprof (0.0) is in preparation for release.

The currently available features are:

  • Multithreaded profilee support
  • Callee function timing
  • Basic GUI interface
  • Sort by timing info

nprof is designed to be not only a profiling application, but a fully-featured API that can be used to build other profilers, as well as extend the default API.