// Internet Duct Tape

Overtime Considered Harmful

Posted in Getting to Done, Technology, Workhacks and High Tech Life by engtech on October 29, 2007

(or I’m Too Lazy to Think of a Better Title)

Time Management

In the past month I’ve worked over 100 hours of overtime to ensure that a project deadline was met when unforeseen issues put the entire project at risk. When you’re a high tech worker then this can happen often enough that it feels like a way of life. What I find strange is that I’ve caught myself bragging about the hours I’ve spent tied to my job. In what sick world should living off of food from Styrofoam containers and an intravenous espresso drip be considered an admirable accomplishment?

If anything it’s a sign of monumental failure in project scheduling, design, delegation or personal time management. Spending two thirds of my waking hours at work isn’t a sign of dedication, it’s a sign of screwed up priorities where I’m willing to push everything else in my life to the side to satisfy the SNAFU I find myself in. The sensible decision would be to get my resume in order and find a way out of this mess.

But like bad movies and bad relationships there’s a sickening desire to stick it out until the end. The sunk cost of time invested seems more valuable than the future cost of staying in this downward spiral. Despite having a university education with a strong background in numbers I can’t do the math and see that the grindstone of a doomed project damages my health and completely destroys my ability to respond to new opportunities. If I’m going to spend a significant portion of my life on work, shouldn’t it be something where that time has a chance at being rewarded?

If the project success depends on a Hail Mary pass to the end zone then chances are slim that things will turn out well for the project in the end. There is no room for heroes on large multi-team projects. For large projects success comes from putting in consistent effort over time and crossing your T’s and dotting your I’s. One last hard push to get it out the door isn’t a valid project management strategy. There is no doctor waiting in the sidelines with a chemical cocktail to induce labour.

I’m lucky that I don’t have children, because this isn’t a life blueprint I’d want to pass on to them. Success that comes from time stolen from the other aspects of your life isn’t success at all.

Interesting Links

Related Posts

Coworkers Considered Harmful

Posted in Lifehacks, Technology, Workhacks and High Tech Life by engtech on October 15, 2007


I hit a realization this weekend that I’ve hit many times before. There’s an inordinate number of times when I’m in the office late not because of my own time management failures but because of the people I work with.

Common coworker induced workplace failures:

  • Checking in code that doesn’t work at all
  • Checking in code that introduces subtle bugs somewhere else in existing code
  • Trivial interruptions when I’m in a state of flow
  • Playing vacation snafu where they schedule a trip immediately after a deliverable
  • Playing priority snafu when a manager or team leader side swipes you with fixing someone else’s problems that really aren’t that urgent compared to what you’re already working on
  • Telling me something I’m responsible for is broken, when it’s really because of an error with the way they’re using it
  • Letting someone convince me of their interpretation of a spec because they are more experienced and more confident in their opinion
  • Following their implementation recipe (that doesn’t work — particularly from managers who aren’t in the trenches anymore)
  • Assuming their code does what the comments describes
  • Assuming that because a manager asked me for it directly it falls into the 20% of what’s important, not in the 80% of what can be ignored

One of the best lessons you can learn in life is that you can’t change anyone else, you can only change yourself. The minute you put the blame on someone else you’ve switch things from being a problem you can control to a problem outside of your control. Up until this point I’ve put the blame at their feet, but it’s really my fault because of how I interact with them. It all comes down to a case of trust, and with coworkers trust should be earned, not given (at least when it comes to their assumptions). Here are some things I can do differently to avoid those situations.

  • Always keep my manager informed of my current priorities and to-do list
  • Put on the headphones when I’m in flow and turn off phone/email
  • Never, ever check out coworker code when I’m in the middle of debugging my own code
  • Always check out a stable version of other coworker code that’s been show to be sane so I don’t spend my time fixing their problems
  • Read code, use comments as annotations
  • Always create interface assertions when integrating with other people’s code to easily flag when they’re not behaving the way they’re supposed to be
  • Regressable unit tests for my own code so that I’m confident that the problem isn’t on my end, and I’m confident I can introduce changes in my own code without have side effects
  • Don’t believe a bug exists without seeing it reproduced and seeing the error message
  • Don’t believe my interpretation of spec is wrong without digging into it for myself
  • Always be mindful, never follow instructions without thinking it through for myself

How have your coworkers unintentionally made your life hell lately?

(To make it clear — put your trust and faith into your coworkers, because your relationships with them will get you farther in life than putting your trust into your company ever will. But there’s a difference between trusting them and blindly trusting their assumptions.)

Magazine Review: October 2007 Issue of Inc. Magazine

Posted in Book Reviews, Startups and Business, Technology by engtech on October 05, 2007

I came to a rather startling discovery in the past month: magazines are just blogs with the added luxury of being able to read them while on the toilet or in the bathtub (but hopefully not both).

I picked up the October issue of Inc. magazine because Joel Spolsky of Joel On Software has joined the magazine. I’m a Joel fan-boy. Internet Duct Tape was inspired by Joel on Software. Here are some random thoughts from spending a rainy Saturday flipping through the pages. Can this possibly be entertaining or of value to my readers? I have no idea.

I’m going to give each article a +1 or a -1 based on whether or not I found it interesting and discuss it with a short blurb. You can read along with me on the online copy. Follow the bouncing ball.

-1 Editor’s Letter, Contibutors, and Reader Mail: I can’t help but think this stuff should be at the end of a magazine instead of at the front. Below the fold, if you will. Give the reader the most useful tidbits first instead of burying it in the middle.

-1 People Who Were Inspired by Ayn Rand’s Atlas Shrugged: It didn’t sell me that the only entrepreneur’s name I recognized was the one from Doubleclick. Instead of a biographical tidbit about Ayn Rand, tell me what the book was about! How did they miss that there is a 2008 movie with Angelina Jolie in the works? Is Wikipedia the new Coles Notes? Where was the tie-in that Atlas Shrugged inspired the current hit Xbox 360 game Bioshock?

I’m getting the feeling that I’m not the core audience for this magazine.

+1 Netflix vs Blockbuster: Blockbuster proves the adage that startups are R&D for bigger companies by one upping Netflix’s business model. Bad advice from other entrepreneurs follows.

  • “Netflix should court CDs” – iTunes and digital downloads are already trailblazing the future of this industry, going up against iTunes on their existing strengths isn’t going to help Netflix. Isn’t CD by mail subscription also going up against Columbia House?
  • “Focus on being #1 service without lowering price” – Good, if obvious, advice.
  • “Focus on obscure films” – Every company needs to have a passionate minority at their core if they hope to have any success. This would have been good advice if Netflix was starting at a grassroots level, but they already have that core smaller audience from years ago.
  • “Hookup with a cable company” – I completely agree that they need to move to digital downloads. Always build the product that will kill your current product. But getting in bed with CableCos is courting the devil.

+1 Investor’s Guide to Inc 500: Bug VCs with the previous issue’s top 500 startups list. Bonus points for mentioning Massage Envy masseuse franchises that are a lawsuit waiting to happen. Bill Me Later is my pick from the list. They act as a proxy between your credit card info and other companies for people who are afraid of buying on the Internet. I also like Vocera who do star trek style voice communicators for hospitals.

+1 Even CEOs Have to Apologize for Screwing Over Workers: I appreciate the message, but felt there was a bit too much emphasis on assigning blame for why the bad decisions happened. Kudos for stepping up to the plate, admitting mistakes, and keeping the team in the loop.

+1 Applying Maslow’s Hierarchy of Needs to Companies: Someone’s written a book about the idea that companies need to fulfill more of an employee’s needs than just the paycheck. Interesting: customers are promiscuous meaning that even if they’re perfectly satisfied with service they might still switch to a competitor they’re also perfectly satisfied with. Article is fluffy, wonder if the book goes any deeper? No mention of creating fulfilling work, just increasing employees self-worth and attitudes towards themselves.

Is this like that bogus psychology from the 80s that encouraged self-confidence without merit and created a generation of self-entitled people who don’t understand why life isn’t handing them the success they deserve?

-1 Estate Planning: I pay someone to pay attention to this stuff for me. That might be stupid on my part.

+1 Is My Social Network Startup Worth Investing In? 55 Alive: Investors get to rip into a young startup. Startup wants $250k but most investors are advicing between $1 to $20 million. I love the VC who points out that common interest ties people together, not demographics like age group. We had a conversation about this last night at a dinner party discussing the people you knew in elementary school and high school that you reconnect with but it goes no where — because where you went to school is no indication of common interests. Same guy tells them to generate their own ad revenue without investors.

More good advice that they need to focus on building up local features. So true, what makes social networking sites work is if they become a communication tool for an existing friends group.

+1 Internet Video Beyond YouTube: Some good discussion on interactive webcasts, livecasting, and promotional videos. HelloWorld is officially my favorite company name ever. I’m so surprised there was no mention of Will It Blend or CommonCraft.

+1 Web Polls: Not enough information on the individual web polling companies, but the use cases of how businesses are incorporating them are phenomenal. Conclusion: don’t manage statistics gathering by hand, but be careful who you go with because it can go from $1,000 to $10,000s of dollars.

+1 Using Marketing to Improve Old Business: One man’s guerilla campaign to revitalize the NY Metropolitan Opera. My favorite example of traditional businesses embracing new media is the Brooklyn Museum’s Flickr page. I liked the idea of giving free tickets to the last dress rehearsal to create buzz and simulcasting the operas onto outside monitors.

+1 Update: An older story of a company in trouble and the advice the Inc. experts gave is updated with the results. Great proof that the magazine advice works.

+1 Questions and Answers: Inc. recommended a survey business support myspace, but ignore Second Life. Unfortunately, no mention of SL’s flying penii. They also give the sage advice that the average person sees 3,000 ads a day so advertisers have to work that much harder to be in the 1% of ads that people notice. Good advice with “do you even know who your audience is?” Huge bonus points for mentioning Made to Stick, one of the best books I’ve ever read.

How to maintain corporate culture: build stories around your brand, have bigger goals than “making money” and fire people who don’t fit with the culture you want to have.

+1 Money Management for Entrepreneurs: Good tip that you should have two financial advisors, one primary and one secondary so that if one doesn’t work out then you can transfer to the other while you look for a replacement.

0 Joel Builds a Shipping System: Reprint from Joel on Software.

-1 Entrepreneurship is Passion: all fluff, no content.

-1 Inc. Gear: hard to believe that this isn’t product placement.

+1 Pandora Story: Cover story about the Pandora music recommendation service. Turning your customers into fans will help you overcome all kinds of roadblocks. But what about your international customers?

+1 The Way I Work: The best interview question is to find out how someone copes with stress. Article focuses on stress management and using external creativity to unwind — maintaining relationships with your support network is more important than the job.

1 Corporate Retreat: The usual on breaking down people to build a team.

+1 How I Did It: Success story in billboard advertising. Become an expert and buy advertising space that people aren’t using.

-1 Inc. Classifieds: Spam spam spam. Penis enlargement, asian brides, and buy my e-book. It’s like they have blog comments printed right in the magazine.

Overall Score: +7

After an underwhelming start I found some good content in the middle of Inc. Magazine and I’d read it again. Every blog is a self-run small business and every blogger is an entrepreneur, so it isn’t that surprising that I liked the magazine.

9 Techniques to Promoting Your Social Web Application

Posted in Software, Startups and Business, Technology, Web 2.0 and Social Media by engtech on September 21, 2007

Social Software and You

This is a continuation from The Problem with Social Web Applications.

“web applications are created as social software where you have a friends list, collaborate on a document with multiple people and it is easily to share information and communicate. The downside is these networks consume a lot of attention and too much time is wasted building profiles and adding friends – for some of these sites building a profile and adding friends is the only utility they have.”

Putting the inherent problems of social web apps aside, how do you build a web app that has traction, gain users and hopefully explodes virally? I’ve been paying attention to this space for far too long and this is a round-up of the tricks and techniques successful and not-so-successful social web applications use to promote themselves.

I’m completely excluding any technique that relies on spending money. It’s a given that you can buy traffic and attention through various mean. Instead, I’m focusing on the self-powered techniques companies can use to build organic buzz and word of mouth advertising around their web application.

Technique #1: Beta Invitations

The easiest way to generate buzz for your social web app is to create an artificial scarcity for applications. You can email invitations to people every day and they won’t give you a second glance, but if invitations are hard to come by then the invitation becomes a valuable commodity instead of easily ignored spam. Gray market economies grow around beta invitation trading, even if the accounts themselves are seldom used.

Beta invite success stories: Gmail, Joost, Pownce

Gotcha: “Blog Friendly” Beta Invitations

The gray market beta invitation economy that you want to generate buzz is built off of the back of bloggers. Invitations are an easy way for bloggers to provide value (or the illusion of value) to their readers at no cost other than time. How bloggers feel about your beta invite campaign, and your application, will come from how easy you make it for them to send out invitations.

Medium lets me invite people by posting a URL on my blog. All of my readers who click on that URL can get into the Medium beta and are added as ‘friends’ with no effort on my part. Compare this to Joost invitations require a cut-and-paste of every email address into a desktop application. Sending a single Joost invitation will take me at least a few minutes because I have to load a desktop application. It could potentially take much longer if the desktop application needs to be updated.

Gotcha: Scarcity of Beta Invitations

One way sites screw up is by giving away too many beta invitations up front. If you are using manipulation to create buzz around your product then you need to create artificial value by implying that the people who have access to your service are more privileged. If anyone and their lolcat can get in then how do you create the false sense of hype that comes from people talking about a product you don’t have access to? It’s like the false economy around diamonds.

Technique #2: Social Engineering Trickery

A social engineering technique that works very well for getting people to accept their user account is to say “your friend created a profile for you!” It’s cheesy but it gets the invited user to sign-up. The easiest way to engage someone’s curiosity is to make it about them. People are always interested in themselves, and in what other people may have said about them.

Examples: Spock and Yahoo Mash

Technique #3: The Video Demo

A very effective technique for creating interest in your product before the doors are wide open is creating a video to promote the service and show how people can use it. The iScrybe calendar is a great example of a video that went viral and created a lot of buzz around a product that still hasn’t materialized (disclaimer: I’m a beta tester).

CommonCraft has created a business behind making videos that explain product in simple no-frill terms that somehow work better and remain more interesting than the flashiest demos.

Gotcha: Leaking Features to Early

The only problem with giving a video demo of a product doesn’t exist is you give your competitors that much more time to copy your features. By the time you release you’re competitive advantage might no longer exist.

Technique #4: The Press Release

I’ll let this video CommonCraft developed for PRWeb discuss the value of press release kits for generating buzz.

Gotcha: Spamming Bloggers with Press Releases

As a blogger, one of the dangerous of having your email address on your About Me page is the number of press releases you receive. I’ll reluctantly admit that I do occasionally write a blog post about a service that catches my eye. However, the method of contact has also made me ignore sites like CrossLoop.com that I later realized was very awesome and solves a problem I often have about how to fix someone else’s computer remotely. Why is your application different than any other of the many emails I have received?

Technique #5: The Address Book Import

Always make it as easy as possible for people to invite their friends to use your social web app. The email address book is the only existing workaround to the “social graph problem.” Make it as easy as possible for users to invite or connect with their friends using address book import and supporting the major webmail sites (Yahoo, Hotmail, Gmail) as well as instructions on how to upload from Outlook or Outlook Express. Plaxo even offers a free javascript widget so ANY social website can offer address book import with little effort.

Gotcha: Giving Out Your Email Password

Jeff very correctly points out that giving out your email password is ridiculously stupid, since a malicious site can hijack your login information for any website and potentially gain access to your credit card or banking information depending if you use the same email address for everything. There has also been more than one case of startups sending emails to your contacts without your permission (see SixDegrees.com, Quechup and RapLeaf).

Gotcha: Address Book Import with Custom Invite

If you are going to brave the address book import (admittedly I do it often) then it is imperative that the invite sender can customize the message to the invitees. Thanks to the wonder of “automatically add anyone you’ve ever had an email conversation with to your address book” technology, if you do full address book spamming you might be contacting people who have a very loose connection to you. LinkedIn does it right by giving the sender several precanned invitation messages that can be customized at will. Another technique is to limit the number of invitations someone can send at once to prevent spamming.

I had a shock this weekend when I sent Yahoo Mash invitations out and my custom email invitation was never sent — instead they were given that spammy ‘engtech created a profile’ message. I went to the trouble to explain why I was sending the invite, what Yahoo Mash was about, and linked to a TechCrunch article about the service. This is what they saw instead:

Success stories: LinkedIn, Plaxo

Failures: Yahoo Mash, Quechup, RapLeaf, sms.ac…

Don't send out stupid invitations like this one

Technique #6: Leverage Existing Success

In all aspects of life success can breed success. Would Paris Hilton have been in the limelight if she wasn’t the heiress to a ridiculous fortune? When larger companies launch a new web application they need to leverage the success of their existing sites. A common complaint when Google or Yahoo launches something new is that it doesn’t integrate well with their existing portfolio of web applications. Use the success and lessons learned from existing applications to slingshot your new web application into stardom. This is much easier to do when it is the same small team developing the application.

Success stories: 37signals

Technique #7: Corporate Superstar

One of the easiest ways to get buzz about your web app is to hire someone who is well known in the industry. This can be a detrimental factor because their involvement can overshadow the product itself or bring too much attention to a product before it has had a chance to mature. However, I think there is always more of a positive factor because it is easier to improve a product than it is to build the kind of buzz these people bring to anything they are involved with.

Examples: Jason Calcanis, Guy Kawasaki, Kevin Rose, Marc Andreessen, Joel Spolsky, Aaron Swartz

Technique #8: Send Out the Bacn

Social sites try to keep you interested by sending ‘tickler’ emails whenever any little action happens related to your account on their site. These emails are functionally useless, but they drive you back to the site. It’s not spam, it’s bacn — useless emails from a website that you’ve given permission to contact you. It’s the worst form of permission marketing and smart sites will set a sane default where they only contact the person once a day at the very most. Stupid sites will quickly see their emails detected as spam since clicking the ‘Report Spam’ button is often much easier than creating an email filter or finding out how to unsubscribe or change notifications.

Very few sites get that if you’re going to email someone that they have a message, you might as well include the message with the email. Even fewer sites understand that people should be able to respond to the message directly from email. Improving the customer experience always trumps increasing page views or any other metric.

Sites that get it: Twitter, StumbleUpon

Sites that don’t get it: Facebook, Yahoo Mash

yahoo mash bacn spam

Technique: Don’t Require an Account to Try It

(update because I forgot it the first time around)

One of the absolutely best ways to promote your app is to let people use it without requiring an account to sign in. OpenID hopes to provide a universal account that you can use anywhere, but other sites like Geni and JottIt bring you directly to the application and only prompt you to create a user account when you want to store your information.

Technique #9: Solve a Problem

The easiest way to build buzz around your web app is to solve a real problem. Many “web 2.0” sites are repeating what has been available in desktop software for decades. For the ones that do something original, it often serves no real purpose. Messaging friends? I have email and instant messenger programs. Writing documents, spreadsheets, calendars? I have office suite applications. Translating desktop software gives decreased performance with the ability to easily collaborate and access documents from any location that has Internet access.

There are very few web applications that solve a problem that desktop software never did well. They add real value to a user’s life in a way that is new and innovative. Desktop software never handled music discovery (last.fm) or photo sharing (flickr and now Facebook) as well as their web counterparts. Too many web applications are social for no reason or offer solutions without a problem to solve. As my blog friend Steven says:

Adding value to one’s personal pool of knowledge or giving to another’s doesn’t depend on vast numbers of useless contacts. Value comes from one to one communication and then following whatever paths that come from that conversation.

Bonus: The Yahoo Mash Report Card

Last weekend I had a chance to check out Yahoo’s “we were too cheap to buy Facebook, let’s get that egg off of our face” entry into the social platform war with Yahoo Mash. The experience inspired this post. How did Yahoo Mash rate?

+1 point for creating approximately 2 hours of ‘I want a beta invite!’ buzz
+2 points for convincing me that Mash invites had some value and I could earn some social capital by sending invites to everyone on my address book
-10 points for refusing to send my handcrafted invitation that explained what Mash is and why I was sending out invitations
-20 points for sending that ‘engtech created a profile for you!’ spam instead of my custom invitation
-3 points for being ugly
-2 points for not having any utility beyond creating a profile
+2 points for the ability to edit other people’s profiles — something different
-4 points for not leveraging all the other Yahoo services I use
+5 points for introducing me to Yahoo Avatars — much cooler than Mash

my yahoo mash avatar

Links You Can Use

The Problem With Social Web Applications

Posted in Startups and Business, Technology, Web 2.0 and Social Media by engtech on September 18, 2007

Social Software and You

This is an exciting time because unlike traditional software that runs on your computer [1], web applications are created as social software where you have a friends list, collaborate on a document with multiple people and it is easily to share information and communicate. The downside is these networks consume a lot of attention and too much time is wasted building profiles and adding friends — for some of these sites building a profile and adding friends is the only utility they have.

Brad Fitzpatrick touches on this with his social graph problem — we need a way of moving our social network around with us as exportable and importable data. Read/Write Web has an overview of the issues behind the social graph problem. Companies like Facebook and MySpace capitalize on the network effect — the more of your friends who utilize the site, the more useful the site is to you — while Plaxo is one of the companies who are targeting the problem of creating a portable social network you can use on any web site.

There are two fundamental problems with using social web apps. The first is the lack of a unique identifier on the web — you know who you are but there is no way for two websites to know that you are the same person. Email addresses are one way to solve this problem. OpenID is another way to solve the problem of identity on the Internet, but it is fraught with it’s own issues such as too many providers / not enough consumers, who owns your OpenID and how trivial it is for someone to steal your OpenID authentication through phishing. OpenID is better than captcha for leaving web comments, but I wouldn’t trust it with my credit card information.

The second problem with social web apps is social network fatigue. The average person has the time to actively use 2 to 5 social web sites and become part of a community on them. No one has the time to be part of more sites than that, and we get burn out from having to create accounts and add friends on sites after site. This is called social network fatigue and has spawned spoofs like BugrOff and Social Networking Rehab, as well as applications like Delicious Stumbles and Social Poster to make it easier to maintain profiles on multiple sites.

If you’re a new social software company then it’s hard to attract users because of all the incumbent sites who already have their attention; if you’re an old social software then it’s hard to keep users because so much of the initial addiction comes from adding friends. (Not that they’re really your friends, but you know what I mean)

Tomorrow I’ll explain the techniques used to promote a social web applications [2].

[1] Of course, having a dedicated application on your computer is usually a million times more efficient than running an application in a web browser.

[2] aka Why Yahoo Mash Sucks

Related Posts

Do You Make These Mistakes with Wikis? 9 Ways To Build a Wiki That Doesn’t Suck

Posted in Technology, Wikipedia, Writing Better Documentation by engtech on September 12, 2007

Wikipedia and Wikis

There’s something about the hint of fall in the air that has always appealed to me. It’s my favorite time of the year, and as the seasons change I find the motivation to apply change to my own life. Last month I had the epiphany that I’ve been far too busy and I need to get a handle on the way I spend my time. The Internet is buzzing about using David Allen’s Getting to Done system to be more productive. There are a hundred and one different software tools you can use with the system; for the past week I’ve been using a personal wiki software called d-cubed/d3 gtd to do it.

Astute readers may guess from the title that there’s a rant coming up, and I want to prefix to say that I have nothing against d-cubed/d3 gtd. It’s good software. I respect Tom, the guy who built it, and appreciate what he’s done and how he’s been available for help. I’m still using and enjoying d-cubed/d3 gtd. No, my beef is with the entire foundation behind d3: that dark Hawaiian voodoo called wiki.

What Is a Wiki?

“Wiki is a piece of server software that allows users to freely create and edit Web page content using any Web browser. Wiki supports hyperlinks and has a simple text syntax for creating new pages and crosslinks between internal pages on the fly.

Wiki is unusual among group communication mechanisms in that it allows the organization of contributions to be edited in addition to the content itself.

Like many simple concepts, “open editing” has some profound and subtle effects on Wiki usage. Allowing everyday users to create and edit any page in a Web site is exciting in that it encourages democratic use of the Web and promotes content composition by nontechnical users.” — Ward Cunningham, creator of Wikis

The first time I saw a wiki was in 1996 and I remember being struck by two distinct thoughts: “wow, that’s ugly” and “why would I want to let people edit what I write?” Fast forward eleven years later and one of the most popular sites on the Internet is Wikipedia, a publicly editable encyclopedia. My uncanny ability to predict what’s going to become widely popular explains why my stock portfolio is doing to badly (damn you, Microsoft Zune).

This video from CommonCraft does a very good job of explaining what Wikis are good for. The wonderful thing about wikis is that wikis are wonderful let you quickly edit a web page and let more than one person collaborate on a document.

You might recognize that video from a post I wrote on LorelleOnWordPress that includes other videos that explain RSS, Social Networks, and Social Bookmarking. How Stuff Works gives even more information about how wikis work and what they are good for.

Wikis in Practice

The two strongest features of a wiki is that 1) anyone can edit a page and 2) it is quick to do an edit. Put those together and the power of a wiki is that they make it trivial to correct mistakes in the current document you are viewing. Wikipedia shows the power of collaborative editing — what is hidden is the massive effort and time sink that people put into it.

“With enough eyes all bugs are shallow.” But any programmer can tell you that a project with poor communication between different contributors always turns into SNAFU. There is great benefit to having many people improving a document through collaborative editing, but not if they aren’t all heading towards the same final result.

Photo by gadl

Small Scale Wiki Personal or a small group of people Works well
Medium Scale Wiki 10s of people Can grow out of control if there isn’t a clear vision and people don’t own things
Large Scale Wiki 100s or 1000s of people Usually a public wiki where some contributors are actively acting against the best interests of the wiki
Massive Scale Wiki 10000s of people Works well because there are enough contributors to handle the massive amount of work involved

I’m not an expert on wikis by any means, but I have used PBWiki, TWiki, TiddlyWiki and Wikipedia before. I’ve used wikis in multiple contexts from personal information storing, to corporate intranet backbone to internet social software. Wikis seem to work best on the small scale and massive scale. It’s in the middle with a medium/large number of collaborators information gets confusing. Like some plants, wikis tend to grow the same way no matter who is building them. Wikis grow wide and shallow, not narrow and deep. This makes them perfect for something like a dictionary or encyclopedia, but not as good for document tracking on an Intranet. Wikis favour a large number of pages at the same level instead of a tree hierarchy.

Creating a wiki is a grassroots process.

How Wikis Should Be Organized

  • Administration
    • Forms
    • Time Tracking
    • Vacations
  • Engineering
    • Project1
      • Design
        • Product Spec
      • Verification
        • Verification Spec
        • Verification Environment
        • Verification Plan
        • Regression Results
      • Validation
    • Project2
  • Manufacturing

What Wikis Really Grow Into

  • Administration
    • Forms
    • Time Tracking
    • Vacations
    • Phone Numbers
    • Board Room Booking
  • Engineering
    • Project1
    • Design
      • Product Spec
    • Verification
      • Verification Spec
      • Verification Environment
      • Verification Plan
      • Verification Review Minutes
      • Action Items from Friday’s Review
      • How to Run a Test
      • Lab Tracking
      • Regression Results
      • Validation
    • Project2
  • Manufacturing

Wikis tend to spread out wide rather than have a strict hierarchy — and this can make it very hard to find what you’re looking for.

“Wikis are great for ad-hoc arrangement and re-arrangement of data, but they don’t respect existing data. And with 2-million-plus documents in dozens of formats sitting in our document management system, we need to respect existing data. Wikis will be useful to the extent they enable us to re-use, remix, reorganize, review, and extend those documents. What is needed is a wiki that is created, edited, and saved in Word.”

Why Do Wikis Suck?

If you aren’t familiar with wiki software (and you’re still reading?!) you should skip this section. I’m not talking about a specific wiki implementation, but general wikisms I’ve noticed in the various wiki software I’ve tried. If your WikiFlavour doesn’t have these problems then give yourself a pat on the back because you dodged a bullet.

The inventor of WikiWords should be shot

  • I understand that the core of wikis is that they can be quickly edited but creating links haphazardly is the primary reason why wikis grow like weeds instead of carefully tended gardens.
  • Having non-standard capitalization (CamelCase) automatically links to another page on the Wiki is only useful approximately 10% of the time.
  • The other 90% of the time you have to go back and re-edit a page to remove unintentional WikiWord links.
  • It promotes writing everything in lowercase to avoid the unintentional creation of WikiWords.
    CamelCase is the dumbest linking structure ever invented. Even the Wiki page on Wikipedia agrees with me:

    “Originally, most wikis used CamelCase when naming program identifiers. These are produced by capitalizing words in a phrase and removing the spaces between them (the word “CamelCase” is itself an example). While CamelCase makes linking very easy, it also leads to links which are written in a form that deviates from the standard spelling. … There is no easy way to determine which capital letters should remain capitalized. As a result, many wikis now have “free linking” using brackets, and some disable CamelCase by default.”

Wiki syntax reinvents the wheel

  • Wiki software uses its own syntax for formatting text in an effort to be more human readable than HTML.
  • Wiki syntax succeeds in being more concise than HTML, but more often than this means your normal punctuation or capitalization is being misinterpreted as wiki syntax.
  • Non-standard — different Wiki software uses different syntax.
  • Is learning wiki syntax really easier than HTML? <b>bold</b> is easier to remember than ”bold”.
  • WYSIWYG HTML editors are a solved problem thanks to software like TinyMCE — using wiki syntax is much more complicated then learning a WYSIWYG editor that essentially works like every other wordprocessing software you’ve ever used.
  • If I don’t like having to learn a non-standard formatting syntax when switch between 3-5 different programming languages on a weekly basis, then how do normal people feel about it?

Wikis create an information sink-hole

  • It is hard to import information into a wiki from other sources.
  • It is hard to export information out of wikis (eg: RSS feeds).
  • Wiki data remains stationary, when users want filtered data moving at them via email or RSS.
  • Where’s the API? Wikis are intended to make it “easier for humans to edit” documents, but corporate wikis can benefit from automation like updating a report or a log on the wiki instead of sending updates by email. Wikis need an API so that it is easy to create scripts to add or edit pages on a Wiki.

Large scale wikis become chaotic and disorganized

  • Multiple collaboration means no one owns anything — organization comes from someone having a vested interest to organize and maintain.
  • Information is hard to navigate consistently because there is no unifying vision to the structure.
  • Large scale wikis turn into a flat hierarchy of documents with no hierarchy.

Having multiple editors *requires* tracking changes

  • With multiple editors on a document, version control and discussion of changes become essential requirements.
  • All changes should be saved and easily backed out of.
  • Need the ability to protect pages (lock) from edits.

Wikis and Search

  • Using WikiWords as titles makes it near impossible to build a decent search system. Wikis usually generate overly concise URLs or incomprehensible URLs with no meaning.
    • Always have to click on search results to see what the document really is because the title isn’t descriptive enough.
    • The default search results are usually “what search found first” with no attempt to sort by relevance.
    • If I’ve learned anything from GMail it’s the power of search+tags. So the problem with finding information in a Wiki is really a problem with search.
  • Search isn’t as big a problem with publicly accessible wikis because you can use Google. It is a much bigger problem with personal/intranet wikis. Data goes into the wiki but good luck EVER finding it again.
  • The ability to “Jump” to a specific WikiWord is
    • usually misinterpreted as a search form
    • encourages the use of short WikiWords that makes a large scale wiki more of a mess
    • is sometimes case sensitive which adds much more complexity than entering search terms for a specific document


  • Many wikis offer plugins for adding additional functionality.
  • Adding plugins creates another layer of complexity and potential conflicts with upgrading the core software.
  • Developing custom plugins can be a huge time sink — it’s nice to have the ability to do so, but it should be a last resort.
  • Dependence on plugins can create chicken-and-egg scenarios that complicate upgrading the wiki software.

Plugins that greatly improve the wiki software’s functionality should always *become* core functionality. This is a classic problem with all software that supports plugins — at some point they need to be packaged together into a distribution so that the majority of users can appreciate them instead of living in the dark age.

Building Wiki Software That Doesn’t Suck

You know what a wiki is, you know why wikis end up sucking, and if you’re still reading this far then you’ve probably used a wiki yourself. Some wiki software gets it right, but unfortunately the core distributions of many WikiFlavours are still missing some of these essential features. This is a list of what I think *every* wiki software should do to improve the WikiExperience for everyone.

1. Make It Simple to Edit, Not Just Quick to Edit

1.1 Disable WikiWords and CamelCase

Users have to create links by hand instead of unintentionally creating links because of capitalization. It will lead to meaningful document titles with headings longer than JimsListOfBugs.

1.2 WYSIWYG text editor

Let Ctrl-B bold the selected text! Contributors should not have to write in all lowercase with no punctuation in constant fear of accidentally embedding wiki syntax.

2. Help Me Find What I’m Looking For

2.1 Indexed search that orders by relevance

I’ve mentioned before that wikis need to build meaningful URLs that are human readable. They also should be able to rank pages based on what links to it, and to do something smart like click tracking where if I always click on result #6 when I search for product plan then MAYBE it should be one of the first results.

2.2 Navigation clues

Wikis need to support effective navigation with good titles, breadcrumbs, and easily created tables of contents. When I’m looking at a page I should be able to easily the parent hierarchy and child pages, as well as neighbouring pages.

3. Never Lose Data

3.1 Store and track changes

Wikis need version control for every change and easy rollback for all edits. Users need to have notification, watchlists, and easy changelogs. This is mostly a solved problem to various degrees, but it’s still surprising that some personal wiki software doesn’t support this.

3.2 Refactoring

I’ve said that wikis grow like weeds and that need a gardener to prune them. Refactoring and reorganizing pages needs to be simple to do and well supported. Information should be easy to move and automatically leave a forwarding address behind.

3.3 Discussions

Each page on the wiki needs to have a behind the scenes discussion page where direction can be agreed on, differences can be debated and issues can be captured in a message board / forum format.

4. Getting Data In and Out

4.1 Document management

People are going to want to attach all kinds of documents to wikis: from office documents like pdf, doc and xls, to traditional media files like images and video. These attachments should be treated the same as wiki pages when it comes to search and version control.

4.2 Wikis need APIs for in/out

One of the things people often complain about is importing/exporting data from a wiki. They’re meant to be easily human editable, but for some reason they overlook that you likely have a existing information in another format that you want to merge in and retain as much formatting/linking as possible. If there is an easy-to-use API then data can be moved around by writing scripts.


Wikis are very powerful when used correctly, but unfortunately there are 51 flavours of wikis and what has become best practice in advanced wiki software can seem painful archaic in software that still follows in the footsteps of the WorldWideWiki. Yes, I’m looking at you WikiWords. Wikis are becoming the defacto standard for modern corporate intranets, while they are undoubtedly better than the static and out of date web sites that existed before the still have a long way to go in some areas where intranets have always been weak — namely search.

