Top Ten Things I Like About Seattle

10. Portland / Vancouver

Both Portland and Vancouver are only a few short hours away from Seattle by car, or if you prefer, you can take the train. I’ve been to Portland a few times and I really like it. I’ve also spent about a week in Vancouver and it’s also a pretty cool place to be. I have to admit, I prefer the Portland / Vancouver combo to Houston and Dallas.

9. Sushi / Thai / Indian / Teriyaki / Chinese

Let’s face it, Seattle is not known for its Tex-Mex. But once you get over that (if that’s possible), you can learn to enjoy the diverse range of Asian cuisine available here. I’m especially fond of the Sushi… and the Indian… and the Thai. Okay, I’ll only pick my top three.

8. Nerd Culture (VG Live, PAX, Microsoft, etc.)

The nerd culture is very strong in Seattle / Bellevue, and I kinda like it. This is true of Austin too of course, but in Seattle I have attended PAX and Video Games Live, neither of which I did in Austin. Most of my best friends in Seattle play video games with me, which is all kinds of awesome. For some reason my friends in Austin were much harder to convince to play video games with me – weird!

7. Stone Gardens, Vertical World, and Marymoor Park

Seattle is host to two competing climbing gym companies, Verical World and Stone Gardens, and this is a good thing. Between the two and the three Seattle / Redmond locations, you can go for an awesome bouldering experience, an awesome toprope/lead experience, or a mix of both. Vertical World even hosts an “outdoor club” in the summer which takes people out for climbing on Friday evenings. Awesome. These gyms are truly key for the rainy winter season.

Marymoor Park is also excellent, because it features a sizable outdoor climbing structure in the park where you can climb for the completely reasonable price of $1 to park. This is a great place to practice some crack climbing and leading, if you’re into that sort of thing.

6. Greenlake

Seattle has a lot of bodies of water all over the place. Lake Washington, Lake Sammamish, even South Lake, but my favorite is Greenlake. A relatively small lake north of downtown Seattle, this lake features a 2.8 mile bike/walk path which is absolutely beautiful in the summer. This is my favorite place to run 2.8 miles.

5. Mount Rainier

I’ve never climbed Mount Rainier, but on a really clear day you can see it from Seattle, and it looks awesome. Like a huge distant giant, guarding over the city. You can make a pretty good day trip out of driving around this huge mountain, taking in views from Crystal Mountain, Sunrise Lookout Point, and more. You can also see it from the air when you fly into or out of Seattle.

4. Long Summer Days

The northern latitude makes winters miserable, but the summers more than make up for it. The omnipresent rain goes away, the weather turns into sunny 70s nearly every day, and best of all, the sun doesn’t go down until 9pm in June. I’m not kidding, it’s amazing.

3. Snowboarding at Snoqualmie, Stevens, Crystal, Bachelor, and Whistler

Washington isn’t known for its snow, and it’s certainly no rival to Colorado, but compared to Texas, it’s a winter wonderland. There’s actually quite a bit of variety available between Canada, Washington, and Oregon, with Snoqualmie, Steven’s Pass, Crystal Mountain, Mt. Bachelor, and more. I haven’t even been to them all yet. And did I mention Whistler? It’s like the biggest mountain ever. Seriously. It’s much bigger than Vail.

2. Surfing at Westport

I had no idea when I moved to Seattle that surfing was even an option here. But it is, thanks to the small town of Westport. The city doesn’t produce waves, but the nearby finger jetty does, and every time I’ve been to Westport I’ve caught waves. You might want to check the surf forecast of course, but this town is only 2.5 hours from Seattle, and has 2-3 surf shops that you can rent gear at, as well as a couple great places for lunch or a post-surf snack/beer. Part of me wants to move to Westport just so I can surf every day.

1. Rock Climbing at Vantage, Exit 38, and Smith Rock

Between Exit 38, Vantage, and Smith Rock, you can easily go sport climbing within a half-hour, 2.5 hours, or 8 hours from Seattle, respectively.

Exit 38 is not particularly big, and I’m not super fond of the granite, but it’s a ridiculously convenient crag for its proximity to Seattle. Great for post-work evening climbs in the summer.

Vantage is easily my favorite sport area in Washington. It’s basically several lines of columnar basalt, varying from about 50 feet tall to nearly 100, and I absolutely love the way this rock feels. Since it’s located east of the Cascades in a somewhat desert-like part of Washington, it’s often hot and sunny here even when it’s raining and miserable in Seattle. Some truly epic climbs here, and I have only explored a portion of it.

