Saturday, 27 December 2008

Free Demonoid Invitation Code

Just for fun, I've been having a look at Google Trends for "demonoid invitation code". Demonoid is one of the web's most popular private BitTorrent trackers and forums. Legal threats from the legal threats from the Canadian Recording Industry Association drove it to close on November 9th, 2007, only to be reopened some 6 months later in the hands of a new administrator. The closure is clearly visible in google's trend:

Demonoid on Google Trends
Alexa is another good site for monitoring internet trends. Here's Alexa's graph comparing Demonoid with two extremely popular public trackers, The Pirate Bay and IsoHunt:

Demonoid vs. Pirate Bay vs. IsoHuntDespite all the research, I was still unable to find a legitimate invitation code for Demonoid, although there seem to be plenty of scams out there. This post is a bit of "search bait" to see how many hits it generates compared to my (ir)regular posts. Sorry to disappoint any invitation code hunters.

Friday, 12 December 2008

Ruby on Rails Debugging Tools

Scott Raymond's "Ajax on Rails" book contains a chapter on debugging and testing Rails applications. Unfortunately, a lot of this content is not applicable to Rails 2, as script/breakpointer has been removed from the framework and replaced by ruby-debug.

Fear not. Railscasts has an excellent screencast on ruby-debug, covering installation and basic usage of the tool. Data Noise explains some more advanced uses, such as remote debugging, here.

Another tool described in Ajax on Rails is Rick Olson's Routing Navigator plugin, which was also doesn't seem to work with Rails 2.

Thursday, 13 November 2008

Software as a Service and Cloud Computing

I've been doing a little research recently into Software as a Service (SaaS) and Cloud Computing, and have come across a couple of interesting articles. A couple of weeks ago, The Economist ran a special report on the evolution of Corporate IT (here, or in PDF). Tim O'Reilly posted a concise but interesting post on the O'Reilly Radar about Web 2.0 and Cloud Computing.

Sunday, 12 October 2008

SimpleViewer, Blogger and Picasa Web Albums

SimpleViewer is an excellent Flash based image viewer by Airtight Interactive (Felix Tuner). It's behaviour and image gallery can be configured by using an XML configuration file. There are even user-friendly tools available to generate these XML files. I have happily been using SimpleViewer on my blog for some time now, but have come across some obstacles on moving from my own hosted site to a custom domain hosted by Blogspot, with images hosted in Picasa Web Albums.

The solution requires the use of a file hosting service which allows http access to Flash files (.swf) and XML files. FileDEN currently allows both. For some reason, SimpleViewer doesn't seem to locate the gallery if the flash and xml files are hosted on two different domains.

Anyway, here's an example of the setup:



The code is as follows:

<embed type="application/x-shockwave-flash" bgcolor="#000000" flashvars="xmlDataPath=http://www.fileden.com/files/2008/10/8/2134533/gallery.xml" src="http://www.fileden.com/files/2008/10/8/2134533/viewer.swf" height="480" width="480"></embed>

One remaining obstacle which I haven't been able to solve is the use of thumbnails, as SimpleViewer requires all thumbnails to have the same URL prefix, whereas in Picasa Web Albums this is not the case.

Friday, 3 August 2007

MSBuild: How to work with multiple app.config files

The need to maintain various different app.config files is fairly common in any serious .NET development project. For example, you may want different configurations to apply in different environments, or you may want to maintain different app.config files for different customer configurations of your application.

Visual Studio 2005 does not seem to be very helpful in this respect, though the MSBuild process does offer some solutions. The most flexible way I've found to manage this is by conditionally changing the value of the $(AppConfig) property in the BeforeBuild target (in the projects .csproj/.vbproj file), depending on the value of the $(Configuration) parameter. For example:

<Target Name="BeforeBuild">
  <CreateProperty Value="My.app.config"
        Condition=" '$(Configuration)' == 'MyConfig' ">
    <Output TaskParameter="Value" PropertyName="AppConfig" />
  </CreateProperty>
</Target>