18 January 06 - 22:44BoingBoing


BoingBoing had a nice reference to the penny site. Overnight I got 10gig of bandwidth and put me way over my limit, but it's the price of fame.

- default - -

11 January 06 - 23:00Post on Slashdot.com


My first entry to slashdot got published tonight! OK - it's only in the science section, but its there.
The post is about a new finding that plants produce methane, which surprised scientists.
Under section 3.3 of the Kyoto treaty, you can get carbon credits by planting trees under certain conditions. This costs money, but the carbon credits can be sold. This means we may be paying to plant forests that actually make greenhouse gases worse. It depends on the ratio of methane (which is 20 times more potent to global warming than carbon dioxide) emitted per CO2 absorbed. We will have to wait for more studies to determine the ratio.

- default - -

06 January 06 - 13:47US Oil consumption and production trivia

In the US we use about 20 million barrels of oil a day. Unfortunately we only produce 4 to 5 million a day.
As mentioned in an earlier post here the US does have lots of coal which can be converted to gasoline at about $35 per barrel equivalent. Long term that sounds better than paying unstable parts of the world for their oil.

- Energy - -

28 January 06 - 17:44StumbleUpon, Social Bookmarking, and the Future of Search

About six months ago I noticed a few people entering this site via something called "StumbleUpon". I ignored them. Now the StumbleUpon referrals are deafening - they outnumber google.
So I became a StumbleUponer - it's wonderful. I'd recommend downloading the extension for firefox - you are using firefox aren't you?
The whole phenomenon of social bookmarking will change searching the the future. When I do a search at del.icio.us for ajax, I can get the pages that real humans marked as being important, not just the pages with the most incoming links from the most important sites.
Perhaps we need a search that combines StumbleUpon, Del.icio.us, Furl, and Google.

- Software - -

05 January 06 - 13:57Greasemonkey

I have been very impressed with GreaseMonkey - such a cool idea. If you haven't used it yet, its a way to inject your own javascript into web pages. For example at work I use Microsoft's very helpful web service manual entry pages to test our web services. The problem is that no defaults are supplied and its tedious to type in the same five arguments over and over.
With a tiny GreaseMonkey script I can inject parameters into the argument textboxes via javascript.
Check out Mozdev's description and also O'Reilly's helpful site.

- default - -

03 January 06 - 13:46Planting forest can harm ecology

Nature reports that planting forest to absorb carbon dioxide can harm local ecosystems by drying up streams.

- Politics - -

19 January 06 - 14:26Thanks Dave Berry

Dave made a mention of the pennies page here in his blog.

- default - -

19 January 06 - 14:07Austin on Rails

The Austin on Rails user group met two nights ago at Frog design. About fifty software types were on hand. The air was electric with excitement. I think the fever pitch of hype over Ruby is having an effect. Hal Fulton, the author of

, gave an interesting presentation on the basics of Ruby for newbies like myself.
It's funny that while C# and Java are moving towards more type safety with Generics, that Ruby is moving away from that with typeless variables.

Interestingly, just like this months .Net User's Group all the attendees were men.

- Software - -

17 February 06 - 20:18Referrer blog spam

Referrer spam has been costing me mucho bucks lately on bandwidth charges.
Sites with the name "poker" in them will pull pages from my server hoping that the referrer page will get listed somewhere and boost their ratings.
Changing the .htaccess file will help to cope with this dreaded scum of the earth, although eternal vigalence is needed
The following lines in the .htaccess file refuses to fulfill a request from a list of sites containing the keyswords:

RewriteEngine On
RewriteBase /
SetEnvIfNoCase Referer ".*(hotelgaydays|lenarcic|casino|poker|medportal|bankruptcy|viagra|ultraboys).*" BadReferrer
order deny,allow
deny from env=BadReferrer

- default - -

05 February 06 - 00:41Blog software upgrade

I'm upgrading the blogging software to Pivot 1.30. The calendar of previous entries will be offline for a while.
I enabled commenting again hoping the new version will prevent the blogspammers.

- default - -

10 March 06 - 21:40For once, blame the student

USA has an excellent article on why students are failing in the US school system.

Failure in the classroom is often tied to lack of funding, poor teachers or other ills. Here's a thought: Maybe it's the failed work ethic of todays kids. That's what I'm seeing in my school. Until reformers see this reality, little will change.

- default - -

08 March 06 - 13:52Coal to Diesel Plant in Wyoming

