RailsConf 2008

high-speed ruby debugger inline-able in Rails

Posted by rick Thu, 13 Jul 2006 01:07:00 GMT

Kent Sibilev posted a cool article, Tutorial on ruby-debug ,which shows off his new Ruby+C hybrid debugger suitable for use with large applications, such as Rails apps, where the debug.rb debugger was just too slow to be useful.

This brings most of the slickness of the breakpointer (just drop a line in your code and wait for the prompt to appear) to the power of the debugger (pop up and down stack frames with ease, step, breakpoint, watchpoint, whatever). Just gem install the thing and hack++.

Looks like the only thing is missing is the DRuby hooks to let the new debugger work with FastCGI (etc.) when there’s no console waiting, and I’m guessing someone will get to that before my lazy butt gets around to scratching that particular itch.

Very cool.

Tags , ,  | no comments

Testing languages and Interactive Fiction

Posted by rick Mon, 10 Jul 2006 04:05:00 GMT

I was reading an article from But Uncle Bob called Tests are a language, which should resonate with the Behavior Driven Development crew (hi Dave!) (heck, there’s even mention of a Python port of rSpec in the comments), when I noticed a link out to Inform7, a tool for writing interactive fiction using a language which is basically English to define the program. Quite impressive.

Tags , ,  | no comments

Orwell on pacifism

Posted by rick Thu, 06 Jul 2006 15:16:00 GMT

This turned up in the fortune from our Continuous Integration build today, and I thought it was particularly amusing:

The majority of pacifists either belong to obscure religious sects or are simply humanitarians who object to taking life and prefer not to follow their thoughts beyond that point. But there is a minority of intellectual pacifists, whose real though unacknowledged motive appears to be hatred of western democracy and admiration for totalitarianism. Pacifist propaganda usually boils down to saying that one side is as bad as the other, but if one looks closely at the writing of the younger intellectual pacifists, one finds that they do not by any means express impartial disapproval but are directed almost entirely against Britain and the United States …

—George Orwell, Orwell’s Notes on Nationalism (May 1945)

Tags  | 1 comment

"The Timeless Way of Building", patterns, architecture, and software

Posted by rick Mon, 05 Jun 2006 03:27:00 GMT

I mentioned earlier that I’ve been reading Christopher Alexander’s The Timeless Way of Building (TWoB hereafter). I finally finished it this morning after N months of reading on it. On the one hand I’m just like that: I’ll have 5+ (or 10+) books lying around open and partly read for months at a time, meaning that nothing really gets read quickly. On the other hand, I think TWoB deserves a slow and considered reading, and that’s how I approached the book.

TWoB is, on the surface, a book about architecture. It even says so in the title. It’s author is a well-known architect (still living, even, as far as I know). With its two sequels (A Pattern Language and The Oregon Experiment ) it has, however, caused quite a stir in another field—that of software development. TWoB was published in 1979, after 14 years of effort, so we’re now over 40 years from its inception.

In 1995 the so-called “Gang of Four” (GoF) text Design Patterns: Elements of Reusable Object-Oriented Software was published. Inspired by Alexander’s work on pattern languages for building, the authors (and their collaborators) brought “patterns” and pattern languages to computer software. Since that time the adoption of patterns in the software community as both paradigm and panacea has been rapid and widespread. A simple search for pattern-titled books on software in any decent library, or on web stores such as Amazon will produce a dizzying array of results. There are design patterns, analysis patterns, configuration patterns, integration patterns, deployment patterns, you name it. There are publishers who appear to believe that no book should be printed for consumption by software developers (and their management cousins) unless the word “patterns” appears on both cover and spine. There are job applicants going to interviews who know the 23 patterns in GoF by heart, speak them like some sort of creole dialect, and couldn’t code their way out of a soggy paper sack.

As a long-time software developer (ok, I never used a punch card, but I’ve been around long enough to know the following…) I can readily say that ours is an industry beset by marketers, marketroids, buzzwords, acronyms, predatory vendors, incompetence and an infinite amount of hype. As an industry our tools are mostly broken, our projects mostly failures, our memories systemically too short, and our confidence mostly beyond our abilities. Not only do we almost never have a solid gauge on how competent we (ourselves) are at what we do, it seems that everyone outside our profession is even worse at judging our competence. Not only are many programmers better suited (for the benefit of both those near to them and those working in our field at large) at doing lawn work or, better yet, washing dishes at restaurants where the health department doesn’t inspect very often; but mind-bogglingly destructive practices are promoted as “best” practices on the backs of the opinions of vocal better-off-washing-dishes incompetents and unscrupulous vendors willing to sell any buzzword or acryonym so long as the slogan is heard wide and the coffers are filled deep.

Into this dire ecosystem some decade ago was launched a good-intentioned campaign to bring Alexander’s brilliant insights (and after combing through just one of his many texts, I believe Mr. Alexander has earned the descriptive “genius”) into the industry of software development. Having read a number of discussions of how influenced the GoF were by Alexander’s pattern languages, and how good their intentions, I truly believe they believed they were doing the industry a great service. I think they may have even done so. If you catch a contradictory tone here (or a hesitance) though, it’s because I don’t believe we have seen that service yet bear fruit. Worse, I have my doubts it ever will.

While reading TWoB I was repeatedly struck by how powerful the authors concepts were, how clearly they were related, how inevitably the Good followed from his observations and suggestions. I was drawn back repeatedly to the realization that there were so many parallels between software and architecture. I was truly compelled by his invocation of Taoist principles, his explanation of the Quality Without a Name, and that quality’s inevitability: as a consequence of breathing life into a building, a community, a town.

