Archive for November, 2009

List of Online Calculators

November 14th, 2009

I’ve decided to compile a list of web-based calculators to better help me understand the online calculator market. I hope also that it will help everyone find the best calculator for their needs. I aim to make it as comprehensive and unbiased as possible. I’ll be adding to it as time goes by, but if you have a suggestion, please let me know. Here goes:

General Calculators

This section lists calculators which offer general calculation capabilities. These allow you to simply type any calculation into a free-form text box which they then try to answer.

Calcatraz – My free online calculator offering scientific, unit and currency calculations. Shows workings and a history of previous calculations.

CalculateForFree multiple functions – A calculator script with many functions. This calculator includes different measures conversion, rule of three, temperature conversion and other formulas.

Google calculator – Google will provide answers to calculations entered into the main search box.

Instacalc - The fast, easy shareable online calculator.

Wolfram|alpha – A computational knowledge engine. Enter a query and it uses its built-in algorithms and a growing collection of data to compute the answer.

Task-Specific Calculators

This section is for calculators which provide one specific function (e.g. scientific calculator, tax calculator, etc).

CalculateForFree -Free calculators for home, work and school. The main page offers a basic calculator with links to a wide range of specific calculators including travel, poker odds and global warming calculators.

Calculator.com – Another site with a number of specific calculators, including mortgage, math, loan, finance, scientific, health & sports calculators.

Calculator.net – Claiming to be the richest collection of free online calculators, it offers a large number of specific calculators including mortgage and loan calculators and a number sequence calculator.

Math.com – A collection of specific calculators including trigonometry, probability and finance calculators.

Well that’s it! If you know of a web-based calculator which isn’t on this list, please let me know.

The fast, easy and shareable online calculator.

The qualities of a great web application

November 8th, 2009
The qualities of a great web application
I aim to make Calcatraz into a great web application. To do so effectively it is important to understand the qualities a great web application exhibits. So what are they? Here are a few things I have thought of:
1. Punctual
A web application should be quick: quick to load, quick to respond to user input, etc. However, I don’t think that calling the required quality ’speed’ would be entirely accurate. There are instances when things can be too fast – an error message not displayed for long enough, for example. In general, events should happen at the appropriate time. If the user does not need a time lag, then there should not be one. I think the correct word is ‘punctual’ – the app should do things at, rather than before or after, the right time.
2. Minimal
A web application should be minimal. Not in the sense of leaving out important features, but more in the sense of containing no unnecessary parts. Anything which does not perform a necessary function should usually be removed. Where several parts perform similar functions they should be generated by the same code.
3. Magical
There is a quote ‘any sufficiently advanced technology will be indistinguishable from magic’. I think this applies to great web apps. Components of the application should be worked on and crafted to such an extent that it is no longer possible for the user to readily comprehend the underlying process.
4. Intuitive
Use of the application should be easy. Even complex parts of the application should be straight-forward to use without prior knowledge. This requires not just simplicity, but an understanding of human psychology. By understanding the mind and it’s quirks, an experience can be tailored to it.
5. Unlimited
A great web app will be unlimited in the sense that users do not hit upon limits while making use of it. That doesn’t mean the app can do anything in the world, but it does mean that it can do anything in its domain. This requires general mechanisms for extending the application upon its lines of functionality. An example is Google Analytics, while it doesn’t capture everything you need to know about your app, it can be readily extended to do so.
6. Responsive
An application should be the product of user feedback. While it should not necessarily address every bit of feedback (as good for one user may be bad for another), it should be shaped and moulded into the form and function which delivers the most value to the most users. It should continue to evolve over time with changing needs.
7. Predictive
As well as just responding to user requirements, a great application will predicted future requirements. New functionality will appear before a user realises they need it. Only genuinely useful improvements will be made – those that enhance and improve the user’s experience.
8. Avaliable
The application will be on-hand wherever the user requires it. It should be unobtrusive, but always available and easily invoked.

I aim to make Calcatraz into a great web application. To do so effectively it is important to understand the qualities a great web application exhibits. So what are they? Here are a few things I have thought of:

Punctual

A web application should be quick: quick to load, quick to respond to user input, etc. However, I don’t think that calling the required quality ’speed’ would be entirely accurate. There are instances when things can be too fast – an error message not displayed for long enough, for example. In general, events should happen at the appropriate time. If the user does not need a time lag, then there should not be one. I think the correct word is ‘punctual’ – the app should do things at, rather than before or after, the right time.

Example: Not an web app as such, but Google Chrome is exemplary in this area – compare it to Firefox or IE to see the difference.

Minimal

A web application should be minimal. Not in the sense of leaving out important features, but more in the sense of containing no unnecessary parts. Anything which does not perform a necessary function should usually be removed. Where several parts perform similar functions they should be generated by the same code.

