Friday, July 16, 2010

Browser Wars!

Pic Stolen From WebAppers

It seems to me that with all the talk about HTML5 and Web 2.0 we would have a little more standardization from one browser to the next. Somehow this is not the case. I can't quite figure out how pages can look so drastically different from one browser to the next. I do some Web development on occasion and I must say that even for a flat site with little going on, it can be a real pain making sure that it the page displays properly on all of these different browsers.

I have 5 different browsers running on my machine right now and 3 of them are terrible! I am going to go through and review the 5 browsers that I am currently running on my Windows system (My Linux machines are all running FireFox and Chrome. But that's a story for a later time). Ranked from worst to first, lets start a browser war:

5) Internet Explorer 8:
I really don't want to waste too much time here (no, really I don't). This is a poor excuse for a browser. It's slow, it's ugly, and there is no HTML5 support. I really only keep it around to test sites and make sure they display properly in IE and because there are some random sites that for some reason still only work in IE (you know who you are and if I find you I am going to brutally persuade you to change your Web programming practices with a baseball bat!!). If you are still using IE as your main browser...STOP IT! STOP IT RIGHT NOW!!!

4) Safari 5:
Before all the Mac Heads go crazy on me, let me remind you that this is rated purely on how the browsers preform on a Windows system. We all know about how awesome Safari is on the Mac and how it's the greatest piece of software to come along in the last 20 years (I really wish there was a sarcasm font). What most of us don't know is that, like it's ITunes counterpart, Safari's performance on Windows is poor at best. It doesn't have the speed of Opera or Chrome. It doesn't have the extensions and features of FireFox. In fact the only thing it has going for it is that it isn't IE. Safari only exists on my machine because ITunes keeps installing it with every update. I can't even use it to reliably test Safari's ability to render pages because it works and looks differently on a Mac, so why should I bother testing a browser/OS combination that no one uses?

3) Opera 10.6:
I like Opera, they are like the little engine that could, but I think that they really need to rethink a few things. I talked about Opera Unite in the past and I was excited about it. But it never worked properly and when it was working, it was so slow it was unusable. I love Opera mini for my Blackberry. In fact, I can't live without it. Perhaps Opera should spend more time and money on it's mobile browser. According to some recent articles Opera 10.6 has overtaken Google Chrome in speed tests and benchmarks. This has gotten some Opera fans in a tizzy about their favorite browser:

I have never been a fan of benchmark tests or any "Lab Tests" that are run on hardware and software. I prefer to rely on my own personal "real use" tests. My general use test showed that overall (at least for the sites I use most) Chrome still performed faster. I would have bumped Opera up to number two, but FireFox just has too many features/extensions that I use every day, that I just don't have with Opera.

For a long time FireFox was the only browser I would use. It has an extension for just about anything you could want to do on the Internet! It runs reasonably fast and renders most pages accurately. It is in line with many HTML5 features and could easily be the average users default browser. Just not mine. FireFox still takes way too long to open (before you get started, the default install of 3.6 with no extensions loads slowly) and the more extensions you add, the slower it gets! It still leaks memory like a sieve! If you leave a few tabs open and walk away from your computer to say, I don't know, go to lunch, you will most likely have to reboot your computer when you get back because your RAM will be all chewed up! The memory leaks have gotten better with each edition and I suppose that having the save & quit option allows you to close FireFox and pick it up again later. It's just annoying enough to keep me from using it as my number one.

At number one  is Google Chrome. It is the fastest browser available for the Windows operating system. I prefer speed and reliability above all else. I have chose Chrome as my default browser because it does almost everything faster than the other browsers available. I would like the ability to block ads and a FireFTP extension would be AWESOME! I will continue to use FireFox for a few things here and there (like FTP access), but Chrome gets my overall seal of approval. There are a lot of developer functions built into Chrome as well. The ability to right-click and select Inspect Element on almost anything is a huge time saver for me. It allows you to quickly go right to the source code for any given object in a page. The Developer menu gives you even more options like the JavaScript console and the Developer's Tools panel. There is even a task manager built in that lets you see where the browser resources are going. Besides the time I am saving with the browser's overall speed the amount of time I save by being able to track and look at all the resources of a given page in one location is an amazing gift of productivity.

What's your browser of choice?

Tuesday, July 6, 2010

Changes Changes

