Archive for the ‘General’ Category

Business Social Networking Geography: Yes Location matters

Saturday, August 23rd, 2008

Esther Schindler wrote a thought-provoking column on CIO.com last week, Business Social Networking Geography: Does It Matter Where My Contacts Are?

Although the Internet is global, and you may do business with people anywhere in the world, most people tend to look for people-networks close to home. Or do they? Should they? If the point of social networking is to connect with other people, ought it to matter where we are?

At Freelock, we have a handful of remote clients, but upwards of 90% of our clients are local. I founded the business on the assumption that people want to know who they’re doing business with, be able to see them face to face, and grow to trust them over time. Nothing breaks the ice like talking about a project in person, over a coffee or better yet, a margarita.

Good or bad, business gets done through personal relationships. How many deals have been cemented on the golf course? It’s a lot harder to say no in person, than it is with a quick dismissive email. So much communication happens non-verbally, through body language, tone of voice, and other channels that just aren’t available online. A video conference is a poor substitute for a face-to-face meeting.

I’ve gotten quite a bit of help from IRC. We have a private company jabber server so when we’re not in the same room, we can still have the feel of a team. We’ve had people helping us out from Bellingham, 120 miles north. The Internet enables some amazing things, and I definitely think it’s possible to work effectively at a distance. Many professions, including writing and coding, can be done quite effectively by individuals working by themselves, anywhere in the world.

But you can’t directly diagnose a connectivity issue in an office in Bellevue when you’re in India, or replace a hard drive. You can’t assemble a car from the other side of the world. And even for creative types who can work effectively on their own, relationships and trust only truly get cemented by meeting their editors, testers, or project managers in person.

Another founding principle of my business is that it’s much easier to ensure quality by having people work in person. If team members can do impromptu code reviews of each other’s work, quality goes up. The solitary developer working late at night may bang his head for hours against a problem that a colleague could solve in a 5 minute conversation. Having a team of people with complementary talents and different strengths working in one place leads to better results.

Once you’ve established that level of trust, remote work becomes more effective. You know when somebody’s cracking a joke, and it doesn’t sound so strange. You’re more likely to ask a quick question in a chat when you can preface it with a comment about an outside shared interest.

Yes, location matters. It’s not everything, and the Internet makes it possible to work together from a distance–but it still matters.

Interesting Juxtaposition: John McCain is concerned about “piracy,” while his campaign commits it

Saturday, August 16th, 2008

I generally try to stay out of politics on this blog, but couldn’t help it today when I ran across two stories today.

First, McCain has released his technology platform, which among other bits states his support for protecting the recording industry from piracy. Meanwhile, the Ohio Republican party used Jackson Browne’s “Running on Empty” in a commercial without permission.

John McCain 2008 - John McCain for President:

John McCain Will Protect The Creative Industries From Piracy. The entertainment industry is both a vital sector of the domestic economy and among the largest U.S. exporters. While the Internet has provided tremendous opportunity for the creators of copyrighted works, including music and movies, to distribute their works around the world at low cost, it has also given rise to a global epidemic of piracy. John McCain supports efforts to crack down on piracy, both on the Internet and off.

Wired Magazine - First Paris, Now This: Jackson Browne Sues John McCain

Indeed, some irony lies in a candidate who is running a law-and-order campaign being sued for intentional copyright infringing and appropriating someone else’s identity without their permission.

Apparently Browne is a well-known Obama supporter.

Random thoughts on OSCON08

Thursday, July 24th, 2008

This week I’m at the Open Source Convention in Portland, aka OSCON. First impression, before showing up: it seems all focused on big business. Big ticket price. Lots of enterprise-related topics, and sponsors. Not really the meeting of geniuses and thought leaders as years past–or so I thought.

Second impression: Tim O’Reilly asking Brian Aker and Monty Widenius about the importance of various proprietary companies: Sun, Adobe, Microsoft. Their answer to Microsoft? Irrelevant. And Tim came back apologizing to the Microsoft sponsors. This just after the presentation that talked about the open source “tribe”, and introducing Tim as the leader of the cult. Was feeling a bit like I may have made a mistake, plopping down cold hard cash to support the cult of O’Reilly.

Fortunately, that thought was momentary. The rest of the event has been extremely rewarding, and very worthwhile.

At home, in my usual networks, I’m the token Linux guy. Beyond our company and some family I’ve converted to Linux, almost none of my friends use open source, and in business circles, I’m the resource for not just Linux, but web technologies, programming, system administration, and most anything computer related. I come to OSCON and I’m a mere end user, still damp behind the ears. There is true genius wandering the convention center. And suddenly, I’m one of the least technical people in the room, though still listened to for my experience trying to bring these projects to the small business world, identifying pitfalls and areas for improvement.

A few years back, I came to OSCON and it seemed that the worse dressed a person was, the higher up in the ranks of alpha geek he was. This year people looked much more presentable. That might be as far as the influence of corporate culture went.

I met R0ml at that previous OSCON I attended, at a BOF session led by Doc Searls. A “BOF”, if you’re not familiar with software conferences, is a “Birds of a Feather”, a mini, informal discussion about a particular topic led by anybody who puts an idea for one up on a bulletin board. I doubt R0ml remembers me, but it was an interesting discussion we had that evening that paralleled his talk today about elevating open source development from the realm of Techne to Praxis–from mere “making” of stuff to “doing” something to influence and lead people. He took issue with the assertion in an earlier keynote about Franklin and Jefferson being our founding geeks–mainly because while everybody needs a geek these days to make computers do their bidding, that’s a useful, technical, thing that puts us squarely in the realm of Techne. What Jefferson and Franklin really were, according to R0ml, were Polymaths, and that is also a better description of open source practitioners. We’re Renaissance people.

More later…

TLLTS vs. TWIT: Linux support slam-a-thon

Sunday, July 13th, 2008

The Linux Link Tech Show (TLLTS) has a great segment dissecting the criticisms/wild flames put forth on a series of shows on the TWIT network. Wanted to add a couple comments missing from their discussion.

First of all, the Mac Break Weekly show apparently spends some time bashing the open source community, calling out Drupal, and how difficult it is to solve “simple” problems like uploading images for blog posts. In practically the same breath, the hosts claim that the open source community never has any innovation behind it. Irony drips:

  • In the world of content management systems (CMSs), most of the innovation starts in open source projects these days, and Drupal is at the cutting edge of this with its powerful system of taxonomies, and hundreds of add-ons freely available.
  • I can think of a grand total of 2 proprietary CMSs that have anywhere near as widespread use as most of the open source CMS systems. One has turned open source itself: Movable Type. The other is Sharepoint, and it’s widespread because Microsoft has shipped it out on lots of its server products.
  • Complain about usability all you want, but name a proprietary product as powerful as Drupal, that’s easier to install, administer, and configure.
  • The TWIT.tv site itself is running on Drupal.