Alexander exposed systematically the problems resulting from our modern methods of industrial, methodical, mechanical construction of not just our buildings but our lifestyles. He digs deep into the living way to build, to live, that all of us instantly recognize when we see it. He drew in the foundations of Eastern philiosophies. He shows a way back, through a simplifying and life-giving formalism (the pattern language) to the practice of building and living in a manner that is whole and alive, The Way that is timeless, which infuses our surroundings with the Quality Without a Name, which ultimately releases us from the need for the pattern language itself and returns us to the natural way of living and building which balances the forces around us and simplifies life and happiness.

Looking from his viewpoint back into the past decade of pattern-inspired software development I see that “pattern” has become just a replacement word for the (abysmal and soul-sucking) marketroid buzzword “best practice”. A pattern is something you’ve done at least twice, or something that someone smarter (or richer, or more cutting-edge) says you ought to be using instead of solving problems on your own. “Just show me the patterns I need to know”, says the lazy developer, “and don’t make me learn all that other nonsense.”

Even the inspired writing on patterns for software has hit at such a narrow scope and has left behind the core, the foundation, of what makes Alexander’s work so compelling, so powerful. Alexander’s patterns were a way of summarizing and exposing living techniques for those who could recognize them, but who had been robbed of their innate knowledge of those techniques by the distracting and numbing systems of modernity. In a tiny way the patterns were a shorthand, but more importantly they are a temporary crutch to be used to escape the paradoxes and failures of modern systems (which produce buildings, communities, and lives without the Quality Without a Name) and to return to our basic living understanding of how to make living places that are perfectly adapted to their environment and the problems they face.

What was brought over was stripped completely of Alexander’s core, stripped of purpose, and converted to a set of tiny rules showing common techniques for handling tiny problems. Where Alexander’s patterns cover concepts from the scale of individual windows up through the process of constructing a living neighborhood, covering also patterns of repair; software patterns, where they are helpful at all, are mired at the level of the window pane.

Even these are contentious. The simple and common “Singleton” pattern from the GoF book is the subject of much chest-thumping and vitriol these days. If such a simple pattern cannot even be agreed to be “good” or “alive” or to encourage the Quality Without a Name I wonder what software “patterns” could.

At one point in TWoB Alexander writes:

In short, a building laid out by a pattern language process, and which comes to life because of it, will die again, quite certainly, when it is built, unless the process of construction is the same—unless, that is, the same spirit which generated rooms that are just right, entrances where they should be, light coming from the right directions . . . is carried on into the details, and also shapes the columns, and the beams, the window frames, the doors, the vaults, the colors and the ornament as well.

And what strikes me is that Alexander’s pattern language is so far reaching that only the tiniest part of it deals with those details of construction (windows and columns and doors, etc.), otherwise dealing with all the powerful layers above these. These other tiny patterns are indeed important, but so as well is this other final once-omitted piece: the patterns of the process of building. In software we have, with a few tiny exceptions (I would include Martin Fowler’s Analysis Patterns book in this area, which addresses a slightly higher-level set of patterns that sometimes feel as if they could generate the Quality Without a Name in a software system) only patterns about nails and window pains and door knobs. We have nothing about building down from the higher levels, always ensuring we first make something living. We have nothing, really, about the process of construction, or the process of repair, that fits with Alexander’s core drive, that produces systems and interactions that are alive.

We have continued in the business of making dead systems, while deluding ourselves into thinking we have learned something that could make a thing that is living.

At the risk of having Amazon sue me for grabbing one of their reviews (go ahead and sue me), here’s one of the many reviews of the GoF book:

My only critique of the book is that it is very heavy on examples. It is all relevant and if you have the time to read and digest it all you will be a better programmer. However, there are more consice books that do a better job of distilling the important concepts of design patterns and books that provide better modern approachs. This is the type of book that you have to read in school becuase it is a classic. I would equate to classic literature like Homer or War and Peace. They are important in a scholarly sense if you wants a deep historic understanding of the topic. However, you can understand and use design patterns without reading other books and you will save a lot of time.

Another good analogy is the way calculus is taught in school. First they teach you in-depth complicated way. They take you through all the steps the inventor went through to come up with it. Then they show you the short cuts that are used in common practice. You have a better understanding of the topic because you know the hard way but you would be foolish not use the short cuts.

So you can read this book and get an indepth understanding or you can skip this step and go straight the a consice book that shows you how patterns are used practically today.

(source)

In one sense a perfectly reasonable review, if you’re sitting out in cubicle land looking for a book that will get your head above water with whatever the important thing is you Must Know to stay afloat in a hyper-competitive industry. Replace the subject matter (design patterns) with any other modern buzzword or “best practice”, say XML, JSP, CSS, Unit Testing, Continuous Integration, Behavior-Driven Development, JMX, Ruby on Rails, etc., etc., etc.; and you could publish that review 500 times and have people give it 4- and 5-star ratings. Buy that book, or become unemployable.

Pretty dismal, sure, but them’s the breaks. Only, after reading the primary source, it’s truly depressing. 90%+ of TWoB was pure Eastern philosophy. The book was primarily about how languages of patterns exist already in the world, have existed since the beginning of society. They are visible in the oldest and newest buildings and towns that are “living”, not “dead”. Alexander had been looking for The Way to build something alive, and spent 14 years writing this first volume to help communicate it. It’s powerful. The book is essentially about the Tao and a way we can practically shrug off the blinding layers of automated and modernized living and building to get back to the Tao.

The only thing that carries over to software development though is the smallest and weakest part of the “crutch”. The Tao is left behind. The Way is not here.

It is clear in reading TWoB that a pattern language which is not driven by the need to make something that is alive, that is the best that it can be, will be incapable of making anything at all that is alive. Even missing a single important step will result in the realization of a living design which is itself dead.