Over the past few months there has been some changes to Blogger's format and I was unable to update my blog. I recently had the time to convert all the old entries to the new format and forward all the old links to the new Blogger location. Sorry about the delay. New posts coming soon. Until then enjoy the new layout :)

Friday, February 5, 2010

Learning Emacs Part 1

As I mentioned in my last post, January and February were to be devoted to getting to know Emacs better.

After reading "Tip 22: Use a Single Editor Well. Choose an editor, know it thoroughly, and use it for all editing tasks" in The Pragmatic Programmer: From Journeyman to Master, I decided that I would go ahead with Emacs because I have used it some in the past and it would be available in both Linux and Windows, so I really could use it for all of my editing tasks. Also, I am a supporter of GNU and the FSF, so I figured I would give Emacs the first shot at being my all-purpose editor.

The first thing I learned about Emacs is that there is most likely nothing you can't do in Emacs! The second thing I learned is that with great power comes great complexity. Using Emacs is not something that I would call intuitive or even user friendly. I also don't think that it was designed to be so. It is really the single most powerful tool I have ever come across in my computing career.

Since I was using Ubuntu 9.04, the installation couldn't have been easier. I went to the terminal and typed:
sudo apt-get install emacs23
After the download/installation completed, I just typed (also in the terminal) :
This brought up the main screen for Emacs. Installation successful! I also wanted to have it available to me for when I had to boot to my Windows partition as well, so I rebooted and began the download for Windows. After I downloaded the .zip file, I unpacked it and in the /bin directory is emacs.exe.

Using Emacs
When you first load Emacs and are greeted with the main screen, there are two links. The first is the Emacs Tutorial and the second is the guided tour. I went through the tutorial and learned quite a few keyboard shortcuts. I really enjoy not having to take my hands off of the keyboard in order to use a mouse to move around. The most useful shortcut is M-f and M-b (M stands for the ALT key, so M-f means hold down the ALT key while pressing f). This moves the cursor either forward (f) one word or backward (b) one word. I have been using Emacs now for just over a month and I can tell you that I now hate all editors that don't do this!!! In fact, I installed Emacs on my work machine as well (Windows based, unfortunately). I can no longer bare to use a mouse or hold down the arrow keys just to move a cursor around!

I will admit that I still find myself looking at the refcard for certain key combinations and that the learning curve is steep, I have already noticed a significant increase in productivity. I just recently discovered Org-mode (M-x org-mode). Which lets you do all sorts of amazing things and gives me more reasons to use Emacs. I have also started looking into Emcaspeak, which apparently lets you tweet from Emacs on top of other things. There is also a Blogger add-on that will let me write and post my posts from Emacs! Hopefully my next post will be written in and posted through Emacs.

Tuesday, February 2, 2010

6 Things I Want to Learn This Year

In the last few years I have found that software developers generally come in only three flavors:

1)The Rockstar:
In this case, I am not talking about the standard definition, I'm talking about the programmers who get by on talent alone. They come to a job and they know about as much as they are going to know. They may pick up a few tricks here and there, but they are good enough that they don't have to work at it.

2)The Jazz Man:
The Jazz man may not have been born with the most talent, but they never let that stop them. They continually work on their craft and try to be creative and inventive in everything they do.

3)The Pop Singer:
Everything they write is terrible and full of bugs. The UI may look nice on the outside, but on the inside, it's mayhem and confusion. This code will be impossible to maintain and they will usually only be around for a short period of time.

Since, I like to think of myself as a Jazz Man (programatically speaking), I decided that this year I was going to find 6 ways to become a better programmer. As a way of helping me along, I am going to blog about them as well. Along the way I will pass along the Websites I found useful (or not useful), the books I read, and some examples of the work I did.

While reading The Pragmatic Programmer , I came across a few ideas as to how I can become a better programmer and I decided that, every two months, I would actively try to take my knowledge of a subject to the next level. Here is my List:

January & February: Emacs
March & April: Bash Scripting
May & June :The LISP Programming Language
July & August : Regular Expressions
September & October : The C Programming Language
November & December : JavaScript

These are all tools/languages/ideas if which I have at least a fundamental knowledge. I am going to attempt to delve deeper and increase my comfortability with them in order to become a faster, more efficient programmer. This shouldn't be that difficult for me because I really do enjoy programming and I think that this will be a fun way to also help me reduce my addiction to TV!
Join me if you like, follow along and of course feel free to suggest some alternative methods/books/sites etc.