So let’s talk a little about innovation. While Photoshop may still dominate the world of graphic design, but the lines aren’t so clear when it comes to animation. The Blender project recently released its second short animated film, Big Buck Bunny. While you might argue about the strength of its story, you cannot deny that the technical effects are as stunning as any major animated film coming out from the big studios. And it was created by 7 people in 9 months, using open source software. Even the big studios like Pixar, Dreamworks, and Industrial Light and Magic rely on open source software to deliver their magic, such as CinePaint, POVray, and several others.

On the subject of innovation, KDE4 is breaking new ground and stirring up controversy, laying a bedrock that promises the ability to do things beyond the standard “Desktop” paradigm that was invented over 30 years ago and we’ve all used ever since. Meanwhile, the GNOME team is working on creative ways to embed web applications into your desktop.

But the real innovations of the open source community are all a few layers deeper in the application stack, all the plumbing that powers the Internet. Microsoft itself borrowed its early networking stack from BSD, one of the earliest open source operating systems. Domain Name Service (DNS) and email were first implemented on the Internet using open source software (BIND and Sendmail).

The open source community tends to snicker whenever Apple claims to be innovative. Its core “innovations” were all invented somewhere else:

  • The Mac Desktop interface borrowed heavily from Xerox PARC labs
  • OS X uses BSD under the hood
  • “Spaces” were in use in Unix systems for a decade before they arrived on the Mac
  • The “Time Machine” functionality in Leopard is standard in many source code management tools

To its credit, Apple polishes these features better than anybody else, making them easier to find and use by normal people. But many, if not most of its innovations come from somebody else.

Read the previous post for more discussion about Linux support.

How Open Source support is different

Sunday, July 13th, 2008

I started writing a response to a discussion in the latest “Linux Link Tech Show” episode, but ended up with something far too long, so I’ve split it up into 4 posts. The next post is about the TLLTS vs TWIT debate, and introduces this set of post. The previous two are about open source support–a true story of a support incident I had, and the unwritten rules of open source support. In this post, I analyze the fundamental differences between Windows, Apple, and Linux when it comes to support.

Dann and Linc had a quite spirited debate about the merits of having a company hire low-end tech support with scripts (Dann) versus having an experienced, savvy, tech professional able to really solve the user’s problem (Linc). Dann’s point was that it can easily be more cost-effective for both the support company and the end user to go straight to reinstalling a system if rebooting doesn’t solve the user’s problem, while Linc seemed to think a savvy tech person could get to the root of the issue much quicker, and brought up the point that there’s a cost to the frustration of users being put through the whole front-line support nightmare.

I’d suggest the situation is even more complex than that, but it also differs greatly between the open source projects and proprietary operating systems. First, let me make a bold statement:

Linux support is far better than Windows or Mac.

But it also has a completely different set of rules. Learn those rules, and you’ll be able to solve your problems more satisfactorily than it’s possible to do in the proprietary world. Let’s talk about these differences, looking specifically at a who, where, what, and how long.

Who can help with your problem?

Let’s take a look at who can help with your problem:

Level of support Windows Mac Linux
Very basic help, no charge Friends
Family computer guy
Newspaper columnists
Web Forums
Friends (fewer than Windows)
Family computer guy
Mac User groups
Web Forums
Friends (if you know any)
Local Linux User groups
Web forums
Mailing lists
Developers on main applications or distributions
Paid support Local IT consultant
Franchises like Geek Squad
Microsoft, application companies
Mac consultant
Apple Genius Bar
Linux consultants (like Freelock)
Distribution companies (Red Hat, Novell, Canonical, others)
Linux support companies (SpikeSource, SourceLabs, etc)
Application companies (SugarCRM, MySQL/Sun, Command Prompt)
Developers

The bottom line here is that while you probably know fewer people personally who can help you with Linux, there are more options for commercial support, and you can reach people who can do more to solve your problem for free, than you can with either Mac or Windows.

The fundamental reason for this is that anybody can read the raw source code of any open source product out there, and with enough skill and talent, can solve your problem without needing to pay anybody for the right to do so. In the proprietary world, only one company can help beyond a certain point: for Windows problems, that’s Microsoft. For problems in an application, it’s the application developer.

So the next question is:

Where can you get help?
Again, let’s compare the options:

Type of problem Windows Mac Linux
Very basic usage help Google
Friends/family
Forums
IT consultants
Seminars
Paid support from vendor
Google
Friends/family
Forums
Mac consultants
Seminars
Paid support from vendor
Google
Friends/family
Distribution Forums
Distribution mailling lists
IRC
Linux consultants
Seminars
Paid support from dozens of companies
Hardware problems Google
IT consultants (may or may not be able to help)
Microsoft
Hardware vendor
Google
Mac consultants (may or may not be able to help)
Apple
Hardware vendor
Google
Linux consultants (may or may not be able to help)
Distribution paid support (Red Hat, Novell, Canonical)
Hardware vendor (support for many vendors is improving)
Kernel developer
Linux users with the same hardware
Application developers for applications that use that hardware
Bug in operating system Microsoft Apple RedHat
Novell
Canonical
IBM
HP
Sourcelabs
Many other independent developers
Bug in application Application vendor Application vendor Linux consultant
Developer
Application vendors (often more than one can help)
Bug in interaction between applications You’re screwed. Report it to both vendors and hope they will work it out. You’re screwed. Report it to both applications, and get guidance on how to address the issue.
Hire a developer to create a workaround.
Hire somebody to work with each application to integrate a real fix.
Help switching to another application Application vendor (and you may have to pay them dearly) Application vendor (and you may have to pay them dearly) Application vendor, either old or new
Any application that uses the same open format
Any developer with knowledge of the underlying format

The main point of the table above is that in the proprietary world, the harder your problem is to solve, the fewer people can help you solve it. You quickly get down to one place to go, and if it’s in the operating system, it might be expensive or not possible to fix. In the open source world, it’s nearly the opposite case–it can be harder to find the simple quick answer to your question, but the harder and deeper your problem, the more places you can go to get help.

Where do you look for help first? This is the single stumbling block for most otherwise tech-savvy users new to Linux. To learn Windows or Mac you can take a class, talk to neighbors and friends, and find lots of very low-end help that way. For Linux, unless you’re friends with some hard-core geeks, you need to go online to find help. Once you’re there, it really depends on where your problem lies.

For just figuring out how to use a system, go to the forums for your distribution. The Ubuntu forums are a great place to ask general questions. Be specific about what you’re trying to do and you’re more likely to get help. Remember that this level of support is free, and people helping you are volunteering their time and knowledge. While you’re there, see if you can answer somebody else’s question–the more help you give, the more you’ll get in return.

The other fantastic place to go for help, especially for quick questions, is IRC. IRC is a system that provides chat rooms and instant messaging. Most open source projects with any community behind them have a chat room on irc.freenode.net. Install an IRC program like Chatzilla, Konversation, Pidgin, or any number of others, connect to irc.freenode.net, pick a nickname to use, and join the channel for the program or distribution you’re having trouble with. Ask your question nicely, and if you don’t get a response immediately, keep your chat program open for a few hours–not everybody is watching the channel every minute.

What kinds of problems can you solve?
Let’s look at the same types of problems as before, and look at the resolutions:

Type of problem Windows Mac Linux
Very basic usage help or problems Reboot.
Lots of good help available: documentation, classes, seminars, tutorials, books
Some help available: documentation, classes, seminars, tutorials, books Same types of help available, but far less widespread.
In many cases, the software interfaces aren’t as polished, and the help content is more menu- and feature-oriented than task-oriented–they explain the options, without telling you how to do what you’re trying to do.
Hardware problems Obtain driver from the vendor, and install.
Hardware vendors almost universally provide support for Windows.
If it’s supported by Mac, install the driver. If it’s not supported, you’re out of luck. Most external devices are supported on the Mac. Internal devices, you have far less choice than Windows or Linux. More and more devices have manufacturers providing Linux support. Many devices have solid drivers written by the Linux community, without help from manufacturers. A few devices have no Linux support whatsoever. Usually if you can’t get it working in Linux, it’s either brand new, or there’s a legal reason it hasn’t been done yet. Do your homework before you buy, and only buy hardware others have gotten working in Linux.
Bug in operating system Wait for a patch or service pack, cross your fingers and hope they fix it
Get a premium support contract, and pay Microsoft to fix your bug (note: even with the best support package, they may not do this for you)
Wait for a new release of the Operating system Report a bug, wait for the next release
Hire a developer to fix it
Find other people affected by the bug, and pool your resources to fix it
Bug in application Report it to application vendor, wait for them to fix it (or pay them to fix it) Report it to application vendor, wait for them to fix it (or pay them to fix it) Report it to application vendor, wait for them to fix it (or pay them to fix it)
Hire a developer to fix it yourself
Bug in interaction between applications You’re screwed. You’re completely at the mercy of one or both vendors. You’re screwed. Report it to both applications, and get guidance on how to address the issue.
Hire a developer to create a workaround.
Hire somebody to work with each application to integrate a real fix.
Help switching to another application Pay the company for access to your data
Pay a developer to reverse-engineer the data formats and extract it
You may be screwed–Apple has a reputation of making it really difficult to get your data back out of any of its applications Open source applications usually use open data formats. You may have other options that require no changes to your data. Anybody with knowledge can help.

What’s the key thing in this section? Addressing actual problems is within your control, when you’re working with open source. In the proprietary world, you’re entirely at the mercy of a single software vendor. If your problem is in the interaction between two different applications, you’re really stuck — there’s nothing you can do.

But in the open source world, there’s always something you can do. You can hire anybody with the skills to solve your problem, and fix it in the software itself. You don’t need any blessing from any single software vendor.

Open formats are perhaps more valuable than open source software, for most businesses. Because this is such a compelling advantage of open source software, many proprietary programs are beginning to open up their formats to allow other software to read them–their customers are demanding it.

How long will it take to solve your problem?
I’m not going to bother with a table for this one. The answer is nearly always “too long,” regardless of the operating system.

Actually, that’s not quite always the case–it depends on whether somebody has already solved the problem or not, as well as whether the solution is a fix or a workaround.

Many, many problems in Windows are not really fixes, they’re just workarounds. The only real “fix” for a virus-infected machine is the workaround of reinstalling your operating system. The only fix for lots of other minor issues that cause your system to slow down over time is to reboot. These are not fixes, they’re workarounds.

Real fixes take a lot longer, and need acknowledgment that the problem is real. Workarounds are band aids to get you through until there’s a real fix. And there are some real differences between the entire approaches of each operating system around these fixes.

Windows is chock-full of workarounds. Because Microsoft has gone to great lengths to maintain backwards compatibility of just about everything that’s been released for Windows since Windows 95, it’s full of workarounds to keep the old behavior. Rather than fixing behavior that might really be undesirable, they’ve had to patch it with workarounds because too many existing applications turned out to depend on that bad behavior. That, fundamentally, is why Windows is so big, bloated, slow, and painful to work with.

Apple suffers a different problem: changing their closed libraries too quickly for external developers to keep up. Each release, they break lots of things, and don’t always tell 3rd party developers ahead of time. This means the number of third party developers of Apple software is shrinking–they’ve managed to alienate quite a few. So their polish and high quality comes at the price of having a healthy thriving developer community outside the walls of Apple. There’s little transparency in this process, so developers outside Apple are always playing catch-up, and having to work around these changes in behavior.

Linux has its share of problems, too. Linux does not attempt to maintain “binary” compatibility between versions, though it does its best to maintain compatibility in source code. There is endless debate about the “correct” way to fix a problem, and competition between fixes. The challenge of this is that it can be hard for application developers to keep up, especially if they want to keep their source code closed and only ship software in binary form.

But the process is completely, utterly transparent. Anybody can see the progress on any fixes to any part of the system, and can jump in with their own solution at any time. It’s a true meritocracy, with those doing the actual work and providing the best solutions winning out over time.

The whole open source ecosystem is nimble enough to provide real fixes to technical problems, rather than just simple workarounds. If the source of the problem is design, it can take a long time to get the right design in place and resolve all the issues that changing the design causes in other applications. But when a bug gets fixed, it’s really fixed and usually doesn’t appear again.

An example of open source support

Sunday, July 13th, 2008

In my early Linux system administration days, when I was first trying to set up a mail server with spam filtering, I ran across a really puzzling bug in Dspam, the software I was trying to get working. While all the other users of the software were getting great results, with Dspam catching 99%+ of all their spam, it was only catching about 70% of my spam after quite a bit of training.

I posted my results, and confusion, to the Dspam mailing list. The original developer of this software (which has thousands of users), Jonathan Zdziarski, responded that that did not sound right. He asked if he could log into my server and see what was wrong.

I created a test account for him, and logged in to the same screen so I could watch what he was doing. As I watched, he put debugging messages into his code, ran several tests, and within 10 minutes had identified the problem: the 19-digit number he put into the database (MySQL) was different than the 19-digit number he got out. It was a storage error in somebody else’s software causing the problem, a rounding error. He filed a bug in MySQL, and it was fixed within a month or two. But he also had a workaround for me: change the data type to a set of characters instead of an integer. Problem solved.

The unwritten rules of open source support

Sunday, July 13th, 2008