Any day now Google will be opening up registration for it’s JotSpot wiki software. It’ll be interesting to see if they can get over their product schizophrenia and intelligently integrate wikis with wordprocessing, spreadsheets, slides, blogs, email, calendar, rss readers and build an intranet solution that far outclasses anything currently available. They have all the pieces, and the killer knowledge that everyone is missing — how to build an intranet search that works over all the formats.

It’s sad that downloading documents from the corporate intranet and using Google Desktop search is still 95 times more effective than using intranet search.

Links You Can Use

Related Posts

Quotations from The Soul of a New Machine by Tracy Kidder (1978)

Posted in Book Reviews, Hardware Engineering, Technology by engtech on September 04, 2007

I’m going to celebrate Labour Day with the only book I’ve ever read that captured what it’s like to work at building integrated circuits. The Soul of a New Machine is a Pulitzer Prize winning book written in 1978 by a reporter named Tracy Kidder. Hat tip to Scott Rosenberg, or rather to James Fallows, for turning me on to this book by comparing it to Dreaming in Code. If you’ve read the book, you’ll probably find this interview with Wired (2000) interesting, as it catches up with the old team.

soul of a new machine

Rather than pontificate on what the book meant to me, I’m going to cut and paste some quotes from another reviewer on Amazon.

Review by B. Marold (Bethlehem, PA United States)

When it was first published, the book was a narrative of what was then `modern’ technology, where the central processing units (CPU) or `brains’ of commercial minicomputers and mainframe computers were built up on large circuit boards from individual, specialized integrated circuit chips, with each chip integrating dozens or hundreds of discrete components. This compares to today’s microcomputers where the entire CPU is placed on a single chip incorporating tens of thousands of discrete functions, all taking up no more room than the average credit card. Now, the book is more a history of how this technology was developed, and yet its picture of how people work in teams developing technological projects will probably never go out of date.