DKRW is planning a plant to convert coal (of which the US has an enormous amount) into diesel (of which we have, not so much). Hopefully with this we could eventually produce diesel at cheaper prices than OPEC.

- Energy - -

01 March 06 - 14:55XP search really fast...

Arrg. I've just wasted 15 minutes looking for strings in my source code with the XP "Search..." function (the one with the cute dog, or wizard).
The search was not finding strings I knew to be there.
After a little searching on the web, I learned that the native XP search is optimized to skip files with obscure extension to make it faster.
My obscure extension is ".cs".
The easy fix is to change your registry setting of "FilterFilesWithUnknownExtensions" to 1.
A GUI method is available at http://www.petri.co.il/windows_xp_search_bug.htm.

- default - -

03 April 06 - 11:50SQL Server Collations

Recently at work we had an interesting problem.
A stored procedure was doing a join on a table and a view. The view was of a table in another database on anther server.
The two databases worked fine on most systems, but on our new test servers it would fail with the message:
"System.Data.SqlClient.SqlException: Cannot resolve collation conflict for equal to operation."
The collation of both text fields for the JOIN was identical. Further research showed the problem was in the tempdb's default collation:

SELECT DATABASEPROPERTYEX('myDatabase', 'Collation') AS 'Database Level Collation'
SELECT DATABASEPROPERTYEX('tempdb', 'Collation') AS 'Database Level Collation'

We changed the collation of the two fields to be the same as the tempdb's and it worked great. Go figure.

- default - -

13 April 06 - 15:09AgileATX lunch today

Members of the Agile community meet for lunch every other week - check out the yahoo group, "AgileATX" if you are interested in joining us in Austin. Today we talked about many things, shoes and ships and sealing wax....
* Dependency Injection - Jeremy Miller's Structure Map project was mentioned as a good framework along with Spring.Net.
* On the topic of GUI testing tools WATER, and NUnitASP were mentioned, but NUnitASP did not work well for one of our number. Scott Hanselman has done a study on GUI tools.
* For the missing Set class in .Net, Wintellect's Power Collection was recommended (free registration required).
* For Mock testing it looks like RhinoMock is winning out over NMock for ease of use.
I always find it humbling to go to lunch with all these very smart guys.

- Software - -

12 April 06 - 17:12Upgrading from .Net 1.1 to 2.0 with Nant

I just upgraded to .Net 2.0 today. Here are a few notes on getting Nant working.

1. Edit your "NAnt.exe.config" file, located in your Nant install directory.
1a. Copy the framework element <framework name="net-1.1".... > and change 1.1 to 2.0 everywhere.
So it will look something like this
<framework name="net-2.0" description="Microsoft .NET Framework 2.0" version="${version}" runtimeengine=""
sdkdirectory="${sdkInstallRoot}bin" frameworkdirectory="${installRoot}v${version}" frameworkassemblydirectory="${installRoot}v${version}">
<property name="version" value="2.0.50727" />
<property name="sdkInstallRoot" useregistry="true" regkey="SOFTWARE\Microsoft\.NETFramework"
regvalue="sdkInstallRootv2.0" />
<property name="installRoot" useregistry="true" regkey="SOFTWARE\Microsoft\.NETFramework"
regvalue="InstallRoot" />

1b. Add the new runtime at the bottom of the file.
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v1.1.4322" />
<supportedRuntime version="v1.0.3705" />

2. When you run nant use the "/k" option to specify which framework to use.
nant /k:net-2.0 -v -buildfile:MyFile.build clean

You should be well on your way. [N]ant was well designed to make the upgrade as easy as possible.

- Software - -

04 April 06 - 23:28Time

This Wednesday, at two minutes and three seconds after 1:00
in the morning, the time and date will be:
01:02:03 04/05/06
That won't ever happen again until the next century[3006]].

- default - -

19 May 06 - 16:26TiVo - back with a vengence

I was excited to hear that TiVo won their lawsuit recently and received a large settlement. I'm sure their lawyers got rich on the deal as well. I usually don't cheer millions of dollars being awarded for a patent that is fairly obvious, but this is TiVo. Hopefully they can stay in business a while longer. It's puzzling that a product as great, nay immensely great, nay magnu cum laudy great - as TiVo can't turn a profit.
Speaking of TiVo, I've tried their new video podcast downloading which is groundbreaking. Now I can download video podcasts straight to my TiVo, which is already next to my TV, and watch video from the net. Downloading movies on demand should be a breeze now - except for those lawyers.

