Sep
17
2008
0

Why Web Apps Rule

The Internets

The Internets

I’m not exactly a neutral party when it comes to “web apps” (short for “web application”) versus their downloadable-installable cousins.  This website, its articles, and blog posts are basically just packaging for my own suite of free web apps, workers’ compensation calculators.

For the purposes of this post, I’m restricting the definition of “web app” to those programming applications which run from inside an internet web browser and require an internet connection to operate.  I’m excluding those hybrid web apps that require plugins to be installed (think flash or adobe multimedia banner ads).  While web apps have inherent…

Weaknesses

  1. Web browser. Some require a particular type or version of a web browser.
  2. Internet Connection. They won’t work without one.  If you lose your internet connection, you’ve just become isolated from your information and the program.
  3. Form. Sometimes the program will look different depending upon the type or version of web browser.
  4. Function. Sometimes the program will act slightly differently depending upon the type or version of web browser.

… there are also undeniable…

Consumer Benefits

  1. Portability. Web apps allow you to access your information from the internet.
  2. Independence. Web apps allow you to access your information from any computer.
  3. User Friendly. Nothing to download, install, or maintain.
  4. Seamless. These days web apps use AJAX so that your computer doesn’t need to reload the page to show you new information.  The result are web based programs that look and act as if the program was installed on your computer.
  5. Braindead Backups. Since all information is stored on the web app server, a browser crash doesn’t have to mean the end of the world.  No need to do anything.
  6. Updates. You immediately benefit from web app server program updates without needing to do anything.
  7. Compatibility. Most web apps can’t interfere with other programs on your computer.
  8. IT Security. With nothing to install, your IT professionals don’t need to worry about what you’ve got installed on your computer.
Sep
02
2008
1

Homemade WordPress 2.6+ Plugins

If you’re at all curious, I’ve written about four eight of the plugins for this website.  WordPress was specifically written to allow users to create their own plugins.  A “plugin” is a little piece of programming code that will modify how a program behaves.

I’ll discuss them later on, but for the ravenously curious my plugins include:

  • A plugin that creates rounded corners throughout the website
  • A plugin that creates the “accordion” menu effect on the Links and Calculator pages
  • A plugin that adds AJAX effects throughout the website
  • A plugin that creates a “gray-out” screen over certain pages when you’re not logged in or a registered user
  • A plugin that redirects a user to the calculator page when they log in
  • A plugin that changes the look and operation of the registration page to be more user friendly
  • A plugin that makes lots of little tweaks to the site to make it look and act better (I’m constantly adding to this one)
  • A plugin that allows users to sign up for automatically recurring subscriptions using a credit card or their PayPal account (I’m still working to make this more user friendly)
Aug
25
2008
1

Inside the Calculators – Part IV – MySQL

I recently gave a brief overview of my permanent disability and workers’ compensation benefit calculators. In that post I wrote a little bit about how my online benefits calculators work. Since then I’ve posted about my use of javascript, PHP, and AJAX in creating these permanent disability and permanent impairment calculators.

As I mentioned in the prior post in this series, my first few versions of this website and its workers’ compensation calculators did not use MySQL.  The initial versions of this site only saved information – which meant I only had to use PHP to open a file on the server, add an extra line of information, and then close the file.  This had several problems:

  1. Once my website became more popular, it was not uncommon to have more than one user online.  That meant the server tried to open the file – but couldn’t since it was already open.  This caused the program to freak out.
  2. In order to view just a little bit of information, I had to download the entire file.  This got crazy pretty quickly.
  3. Each time the file got larger, it would take slightly longer to open, append with more information, and close.

MySQL is an incredible tool for storing, organizing, and retrieving a large amount of data.   Like PHP, it is also open-source.  This means it is:

  • Well supported.  There are lots of online resources and books to help you learn.
  • Secure.  Lots of people spend a lot of time thinking of ways to prevent security vulnerabilities.
  • Customizable.  You can configure or even rewrite it, if you wish.
  • Interoperability.  You can save it to just about any format – including MS Excel spreadsheets.
  • Free.  Unlike Oracle or any of the MS alternatives, it is totally free.

So, why did I avoid MySQL?  I didn’t want to have to learn a whole new programming language.  I had to learn how to set up a database, tables within the database, how to search for information in a table, how to put information into a table, and how to change information which was already in a table.  There was a lot of trial and error.  I ended up doing some pretty cool things in the process of learning this language.  Some examples:

  • Teaching others some of the basics of MySQL
  • Writing a program for cataloging books
  • Writing several programs which performed various calculations to track invoices, billings, etc
  • Setting up several blogs/websites

The end result of learning this language is a more interactive website.  One of the last incarnations of this site was a version that would show different color schemes, advertisers, and messages depending upon the user.  All of this was made possible by large amounts of data stored in MySQL.

