Archive for the “Efficiency” Category

Swift To Do List LogoRegular readers of my blog will know that I am a proud user of the Getting Things Done system and love using a To-Do list to manage my tasks.  So when I was asked to write a review of Swift To-Do List, I was pretty excited to try it out and see how it compares with my current pen & paper method.

Swift To-Do List Online is a web application created by Dextronet.  Although called a To-Do list, it is in fact much more than that.  Being an online application, the biggest reason for using it is that tasks can be accessed and modified whenever you have access to the Internet.  Luckily for me, I’m almost always in front of a computer so it is very convenient.  It might be interesting to get input from somebody that doesn’t always have access to the Internet to get their thoughts on this tool.

Features
With regards to shear number of features, this is by far the most I’ve seen on any to do list software.  Here’s some of the more notable ones:

  • Hierarchical tree structure to organize tasks
  • Ability to set due dates and use built-in reminders for tasks
  • Import lists from XML format
  • Export lists to HTML or CSV format
  • User management for collaboration and task allocation
  • Add notes/files/media to individual tasks

That last feature is a huge one in my opinion.  With each task you have to do, you can associate formatted notes, files, folders and links to it.  A lot of times the task itself can be described in one line but all of the extra things that go with the task need to be stored somewhere else.  By allowing users to add notes and links directly to a task, it really helps with organization.

For example, I might have a task say “Print this document at the office” and then simply attach the document along with the task instead of having to save it to a USB key or e-mailing it to myself.  Not a big deal, but definitely helpful!

A lot of people (myself included) like to keep things simple but it is important to remember that just because all of these features are offered, doesn’t mean you have to use it!  You can make Swift To-Do List as simple or as complex as you need it to be.

User Interface

Swift To-do List Screenshot

In true Web 2.0 fashion, Swift To-Do List Online operates exactly like a desktop application.  The UI reminds me of Microsoft Outlook with its 3 panel view.  The buttons (very nice icons by the way) are large and intuitively easy to use.

From a web developer perspective, I can really appreciate the detail and effort put into making the user interface usable and free of bugs.  Since I’ve done my share of Web UI programming before, I spent a few minutes trying to “break” the UI with common oversights but it was nice to see that it was all accounted for.

In my opinion, a couple things that could be added to improve the experience are:

  • Keyboard shortcuts – I love keyboard shortcuts
  • iPhone App – This would open the application to a huge audience that wants a featureful to-do list application accessible anytime anywhere.

Price
With a web application of this caliber, it isn’t a surprise to find out that it isn’t free.  The online version comes at a monthly cost in 4 different plans ranging from $9.95 to $225.95 a month.  The difference between the versions are the number of users allowed (from 1 to unlimited) and the amount of storage given to store files associated with tasks (from 100MB to 50GB).

For most people, the most basic personal plan should be enough.  The higher tier plans are clearly geared towards businesses that want to manage large projects with many contributors.  I can see it being extremely helpful for a manager to assign tasks and keep track of project progress through this web application, especially if the office is decentralized.

They do offer a free 30-day trial so you can try it to see if you like it.  Or check out their live demo to see if the features suit your needs!

Conclusion
Swift To-Do List is one of the most complete and feature packed online to-do list software I have come across.  I didn’t try using their collaborative features yet since my To-Do list is only for personal use but I can see many possibilities for it.  The only thing I can think of to improve it are the addition of keyboard shortcuts and perhaps the development of an iPhone application to supplement the site.

If you want something for your desktop, Dextronet also offers an award winning to-do list software for Windows, which is what this online version is based off of.

Popularity: 7% [?]

Comments 24 Comments »

With the advent of AJAX, JavaScript heavy scripts and applications are becoming more and more popular on the web.  As is the nature of AJAX applications, many of these will pull/generate data dynamically.  With images this can cause minor performance lag if an image needs to be loaded.  Another situation where image lag can be a hinderance is a simple onmouseover image changes common on menus and navigation bars.

Since the early days of the Internet, there have been many ways of preloading images to prevent this lag.  By loading the image into the browser’s cache, there is no need to refetch an image over the Internet.  Throughout the years, each new method poses more advantageous and simpler than previous methods.  I’ll discuss three ways of preloading images, starting from the earliest and most cumbersome to the most recent and efficient.