What’s extraordinary about the open source community is that this level of support happens all the time, every day, without charge, in hundreds, thousands of projects out there. People that can get to the bottom of a problem and fix it at the source, not just provide a workaround, are directly reachable and motivated to see their software work as well as possible. They’re not hidden away from the public behind a large corporation, unreachable with layers of clueless support script readers stuffed between you and them. Here are some rules for getting open source support directly from the projects:

  • Before asking anybody, do your homework. Use Google, read the project FAQ, make some attempt to learn the basics without pestering people with questions they’ve already answered hundreds of times. Nine times out of ten, your problem has already been encountered and somebody has figured out a workaround.
  • Limit the scope of your question to the fundamental problem. Get to the point. I’m obviously guilty of being tremendously long-winded at times, but unless your question is right at the top and asked directly, you’ll probably get ignored. Developers are busy, they don’t want to read a novel, but they’re usually happy to answer a question.
  • Provide supporting details after asking your question. Many programs will create a log with lots of information that can help somebody diagnose your problem. Find what looks relevant in the logs. Specify what version of operating system, distribution, application, etc. Specify what you were trying to do, what you expected, and what really happened. But provide this stuff after asking your initial question–people aren’t going to wade through a long email to find your question.
  • Contribute something. The easiest way you can contribute is by answering other people’s questions. The whole thing works because people help each other, and this help goes both ways. If you always ask questions and never answer anybody else’s, or provide any other sort of contribution, you’ll eventually start getting ignored.
  • Always, always, be positive, respectful, and polite when asking your questions. Developers have a lot invested in their project, and insulting it won’t gain you any favors. Developers are under no obligation to help you either–you haven’t paid for it. Common courtesy is valuable. Complements are welcome.
  • Be patient. Sometimes the person who has the answer to your question is away from the computer. Usually you’ll get your problem solved quicker than you would calling some tech support line, but there are times it’s going to take a while. If you don’t get any response in a reasonable period of time (judged by how active the list or forum is, reasonable could be a couple hours or a couple days), there are several likely reasons: You haven’t been specific enough in your question; you’re in the wrong forum (e.g. users when it’s a developer question); nobody else is trying to do what you’re doing (in which case you may need to hire someone with the right skills); the project is dead (it happens sometimes–find another one); or the developers are swamped (give them more time, or come up with a new scenario that sheds light on your problem in a different way).

That list describes how we get open source support at Freelock. Aside from a couple unsupported hardware devices, or issues with proprietary programs, we have yet to get stumped, in over 6 years of extremely heavy Linux and open source use. We’ve never paid a dime for this support, though we have provided help to many others in return.

What’s git, and why do you use it?

Monday, June 30th, 2008

At Freelock, we’re always trying to figure out ways to do things better. Recently I started digging into a developer tool that’s making, as Bryan over at the Linux Action Show would say, my head explode.

For a long time, we’ve managed our custom code projects and business documents in a central repository, called Subversion (also known as svn). Subversion is relatively easy to understand–it’s like having a library of files you can check a copy out of, do some work on it, and then check it back in. Subversion is the librarian that tracks who has copies of what, and when they checked it out. So if Erik checks in changes to a brochure, and then Jill goes to submit changes to the same document, Subversion will say “hey wait a minute, that document has already been changed–you need to make sure you put Erik’s changes in your document before I’ll let you put in your document.”

This is great for managing conflicts between people working on a single team, or for code that is being developed in relative isolation from the rest of the world.

The problem is, we’re doing more than that–we’re taking code from various open source projects and either customizing it or building new applications on top of it. And so when the outside projects get updated, we need to manually update anything we’ve written that depends on that code. There is no longer a single repository where we control our code–there is our code library, plus another one for every project we use.

This makes managing add-ons for projects like Joomla or ZenCart quite challenging, because our add-ons get scattered throughout the filesystem to be able to hook into the right place. And if we have to touch a core file, we’re going to end up needing to re-implement our change with any update to that core file.

There are other issues we run into, managing our code and hosting, all of which take fairly time-consuming, manual intervention. Here’s the list:

  • Since we host and provide security updates for Joomla, Word Press, Zen Cart, Drupal, and others, we need to upgrade dozens of installations any time there’s a new release that has a fix for a security vulnerability. With Joomla this has happened quite a lot, and every Joomla installation needs to be upgraded individually–and tested. And since each installation is slightly different, we can’t manage them easily within a single repository, while updating the underlying code.
  • Templates, modules, components, blocks, themes, plugins, and whatever. Developing these types of add-ons are our bread-and-butter. But code for these often get scattered across an installation, making it quite difficult to manage just our add-ons while we develop them, or roll back to earlier versions if there’s a problem.
  • The Dojo Toolkit, and builds. We’re doing a lot of development with Dojo right now, to add desktop-like functionality such as trees, sortable tables, right-click menus, animations, and lots of other really cool things. However, if you don’t “build” the code after you write it, it’s painfully slow in a web browser. And due to the nature of how Subversion works, you can’t easily store a built Dojo tree if you ever want to change it again. Which means you’d need to build it every place you deploy it. And on some computers, it can take a long time to build–on our demo server, one of our projects currently takes 8 minutes.
  • As we get more directly involved with open source projects like LedgerSMB, we’re finding the need to change core files while we hack away at some particular feature. To do this, you create a branch of the code, work on your feature, and then merge your changes back into the “trunk.” If you don’t have access to save directly to the project repository, doing this gets a lot more complicated.

Git to the rescue. Git solves all of these issues. Read on for a technical discussion of how.
(more…)

Microsoft breaks WebDAV in Windows XP, Vista

Monday, June 30th, 2008

Unbelievable. Microsoft was one of the first places to support WebDAV, and after a little investigation, looks like they’ve completely changed how they support it–with security implications, and an amazing amount of brokenness…

At Freelock, we’ve used WebDAV to allow our clients to access to our servers since day 1. FTP is fundamentally unsecure, and as business level hosts, we refuse to allow that. SFTP is a really good option, but it does require us to set up local user accounts on the server and allow a higher level of access–something we would prefer not to do on our shared servers. WebDAV has long been the clear answer to this, supported by every major operating system with no extra add-ons, and also supported by most web development tools natively. That is, until last year, when Microsoft completely changed the way they do WebDAV. It even breaks compatibility with their own Sharepoint software!

Without testing this fully, this appears to be the situation, version by version:

* Windows 98, 2000, XP (does this still work in SP2/3? Dunno):
- Use Internet Explorer. Go to the File -> Open dialog, check the box to open as web folder, enter the WebDAV URL, and open.
This works really well, though if you bookmark it, it will open it as a web page, no longer a web folder.

* Windows XP SP2:
1. Apply a registry hack to enable basic authentication
2. Open Windows Explorer, and go to Tools -> Map Network Drive
3. Enter the path to the drive (you cannot use https unless you have Office installed) and a drive letter to map. Alternatively, use NET USE on the command line.

* Vista:
1. Apply registry hack to enable basic authentication (or set up server to use Digest authentication, and strip domain name out of user credentials)
2. Set up server to not reject requests to anywhere in the path for OPTIONS and PROPFIND requests

Read on for more details.
(more…)

Update

Tuesday, May 27th, 2008

It’s been a while since I posted here, but it’s not for lack of things to write about. There’s plenty going on, and I have several blog posts/rants/articles pretty much ready to post. Just haven’t had time to get them up.

We’ve got a bunch of irons in the fire, and have much of the hard work done. That means I’m going to be writing more, letting the world know about some of the cool stuff we’re doing over at Freelock Computing. Top of the list is Project Auriga, which is quickly becoming a really cool time-tracking, billing, project management application that highlights the Dojo Toolkit to do all kinds of fun stuff right in the browser.

After a year of not getting why I should, I’ve started Twittering as an experiment in transparency and an exercise in posting more regularly.

We’re working on a major overhaul of the main Freelock.com web site, moving it from Joomla to Drupal. We may also move this site to Drupal, and turn it into more of a directory of open source applications, along with discussions about the various solutions so that people can find straightforward information about the state of open source business software.

