Wednesday, October 8. 2008
OK, say maybe Mel Brooks did it first, but the comedy troupe “The Whitest Kids U Know” have produced a new Hitler Rap that I think is much funnier.
Mildly NSFW (one clear swear word, one oblique reference), so here’s one of my favorite parts, in case you’re just not sure you want to watch it:
Everybody Hitler-hatin’ when they speak my name
But it’s the new millenium and the Fuhrer has changed
And what I bet ya’ll didn’t know is now I’m down with the jews!
The gypsies, homosexuals and retards too!
Cause I stopped burnin’ people, started burnin’ CD’s
Stopped battlin’ the world, started battlin’ MC’s
Just started bustin’ rhymes, finally found my groove
And now the ‘S.S’ on my jacket stands for ‘Super Smooth’
Tuesday, October 7. 2008
Looking online for articles on how to write Executive Summaries (for the content of the previous post), I came across a lot of references regarding the “Executive Summary” section of Business Plans. I’ve included some of them below for future reference:
captureplanning.com had a couple of articles that seemed useful:
‘Executive Summary’ Category at captureplanning.com
The Three Uses of Executive Summaries
Questions to Answer
Executive Summaries in a Nutshell
The one that I finally ended up using to frame my own summary:
How to Write an Abstract
Perhaps the most amusing part about the whole thing is that, upon delivering the 8 page article and the summary I had just sweated over, one member of the audience glanced at it and then said “give me the highlights” – at which point I condensed it even further to the point of a single, spoken paragraph. On the one hand, it made me feel as if I may have wasted some time writing the summary – on the other, if I hadn’t just spent that time putting the summary together, maybe I wouldn’t have been able to summarize the article on-the-spot as well as I did.
The always entertaining Paper Trail recently did a write up deciphering the Google paper describing the Google File System – a great read if you’re at all interested in file systems and “How Google Works”
proggit led me to this post by what appears to be a member of Google’s Chrome team, regarding the Squirrelfish Extreme engine’s performance on regex. There’s some fascinating stuff here, including the following gem:
WREC doesn’t save the intermediate matches, it just keeps track of the length of the text matched against /a*/ (repeatCount in my code) and decrements the position and count in order to backtrack. This is great, because it uses only two words of memory for state (instead of N million) but can find the next longest match very quickly (just 4 instructions).
If you’ve never read Mastering Regular Expressions, by Jeff Friedl, you might have trouble following some of the underlying concepts, but you should go out and pick up a copy today
Monday, October 6. 2008
[Note: This is an “Executive Summary” I wrote for some co-workers regarding Steve Yegge’s Business Requirements are Bullshit – thanks to Johnny Elbows for reviewing the summary and giving great feedback.]
Big Design Up Front (BDUF) is the methodology in software development that a program’s design should be completed and perfected before that program’s implementation is started. It is often associated with the waterfall model of software development. The argument between the proponents and critics of BDUF has somewhat degenerated into a “holy war”, with most people believing that a compromise between BDUF and the more extreme variants of agile software development is the best solution to most software development problems.
The most important phase of any BDUF project is “requirements gathering” – a project that does not gather the correct requirements will fail, although it will often take an extended amount of time for the effects of failed requirements gathering to actually impact the project. This creates an environment where either a lot of money is spent chasing poor requirements, or projects fail to start because they cannot sufficiently capture the business requirements.
Steve Yegge, a Google Engineer, has written the following article that suggests that this failure is endemic to projects that even need to consider “requirements gathering”. Taking a page from Peter Lynch and Warren Buffet, he suggests that any development project be approached as an investment, and that we should only “invest” in products we would be interested in owning ourselves.
“You can look at any phenomenally successful company,” he suggests, “and it’s pretty obvious that their success was founded on building on something they personally wanted. The extent that any company begins to deviate from this course is the extent to which their ship starts taking on water.” This means that projects which need to go through a “requirements gathering” phase are inherently doomed because “if it’s something you want, then you already know what the requirements are. You don’t need to “gather” them. You think about it all the time. You can list the requirements from memory.”
As we consider taking on projects, I think there is some sound advice contained here about what can make a project fail or succeed, as well as some tips about how simplicity (good) and imagination (bad) can affect the product itself.
Release Notes in the usual spot, but I wanted to hit a few highlights:
- ADO.NET 2.0 API for accessing databases
- ASP.NET 2.0 API for developing Web-based applications
- Windows.Forms 2.0
- System.Core – C# 3.0, including full support for LINQ
- Runtime monkeypatching of compiled assemblies via Mono.Cecil
- Mono.Cairo – cross-platform rendering: “Currently supported output targets include the X Window System, Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through glitz), XCB, BeOS, OS/2, and DirectFB.”
- Includes client libraries out of the box for: SQLite (presumably version 3), PostgresSQL, DB2, Oracle, Sybase, SQL server, and Firebird
I know of at least one project that has been put a bit on hold because of doubts about developing in C# for platforms other than Win32 – perhaps this will allow us to break the stalemate a bit?
Thursday, October 2. 2008
Spent the day poking at Pylons 0.9.7rc2 as well as the new documentation site that came out with the release of Python 2.6 – some sweet stuff in there.
WebOb: The New Middleware Layer on 0.9.7, its Reference page, How WebOb is different and Ian Bicking’s Blog Post about it – Ian is one of those guys who is so smart it fills me with a jealous rage. I’ve already found a lot of useful stuff in WebOb that was missing or hard to do with the older Pylons middleware.
Base Pylons Documentation, AuthKit Cookbook, Roadmap to Pylons 1.0 – just some good links to pylonshq
Python modules I need to brush up on, or just links I used in the course of today’s work:
2.6 Documentation Index, shutil, xdrlib, functools – a lot of functional paradigm stuff moved here?, StringIO, tempfile – probably the best tempfile implementation by a programming language, ever, simpleJSON revved to 2.0.1, 2.6 ‘Standard Library’ Index
Mako – I’m not sure why there are so dang many Pythons template layers. In fact, Preppy is another one that I might use more in the future due to its integration with ReportLab’s PDF Toolkit
The Pylons Book – I’ve already pre-purchased, but wish it had more “nuts and bolts” based on what I’ve seen so far.
|