1. Rounded Corners - 199 (Waste management)

    March 27th, 2008

    The new XML/HTTP Spring gets REST, as does Windows Live. And in case you’re wondering, no worries: no hypermedia was harmed in the making of Microsoft’s RESTful API. By the looks of it, REST is the new XML/HTTP.

    The race to complicate. If you care to know what I think of the new JavaEMCAScript, just ask Douglas Crockford:

    Complexity in a language does not necessarily reduce the complexity of programs. I think the opposite may be truer.

    Well said.

    Waste not, want not. Waste Management suing SAP over the cost of licensing hype. I wonder if we’re going to see more law suits like that in coming years?

    It’s part and parcel with the 6 month, business class and golf course, sales cycle, which works at a higher level abstraction than implementation details. There’s an alternative. Software that sells itself, like open source and SaaS, and a sales model that builds on customer experience and references (did someone say blogs?)

    Would you trust RAM? RAM disk in kernel, backed to disk. The data gets mirrored to disk, eventually, so the entire setup is optimized for I/O performance, at the expense of reliability. There’s only one problem: “You just need to believe in your battery, Linux and the hardware it runs on. Which of these do you mistrust?” I don’t trust Linux, the hardware, or the battery. And all three earned that mistrust. Still, if I had the option I could think of a few uses that don’t need an always spinning hard disk (real or metaphorical).

    Don’t means don’t. For some reasons I always thought @donotreply.com is a magical domain, much like example.com. Turns out, I’m not the only one who got it wrong. Next week, reasons #42 why I shouldn’t be administrating your server.

    Above, it will probably take a few more attempts before Lynx passes the Acid3 test.

  2. Best practices for implementing CPTP 1.0 in HOA deployments

    March 25th, 2008

    Human-Oriented Architecture is a computer systems architecture style for enabling enhanced collaboration between human resources, inside the Enterprise and outside.

    HOA encapsulates point-to-point, pub/sub and hub-spoke topologies. It incorporates dynamically driven applications and static content. It leverages synchronous messaging channels and asynchronous message delivery agents.

    A key component of any successful and reliable HOA deployment is the ability to leverage micro-content exchange patterns, and CPTP plays key role in achieving that capability in a scalable manner.

    CPTP, currently at version 1.0, traces its roots back to CUA (1987), and builds on a variety of HMI standards developed by major industry players.

    In this article we provide five best practices for using Copy & Paste Transport Protocol 1.0 in your application:

    1. Text should always appear as text. CPTP allows for full, partial, and transformative extraction of textual units. However, current implementations are only able to interoperate with producers that provide textual content types.

      Do: Use text, possibly intermixed with textual markup, such as HTML and/or XHTML.

      Do not: Use images, binary formats, binary formats encoded as XML, binary formats relying on rendering plugins.

    2. The address bar should always point to the contents/actions in front of you. CPTP allows for the exchange of content units, however, when dealing with dynamically generated content and interactive applications, you will want to leverage CPTP’s capability to exchange page pointers, aka YouAreEl.

      Do: Use URLs liberally and distribute content and functional units across distinct URL values.

      Do not: Obscure navigation by hiding end-pages inside frames. Note: version 2.0 of the Frames in HTML specification (aka AJAX) degrades worse than version 1.0.

    3. Navigation is different from action. Version 1.0 of CPTP covers the extraction of navigation target, but has no provisions for supporting action targets. Separate according to use case.

      Do: Use links for navigation and forms/buttons for actions.

      Do not: Use forms/buttons for navigation, incorporate flashy technologies that do not distinguish between the two.

    4. Semantics transpose better then presentation. CPTP promotes a loosely coupled architecture, as such, message producers and message consumers operate under independent, unbound contexts. Message producers should take this into account.

      Do: Use semantic markup to convey meaning, for example, strike and blockquote.

      Do not: Use presentational markup that depends on context for proper rendering, such as, font element or style attribute.

    5. Organization and flow of information aide in task performance. CPTP implementations vary in their capabilities, however, while all are able to select continuous units of text, a large majority is unable to cope with excessive fragmentation and overriding behavior. Organization of text will decrease task performance time and increase rate of task completion.

      Do: Let the text be.

      Do not: Use excessive positional and floating units, layers, tables for non-tabular data, behaviors initiated by hovering or clicking on text.

  3. Rounded Corners - 198 (Less is the new black)

    March 23rd, 2008

    Slim trim. Apparently Eclipse might be going on a feature diet:

    “We started off as an integrated development environment and now it’s become an integrated everything environment. The trouble is finding what you want in it,” Cole said.

    There will be a focus on the valuable parts and lots of it will not be valuable, he said. It cannot be predicted yet how this will all unfold, according to Cole.

    I blame it all on apple.

    Bloated. Speaking of Apple, I’m not particularly surprised by their decision to dump Safari on unsuspecting iPod and iPhone users. Let’s see if you can complete this sentence: Apple to Safari is like ________ to IE.

    Or for that matter by Sony’s latest offer: $150 (Vista Business + processing fee) to tune new machines to “conserve memory and processing power while maximizing system performance right from the start”. Their words. That was quickly followed by a $50 discount coupon, unexpected, quick and very welcome. We’re talking hours between outcry and response, and we’re talking Sony, which left me quite shocked and pleasantly surprised. I really did not expect that. (I also didn’t expect Sony to one-up Apple)

    Inside job? And speaking of operating systems, interesting perspective on GNOME vs KDE vs OS/X vs Windows. As an end-user flipping back & forth between these operating systems: what Robin said.

    On a different note, scroll through the comments on this post. Seems like other people are also experiencing Kubuntu as the distribution that makes KDE look worse.

    Instant gratification. Another win for simplicity:

    Instead, the Flip has been reduced to the purest essence of video capture. You turn it on, and it’s ready to start filming in two seconds. You press the red button once to record (press hard — it’s a little balky) and once to stop. You press Play to review the video, and the Trash button to delete a clip.

    There it is: the entire user’s manual.

    Any takers? First time I hear of the KJ-Technique: A Group Process for Establishing Priorities. My initial thoughts:

    1. Yes, this makes perfect sense, it’s just so obvious.
    2. Definitely ought to give it a try.
    3. It’s just begging to be done as a Web service, isn’t it?

    PC vs Mac, via Michael Gartenberg.

  4. Rounded Corners - 197 (Not a moment too soon)

    March 20th, 2008

    Temptation

    And not a moment too soon. Via InfoWorld:

    Microsoft also is pondering accepting Java as a first-class citizen on the Windows platform, Ramji acknowledged. “I think there’s enough interest to start taking a look at that,” he said.

    You think?

    Unwired. Yesterday it was BusinessWeak, today, Tired magazine. This time we have a fake tension between two supposedly opposing forces backed by cherry picked facts and half truths. The result is a well written article and a very compelling read, I enjoyed every minute of it, much like my other guilty pleasures, Lost and CSI. Except, I don’t want fiction and fake drama, no matter how entertaining, from an article appearing in the Tech Biz section. I’ve got to wonder what other fallacies are passing through the editorial sieve at Wired? Until I find out, and I probably won’t, I decided to just yank it from my feed reader. Goodbye.

    Open as in not. Verizon’s feeble attempt at opening up. Sounds like Microsoft talking about their relations with the open-source world: a big step for them, that doesn’t change much for us. Too bad, though, their network is top notch.

    Be lazy. The lazy way to get better test coverage: Laziness catches errors in your Rails application and turns them into test cases.

    Money quote. From a well written wontfix response (via Stu Charlton):

    Jon’s principle could perhaps be more accurately stated as “in general, only a subset of a protocol is actually used in real life. So, you should be conservative and only generate that subset. However, you should also be liberal and accept everything that the protocol permits, even if it appears that nobody will ever use it.

    Above, Git is getting more and more tempting with each passing day.

  5. Early x-mas gift

    March 19th, 2008

    Apropos Joel’s IE8 rant. He has a point. Standard compliance in IE8 will come at a cost. I’d like to side with standards, but I can’t ignore what’s going to happen out there in the field. You know, with people who actually use IE and can’t tell well-formed from creme suffle. Joel hits the nail on the metaphorical header. It’s a problem.

    The thing is, in Joel’s world, IE8 has 98% market share and the Web is static. That’s hyperbole in the first degree. In the world we live in, IE8 is not shipping yet, will need years before it takes over IE’s diminishing market share, and the Web …. well, the Web is dynamic. It has time to adapt and it will use it wisely. Joel’s doom and gloom predictions are link bait, hence the absence of link.

    Yes, some sites will be broken in the meanwhile, not any of the big ones, not any of the ones Joel’s lists in his rhetoric. Yes, some sites will be broken forever, no one will attend to fix them, and they’ll break on other browsers as well. This too shall pass. In the long run, ignoring the-world-is-ending prediction, standard compliance will play better for all of us.

    That side, full disclosure. I’m going to hate cross-browser testing against two incompatible versions of IE, and I’d hate going back to fix code I don’t want to touch, and i’d hate that some of my stuff will break because I won’t bother fixing it. I won’t ignore the cost. But I don’t particularly mind if there will be a temporary glitch in the matrix that will send IE8 the way of Vista. If not for a better IE, at least for a better Firefox.

    Either way, consider this an early x-mas gift from our friends in Redmond who need to win some open source brownie points.

  6. Rounded Corners - 196 (The only key you need is F5)

    March 18th, 2008

    J2EE is dead, long live the new J2EE. By which, I mean, Java 2 Everything in Eclipse. Anyone else thinks rolling the runtime into the IDE is a daft idea, or is it just me?

    How to win friends. Here’s how:

    So, not only will customers receive partial credits for their losses, they’re also receiving bonus credits just because of the inconvenience caused by the strike, something which wasn’t even Apple’s fault. That’s great customer service and sure to please Apple’s customers.

    Made my day. WebDeveloper now works on Firefox 3.

    Clueless. According to this ill-informed piece by BusinessWeak Mac viruses are an imminent risk. The end is near! Abandon all hope! Oh, wait, you wanted proof? Sure. Hackers are jail breaking their iPhones.

    In unrelated news, dwindling circulation at BusinessWeak impacts cash flow, fact checkers and clue procurement department let go.

    RequestProcessorFactoryFactory I’m having too much fun with ClassNamer. Random sample:

    CloneableTaskFactory
    ConfigurableIntegerUtil
    MultipleMetadataEngine
    DynamicTimestampFormatter
    SerializablePixelContainer

    Still, my all time favorite remains unbeatable: RequestProcessorFactoryFactory. (Hint: not class)

  7. Rounded Corners - 196 (Down for everyone, or just me?)

    March 15th, 2008

    The HTTP Status Spaghetti

    Have the cake, eat it too. I just got an invite to DropBox (thanks EngTech), and it’s everything the screencast says. So far, I’m loving it.

    Basically it’s a file system in the cloud, so you can access files from any computer, synchronize between machines, and share folders with others. Usually that means “as slow, flakey and annoying as your Internet connection”, which DropBox works around by creating a duplicate folder on your machine. Opening files, saving changes, copying and moving, everything happens at HD speeds, offline or online. DropBox quietly synchronizes in the background.

    There’s an activity stream — 2008’s contender for Buzzword Bingo — which here makes perfect sense: double check that a change went through, or find out what’s happening on a shared folder. On OS/X it growls at you whenever someone drops a file into a shared folder. And of course, this being 2008 and all, it keeps a copy of every version and holds on to deleted files.

    Technically not a backup solution, since files get duplicated in source and DropBox folder, and the suggested symbolic link workaround doesn’t live up to the hype, but hopefully that will be fixed soon. The rest boils down to the yet undecided pricing scheme, and a few more security options (permanent delete, private keys), but if it pans out, I’m thinking DropBox over TimeCapsule.

    You too, or just me? Google down? What gives? Most likely it’s just Firefox playing mind tricks on you. Check you sanity. (Thank Alex Payne)

    Lazy web. Atlassian is giving away $5,000 for a cool plugin or extension on each of its products. I can’t guarantee this one will land you the prize, but definitely my appreciation: a JavaScript widget that I can drop into any Web page that will show recently open/updated issues from JIRA.

    Love the outfit. That’s what I think of Ryan Tomayko’s new blog design. Separately, check the post that led to it, good point worth practicing:

    Many of the design decisions were based on the goal of reducing administrative debris, integrating various bits of workflow directly into the content as much as possible, and attempting to accentuate the strengths of HTML’s interface capabilities instead of perverting them.

    TGIF. Microsoft Bob.

    Above, Alan Dean helps make sense of the HTTP Status Spaghetti.

  8. Rounded Corners - 195 (… give way to torn edges)

    March 12th, 2008

    FlannelReader

    Sexy dirty. Grunge goes Web, rounded corners are out, and torn edges are in:

    In our everyday environment we’re unlikely to find ideal geometric forms or pretty shadow effects as they are manifested by glorious Web 2.0-designs. The reality is different, and Web is definitely not an exception here.

    Therefore designers often tend to explore the less ideal and more realistic design solutions which reflect the world we’re living in more accurately and precisely.

    More grunge eye candy on the other side of this link.

    Safety gloves. Ick, aka please(sir) { may.i.have.some.more }, is a little gem that adds a bunch of methods for abstracting evaluation. A DIY kit for Monads and such:

    Person.find(:first, ...).maybe.salary = 42,000
    

    I’ve yet to use it, but one feature stands out from the rest, and I wish more Ruby developers would pick on it (self included).

    Ick does not extend the worldObject. It treats open classes with the respect they deserve and a healthy does of trepidation. Like they say at the factory, “safety first, and nobody lost an arm doing nothing all day”.

    Anyway, Ick has this nice way of letting you decide, when, where and what to extend:

    Ick::Maybe.belongs_to Object
    Ick::Let.belongs_to Object
    

    Join the navy, see the world. Are .NET Developers the American Tourists of the Software Industry? As a theory, not so far fetched:

    For example, If you are an American and meet someone who is well educated from another country, then statistically speaking the chances are good that:

    1. You will not speak their language even though they will probably speak English.
    2. You will not be able to locate their country on a map even though they could probably name all 50 states.
    3. You won’t know who their national leader is even though they will not only tell you the name of our President, but also give you a nice summary of his foreign policy exploits over his last two terms in office.

    Not meant to be. This was meant as a joke, but the snippet sums up perfectly well what I dislike about Java:

    try {
        s = new String(byteArray, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        throw new Error("UTF-8 is missing??");
    }
    

    X marks the spot. It’s that time of the year, time pick a new skill or two. I’m thinking, a language. Not quite pure as Haskell, not quite stock ticker worthy as Java, not hyped like Ruby, or feared like COBOL. But one that has interesting hardware behind it.

    And because I’m feeling double lazy today (recovering from a cold), I’ll go with the first tutorial to fall on my lap. Even better when it says “for non-programmers [...] aimed at levelling the learning curve as much as possible.” Let’s see how long it takes to BecomeAnXcoder (cue trumpets).

  9. Rounded Corners - 194 (If it helps you feel better …)

    March 11th, 2008

    It's not that difficult

    Beauty and the geek. n8han: “It’s funny that Sun, who could never be bothered to make a polished Macintosh JVM (causing Apple to take over in the System 7 days) is falling over themselves to make one for the iPhone.” Yep. Clearly the party you’re not invited to is the better one. Even better when you’re asked not to come. This will be fun to watch.

    Anagrams. MVC Obscures the Mechanics of the Web. Clearly, if you’re no friends of [ insert nemesis Web framework ] then you’ll want to focus on its MVC non-conformance. If you’re out there building Web apps, here’s a tip that worked for me. Call it MNM — MNM’s Not MVC. Stop obsessing over What Would SmallTalk Do? It doesn’t matter. Just focus on those patterns that work best for the Web. While you’re at it, check out Rails, an MNM framework for the Web.

    DVCS round-up. Geoffrey Grosenbach adds multi-touch gestures for Git. (MacBook Pro/Air sold separately). Still hanging on to Mercurial? Here’s a handy Mercurial cheat sheet. Undecided? Let your favorite airline choose for you.

    if else throw Let me guess, this will not sit well with the Erlang crowd.

    Money quote. Mark Pilgrim: “For the record, my site is valid HTML 5, except the parts that aren’t. My therapist says I shouldn’t rely so much on external validation.”

    Above: simplicity, explained, by Eric Burke.

  10. Rounded Corners - 193

    March 3rd, 2008

    Brilliance in simplicity. Either Apple royally messed up on the supply side, or people really like it. The MacBook Air is selling well. Anecdotal, but judging by the number of people who smile, approach and ask to have a closer look, I’m not surprised.

    Everything old is fixed again. Still confused what Web 2.0 is all about? This might help to clarify:

    He pointed out how ironic it was to be discussing an application about — of all things — e-mail technology at a conference devoted to the future of software.


    Some up, some down, some cruising along just fine.
    I’m unconvinced book sales are a good approximation for anything I should care about (other than book sales), but if you’re into these metrics, the O’Reilly report is a feel good read. Most likely your [insert favorite language] is either the dominating, uprising, holding strong, a promising underdog, or just doesn’t need that much deadtree to be useful.

    I shall call you mini-me. What is “linking RIAs to SOA”, “supporting both REST and SOAP”, and “provid[ing] components for building enterprise applications that use Web services and an XML document model to support SOA”? That would be curl. No, not this curl, but this curl.

    Un(info)rmed. At its core usability is very simple. You watch what people do and how they react, and optimize for that. Observations first, invented metaphors later. I have a folder full of reference material: specs, APIs, cheat sheets, etc. The ones I use the most and keep around for longer are single page documents. Navigation is nice, but anything I can quickly scroll through or search-in-page is just that more effective. Firefox handles is nicely, so do PDF, and there’s always good old man. Unfortunately, help files on both Windows and OS/X get it wrong (OS/X help is all kinds of wrong). As does the dreaded info.

    Above, so many gorgeous themes, so little time to try them all.