- default - -

19 May 06 - 16:17Agile Austin Discovery Session

Last night, about a dozen illuminaries of the Agile software development technoriti met at Koreana to discuss the creation of a group to promote Agile methodologies in Austin. I was surprised to get such a large turnout. Kert Peterson organised the meeting. We will probably be meeting again soon. I will post a note here with details.

- default - -

18 May 06 - 09:12Multicores / Speculative Threading / Reverse HyperThreading

With the arrival of dual core chips and the expectation of 4 way and 16 way chips not too far off, how do we exploit this new hardware? A few interesting ways are being discussed.
DDJ has an interesting article on Speculative Threading where the executing program guesses that a section of code can be run independently in a parallel thread. If the guess is correct, the results of the thread are used. If not, the results of the thread are thrown away.
AMD is working on Reverse HyperThreading for multicore chips.
Programmers may be spared some of the work to program parallelism and consumers are in for a treat with faster boxes.

- Software - -

31 May 06 - 18:33Adventures with CruiseControl.Net

I've been installing CruiseControl.Net 1.01 and ran into two problems:

There were exceptions connecting to the following servers:

Server Name Url Message
local tcp://localhost:21234/CruiseManager.rem No connection could be made because the target machine actively refused it

But the real problem was just that I didn't have ccnet.exe running at the time.

The other issue was

There were exceptions connecting to the following servers:

Server Name Url Message
local tcp://localhost:21234/CruiseManager.rem Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks. Parameter name: ticks

This was solved by editing ccnet.exe.config and commenting out the latest version of .Net after consulting ThoughtWorks.

	<!-- <supportedRuntime version="v2.0.50727" /> -->
	<supportedRuntime version="v1.1.4322" />
	<supportedRuntime version="v1.0.3705" />

- default - -

17 May 06 - 14:06News with Comments

One of the best things about the web is the ability to see comments from people about news articles. For example, I was reading New Toroidal Internal Combustion Engine Promises 20:1 Power-to-Weight Ratio at GreenCarCongress.com. The new engine design sounded very promising. But then I read the comments from other readers. They mentioned several oddities about the article that I had neglected. I was much less excited about the possibilities of a more efficient engine, but more informed.

- default - -

11 May 06 - 15:00www.testdriven.net - running nunit tests inside visual studio


I've been playing with testdriven.net. It runs nunit tests directly in visual studio without having to launch the nunit gui. It also runs the debugger for you. Very slick. And did I mention it's free?

- Software - -

11 May 06 - 09:44Back to Basics - subversion/nant/log4net

It's the summer of remedial learning for me. I've neglected some important stuff and it's time to learn them.
At work we are going to be switching version control systems, so I'm investigating this little thing called 'subversion' which seems to be used by most people I know here in Austin (ok, really only the software developers). I've got a few notes here.
I've become fascinated lately with building our systems. In an effort to increase our velocity of software delivery, to precisely get and reliably build exactly what we want is critical. I'm getting more into nant and it's fun.
log4net is also on my remedial learning list. We used it on our last project, but I only used our wrapper object. I've been getting more into it now and am very impressed. With a single xml configuration file, it will spit log messages to the Event Log, a regular log file, and/or the console.
An 'appender' in log4net is a separate output stream. Three appdenders are defined below. The root object is told to send messages to all three. In the example below the EventLog recieves only really important messages of the type WARNING and above, while the log file and console get INFO and above. It works great in my standalone version, now if I could just get it to work in the service version of the app.

<?xml version="1.0" encoding="utf-8" ?>
<!-- File Log -->
<appender name="LogFile" type="log4net.Appender.RollingFileAppender">
<file value="c:\\logs\\Harvester\\All.log" />
<StaticLogFileName value="true" />
<appendToFile value="true" />
<param name="RollingStyle" value="date" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p -- %d -- %m%n" />
<!-- Console -->
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />
<!-- NT EventLog-->
<appender name="EventLog" type="log4net.Appender.EventLogAppender" >
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />

<level value="DEBUG" />
<appender-ref ref="LogFile" />
<appender-ref ref="Console" />
<appender-ref ref="EventLog" />

- Software - -

02 May 06 - 13:50Opera 9 Beta and the new BitTorrent client