It is obvious to me now that, despite it’s seeming inevitable proliferation, that the software “patterns” movement is stillborn. In its best moments it uncovers a few nodes in the lower reaches of the graph of a useful pattern language, which appears doomed to never reach the important upper reaches where it could ever result in a living system. Otherwise, this “movement” is mostly a vehicle for buzzword proliferation, a hook onto which tireless unscrupulous vendors hawk the next beta release of snake oil, a veil behind which hides laziness and confusion masquerading as work and knowledge.

If I seem a bit jaded or cynical, perhaps I am. But it’s really aggravating to see all the sound and fury dedicated to “improving” the horrid state of software development and realize that the vast bulk of it really does signify nothing. Patterns are worthless if they are adopted without any of the important fundamentals that could ever make them “work”. Calling what passes for patterns in software “patterns” is actually insulting to Alexander, and tangentially, to anyone who has ever built something which has the Quality Without a Name.

This is not an attempt to insult the Gang of Four and their comrades who wished, and worked, to bring Alexander’s insights across the border into our field. On the one hand, perhaps what they were trying to do is impossible. On the other, they surely knew they were beset on all sides by wolves: the wolf of incompetence, the wolf of capitalism, the wolf of undisciplined practitioners, the wolf of Good Enough, . . . the pack goes on.

There has never been a software system built which comes near to having that Quality. In the direction we’re headed I can’t see that any such system will ever be built.

Is it possible to build software that is “alive”, that has the Quality Without a Name?

I can’t be sure, clearly. I’ve been thinking about this for months, the duration of the time spent reading TWoB, and may well think about it for 14 years as Alexander did, and perhaps the full 41 years it took to get us from that book’s inception to know. And I probably will still not have an answer by then.

Regardless, it will take more than replacing “best practice” with “pattern”.

We don’t have, as a species, the history in software that we have with building. Software is in some fundamental ways different from building: software is all design, the building must be part of the design process (sorry waterfall proponents, but this much has become clear in the past decade); software is malleable, like clay rather than stone, and we know that, for some real value of Good that Good software stays this way; that we know so much less about software; that software is complex like mathematics, in ways that physical things like buildings cannot be; that software doesn’t wear out, but that software can run only so long as the world supports the way it runs; that people don’t sit inside software and read a book; that people don’t look at software (at least not yet) and have clear feelings about it; that software is more destructively dominated by fashion than even architecture; that tools which are themselves destructive to building whole and living systems are often championed as The One True Way to build a system. Let me stop before I start enumerating the languages and tools which have done so much to so many for so long, sucking the very hope of life out of systems and developers alike.

Where industrial techniques are the enemy of living architecture, software development is, at this point in time, only willing to think of industrial techniques. From where I sit this forecloses the possibility of The Quality Without a Name from software. Without this, why bother with “patterns” at all?

The only thing positive I suppose I can say at this point is that any attempt to build living systems in software is most likely to come from a small group who work long years on building systems in a way that mirrors the way we build living homes and communities. Perhaps someone will gain insights like Alexander’s and still have the time to share them with us. Perhaps some of us will have the sense to listen.

Tags , , ,  | 2 comments

text of Piratbyran presentation at Reboot

Posted by rick Sat, 03 Jun 2006 23:19:00 GMT

Worth your time to read this, which makes coherent so much that seems complicated and confusing about the battle over copyrights.

[...] We emphasize and affirm the tendency that it is getting harder to distinguish between local transfers of data and “file sharing” between different systems, for example in wireless environments. Digital technology is built on copying bits, and internet is built on file-sharing.

Copying is always already there. The only thing copyright can do is to impose a moral differentiation between so-called normal workings and immoral.

For the copyright industry, it is of extreme importance to keep people uninformed of the real workings of networked computers. They want to make an artificial distinction between “downloading” and “streaming”, as equivalents to record distribution and radio broadcasting. But – and we should keep insisting that – the only difference between “streaming” and “downloading” lies in the software configuration on the receiving end. However, copyright law will never be able to acknowledge that. It has to rely on fictions, on a kind of cognitive mapping, where notions valid for traditional one-way mass media are forcefully applied to the internet. We call it Mental Rights Management (and it is the very precondition for DRM).

It is essential for the copyright industry to keep the majority of computer users trapped in the belief that the ”window” of their web browser is exactly a window, through which they can look at information located elsewhere, under someone else’s control. Then our job is to clarify that everything you see on your screen or hear through your speakers, is already under your control.

Zeros and ones have no taste, smell or color – be they parts of pirated material or not. Therefore it is impossible to construct a computer that cannot reproduce and manipulate these zeros and ones – as such a machine would no longer be a computer, but something as grotesque as a digital simulation of the machines of the last century. [...]

Tags  | no comments

Stratfor: "Break Point"

Posted by rick Mon, 29 May 2006 23:59:00 GMT

An interesting article from Stratfor’s George Friedman about the coming break point in Iraq, appropriately entitled Break Point.

Tags  | no comments

on "Help make a RTFM on global warming"

Posted by rick Tue, 23 May 2006 23:32:00 GMT

As seen on Boing Boing, Help make a RTFM on global warming, says:

“Alex Steffen of WorldChanging says: “Given that An Inconvenient Truth opens this week, and that it appears that the president just acknowledged that climate change is real, and that there’s been an uptick of “climate skeptics” leaving disruptive, if not downright trolling comments on environmental and science blogs recently, we thought it would be useful to come up with a way of signaling that the debate is really over on these subjects, and its time to move on.”

So WorldChanging has started a discussion about developing “a page which can become shorthand in blog comment threads and online discussions for ‘we’ve already gone over this,’ a sort of RTFM message for climate change science.”

So, I’m all for education, and all for trying to find some clarity in the “debate” (or at least the shouting past one another that sometimes passes for a debate) around “Climate Change”/”Global Warming”, what have you.