Smith Rock is well known even outside of Oregon for being an epic place for sport climbing. There are literally hundreds of routes here, and they are stiff. It’s a bit harder to get to, since it’s about an 8-hour drive, but it’s definitely worth it for a long weekend.

In addition to these three, there are numerous other places nearby: Squamish in Canada, Index, Leavenworth, Darrington, Mount Erie, Tieton, and Mazama, half of which I’ve never even visited yet.

How To Install Perforce Source Control On Your Windows Home Server

Personal Source Control

If you’re a developer like me, chances are that in addition to the programming you do at work, you probably also have some personal projects that you work on at home as well. Whether you are consulting on the side, or just want to write your own applications, it may make sense for you to have a source control server of your own. There are many benefits to having a home source control system, including:

  • Having a backup of your source code
  • Access to revision history and previous versions
  • Single repository for source code across multiple machines

These are all very good things. It’s very reassuring to know that your source code will still exist on the source control server if your hard drive should crash and burn. It’s also nice to be able to revert to previous versions of your code should you irreparably break something. And lastly being able to easily synchronize source between multiple machines, such as your desktop and laptop, is very handy.

Why Perforce?

You can of course use any source control system you are most comfortable with. I used Perforce quite a bit at National Instruments, and it makes sense to me. I like the ability to have multiple changesets at once. I like that I have a consistent, semi-permanent mapping from my hard drive to the source depot. And most of all, I like that I can install it for free.

I also previously installed an SVN server, and was using TortoiseSVN for a while to check in code on my home network. This kinda sorta works, but… I don’t really like it. It’s hard to explain, but I am so familiar with the way that Perforce works that using TortoiseSVN is a pain. For example, it doesn’t seem like there is any permanent mapping between the source server and your hard drive. You can check out a folder to anywhere, and update a folder from anywhere, but it’s really easy to screw it up. And as for checking out code, well, it seems like you don’t check it out so much as you download it locally, edit it, and then try to commit your changes. I’m sure there are people out there that use it and love it, but I can’t wrap my head around the way it’s supposed to work, and I’d rather use a paradigm much more familiar to me like the one Perforce uses.

Installing P4D

You can download the Perforce Server, called P4D, from Perforce Downloads. I chose Windows for 32-bit Intel (x86) for my machine. Install it. You can pretty much keep all of the default options.

Once it’s installed, you can take a look at your system Services, and you should see that the Perforce service is Started and is Automatic.

Create a New User and a Depot

Use the command p4 user -f from a command prompt in the Perforce directory to create a new user. Your text editor will open a temporary file used to configure your user’s options. You can stick to simply editing the full name and adding a password.

Use the command p4 depot to create a new source depot. You will probably already have a default depot called “depot”, but I added a new one because I want it to be called Root, and I wanted it to be located in D:\Root\ on my server. As before, when you execute this command a temporary document will open in your text editor. Most likely you will just want to change the Map parameter.

Fix Your Firewall

In order to allow connections from other machines on your network, you need to tell your Windows Home Server to allow connections on port 1666, because that’s the port that the Perforce server uses by default. Open up your Windows Firewall Settings, select the Exceptions tab, and click on the Add Port button. Type in “Perforce” and “1666” respectively. Now your Perforce client should be able to connect to the server.

Installing P4V

Now you’re ready to install the Perforce Visual Client, or P4V, on your desktop or laptop. Again, you can download the client from Perforce Downloads. Go ahead and install. Again, you can leave most of the options as default, but you will want to change the server name to match the name of your Windows Home Server.

Go ahead and run the Connection Setup Wizard. You will probably have to manually choose your server name, and to login with the username and password you created on the server. Don’t bother copying files from the server to your workspace, as there are no files in your depot yet.

Once that’s done, your P4V window should look approximately like this:

Creating a Client Workspace

Perforce allows each user to have a set of client workspaces, which is essentially just a way of mapping the depot folders you are interested in to a local drive on your machine. Create a new workspace like so:

Enter a name for your new workspace; generally people use some combination of their username and machine name.

Now, you have to define your client spec. The most important two fields are the Root and the View. Here I set my root to D:/Perforce/Artemis_Hexar/. All of my source files will be under this directory. Next I set my View to a single line mapping of //Root/… //Artemis_Hexar/Root/… The ellipses are a symbol that means all subfolders and files. So here I’m just saying that everything under the Root depot should go under the clientspec, in the Root directory. You can do some interesting things with the View, including exclusions and inclusions, but it’s probably not necessary for our purposes here.