I downloaded the new Opera 9 beta this weekend and played with the BitTorrent client. Without opening any ports on my router, Opera used port 80. I started to download Linspire's latest LiveCD and four hours later I had a shiny new ISO cd. This is a great option for those of us who don't want to open ports and aren't in a hurry for anything.

- Software - -

25 May 06 - 13:26Why Peak Oil Doesn't Matter

Peak Oil is all the buzz these days. The basic idea is oil production world wide will soon peak and the civilized world will spin into a morass of economic decay.

But Peak Oil doesn't matter - if it comes slowly. Why? Because other forms of energy will become economically viable to replace some oil. The chief contender for cars is synthetic diesel from coal. The Third Riech and South Africa produced synthetic oil to run their industries. The US and China have centuries of coal reserves. We can produce synthetic diesel for 30 to 40 dollars per equivalent barrel of oil. It will take time and money, but it's possible. With oil at 70 dollars a barrel, other forms of energy will also be viable - wind power, shale oil, tar sands, biomass, and nuclear.

Our energy should come from a mix of sources. Each of the sources slowly growing or shrinking depending on relative cost and demand.

George Bissel financed the first oil well only when whale oil got to be prohibitively expense. Afterwards, whale oil sold for $5 dollars/gallon and his new kerosene sold for 10-25 cents per gallon.

Yes, governments should help finance a portion of the research costs and encourage innovation. But ultimately, Adam Smith's invisible hand will solve Peak Oil.

- Energy - -

24 May 06 - 14:12More of the same

reddit.com I've starting visiting Reddit.com for my latest news. It's like digg, but stories seem to make it to the top faster. Also I've noticed a new bookmarking site, ikeepbookmarks.com, racking up the referrals. It's like del.icio.us, but with graphics.
I think it's great that new web sites are springing up doing basically the same as others, but with a little twist. As web consumers we will benefit from the competition.

- Software - -

21 June 06Scrapping off Barnicles - Windows XP Performance Tips


I noticed this morning that the free Windows Defender spyware remover can help your system performance. Defender can tell you what programs are loading when you computer starts, so you can diable or remove those from your startup sequence. Removing the programs will speedup your boot time. Your computer should be zippier after that since it will have one less running program to monitor. It may not be much but each startup program is like a barnicle slowing down a ship.

The programs detected by Defender are not always shown in the "Start/Programs/Startup" menu.

I removed the QuickTime player from running at startup time. Quicktime still runs when asked, but probably takes a tad longer to load, but its worth it to have a faster ship.

- Software - -

19 June 06US Oil Consumption Declining


Consumption of oil in the US declined from 20.732 million barrels per day (mbpd) in 2004 to 20.655 mbpd in 2005. It seems like 72 dollars a barrel is actually making us think twice about using so much oil. This high price will encourage alternate energy supplies and hopefully reduce our dependence on foreign oil.

- Energy - -

30 June 06Backups with Nant

I've always backed up my home and development directories weekly with a little perl script using zip to gather and compress the files and then copy it over to a server. Now I've switched to using a Nant script which works much better. With the 'exclude' its easy to not zip the .exe and all the other garbage. It creates a file like 'fincher-2006-06-30.zip which makes sorting the files much easier. If you know the easier way to calculate the date, please put it in the comments. Here's the backup code:

<project name="backup" basedir="." default="all">
	<target name="init">
                <property name="day" 
               <if test="${string::get-length(day) == 1}"> 
                        <property name="day" value="0${day}" />
                <property name="month" 
               <if test="${string::get-length(month) == 1}"> 
                        <property name="month" value="0${month}" />
                <property name="datename" 
                   <echo message="datename:${datename}" />

        <target name="all" depends="mfincher,SurveyDirector,workfiles" />

	<target name="mfincher" depends="init">
        <property name="zipfilename" value="M:/mfincher-${datename}.zip" />
        <property name="zipbasedir" value="c:/home/mfincher" />
	<echo message="backing up ${zipbasedir} to ${zipfilename}" />
	<zip zipfile="${zipfilename}" failonerror="false" verbose="true">
			<fileset basedir="${zipbasedir}">
				<include name="**/*" />
                                <excludesfile name="backup.excludes" />
				<exclude name="java/Acme/**/*" />
				<exclude name="**/weblog/**/*" />
				<exclude name="**/temp/**/*" />

	<target name="workfiles" depends="init">
        <property name="zipfilename" value="M:/workfiles-${datename}.zip" />
        <property name="zipbasedir" value="c:/workfiles" />
	<echo message="backing up ${zipbasedir} to ${zipfilename}" />
	<zip zipfile="${zipfilename}" failonerror="false" verbose="true">
			<fileset basedir="${zipbasedir}">
				<include name="**/*" />
                                <excludesfile name="backup.excludes" />
				<exclude name="**/vendor/**/*" />
				<exclude name="**/InProgress/**/*" />
	<target name="SurveyDirector" depends="init">
        <property name="zipfilename" value="M:/SurveyDirector-${datename}.zip" />
        <property name="zipbasedir" value="c:/inetpub/wwwroot/SurveyDirector" />
	<echo message="backing up ${zipbasedir} to ${zipfilename}" />
	<zip zipfile="${zipfilename}" failonerror="false" verbose="true">
			<fileset basedir="${zipbasedir}">
				<include name="**/*" />
                                <excludesfile name="backup.excludes" />

