Location:
Lawrence, KS
Birthday:
January 7, 1981

Information

Detailed Info

Website:
Personal Information:
Travis Swicegood works on the Internal Systems team at SugarCRM automating tests of various flavors. He has been using PHP since '99 and still remembers how revolutionary PHP 4 was, but can't remember why. He's one of the developers on SimpleTest; the lead developer of PHPT; a TDD advocate—sometimes called a zealot; and lurker on many a PHP project mailing list when not learning other programming languages for fun, exploring his surroundings on bike, or tasting his latest kitchen and home-brew... (read more)
Personal Interests:
Programming, cycling, PHP, Python, cooking, home-brewing, SugarCRM, MDD, TDD, various driven-developments

Contact Info

Email:

Mini-Feed

.
Travis Swicegood has no recent activity.

My Feeds

July 29

As most of you who follow me on Twitter know, I've been trying to get an iPhone. Not so hard that I've been camping out, but I've made a couple of unsuccessful trips to the Apple stores in the KC area. Yesterday - my first full day in Cali - I managed to snag a white 16G and also managed to be one of the few people who's purchased an iPhone without waiting in line.

Around 7 last night me and a few of my new coworkers headed over to the Apple store that's a few blocks away. I asked about getting a white iPhone and was told they were out for the day. I got the low down on the process for getting one. They passed out tickets based on how many phones they had in stock starting at 8 AM.

Once I knew the rules of the game, seemed simple enough to get one. I'd just walk over one morning this week, spend 20 or 30 minutes waiting in line, then come in to the office. We wondered around the store for a few minutes looking for a headset that the $200 cost scared her away from and then the girl from the front rushes up to me.

"Which iPhone did you want again?"

"The white one..."

"Ok, hold on."

She heads back up to the front, starts talking to one of the other "geniuses", then starts walking to the back. "Today's your lucky day," she said as she walked past. About 15 minutes later I was making my first call on my shiny new iPhone. :-)

July 20

Ever since I mis-titled Terry Chay's talk, I've been thinking of putting together a presentation called The Internet is an Orgy. Just like a real orgy, it can be a lot of fun but it just takes one person to screw everyone.

That point has been getting proven today. Amazon's S3 service is experiencing it's second outage of the year. According to Amazon's status site, they're been down for roughly 6 hours right now. Sites like SmugMug are completely down as they rely 100% on S3 to serve photos from. Avatars on Twitter are broken because Twitter uses S3 to offload that content.

And the poor people using EC2. EC2 isn't directly effected, but you have to have access to S3 in order to bring up another server. This is six hours that you've had to make due with just the servers you have running right now. All of that "elasticity" is just that - a marketing word in air quotes if you can't bring more servers online.

Don't think you're immune to this type of problem just because you're a consumer. Case in point, if Ma.gnolia goes down I loose access to all of my bookmarks and the ability to store anything else. I bookmark a lot when I'm wondering around the web.

I've blogged about distributed systems before though. Whenever I see a central point of failure, I cringe, but we move more and more the way of the centralized which I feel is against the very grain of the internet.

There are notable exceptions. Erlang, my current favorite language, is designed to be distributed across machines with little more than a network connection and not fail if that connection disappears. Git enables distributed version control and is being used as a distributed data store for everything from open source projects to distributed ticket tracking systems.

I'm sure if I looked, I could probably find a few more examples. This isn't meant to be a riff on centralized services like Amazon's S3 or EC2. They are great and can be very valuable to scale out quickly, especially when you're just starting out. There is the proverbial "but", however. Don't think they won't go down just like any other service Treat them just like any other cluster. If you can't afford downtime, have a backup plan.

June 13

Next time you start to stereotype something - be it a person or a dog, remember these pups:

June 12

As I think most of you know, I picked up a Piaggio Fly 150. I need to get my motorcycle learner's permit and/or my license. There's an on-road motorcycle course that's being offered here in town that I'm considering taking that waves the need to take the motorcycle skills test - haven't decided on that yet.

I've taken the written test—the only part that is required for the permit—twice. And failed both times. You can miss 5. The first was 6, the second was 7. They're both BS, though I would have been sort of surprised had I passed it on the first try. I hadn't even opened the "manual" once.

So what questions have I missed. Here's the first one: You following a car and the car following you is crowding you... what do you do?

  1. Slow down
  2. Speed up
  3. Pass the car in front of you
  4. Make rude gestures at the driver behind you while swerving from side to try to force them off of the road

Ok—so the last one I made up, but it was something as obviously wrong as that. So, what would you do? I chose "Pass the car in front of you". You're following another car, so you're at a safe distance, right? Closing that gap means you are then being unsafe. Slowing down is passive aggressive and you've got an ass driving behind you since he's tailgating so there's no telling how he'll react. That leaves passing the car in front of you.