Thus ends my technical overview of my workers’ compensation permanent disability calculators!  If you have any questions, please feel free to email me or leave a comment below!

Aug
18
2008
2

Inside the Calculators – Part III – AJAX

I recently gave a brief overview of my permanent disability and workers’ compensation benefit calculators. In that post I wrote a little bit about how my online benefits calculators work. Since then I’ve posted about my use of javascript and PHP in creating these permanent disability and permanent impairment calculators.

As I’ve mentioned in those prior posts, both javascript and PHP have inherent downsides. My very first attempt at online benefits calculators using javascript and ASP actually suffered from all of the downsides of javascript and PHP. Those first calculators used tons of user’s computers’ resources, bandwidth, and server power. However, learning more about AJAX enabled me to build a set of calculators which benefited from the strengths of javascript and PHP while minimizing, if not eliminating, their weaknesses.

The acronym “AJAX” refers to “asynchronous javascript and XML” – a collection of other technologies which allow a webpage to communicate with a web server without requiring an entire page download.

Example 1: A calculator without AJAX calculating “6 x 7” would send information to be calculated to the web server. The web server would then respond by giving you an entirely new page with the answer, “42”. However, in order to download that answer you would need to download a whole new page – and all the images, text, and code associated with it. Even a normal web page could be between 30,000 and 300,000 bytes in size.1

Example 2: A calculator with AJAX calculating “6 x 7” would send information to be calculated to the web server. The web server would then respond by sending back just the answer, “42”. This would be 2 bytes.

If my calculators needed to download of 300 kilobytes for every single operation, a simple calculation could take about 30 seconds on dialup and a full 1 second on broadband. Although 1 second doesn’t seem like a long time – it is in the internet age. Most of the calculations on this site take approximately .500 seconds using a broadband connection. I would guess that about 90% of that time is due to network latency/network lag – which wouldn’t be much different for a dialup connection.

For the first few months after the launch of this website, it did not use a MySQL database. I actually went to some pretty ridiculous extremes to not have to learn a new programming language. I eventually gave in, learned how to use MySQL and am a better programmer for it.

Next up, MySQL!

  1. A download of “www.google.com” was approximately 30,000 bytes and a download of “www.yahoo.com” was approximately 300,000 bytes. []
Aug
11
2008
3

Inside the Calculators – Part II – PHP

I recently gave a brief overview of my permanent disability and workers’ compensation benefit calculators. In that post I wrote a little bit about how my online benefits calculators work. My last post in this series was about how and why these permanent disability and workers’ compensation benefits calculators use javascript.

I had tried Microsoft’s ASP (active server pages) in experimenting with a prior version of my permanent impairment calculators, and while functional, the coding was a complete mess since I didn’t fully understand what I was doing. To make matters worse, the only manuals on ASP I could find gave examples using VBScript – which is MS’s version of javascript.1

Just over a year ago a friend of mine encouraged me to try PHP. (Thanks Johnny!) Its syntax, the way in which you write code, is very similar to javascript and was fairly easy to learn.

Unlike javascript, PHP is run only on the web server. There are a lot of benefits to moving all of the calculations from being performed by a user’s computer to my web server:

  • Uniformity. All calculations will always be performed by the web server in the same exact way – irrespective of the user’s computer.
  • Speed. Since all calculations are performed on the web server, the user’s computer doesn’t need to do any number crunching.
  • Protection. All of the formulas, tables, and magical incantations used to generate the calculations are kept only on the web server.

But, PHP isn’t without its downsides:

  • PHP is being used to perform a calculation, even when javascript would be faster. Javascript takes longer to crunch the answer, but you have to “wait” for PHP to send a request to the server and wait for the answer.2
  • A pure PHP calculator would require the user to send the web server the entire page and wait for a whole new page to load. Every calculation would take a full second or more using a pure PHP calculator.3
  • When PHP is used to perform handle all calculations, there is more of a strain on the web server itself.

Using AJAX (more on this later) to create workers’ compensation benefits calculators has allowed me to take advantage of all of the strengths of javascript and PHP and minimize the negatives of these technologies.

Next up, AJAX!

  1. Can’t we all just get along? []
  2. I say “faster,” but we’re talking about the difference between 10 milliseconds for javascript to calculate the answer and waiting 400 milliseconds for the server to return the answer. []
  3. A second might not seem like a long time – but it is when you’re using a computer. I’d bet that if these calculators took 1 second for everything (such as finding an occupational code or work restriction) no one would use them. []

Use of this site constitutes agreement to its Terms of Use, Privacy Policy and Legal Disclaimer.
Copyright 2007 - 2021 - PDRater – PD calculators and Jay Shergill
Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes