Travel guide for Thailand, Cambodia, Laos and Vietnam

I don’t think I’ve mentioned it here, but I’ve been to Thailand. I went last November. It was one of the most amazing experiences of my life so far and I knew as soon as I arrived that I’d want to revisit Southeast Asia. The culture, pace, lifestyle, landscape, people were absolutely amazing.

Fast forward a year and I’m heading back to Southeast Asia with my friend Chris Lea for almost a month. A few friends have asked me what I’ve been doing to prepare for this big trip so I thought I’d write up some notes here.

  • First off, go to your local immunization clinic and get immunized. You’ll most likely get Typhoid, Tetanus, Hepatitis A/B and flu vaccines. Additionally, they’ll probably give you an antibiotic in case you eat something that “doesn’t agree with you” and malaria medication. In addition to these medications, I suggest you get a small first aid kit and some basic pain medication for those bucket induced hangovers. 
  • Make a color copy of your passport and give it to a friend or family member. Additionally, scan a copy and send it to yourself in an email as a PDF.
  • Register with the State Department that you’ll be overseas along with where you’ll be.
  • Call all of your credit card companies and tell them that you’re going to be out of the country, which countries you’ll be visiting and when you’re leaving/coming back. I went ahead and put fraud prevention on one of mine, which covers all of my cards against identify theft, including my bank accounts.
  • If you own an iPhone get the Pwnage tool and jailbreak/unlock your iPhone. It’s extremely important that you use the Pwnage tool as the QuickPwn doesn’t unlock the SIM card. In addition to this, I’ve installed a VoIP client, which will get me 1.8 cent phone calls back to the US from WiFi access points.
  • When you pack make sure to put a copy of your passport and your driver’s license in one bag and your passport in another. Additionally, split up your credit cards in this manner. Do NOT keep all of your identification and forms of payment in a SINGLE place.
  • Buy a key lock. All of the places I stayed at in Thailand last time had lockers in a secure closet/room. You could either use your own lock or one of theirs. I highly suggest you use your own.
  • This time around I’m leaving the camera to my companion, who is a professional photographer. If you’re not so lucky I highly  recommend the Cannon XTi or similar. In addition, I’d get a decent lens (I used the Canon 28-135mm f/3.5-5.6 IS USM lens with great success last time) and an external hard drive that lets you rip photos directly from the camera’s card to the hard drive (e.g. DigiMate II).
  • If you’re going to be truly backpacking then I suggest a light sleeping bag, small travel pillow and a towel.
  • An absolute if you’re going to be island hopping is an LED headlamp.

Overall, Thailand is a great place to visit. It’s insanely cheap, easy to get around and the people there are very welcoming and accommodating.

Giving back to the community

At Digg we use a lot of open source software. A short list includes PHP, Memcached, MogileFS, Gearman, Debian GNU/Linux, Python, Perl, MySQL, Apache, APC and PEAR. Something that may not be quite as well known is that Digg developers have been busy giving back to the community as well.

The best part, in my opinion, about all of this is that we release our code under the most liberal license possible given the circumstances – the New BSD License (We use New BSD to protect Digg’s trademarks).

Of course there are other companies that contribute significantly to FOSS. Flickr, Facebook, Yahoo!, IBM and Google are just a few and I’m more than happy to say that Digg is giving back as well.

You can't have it both ways

I just had a good friend send me a video that they had posted to Vimeo with the caveat that I not share it elsewhere. A public video. On a video sharing website.

This isn’t the first time such things have happened. I’ve had other friends tweet out “Having beers at Zeitgeist with a bunch of my friends. Come join us!” and then get angry when a person they didn’t “invite” showed up.

An here we are, the insanity of social norms being transformed by social networks before our very eyes. Somehow it’s acceptable to post a public video on a video sharing website, but not kosher for me to post that link in a chat room. It’s okay to post a public invite that’s disseminated to hundreds or thousands of people on a public service, but not okay for someone you don’t like to show up “uninvited”. And this is the inherent bullshit that’s being woven into social networking. You can’t have it both ways. You’ve got to think before you post every detail of your life to the internet. You have to have thick skin. You have to be okay with who you are and what you do as a person.

Because you can’t have it both ways.

Cross posting is bad for the internets