What I’m not for is ignoring the fact that there is a chasm of opinion between those who take the position(s) that there is a detrimental climate change underway which is historic, dangerous, man-made, can be attributed to the excesses of Western civilization, and can somehow be changed through activism and/or policy; and those who take issue with any or all of those points (who are also often lumped together with those who have sold their souls to Exxon and lobby for dirty two-dollar bills from corporate masters).

The “let’s close the non-existent debate” tack, while mildly amusing (and definitely chic), only undermines its point. There is a strong and wide variation in facts and interpretation on climate change and plugging ears does little to move things forward.

Pastafarianism—that’s funny. It works on so many levels, precisely because the recent “Intelligent Design” “argument” is least of all “Intelligent”. We’re to the point where even bishops are acknowledging that Intelligent Design as a theory provides little useful or constructive. Striking at the base of ID absurdity has ultimately done more to harm that “movement” than all the reasoned arguments to which ID proponents refuse to listen.

On the other hand, those who would motivate action by calling down the doom that is Global Warming rest on a long string of tenuous claims purporting to point an arrow straight to desired policy goals:

  • The planet is getting warmer.
    • Is it? Perhaps. Depends on whom you ask, what you mean by “warming”, and what answer you want to hear. I’d probably (personally) be willing to grant this one, but there are climatologists who differ, maybe rightly, maybe wrongly.
  • This warming is unprecedented.
    • Even more suspect. There is stronger evidence that the planet has been warmer, that the planet has warmed faster, and that it was warmed more significantly (i.e., difference of degrees between cold trough and hot peak).
  • This warming is manmade.
    • Perhaps. Perhaps in part? Perhaps not significantly at all. Muddying questions: What caused the Ice Ages and what caused the drastic warming afterwards? What about evidence correlating warming to external factors, esp. sun activity? What about the fact that glaciers have been in retreat for 700+ years in Alaska (I’ve seen the evidence in person with my own eyes, so it’s hard for me to shake)? Why is data constantly being revised on this question? Which batch of research are you using? etc.
  • If we do not “do something” X, Y, and Z catastrophic thing will happen.
    • First off, how do we know that, sans action, the described trends would continue? How do we know the nature of the trends at all? What particular batch of research, what particular models, and what particular fit to the trend are we using: do we presume from ice cores, under a particular computational model, that the trend is a quadratic rise in temperature which will continue forwards? Second, the planet has weathered certainly more severe climate changes in the past, over much shorter and longer spans—what makes us believe the impact of a climate change is actually negative. I mean, are we worried primarily about beachfront property, or are we worried about the freakin’ Planet? Go read the archives of alt.destroy.the.earth sometime and see just how hard it is to really do anything serious to the planet. There is a wide range of evidence suggesting that warming, apart from the disruptive effect it may have on the insurance industry and the stability of the societies of this virus-with-shoes we call humanity, that warming is actually beneficial for the diversity of species and actually increases the habitable ranges of many flora and fauna. What I’m saying is that I’m not even sure anyone knows whether a warming planet would be “bad” for anyone other than Allstate and the yuppies in the Hamptons who could use a salad turd now and then anyway.
  • But, given all that, if we just {ratify Kyoto, drive a corn car, Drive those fuckers out of the White House, Elect Al Gore, go see this movie, read this book, Get ANGRY, recycle, revert to Pleistocene-era technologies and population levels, etc.} then the climate will start making a comeback and everything will be Alright.
    • Gimme a break.

The conclusion I always come to is that there are a bunch of corporate lobbyists, shill groups, and general right-wing reactionaries on one side distorting the case against climate change; and there are a bunch of idealistic, ideological, dogmatic, left-wing reactionaries distorting the case regarding Global Warming.

Ultimately it’s the same continual over-hyped shit: the “Left” hates the “Right” and vice versa. Corporations are dumping PCBs in the Hudson, and generally fucking up the planet., but probably not raising the temperature, whether or not that would be good or bad. The activist army can’t grasp economics or global scale facts, and will tar with any brush so long as the paint sticks.

Overall, most people have the facts wrong, and there’s many things more dangerous than half-informed self-righteous prigs (no matter what their agenda)—but few things more annoying.

(...and, yes, I’m aware that the last bit applies to me too. ;-)

Tags , ,  | 1 comment

Our software project makes front page of Tennessean Business section

Posted by rick Tue, 16 May 2006 00:48:00 GMT

Our CEO was profiled on the front page of the Tennessean’s business page this morning. It’s quite a long article, and in the last 1/3rd of it he talks quite a bit about the software project I’m managing. He doesn’t mention it, but it’s (to our knowledge) the largest Ruby on Rails project on the planet, and one of the higher profile ‘we switched from Java’ cases you can find as well.

So, um… W00t!

Tags ,  | no comments

May the fat loins of your wife bear many "strong boy"!!

Posted by rick Mon, 08 May 2006 16:02:00 GMT

Best comment ever.