Finally, I do plan to blog on a more regular basis going forward. And I’d like to make this a useful resource for people looking for answers. So if you have a question about using open source in small business, please post a comment or email me at john at freelock.com, and I’ll do my best to answer them…

The EU crashes Microsoft’s party

Monday, March 3rd, 2008

A couple weeks ago, the EU slapped Microsoft with a $1.35B fine, less than a week after Microsoft had made a big fanfare about their new “open” policies.

Todd over at Napera asks,

Certainly the terms Microsoft has been offering companies since the EU decision in October 2007 are extremely reasonable. Given Microsoft’s new open protocol documentation and their patent pledge for open source developers, what’s not to like?

I haven’t seen any pundits or commentators in the US defending the EU decision. If they are, what are their substantive points?
Napera Networks » The EU crashes Microsoft’s party

Hmm. Let me see if I can shed some light…

First of all, Microsoft wants you to believe that open source developers are all a bunch of hobbyists creating code for no pay. Their recent pledge is to not sue open source developers developing non-commercial systems.

Boy, what a deal that is… Microsoft gets all this open source development for free, right? And they can still charge anybody who dares to compete with them commercially? Great deal–for Microsoft.

The reality is, a great number of open source developers engage in commercial activity. Many successful open source projects are backed by commercial companies. OpenOffice.org, JBoss, SugarCRM, MySQL, PHP, the list goes on. By definition, open source means you can use and redistribute software for any reason, including commercial activity–by excluding commercial entities from patent protection, Microsoft is making a marketing play without making any real concession.

Their real agenda here is to give the illusion of openness so they can get their OOXML format approved as an open standard, without giving up any control over the format. Never mind that they were part of the committee developing the ODF standard and didn’t bother to contribute. Microsoft has no interest in working with other companies to develop an open standard–they want to be proclaimed the standard so they can demand “reasonable royalties” from everyone else, and all the rest of this is just marketing spin to try to put one past the EU, who so far have managed to see through all this bull.

Secondly, Microsoft seems to think the only healthy software marketplace is one that revolves around it. It got where it is by using all sorts of unethical, hardball business practices to drive its competition out of business. This is classic anti-competitive behavior, and is the reason it’s been the target of so many actions.

Microsoft has built a large ecosystem of developers and service providers all gathered around the MS stack. Yet you look at the stack and there’s not all that much vibrant activity, at least not compared to the open source bazaar. Take content management systems as an example. In the Microsoft world, you’ve got Sharepoint. You’ve got a couple of ASP.net open source projects like Dot Net Nuke. And that’s about it.

On the open source side, you’ve got overwhelming choice, and some of them quite great. Instead of one size fits all, you can go shopping for just the features you need, and get it all for a great price–free, if you have the technical ability to make them work. Joomla, Drupal, Plone, MediaWiki, Typo3, Postnuke, Word Press, Serendipity, several hundred different options for you to choose from. Which looks like a more vibrant marketplace, with more competition and more choice?

Ah, but then you ask about standards–isn’t it great that Microsoft makes it so simple for you to do what you need to do? You don’t have to make all those choices. Soviet bakeries were so much better than American supermarkets, too, huh?

Oh, but wait. Who invented http, rss, the world wide web, email, the spreadsheet, the database, the word processor, or anything else we use our computers for? Hint: not Microsoft. And the first few things in that list were created in universities and other open source, collaborative environments.

Finally, to speak directly to the EU’s decision, how does letting Microsoft get away with their monopolistic, anti-competitive behavior help the EU in any way? By protecting their software industry from Microsoft, they’re fostering an environment that can lead to a much more competitive, fertile ground to grow their own software industry.

No other industry (other than possibly the utility companies and the railroads) have had a single company that so dominates the industry like Microsoft dominates software. How can that be a good thing? I know from personal experience a half a dozen companies that Microsoft crushed, and for the most part their technology with them. This mono-culture of software has led to all the trouble with spyware and botnets and through them, spam. I don’t think we’re better off with our Redmond overlords.

I for one was happy to hear about the EU’s decision, glad they were able to stand up against monopolistic practices and do something to actually help their software industry thrive.

On Vendor Lock-in

Saturday, January 19th, 2008

I was listening to the latest episode of LugRadio the other day, and they had a discussion on vendor lock-in by open source distribution companies. I think they missed the point about vendor lock-in: that it locks users into a particular vendor, usually through some means that makes it hard to switch to a better solution later. So I wrote up a reply to send to them that I’m posting below, slightly edited. There is also an ongoing conversation about the topic at the LugRadio forum, and I see several posters are making the same points that I do here.

Open source business is the antithesis of vendor lock-in. Vendor Lock-in is when a vendor uses some sneaky, underhanded, unadvertised method to make it impossible to recover any of your original investment if you ever decide to go with a different system. Vendor lock-in is accomplished by using all the dirty tactics the proprietary software world has used for ages–closed systems that lock away your data, hidden undocumented features, patents, and sneaky licenses.

What you described on the show was not vendor lock-in. It’s called healthy competition, and it’s how open source software innovates. How is optimizing your client OS to work with your server OS vendor lock-in, if anybody else can see what you’re doing and do the same thing? Furthermore, how is it different than competition between KDE and Gnome, or vi and emacs, or any other of the many long-term competitions in the open source world?

Any distribution that is not looking for ways to improve their users’ experience is on the fast track to irrelevance. Take a look at some recent examples you should’ve used in your discussion:

* Xgl vs Aiglx: Novell went off and created Xgl, while Red Hat essentially recruited a bunch of other projects to do the same thing in a different way. Different distributions became real-life test beds for real innovation, and the better technology won.

* Xen. Novell and Red Hat have a great lead over Ubuntu on management tools for Xen. You could’ve accused either of those companies of trying to provide better experiences for their users, but that’s just good business, not vendor lock-in. Ubuntu may be behind, but they’re able to pick and choose their approach to managing Xen–nothing Red Hat or Novell has done is keeping their technology out of Ubuntu or any other distribution looking for enterprise customers. Neither Red Hat or Novell has achieved any kind of lock-in with enterprise customers–what they’ve achieved is leadership.

* Upstart. Here’s an area Ubuntu pioneered, and others are adopting.

* LTSP, K12LTSP vs Edubuntu.

I could go on and on. So I will. Distributions are always trying to shine at some particular set of features. Users decide which ones are appropriate for their needs. This is a fantastic thing. If Ubuntu weren’t trying to make their servers work particularly well with their desktops, they open an opportunity for another distribution who would. As long as a distribution can stay ahead of the competition technically, they deserve all the success they get–they’re pioneering the way, and the whole open source community benefits.

Okay. Now here is what would be vendor lock-in. If Canonical created some tricky way of making their servers talk to their clients, and then patented it so they could sue anybody else who tried to do the same thing, THAT would be vendor lock-in. If Red Hat embedded some private key on their commercial server that unlocked some turbo-samba supercharger, and encrypted their algorithm so nobody else could see it, and then put the key to unlock that speed in their desktop, THAT would be vendor lock-in.

