2009
11.15

Looking back at the women I’ve been with in my life, I am faced with a myriad of emotions. Love and hate, hope and hopelessness. They were all interesting in their own unique way.

All of my exes managed to find that piece of elusive treasure that I’ve searched long and hard for – a happy ending. Maybe it’s my belief that no two people can ever be happy around each other forever. Maybe it is something else entirely.

The girls I left, as well as the girl that left me, are all grown women now. They all have very intricate and deep relationships with that special someone, while some of them have even manufactured their own families.

Am I too damaged and bruised from the past? Maybe I’ve just got a wild and free spirit that doesn’t want to be tamed? Discussion for another day.

For now I’m looking at my life through the eyes of a writer. When I’m done with this little personal escape into memory and emotion, I’m going to put out this cigarette and pick up the pen.

2009
11.10

The Problem

Last blog, I redesigned the standard ajax library to allow for simultaneous open connections. This time, I tackled something a little more navigation bound.

Ajax is an amazing little compilation of code that has the capability of reloading only parts of a page that have changed.

source: Ajax, Rewritten!, 11/04/2009

Keep that quote in mind for a moment, while I explain some behavioral methods in web browsing.

Let’s say that you are on an office supply site with a few links you are interested in: “View Cart” and “Checkout”. You can’t remember what is in your cart, so you click the view cart link. While the page is loading, you remember what you had and change your mind, so you then click the checkout link. Your browser directs the page to the checkout link. Why? Whenever you click a link that tells your browser to load a page, it ignores all previous link clicks.

Now let’s get to the behavior of Ajax. Ajax by nature does not tell the browser to load a new page, it only reloads parts of it. The side effect is that if you are on an Ajax powered website, behavior is different. Let’s say you click on a link to Google from the Ajax page, and then change your mind and then click on the page’s home link. What happens? Because there is only one real page request (to Google) it will continue loading Google’s page.

The Fix

Using the JavaScript event object window.onbeforeunload, we can tell the ajax library that we are in the middle of leaving the page (clicking a link to another page). We can then tell each page request sent through ajax library to check if we are in the middle of leaving the current page. If we are, a stop command is issued to the browser (IE plays differently, so some creative code was required). We don’t have to go back and tell the library that the page is no longer in the middle of leaving, because leaving the page will unload the page’s variables by default.

The Effect

With the changes to the library in place, things function as they should. If we click a link to this blog, and then change our mind and click on the ajax powered home page, the original link request is halted. Hurray coding!

2009
11.04

Ajax, Rewritten!

Ajax is an amazing little compilation of code that has the capability of reloading only parts of a page that have changed. It does this by making single indices into the html object of the web browser. Notice the emphasis on single. The widely distributed version of the code has the one drawback that you can only load content sequentially, one by one. On my page, I have two areas of content that are bound to Ajax loading (as seen below):

Screenshot

While I could have just accepted the limits of standard Ajax protocol and moved on, I am a bit of a perfectionist. I said “No! This is not going to work. Things must change!”. Equipped with a Dr. Pepper and a few hours to kill, I went to work.

I tried a couple of different methods, with most of them either getting confused with simultaneous requests or failing outright. The method I finally constructed involved the use of arrays. By adding each request to an array alongside the details of that request, I could manage them without crossing their signals.

And so now we have a completely rewritten Ajax library, capable of handling as many concurrent requests as the hardware and software have the room for. I need another Dr. Pepper.

2009
11.03

You may have not already known that I am a professional geek. If you didn’t know, then perhaps you should get to know your friends better!

I’ve been using a Linksys WRT54G router for the home network:

 wrt54gs

It’s a few years old by now but it’s still got a long life ahead of it! One thing that sets it apart from the crowd is that it isn’t Linksys running under it’s hood. The guys at dd-wrt.com have been cooking up custom firmware for awhile, and it just so happens that the WRT54G model router is one of the ones they support.

With a little bit of patience and a pinch of technical know how, I am now running a commercial grade router interface from within the confines of a Linksys entry level router.

Good times, indeed.

2009
11.02

To help me blog more efficiently and effectively, I started using the live writer application available through the windows live essentials package. Not sure how this is going to work, but if you see this then I assume it worked just fine!

 

Now to get back to my whole being sick thing.

2009
11.02

So today is my birthday. I am now 26 years old.

It seems that my birthday present to myself is having a relapse of the West Nile virus or something. Hurray for being unable to sleep and not being able to work and pay for shiny things!

:(

2009
11.02

I managed to get my ajax configuration working in the new website environment. You can see it in action by heading over to the beta page and clicking the various links you find there.

Now to start working on the stub system idea I have in mind. More on that little cryptic tidbit later ;]

2009
11.01

Using a tutorial I found here, I managed to upgrade from 6.1 to 6.5 on my AT&T Tilt. The general layout is much more finger-friendly, and requires little to no use of the stylus at all!

Sometimes it pays to be a technological beast :)

New Home Screen