(scroll down to comment #3, in response, of course, to comment #2)

Kebab King from Jackson Heights said 89 days later:

Greetings, Sreenu!!!

I am, too, very much having an interest in these rails happenings and the ebay! I am quite politely in the development of many several of “ebay frameworks” (but not ebay hahaha) and the rails are “work very sufficiently” for my needs. I think you are doing the Right Thing and even though you are “very stupid” right now, with hope and much Prayer to teh god you can develop one very similar ebay framework as I do. I wish you best lucks and may the fat loins of your wife bear many “strong boy”!!

Tags  | 1 comment

Plowhaus adopts new member volunteer strategy

Posted by rick Fri, 05 May 2006 12:31:00 GMT

I'm not sure which is more priceless -- the implication that artists' volunteer labor is akin to that of "illegal immigrants", the apparent going rate for hourly "illegal" work, or just the whole freakin' email to all members message.

Check it out: [Plowhaus-members] another weekend of work

(The Plowhaus is a local co-op gallery that I've actually shown work at -- it's a good idea with some good projects, but also characterized by ongoing strife and ego conflicts, this being but the latest example.)

Tags ,  | 1 comment

best party eva

Posted by rick Mon, 24 Apr 2006 02:28:00 GMT

We had a pretty rock-ass quintuple birthday party at our place on Saturday night. Tom Selleck, Tom Cruise, Blondie, the ghostbusters, and, of course, The Hulk showed up!

(thanks to Jimmy for the photo and the Stay-Puf appearance!)

Tags  | no comments

nsarchive on Che Guevara

Posted by rick Mon, 17 Apr 2006 22:15:00 GMT

Almost completely apropos of nothing: an interesting collection of tidbits about Che Guevara from the early NSARCHIVE collection.

In case you’re all worked up now to show your socialist fervor and get some spending on, perhaps you’ll visit Che Mart? (thanks to Michael for that link.)

Tags  | no comments

thought on hiring

Posted by rick Wed, 12 Apr 2006 18:29:00 GMT

There’s a saying about how people hire that goes, “A’s hire A’s and B’s hire C’s.”

Turns out the saying is incomplete—the full saying is, “A’s hire A’s and B’s hire C’s and C’s hire at random.”

I’m pretty sure there’s a corollary about firing that goes something like “A’s don’t fire, but B’s fire A’s, and C’s fire at random”.

There’s something about Parkinson’s Law that makes me wonder about these rules of thumb, but they seem to be pretty accurate out in the workplace.

Tags ,  | 1 comment

BorderFilmProject.com

Posted by rick Wed, 05 Apr 2006 02:34:00 GMT

Check this out: this group hands out disposal cameras to migrants in northern Mexico and to Minutemen here in the U.S.

Tags  | no comments

"Why you too should cancel cable"

Posted by rick Wed, 29 Mar 2006 21:30:00 GMT

Here’s an uplifting little read: Why you too should cancel cable. I think the last time I had cable was when I lived in New York which would’ve been around 1998 (“we”, my wife and I, have never had cable the entire time we’ve lived together). I actually auctioned off my television at work on May 6th, 1998 after having what alcoholics would call a “moment of clarity”...

Having been convinced some time ago that there is nothing but propaganda present in today’s television broadcasts (other than the NCAA college basketball tournament which is long past) I have finally decided that it is pointless for me to own a television—hence I am offering mine for sale.
The television is a Magnavox, cable ready 21” set (I believe that’s correct, maybe it’s slightly bigger). Picture is perfect. Sound is somewhat fuzzy. No remote control (this was destroyed in a television disillusionment episode, sorry). I purchased it at The Wiz 2 years ago for around $300.
I estimate that the set is worth $100 (or more) to someone who is interested in watching television. I will conduct the sale as follows:
1 – The sale is offered to the person presenting the best offer to me via e-mail (received) prior to midnight (EDT) tonight. Earlier offers receive precedence over later offers of the same size. I reserve the right not to sell if no reasonable offers are received.
2 – Assuming there is such an offer I will bring the set to the Setauket office tomorrow morning. At that time the potential buyer may inspect the set, and either accept or decline the sale.
If the sale is declined then the person with the next best offer will be contacted. This will continue until the set is sold or there are no more offers.
Happy shopping,

Rick

It was sold to a co-worker who wanted to neutralize the impact of the mother-in-law who had moved in “temporarily” some non-trivial amount of time prior.

These days we have 3 televisions in the house, all piled on top of each other, one of which is a 13” set I had as a kid, which I connected to my Commodore {VIC-20, 16, 128} computers over the years. The other two televisions are color 70’s vintage and were given to us for free by someone who was about to trash them. In the past few years this is all I can recall watching on them:

  • a bouncing message on the screen of a Commodore VIC-20 (ran for a few days straight)
  • over-the-air broadcasts of lots of UK basketball games and NCAA tournament games, occasional miscellaneous college hoops
  • a couple of World Series games when the Red Sox won it
  • channel {2,4,5} radar maps showing tornadoes swooping into the local area
  • the presidential debates and a couple of State of the Union addresses (you have to watch them to play Presidential Debate Bingo and the State of the Union Drinking Game)—for these we’d tune all 3 televisions to different broadcast channels to see just how biased and moronic the coverage from the major networks is in real time. (Answer: thoroughly)
  • some DVDs

Occasionally we’ll have a television-addicted visitor come and stay for a while and crank up the Idiot Box, but otherwise it’s pretty much just an appliance that show hoops and weather occasionally.

Tags ,  | 1 comment

tour de Babel

Posted by rick Sun, 05 Mar 2006 01:04:00 GMT

A fun look at various programming languages from inside the walls at Amazon. Go there.

Tags  | no comments

...not that I'm bitter

Posted by rick Sat, 04 Mar 2006 01:37:00 GMT

This guy has one of the better collections of rants I’ve read in a while, over at that aaronsw info(-how-is-this-supposed-to-make-money-again?)gami thingie.

Tags  | no comments

Slides re: Dependency Injection in Ruby

Posted by rick Sat, 25 Feb 2006 17:43:00 GMT

Here is an interesting presentation from OSCON2005 by Jim Weirich entitled Dependency Injection: Vitally Important or Totally Irrelevant?

Tags ,  | no comments

happy 30th birthday!

Posted by rick Wed, 22 Feb 2006 00:44:00 GMT

We found some old pictures that had lain hidden for years and took them in to be developed. Oh, we got some surprises when they came back!

Here’s a gem of a shot from my 30th birthday party. This was at someone else’s house down around here. Hot pink stratocaster for some reason not pictured here.

Rock & ROLL!!!

Tags , , , ,  | no comments

The Hurtt Prize

Posted by rick Mon, 20 Feb 2006 22:45:00 GMT

This is just priceless:

Harold Hurtt has suggested that surveillance cameras be placed “in apartment complexes, downtown streets, shopping malls and even private homes”, according to this story in the Seattle Post Intelligencer. In response, I hereby found…. The Hurtt Prize

The Hurtt Prize is a $1060 (and growing) reward for the first person who can provide definitive videotaped evidence of Houston police chief Harold Hurtt committing a crime, any crime. This evidence will posted here and forward to the Huston Police Department along with a demand that action be taken.

Tags  | 1 comment

thoughts on aosd in Java

Posted by rick Thu, 16 Feb 2006 05:05:00 GMT

A post to the aosd-discuss list, re: [aosd-discuss] AOP myths and realities article published.

Tags , , ,  | no comments

hoops!

Posted by rick Wed, 15 Feb 2006 22:56:00 GMT

Just got a call and it looks like I’ve got a free ticket to tonight’s Vandy vs. Florida game. Awesome!

UPDATE: we went, and it was a great ballgame. There’s a recap post on the hoopsmap site.

Tags ,  | no comments

quote of the afternoon

Posted by rick Wed, 15 Feb 2006 22:52:00 GMT

I’d rather hunt with Cheney than ride with Kennedy. From the Chase Me Ladies weblog that Sean turned me on to.

Tags  | no comments

On "Trusted Computing"

Posted by rick Wed, 15 Feb 2006 19:44:00 GMT

The BBC is carrying an article, UK holds Microsoft security talks, which prompted some thoughts from me about so-called “Trusted Computing”.

So:

  • A person’s PC holds data they cannot get to.
    • Would they be held accountable in court for that data store, presuming it held information about accessing, say, child pornography (whether correct or incorrect?)
  • A person’s PC holds an encryption key they cannot manage:
    • What if this key is compromised, duplicated, etc., for purposes of fraud? Like biometric keys, unless done properly (and you trust Microsoft and friends to pull this off?) key forgery, fraud, duplication can cause serious problems for the rightful holder of the credentials.
    • What if the motherboard on a “Trusted” machine is toasted from a spilled soda—sounds as if the inconveniences of iTunes/Windows Media DRM become consequences to much more than just movie and song data…
  • A person is not allowed to install programs that aren’t authorized to run on their system. This would initially be those which might violate a copyright, but would, in various political environments (probably starting with China or other repressive states), expand to match the whims of controlling entities. The slippery slope is steep here, and the chasm probably has big pointy spikes at the bottom.
  • Companies (the OS vendor, copyright holders, who else in the future?) determine what may run and what may be stored on a person’s PC. This would quickly expand to governments and any other entities who could lobby, buy, or extort the privilege of being a “Trusted” third party. Imagine, instead of having to dam up the flow of information at highly porous Chinese borders, if the flow could be controlled, in parallel, at its source.
  • If a hardware problem arises (seemingly the most likely case where data on the system is changed while the system is offline, which the article makes much mention of) any amount of stored data, apparently, will be unrecoverable—over and above the data which would normally have been affected by the hardware problem.
  • Governments are working to make the PC into a Clipper Chip—only this time not only would the government have access, but the OS vendor and who-knows-how-many other entities would have access to the data on the system.
  • A general purpose PC is more powerful than a Clipper Chip—rather than just being able to restrict and backdoor data reading, the new PC platforms could readily backdoor functionality as well. If the government, OS vendor, or copyright holder (or …?) wishes for the PC owner not to be able to run certain software, open certain files (which he or she may have created from nothing, e.g., home movies, snapshots, open source software, etc.) or requires that certain software always be run (spyware, logs of content uploaded and downloaded, etc.) then these sorts of “innovations” are also possible, probably trivially enabled.

In this new technological paradigm we have a situation where the person who has the least control and gains the least utility from the PC is the nominal owner. Everyone else has more control over the machine, the software, and the data than the person who purchased the system (or built it from components).

Of course, to ring in the new paradigm in good Orwellian fashion, The Oxford Dictionary of Newspeak <-> Old English gets a few updated definitions:

  • “Trust”: mistrust, skepticism, suspicion.
  • “Trusted”: (1) mistrusting, skeptical, suspicious; (2) controlling, enforcing, preventing; (3) policed.
  • “Owner”: (1) customer, lessee, suspect; (2) one who is monitored, suspected criminal.
  • “Hardware failure”: illicit tampering with systems (1) to secure illegal access to copyrighted data, (2) to attempt to attain control of a computer system, (3) to engage in sedition.

It has been facile for government and industry to point to “piracy”, “file sharing”, and “dwindling industry profits” to justify engineering “protections” into our systems, markets, and laws (DMCA, various attempts at CBDTPA type bills, Broadcast Flag legislation, WIPO agreements, trade treaties, etc.). But, Google could buy Hollywood with a stock swap, Microsoft could buy them with cash on hand, and the record labels are truly chump change—without looking I’m going to bet that the backhoe rental industry is bigger, and if not, throw in the engine brush industry, and #2 pencil production.

When the tiny tail is wagging the humongous dog this strongly it’s worth looking a little more closely at the dog.

“Trusted Computing” and the legal framework around it certainly helps the Content Industry, but, really, who cares? Setting a standard for controlling computing hardware (which is the PC, as well as anything with a digital adder or a serial port, cat-5 or cat-3 jack, an infrared port, etc.) means lots of things to lots of entities who really really get off on Control, and, worse, are currently feeling just a bit threatened:

  • Microsoft – Vista has no new positive features to speak of, Microsoft’s dominance is being threatened by open source software, Google, and web applications on all fronts. “Trusted Computing” means that Microsoft shores up the vendor of choice position, can exclude open source software completely (whether by “misconfiguration” or by a bold fiat) from its platform.
  • Intel – threatened by AMD as well as video card and game station processor builders and integrators, “Trusted Computing” provides Intel with the blessing of the deus ex machina.
  • Government – gentlemen don’t read each others’ mail, but governments do. ANY scheme to get more control over the public and weasel more information out of them is going to find a set of sympathetic ears in a legislature, much less an administration. Add a cut of the profits in whatever fashion can keep the “ethics” hawks off the politicians’ backs and you’ve got a hog trough with a waiting line.
  • Hardware vendors – the entire planet won’t go “Trusted Computing” (as not everyone is batshit crazy), which means that where there was one product line there are now two. W00t!
  • Non-OS Software vendors – Open source software is starting to take a serious toll on the viability of a lot of software lines. Mandating a platform which excludes open source software as “untrusted” shifts the ecosystem drastically.

The biggest loser in all of this is the public, the “consumer”, the untrusted source of dollars to keep the machine running. The gamble comes down to “are people so addicted to the Microsoft/Intel way of life that we can pull this off without running them off?” The Trusted Computing folks are betting the odds are on their side.

UPDATE: This article, HBO stops working with Media Center, seems particularly apropos. The future is already here in some form, eh?

Tags , , ,  | no comments

Grants.gov "web application" a Citrix server?

Posted by rick Mon, 13 Feb 2006 17:14:00 GMT

Check this nonsense out… A bit ago there was some noise being made about how Grants.gov was an IE-only website.

What’s Grants.gov? (from the WaPo)

The new “Grants.gov” system, under development at a cost of tens of billions of dollars, aims to replace paper applications with electronic forms. It is being phased in at the National Institutes of Health, Department of Housing and Urban Development and other federal agencies. All 26 grant-giving agencies are supposed to have their application processes fully online by 2007.

But the system only works for Windows users. This is a pain in the ass for Mac users, and it seems that a non-trivial number of scientists are Mac users (having been close to a number of labs in a number of states over the years it seems like SGI users would also have a bone to pick, but there’s probably at least one Mac in most of those SGI labs as well).

I figure, no big whoop: it’s just the typical incompetent Microsoft fanboy contractors doing something stupid to make the site not work outside of IE. Often this is something as moronic as having JavaScript which checks the browser’s User-Agent string and complaining if it doesn’t report a version of IE. Such nonsense it typically relatively easy to fix once people complain.

Or, as is often these days, a .NET shop doing the development vomits out a site which relies on ActiveX controls to do sorting of tables, etc., and which is never going to work on non-Microsoft browsers. That’s a real headache, but there’s usually some reasonable way to slash and burn until it’s relatively platform agnostic.

The word on the street is that they’ll be taking the time to support Mac users (for example), so I was thinking it must be something straightforward. As much as it sucks for billions of our tax dollars to be wasted on botched IT spending, it’s nothing new for government systems, and it sounds like things would converge on something moderately usable which harkens back to the 1996-era web. Pretty good for a government website overall.

Then I read a follow-up email to Dave Farber’s IP list, including this choice revelation:

As an IT Employee at a research institution who just finished working to get my local Mac users up and running on the Pure Edge platform, I can say, the process of getting it working was annoying – but it is possible – grants.gov has made a Citrix server available for public use for the application, has provided links to the Citrix web to allow people to download the client, and has provided a Citrix profile which will allow pretty much anyone to access the grants.gov citrix server.

To my knowledge, correct me if I’m wrong, Citrix provides a technology that lets clients use a non-browser software program to bring up Windows applications in a “remote desktop” fashion. Meaning that you’ve got a Windows server (or one of an acre of such) out there somewhere behind Grants.gov that’s running an application, you run Citrix, you connect to that desktop, and you do point-and-click Windows desktop operations to get your work done.

So, not only is this not a “web application”, this paradigm is very difficult to scale to handle any sort of significant load, doesn’t work with browser technology, and, in short ignores the last decade and a half of progress in the field of software development. And it’s being fielded today as a taxpayer funded gateway for all new grant processing?

I’m flabbergasted at the immeasurable incompetence it would take to field such a “solution”, and the chutzpah it must take to pretend this is a good use of tax dollars and some sort of step forward for the process of research funding.

I can’t imagine how one can justify spending money for Microsoft Windows servers on the back end, Microsoft licenses, Citrix licenses, support headache costs, etc., to deploy a system that doesn’t utilize the web, isn’t browser agnostic, and doesn’t interface with the community it’s intended to serve. The project I’m managing is deploying a huge system that’s platform agnostic, database agnostic, fully leverages the web, and which can be deployed with zero licensing costs (it can also be deployed on Oracle if you choose to pay for that). Our budget is a vanishing fraction of that for Grants.gov (but still well into the non-chump-change realm) and we still take our mission to fit the user community’s needs with the utmost seriousness.

If what I’m reading is true, Grants.gov is a product of rampant and pervasive incompetence.

Oh well, perhaps I should eat lunch now. Things always look better after lunch. :-)

