1. Rounded Corners - 33

    September 28th, 2006

    Get out of my browser. You must have read Roger Johansson’s article reminding us why standards matter. So no point in linking to it. But these two examples of bad UI design: “Purely visually oriented designers and Flash developers who do not want the Web to follow any logical rules at all. They want the Web to be a purely visual medium, and approach it as if it was a printed brochure, a computer game, or television.” and “Back-end programmers who don’t really want to touch client side programming, and let their IDE create the HTML, CSS and JavaScript for them.” Yes, I’m talking to you, and no, I’m not using your site. I like it better when my browser works like a browser.

    Validate this. Check out Luke Redpath’s ActiveSpec: “ActiveSpec is a Ruby implementation of the Specification pattern. … It also provides a way of creating composite specifications in a more declarative manager and on top of that, a simple DSL that can be used for easily defining specifications.” Impressive.

    Extra chunky. Sandy Kemsley: “Lesson #1: The way to find out what people want is not to ask them, since we can’t always explain what we want, especially if we are completely unaware of what alternatives are possible.” Somewhere on the road to better software quality, we adopted the mantra that the customer is always right. But would they be your customer if they could do your job? If they’re smart they pay you to research, experiment and innovate with new ideas they don’t even have time to imagine. And it’s your job to bring these new ideas to them. Sometimes to make that happen you need to remember “Lesson #2: Different styles of products are not better or worse, just different. This democratized what might previously have been considered a hierarchy of product styles.”

    What Gartner is telling your boss. The title of this article lists all the reasons to read it.

    That thing got a Hemi? Why yes, it does.

  2. Rounded Corners - 32

    September 27th, 2006

    Where is the Secret of Life?

    Language wars, I. Ever tried to explain the difference between dynamic and static typed languages to non-techies? There are interesting parallels and simplifications you can use to get the main points across, but what happens next is far more interesting. You see, non-techies don’t ask “what about auto-complete?” or start arguing about CALL performance and scalability. Instead they want to know how the split happen, and there’s a really interesting story to tell about language evolution. It’s a history lesson. In one side we have two superpowers, call them “the axis of vendors”, and they both share the same idealogical background. In the other bloc, we have more independent states, some bigger, some smaller. And although they’re known as “the axis of open source”, their ideology is more diverse, and they generally like to keep it that way. Both camps play their political cards to spread their influence, but in the end free market economics forces the superpowers to embrace the change. Or at least, that’s how the story goes.

    Designer: Make it work. I always wondered what it would look like if we had a Project Runway for software designers. 2 days to build up a prototype and impress the judges with a 30 seconds demo. If you wanted to win the challenge which language would you use? Matt at 37signals thinks Project Runway is a good analogy to 37signals. I’m much more interested in the double entendre behind “make it work”. You got to get both parts right.

    Meta-programming techniques. Thinking of meta-programming in Ruby? It’s not hard, but getting started is not easy. A one-liner that takes 5 second to write when you know what you’re doing, could take hours to figure out the first time. Ola Bini has a good summary of the different meta-programming techniques in Ruby. (Via Ruby Inside)

    Get out of Jail, collect $50. Building simple projects with Maven 2.0 is simple. Building anything bigger than trivial requires pompous XML files where ten lines of code accomplish one simple task. If you’re lucky. The less fortunate have to create another project to build a plug-in they can use to build their existing project, and invent more XML grammars along the way. Then there’s the Maven Uncertainty Principle: some builds will work some of the time. So let’s trying something different. Matthieu is working on a build system for Java in Ruby, using rake and gems. Give it a try, let’s see if we can bring simplicity back to the Java world.

    Google first. Comic relief via Zoli.

  3. Rounded Corners - 31

    September 26th, 2006

    Dogma driven development. Ed Gibbs on Agile as a dogma: “And I thought the principal was responding a change over following a plan.”

    Look and feel. Robby Russell: “When you’re working with on a new project, do you focus on interface or code implementation first?”

    Build your own Google. Rcrawl: a Web crawler for Ruby. Uses ScrAPI to extract data from the page. Now, add Starfish to MapReduce in Ruby, and Ferret for full text searches, and you’re a few server farms away from running your own Google.

    Don’t take it literally. According to Steve Yegge, Java’s biggest failing “is its lack of syntax for literal data objects.” Don’t believe Steve? It’s a long post but reads quickly and worth your time, because Steve uses literals to explain a lot of different language design choices, why some work for your and others work against you.

    Quotes for Cube Dwellers. But corner office workers are not spared.

  4. Rounded Corners - 30

    September 25th, 2006

    Spam count. Travelling for four days with limited Internet access, I came back to clear 1385 pieces of spam from my e-mail, and 1883 pieces of comment spam from the blog(s). That’s more e-mail/comments than I read in a year. No one has free time to weed through all this crap, so either you’re not effective with your e-mail/blog, or it’s turning into a technological barrier. And I’m not seeing anything that will fix that.

    Regular expression cheat sheet. Another good one from ILoveJackDaniels.

    Don’t slow down. From an upcoming research about open source development: “Open source defies conventional wisdom about collaborative projects. For example, most office workers know that the slowest member of the team sets the pace for everybody else. But in open source projects, work moves at the speed of the fastest member of the team, and adding more hands speeds things up rather than slowing them down, Devanbu said.”

    Damn the details. Rob Levy, BEA’s CTO: “Well, sure. A lot of the products, the ESB (enterprise service bus), require some of the Java container services but dos not require a full JVM (Java Virtual Machine)…. If you’re really building full-scale applications on Java, you need [the] full WebLogic Server. But if you only need the Java container, but not the JVM that’s run underneath that, then why not just take that and package that with the ESB?” There’s a lot more hand waving and technical snafus in that InfoWorld interview. Four days later, InfoWorld follows with another article calling the BEA product strategy: fuzzy. I’m anxious to see how BEA will innovate around SOA, but I guess I’ll have to wait a longer for the product line to catch on the buzz.

    Be wary of clumsy incentives. From a presentation by Tom Coates. (Via Michael Meiser)

  5. Rounded Corners - 29

    September 21st, 2006

    Worth repeating. Roger Castillo: “the management capabilities of the network devices should become more intelligent, but the network hardware should have less smarts”.

    What are you optimizing for? Peter Hallam really gets it: “First: Why is 5 times more time spent modifying code than writing new code? The answer is that new code becomes old code almost instantly. … Secondly, why does understanding code take 3 times more of a developers time than modifying code? The answer here is that before modifying code, you must first understand what it does.” Of course we don’t want to admit that code writing involves very little code writing. Lines of code is still the favorite measure to boast about. But the fact is, there’s very little code generated out of coding, a lot more work goes into code fitness. (Via Coding Horror)

    The economics of open source. If you want to understand the impact open source software has on IT, you only need to read this one article. Bernard Golden: “In a world of expensive, inflexible software, only the most conservative, obvious-payoff projects get funded. In the new world of open source, companies can experiment, develop prototypes on the cheap, and inexpensively scale the winners.”

    What is your favorite color? Please stop asking me for security questions, they only make my passwords less secure.

    Play the field, see what IDEs are out there.

  6. Rounded Corners - 28

    September 20th, 2006

    3448-one.jpg

    Getting organized. Brian asks Are your tests findable? If you don’t believe tests matter, skip to the next item. But if you do use tests to improve the quality of your code, you know that little things like this matter. How else can you revisit a test to fix it or improve it? And if you don’t take care of your tests, how long before they code rot? Anyway, short read, worth your time.

    Time for concurrency. Raganwald says it’s time to bring back concurrency and start learning new tricks. Yes it’s hard, but so was object oriented. And it can be done if we start moving languages in that direction. Although I’m not sure exactly how this will shape up. We already do a lot of work with threads — what most people think of when they hear concurrency. And shared nothing architectures, which are actually all about sharing some resources you can easily reason about. Then there are processes, or byte size concurrency, which lets you take advantage of grids (think MapReduce). Asynchronous: we do it in the browser every single day. So maybe concurrency is already here, but maybe we do need better tools to make it easier.

    I’m a bit skeptical, but if you want to experiment with higher level concurrency constructs (think pi-calculus) and Ruby, give me shout.

    EarthLink fucks up. I have no other words for it. EarthLink is now redirecting misspelled domain names to their own page, instead of letting Firefox resolve it to a Google search. How do I opt-out of this nonsense?

    Batteries that recharge via USB. Rad! (Via Jeremy Zawodny)

    Fixing MySpace. If you ever feel like visiting MySpace but afraid the bling bling will drive you blind, eekmale has a Greasemonkey fix. I’m afraid it only works on style, not on content. (Via LifeHacker)

  7. Rounded Corners - 27

    September 20th, 2006

    Ducktator. A duck-type validator for Ruby objects. Replacement for the static-type Nanny?

    Just Say No to XML. “This is no way to make friends and influence people.”

    Indian summer. iTunes sells $1m of videos, and gives away 1m ABC shows. Yahoo copying eMusic experimenting with MP3, and YouTube getting cozy with the labels. Microsoft invents DRM 2.0 for Zune (one version from getting it right?), and Napster goes reverse shopping. Busy week for the digital media industry, and some signs that positive change is happening.

    How to be a programmer. The sad thing, a lot of projects are held back by developers that don’t know how to Google effectively.

    programer [sic]. Hilarious.

  8. No Dried Fishies

    September 19th, 2006

  9. Rounded Corners - 26

    September 19th, 2006

    Critical but helpful. Speaking of being critical: Awful Users mean Great Product. Your worst critics may be your best help. Original article here.

    Get disorganized. Another good article from Vagueware: Too Much to Do, Too Little Time? It’s Probably OK.

    To DSL or not to DSL. Floyd Marinescu gives his on-the-fence opinion on DSL. Now, personally, I think purebred DSLs are recipes for disaster masquarading as good ideas. As evidence I’d like to present the court with XSLT and Maven. I have more examples, but these two will do well to illustrate what happens when your problem requires more than 50 lines of code, and some simple data handling. On the other hand, DSLs written in generic languages just work. You get the simplicity of the high level language with the ability to extend it as far as computers can compute. But don’t trust me on this one, try it yourself.

    The meaning of things. ApochPiQ’s write up on DSLs is a great read, specifically because he’s talking about a domain I know nothing about: games. It’s easier to read his arguments without getting bogged down by details.

    And speaking of details and meaning, the first part of this article reminds me of something. A conversation I had the other day about static vs dynamic languages. The person I talked to had such strong convictions in the truth of statically typed languages, he forgot why those types exist to begin with. And by types I mean classes and objects. Objects were controversial just two decades ago — remember “average Joe can’t get objects, blah, blah”? — we embraced objects because after all the difficulty, they save us from redundant code. They let us work at a higher level of abstraction, do less and innovate more. How easily we forget the meaning of things.

    Hotel bed jumping.

  10. Rounded Corners - 25

    September 18th, 2006

    Open source or open community? Yet another Wikipedia debate (TechMeme to read the opinions). But this quote from Michael Arrington struck me as most interesting: “The wikipedia community has completely intimidated me to the point where making a change to that site is unthinkable.” The great thing about Wikis in general, is that they’re technically approchable: just click the edit button. But what about human barriers? Every so often, I see the same thing in open source projects: stakeholders and processes that intimidate casual contributors. Open source and open community are two different things. Wikipedia got the open source part right.

    Shut up or pay. w.a.g. weighs in: “Criticism does not incur an obligation to participate in fixing the thing that annoys you.” Yeah, I’m “criticizing” which sounds like I’m bitching, to which the usual response is: “Hey, if you don’t like, fix it. You’ve got the source.” But as w.a.g puts it: is this a playground or a product? I know what keeps me away, but have no clue how to fix it, or if it’s even fixable. It might just be the best solution that works. But if it’s a product, and I’m voting with my feet, then my opinion counts as something. As a product manager, would you like to know that people are not using your product, or do you just tell them to fix it or shut up?

    Double-edge sword. And speaking of open source, looks like Microsoft is doing a good job exterminating open source in its very own back yard. It’s a free market (no pun intended), and open source developers must realize that Microsoft is free to compete with them. Will Microsoft triumph? It would if its customers are single-vendor minded. In which case, it will just prove that there is no market for open source around Microsoft. And what about all the talent and motivated developers? I think Microsoft is missing a big part of its potential community, only because Microsoft doesn’t know how to measure that. Believing your own FUD is a double-edge sword.
    In Ads we trust. Another Monday morning, another round of startup and partnership announcements. And they all have one thing in common: together they will serve you more ads! They also provide some ancillary service they hope you’ll find useful to stick around, but basically they’re a platform for serving ads. That couldn’t possibly be bad, because the service is free. But you know what I’ve been doing the past two weeks? Shopping. Airline tickets, computers and some other high priced items. And I like the Web 2.0 experience, it brings the relevant information to the top. Recommendations, reviews, related items, cheap deals. Not a single ad viewed or clicked. Are we seeing a Web ad bubble?

    How to dress like a Mac.