Example: The 37 Signals guys do this really well. See BaseCamp for instance.

Magical

There is a quote ‘any sufficiently advanced technology will be indistinguishable from magic’. I think this applies to great web apps. Components of the application should be worked on and crafted to such an extent that it is no longer possible for the user to readily comprehend the underlying process. Alternatively it should be surprising – as in it offers something obvious but that no one even conceived as being possible.

Example: PHPAnywhere – coding is suddenly mobile.

Intuitive

Use of the application should be easy. Even complex parts of the application should be straight-forward to use without prior knowledge. This requires not just simplicity, but an understanding of human psychology. By understanding the mind and it’s quirks, an experience can be tailored to it.

Unlimited

A great web app will be unlimited in the sense that users do not hit upon limits while making use of it. That doesn’t mean the app can do anything in the world, but it does mean that it can do anything in its domain. This requires general mechanisms for extending the application upon its lines of functionality. An example is Google Analytics, while it doesn’t capture everything you need to know about your app, it can be readily extended to do so.

Example: Twitter – while the app is incredibly simple in itself, it is being put to an incredibly wide range of uses.

Responsive

An application should be the product of user feedback. While it should not necessarily address every bit of feedback (as good for one user may be bad for another), it should be shaped and moulded into the form and function which delivers the most value to the most users. It should continue to evolve over time with changing needs.

Predictive

As well as just responding to user requirements, a great application will predicted future requirements. New functionality will appear before a user realises they need it. Only genuinely useful improvements will be made – those that enhance and improve the user’s experience.

Available

The application will be on-hand wherever the user requires it. It should be unobtrusive, but always available and easily invoked.

New User Interface Uploaded

November 5th, 2009

As promised in my last post, I’ve now uploaded the latest version of Calcatraz to the live site. The main feature is a new, hopefully more intuitive and consistent user interface. There are also a number of behind the scenes improvements such as general code tidy-ups. One improvement I’m particularly happy with is the integration of javascript and CSS minification into my build process. What this means is that whenever I prepare a new version of the calculator to be uploaded, a bit of code runs automatically reducing the size of my javascript and CSS files. As a result, load times should be slightly reduced as there is now less to be downloaded (which will hopefully further help with the bounce rate). It’s not going to have a huge impact on speed, but by constantly exploiting such opportunities for optimisation the result should be an overall leaner and quicker calculator. If you’re interested in learning more about minification, then check out YUI Compressor from Yahoo! which is the tool I use to perform the minification, and which performs simply and effectively.

I’ll be doing some further refinements on the user interface in the near future to further improve it and in particular clean up the history tab which I’m still not entirely happy with. But I wanted to get the new interface up now to see how well it is received and to identify any sticking points.

You can check out the new interface in action on the main site: www.calcatraz.com.

A few changes on the way

November 1st, 2009

Just a quick update on a few of the things I’ve been working on recently:

  • A new user interface – the old Calcatraz interface has two main pages: the home page with a single calculation entry box, and the main calculation page which shows a history of calculations and other information. One thing I found was that the transition from the home page to the more cluttered calculation page was confusing to users. As a result I’ve been developing a new user interface which has a single screen (which is sort of half-way between the two old pages). This hides less commonly used features and removes the ’surprise’ element which used to arise when a user was sent to the second page. Hopefully this will make the calculator more user-friendly and consistent to use. It also has the added benefit of reducing the amount of code and effort from that required to maintain two separate pages.
  • A static blog. As a small startup, time is a precious commodity. I can’t really justify the time cost of maintaining an up-to-date wordpress installation. To solve the problem once and for all I”m creating some code which copies each html page produced by the blog. The result is a static html version of the blog. It has a number of benefits. First is that security problems are virtually eliminated as the only thing that will be placed on the webserver is static html. The second is that, as static html, pages will load more quickly than interpreted code. This will provide users with a better user experience. The main downside is that I will have to disable comments. However, this is a trade-off I’m willing to make as this site is mainly informational. I may look at reintroducing comments in some other form at a later time.
  • General optimisations. One of my main aims for the calculator is that it should be fast. To this end I’ve been implementing a number of optimisations. For example I’ve modified my build process to minify javascript and css (that is, remove unnecessary comments and characters, to reduce size and therefore load time). This will be applied to the live site as soon as I finish my changes to the user interface and perform a site update.
  • Core algorithm updates. I’ve been making a number of changes to the core algorithms to provide results more quickly. I hope to be able to share these details at some point in the future.

So while there hasn’t been much in the way of observable changes to the site, there has been a lot going on in the background. When I finish up these loose ends then I’ll update the live site. I hope you like the improvements.