Tags  | no comments

Firebug

Posted by rick Mon, 13 Feb 2006 04:39:00 GMT

Well, there’s some real potential in this: Firebug is a slick extension for improving the javascript and AJAX debugging experience in Firefox. So when is IE going to promote this sort of developer ecosystem? Heh.

Tags  | no comments

libertarian thinking & CS IQ

Posted by rick Mon, 13 Feb 2006 03:21:00 GMT

An ancient article is making the rounds again, discussing the similarities between the thinking of computer scientists and Libertarians. Choice quote:

When I observe how most people approach politics, it reminds me of the way my hypothetical student approached his program. A person notices that some people are making $1 and $2 an hour and are having difficulty managing financially on such a sum. This seems bad and they want to fix it. But they have no model of interaction that would allow them to reason about what might cause such a result. So they decide to pass a minimum wage law so the problem will go away. And it does (apparently). There aren’t any poor people making $1 and $2 an hour anymore. But there are suddenly lots of unemployed people who have to live off welfare (a new problem). Does the person make the connection and realize that they caused this problem? Not without a model of interaction. So instead they say we have to fix the unemployment problem. And then we have to fix the new problems generated by the fix to the unemployment problem. And then we have to fix the new problems generated by the new fixes. And so on.

If you suggest that eliminating minimum wage laws and the government interference that made those people so poor in the first place would be a better solution, they look at you incredulously and say you must be crazy. This is just like the situation with my TA and the student who had added 2 lines of code to make the numbers print out correctly (“Are you crazy? Why would I delete those lines of code when the numbers would then print out incorrectly?” Because the problem is elsewhere, and that’s the problem you should be addressing, but that’s difficult to explain to someone who doesn’t have a model of how his program works).

