Change is Good

Ok, I’m lazy as hell. That’s a good quality for a programmer, but not so good for other things. This was originally supposed to be published on 25 Oct 2010, exactly. So that’s when I’m going to set the publish date, even though it’s now 6 Nov 2010. Screw it.

Change is inevitable. Nothing ever stays the same. Change can either be for good or for bad, but it will always be.
— paraphrased from Coach Gothard (i think)

That photo is me 1 year ago at Mornington Crescent Tube Station.
the author, one year ago

This is me 3 weeks ago.
the author 3 week ago

I don’t even look like the same person. Lost 60 lbs since a year ago. Most of it within the last 6 months.

I could go on about non-tangible things like “belief” and “persistence” which have allowed me to change my life, but the truth is, it’s not that complicated:

1. I went vegan late March of this year (2010) – this is probably 80% of the change.
2. I also started working out consistently – this is another 15%.
3. I started Parkour – this is about 4.8%.
4. New sweet specs – this accounts for the final 0.2%.

Now, a word about Parkour: it rocks hard. Harder than rocks themselves, actually, which is pretty hard by any standard of measurement. It’s a physical activity that’s difficult to categorize. It’s not simply an activity, but a lifestyle (sort of how veganism isn’t just a diet, but also a lifestyle). But Parkour is a hardcore warrior lifestyle. An all-around physical and (more importantly) mental fitness. It’s not about flips and tricks (that’s called Freerunning), but efficiency. Efficiency of movement, of purpose. Always maintain the flow. Don’t stop the flow.

I don’t really know where I was going with this.

I’m in Quebec City, Canada right now. Which is a change from Bentonville, Arkansas, which is where I was one month ago. Anyway, the end.

Also, a happy birthday to my nephew James who turns 16 today. He won’t read this, probably ever, but that’s ok.

How to Find Cheap Airline Tickets

I hear a lot of people complaining about high ticket prices these days, especially with regard to international flights. Cheap airfare isn’t as hard to find as many think it is, if you know where to look. I can usually find a price lower than most people find by following some basic guidelines.

Basic Stuff

Go to Mobissimo.com & enter your departure/destination airports (or city/country). This site is my 1st stop when checking ticket prices and I haven’t been able to find less expensive tickets anywhere else.

Pick a date that is a Tuesday or Wednesday. It will be more expensive if it’s around Christmas or Thanksgiving. If you have to fly around Christmastime, after the New Year is better.

That’s it. Not that hard, really. You might be surprised at how low some ticket prices can be.

Advanced Techniques

Try putting in different departure airports that are close by (e.g. Los Angeles instead of Las Vegas). Also try flying to a (large) city that’s close to your destination (e.g. Brussels instead of Amsterdam). This can sometimes save hundreds of dollars. Do this with different websites as well. Research all the different options and then choose the best combination of convenience & price. Also, combine this with the next technique.

Technical Stuff (Here Be Dragons)

This one involves cookies. Not the kind you eat, the kind you delete. Clear. Whatever.

Clear your cookies periodically when using the mobissimo site. Why? Because you’ll notice after a day or so that the price for the exact same flight will start to creep up.

I believe the psychology of doing this is to get the person to purchase the ticket soon, because if they don’t the price will continue to rise.

This is what happened to me when I was researching the cheapest flight to Madrid last year. My price rose a good $50 or so (maybe more, can’t remember exactly) after about a day.

I ran a new search with the same parameters (same date of departure, one-way, economy class), found the same flight and the price displayed was still the higher price.

Then I cleared my cookies and re-ran (again… re-re-ran?) the query, and the initial low price was displayed. So yeah, they get tricksy with cookies and get more of your monies that way. I don’t think it’s just mobissimo, I’m sure all sites do it. Sorry if this last paragraph didn’t make sense, it did to me.

So… that’s it. Go save a lot of money on airline tickets.

photo credit

Lost in Translation

I was reading an article in Spanish on an Argentine news website. The article is titled “The 10 Things a Mate Drinker Should Never Do”, and the original article can be found here (Spanish): http://www.lanacion.com.ar/nota.asp?nota_id=1311281.

Point number 9 used the word “ajeno”, a word I wasn’t familiar with. I looked it up on google translate & it just said “alien”, but many times it’s more accurate to enter an entire phrase to translate so as to get the context. The translation of certain words will sometimes change based on the context.

So when I entered “Nunca chupar el mate ajeno.”, the translation it spit out almost made me spit out my food. I’ve just decided to include the screen shots, because you just can’t make this stuff up.

Excerpt from Original Article
Excerpt from Original Article

and… the translation. Thanks, Google. 😉

Google's Excellent Translation
Google's Excellent Translation

Why you should NOT use short tags in PHP

Where’s My Damn Emulator?

So I was trying to find a good SNES emulator for Mac. I read somewhere that Snes9x works for OSX, so I went to the site and then the downloads page to find one to… well, to download. The page started out “Here is a list of all the known available mirrors for Snes9x…”, but then it was an empty list.

I thought of two possibilities. Either the list contains exactly zero available mirrors, or something is wrong with the page. It struck me as rather odd that the site would put up an empty list of download mirrors for its own product, so I did some investigative research to check out possibility #2.

Note that the site is built in PHP. Here’s the non-hyperlinked URL for the downloads page: http://www.snes9x.com/downloads.php

Here’s a snippet from the page source:

Here is a list of all the known available mirrors for Snes9x. If a mirror is
not listed on this page, it either does not exist or the web peon doesn't know it exists.



Notice the foreach loop and the stuff? That’s the culprit.

PHP – A Short Word on Tags

PHP “tags” are opening and closing bits of code that let the machine know when text should be evaluated as PHP code, and when it’s not code (e.g. just “normal” text).

This is a standard opening PHP tag:

...and this is a closing tag:
?>

The idea is that everything in between the opening & closing tags is evaluated as PHP code & executed (in this case by the web server).

Also, note that when viewing a site built on PHP, you will never be able to see the PHP code! The web server will execute that code, then spit out the results to your screen. The results are what you see, only after the code is executed. Enter short tags...

Short Tags Suck Ass and Should Die

Remember the standard opening tag in PHP? Well, one day some genius came along and decided that he could save a whole 3 fucking keystrokes by just removing the letters "php", so the optional "short tag" was invented. Now, "<?php" could be shortened to just "<?". Absolute genius.

Then he decided to improve upon that and add the "echo shortcut", which is just the short opening tag followed by an equals sign. It's used like the echo function.

Here's the standard opening PHP tag, echo statement, and closing tag:

... and for comparison, the echo shortcut:

The problem is, not all servers support PHP short tags. So code that's working fine on one server might break when moved or copied to another server. Or maybe the sysadmin decides to disable short tags for whatever reason. Or a new version of PHP is installed.

Then crap like the above happens, and Nathan doesn't get his list of download mirrors for Snes9x, and the world is a bit worse of a place in general. Don't be an asshole. Don't use short tags.

Also, I've written a script (in Perl) called php_fixxer.pl. If you have PHP code with short tags, please backup your code, then download this & run it on all your code. It's called "fixxer" because if it has short tags, then it's as good as broken.

Oh, by the way: I'm not responsible for anything you screw up with this script. I told you to back up your code anyway. I do, however, accept full responsibility for any and all productive enhancements made possible by use of it.

Meanwhile...

Oh yeah, back to the above site... the page pretty much works, just one part of it is broken. Unfortunately, it's the part that's the reason for the existence of the page. Since this is the only PHP code that I am able to see from my browser {see note above if that doesn't make sense}, that probably means:

1) The whole file doesn't make use of short tags, just some of it.
and
2) If they convert these to standard PHP tags (no shortcuts), then this page should start working again, and I will be able to see my download mirror URLs.