With services like del.icio.usTwitterPownceTumblrFriendFeed, etc. there has been a rise in something that I consider highly insidious – cross posting. Cross posting is the exact opposite of post aggregation and should be discouraged and, in my opinion, treated as spam.

  1. It increases noise. I’m following you only on Twitter for a reason. It’s not so I can get pinged every time you post something new to one of the 30 social sites you’re on. It’s so I can get your thoughts, musings and annoyances in little 140 character pieces throughout the day.
  2. It hurts usability. Not only do I have to log in and take action on Twitter or, but I also have to go and log into Pownce or Facebook to see what you really posted.

I’ve unfollowed people that actively practice this (including a good friend whom I’ll leave nameless). I don’t have any problems with posting the same thing to two different networks. Just don’t automate it and don’t make me jump through hoops to get to the end result. 

UPDATE: I also hate it when people automatically tell me where they are on Twitter via the billion different location services. If I really care to stalk you I’ll follow you on Brightkite, Dodgeball, etc. 

UPDATE: Updating your Facebook feed with your Twitter status isn’t too bad with the exception that it still kind of messes up usability since my Facebook friends probably have no idea who @a is.

A discussion on languages and frameworks

I start all of my talks at conferences on architecture and scaling with describing the distinct differences between scaling and performance. I define scaling in one word: specialization. I, somewhat jokingly, retort to the question of what performance is with “Who cares?”.

The reason for not caring (much) about actual performance is that whether or not you use single quotes, double quotes, objects, functions, Python, Ruby, PHP, foreach, etc. has nothing to do with whether or not your application and site will scale.

Scaling is entirely about IO. Fundamentally, it’s about whether your data is being stored in a manner that makes retrieving it at the rate of today’s high traffic websites possible. In other words, Ruby isn’t the reason you can’t store 250,000,000 records in MySQL and do range scans. It’s because MySQL (and most RDBMS’s) suck.

I’ve been playing with Django a lot lately for a side project. Despite being a pragmatic coder to a fault, I’ve decided to truly learn another language and I felt Django would ease the shock a bit. So far I love it. Django’s patterns make a lot of sense and I’m loving the goodies a true OO language like Python gives me. Since starting down this path I’ve been getting two questions over and over:

  1. Does this mean Digg is going to be using Django?
  2. Why didn’t you choose Ruby on Rails?

Digg will not be using Django or any other framework anytime soon. We deal with traffic that most Django developers will probably never see. Our stack receives billions of requests a month. That kind of traffic, as I stated earlier, requires specialization. Django is the exact opposite of this. It’s a generic web framework made to answer the majority of web programmer’s basic needs. The majority of web programmers don’t deal with the problems we deal with. I’m sure if you ripped out a lot of what makes Django so great (e.g. the models, admin, etc.) Django would be fine (e.g. If we used it only for mapping requests to views and templates), but then it wouldn’t really be Django would it?

I chose Python and Django over Ruby and Ruby on Rails for a number of reasons. First and foremost is that we use Python here at Digg. Learning Python will only enhance my ability to perform my duties at Digg. I, personally, dislike the Perlisms in Ruby. Additionally, Ruby seems to skew towards implicitness in the language, while Python skews toward explicitness. I like explicitness.

To sum things up, I have nothing technically against Ruby as a language, I love frameworks for regular development work and Perl’s syntax kills small children.

Choose what you love and be happy coders.

We won!

I’m sitting at the Burp Castle with Daniel Burka and Arne Fismen celebrating our new President, Barack Obama, after celebrating in Times Square with thousands of people. The Burp Castle has temporarily suspended their “Sush Rule” so that we can properly celebrate Barack’s acceptance speech.

Yes we can!

As I type this an African American is the President elect of the United States. Let that sink in a bit. The people of the United States have made a strong stand against the agents of intolerance. They’ve said with resounding thunder that religious zealots, war mongers and ignorant people have no place in our great nation. If you’re against gay rights, against a black President, in favor of endless war for oil, or against renewable energy we’ve risen up and clearly stated your ignorant and bigoted views of the world are not welcome.

I, for one, welcome change for the good.

Sarah Palin is absolutely unfit to be Vice President