The backup.excludes file gets rid of all the unneeded-for-backup files like .svn. It looks like this:


- Software - -

15 June 06Visual Studio .NET cannot create or open the application.

I've been playing around with subversion and Perforce lately with a real codebase. Things were going quite well and then not. Visual Studio 2003 gave me this error after playing with different directories of source:

Visual Studio .NET cannot create or open the application. The likeliest problem is that required components are not installed on the local web server. Run Visual Studio .NET setup and add the web development component.

I finally deleted "C:\Documents and Settings\MFincher\VSWebCache" and everybody was happy. What a pleasant way to waste an hour. What would really help us developers would be for microsoft to put a link to google on each error message with the error text embedded in the request. That way we don't have to retype the error message (since it's not cut/pastable). I think the GDP might scrunch up just a bit on that alone.

- default - -

15 June 06Austin On Rails Meeting

Tuesday night at the austinonrails meeting, Damon Clickscales presented on the migration component of ruby. Migration allows easier upgrading and downgrading of databases. Each database has a table (VERSION?) with an integer describing which version. Using rake, the ant of ruby, any version of the database can be automatically upgraded, or downgraded to any other - very slick. This is also something we could implement in .Net or Java.

Damon started with a quote attributed to Charles Darwin which should warm the hearts of Agile programmers:

"It's not the strongest species that survive, nor the most intelligent, but the ones most responsive to change"

Ken Freeze presented on Asterisk, an open source pbx project, and ruby on rails. The most notable item was how expensive phones are from commercial installers. For a medical office he was quoted $750 per phone for 8 phones with a total cost of $13,000 - I'm in the wrong business.

- Software - -

13 June 06MCI Credit Card Phishing Scam - Update

We got two phone calls on our answering machine asking us to call 1-800-563-0427 and update our expiring credit card number for MCI. Our credit card number had recently expired, but we don't use MCI currently, so I assumed they just kept our account around. I called the number and they asked to verify our phone number by pressing "1" and then enter our new credit card number.

But I knew it was a scam right off. They didn't start with "For English press 1, for Espanol, numeral dos", nor the "Listen closely as our options have changed recently to serve you better.", both the hallmarks of a real telemarketing operation. Yep, these phishers were too cleaver by half - they we just too efficient - no legitimate phone reps are so direct and practical. The real kicker was that they didn't even try to sell me some "got-to-have" identity theft insurance or something on my way out.

Update: OK, my wife actually called a real MCI number and they said it was a valid MCI 800 number and we really had an old mci calling card. I think they were telling the truth because the phone operator had an Indian accent.

- default - -

12 June 06PVCS Version Manager Leftovers

While watching my virus scanner run (ok, it was a slow day), I noticed a zillion files in something called C:\tmp\tempfs. Our current version management software, PVCS, leaves a temp file in the user's temp directory for each action. On my disk it was taking 3/4 of a gig! My disk is a little lighter and zipper now. We are evaluating subversion and Perforce. Please leave a comment if you have any strong feelings about either.

- Software - -

08 June 06How to keep up with software development trends

My friend eitan has good ideas on how to stay current with trends in software development. One of his suggestions is to meet with other developers. The AgileATX group in Austin is an excellent example. We meet every other Thursday, sort of, at Central Market on 38th at 11:30am. I go just to try and gleam tidbits of knowledge.

