Small business software tips, news, and reviews   Easy online customer management - Less Annoying Software  
Displaying posts tagged "using technology" (Clear Search)
Monday, February 22nd, 2010
By Tyler King

In the software world, there are two primary systems for organizing information: folders and tags (also called labels).  The difference is most noticeable as people transition from Outlook to Gmail, but I want to talk about the more general uses of tags and folders.  Specifically, I’m going to go over when tags aren’t the right way to organize things.

First, let’s make sure everyone understands the difference between the two.  While there are a lot of superficial differences, the thing that really separates the two is that a file can only exist in one folder, but a file can be associated with multiple tags.  For example, let’s say you just bought an airplane ticket for your mom and you want to file away your confirmation email.  You often classify your emails as “family” or “travel”.  In this case, the email applies to both categories, but with folders you have to pick one.  With tags, you can assign the email to both categories.

People often think there are other differences, such as a hierarchical structure (i.e. subfolders), but both folders and tags can support that (it’s just less common with tags).

In the example I gave above (organizing emails) the tag system is obviously much better than the folder system because it doesn’t make you choose between the two different categories. The problem is that people seem to think that tags are always better, but that’s just not the case.  They are generally better, but sometimes organization requires mutual exclusivity between different categories.

I’ll use the Less Annoying Software CRM as an example of when tags just aren’t as useful.  When you’re dealing with sales leads, you generally want each lead to belong to exactly one status.  If someone fills out a contact form on your website, you would categorize them as a “lead”.  If you call them up and decide that they aren’t ready to buy, you would categorize them as “inactive”.  “Inactive” and “Lead” are mutually exclusive.  It’s one or the other, never both.  For this reason, we use a folder system (we call them “statuses”, but they’re basically the same thing as folders).

If you’re a hardcore tag supporter, you might wonder why it matters that the two statuses can’t both exist at the same time.  The best reason I can come up with is because it messes up reporting.   If I want to see a report of the current status (or folder) of all my leads, I can’t have overlap between inactive and active leads.

This is obviously a somewhat obscure example, but there are all kinds of different scenarios where folders actually do make sense.   When I finish writing this blog post in Google Docs, I’m going to want to move it from the “draft” folder to the “published” folder.  This means adding it to one and then removing it from the other, because Google uses tags for just about everything (they call them folders in Google Docs, but they’re really tags).

So enough rambling.  What’s the point?  The point is that in many cases folders are outdated and ineffective, but don’t disregard them entirely.  They still serve a purpose, and if you find yourself designing software, I suggest you put some thought in before going with tags just because that’s what’s cool right now.



Wednesday, February 17th, 2010
By Bracken King
Over the past few years in graduate school, I've somehow ended up managing the computing resources for our lab. Prior to joining the lab, I didn't have any real system administration experience, so while I've learned a lot over these years, I'm still learning plenty whenever something breaks or we decided to upgrade our resources. As you might expect, there's a huge amount of complexity in managing a linux cluster, and one often has to just trust various suggestions at face value without fully understanding the underlying logic. Regardless, I always try to make a point of having at least some idea of why various best practices have been established. The following is a story about my not doing that, and the minor annoyance that it's causing.

About a year ago, we purchased 32 compute nodes for a new cluster. Even if you've never been in a server room before, you've probably seen one on TV (and in the picture included in this post). Basically, there are a bunch of metal racks lined up next to each other, and the computers are stacked on top of each other inside the racks. The racks in our lab can hold about 40 computers each. Cooled air is blown up from the floor in front of the computers, then pulled over the processors by fans inside the computers.

Anyway, when we bought these computers, the company from whom we purchased them came out to do the installation. As I said, we had purchased 32 machines and had room for 40 machines in the rack, so we were going to have 8 empty slots in the rack. I was a little surprised to see that the team installed the computers with all 8 empty spots placed at the top of the rack. When I asked about this, they told me that installing machines from the floor up is "The Rocks Way" (Rocks is a version of linux designed for high performance computing clusters). When I prodded a little further , they told me that it was done to improve the airflow through the computers: put all the machines as close to the air conditioning as possible, and create a continuous block of machines to get even airflow. Satisfied with their answer, I left them to their work.

Somewhat later I noticed that by stacking the machines from the floor up, the computer named node-01 was placed on the bottom with node-32 on top. Previously in the lab, we'd always installed our machines in the opposite order (01 on top). For consistency's sake, I asked if there was a good reason to have 01 on the bottom. Again, I was told that this was "The Rocks Way," but when I prodded further, I didn't really get any further explanation. As such, we asked them to rename the machines to stay in line with the rest of our layout.

And now we get to the point of this unnecessarily long and boring story. Our lab is about to purchase 8 more computers. We want to add them to this cluster. They will be numbered 33-40. But if we put them into our rack, our nicely number machines are suddenly going to be out of order. From top to bottom, they will read 33-40,1-32. Obviously, that's not a huge deal for those who aren't as anal retentive as myself, but if we'd just done things the Rocks way (and understood why), we would now have nice sequentially numbered machines.