But any open source company that tried such a tactic would be instantly cut off from the rest of the community–and they would probably have to violate a bunch of GPLd software to do so…

The competition between distributions make all of them better. While we’re all racing each other to see who can innovate faster, we still get the benefits of each other’s code, and Microsoft and Apple are starting to disappear in the dust in our rear view mirrors.

One other point I’d like to make: the earlier an open source project tries some new tactic to improve computing, and commits code to a repository the whole world can see, the better. Prior art is the key to defeating all the frivolous patents companies are taking out. If somebody tries something really inventive to eke out a bit more performance, I want that in a public Subversion revision associated with a date and a free license–it’s the best insurance we’ve got against a broken patent system.

On Patents and Free Software

Saturday, January 19th, 2008

I’ve spoken with a lot of entrepreneurs around Seattle, who have a misconception that using open source might somehow force them to give away their intellectual property. Intellectual Property is a hot topic around here, and entrepreneurs are told regularly how they need to have some to get funded. Yet they often think they can add their patented idea to free software and lock up their core idea. It’s a bit funny how they want to have their cake and eat it too.

I’m talking specifically about patents here. My understanding of the intent of patents is to give the originator of an idea a legal monopoly that allows them to invest large amounts of capital to bring a new innovative product to market, for the benefit of the rest of us. In an industrial age, patents make a lot of sense–building an assembly line takes a lot of capital, and if you have a bunch of competitors, nobody would make the investment to build the infrastructure, if they couldn’t lock up the market and get paid back for their investment.

Now, I won’t go into the social ramifications of this arrangement, but I’d like to make two arguments about patents in the age of software here:

  1. The cost of building a distribution and manufacturing network for a software idea is pretty much nil.
  2. Very few software ideas are non-obvious and innovative, or worthy of patent protection.

On the first point, if you had to build or buy your whole set of tools to run your application–compilers, web servers, operating systems, text editors–then yes, maybe you need some sort of way of protecting your investment in all that infrastructure. But with free software, you get all of this for free and have it deployed today on a $600 computer. Your next dollar spent is in your time getting your application actually written. The individual craftsman working from home after hours can develop software in his spare time that can rival anything coming out of a venture-funded startup or a multi-million dollar corporation with the help of all of this free software. Why does the startup need protection from a solo garage programmer? The only reason I can think of is to keep free-market economics from harming the investors, and profits going into the pockets of the entrenched players.

Patents take time and money to obtain. In the world of free software, programmers are far better served creating their idea and bringing it to market first, rather than wasting time and money on patents. Developing a solid program quickly and accumulating a base of customers for your service is going to be the best way to stay ahead of your competition.

So the big question I have for startups is, why should you get all the benefits of Free software with no financial outlay and ability to bypass all sorts of startup cost, and then keep your invention protected by patent? If patents protect a large capital investment necessary to bring a product to market, but then suddenly there is no large capital investment necessary to do so, why should you still need a patent? You can bring a product to market today with a few hundred dollars and a lot of elbow grease.

Of course, you might still be trying to get fabulously wealthy by locking up your idea so nobody else can use it. Fine. Take out your patent. Buy licenses from all the proprietary vendors to use as a platform for your idea. Don’t use software covered by the GPL, because you would not be able to protect your patent when you distributed your product–the GPL is incompatible with your patents, and you would lose your license to use the GPL software. Pay a whole lot more for startup costs, all to protect your fine idea… and then you’ll run up hard against the second point I’m making here: lots of other people have the same idea as you.

Our patent courts are getting inundated by suits from patent “trolls” who have purchased patents from inventors or researchers, and then sit on those patents purely for the purpose of suing others for profit. The targets of their lawsuits almost always had no awareness of the patent they’re being sued for violating–they came up with the same idea independently. Why on earth would we reward the person who filled out a bunch of paperwork to take out a patent, and punish the person who actually brought it to market so the rest of us could benefit?

Patents are supposed to be innovative, and non-obvious. The fact that many different companies come up with the same ideas independently all the time should indicate that those ideas are obvious to people in the field. Because the cost of bringing these ideas to market have dropped to virtually nothing, software companies do not need patent protection–there is very little capital outlay necessary to protect. Our current patent system punishes innovation, instead of promoting it.

Fortunately for the open source community, there are several things that make us more resistant to the patent threat than proprietary companies. We should assert these points whenever someone in the community is threatened by a patent holder:

  • No big pot of money. Because we don’t need much capital to get started, there’s not really any prize for patent trolls to go after. The patent trolls attack software companies, and their goal is not to drive the company out of business, but to profit off somebody else’s work. If there’s not enough cash in one place to provide that profit, they won’t bother to try. They’ll keep suing Microsoft and Blackberry and all those other venture-backed startups that still think the patent system isn’t broken.
  • Prior art. Here the public process of open source projects is a huge advantage. One of the best ways of invalidating a patent is to prove that there was prior art. What matters for this is the date of publication–was there prior art published before the date of the patent application? If so, and if that can be proven, it can completely invalidate the patent. Well, the Internet is nothing if not a big publishing machine. A public repository with revisions available by date seems to me like a great way of proving when an idea first entered a codebase of a particular project. Back that up with a look in the Wayback machine or a Wikipedia article, blog entries, IRC logs, and we can prove prior art with any discussions that happened before the patent application.

    Those poor, poor proprietary companies… they can’t even talk about things they’re trying to patent until they have their application in, or they might invalidate their own patent. When it comes to validating patents, the first date of publication or patent application wins.

  • The GPL. GPL v2 prevents patent holders from providing patent licenses to some recipients of the software, but not others. GPL v3 makes the rules much more specific, basically making covered software incompatible with patents. If you patent something you’ve extended from GPL v3 software, you’re violating the license and lose the right to use that software. So much for that business model.

Patents were originally designed to make it financially possible to bring innovative products to market so the world could benefit from that innovation. The current patent system, at least for the software world, does the opposite, standing in the way and penalizing innovation instead of promoting it. The Free Software movement is trying to do the same thing patents were created to do: make it possible to bring innovations to the public and protect innovators, in the face of a broken patent system. And while free software has taken away the potential for huge profits, it has also taken away the huge costs.

I was talking with a programmer last week about open source. He kept asking, “but how can I make money programming free software?” He seemed to think he was entitled to develop his idea, control it from start to finish, get venture funding, bring it to market, and everybody would buy it and make him the next Bill Gates. He kept saying that free software was not friendly to the community, because it took away everybody’s ability to make money. He seemed to think that proprietary software companies developing in a closed ecosystem was the key to developing good software, that that was the only way to make money in software, so if you didn’t work with his software community, you wouldn’t make any money.

I asked him where the money came from, and his answer was “the customers.”

Ah, so let me get this straight: customers are going to fund your closed ecosystem of buddies all trying to corner the market on particular ideas, just to keep this group of developers making money. Really? Even when there’s a completely viable alternative that does every bit as much as your system, without vendor lock-in?

Free software is, if nothing else, an advocacy group for users. Customers are the users in this case. Free software is software that users can use for whatever purpose they wish, can give to anybody they want, and change to suit their needs in any way they want–as long as they don’t restrict what other users do with it.

