Google Treasure Hunt 2008 Answer

Posted by Toby Sun, 18 May 2008 18:04:00 GMT

In case anyone is interested, the answer to the Google Treasure Hunt 2008 robot path question is as follows:

For a board of size RxC, where R is the number of rows and C is the number of columns and P is the number of distinct paths the robot could take, we find that:

By the way, this particular question has little to do with networking or computer science and nothing at all to do with low-level UNIX trivia. Wonder if the subsequent questions will be more pertinent.

These Children Were Definitely Left Behind

Posted by Toby Sun, 18 Nov 2007 17:22:00 GMT

In the words of the immortal uncov , FAIL . FUCKING FAIL , in fact. Definitely listen to the whole first one: there are some choice quotes in there.

Evidence Based Scheduling 5

Posted by Toby Sat, 27 Oct 2007 09:22:00 GMT

Joel Spolsky has an intriguing new article on one of the new features in FogBugz 6.0 called Evidence Based Scheduling.

I’ve actually had some experience with parts of this technique before, as I used it on a project while I was at Symantec. In my estimation, the project went much better because of this technique, partly because of the much better granularity afforded by this technique and the constant feedback given to myself and my superiors.

I also felt much better about my progress, both because I was completing tasks much faster (since they were smaller) and I had a much better handle on the scope of each task. It also did force me to think about the implementation issues ahead of time, something that Joel mentions and I think a lot of us gloss over and hand-wave away when dreaming up schedules and project plans.

Credit goes to Ross Fubini for being the first at Symantec to implement this style of project management.

One thing we didn’t do at Symantec was the the statistical dispersion of potential completion dates. Using a Monte Carlo simulation would indeed give you a much better feel for progress and allows for more realistic estimates of project health. We use statistical analysis at work quite frequently but it had never occurred to me to apply it to the software development process. Hindsight’s always 20-20, eh? Kudos to Joel for having the insight to apply this technique to software engineering.

As I am now responsible for the delivery of commercial software, I look for things of this nature to aid in the day-to-day engineering of projects. Based partly on my experiences and partly on the elegance of the idea, I do believe that EBS is very valuable and those responsible for shipping software should give it some serious consideration. You don’t even need FogBugz 6.0 to do it: an Excel spreadsheet or wiki software can be used to track the tasks and associated times and you can use GNU R to do the Monte Carlo simulations.

Project Euler 1

Posted by Toby Sat, 06 Oct 2007 16:37:00 GMT

My friend Kyle recently turned me on to Project Euler. The site is a forum and list of problems and is a great way to get you into some math and numerics hacking examples. The problems are supposedly all solvable by a reasonably-powered computer in about a minute but there’s no proviso for you being able to code up the solution to them in that short a time :) You don’t get to see the forum for a particular problem until you’ve submitted the right answer to that problem, though, so it encourages you to work out at least a brute force solution before seeing what others did.

I’m pretty surprised at how many people chose “Assembler” as their preferred language. Me, I’m not that hardcore: I’m posting my problem solutions in Ruby as I finish each problem.

OpenOffice's Power Law Regression: Where did it come from?

Posted by Toby Thu, 26 Jul 2007 16:21:00 GMT

I was poking around the source of OpenOffice 2.x the other day and I came across its equation regression package. Inside, there is a set of functions to support regressing to a power law function. I found the recalculateRegression() function very interesting. I broke down the math involved in this function’s operation to the following:

...where m_ is the slope, _b is the intercept and R is the coefficient of correlation.

I checked Microsoft Excel and it gets the exact same answers that this formula does when it fits a power law, indicating that it, too, may be using this technique.

My question is, does anybody know where this formula came from? It looks as if they are doing a least-squares fit on a logarithmic scale, but is that right? I also haven’t seen that mentioned anywhere else in my travels. E.g. R has a package called igraph with a power.law.fit() function that uses a different technique (and strangely only yields one return value). Anybody know anything about this formula?