Today's discussions went all over the map: 'Why are Microsoft development tools so terribly misguided?' Is Ruby on Rails as good as it is sounding. Does subversion have project level security? Should validation on the browser break MVP for efficiency's sake?

Join us if you can.

BTW, if the web seems a bit zippier today, it's Sir Tim Berners-Lee's birthday.

- default - -

28 June 06JMatter, A Better Framework

Eitan Suez has just open sourced jmatter. Jmatter builds programming infrastructure automatically by using introspection of objects and making intelligent choices about database persistance.

Eitan first told me about the ideas several years ago and it just made sense. Why should we hand-code edit pages for our objects when a framework could introspect an object and create the edit pages? Why should we have to write all this persistance code when the objects could make some assumptions and do that for us as well.

jmatter is a great framework. Check it out.

- Software - -

06 June 06Will Vista Ever Ship?

After our last Java User's Group meeting we were chatting at Bahama Breeze. One of the people doubted that Vista would ever ship. It's just too complicated.

That made me think of a recent interview with Michael Dell where he did not lament the fact that Vista missed the Christmas, er, rather Holiday season, but he just wanted it to work well. Michael does have a point. A friend of mine who used to work at Dell said that if a customer calls support twice on low end models, Dell is losing money. Can you image what will happen if Vista is released and everyone calls Dell Support four or five times? Dell would have to charge a significant premium for Vista. No wonder Dell just wants Vista to work.

Which brings me to my next rambling topic - ratio of software to hardward prices. In the old days software was a tiny part of the cost of a system. now with a bare bones box costing $179 at Fry's, the retail cost of Vista is higher (not that you could run Vista on a box like that). Linux should have more of an opportunity now. Would you rather by a $179 computer using Google OfficeWorks or a $700 box with Microsoft Office.

Most people would still go for the $700 box, but $521 is tempting.

BTW, what ever happened to Cairo?

- default - -

30 June 06My First Ruby TK program

I've been playing around with Ruby like everyone else and wrote my first little utility called 'Commander' (yah, there's a ton of them out there already). The TK part reminded me of when Tcl/TK was cool. You type in command lines you use a lot and it stores them and executes them.


Newbie Source code

- Software - -

28 June 06Adios JEdit, Welcome Back Emacs

When my daughter turned nine, I started looking for a way for her to write her own web pages directly in HTML. I looked at JEdit and was impressed with its ability to remotely edit pages through ftp (well if you get the right beta version with the right ftp plugin). Sarah did well with JEdit and writes her own webpages using the familiar ctl-c, ctl-v from microsoft products from school.

I decided to switch from my ancient emacs editor to a more modern java-based editor to take advantage of the ease of macro writing directly in java instead of lisp. JEdit was much slower than emacs, but I trudged onward. A few weeks ago I decided to program mouse clicks with modifiers (e.g., ctl-left_mouse is delete-word) like in emacs and posted a note on the jedit forum. Nada. Nothing came back.

I have gone back to emacs and it feels wonderful. All my old Alt-Shift-LeftMouse key strokes work and it is very zippy. Sometimes the old is better.

- Software - -

06 July 06AustinOnRails With DaveThomas


Dave Thomas spoke to 130 people at the Austin On Rails group tonight. Thirty people in the audience indicated they were doing Ruby On Rails development work which surprised me that it was so high. Dave talked about the metaprogramming possible with Ruby and predicted Domain Specific Languages would continue to gain momentum this year. The session was informal and light hearted. A fun time had by all.

- Software - -

06 July 06Installing Ubuntu 6.06

A friend of mine moved from the Mac to Ubuntu and has not looked back. So, this week I installed Ubuntu 6.06 on an old 600Mz dell. The process was amazingly easy. All was gui based and straight forward. It took probably 10 minutes of my attention to install. Configuring for our proxy server took longer.

You can get the CD from here. If you don't have a bittorrent client already installed consider downloading opera 9 which has bittorrent built in (albeit slow).

- Software - -

05 July 06One Domain to Rule Them All

My hosting provider maps localhost and www.localhost to the same website by default. Although this is nice for lazy people like me who prefer typing "domain.com" instead of "www.domain.com", it can hurt your ranking with search engines and confuse cookies. Below is code to put in your .htaccess file to map all requests from "domain.com" to "www.domain.com".

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^fincher\.org$ [NC]
RewriteRule ^(.*)$ http://www.localhost/$1 [R=301,L]

- default - -