It's pretty safe to say that almost every best practice has some reasoning behind it. In plenty of cases, this reasoning might not apply to your situation; but if you don't find out what the reason was in the first place, you've got no hope of determining whether it is relevant to you.



Tuesday, January 26th, 2010
By Tyler King
As you may have heard, Apple is expected to announce a new tablet tomorrow (January 27th).  All the information so far has been based on rumors, but everyone seems pretty sure that the tablet (or whatever they end up calling it) will basically look like a larger ipod touch and it will work like a netbook.  Several people have asked me why it's getting so much hype, so I thought I'd post my thoughts here.

First I should say, I hate Apple.  This post isn't about why I'm going to buy the tablet because there's absolutely no way I'm ever going to buy anything from Apple.  The fact that I won't buy one doesn't mean I can't be excited.  For example, I don't own an iphone, but I know that the popularity of the iphone had a lot to do with my Palm Pre being so excellent.

Anyway, there are two main things that I like about the idea of an Apple tablet.

#1 - Bridging the gap between phones and computers
Despite how advanced smartphones are getting, most people still don't realize that phones and computers are the same thing, just with different cases.  As soon as the public is ready to accept that an iphone isn't a phone (it's a tiny computer), that will open up the floodgates for innovation, and it will hopefully put an end to a lot of stupid mobile trends (like 99 cent apps, no one buys 99 cent apps for their mac or pc).

In case you haven't been paying attention for the past decade, the application platform of the future is the web browser.  Unfortunately, the general public isn't ready to accept that their phones can run web apps just like their computers.  No one demands a facebook app that runs on Windows 7, so why do we need one that runs on the iphone?  Supporting mobile applications (rather than mobile web applications) is slowing down development in almost every area.  The Apple tablet has the ability to change the way people think of mobile operating systems because it looks like a big phone, but it works like a small computer.

#2 - Exploring new user interfaces
For as long as I've been aware of computers, the only real way to interact with them has been through a keyboard or mouse.  This has really narrowed the way designers and users look at  software, because we can't think of a world where we can experience software in a more natural way.  The technology in movies like minority report seem like science fiction, but they really don't have to.  The limiting factor isn't our ability to write the software, it's our hardware's ability to interpret what we want to do with software.

I don't expect the Apple tablet to do anything too revolutionary, but it will at least start to open everyones minds to the possibility that a keyboard and mouse aren't necessary.  My guess is that when other companies see the Apple tablet, they'll start trying to come up with their own weird systems for interacting with computers.  The keyboard/mouse system has needed some competition for years now, and the tablet might just be the straw that breaks the camel's back.

So those are the two reasons I'm excited for Apple's announcement tomorrow.  What do you think?





Friday, January 22nd, 2010
By Tyler King
I spend too much time talking about bad software.  It's easy to point out the wrong way to do things, but that's not very useful unless I also give examples of the right ways.  With that in mind, I'm going to try to periodically post about software that I really like.  These posts will be a blend between concepts (what makes good software) and practice (you should use this specific software for this reason).  Today, I'm talking about my favorite image editor.

Most people think that there are basically two options for photo editing: Microsoft Paint (or something equally basic and useless) or Adobe Photoshop.  Photoshop can do just about anything, but it's too complicated for most people (including me).  If you want to use Photoshop, you basically need to take a class or spend countless hours banging your head against the wall as you experiment.

In addition to complexity issues, Photoshop has a glaring weakness: vector graphics.  In case you don't know, vector graphics are like normal images, except everything has been drawn (on by the computer) and the source of the image can be edited.  For example, if you draw a tree in MS Paint, it's a flat image and the only way to change it is to draw different things on top of it.  A vector file would actually store how you drew the tree so that you could go back and change the thickness of lines, colors, and anything else about the image.

For some reason which I can't begin to understand, Adobe decided that normal images (or bitmaps) and vector graphics shouldn't both be well-supported in one program.  They have Photoshop for images, and Adobe Illustrator for vectors.  Sure, Photoshop can do basic vector editing, but it's really bad.

So if I don't like Photoshop, what do I like?  Without a doubt, I think the best image editor is Adobe Fireworks.  I know what you're thinking.  You're thinking, "but Tyler, Adobe is incapable of making decent software. Even their PDF reader is a horrible embarrassing mess.  They are in the running with Intuit for 'Most Annoying Software Company Ever'"  Well, you're right about that, but Fireworks was originally made by Macromedia and then Adobe bought Macromedia.  Despite having several years to mess it up, Adobe has refrained from making any major changes to the software so far.

So what's good about Fireworks?  The main thing is that they didn't let complexity get in the way of basic functionality.  Sure there are super-complicated tools that no one could figure out on their own, but everything you know from MS Paint works the exact same way in Fireworks.  Someone who has never used it could easily figure out how to draw a basic picture, add text, cut and paste.  The Fireworks designers clearly realize that you can have powerful features without ruining the simple ones.

Also, Fireworks seamlessly switches between vectors and bitmaps.  If you draw a square, it stores that as a vector so that you can edit it later.  If you paste in a picture you took with your camera, that's a bitmap.  Vectors and bitmaps live together in perfect harmony.

Finally, one of the coolest things about Fireworks is how it stores the images.  Most image editors like Photoshop have proprietary file formats that can only be opened by other people with the same expensive application.  Fireworks files are actually just normal .PNG files which is a standard image format that anyone can view.   All the fancy Fireworks data is stored with the image, but it is hidden.  That way, if you send the file to someone without Fireworks, they just see a normal image.  If you send it to someone with Fireworks, the have access to all your wonderful vector information.  This makes collaboration much easier.

There are a lot of other reasons that I think Fireworks is way better than any other image editor I've used, but this is already about five times longer than it should be.  The point is, if you're looking for great software, try out Fireworks.



Tuesday, November 17th, 2009
By Bracken King
As promised, I'm back with more analogies to chemistry and physics. If you enjoyed yesterday's post, you're in for a treat. If not, this post is completely different.

Technology is cooperative

It's no big revelation that change is difficult but important. We've talked about it before, and we've talked about how trying to keep up with the bleeding technology front at all times is probably not worth it. But there's another aspect of the upgrade path that is easier to overlook if you're not careful. To set the analogic* stage, I briefly want to talk about the concept of cooperativity. Basically, cooperativity is the idea that an initial event can lower the activation barrier for following events (see yesterday's post if that doesn't make any sense). The classic example of this in biology is oxygen binding to hemoglobin. Hemoglobin is the main oxygen transporter in your blood carrying oxygen from your lungs to the rest of your body. Each hemoglobin molecule can bind up to 4 oxygens, and there is some energy barrier to bind each of them. The cool thing is that once the first oxygen binds, it changes the shape of hemoglobin such that it's easier to bind the second, which makes it easier to bind the third, which makes it easier to bind the fourth. The result is that hemoglobin almost always has either zero or four oxygen molecules bound. This is an important property for hemoglobin because it lets it pick up oxygen easily in the lungs, and then dump it all in the tissues of the body. That's cooperativity.

Technology has a tendency to be cooperative in similar ways, both by it's nature and by design. Apple originally released the iPod to try and get people to buy their computers; the iPod experience was much better on a mac, encouraging users of one to get one (many people would either have both or neither). Now this plan didn't work out exactly like they planned (plenty of windows users with iPods, obviously), but that was the original idea. Microsoft has done similar things with Office and Windows. Until recently, Outlook didn't even exist on the Mac, and Office in general was slow and close to useless. As such, if you wanted to use Outlook or the rest of Office, it was much easier to use Windows. To finish the software giant triumvirate, anyone who has ever used Google's services knows they exhibit extreme cooperativity. Gmail, Google Calendar, Google Docs, and Android are all pretty great services on their own, but using all of them together is much more useful than any individual product by itself.

So cooperativity is everywhere in technology, and there's nothing necessarily wrong with that. As I've said, the Google suite of software is much more useful all together than it possibly could be in separate chunks. The extreme success of Office (which I still think is a good product, despite what Tyler would likely say) is largely due to similar properties. The problem with cooperativity, however, is that it can make upgrading even harder. If all of your software is codependent, you basically have to simultaneously overcome the activation barriers for all of them at once. I think that a large amount of the backlash against Vista had to do with the fact that most people who upgraded also got a new version of Office and weren't able to change so many things at once.

As for how to combat the problems of cooperativity in technology, I think open (adhered to) standards is the answer, and are worth sticking to whenever possible. The increased trending of web software is a huge plus. For most online software, any browser provides a valid platform for the software. If you decide to switch to a mac, or upgrade to windows 7, or just use your smart phone full time, you can still get basically the same gmail (yahoo mail, hotmail, etc) experience. That's possible because HTML is a well-defined standard (even if Microsoft doesn't care). Similarly, the fact that I can export my gmail contacts as a csv, or my calendar events as ical, or my docs as rtf, means I can decouple the services if I want to. If a better document editor comes along, it's not hard to switch just that (without upending everything else I use through Google).

Cooperativity is great when used right, but don't let it be used to lock you in to a specific combination of software without a clear upgrade path.

*not a real word



View Older Posts


Subscribe to our RSS Feed
Subscribe to email updates
New posts will be emailed to you each night
Follow us on Twitter Follow us on Facebook
About this blog
This is a blog for small businesses interested in how they can better use technology. Most tech is targetted at either individual consumers or huge corporations. We'll help you find the tools that are powerful enough to help run your business, but simple enough that you won't need an I.T. team to use them.

There are two main writers on the Less Annoying Blog: Tyler has worked on the tech side of several small businesses and knows first hand what the little guys need, and don't need. Bracken is finishing up a PhD at MIT and he's always experimenting with any new software he can get his hands on.

We also run an online customer manager tool called Less Annoying Software which was created specifically for small businesses to track all their customer activity.
Search the blog
Tips and Feedback
We obviously want to write about things that you want to read, so help us out! If you are interested in reading about a particular topic, let us know. We're also always on the lookout for new software and tools to try out (and review), so feel free to forward information on any new tech you'd like us to write about.

You can reach us at blog@LessAnnoyingSoftware.com
Archives
2010 (16)
March (3)
2009 (34)
August (6)

© 2010 - Less Annoying Software, All rights reserved.