Now your client probably looks something like this:

Add Files to Source Control

Lastly, it’s time to add some files to source control. Take some files that you want to add, and copy them into your clientspec root. For me that means D:\Perforce\Artemis_Hexar\Root\. Next, click on the Workspace View tab so that you can see your local disk tree instead of the depot tree. Right click on the files/folders you want to add and choose “Mark for Add…” This will add them to the default changelist.

Lastly, right-click on the default changelist and submit. You should write a comment on the reason for the change, and make sure you really do want to submit all of the files in that changelist. Now, if you go back to the Depot view, you can see that your files have been added to the depot, and you can check them out for editing, deletion, or rename.

Conclusion

So that’s it! Congratulations, now your personal projects have professional source control. Check in some code, and celebrate with the food/beverage of your choice.

My Favorite iPhone Apps (So Far)

Why I have an iPhone

So I recently won a free iPhone 3GS 16GB because I entered my name into some kind of online contest. Amazingly, the day after I submitted my name I actually won, and about a month later my iPhone came in the mail. Being a cheap bastard, and afraid of signing a 2-year contract with AT&T, I declined to get a data plan but I kept the phone anyway so that I could play with it like a shiny new toy.

Anyway, I thought I’d go ahead and share my favorite iPhone apps so far:

Facebook – Free

This one is a no brainer. It’s just like Facebook.com, except with a more intuitive interface for the iPhone. Not all of the functionality is there yet, but still, this is the fastest and easiest way use Facebook on the iPhone without doing some kind of weird zooming dance with your fingers in a Safari browser.

Twitterific – Free

I haven’t tried any other Twitter apps, but this one works pretty well. Since I don’t spend a huge amount of time on Twitter this is good enough for me. Your mileage may vary.

Skype – Free

Thanks to Skype, I can use my iPhone like a phone, without paying AT&T a dime. I still have to pay Skype of course but hey, it’s pretty cheap and it works internationally. As long as I have wifi access.

Pandora – Free

Internet radio for free on your iPhone. This is for when I get bored of listening to all of the music I already have. Of course it would also be nice if my iPhone supported actual AM/FM radio but this is the next best thing.

SpanishDict – $1

I had a hard time finding an English-Spanish dictionary that works without Internet access, and this one does. It actually also has several other features, like a word game, some key phrases, a daily word, etc., but mostly I use it for the dictionary. This came in super handy in Colombia a couple of times actually.

Spanish! – $1

Yes, another Spanish app. This one is a pretty awesome flashcard application, with 1000 Spanish words built in. It somewhat reminds me of SuperMemo, in the way that it introduces new words to you slowly and as you master words you see them less often, whereas words you miss a lot show up more often. You can try to remember the English definition of Spanish words or vice versa, and it will even pronounce all 1000 Spanish words if you touch them. This app is a really awesome way to build your vocabulary, and much easier than making your own set of real-life flash cards.

Fling! – $1

Fling is an addictive puzzle game where you basically try to fling a set of furballs in a grid toward each other in order to knock them off the board, until only one furball remains. The gameplay is simple, but the puzzles get increasingly more difficult to sequence. This one is definitely a good way to waste some time if you need to do so, for example on a long bus ride or while waiting for the waiter to finally take your order.

Cube Runner – Free

A simple “racer” type game where you steer by tilting the iPhone itself, and the object of the game is to make it through a random field of cubes without hitting any at increasing speeds. There are three difficulty levels, but even on Easy you’ll be challenged to beat your own high score.

Flight Control – $1

This game is my latest obsession, and several of my friends’ as well. Basically a random sequence of different planes enter an airfield and your job is to touch and drag them into a path that will land them onto a runway, or in the case of helicopters, a landing pad. The object is to land as many aircraft as possible without any of them hitting each other. Add in some tricky things like planes of different speeds and this game becomes a really challenging multitasking clusterfield, if you will. You can also send planes to a buddy while playing multiplayer mode on wifi or Bluetooth. Definitely check this one out.

Your Favorite Apps?

Go ahead and leave a comment and tell me what your favorite iPhone apps are. What am I missing?

Internetizing My Ethernet-wired Townhouse

Sweet Panels

When I first moved into a new townhouse, one thing I was very excited about was that nearly every room in the house had a panel with not only a cable port and a phone jack, but an RJ-45 jack as well. In other words, it’s wired with Ethernet ports all over the ‘house.