Of course, at the end we wind up with the obvious problems of social integration:

I mentioned the importance of logic to CS IQ. I believe it is equally important to libertarian philosophy. From my observation, libertarians tend to think that all political questions can be answered with an almost mathematical certitude. There is no such thing as “a friendly disagreement” in mathematics. If two mathematicians disagree, then one is mistaken. Similarly, if two libertarians disagree, each asserts that the other is either operating from a false assumption or has a flaw in his logic. I think nonlibertarians are really turned off by this, particularly because it comes across as obnoxious and egotistical. But libertarians seem to thrive on it. The community has a kind of intellectual-warrior ethos.

Logic is important, but the ability to work and play well with others is equally as important.

Tags  | no comments

8K AJAX graphing library

Posted by rick Fri, 10 Feb 2006 22:15:00 GMT

Aslak Hellesoy (DamageControl author, Thoughtworker, etc.) just announced a new library for doing GraphViz-style graphing in a browser canvas tag using JavaScript. I’m liking this.

Tags  | no comments

Alien of Extraordinary Ability

Posted by rick Wed, 08 Feb 2006 22:58:00 GMT

Check this craziness out: Pinup girl wants back into U.S. That story’s got everything—rappers, the INS, trucking companies, and a pro-wrestling-style she-said/she-said feud.