There, I said it. As plainly as I can possibly state it. I’ve been reading a lot about Sarah Palin, watching interviews, and watching the debates. I’ve come to the conclusion that voting this woman into office would be irresponsible and, potentially, catastrophic. I’m going to list a number of absolute facts gleaned from interviews and public record. If, by the end of this list, you think this woman should be Vice President please post a comment detailing why, in the face of these facts, you feel she’s qualified for the second highest office in the free world.

  • She transferred five times to four different colleges in five years before, finally, obtaining a Bachelor’s of Science in communication-journalism from the University of Idaho. Barack Obama graduated from Columbia University with a degree in political science with a specialization in international relations and went on to receive a law degree from Harvard University. Joe Biden has an undergraduate degree in history and political science from the University of Delaware along with a law degree from Syracuse University.
  • She obtained her first passport in 2007 for a trip to Kuwait. Joe Biden has been on the Senate’s Committee on Foreign Relations for 35 years. Barack Obama has served on that same committee since joining the Senate along with serving on the Senate’s Committee on Homeland Security and Governmental Affairs.
  • Before her recent meetings in New York this last month she’d never met a single head of state.
  • She was the mayor of a city of 10,000 people and governor for a state 650,000 people. While an Illinois state Senator for Illinois’ 13th District, Barack Obama represented about 800,000 people.
  • If a 15 year old was raped by her father, she would “counsel her to choose life”.
  • She has given only three interviews (not including the debate) since being nominated for VP. Joe Biden has given over 100 interviews since he has been nominated for VP.

This woman, simply put, is unfit to be Vice President of the United States. Despite Senator McCain having relevant experience, he’s shown himself to be incapable of making critical decisions by the simple fact of choosing such an unqualified person for the second highest office in the free world. 

Please vote for Barack Obama and Joe Biden on November 4th, 2008. 

The tale of two VP picks

About a week ago Barack Obama announced he’d selected Senator Joe Biden to be his running mate. To say the least, I was underwhelmed. I felt that Obama had a real chance to shoot the moon with a really progressive pick. My pick? Michael Bloomberg, the mayor of New York City. Ask any New Yorker how much they love their mayor and you’ll get an idea of the type of operation Bloomberg runs. 

That being said, Biden does bring a few benefits to the table. First, and foremost, his son is serving in Iraq so there’s really no possible way you can say he doesn’t have any idea what’s going on over there. He’s a serious policy wonk with 35 years of Senate experience. He definitely fills the role of attack dog quite nicely and he’s an old white guy, which America seems to love when it comes to politicians. In other words, he was a perfectly reasonable and safe pick to be Obama’s running mate. He offsets many of Obama’s real and perceived weaknesses.

Then you have Sarah Palin, whom John McCain announced would be his running mate a few months ago. She has 20 months of experience as the governor of the 47th largest state by population and started her political career 13 years ago in her local PTA. She’s embroiled in an investigation in her home state about using her influence as governor to have her former brother-in-law fired. To top things off her 17-year-old unwed daughter is five months pregnant (a non-issue if she wasn’t a staunch supporter of abstinence and the removal of sex education from the classroom).

When your party is being embroiled in scandals left and right over abuse of power, considers itself the moral authority of the nation and taunts itself to be the leaders in foreign affairs, you’ve got to ask yourself what the hell John McCain was thinking. At the very least, Palin is a distraction. At the very worst, she’ll kill the entire campaign.So who would I have picked? I’d have thumbed my nose at the Christian conservatives (who else are they going to vote for? Obama?) and went with Tom Ridge or Joe Liberman. Both have solid credentials and would have been able and ready to step in as President if the 72-year-old cancer survivor has health issues. Palin, on the other hand, has arguably less administrative experience than 46 other governors and 16 major US cities (all have larger populations than the entire state of Alaska).

Pretty much no matter which way you slice this, objectively speaking, Palin was a horrible pick for a running mate. Karl Rove would have never let this happen if he were still involved heavily in campaigning.  

2008 President Election

