Well I’m sure that you, my fine readers, are ecstatic to hear that I’ve decided to come out of my long blogging retirement to put my pen to the oh-so-interesting topic of my recent jaunt through the friendly skies from Buffalo to New York City.
We start our tale with a trip through the security line. I was flying with–in no particular order–my wife, dad, stepmom and baby sister. Boarding passes in hand we nervously complied with all the pomp and circumstance about the inspection of our bodies and belongings. A routine bag inspection went askew when a sealed plastic reusable ice pack was uncovered and identified as contraband (it melted and had more than 3 oz. of liquid in it). I took this time to lament the fact that my 2 year old sibling only has a few more years (if she’s lucky) after which she will never enjoy a flight without either the assumption of her absolute guilt or abject humiliation at the hands of her government.
Back at the bag inspection the matter of the ice pack was dispensed with and proven innocent we were allowed to continue about the business of getting home. We happily departed the security area and found a seat near our gate and awaited boarding. We started talking and someone reached into the carry-on bag and found an identical ice pack to the one that was confiscated. We didn’t know what to do. Were we supposed to turn in this newly rediscovered property even though we knew it was just a melted ice pack? We just stuck it back in the bag.
Then I thought of the TSA agent who searched the bag. He looked up-to-snuff in the TSA uniform, his crisp saturated-blue button down shirt signaling attention to detail and attempting to inspire a modicum of confidence in the system. It appears our fine young agent after being excited by his earlier find simply forgot to search the rest of the bag. That’s not good, right?
We continued on with our conversation and I was delivered the exciting news that my stepmom didn’t get searched at all! In the hustle and bustle of getting through security with the baby she skirted the issue somehow. Her carry-on bags got opened (that’s where they found the ice pack) but she was never searched or scanned. That’s not good, right?
Boarding had begun and the passengers were filing into the plane. We waited for most of the ruckus to die down to bring the 2 year old into the cabin and strap her into her FAA approved car seat. Chances of a meltdown are directly proportional to the length of time she’s tied down, so her wise parents keep that time to a minimum. We got on, took off and started our ascent.
Wait…back up a few minutes. Remember when we were going through the safety lecture[http://www.youtube.com/watch?v=GFW6NHbWX0E] and we were explicitly warned that our plane’s cockpit was equipped with a “Reinforced armor plated door locked from inside”? Of course you do. Aside: Do you ever wonder why the flight attendants have to read from that little book with safety lecture script in it? I fly way less often than they do and I could probably recite it from memory all the way from “Welcome aboard GetClue airlines flight number…” to “…tampering with lavatory smoke detectors is a federal offense and may result in a fine”.
I only bring up this particular part of the safety lecture because back in the present, our cockpit door managed to swing its way open clattering against the the bulkhead and revealing our dedicated pilots getting us up to our crusing altitude. The flight attendant’s eyes darted towards the plane’s wardrobe malfunction and hurriedly covered it up. With the crisis averted and the door closed the uniformed crew member regained her composure and sat back down and buckled in. With perfect comedic timing, the cockpit door swung back open. Horrified at this point the attendant slammed the door closed again and sat down. Apparently the meaning of the words “Locked From Inside” managed to escape her because it opened up one more time. I’m guessing the pilots were a little busy getting the plane in the air…so they kinda focused on that instead of locking the flapping door behind them. Good call, I say.
So the cockpit door security measure was defective somehow. That’s not good, right?
So I sat thinking about these three failures and I had a thought that a lot of people probably have, that the airport security system is only as good as the people they have staffing it. It’s a sort of incompleteness theorem of systems. I noted three failures attributable to human error in a single trip through the Buffalo Airport. That doesn’t exactly inspire confidence in the TSA agent’s uniform I saw earlier. Which brings me to the real point of this blog post.
After seeing a bunch of failures like that on simple bag searches and locked doors, how the fuck am I supposed to trust the crack TSA staff when they want to point a giant x-ray machine at me?
Backup to the beginning of the story because I left out a part of the security line story where I asked if there was a way to not go through the big ray gun. The woman manning the luggage car wash threw me an annoyed look. “You don’t wanna go through the machine?” she asked in a tone that matched her raised eyebrow. “Not if I don’t have to,” I replied. She hit the button on her shoulder radio and barked “We’ve got an opt-out.” This seemed a little weird to me. From reading the signage around the big ray gun, one would be led to believe that the default choice was a hand pat down and that the ray gun was an “alternative” for people who thought the hand searches were too invasive. How can one “opt-out” of something that was never the default to begin with?
A TSA agent approached and took me to what used to be the “extended screening” area, but now gets used to pat down by hand anyone that doesn’t wanna go through the machine. He started by asking if I wanted to be screened in a private room. I had to resist the urge to make some sexual innuendoes and told him that where we were was acceptable. He was courteous and treated me with respect throughout the entire interaction. A+. Would buy again.
Just to get this out of the way I don’t have a problem with the radiation coming from this machine in normal modes of operation. I worked at the 88″ Cyclotron at UC Berkeley for 3 summers in college. I know my REMs and rads. The risk of fatal cancer from a chest x-ray is about one in a million[http://www.physics.isu.edu/radinf/risk.htm]. The risk of fatal cancer from one full body scan in one of these new fangled see-your-naughty-bits machines is probably nearer to one in a billion. There’s no reason to fear the radiation dose you recieve from a unit is that operating normally.
But what if it isn’t operating normally? The only other high-tech machine I’ve seen from the government in recent times is the electronic voting machine. I know the government didn’t build these voting machines, but the government is implicity endorsing the machines when they’re used in real elections. Researchers have uncovered security holes (bugs) in much of the software powering these machines which allow the outcome of an election to be altered. These bugs only affect your worthless vote. What could a bug in the airport ray gun machine do? Remember the Therac-25[http://en.wikipedia.org/wiki/Therac-25]?
If the TSA, whose primary function is airport and aircraft security, can’t get security right 100% of the time, how am I supposed to believe that they will operate these x-ray machines correctly all the time, even when they’re malfunctioning?
Well I’m sure that you, my fine readers, are ecstatic to hear that I’ve decided to come out of my long blogging retirement to put my pen to the oh-so-interesting topic of my recent jaunt through the friendly skies from Buffalo to New York City.
We start our tale with a trip through the security line. I was flying with–in no particular order–my wife, dad, stepmom and baby sister. Boarding passes in hand we nervously complied with all the pomp and circumstance about the inspection of our bodies and belongings. A routine bag inspection went askew when a sealed plastic reusable ice pack was uncovered and identified as contraband (it melted and had more than 3 oz. of liquid in it). I took this time to lament the fact that my 2 year old sibling only has a few more years (if she’s lucky) after which she will never enjoy a flight without either the assumption of her absolute guilt or abject humiliation at the hands of her government.
Back at the bag inspection the matter of the ice pack was dispensed with and now proven innocent we were allowed to continue about the business of getting home. We happily departed the security area and found a seat near our gate and awaited boarding. We started talking and someone reached into the carry-on bag and found an identical ice pack to the one that was confiscated. We didn’t know what to do. Were we supposed to turn in this newly rediscovered property even though we knew it was just a melted ice pack? We just stuck it back in the bag.
Then I thought of the TSA agent who searched the bag. He looked up-to-snuff in the TSA uniform, his crisp saturated-blue button down shirt signaling attention to detail and attempting to inspire a modicum of confidence in the system. It appears our fine young agent after being excited by his earlier find simply forgot to search the rest of the bag. That’s not good, right?
We continued on with our conversation and I was delivered the news that my stepmom didn’t get searched at all! In the hustle and bustle of getting through security with the baby she skirted the issue somehow. Her carry-on bags got opened (that’s where they found the ice pack) but she was never searched or scanned. That’s not good, right?
Boarding had begun and the passengers were filing into the plane. We waited for most of the ruckus to die down to bring the 2 year old into the cabin and strap her into her FAA approved car seat. Chances of a meltdown are directly proportional to the length of time she’s tied down, so her wise parents keep that time to a minimum. We got on, took off and started our ascent.
Wait…back up a few minutes. Remember when we were going through the safety lecture and we were explicitly warned that our plane’s cockpit was equipped with a “Reinforced armor plated door locked from inside”? Of course you do. Aside: Do you ever wonder why the flight attendants have to read from that little book with safety lecture script in it? I fly way less often than they do and I could probably recite it from memory all the way from “Welcome aboard GetClue airlines flight number…” to “…tampering with or disabling lavatory smoke detectors is a federal offense and may result in a fine”.
I only bring up this particular part of the safety lecture because back in the present, our cockpit door managed to swing its way open clattering against the the bulkhead and revealing our dedicated pilots getting us up to our crusing altitude. The flight attendant’s eyes darted towards the plane’s wardrobe malfunction and hurriedly covered it up. With the crisis averted and the door closed the uniformed crew member regained her composure and sat back down and buckled in. With perfect comedic timing, the cockpit door swung back open. Horrified at this point the attendant slammed the door closed again and sat down. Apparently the meaning of the words “Locked From Inside” managed to escape her because it opened up one more time. I’m guessing the pilots were a little busy getting the plane in the air…so they kinda focused on that instead of locking the flapping door behind them. Good call, I say.
So the cockpit door security measure was defective somehow. That’s not good, right?
So I sat thinking about these three failures and I had a thought that a lot of people probably have, that the airport security system is only as good as the people they have staffing it. It’s a sort of incompleteness theorem of systems. I noted three failures attributable to human error in a single trip through the Buffalo Airport. That doesn’t exactly inspire confidence in the TSA agent’s uniform I saw earlier. Which brings me to the real point of this blog post.
After seeing a bunch of failures like that on simple bag searches and locked doors, how the hell am I supposed to trust the crack TSA staff when they want to point a giant x-ray machine at me?
Backup to the beginning of the story because I left out a part of the security line story where I asked if there was a way to not go through the big ray gun. The woman manning the luggage car wash threw me an annoyed look. “You don’t wanna go through the machine?” she asked in a tone that matched her raised eyebrow. “Not if I don’t have to,” I replied. She hit the button on her shoulder radio and barked “We’ve got an opt-out.” This seemed a little weird to me. From reading the signage around the big ray gun, one would be led to believe that the default choice was a hand pat down and that the ray gun was an “alternative” for people who thought the hand searches were too invasive. How can one “opt-out” of something that was never the default to begin with?
A TSA agent approached and took me to what used to be the “extended screening” area, but now apparently gets used to pat down by hand anyone that doesn’t wanna go through the machine. He started by asking if I wanted to be screened in a private room. I had to resist the urge to make some sexual innuendoes and told him that where we were was acceptable. He was courteous and treated me with respect throughout the entire interaction. A+. Would buy again.
I don’t have a problem with the radiation coming from this machine in normal modes of operation. I worked at the 88″ Cyclotron at UC Berkeley for 3 summers in college. I know my REMs and rads. The risk of fatal cancer from a chest x-ray is about one in a million. The risk of fatal cancer from one full body scan in one of these new fangled see-your-naughty-bits machines is probably nearer to one in a billion. There’s (probably) no reason to fear the radiation dose you recieve from a unit is that operating normally.
But what if it isn’t operating normally? The only other high-tech machine I’ve seen from the government in recent times is the electronic voting machine. I know the government didn’t build these voting machines, but the government is implicity endorsing the machines when they’re used in real elections. Researchers have uncovered security holes (bugs) in much of the software powering these machines which allow the outcome of an election to be altered. These bugs only affect your worthless vote. What could a bug in the airport ray gun machine do? Remember the Therac-25?
If the TSA, whose primary function is airport and aircraft security, can’t get simple security stuff right 100% of the time how is anyone supposed to believe that they will operate these x-ray machines correctly all the time including when they’re malfunctioning?
I live in the New York City greater metropolitan area where recruiters are in no short supply. Many recruiters work in specific areas such as executive hiring, administrative hiring, or hiring for financial companies. There are a number of recruiters who specialize in tech recruiting. In my most recent job search I’m using a number of them now, but I’m wondering where the value lies for the company who is searching for a candidate.
Recruiters are paid in one of two ways, but the most common is on a commission basis just like real estate agents. Once a candidate is offered a position and accepts there is usually a honeymoon period (to make sure that the candidate stays), then the recruiter is paid their commission. The commission is huge, in the range of 25%-35% of the candidate’s first year salary at their new job.
Let’s take a look at the math here:
Consider Jasonium Software is looking for a new programmer. The salary range for the position is $90K-$110K. Jasonium’s current team lead makes $150K per year. Jasonium’s other programmer makes $100K. Jasonium software is going to use a tech recruiting firm to perform the candidate search. This means that Jasonium can expect to pay between $22.5K (20% of $90K) and $38.5K (35% of $110K) to fill this position.
Let’s say that Jasonium were going to perform the search without the help of a recruiter. The money that they would have spent on a recruiter is equivalent to the following amounts of Jasonium staff’s time.
$22.5K
$38.5K
Team Lead
1.8 Months
3.08 Months
Programmer
2.7 Months
4.62 Months
So using a recruiter is supposedly worth the same as dedicating one person full time for more than 4 and a half months to finding Jasonium’s new programmer?
How does the recruiting industry justify these gargantuan markups? And why do companies continually pay them?
I was in an interview recently and after all the questions about code and writing code and reviewing code I was asked
What is the one thing you would change about the ATM you use most frequently?
The first thing that popped into my mind was the atrocious $3 fee for taking out any amount of money. I live right near a train station, so all the local ATMs gouge you. Seeing that the US taxpayers have bought the bank that runs this ATM twice over I think we ought to abolish these ridiculous “Convenience” fees. Yeah…I want to take out $60 bucks, but losing 5 percent on my money instantly doesn’t seem too convenient. I digress…
I didn’t think the fees were what the interviewer was looking for and the second thing that jumped to mind almost immediately was the abysmal user interface this ATM had. Let’s go to the film. I snapped this photo at great personal risk of looking like someone who wanted to rob a Shittibank ATM, but then I remembered that I own it. Can you really be accused of robbing yourself? This is a me-eyed-view of what I see when I get to this particular ATM.
I’m not bragging here, but I’m 5 feet 9 inches tall. I know, I know…you all want me to play center for your kids’ middle school intramural basketball team. Please, stop calling. If I were Shaq sized I might not have a problem, but as a man of slightly less than extraordinarily average height I don’t think it’s too much to ask that I be able to see all the keys on the keypad.
The fact that I can’t see the 1,2,3 doesn’t really bother me that much. I can infer from where the 4,5,6 is where my fingers should do the walking. But the more insidious problem is that the Enter Key, used to confirm the entry of my pin number, is conspicuously invisible. I can see the “CLEAR” and “CANCEL” buttons which indicates to me that Shittibank considers me a slackjawed mouth-breathing luddite who couldn’t conceivably enter a 4 digit pin without screwing up, but the “ENTER” key is nowhere to be seen. Everytime I key in my pin I’m then forced to look down trying to find the enter key and that’s when they sneak up behind me and tickle me until I pay the “Convenience of not pissing your pants” fee (I have a weak bladder under tickle-torture).
In Steve Krug’s Don’t Make Me Think (Please buy it now if you haven’t already) there’s a section in Chapter 3 on Conventions.
At some point in our youth, without ever being taught, we all learned to read a newspaper. Not the words, but the conventions.
ATMs are exactly the same. At some point in our teenage years, without ever being taught, we all learned to use an ATM. Every ATM designer these days has a mountain of conventions to work from such as:
There should be a mirror on the face of the ATM so that users can watch the people in line behind them pick their nose while waiting to use the ATM. They’ll have a hearty chuckle and want to use this ATM again.
There should be an ominous piece of smoked glass on the face of the ATM with a security camera behind it so we can watch the people using the ATM pick their nose. We’ll have a hearty chuckle and sell the footage on the internets. They’ll want to come back so often (because of the mirror) that we’ll have a lot of footage.
And so on. These things almost design themselves. Since it seems that no one has done it yet, I’m gonna go ahead and codify the first two conventions of ATM design now for all you ATM designers out there.
The First Convention of ATM Design
DON’T MAKE ME THINK! (Thanks Steve)
The Second Convention of ATM Design
Pursuant to the first convention any key, button, or touchscreen element that should be pressed by the user of the ATM SHOULD BE VISIBLE TO THE USER AT THE TIME IT IS MEANT TO BE PRESSED.
OK Shittibank. Now that there’s some rules set down, I expect you to follow them in the future. Get the ATM replacement technicians out in the field and make it happen.
1) It is three times as difficult to build reusable components as single use components.
2) A reusable component should be tried out in three different applications before it will be sufficiently general to accept into a reuse library.
The first thing I like about these rules is that they are implicitly saying, “It is perfectly OK to write single use components.” These days I think a lot of developers minds spend a lot of cycles on reusability and API writing when they don’t really need to. This paralysis keeps them from completing a great product in a shorter amount of time.
Rule two is more powerful than rule one. You might be able to weasel an extra two days into the schedule for the larger project so you can get your fix and write a reusable component. You might. But you aren’t going to be able to shoehorn the component into 2 other places it doesn’t really belong without someone noticing. If you agree with Glass’ rules, you can see these two corollaries.
1a) Assuming difficulty = time, if you don’t have three times the time budget you would need to build a single use component, build the single use component.
2a) If you don’t have three real applications where you can use this reusable component, build the single use component.
These are easier to follow when trying to make decisions because they give you concrete tests to pass before you set down the path for the holy grail of reusability.
Well…Congratulations…you’ve somehow found the least informative site on the internet. Hopefully that can change over the life of this thing, and maybe we’ll get to learn something together.
So in this first post, I guess I’ll just describe how I’ve gotten up and running with WordPress.
I had the blessing of coming across Slicehost in the last couple of months. Slicehost is a Virtual Private Server hosting company. You pick a server configuration with a certain amount of (RAM/Storage/Bandwidth/Linux Distribution) for as little as $20 per month. They have a very usable management interface that allows you to setup most of what you need pertaining to DNS etc. Another beautiful feature is their web-based shell which allows you to work on your box from anywhere (even those pesky places that clamp down on the SSH port). The entirety of this setup can be done from the web shell.
So I’ve configured my slice for a clean install of Ubuntu 8.10. WordPress works on the LAMP stack so its pretty easy to install all that stuff on Ubuntu. I do all this as root on the web shell, so there’s no sudo’s. You’ve already got the L in LAMP with Ubuntu, so let’s go on to A.
Apache
Type the following into your terminal
apt-get install apache2
It may ask you There’s really nothing to do after this but test it. Go to http://[your slicehost ip]/ in your favorite web browser. If you see “It Works!” then you’re good. Let’s move on to M.
MySQL
Here we go with that terminal again…
apt-get install mysql-server
This will install mysql-server 5.0. During the install you will be asked for a root password (come up with something secure). Write this down, we’ll need it for later. Let’s move onto the P.
PHP
Back to the old terminal…
apt-get install php5 libapache2-mod-php5
This installs PHP. To get PHP to work with apache you need to restart it like so.
/etc/init.d/apache2 restart
To make sure PHP is working use your favorite text editor to open up /var/www/test.php and enter the following text
<?php phpinfo(); ?>
Save test.php and close it. Now go to http://[your slicehost ip]/test.php and you should see a page with a bunch of diagnostic information. If so then you’re good to go. Delete test.php for good measure (you don’t need any looky-loos seeing all your stuff). Congratulations, you have a LAMP stack.
What’s Next
So you’ve got a LAMP stack now, what’s next? We’re going to install a program that will enable you to administer your MySQL databases from the web called phpMyAdmin.
It should ask you what web server you want to auto configure, choose apache2.
Back in the browser, go to http://[your slicehost ip]/phpmyadmin. You will be presented with a login box. Login as root with the MySQL password you wrote down before. You should see something similar to the screen shot below. It looks scary but it is really easy, I promise.
First we need to create a MySQL user and database for WordPress to use. This is super easy. Click the Privileges link near the bottom of the list and you’ll be brought to this screen.
Click the “Add a new User” link and you’ll be brought to this screen.
In the “User name” field type wordpress. In the Host drop down box choose “Local”. In the password field type a password for the wordpress user (try and make it something different from the root password you used before). Re-type it in the “Re-type” field. Under the “Database for User” section, choose “Create database with same name and grant all privileges”. Click go and you should have a brandy-new database to use with WordPress.
Download
To download the latest copy of wordpress from the terminal do the following.
cd /var/www/
wget http://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz
mv wordpress blog
chown -R www-data blog
That last line is to make apache the owner of the WordPress directory. This makes it possible to upload pictures, install plugins and other good stuff.
Configure
We need to make some changes to the default configuration file for WordPress, so that it will talk to our database correctly. Do the following:
cd blog
mv wp-config-sample.php wp-config.php
Fire up that text editor and open wp-config.php
You’ll need to insert your database parameters in the following lines.
define(‘DB_NAME’, ‘wordpress’);
define(‘DB_USER’, ‘wordpress’);
define(‘DB_PASSWORD’, ‘the password you chose’);
Save and close.
The Finale
You’re so close you can taste it, right!?
The final step is to go to http://[your slicehost ip]/blog/wp-admin/install.php. Enter your data (Blog Name and e-mail Address) and click that big Install button.
An admin account and password will be generated for you. (WRITE DOWN THAT ADMIN PASSWORD SO YOU CAN LOGIN). It’s a random string of characters, so you may want to change it to something more memorable later.
Congratulations
You’ve got your very own wordpress blog to write your very own “Getting Up and Running…” post.