Nope. According to the great state of Kansas, you're supposed to speed up. Ok... no problem. In all fairness I hadn't looked at the driver's manual so I wasn't expecting to pass it. I figured I would flip through the book then take it again. I took it again yesterday. This time the score was worst, but I'm almost ready to say screw it on principle because of the two that I missed that threw me over the limit.

So here's the two questions I missed:

What is the best way to be seen at night?

  1. Wear a retroreflective vest
  2. Wear fluorescent clothing
  3. Wear a white helmet with an yellow star
  4. Wear a cape made of the stars and bars and have your radio playing Sweet Home Alabama at at least 100 decimals

Yeah - we do things a little different in Kansas. ;-) If you know anything about the history of the state, you mark the last one off. Though it might get you some attention, we're a free state. And well, the helmet with a star is just silly.

So you can obviously narrow it down to the first two. I had never heard of "retroreflective" until I saw it on this test. I assumed it was a made up word and went with fluorescent. Should have known better just from the "reflective", but I overanalyzed it and went with B. Tonight I checked the handbook. The phrase "retroreflective" doesn't appear at all! Reflective yes, the five letters that make up "retro" in that order do not. Period. The question is bogus.

The next question I missed that I take issue with is thus:

What happens when your rear tire goes flat?

Before I so you the answers, remember that I'm a programmer. My title is "Staff Engineer". I approach things in a very (non-?)practical manner. I don't look for what happens in practice, but what should happen. Now, here's the answers.

  1. You will loose control
  2. You will loose power to the rear wheel
  3. Martians will invade your head
  4. The rear of the bike will start to wobble uncontrollably

Here's how that process goes in my mind. Martians aren't interested in my brain 'cause I have a flat tire, that's off. You don't automatically loose control, so that's off. Loose power, or start to wobble? Well, if you deflate a tire while putting uniform pressure on it, it will just deflate down to the rim. Though if you deflate it, you loose traction which causes you to loose power—at least until you strip the wheel down to the rim and start riding on the rim.

Back and forth it goes. I finally go with loose power based solely on the engineer in me. Just because you loose air pressure does not mean the wheel wobbles. I could set this experiment up in a lab and prove it. Provide a slight deviation in how pressure is applied, then it wobbles. Yes, I give you that, but the question doesn't mention that your passenger is turning their head so they can pick their nose. There is no qualifications, so I am left to assume they want the proper answer. You loose traction due to the deflation which causes you to loose power—at least temporarily—to the rear wheel.

Grr!

June 10

Despite dire warnings, I've decided to give polyphasic sleep a try. This week is pretty routine for me on the work front, so I think I can get away with it.

I have a simple reason for this experiment: curiosity. I can think of all sorts of things I would like to be able to do if time weren't an issue, and picking up an extra 40 hours week seems like a good trade off. In the end, I might not be able to keep it up just because of social strain it creates. Since I don't have an office to go in to or very many particular schedules to worry about keeping, it seems like I should be able to handle the social part of it though.

I'll be sure to blog about anything interesting I discover, and of course I'll be twittering about it. Now, maybe I can start making a dent in the ever-growing todo list that I have.

June 4

So this is the second day in a row that I've explicitly taken 10 minutes to write out a to do list for the day. 10 minutes is the max. If I make it that long and am still writing things out, tough. On today's list was write a blog post which was positioned after responding to a bunch of emails. Responded to those messages, now time for the blog post.

First off, if you're wanting to keep tabs on me, my FriendFeed is about the best way to do it. I've almost created an app to do exactly what FriendFeed does. I resisted joining FF when I first saw it because I wanted to do it myself. Pragmatism finally won out though and I just signed up.

php|tek was a blast. All of the presentations I attended were interesting, though sadly there was no PHPT presentations *cough* *cough*... ;-) Next time I guess. The other presentations that were missing were talks on distributed data. Everyone's talking about federated data being the only way to scale to the size of Tagged or Facebook or Digg, but no one was talking about how to do that practically. I may take up the torch and see what I can put together on the topic if someone else doesn't do it first.

One thing that the conference did help with was my view of the state of PHP. If one thing is going to save PHP from becoming the next Java (i.e., the language you make your living in but not the one you play with), it's the community. There's lots of cool projects in the works, and lots of great people working on them.

I announced that I am running for the PEAR Group to help shepherd the userland side of the community. This next year I hope to get PEAR2 off of the ground and start getting greater community and business involvement in PEAR. PEAR has some legacy cruft in the way it names packages and such that really make it hard to integrate PEAR1 code into an existing project. Hopefully we can make PEAR2 easier to embed.

