Monthly Archive for January, 2008

Top 15 Albums of 2007: 15-11

I’ve been working for about a week now trying to hammer down my top albums of 2007, and it’s come down to these fifteen albums. I will present 15 through 11 here today, followed by the remaining ten later this week.

15. Bassnectar – Underground Communication
Underground Communication
Bassnectar’s first offering, Mesmerizing the Ultra, was a darkish, eclectic type of take on the Breaks genre that, while interesting, was too unsure of itself and where it wanted to be to really stand on its own. With Underground Communication, though, Lorin Ashton seems to have addressed the issue head on, dropping the intentionally overdone minimalism and inaccessibility for a more direct, hard-hitting sound featuring crisper beats, more vocals (with a whole gaggle of guest artists), and a far lusher sound. The album falters a bit in the middle, as can be expected with its running time, but it is book-ended by incredibly strong tracks, the best of which are a number of instrumentals toward the end.
Key tracks: Underground Communication, I Am Back, FSOSF

14. The Nightwatchman – One Man Revolution
One Man Revolution
Tom Morello’s solo project The Nightwatchman is completely separate of what he put out with Rage and Audioslave (or even Electric Sheep). There are no guitar pyrotechnics to be found here, no groove-driven music to headbang to. Instead, what we find here is solid, wholesome political folk music. Armed with only his nylon-string guitar and a harmonica, Morello sets out to continue the political note in his musical projects, and in doing so assembles a collection of incredibly catchy, heartfelt songs about the various predicaments of our hostile society, sung in a surprisingly pleasant baritone. One Man Revolution proves that Morello’s songwriting ability is top-notch even when stripped to the most bare essentials.
Key tracks: The Garden of Gethsemane, Maximum Firepower, No One Left

13. KJ Sawka – Cyclonic Steel
Cyclonic Steel
There are few musical experiences in existence today more inspiring than KJ Sawka’s live performances. Ripping to shreds most live electronic music shows seems to be what he was born to do, as he literally plays Drum and Bass on his drum kit, with a sampler in tow, constructing and morphing ideas and tracks as he goes on for an hour or more. When he sits down to put something on vinyl, however, he realizes that it’s much more difficult to impress people without the visual of him playing along. As a result, the material on his albums tends to be a bit more IDM-inspired than his already highly experimental live sets. Cyclonic Steel is no exception, and in many ways is much more abstract than its predecessor. When a set groove does arise, it doesn’t stick around for long, and it’s easy to tire of the endlessly dark IDM, but accessibility has never been the reason to listen to KJ Sawka. Much more produced than Synchronized Decompression, Cyclonic Steel is an entirely different, more adventurous album, and it is better for it.
Key tracks: Brotherhood of the Drum, Globalize This, Press Machine

12. Bloc Party – A Weekend in the City
A Weekend in the City
There seemed to be a general disappointment with Bloc Party’s sophomore effort when it arrived, but as people slowly began to accept that the band is still evolving, and listening with that acceptance, it seems that the general sentiment began to shift, and most people enjoy the album for what it is: something a little more subdued, but no less charming or energetic. A much more melodic effort, A Weekend in the City shows a new side of the band that wasn’t entirely necessary just yet (there was much life to be had yet in the more spastic, untethered rawness of Silent Alarm), but isn’t altogether unwelcome. Perhaps the band’s members have become slightly more world-weary than when they wrote Silent Alarm.
Key tracks: Song for Clay (Disappear Here), Waiting for the 7:18, Sunday

11. Rush – Snakes and Arrows
Snakes and Arrows
Rush is one of the most seminal, important bands of all time. Influencing and inspiring a whole generation of prog rockers and bands, Rush’s effect on the history of music can only be matched by the length of its own history. As their eighteenth studio album, Snakes and Arrows furthers Rush’s incredible and indelible 30+ year mark. The album somewhat furthers the direction Rush diverted upon with its previous album, Vapor Trails, moving away from progressive for progressive’s sake, and towards a more balanced state of being. While maintaining Rush’s trademark not-quite-dissonance, Vapor Trails was a more full album than previous efforts, and Snakes and Arrows follows suit. Slightly darker and more furious than Vapor Trails, the newest effort seems to be an attempt to push the band’s edges even while following this new direction in songwriting, and it largely succeeds. The album’s only weak point seems to be a small number of songs which drag on longer than they should have; this point, unfortunately, is rather grave, and cost the album several positions on this list.
Key tracks: Far Cry, Armor and Sword, Malignant Narcissism

To be continued…

So much for M.A.D….

Armed forces leaders from the U.S. and other major countries of the world are urging NATO to maintain a preemptive nuclear strike as a major option to keep other nations from obtaining nuclear weapons.

That’s real mature. Annihilate other civilizations with the very weapons they are trying to obtain? I don’t exactly think that’s the proper way to go about things. Mutually assured destruction is what’s supposed to keep the world in check as far as nuclear weapons goes, not preemptive unilateral destruction.

Besides, doesn’t anyone remember the last time we did something rash, bold, and maybe a little preemptive regarding weapons proliferation?

On ASP.NET MVC and the other 80/20 problem

Whoever designed ASP.NET 3.5 MVC is a huge fan of Rails.

If you read one sentence of this post, that’s the one; you can stop reading now, most of the article is done. From that phrase, you can infer most of the sentiments I am about to force upon you, the reader: ASP.NET just got a lot less mangled, MVC is winning the day, pre-enforced design patterns are good, and ASP.NET developers should be very, very happy.