So the first thing I did, naturally, after connecting my cablemodem on the main floor to my wireless router, was make sure my wireless internet was working. It was, but the signal wasn’t so great on the bottom floor, where my desktop is located. In fact it was a bit flaky, giving me a hard time connecting initially and also having random disconnects. Not so great. In order for me to get reliable internet, I’d have to either run my 50-foot ethernet cable from the main floor to the basement, or I could get these ports to work.

Maybe it will just work?

Ever optimistic, I plugged in my desktop into the wall, and then I plugged in an ethernet cable between my wireless router and the wall. Maybe there’s a switch or something somewhere! Maybe it will just work!

Well, it didn’t. My computer was complaining about a network cable being disconnected. I assured my computer that I really did connect an ethernet cable from it to the wall but it still wasn’t happy.

Internets to the rescue

I did a quick search, and I can’t remember what I searched for, but the forum responses mentioned something about opening up the patch panel in the master closet. After removing the panel with the help of my trusty screwdriver, I found this inside:

At first I was a little confused. It looked to me like all these ethernet wires were already connected in that circuit thing. But what were the ports for then? That’s when I realized, these ports are just wired up to the cables, and are not connected to each other in any way. They just happen to be in the same junction box. To connect them, I’d need my own separate switch; ideally the internet connection from the wireless router would be able to connect via the switch to all other clients and give them IP addresses and internet access. That was my theory. So I rounded up my switch and as many cables as I could find and here’s what it looked like:

The Test

Anyway, I went back down to my computer, disabled/enabled my ethernet card, and prayed for mercy (and an IP address). Sure enough, I got 192.168.34.5. Good news! Now for the real test:

It works! Yay! And just in case you were confused, here’s a diagram:

Hope this helps anyone else who found themselves in possession or rental of a home with pre-wired Ethernet ports.

Musings on PAX 2009

Having recently moved to Seattle, this year was the first time I was able to attend the Penny Arcade Expo, despite having heard quite a bit about it during my frequent trips to penny-arcade.com. Unfortunately I only managed to secure tickets for Friday and Sunday, because the 3-day and Saturday passes sold out before I finally got around to buying tickets.

Panels – Friday

Game Design 101: I attended this panel thinking it might have some insight on some basics on how to design a game that would be interesting and fun. But the panel focused more on giving advice to aspiring game designers, some discussion on the difference between game writers and designers, and anecdotes from the game designers’ careers. I was a bit disappointed with this one.

Breaking into the Game Industry the Educated Way: I really enjoyed this panel; several panelists from gaming universities and businesses offered their opinions on the value of pursuing a degree in a games program, such as the ones offered by Digipen and Guildhall SMU. For one, attending a multi-year game development program shows that the student is willing and able to make a commitment to making games, and offers the opportunity to make lots of games and develop lots of contacts. But of course you have to weigh that against the tuition and opportunity cost as well. Ultimately, the consensus opinion was that a successful applicant to the highly competitive games industry needs to demonstrate their experience with game programming with as many high-quality game projects as possible, whether created in an academic setting or on your off-hours.

Penny Arcade Q&A #1: I don’t remember too much from this Q&A panel where Gabe and Tycho fielded questions from the audience, but I do remember that I was laughing almost the entire time.

Panels – Sunday

Penny Arcade Q&A #2: Also hilarious. This was the first panel I attended on Sunday.

Retronauts – The Secret Best History of Gaming: This was a humorous and interesting panel where the members of 1Up’s Retronauts Podcast showed their favorite old-school Penny Arcade comics and how they demonstrate a historical perspective of gamer sentiment over the years, including topics such as Dreamcast and Daikatana. Very amusing.

I also missed several panels that I would have liked to see, including Wil Wheaton’s Awesome Hour, The Guild Season 2 Screening, and of course all of the panels on Saturday.

Expo Hall

It took me a while to find the expo hall, because it was so far away and hidden from the rest of PAX. However, this was definitely the most interesting way to waste time between panels and events. I got to play 20 minutes of Starcraft 2 and 10 minutes of the new WoW: Cataclysm starting zones, played a quick team battle of Global Agenda, and got lots of swag. I also watched some other players play Diablo3, and saw a demo / Q&A of the new DotA “killer”, League of Legends.

PC Freeplay