With McCain’s pick of Alaska Governor Sarah Palin we are staring at the most historic election in the history of the United States. In November the great people of our nation will go to the voting booths and have a choice between a half white, half black, child of a single mother and an immigrant father or a mother of 5. Let there be no doubt we’re living in historic times.That being said, I have a problem with both VP picks. Obama picked a lifelong politician to appease those who think he doesn’t have the experience to lead the nation. McCain picked a woman, frankly, to curry as much favor with women who voted for Hilary in the primaries just because Hilary was a woman. At their core, both choices are, at best, placating swing voters and, at worst, publicity stunts.Not that this really changes my mind. I’ll be voting for Obama this fall. In a two party system you’re stuck choosing the person who most closely represents your own feelings and interests and, for me, that person is Obama. Why?

  • I’m an advocate for a woman’s right to choose what she does with her own body.
  • I think the Iraq war was, and continues to be, a stain on the history of our great nation.
  • I don’t think religion belongs anywhere near our government.
  • I believe that we should be heavily investing in alternative energy. I believe in this so strongly that we should do so at the expense of heavier taxes and a decreased military budget. Make no mistake; the future of America’s economy heavily depends on affordable, renewable energy.
  • I believe drugs and prostitution should be legalized, taxed and regulated. Australia has a brothel that’s a publicly traded company. The Netherlands has had legalized drugs for quite some time now. Both are respected members of the international community and neither of their societies have spiraled out of control into the pits of Hell.
  • I believe that people making tons of money should pay more, not less, in taxes. If you’re making over $250,000 a year I really don’t want to hear you bitching about paying 10% more in taxes than a single mother making $25,000 a year. I wonder how you’ll “sustain” on “only” $150,000 a year in net income.

Given the above facts about my own personal beliefs the best candidate for me is Barack Obama. There’s no way in hell he’d propose legalizing drugs or prostitution and he’s a church going man, but he’ll get us the hell out of Iraq, put taxes on the rich back in place that Bush removed, invest heavily in alternative energy and fight for a woman’s choice. I can live with that. 

How I got started programming

  1. How old were you when you started programming?By the time I really got into computers around age 12 or 13 my parents old Tandy 3000 wasn’t quite up to date compared to the 386’s and 486’s most of my friends had. I really truly started coding in TI-BASIC on my TI-85. I created all sorts of games, programs and such, which I’d then trade and sell to other kids at school. Around age 16 I bought a custom built machine from a local computer shop. A Cyrix 133 with 16MB of RAM, which I soon upgraded to a Cyrix 200 with 40MB of RAM. It wasn’t long after this that I started coding IRC bots for mIRC and HTML on my Geocities website.My first true coding experience didn’t really come until I started college where I was introduced to PHP by my friend Paul Barton. It was love at first site and the rest is, as they say, history.
  2. How did you get started in programming?I really started in college, but I’m sure there was some BASIC and VB stuff for office here and there before that. My first programs were written in TI-BASIC and ASM for the TI-85. 
  3. What was your first language?TI-BASIC for the TI-85 calculator is the first programming language I really sunk my teeth into. What a nightmare. 
  4. What was the first real program you wrote?Depends on how you define this I suppose. The first program that I wrote that had any use to me was a program that would figure out math equations for my algebra and statistics classes that would show each step of work as it solved the equation. That’s also the first program I wrote that I made money from as there were quite a few students interested in it.
  5. What languages have you used since you started programming?I guess that depends on what you mean by “used”. I’ve written substantial lines of code in C/C++, PHP, Python, Perl, ASM, BASIC, TI-BASIC, JavaScript and BASH. I’ve also done quite a bit of work in COBOL and MFC.
  6. What was your first professional programming gig?My first paid gig was working on the website for Affordable Computers in Ann Arbor, MI. I’d say my first run at the “big show” was for in 2000. 
  7. If there is one thing you learned along the way that you would tell new developers, what would it be?Break stuff. Break everything. Poke, prod and explore. Don’t listen to people who tell you that you can’t do something or that you’re wasting your time. More practical advice is that you should learn to know and love design patterns and avoid GUI’s. I have a real problem with people who say they know SQL because they’re well versed with an ORM or a DB’s GUI. Go back and read up on relational algebra and SQL92 before you say you know SQL okay?I’ll probably get flamed for this, but I think people should learn a single environment in and out and stick with it. This might mean you learn Microsoft’s technologies in and out or Cocoa or LAMP. You simply can’t be an expert in an area of computers without picking a single environment and sticking with it. Dabble, sure, but pick a horse and learn everything you can about it.If you choose UNIX read one man page a day until you’ve read all of the GNU utilities’ man pages. You’re not a true UNIX geek unless you’ve typed man man at once point in your life.
  8. What’s the most fun you’ve ever had programming?Oh, I don’t even know where to start. Hacking on PHP3 back in my dorm room, working with Jeremy and Seth on Care2 late into the night, building eNotes’ infrastructure from the ground up and building large scale systems with Ron and Matt at Digg to name just a few.

This absurd entry was spurred on by Erik Kastner. I’m going to give him a noogie next time I see him for this. Because I hate chain posts like this I won’t be tagging anyone as it after this, but if you do carry this on please trackback this post so I can read and reminisce with you.