ASP classic was just that: Microsoft’s classic web development framework, laden with inline code, no templates, and terrible design practices, not to mention a general development model that most of the company’s previous platform developers had no grasp or bearing upon. Sensing that ASP classic could only ever play second fiddle to the all-too-similar PHP, and hoping to rope more of its existing developers into the whole web thing, ASP.NET was born. In a move that made sense at the time given the above conditions, ASP.NET was sculpted to resemble Visual Basic’s model as closely as possible: Interfaces are designed, then wired with events which are fired, with most of the heavy lifting being done in a code-behind file. Nifty bits and pieces came together like the use of controls and postbacks.

Unfortunately, the web isn’t built like a desktop application, and ASP.NET is often needlessly complex and piggish to compensate – it spits out often unintelligible markup which the developer has little control over, and ViewState data rides down and back between the server to manage page status, a costly bit of bandwidth depletion which is often abused, resulting in ghastly results. It is altogether far too easy to write terrible code in ASP.NET, with ill-defined design patterns. Learning the intricacies, idiosyncrasies, and idiocies of the ASP.NET web framework is a lengthy task, to the extent that being able to accurately spill its guts is a rare quality in a developer.

ASP.NET MVC futures represents a step back from that overreaction Microsoft had so many years ago. Markup you write is passed straight through. Everything is properly wired up to post data back in a more traditional web format. This should hopefully lead to cleaner, easier to manage applications than the behemoths ASP.NET 2.0 tended to create. However, even more interesting is a strange resemblance to many of Ruby on Rails’ structures – routes are declared and processed in a nearly identical fashion, and helper methods and classes are used to aide in template processing, not to mention an uncanny resemblance in directory structure all add up to a tribute to the beauty and simplicity of Ruby on Rails. These are all good things.

You may be wondering what the justification is for the strange article heading. In exploring the MVC framework, the similarities between its setup and Rails’ structure makes comparing design philosophies of the Rails team and Microsoft very easy — and somewhat enlightening, bringing up the interesting question of an “80/20″ type of problem.

ASP.NET is convoluted, yes. It is, however, also extremely flexible. Because it is built on the .NET framework, and because much of the web framework and application’s interals are either exposed or redefinable via the XML web.config settings file, it is possible to strip out nearly anything in ASP.NET and replace it with a custom solution. This design philosophy is still extremely prevalent in ASP.NET MVC in spite of the nailed down design pattern models and more web-friendly development model, and the extreme difference in this regard to Ruby on Rails makes a greater pattern more evident. One example of this is in the handling of route mapping. The following two extracts of code do the same thing in different frameworks:

ASP.NET MVC

RouteTable.Routes.Add(new Route
{
    Url = "[controller]/[action]/[id]",
    Defaults = new { action = "Index", id = (string)null },
    RouteHandler = typeof(MvcRouteHandler)
});

Ruby on Rails

map.connect ':controller/:action/:id', :controller => 'blog'

It’s immediately evident which one is cleaner. With fewer niggling bits to mess around with, the Rails implementation seems to be the clear winner. It even saves itself an object initialization that ASP.NET puts itself through, though it may be argued that Rails’ performance is middling enough that it’s a nonfactor. Indeed, if we look beyond the mere appearance of each block of code, we find a number of mysterious pieces in the ASP.NET implementation that seem completely superfluous and repetitive: why do we need to specify that the id should be null by default? Why do we have to specify what the type of the Route Handler should be; why can’t ASP.NET assume a default? Why do we even need to instantiate a new object? What is all of this extra work that ASP.NET wants us to do that Rails is perfectly happy inferring?

The answer lies within a phrase heard in showing off the framework:

“In this particular instance we chose convention over configuration…”

This is a telling phrase; an instance of convention over configuration requires an explicit, almost a apologetic explanation! The idea of “configuration over convention” is so completely ingrained into the spirit of the company’s products that a single instance of a design choice to the contrary requires a footnote. To the contrary, Ruby on Rails makes a number of choices for the developer which simplifies and streamlines the development process. However, in doing so, it sacrifices the ability to muck about easily with the internals; it’s not nearly as easy to strip out, say, the Route handler or the HTTPHandler and swap in a custom one that befits your application’s needs.

Who is right? The answer is, as with everything in the computer industry, it depends. Ruby on Rails’ design choices will make life infinitely easier for, say, 80% of developers. However, Microsoft’s offerings will definitely, without modification to the core framework, be customizable and thus useful to all developers on the spectrum. This is, of course, merely a side effect of how large Microsoft has become: it is impossible for the company to ignore any sector of its developer base, no matter how small. Meanwhile, Ruby on Rails (as well as Django and other platforms out there) is able to decide for its developers how development should be done, even if that means alienating a small sector of potential developers, or else forcing them to delve into the codebase of Rails itself.

This is the other 80/20 problem, and how it shapes the development process of various frameworks is both interesting and critical to both platform/framework developers and consumers.

Network Solutions’ dirty secret

So it seems that Network Solutions is stealing domain names that their customers search for, hold them hostage so that they may only buy from Network Solutions for 4 days, then pass them off to domain squatters/snipers, presumably for a nice premium. This is quite the deplorable and disgusting practice, which goes without saying.

However, I highly doubt that this problem is limited to Network Solutions; in finding a domain to host our projects, our first choice name was registered less than a day after we first considered it and checked for its availability. It was then offered back to use for 4000 euros. We never searched through Network Solutions.

This is a terrible practice that is allowed through a hole left by the ICANN as a benefit to registrars, and it needs to be stopped.