I plan on trying to get some sort of regular updates back on the blog. In the meantime, my twitter account is updated pretty regularly.

May 19

Yeah, I know... it's been a long time. Life's been busy. Between work, PHPT, the book, and my new scooter there's been little time for little else. I've really got to take Chuck's lead and give polyphasic sleeping a try. Until then, I'll have to get by just making the occasional updates.

I've finished some last minute errand running before heading to php|tek. Of course, I'll be twittering (if they can stabilize it - been horrible today). Along with everyone else, I'll be tagging it with #phptek.

I'll also be doing some in person recruiting, so if you're interested in working at SugarCRM, look me up. In particular, there's an opening on my team working on all of the public facing SugarCRM sites.

May 10

According to these blog posts you certainly can. Imagine that. Approximately 22 hours a day of conscious, usable time in every 24 hour period. I say 24 hour period because apparently night and day become mixed up during this experiment. One person even went so far as to create new names for "night days". They ended up with a 14 day week.

This all sounds absurd. One of those things that can't possibly work. It's just counter to everything we've ever learned. But then I think about the 6 small meals, or grazing throughout the day instead of large meals. I played around with that for 3 or 4 months a handful of years ago and dropped down to the lowest weight I'd ever been, was full of energy, and generally pretty happy with life. At the time it seemed like an anomaly to eat like that, but its becoming the accepted way "diet" now if you want to loose weight. Could the same "less, more often" theory hold true for sleep too? It seems just crazy enough that it might work.

I'm really curious to try this. From what I've read you become useless—one person said zombie like—during the adaptation phrase which lasts from 1 - 2 weeks. This means scheduling it when there's some downtime with nothing urgent on my plate. This might mean waiting until the first draft of my git book is finished as I don't know how well I would be able to write while trying to adapt.

It also means getting Meg on board. I believe her first reaction was "you're never trying anything like that... you get too cranky when you're tried." That I am. According to the blogs of people who have made it through the adaptation phase, you're never really tired in the normal sense though. A break is always just a few hours away and you wake up feeling refreshed.

My mind just keeps coming back to all of the extra things I could do if I was only sleeping 14 - 16 hours a week. Think about that for a second. An extra 40 hours a week! I could pay some attention to PHPT and get it finished up. I could knock out the rest of my book in two weeks. I could get serious about going back to school for that pre-law bachelor's. I would have the 30 - 60 minutes a day to devote to becoming fluent in another language. Hell, if I picked the language based on when I was studying, I might even find a native speaker in another language to help me out with conversation.

Steve Pavlina, the author of the first linked post, kept it up for nearly 6 months before reverting back to nightly "hibernating". He felt fine and said he could have kept going, no problem. The issue he ran into was being polyphasic—sleeping in small intervals through the day—in a monophasic world. This seems to be the common thread in people who made the switch, then stopped. The pressures of being at an office, or handling meetings, or being social during "social times" eventually got to be boring and/or not worth it.

I don't know if those would be an issue for me or not. I have a pretty unique situation since I work remote and +2 hours from the majority of the rest of my company. The only real schedule I have to sync with is Meg's schedule. If I played it right, I could schedule a nap right after she goes in for work, mid way through her work day, and right before she gets off. Then the rest of my naps would be during the time she's asleep anyhow so, assuming there were no ill-side effects, she would hardly notice that I was doing it.

I've started tagging some things that I've come across with polyphasic in my del.icio.us feed. If you're interested in looking into this yourself, check them out.

This is one of those things that is just crazy enough I might have to try it. If I do, I'll definitely blog about it. With all of the extra time I might actually be able to keep the blog current again... :-)

February 23
The following changes: * allows benchmark sources without an explicit setup section * outputs results when only 1 loop is performed
January 3
This is the initial devel release of this package
December 6
This is a general clean up of code and fixes an issue which might cause segfaults on some installations. Changes in this release: * Fixes issue with segfaults when attempting to read the output from an execution * Fixes issue with commands that didn't have a newline at the end * Adds init() method to check for ssh2 extension * Attempts to load proper ssh2 extension if not already available. * All log() calls now how proper Project::MSG_* constant attached allowing output level to be controlled properly * Adds an example build.xml to show how to use the ssh task
December 5
This is the initial alpha release of this package
October 19
Fix issue introduced by previous "fix"
Displaying the only wall post
Julian wrote at 4:50pm on March 6th, 2008
I am a FAN.

Fans

6 of 15 fans
Keith
Jacob
Jeffrey
David
Lori
Julian