The irony of this book is that the computer being developed by the team described in this book, a 32 bit Eclipse computer developed by the Data General corporation, a competitor to the larger and very successful Digital Computer Corporation (Digital), did not really achieve any major breakthrough in technology. While it was intended to compete with a new generation of Digital VAX machines, it ended up being just barely faster than VAX’s in a few special tasks. In fact, in a conversation I once had with some Digital engineers, they said that when they went head to head with Data General in bidding for a computer sale, the only thing they had to do was bring out Kidder’s book to demonstrate that the Data General box was yesterday’s news. Data General may have had the last laugh, as ailing Digital was bought out by Compaq, which has since merged with H-P, further submerging the once great Digital presence in the commercial computer world. Meanwhile, Data General is still around, albeit not the presence it once had when the `minicomputer’ was the great alternative to the IBM monoliths in the glass houses.

Favorite Quotations from The Soul of a New Machine

Computer were relatively scare, and they were large and very expensive. Typically, one big machine served an entire organization. Often it lay behind a plate glass window, people in white gowns attending it, and those who wished to use it did so through intermediaries. Users were like supplicants. The process could be annoying. P14

A company was more likely to asphyxiate on its own success. Demand for its products would be soaring, and the owners would be drawing up optimistic five-year plans, when all of a sudden something would go wrong with their system of production. They wouldn’t be able to produce the machines that they had promised to deliver. Lawsuits might follow. P33

A heroic metaphor for success in the computer business: “The major thing is avoiding the big mistake. It’s like downhill ski racing: Can you stay right on that edge beside disaster?” P35

[Seymour Cray and Co.] had come to build what are generally acknowledged to be the fastest computers in the world, he quintessential number-crunchers. Cray was a legend in computers, and in the movie Cray said that he liked to hire inexperienced engineers right out of school, because they do not usually know what’s supposed to be impossible. P77

[On joining a high tech company] Going to work for the Eclipse Group could be a rough way to start out in your profession. You set out for your first real job with all the loneliness and fear that attend new beginnings, drive east from Purdue or Northwestern or Wisconsin, up from Missouri or west from MIT, and before you’ve learned to find your way to work without a road map, you’re sitting in a tiny cubicle or, even worse, in an office like the one dubbed the Micropit, along with three other new recruits, your knees practically touching theirs; and though lacking all privacy and quiet, though it’s a job you’ve never really done before, you are told that you have almost no time at all in which to master a virtual encyclopedia of technical detail and to start producing curcial pieces of a crucial new machine. And you want to make a good impression. So you don’t have any time to meet women, to help your wife buy furniture for your apartment, or to explore the unfamiliar countryside. You work. You’re told, “Don’t even mention the name Eagle outside the group.” “Don’t talk outside the group,” you’re told. You’re working at a place that looks like something psychologists build for testing the fortitude of small animals, and your boss won’t even say hello to you. P79

Wallach had now spent more than a decade working on computing equipment. He’d had a hand in the design of five computers — all good designs, in his opinion. He had worked long hours on all of them. He had put himself into those creatures of metal and silicon. And he had seen only one of them come to functional life, and in that case the customer had decided not to buy the machine. P93

That was what made it fun; he could actually touch the machine and make it obey him. “I’d run a little program and when it worked, I’d get a little high, and then I’d do another. It was neat. I loved writing programs. I could control the machine. I could make it express my own thoughts. It was an expansion of the mind to have a computer.” — Alsing, P126

There’s no such thing as a perfect design. Most experienced computer engineers I talked to agreed that absorbing this simple lesson constitutes the first step in learning how to get machines out the door. Often, they said, it is the most talented engineers who have the hardest time learning when to stop striving for perfection. West was the voice from the cave, supplying that information: “Ok. It’s right. Ship it.” P158

He would bind his team with mutual trust, he had decided. When a person signed up to do a job for him, he would in turn trust that person to accomplish it; he wouldn’t break it down into little pieces and make the task small, easy and dull. P173

“With Tom, it’s the last two percent that counts. What I now call ‘the ability to ship product’ — to get it out the door.” — Rasala P188

Above all, Rasala wanted around him engineers who took an interest in the entire computer, not just in the parts that they had designed. He said that was what was needed to get Eagle out the door on time. P199

The very word, engineer, dulled the spirit. It was something your father might be interested in.

Typically, a machine gets built and sent to market and in its first year out in public a number of small, and sometimes large, defects in its design crop up and get repaired. As the years go by, the number of bugs declines, but although no flaw in a computer’s design might appear for years, defects would probably remain in it– ones so small and occurring only under such peculiar circumstances that they might never show up before the machine became obsolete or simply stopped functioning because of dust in its chips.

“The way to stay on schedule is to make another one.” — Rasala P246

“It doesn’t matter how hard you work on something. What counts is finishing it and having it work.” — Holberger P252

[Small companies would] announce a new product and then for one reason or another they wouldn’t be able to produce it in sufficient quantities to meet their obligations. They’d asphyxiate on their own success. But a small company had to court disaster. It had to grow like a weed just to survive. P312

Almost every commentator has assured the public that the computer is bringing on a revolution. By the 1970s it should have been clear that revolution was the wrong word. And it should not have been surprising to anyone that in many cases the technology had served as a propr to the status quo. P317

Most computer companies have boasted that they aren’t just selling machines, they’re selling productivity. But that clearly isn’t always true. Sometimes they’re selling paper-producers that require new legions of workers to push that paper around.

But maybe a time would come when the computer would run every aspect of a person’s life. “Then we get tired of it. We start growing plants or something. Maybe slowly we will turn around and go away from it. If computers take something away from us, we’ll take it back. Probably a lot of people will get screwed before that happens.” — Holland P325

“I’ll stop asking questions and let you go home. You look tired.”
“It’s a long-term tiredness,” said Rasala.
“Going home won’t solve it,” said Blau. P334

“That’s the bear trap, the greatest vice. Your job. You can justify just about any behavior with it. Maybe that’s why you do it, so you don’t have to deal with all those other problems.” — West P367

Using Mind Maps to Explore User Interaction

Posted in Programming Tools, Software, Technology by engtech on August 31, 2007

I’m “fortunate” to work at one of those companies where meetings are a way of life. Not only do meetings happen daily, but everyone and their dog is invited. Well, until one of the dogs bit an intern. Now the dogs are free to keep working on their projects, but everyone else is still stuck in needless meetings. The only good thing that has ever come out of these meetings is that I’ve developed a passing familiarity with mind mapping software.

Mind mapping is a technique for taking notes. You start with a central keyword or idea and then build up an ever expanding structure from around that starting point. I might have learned this before in grade three, but the Internet seems convinced that it’s the latest and greatest new thing. Note to self: go through kindergarten notebooks and search for ideas that haven’t been copyrighted. Mrs. Nelson, you will be my goldmine. Now I feel bad for falling asleep during story time.

mind map example

You can do mind maps easily by hand, but you can also use free or pay software to build them. It is a great technique for capturing the minutes and action items in a meeting because it is so freeform yet structured. But you don’t have to take my word for it, LifeHacker has given examples of writing mind maps for meetings, and Kathy Sierra has given mind maps a big thumbs up.

Back to the meeting.

I’m putting an appointment on my smartphone that I hate, and as usual I’m frustrated by how needlessly complicated their user interface is. Sell stock in Nokia and buy stock in Apple — you won’t go wrong. That’s when I remembered something I wrote in a blog post about how their UI design wouldn’t have hit the ground if someone had just drawn it out and realized that it takes 10 user interactions to place a phone call. I looked up at the projected mind map on the wall and I realized that I was looking at the perfect software for doing something like that.

Mind mapping begins with a central keyword, but instead you can think of that as the first screen in your application. Each depth in the mind map will represent a user action. One you have mapped out all the actions you can see the overall cogitative load of your program clear as day. Take a second to look at a mind map I did of the WordPress.com blog interface.

mind mapping a user interface

Once the big blob of your UI is mapped you can at a glance look at the most common actions a user would have to perform and see how many interactions it takes to get there. You could even use a mind map to design how content is linked on your blog and how hard it is to use. Admittedly, drawing out a UI like this is nothing new, but using mind mapping software for it is so damned convenient.

Key Points

  • Mind mapping software is not just for note taking and meetings
  • It can be used for mapping user actions
  • The finished diagram can be used to optimize the most important actions and clearly see what actions are redundant or unnecessary
  • The finished diagram makes a great 1 page tear sheet to help users remember where everything is

More Information About Mind Maps

The Programmable Web – Yahoo Pipes

Posted in IDT Labs Software Development, Perl, Technology, Yahoo Pipes by engtech on May 30, 2007

Duct tape is a great tool because it is so shiny and sticky. You can use it to glue so many things together, even if they end up looking like Frankenstein by the end of it. All you need is a camera, a cellphone, an MP3 player and a piece of duct tape to get yourself the only mobile convergence device worth having. The programming language Perl has quite often been called “duct tape for the internet” because it lets you easily transform text and interact with web sites.

(photo by philgarlic)

Here is a simple Perl script that downloads an RSS feed and bookmarks each entry to del.icio.us:

my $delicious = Net::Delicious->new(
my $feed = XML::FeedPP::RSS->new($rss_url);
$feed->normalize();         # Sort by pubDate and remove non-unique
foreach my $item ($feed->get_item()) {
  my $description = $item->description();
  $description =~ s/<.*?>//g; # remove HTML
  my %args = ('url'=>$item->link(),
  my $retval = $delicious->add_post(%args);

The problem with Perl is that you have to either run it on your own machine, or buy web hosting that lets you run your own Perl scripts (or Python/Ruby). This is a real pain in the butt.

Enter Yahoo Pipes

Yahoo created one of the most innovative web tools I’ve ever seen. Yahoo Pipes lets you do all kinds of conversions and filtering on the web without requiring a web host to host your programs. If you want to convert XML/RSS data to other XML/RSS then look no further.

There’s still room for improvement:

  • Scraping web sites that do not have information in XML/RSS. There are other companies that let you do this, but they’re even harder to use than Pipes (IE: dapper.net).
  • Notifying you when your pipes don’t work. That makes finding existing pipes and mashing up multiple pipes tricky as best. It’s hard to use a tool when things constantly change underneath you.
  • It would also be nice if allowed HTML in the Pipes descriptions as it is hard to describe how to use them sometimes.
  • Better debugging messages when developing your own Pipes

Yahoo Pipes is targeted towards programmers, not casual users, but there is still a million and one things you can do with it. Here are some of my pipes that are free for other people to use.


Social Sites


Got Pipes?

Are there any specific RSS feeds mashups you’re looking for but don’t have the Yahoo Pipes expertise to create? Leave a comment on this post and I’ll see what I can come up with.

See the full list of free software I have created.

You can get frequent updates about all of my new software, tools or blog themes by subscribing to IDT Labs by RSS or by email. Or you could just subscribe to my main blog, Internet Duct Tape.

Subscribe to feed

Book Review: Programmers at Work by Susan Lammers

Posted in Book Reviews, Programming and Software Development, Technology by engtech on May 10, 2007

programmers at work susan lammers bill gates charles simonyi butler lampson jef raskin quote quotationsI heard about Programmers at Work in the blog buzz surrounding the release of Founders at Work. Programmers at Work is a 20 year old book (1985) that interviews some of the top programmers of that era about the art of programming. It is not widely in print anymore, but it was easy to find a copy at my local library. When I picked it up at the library I wondered how relevant would it still be? The only constant with technology is how fast it changes.


Favorite Quotations from Programmers at Work by Susan Lammers

Posted in Book Reviews, Programming and Software Development, Technology by engtech on May 09, 2007

programmers at work susan lammers bill gates charles simonyi butler lampson jef raskin quote quotationsCoding Horror has a post asking people what their favorite programming quotations are. He throws a sideways reference to Programmers at Work, a book I recently finished reading. I’m one of those annoying people who writes in the margins of books, and one of the things I like to do is collect my favorite quotations so that I can remember them down the road.

These are my favorite quotes from Programmers at Work: Interviews with 19 Programmers Who Shaped the Computer Industry. It is a collection of interviews Susan Lammers did in the early 80s. You can read my full review of the book here.


How I Learned to Shoot the Engineers and Ship the Product (by guest blogger Andy Lawrence)

Posted in Programming and Software Development, Technology by Guest Blogger on April 20, 2007

This post is by a guest blogger.

Andy Lawrence aka andyxl is the Head of the School of Physics and a Professor of Astronomy at the University of Edinburgh, located at the Royal Observatory Edinburgh (ROE) on Blackford Hill. He work on quasars, observational cosmology, big, big sky surveys, and the Virtual Observatory.

I am a scientist. I come across a lot of engineers. They are alien life forms, but I have had a symbiotic relationship with them. I found myself getting confused trying to understand the differences between us, until I realised that behaviour depends on environment. You can see how we are different in three ways:

  • general differences in behaviour,
  • working on hardware projects,
  • and working on software projects

The latter is where it gets weird.


How to find out if you are passionate about your career or if you are just wilfing

Posted in Technology, Workhacks and High Tech Life by engtech on April 16, 2007

art of happiness at workI was reading an interesting post about a new weblogism [1] called ‘wilfing‘. “What was I looking for?” describes getting trapped in an Internet rats nest – you had good intentions of doing a work related search but the siren call of the Internet was too much and you went off on a tangent (*cough* It’s all Google Reader’s fault *cough*).

In The Art of Happiness At Work [2] they state that “A third of people see their work as a job, a third as a career, a third as a calling.” The go on to say that it is more a reflection of the attitudes of the worker than inherent qualities of the job. Books like What Color is Your Parachute are devoted to helping people find a calling instead of a job. To paraphrase my friend AJ [3]: I’d rather spend my life failing at something I love instead of being successful at something I hate (or worse, something that filled me with apathy).


Lions, Tigers and Managers Oh My – The IT Animal Kingdom (by guest blogger logtar)

Posted in Humor, Programming and Software Development, Technology, Workhacks and High Tech Life by Guest Blogger on April 11, 2007

This post is by a guest blogger.

John Guzman aka logtar is a computer programmer that rants about daily life, movies and culture. He was born in Colombia and also does translation and interpretation.

Now that I have liberated myself from the last zoo I worked at, I feel that it is my duty to document the IT (Information Technology) ecosystem for those that happen to enter it. I’m intending this as a good PSA (Public Service Announcement) for all the non-IT people out there. It is no accident that I have made all of the managers predators. You may find yourself fitting one of the animal profiles.

The Eager Beaver
eager beaver shavedI think there is a little Eager Beaver in all of us when we start in a new department. This character is the one that is always coming up with new innovative ideas that, while brilliant, will never be implemented. There are many varieties of this beaver, from the one that eventually gets beat down and controlled to the one that actually tells his boss he is just stupid. And, yes, to his face… and, yes, I have seen this one in the wild. Eager Beavers know what they are doing when it comes to technology; however they spent too much time on new ideas and not enough on actual production.


An Introduction to Reputation Management (by guest blogger Tim Nash)

This is a post by a guest blogger.

Tim Nash is a reputation management consultant, co-founder and primary consultant for Venture Skills a “New media” IT company which specialises in search engine optimisation, reputation management, and technical side of online marketing. When not working at Venture Skills, posting site reviews on forums he can be found teaching at a local university where he lecturers in Search Engine Optimisation and Information Retrieval.

My name is Tim and I’m a reputation management consultant. I’m helping engtech out by doing a guest post for his blog.

But what is reputation management?

Let us start with a formal quote:

Reputation management is the process of tracking an entity’s actions and other entities’ opinions about those actions; reporting on those actions and opinions; and reacting to that report creating a feedback loop. All entities involved are generally people, but that need not always be the case. Other examples of entities include animals, businesses, or even locations or materials. The tracking and reporting may range from word-of-mouth to statistical analysis of thousands data points. — Source: Wikipedia

This is a very dusty but surprisingly accurate description of reputation management, be it in commercial business analysis or on a personal level. There a three basic areas to reputation management:

  1. Finding out what people are saying about you
  2. Creating a persona or brand image
  3. If needed defending this image


Is your web identity a help or a hindrance to your employability?

ComputerWorld has an article about how recruiters use web anonymity to find more information out about job applicants.

In a 2006 survey by executive search firm ExecuNet in Norwalk, Conn., 77 of 100 recruiters said they use search engines to check out job candidates. In a CareerBuilder.com survey of 1,150 hiring managers last year, one in four said they use Internet search engines to research potential employees. One in 10 said they also use social networking sites to screen candidates. In fact, according to Search Engine Watch, there are 25 million to 50 million proper-name searches performed each day.

They go on to list some tips like starting a blog, joining open source communities, building a web page, creating web profiles. Andy pads it out with some more helpful suggestions like getting a domain name, tips for getting the number one spot for your name and controlling what appears in search results for your name.

I’ve written about privacy, internet usage and real name searches a few times with my Facebook tips, guide to pseudonyms/identity hiding and tips on hiding your LinkedIn profile from searches outside of your LinkedIn network. When I started this blog a year ago it was with the idea that it could help with the job hunt, but then the slew of articles I read about people losing their jobs because of blogging convinced me otherwise.


Automatic Documentation of Python Code using Doxygen

Posted in Technology, Writing Better Documentation by engtech on March 20, 2007

python doxygen automatic documentationAll programming is maintenance programming, meaning that the most value comes from programming code that can be picked up and maintained by someone else. I strongly believe that code and documentation should always go hand in hand. When someone else is trying to modify your code they have no idea they need to read a PDF API document to find out more information about what a function is supposed to do. Whenever documentation exists in a seperate file it always seems to drift away from the code.

A while back I compared several open source tools for automatically generating documentation based on code comments. Doxygen is easily one of the best programs. It was written for C/C++ but there are hacks/filters for getting it working with other languages like Python, Perl and Verilog.

Python comes with a tool for generating documentation called Pydoc, but I don’t like tools that use introspection because they usually choke on weird file import rules. I was elated to find out that they’ve included Python support in Doxygen without having to translating Python to C++. This is a guide for automatically generating documentation off of Python source code using Doxygen.


Getting Started with Google Code Hosting, Subversion, and TortoiseSVN without feeling like an Idiot

Posted in Programming and Software Development, Technology by engtech on March 03, 2007

the matrix is real - programming code - google code hosting - subversion - tortoisesvnI’ve been using Google’s open source project hosting to distribute my Tag Cloud Generator, but I haven’t been using the source code repository feature. They have a hard-to-find guide on getting started with the Subversion source control system, but the world needs something better. With screenshots. Plus I haven’t fed the blog recently.

You can find more information about Subversion and source control by reading a chapter of this book.


The Missing Curriculum for Programmers and High Tech Workers

Posted in Programming and Software Development, Technology by engtech on March 01, 2007

I’ve been thinking about what I learned in University and more importantly what I’ve learned since University. These are the essential subjects and skills that were completely ignored at the University level, but would have been very useful to have. They might not have worked as full courses, but a lecture or seminar on the subjects would have helped.

What’s a URL to do? – How to Save URLs

Posted in Programming and Software Development, Technology, Web 2.0 and Social Media by engtech on February 28, 2007

Hello, My URL Is photomatt.netThe World Wide Web is an apt analogy. We’re all spiders spinning threads of links. Some people spin their threads with blogs, while others do it with social bookmarking sites like del.icio.us, Digg, reddit or Netscape (see them all at popurls).

One thing that bothers me about these social bookmarking sites is that they don’t do a good job of knowing when two links point to the same document. Ignoring the malicious users who purposely try to resubmit something using slightly different links, there are the flaws in the social bookmarking sites themselves.