This was the other main way that I wasted time inbetween panels and events. It was strangely fun playing Team Fortress 2 and Counter-Strike: Source with some other random PAX attendees on the LAN. I also had enough time to check out the game that Tycho and Gabe produced, On The Rain Slick Precipice of Darkness. It was actually pretty fun. The free play area was sectioned off from the Bring Your Own Computer area, and during all three days there were game contests going on for various games.

Game Rooms and Console Freeplay

I was blown away by what was going on in the Console Freeplay room, where basically you get assigned a TV and a console, and can borrow games to play as if it was a library. They also had high score contests on some classic games like Mike Tyson’s Punch Out and Mega Man 2, but unfortunately I didn’t get to spend much time in there. They also had a number of game rooms for Magic the Gathering and various board games, such as Settlers of Catan, which I also missed out on.

Concerts

I missed the Friday night concert because I had some friends who were hanging out in the bar at GameWorks. I heard it was pretty good, but so is grabbing a pint with some friends.

Signatures

I waited in a strangely short line to get Jeff Lewis and Sandeep Parikh’s autographs. You know, those hilarious guys from The Guild? I also spotted a short line of people standing in front of Tycho as I was finishing up my Taco del Mar, and got him to sign my Instruction Book. He seemed like a real nice guy and I only had to wait like ten minutes.

Summary

All in all, it was a very fun event, and I only wish I had had more time and more friends who had come. Next year I will probably get my ticket much earlier and convince my friends to come with me.

Top Ten Things I Miss in Austin

10. MoPac and 183

I never thought I’d say that I miss an intracity highway, but there’s something to be said for a 3-lane highway that can get you from the tech suburbs to downtown in 20 minutes. My typical commute from the U-District to Microsoft in Seattle is about an hour on 520 (a 2-lane highway), so I definitely miss being able to get around town fast.

9. Barton Springs

Barton Springs might be the coldest body of water in Austin, but it’s also one of the coolest. The fact that Austin decided to turn the springs into a public swimming pool, complete with diving boards, is pretty awesome. It’s best to go on a really hot day and alternate between freezing your skin off and drying off in the sun.

8. Brisket – Rudy’s, Salt Lick, County Line

Austin has some of the best BBQ in the country. Where else would you find affordable and delicious fast food barbecue than at Rudy’s? And you really can’t beat the cash-only BYOB experience at the Salt Lick. Their brisket is absolutely amazing.

7. Town Lake (aka Ladybird Lake)

Town Lake has everything you could ever want in a jogging trail. Variable distances, nice dirt paths, a great view of the water, and even a dog park! Plus there’s free water. Thanks RunTex!

6. Austin City Limits

Three days of fun in the sun and all-you-can hear music at an affordable price in Zilker Park. Some of my favorite bands over the years have been Muse, Cake, Sheryl Crow, John Mayer, Blue October, Regina Spektor, Ghostland Observatory, Guster, Brazilian Girls… I could go on and on.

5. Lake Travis

Party barges, cliff diving, and scuba diving are among the few of many activities I have participated in at Lake Travis. All of them were incredibly fun. The water is so warm in the summer you don’t even need a wetsuit, even if you’re 60 feet underwater scuba diving. Lake Travis more than makes up for the incessant Texas summer heat.

4. Sixth Street

If you haven’t heard of Sixth Street yet, you probably haven’t heard of Austin. A street so populated with bars and so popular on Friday and Saturday nights that the police closes off traffic in preparation for all of the stumbling foot traffic. Vendors sell pizza and the best wurst you’ve ever had after the bars close, and let me tell you, it’s delicious.

3. Tubing on the Guadalupe and Comal Rivers

I love tubing on the Guadalupe River. Spending the whole day laying around, having fun with your friends, and shooting through the “rapids”. Okay, so they aren’t that fast, but they are fun.

2. Tex Mex – Trudy’s and Chuy’s, even Taco Cabana

Finding great Tex Mex in Seattle is like trying to go snowboarding in Austin. No matter how hard you look, you just won’t find it. Trudy’s has both delicious stuffed avocados, and potent Mexican Martinis. Chuy’s has a Chuychanga that is easily my favorite chimichanga ever made, and their secret jalapeno ranch salsa makes tortilla chips into a dessert. Even Taco Cabana, a fast food joint in Austin, has some pretty tasty eats.

1. Friends

Since my first foray into Austin as an intern at National Instruments, the friends I made were the reason I was able to do so many fun and exciting things, because without friends to share them with, they would have just been things. To those of you I left behind in Austin, I miss you and I hope you visit Seattle soon.