Posted by harrisj
Tue, 19 Apr 2005 22:55:33 GMT
Jeffrey Zeldman coins this lovely phrase in a mild criticism of tag clouds (see
Tag Clouds Are The New Mullets) as the new senstation that's sweeping the nation:
Like mood rings and fanny packs, like mullets and the Macarena, the weighted tag clouds meme popularized by Flickr and Technorati is about to cross a permanent cultural shame threshold. Brilliant as the idea remains, faddishness is choking its air supply. Damned clouds are everywhere.
A tag cloud is one of those displays where they'll have a bunch of one-word tags as links and each link is sized based on how popular it is (more popular = larger font) You've probably seen them on places like
Flickr or
Del.icio.us. The problem snarkily alluded here by Zeldman is that tag clouds (like your favorite indie band) are not as cool when everybody knows about them, and it is dead certain you will see them sprouting up more and more, including commercial sites.
The thing is, I don't personally think they are that brilliant. I'm no visual designer (paging
Edward Tufte), but something seems to be missing for me. I know they are visually arresting and can provide a high-level view of comparative popularity, but looking at the things often gives me a real headache too. I would argue it's actually harder to find less-popular items in a tag cloud than it would be in an unadorned list (seeing the forest for the trees). And in accessibility terms, it's still no better than an ordered list with counts. For small lists, they're pointless and for large lists I find it easier to scroll down vertically than read down and across. I think there is a better interface out there and perhaps it will take the faddishness of tag clouds to give us the necessary backlash for something new.
Posted in Web, Web Design | no comments
Posted by harrisj
Sat, 16 Apr 2005 17:43:00 GMT
David Heinemeier Hansson has posted an interested find over at his blog Loud Thinking about IBM’s stated new goal to pursue Radical Simplification in their enterprise work. Essentially, Big Blue is starting to acknowledge that most enterprise web development is just too cumbersome and daunting for agile and powerful web development. Things like SOAP and WSDL are examples of this. What should be a simple task like retrieve a weather forecast from a remote site becomes a complicated mess of debugging SOAP calls, tweaking WSDL specifications and using wizards on the server to generate code that is impossible for the end user to debug, let alone understand.
Or as Sam Ruby puts in his excellent presentation to IBM on the topic Hello From The Open Source World:
For normal people, the perceived usefulness of a computer language is inversely proportional to the amount of theory the language forces you to learn.
Sam illustrates this in his slides by showing the classic “Hello World” example in a variety of programming languages on different slides. But when he reaches WSDL to specify it, it’s a blank. Because, quite frankly, WSDL is so unwieldy to use, it’s hard to just build it on the fly, forcing many people to plunk down bucks to Microsoft or IBM to get their compilers to build it for them. It’s good business for those companies, but bad news for the Internet as a whole I think.
Ruby says that essentially for a framework to succeed on the web, it has to enable a situation he terms Zero Training, a state where it is easy to get going in the language and to adapt examples to your own needs. Good programming languages have it, some web technologies have it, SOAP and WSDL don’t. Indeed, I feel like the growth of SOAP/WSDL in the enterprise has been in spite of the difficulties of developing for it (mainly because of Microsoft and IBM pushing it). Because, quite frankly, it’s a beast for anything but the most basic RPC-style calls. The reasons:
- SOAP allows you to abstract away the underlying transport protocol. But for 99% of SOAP communication, this protocol is HTTP, and the abstraction limits the control you have over HTTP.
- SOAP needs to validate the entire message before applications can operate on it. This usually means it has to load it up into a DOM as well, so calls that return lots of data or might take a while (the fun ones) are frowned upon
- SOAP also assumes the COM/CORBA marshalling mechanism, so no streaming data or parsing data until the entire document has been received, parsed into an XML DOM tree, and then mapped into an in-memory object tree. For large amounts of data, forget it.
- WSDL has a lot of syntax to map procedure names/arguments onto HTTP. Contrast this to REST, which embraces the inherent naming conventions of HTTP and applies them to a simple procedural call model
- The assumption of these tools is that you will use their SOAP wizards instead of rolling your own code. The wizard is meant to be the only way, not an additional way.
- In fact, the idea that SOAP = Simple Object Access Protocol has become a profound irony.
In his presentation, Mr. Ruby points to PHP as an alternate model. PHP is not really a pretty programming model and it tends to shy away from enforcing higher-level abstractions in favor of lower-level models. But, it is precisely for this reason that PHP has succeeded where many other dynamic web application programming models have failed. Indeed, as it says in the page Do You PHP?
Database abstraction is mostly a myth. There is nothing wrong with direct database calls’ making use of all the tricks and cheats your chosen database has to offer, to tweak as much performance as possible out of it.
And this is the kicker here. Complicated database models tend to abstract away the lower level details of individual databases, even when those details can be the difference between fast and sluggish performance. Remote invocation models like SOAP abstract away the details of the underlying calling mechanism, even when tweaking HTTP requests can be the difference between a fast web app and a slow one. The lower-level mechanism might require more work for the developer, it might be ugly as sin, and it might be wrong and inefficient on some levels, but it works, and more importantly, it works quickly. Because ultimately, the customer doesn’t care what technology is used on the backend, they just want their data fast.
Bringing it back to my own experience, I once had to work on an application where we searched a remote document repository via SOAP and got metadata back on matching documents in XML. The service would send back all matching results for a query and in some cases, this would result in returning 150000 documents over 5 minutes of streaming XML to us. Knowing that the user probably would want to see data as quickly as possible, I decided it would be good to render whatever data I got after I received 10000 documents and tell the user to perhaps narrow their search down. And I tried to do this in SOAP in Visual Studio, and I failed. I could error out completely, but the mechanism had abstracted away the underlying XML-over-HTTP communication that I had no hooks to get lower level.
And so, I chucked it out and went back to basics. The upcoming call to the remote service was faked by filling in an XML string I grabbed from the original SOAP call via a packet sniffer. On the return, my program screams through the data with stream-based XML parsing. Once I hit 10000 records, then I can stop reading the input stream, display what I have, and tell the user that they need to narrow their search criteria. All within 30 seconds.
Those people who use SOAP are probably horrified by this and would rightly point out that I had to do a lot of lower-level work to get some of the same functionality promised by the one-click higher-level SOAP abstraction. But I think that’s precisely the problem. I needed something to work, and I didn’t need as much for it to be pretty. The SOAP framework locked me into a particular model, and once I needed more than that, it failed to deliver. Abstraction is nice, but abstraction always reduces speed, abstraction always reduces flexbility. In most cases, it is possible to strike a balance where the abstraction helps more than it hurts, but until SOAP is able to handle the heavy lifting needed for serious web work, it isn’t worth my time.
Posted in Web Services | Tags rss, soap | no comments
Posted by harrisj
Fri, 15 Apr 2005 21:42:05 GMT
It seems like only yesterday I was mocking the SNIF technology for tracking dog social networks (ie, for selling a new expensive electronic device to dog owners with too much disposable income). But reading that, you might've been thinking, what if I own a chicken as a pet? What device can help me? Well, fret no more, because the Mixed Reality lab in Singapore has a solution for you (I hope this is a hoax, but it seems not): Poultry Internet! This system consists of a remote monitoring device with tactile sensors that allows the user to track a chicken's movements at home from the office and freak out remotely pet the chicken by petting the robot proxy. Be sure also to check out the video to see the system in action, hear the cool background music, and come away inspired by the mission statement:
Poultry Internet provides a new cybernetic direction and experience for both we humans and our poultry friends.
It's a beautiful world.
Posted in Hardware, Pointless | no comments
Posted by harrisj
Fri, 15 Apr 2005 20:14:07 GMT
I completely missed the 5-year anniversary of when the tech-boom bubble started to go south. Looking back, we all knew that the bubble would eventually burst, but a lot of people lost their shirts anyway hoping to get out at the optimum time (essentially like surfing a cresting wave). For those of you who may not have experience the wave of euphoria and techno-optimism that filled those days, visiting Om Malik's compendium of links to reminiscences is a good start. Here's a good quote from Five Years After The Bubble:
Still, it was fun. The parties on the roof top of The Industry Standard, the Red Herring conferences, and of course the launch parties. Ahh.. the parties. Five years later, I realize that I lived through one of the most fantastic bubbles in the history of man. Enough, to turn any sane journalist cynical, an occupational hazard when you write about technology, its possibilities and of course its life changing potential. I worried that I was becoming too cynical and losing my love for the biz I love: technology.
Yes, it all seems so silly now. Working at an unglamorous startup (
so unglamorous we've actually been making money!) here in New York, I wasn't really making the rounds from party to party like people did in San Francisco. But the stories would get out and be reported breathless of course in Wired and other places, so I read about it: the $5 million bashes, the super bowl ads, the hot bands flown in for private gigs while nerds enjoyed their brief limelight. We all felt so cool, nerds were running the show, and we were going to change everything (hopefully in a manner as badass as the first Matrix movie too). But, it was really just an elaborate con in some sense, since old media still got the last laugh. In effect, the whole dot-com boom could be written up as a huge transfer of wealth from the computer industry to the media industry (which is why the AOL-TimeWarner merger was so misguided). It's really hard to avoid the inevitable metaphorical comparison to the Titanic, but I'm going to spare you that at least.
I do remember hearing about one party that really confirmed to me that the bubble had taken on a crazy life of its own. There was a startup from SF advertising everywhere here in New York called Modo that was going to market electronic entertainment guides for the hip tech-savvy crowd. If you've seen
Vindigo for the Palm, the concept should be recognizable. But, instead of operating on an existing device like cell phones or Palms, they wanted to sell a $99 device at high-end stores like DKNY, Virgin, etc. in an attempt to woo fashionistas and the difficult hipster market to tech (usually a fruitless effort). Anyway, to cut a long story short, by the time they reached their launch party, the company had already
burned through $40 million in Venture Capital ($20 million gone to advertising) and gone out of business. And so, their launch party became a wake. Unbelievable, but that's pretty much how it happened in many places, and I am thankful we managed to ride out the Internet crash in one piece ourselves (more on that later).
Posted in Web | no comments
Posted by harrisj
Wed, 13 Apr 2005 19:58:00 GMT
In my previous post where I criticized the
SNIF device for mapping pet social networks as being a solution in search of a problem, I wrote a snide aside about it originating from the MIT Media Lab (where else?). Okay, I will admit it, that was mean. The
MIT Media Lab does come up with some great ideas too. For instance, check out this design for
a remote control that is powered by pushing the buttons (via the wonderful
Make Magazine Blog. This is so simple but brilliant (think how many batteries just go into remote controls every year), that I feel I owe the Media Lab a bit of an apology on the strength of that one invention alone. And they do lots of other neat stuff too. I even took a few classes in holography there while I was a student at MIT.
Still, I feel I must explore the source of my snarkiness. The nature of the Media Lab is that their projects are driven by corporate funding, and so there is often a sheen of hype over everything they do (no sponsor wants to feel like they're paying for a dud). They really have to sell themselves to the sponsors. So, the resulting perception among engineers is this sense of undifferentiated breathlessness where the most speculative and profoundly silly projects are treated with the same reverences as ideas profound and smart. Furthermore, the hype practically screams out the belief that everything will be a wild success and that everything can be improved by technology. It's like we've learned no lessons from the dot-com bust. And this hype is what gets me surly, because I've been down that road before.
Posted in Hardware | Tags medialab, mit | no comments
Posted by harrisj
Wed, 13 Apr 2005 18:46:00 GMT
Well, after the initial excitement over Google Maps had died down, the mounting concerns over user privacy were inevitable. Some of these have been
quite clever, but I imagine there are other bloggers out there seriously concerned about the evil swarm of satellites spying on them. Have we reached an Orwellian future where our every motion is tracked?
Relax. I think not. For starters, as people have noted, a satellite taking photos of your patch of sod every six months is hardly a threat to your autonomy. If anything, your privacy is probably more threatened by the myriad private cameras monitoring your city's streets, not to mention the large dossiers compiled by (and stolen from) credit reporting agencies and personal databases like LexisNexis or Choicepoint. At least with Google Maps, the people are still in control. Indeed, I think there is a profound difference between a society where a powerful few control the cameras (ie, Orwell's police state) and one where any of us can look through the viewfinder. As Jeffrey Veen notes
Ultimately Orwell was right: everything we do will be watched. But he was wrong about the government building it. We did it ourselves. Which means where Matt sees chemistry, I see environmental accountability. Where others see surveillance, I see corporate whistle-blowing. It reminds me of the Surfrider Foundation's project to get kayakers in the San Francisco Bay to cameraphone the bilge coming out out of container ships. What happens when thousands of grassroots activists can click-and-drag through the remote places in this country? Clearcut! Oil spill! You can't dump that there -- we're watching!
Indeed, this seems to be a clear benefit of opening satellite views to all. An ordinary person doesn't really do anything significant enough to be seen from outer space. But, lots of corporations and governments and other massive entities do. And where normally they could hide their various deeds in remote places fenced off from the outside world and spun away by crack PR efforts, they still can be seen by satellite. For example, be sure to check out the the look of clearcutting in British Columbia, described by Mezzoblue:
A picture is worth a thousand words and all that, so here’s a 4000 word essay on what the forestry industry is doing in British Columbia, as of whatever the date was when the satellite snapped these.
I must interject here that I find it amazing that I can examine the effects of the forestry industry in Vancouver without leaving my desk in New York. Maybe there is something to old dot-com boom adage that the Internet obliterates geography! Getting back on topic though, this discussion of uses leads back to the most important question about any spying technology.
Who is doing the spying is much more important than
what they are spying on. That is the point made by David Brin in his essay (and subsequent book)
The Transparent Society back in 1997. Assuming that we can keep cameras out of people's home (a bad thing all around), we have to pretty much accept the fact that the technologies of surveillance are proliferating in public spaces. So, he posits there is really a choice between two societies:
- The Orwellian nightmare state where the cameras are manned by a vigilant and arbitary police force
- The transparent society, where anybody can look through any camera
Why is the second choice better? Perhaps these environmentalist examples with Google Maps illustrate that nicely. It is just that much harder for secrets and corruption to flourish in such a system (hence the transparent in the name), and the technology helps to empower the citizen rather to suppress him. Now, I am no technological utopianist or wild-eyed cypherpunk, and I would prefer a society without widespread surveillance of course. But if it is coming (and it is), I think the more transparent we can make it, the better our future will be.
Tags environment, google | no comments
Posted by harrisj
Tue, 12 Apr 2005 05:44:00 GMT
She tends to paw at me when I dare to work on the laptop instead of scratching her. So, I don't think she'd be into
SNIF, a new project for tracking canine interactions with expensive collars out of the MIT Media Lab (where else?). Yes, this is a fine example of using fancy technology and expensive gadgets to tackle simple problems that aren't begging for solutions. Is it necessary or important? No. But in a city where boutiques sell dog eyeglasses, designer knockoffs, and other expensive dog-oriented options, I suppose it still might sell. From the
Wired News article on SNIF, there are some funny excerpts:
The Social Networking in Fur, or SNIF, project is a wearable computer system for dogs that allows their owners to monitor the animals' behavior and capture their social networks.
Paging Dogster, there's some venture capital heading your way! The dog-com boom has started! At least now, I can devote more energy to tracking Bella's social interactions.
When in the docking station, the leash becomes a display device, alerting users to the status of their pet's social network. If a dog's buddy goes out for a walk, the leash will play the buddy's unique collar tone. "Just as in IM clients, the SNIF hardware makes it easy to know when your dog's pals have gone out for a walk," said Jonathan Gips, one of the SNIF team members. "Instead of being online, your friends are marked as 'outside.'"
I can't really add anything to this. I use this thing called memory to remember which dogs my dog likes, but I'm old-fashioned that way. Of course, I also haven't realized the advantages an advanced electrical device can bring to my bland and depressing existence!
"Psychologically, the pressure to interact socially is lessened by the activity of walking a dog," says Noah Fields, another team member. "Ideally, we want SNIF to function in much the same way. We believe that SNIF will allow dog owners who live hectic lives to use technology to maintain a sense of community."
Yes, if only they could invent communities around dogs playing. Living in Manhattan, I remember going to the dog run, where I could hang out with other dog owners watching out dogs play and thinking to myself, "sure, this may be a community, but if only there were an expensive high-tech way of emulating this system, preferably one that keeps out the poor and unfashionable? When can we reach that golden tomorrow?"
Posted in Pointless | Tags medialab, mit | 2 comments
Posted by harrisj
Fri, 08 Apr 2005 19:44:00 GMT
Like many technically oriented people, I have been following the recent upsurge of interest in exploring Life Hacks at places like 43 Folders (wiki), Life Hacker, or Tricks of the Trade. And, don't get me wrong, there are some cool tips in there on how to do things, but sometimes it's also easy to feel a bit overwhelmed at some of "Hypergeeky Hints From Heloise" tips given like
Why not "fog proof" the mirror before the shower? Two drops of liquid hand soap (or shower gel) on a folded tissue, apply to the mirror in wide circular motions (if it is a big mirror, you can do just the center part, so you can see at least yourself) until it seems you've done nothing (all the soap disappears). The water vapor will not condensate over the soap unless you take a really long shower
That is why part of me is rather amused to read Life Hacks for the Rest of Us, a tongue-in-cheek selection of life hacks for people like me. Those who would like to do things better or more efficiently at times, but are often too busy, too lazy, or some combination of both to care. And who aren't above "faking it" sometimes either. Some highlights:
If you claim to have read all the books on your shelves (but you really haven’t), when somebody asks you what a certain (um, unread) book is about or what you thought of it, say “I’ll let you find out for yourself,�? and pressure them to borrow it from you.
and
Have a goal you keep telling everyone you’re trying to attain but haven’t yet found the energy or willpower to achieve? Write something that alludes to it (e.g., a plot timeline for your “novel�?) on a piece of paper and tape it to the wall. When your friends see it they’ll assume you’re striving, which, as we just noted, is half your battle.
are just perfect. Go read the whole thing. While you're at it, also check out 43 Folders' good self parody for April Fools,
April Power Hacks.
Posted in Life Hacks, Silly | no comments
Posted by harrisj
Fri, 08 Apr 2005 05:17:00 GMT
Okay, blogging has been around for a while to be sure. During all these years, I have been steadfast in my disdain and apathy towards blogging, deeming it little more than a way for overly extroverted people to drone on about their lives to what they imagine is a vast and enthralled audience. Which is probably still true, but why am I blogging?
Good question. In my haste to sneer at the writing crowd, I forgot that the appeal of blogging is that it is a simple and democratic communication mechanism, and this is the kicker: communication is both essential for any career and it is often the one thing most holding back software developers like myself from succeeding. Tim Bray of course says it better than me in his post Blogging Is Good (a response to the many Blogging Will Get You Fired stories recently).
Most relevant in his top 10 list to me are
No matter how great you are, your career depends on communicating. The way to get better at anything, including communication, is by practicing. Blogging is good practice.
and
Networking is good for your career. Blogging is a good way to meet people.
Well put. Having recently understood the importance of networking and communication for career success (as important if not more so than technical skill), I feel it is time for me to recant my ways and give this a shot. Who knows, I may actually enjoy it...
Posted in Meta | Tags blogs, career | no comments
Posted by harrisj
Thu, 07 Apr 2005 17:34:00 GMT
Not really, but that certainly seems to be the attitude of the first poster in the Signal Vs. Noise post Ajax Takes Off
Great, so someone coins a new phrase in a shitty effort to attach themselves to a concept that’s been used for several years. What about the developers that found this solution? Do you see them hitting dozens of blogs shamelessly promoting themselves? No, they’re working on the next cool idea that inevitably some loser will try to stamp there name.
This is where quite frankly most developers annoy me. There is a large fraction of the population that are averse to any hype or popularity or style by nature. And so, it leads to this insane posturing about street cred when others stumble across their favorite technology. And so they attack the polish, they smear the evangelists, and they even will destroy their favorite technology in order to save it.
Dude, whatever. Personally, I am quite glad to the coining of the term AJAX for the nimble bag of technologies that is XML, XHTML, Javascript, XmlHttpRequest, quick server-side components, etc. Nobody likes to pronounce XmlHttpRequest. Having a nice-punchy-if-somewhat-reductive term is useful, especially when pitching your website improvements to those in management who ultimately decide your projects. Yes, Ajax is a bit of hype, but it's useful hype. Embrace it.
Besides, any thing that can be a reference to Greek Mythology, a cleansing product, or a soccer team can't be that bad.
Posted in Web Coding | Tags ajax | no comments