Tags

fisheye

Posted by rick Wed, 08 Feb 2006 13:46:00 GMT

Fisheye appears to be a pretty cool tool for visualizing progress in a source code repository. It claims to work with Subversion on Linux, so it’s a potential good fit for us. I’ll give it a spin first chance I get.

UPDATE: Well, it still looks like a nice product, but it’s got three major strikes against it for me:

  • To download it you have to register, with email address (and they do the circa-1998 “favor” of setting all the “would you like our spam newsletter?” checkboxes to on by default)
  • They use a license manager and you’ll want to get a Trial License to get the thing up and running
  • It’s Java

Now, I have no beef with people writing proprietary software and making a living at it. I’m just not likely to use their software, and I’m absolutely certain not to introduce their software into our company, especially if it’s just a tool to get a look at subversion lines of code. I mean, trac works very well for us for 98% of the things we want out of tools to sit on top of subversion. The other 2% we could, frankly, write in a Ruby or Perl script in a short afternoon. I was just hoping someone had already done the work and open sourced it. Guess this isn’t that.

The last bit, about it being Java… There are a lot of people who live in the Java World, who run Java this, run Java that, use Java tools, write Java, run Java, have Java installed on every machine, etc. This is just like there are people who live in the .Net World. This is just like there are people who live in the LAMP World—which is probably a fairly close approximation to where we live, and it’s certainly where I live.

To live in one World and run an application from another World incurs a really high switching cost: you have to install the basic runtime stuff, get the servers set up properly, switch over to thinking in the idioms of that world, just to get one thing to run. Granted, some transitions are easy: if you’re running Java on Linux, it’s much easier for you to run some LAMP software than if you’re on Windows, e.g. Being where we are, in the LAMP world, without any significant Java infrastructure these days there’s a pretty high bar to putting the Java bloat back on the server that we just got rid of a few months ago. Especially for an app that doesn’t give us a big payoff and has a couple of other strikes against it.

Tags  | no comments

more AJAX examples

Posted by rick Tue, 07 Feb 2006 15:39:00 GMT

There are some slick AJAX exmples continuing to turn up online. These caught my eye today:

Tags


banned vocabulary
"+1" (and "-1")
"existential"
"onboarding"
"ferret"
"finesse"
"yeah."
<blank> <units> thin
<blank> warriors
<blank> years young
<blank>'s team
<x> of the moment
(it|)'s all good
(noo|new)b(|ie|y)
I.T.
ROI
P.D.I.
[web] portal
accountab(le|ility)
actuate
advocate (v. and n.)
anyhoo
assessment
belief system
best practice(s)
best practice(s)
blog(|ger|ging)
business rules
cautiously optimistic
celebrate
closure
construct (n.)
creative(s) (n.)
dialogue
divers(e|ity)
diversity
document (n.)
emerg(ing|ent)
emoticon(s)
enabler
eponymous
everyday heroes
extreme <blank>
facilitate
faith-based
foment
gestalt
git 'r done
gradation(|s) [sic]
guiding vision
hoi polloi
human drama
ill-fated
incentivise
jejune
kerfuffle
killer app
kudos
leverage
marginalize(d)
matriculate
merch
monetize
mouth-feel
multitask(|ing|er) (n.t.)
n(oo|ew)b(ie|)
network(|ing) (n.t.)
nexus
outsider art
podcast(ing)
proggy
protocol
quantum leap
reflect (v.)
repurpose
revamp
river system
schadenfreude
sea change
shopping (etc.) culture
shout-out
some <blank>-action
sophomore effort
strategic repositioning
synergy
team members / partners
the <blank> arena
the <x> Street
tix
under 30-set
value system
vertical
where('|i)s the outrage?
win-win
winders
Weltanschauung