The Pixel Image
Perhaps the earliest form of preloading images is the pixel image.  By embedding many images on a page (usually at the end of the page) and then forcing the size to be 1 by 1 pixel, you essentially still load the image without displaying much.  Setting a border doesn’t matter too much but doesn’t hurt.

<img src=”img/mypic.jpg” width=”1″ height=”1″ border=”0″ />
<img src=”img/mypic2.jpg” width=”1″ height=”1″ border=”0″ />
<img src=”img/aREALLYbigpic.jpg” width=”1″ height=”1″ border=”0″ />

Setting the size to 0 by 0 pixels works in some browsers as well and is a better solution.

Create an Image in JavaScript
With two simple lines of JavaScript, you can create an image and load it up without having it actually display on a page.

mypic = new Image();
mypic.src = “img/mypic.jpg”;
mypic2 = new Image();
mypic2.src = “img/mypic2.jpg”;
mypic3 = new Image();
mypic3.src = “img/aREALLYbigpic.jpg”;

Hide Images with CSS
Using CSS, you can choose to not display certain elements with the display property.  You can either make each individual image you wish to preload not display or you may make an entire section of images not display.

In your CSS file,

#preloadarea { display:none; }

In your HTML,

<div id=”preloadarea”>
<img src=”img/mypic.jpg” />
<img src=”img/mysecondpic.jpg” />
<img src=”img/aREALLYbigpic.jpg” />
</div>

Or you can set each image to not display individually by creating a CSS class,

.preloadimage { display:none; }

and then assigning that class to each image you wish to preload,

<img src=”img/mypic.jpg” class=”preloadimage” />
<img src=”img/mypic2.jpg” class=”preloadimage” />
<img src=”img/aREALLYbigpic.jpg” class=”preloadimage” />

Which way is best?
Of the ways above, the second and third are much more elegant than the first.  Also, keeping in mind that there is a small minority with JavaScript disabled, the third way is perhaps the most versatile.

You may ask yourself, why would I care about preloading images to user without JavaScript enabled?  Well, preloading images also help if you know what page the user will load next.  It’ll make their web experience more seamless and more enjoyable!

Too Many Images to Preload?
If you have too many images to preload (especially many small images), consider loading a single large image containing all the smaller images stiched together and then use CSS to position the single large image with the appropriate offset to display only the portion of the image you want.

Known commonly as CSS Sprites, it’ll make a good topic for the next How-to :)

Popularity: 6% [?]

Comments 15 Comments »

Too many tabs?  Here is a neat little trick/hack I discovered that will let you open a Firefox window nested within a tab in an existing Firefox window.

The Trick

The trick is simple, simply enter this in your address bar

chrome://browser/content/browser.xul

Firefox nested inside FirefoxFor added convenience, you can bookmark this link and place it in your bookmark toolbar for quick access. This works because the Mozilla Gecko engine renders the entire UI (not just the webpage) in the same way.  So the UI is really just another thing for Firefox to render.

Advantages

  • This can really help you organize your tabs by grouping related tabs together in a single tab.
  • You can hide an entire browser session a few levels deep and if your boss walks by, simply switch to another tab at the top level.  Your tabs will be hidden and the only thing that will be displayed in the parent tab are the words “Mozilla Firefox” (most of the time).
  • Prank/confuse co-workers

Disadvantages

  • Having recursive Firefox windows open will reduce screen estate — especially if you have many toolbar add-ons.
  • Some shortcuts won’t work as expected.  For example, double clicking on the tab bar to open a new tab in a sub-window will open new tabs in the root (highest parent) window as well.
  • There are a few other quirks.  The address bar doesn’t update when you switch sub-tabs.  And the title in the tab gets updated weirdly.
  • Restoring a closed tab containing sub windows will (most often) not restore the tabs previously open.

This should work on older versions of Firefox but I only tested it on Firefox 3. Let me know if it works in Firefox 1.x or 2.x

Popularity: 9% [?]

Comments 26 Comments »