Free software is about community. However, in the free software world, users and customers are part of the community, not merely an external entity funding it all, a sugar daddy. In the free software community, the lines between users and contributors, between customers and vendors, become quite blurry. Doing something at the expense of part of the community, just so you can make a fabulous profit, isn’t going to keep you in business very long.

How to get the best price

Wednesday, December 12th, 2007

… but are you sure price is the most important thing?

We’ve been on the receiving end of this type of call quite a bit these days. The unfortunate part about the whole deal is that pricing often seems entirely arbitrary.

When I got the bills for surgery on my ruptured Achilles tendon, I was amazed by the difference between the original price and the final price negotiated by my insurance company. Even though I had a very high deductible and had to pay most of the bill before the insurance kicked in, just having insurance lowered the cost dramatically, in some cases more than 50%.

As a service provider with payroll, taxes, and overhead, however, I’m less inclined to negotiate. With open source products, we’re providing incredible value to our business customers. But if we don’t get fairly compensated for our services, we wouldn’t be around to help businesses negotiate the open source bazaar for very long…

So, you want a web site…

Thursday, August 30th, 2007

The first thing to ask is, why? Web sites have lots of reasons for existence, but for business purposes, we tend to see some combination of four motivations:

  • To act as an online brochure
  • To attract new customers from search engines
  • To sell things online
  • To build a community of people who might someday buy something from you

A web site can do any or all of these, but generally the further down this list you get, the more the site is going to cost in terms of development cost and your time.

Web Site as Online Brochure

All businesses need a web site. It’s as crucial as having a Yellow Pages listing a couple decades ago-it’s the first place more and more people will look to find your address, phone number, and contact details. If you have nothing more than a single page with the basics about your business, it’s important to have at least that.

Your web site should not only tell your potential customers how to get ahold of you, but also why they should. What products or services do you sell? Who are your customers? Why do people buy from you instead of your competition?

A web site that answers those questions and nothing more is a sales tool. You are not likely to get new sales leads from such a basic web site, but it can help you close sales for prospects who already know who you are. When you put together such a site, you’ll need to consider your business brand, and there’s a couple of radically different schools of thought here:

  1. Brand matters
  2. Brand doesn’t matter, but personal reputation does

The old school of thought is that companies develop a brand that is supposed to represent its values. The danger of this approach is letting the trappings of a brand-the logo, the slogans, the marketing material-matter more than delivering those values. It’s like worshiping idols instead of the gods they represent-sooner or later you’re gonna get smote.

The newer school of thought is eloquently expressed in an essay called "The Cluetrain Manifesto" and espoused by many new thinkers and thought leaders, such as Seth Godin, one of our favorite current marketing writers. The gist is that graphics, logos, all the rest of these trappings are completely irrelevant, that nothing but content-your quality of service, your core products-matters. Their approach is minimalist-use freely available tools to build your web site, don’t spend on graphic design, instead just make sure you take care of your customers.

Of course, we think delivering quality service is important, but having a coherent brand can help. Especially if you’re trying to develop a consistent customer experience. Ignoring graphics, domain names, even business names, is fine for personality-driven businesses, but if you are trying to grow a business to be something more than the sum of its personalities, you need a visual identity that’s consistently expressed in your web site, your printed material, your contracts, in everything.

You can get started with a web site at your ISP, or a blog on a hosted service, for next to nothing more than a few hours of your time. We recommend that as soon as you can work it into your budget, hire a graphic designer to put together a business identity and a basic web site that incorporates it. Expect to spend around $3000 to get something unique that expresses what you want your business to represent, though this price can vary substantially depending on the web designer you choose, how well you can express your ideas to your designer, and how intricate and detailed your design ends up. You can find cheaper solutions, such as cookie-cutter designs, pre-built templates, or off-shore design to get something going for a few hundred dollars-but it will definitely show. Depending on the values you are trying to represent with your brand, this may or may not be a good thing.

Prices for web design can vary by a huge amount. We recommend finding a designer with a portfolio of designs you like, interviewing them to see how well you can work with them to make your ideas a reality, and decide what you’re willing to spend up front. Setting a budget for a web designer is perhaps the best way to go. Intricate designs take time to develop, which costs money-start with a logo and an overall concept, and refine until you’re happy or have reached your budget.

But before going crazy with design, read this post by Seth Godin for guidelines on what to put on your web site (and follow his suggestions for other places to post content).

Beyond an e-Brochure: Getting business from your web site

Just having a web site, however, does nothing to get customers beating down your doors. People need to find your web site somehow, amidst the millions of other web sites out there. For small, local businesses, they don’t find your web site online–they find it from your business card, a sign on your car, word-of-mouth, or all the rest of the traditional ways people market their business.

If you want your web site to actually generate business for you, recognize that it’s going to take a substantial investment in your time, more than anything else. The critical ingredient in getting your site noticed by search engines is content. The more, the better–especially if it’s interesting, relevant, and unique. Having new, original content on your site helps it in two ways:

  1. It’s more raw material for Google and the other search engines to index. Sheer quantity helps.
  2. If you’re a decent writer, and write something useful, people will return to your site to see what you write next, and some will link to your pages.

Google is basically a popularity contest: it places the highest value on pages with the most links coming from other sites. Create a page that people want to read, and eventually it will boost your rank on Google. Create a bunch of pages, and soon you’ll be at the top of the search engines, and start to get business over the Internet.

You can jump-start online marketing by buying advertising. Pay-per-click ads work, and don’t cost all that much. But nothing beats the organic results you get by growing your site with regular additions of new content.

If you need a system to make it easy to add stories to your site on a regular basis, that’s where Freelock Computing can help. We work extensively with Joomla, MediaWiki, Word Press, and Serendipity, different systems that make it simple for you to manage your own content without needing a technical background. We regularly deploy, customize, host, and provide training for these systems. Let
us know
if we can help!

Brick and Order: Selling online

Many people suggest having some sort of "call to action" on every page of your site, whether you actually sell online or not. If your web site is for a business, you almost certainly want people to take some action, some small step that might eventually lead to a sale. Even if your product or service doesn’t lend itself to online sales, your web site can help develop a relationship with potential customers, help them gain trust in your expertise or familiarity with your services.

But if your products can be sold online, you almost certainly should set up some sort of online shopping cart. The more specialized your business, the more unique your products, the more potential customers you can find online.

The Internet can put distant customers on your virtual doorstep. Having a friendly, inviting catalog online can greatly expand your customer base, and there are some great tools out there to make developing such a site affordable.

At Freelock, we recommend and deploy ZenCart for retail operations looking to open an Internet store. For people who have some products to sell but still want to have an information-rich site, we’ve deployed a Joomla shopping cart system called VirtueMart.

Growing a Community

By far the most audacious goal you might have for a web site is to make a place where people hang out and talk to each other. Many, many businesses are learning that this is a great way to cultivate a devoted following, but it takes a lot of work.

Community web sites are like gardens. It takes some fertilizer, regular watering, and someone to pull weeds to make a vibrant community grow. If your business is large enough to devote a major part of somebody’s time to keep a community site in good shape, it can pay off with enthusiastic support of your business.

Opening a web site to direct interaction with your customers can be difficult for a lot of businesses. You need to be open to criticism as well as praise, willing to allow the world to see the warts on your business. But doing so nearly always helps people trust your business, and makes them more willing to do business with you.

What sort of work is involved? Quite a bit:

  • writing stories and inviting comment on them
  • Responding to criticism and praise, both in a professional, business-like way
  • Deleting spam, or moderating posts (I recommend only moderating spam, not negative posts)
  • Generally making yourself available to your customers online

If you can’t put the time into managing such a site, I would suggest simplifying your goals, go with a marketing or an e-commerce site. Community sites are hard, and there’s not much worse for your business brand than a forum filled with spam, or negative posts that go unanswered.

But there’s not much better than having a community of vociferous fans of your business-they’ll help you with sales, marketing, and support.

We’re helping several companies put together or manage community-based web sites. Joomla has a number of common add-ons we deploy for this purpose-Community Builder and Fireboard provide a solid base of user profiles and forums. For more specialized web sites, Drupal is a more powerful content management system that makes a fine base for building entire custom applications.

Choosing a web site vendor

Lastly, a few words about hiring a web developer. There are lots of us around, with a wide range of prices. What one company can do for $2,000, another might be able to do for $10,000, and you might be able to get someone in India to do for $500. But the end result won’t be the same for any of these.

Spending more doesn’t always mean you’ll get a better result, either. Open Source software greatly lowers the entry cost to get powerful web sites, though these often result in a steeper learning curve to figure out how to use effectively.

The best way to find a good web developer is to ask people you know and trust for a recommendation. Make sure you talk to people who have worked with the web developer to get a sense for how the process went, and how satisfied they were with the results. There are two different skills used in putting together a web site: the graphical side, and the technical side. You need both, and you don’t tend to find both in the same person. Make sure your graphics person "gets" what you are trying to express, and make sure your technical person can explain things in terms you understand. These factors are far more important to the ultimate success of your web site, than the cost you pay up front.

So, here’s the final checklist of how to put together a great web site for your business:

  1. Decide upon your goals for the web site, what type of web site you want to create.
  2. Ask friends, colleagues, family members for
    recommendations to find a web designer and developer you can work
    with. You might also be able to find a developer by contacting the
    owner of a site you particularly like.
  3. Interview your potential web designer and
    developer. Ask to see samples of their work, and to talk with prior
    customers. For the designer, look for designs you like, and how well
    you connect with the designer-design can be extremely subjective,
    and you want someone who will deliver what you’re looking for. For
    the developer, make sure they’re competent, and that they can
    clearly explain what needs to be done and what your options are.
  4. Once you’ve decided upon the people,
    determine if they can do the job within your budget, and if so,
    you’re off and running!

www: a technical litmus test

Monday, August 13th, 2007

Josh over at Web 1 Marketing writes about using www versus leaving it off. What’s wrong with no-www:

Websites should use or at least always accept both formats. Regardless of which you choose, someone will always try the other.

At Freelock, we’ve noticed that www is a bit of a litmus test for how technical a person is–all of our more technical users omit www, while all of our less-technical users always include it. We’ve had to add www to several domain names of things like mail servers that are not general web sites, just because our users assume it’s there.

Where we’ve really noticed this phenomenon is in deploying Joomla web sites. While you can see pages on Joomla from a variety of domains, links get rewritten to whatever domain you designate as the main one. This usually isn’t a problem, except when people log into the first page they visit–they inevitably have to log in again when the domain changes, and they get confused. So as a rule of thumb, we set up sites using www unless our users are clearly web-savvy.

My current desktop environment

Saturday, June 9th, 2007

Several others have listed the applications they use on a daily basis. I’ve been using Linux for my desktop environment for several years, and thought I would share what I use constantly.

  • Operating System: Ubuntu Feisty Fawn, 7.10
  • Desktop Environment: Gnome (though I tend to prefer KDE overall, Ubuntu does a better job with Gnome, especially integrating laptop features like power management, and Gnome has gotten good enough to use as the primary desktop. You’ll see lots of KDE applications listed here, though!)
  • Browser: Firefox (what else?)
  • Firefox plugins: Bookmarks Synchronizer, Firebug, Web Developer, Forecast Fox, Google Preview, HTML Validator, Sage, SearchStatus
  • Email client: Mozilla Thunderbird, occasionally Evolution
  • Thunderbird extensions: Asertiva Extension for Sugar, Display Mail User Agent, Enigmail, Lightning, QuickFile, QuickText
  • News Reader: Firefox Sage extension for general stuff, Thunderbird for security-related feeds
  • Calendar: Evolution
  • Address book: SugarCRM (okay, it’s not a desktop application)
  • Miscellaneous notes: Tomboy
  • IM: Kopete (though I mostly keep it off to avoid interruptions)
  • IRC: Konversation
  • Networking: NetworkManager with OpenVPN add-on, OpenVPN Admin for connecting/testing client VPN networks
  • Development: ActiveState Komodo Professional (almost the only proprietary software on the list!)
  • File management: Konqueror (hard to beat this for connecting to almost any type of server out there)
  • General editing: vi
  • Office software: OpenOffice.org (currently at 2.2)
  • Desktop search: Beagle
  • Graphic editing: Gimp
  • Database editing: Rekall
  • Multimedia playing: Kaffeine, Amarok, and DemocracyTV
  • Photo Management: F-Spot
  • Audio editing: Audacity, though I’m starting to play around with Jokosher
  • Disk Encryption: Truecrypt
  • Personal Finance: GnuCash
  • Repetitive Stress Injury Prevention: Workrave

I use a lot of server software, and spend much of my time in shell (terminal) windows… I usually have two terminal windows, each with 3 or 4 open tabs, all connected to different servers, many with multiple sessions running in screen.

There’s a bunch of other software I have installed, but don’t use regularly, including Scribus, Inkscape, Xara Extreme, and many others. Aside from some specialty industry applications, I have a hard time imagining anything I couldn’t do with my current desktop environment, and out of this entire list, there’s exactly one item I have to pay for: the Komodo IDE I use for development. Everything else here is free.

Random notes

Saturday, June 9th, 2007

Marc Andreesson, one of the authors of Mosaic, the original web browser, has taken up blogging, and in his first week he’s got some thought-provoking posts. I’ve adopted many of David Allen’s Getting Things Done ideas to help get my business off the ground, but Marc has some great tips here: blog.pmarca.com: The Pmarca Guide to Personal Productivity.

I particularly like structured procrastination and strategic incompetence…

Truth in Numbers: the Wikipedia Story

Tuesday, April 3rd, 2007

wikidocumentary.pngSeen on Rocketboom: There’s a new documentary film in production about Wikipedia. It’s a non-profit project, and they’re looking for donations. Looks like a great project, and we’re delighted to see the cover of our book in the trailer.

Windows screwup forces Ubuntu shift

Monday, January 1st, 2007

Happy New Year! Here’s a quick story about why Linux is the future:

Windows screwup forces Ubuntu shift