Omnistar LogoWhen I was asked by Omnistar to write a review about their software, Omnistar Mailer, I felt it would be a good opportunity to stress the importance of email marketing. Email marketing has been an vital part of many successful business over the last decade. I find that people new to the industry tend to shy away from this aspect of marketing and instead decide to focus on forms of Web 2.0 and viral marketing. Good old fashioned e-mail and newsletters has been proven to work over the years and should not be neglected! You can try maintaining a list of e-mails of your customers but you will soon realize that you need a more elegant and powerful solution. That’s where e-mail marketing software like Omnistar Mailer comes in.

Overview
Omnistar Mailer is a web based email marketing software that lets you easily manage and deploy newsletters and e-mail campaigns. Omnistar Mailer is built using PHP/MySQL and can be controlled entirely from the web. You can maintain lists of customers and create multiple e-mail campaigns to reach these customers. You can even create surveys that your customers can use to give feedback!

Omnistar Mailer AdminEase of Use
The first thing I tried was to use their “Getting Started Wizard“. It was fairly easy to set up a mailing list and I like how all the customization you’ll ever need to do can be done straight from the application without any hand coding. For example, a subscription form generally has two fields: name and e-mail. If you want to add more fields for the user to enter, their interface easily allows you to do just that.

Creating your actual e-mail that gets sent out to your customers is fairly straightforward as well since there is an integrated modular WYSIWYG editor. Omnistar Mailer comes with 9 HTML templates you can use to build your e-mail around. However, you may feel that finding someone to design the actual e-mail layout may be a better idea since the templates are rather simple and not that attractive (in my opinion).

If you’re ever confused about how to use a certain feature, they even have video/audio tutorials! That’s an A+ for effort right there.

Analytic Reports
Omnistar HTML TemplatePerhaps one of the most powerful differences between using an email management tool and maintaining a list of subscribers yourself are the reports that email management software generates. You can track which users are most engaged with your newsletter or what the click through rate is. This allows you to tweak and test different campaign settings to maximize click through rates.

Pricing
With all these features, it shouldn’t come as a shock that the software isn’t free — it costs $257 for a full single license. It does come with lifetime (and phone) support though! It may seem like a lot but at least they’re not charging a monthly subscription fee which seems to be the growing trend nowadays in web-based software.

Suggestions
My one main complaint are the limited number of HTML templates available. There are 9 of them but they simply appear to be slight modifications of 2 or 3 core ones. I would suggest designing the e-mail yourself instead of using one of the built in templates if you want something that looks. A secondary complaint is that some of the more advanced features like auto-responders require you to manually set a cron job. Not everyone may be comfortable doing this but I guess there is no easy way around it!

Conclusion
Omnistar Mailer is a very powerful and well built piece of software. If you need something to manage your mailing list or e-mail newsletters, then this is something you should definitely consider getting. At $257 it is an investment but with their 30-day no questions asked full-refund policy, you don’t have much to lose. Still in doubt? Try their online demo to judge the software for yourself.

P.S. Readers of this blog can receive 20% off the price of Omnistar Mailer by using coupon code: jonlee 

Popularity: 6% [?]

Comments 13 Comments »

Control vs. Escape

Here is a quick tip on my favorite text editor, Vim. Vim is very efficient at what it does once you get the hang of it. However, one of the bottlenecks for efficient Vim coders is the use of the Esc key to get out of Insert or Visual mode.

After typing a chunk of code, you have to move your fingers out of position to hit the Esc key and in a single editing session, this happens many times. Keeping your fingers in position is highly efficient and is also why I prefer the IBM Trackpoint over trackpads.

Recently, I experimented with using other keys as an alternative to Esc for moving out of insert and visual editing mode.

Default Alternative
Ctrl-[ (Control + left bracket) performs (essentially) the same function as Esc by default and doesn’t require any configuration so if you can get used to this combination, you can use it on any machine.

Custom Alternatives
You can also map your own key to perform the same function as Esc. For example, a popular choice is Alt-Spacebar. I use this for Launchy though so I’m sticking with Ctrl-[ myself. Here’s the code required to map Alt-Space to the Esc key.

inoremap <M-Space> <Esc>

Anyone have their own favorite alternative to the Esc key in Vim?

Popularity: 7% [?]

Comments 20 Comments »