Put this on blog

I have begun to love reading the Put This On blog. It’s a different perspective on life than I usually get. Granted, a materialistic one. However, a lot of the posts and links are paired with some pretty astute social commentary. For example,

You don’t need more. You need better.

http://putthison.com/post/1412501470/in-2008-americans-owned-an-average-of-92-items-of

Be sure to watch the episode videos.

Awesome camera bag

I just got a new Nikon D3100 digital SLR camera. I’ve always wanted to learn more about photography and have more control over my photos, and with our honeymoon coming up it seemed like a good time.

The D3100 is a pretty entry level camera. I liked it because Nikon is what a bunch of people I know use so there’s potential for Lens swapping. The main features I wanted were small body size, fast shutter, and the ability to shoot video and geotag (that part is an extra attachment).
Along with my camera, I decided to get a new bag. We are going to the caribbean so I wanted a bag that would protect my camera, had the highest quality, but didn’t look like a camera bag at all. I found that at Saddleback Leather.

And it fits my camera, plus many future accessories very well. (That’s my iPad sitting horizontally in the left side pocket too!)
That’s the Chestnut large satchel. I love the size and quality of the bag. It’s expensive, but as I told my wife, “It’s the same price as a decent Coach bag, but it’s got a 100 year warrantee.” It also just looks so classy.
There are a couple cons to be aware of if you are considering this bag. It comes stiff, and without zippers and snaps (that could break) it’s not the quickest bag to get into. I’m already noticing it get broken in and that’s helping. It’s also heavy, and the strap is too long. The length is so it can be converted to a backpack, but I don’t see myself doing that.
But after using it this week, I am very pleased with my purchase and I think it will serve me well for a long time.

Engineer’s guide to getting married: Pt 2

We’ve already covered getting the ring and proposal, so now let’s talk about planning the wedding. If you’re lucky like me, your fiance is a super organized planner. If not, here are some things you might want to recommend.


Spreadsheets. Our whole wedding, plus a dozen alternate weddings we could have had, is documented through spreadsheets. We used Google Docs because you can easily share and collaborate.

There are certain benefits to picking and choosing between existing customs and not being tied down to one. We chose to do an Asian banquet style reception, meaning the location, food and service were all wrapped up in one price. It was a big price, but only as much as just the food would have cost elsewhere. But we also had a christian wedding and a Vietnamese tea ceremony so it was a lot of fun.

Cake: trials are awesome, and I think cake makers are kinda lonely because they seemed to love to have us come try their cake and chat with us. In the end, we liked the cake best from a Vietnamese bakery and it was so much less expensive.

Photography: For us, having a strong director as photographer was really useful. He had the authority to move the whole group of people or tell everyone to be quiet. I’m sure there will be other strong personalities that want to take control, but I highly recommend getting a photographer who can and will direct.

I don’t have as much to say about that as I thought I did. And that is the final lesson, guys. Have an opinion but don’t say more than you need to keep the ball rolling. She has so many ideas and life long plans that she’ll never need you to come up with an idea, just to put to rest the multitude of options she’s set herself up for.

The last part will be honeymoons, which will have to wait because we haven’t taken ours yet!

Engineer’s guide to getting married: Part 1: Rings

Yup, long time no bloggy. I’ve been working on a special project that’s going to reap rewards for my entire lifetime. That project is foreign to many men, especially engineers so I attempt to distill the past 10-11 months into one place.


~% man marriage
Usage: sudo marriage -proposal
You can’t just walk into a ring store and choose the one with the best specs. Not only is the ring a girl’s most anticipated piece of jewelry, it has to be with her every day for the rest of her life. So it has to fit her personality, her style, her lifestyle, and hopefully your budget. Therefore, I can’t give any advice on what to look for in a ring but I can recommend that you look at rings together and strongly consider letting her choose or design the ring herself. In my situation, we went to a bunch of ring stores and she showed me a ton of characteristics about rings that she really didn’t want. So I had to figure out what a ring would look like that didn’t have those characteristics and try to convey that to the jeweler.
Some of the features I had to avoid were:
  • No bezeled gems: They don’t let enough light in for full sparkly goodness
  • No barrel cut gems: They look glassy and fake
  • No encrustations (lots of little diamonds)
  • No asymmetric rings
  • Nothing that sticks out too much or has sharp corners
  • No yellow gold
  • Nothing too thick or heavy for her delicate hands
  • Classic looking without being common looking
  • No diamond as the main stone, but auxiliary diamonds ok
You would need to know where your girl stands on these issues, because some are make or break in either direction for your particular bride.
As for giving her the ring, you should know what the answer will be before you propose. The time and location can and should be a surprise. I ended up taking off a day of work unbeknownst to her so that I could get the ring before our trip to Colorado. She knew I’d propose eventually because of the ring store trips but really didn’t think I’d have time to get it done. Us guys tend to act so abnormal on the day we propose that she always knows something’s up by the time it happens.
That’s really enough for one post, so I’ll make this a series. Tune in next time, same Bat time, same Bat channel.

Using git for sync and backup

Nerd alert! I need to put this list of instructions for using git somewhere so it’s going here. I hope it might be useful for someone else too.
Why: One of my most valuable assets at my job is a directory full of sample code projects I’ve created over the years. Sometimes, it’s a command line tool such as “nsdictionary” which I created to test something with that API, or sometimes it’ll be a full App like “ThreadedQCLayersAndBindings” which tests complicated interrelationships. They were quick and dirty, taught me something specific, and useful as templates for future exploration and now I can’t bare to lose them.
As with any set of files, there’s two main concerns: backup and synchronization. Backup is really two parts
  1. If the hard drive fails I want to have stuff stored on another disk.
  2. If I change a project by experimenting and that experiment fails, I want to be able to revert changes quickly and easily across all files.
Synchronization just means I want to have my desktop and laptop in sync.
There are lots of tools that could work… Rsync, svn, cvs, rcs, etc. Each have their merits, but in the end take too much time to maintain or don’t provide enough features to be worth the time to set up.
Then I heard glowing reviews about Git and how it’s a distributed version control system. So I gave it a shot. Here’s a mini tutorial, if everything you’ve read (or skimmed) sounds good:
The setup: Mac Desktop and Mac Laptop and I mount the HD of one on the other over AFP. This is NOT a tutorial for setting up a git server. There may be plenty of those but that’s more than I wanted to accomplish so I didn’t even read them. Git is installed by default on Snow Leopard so this is also NOT a tutorial for setting up Git on Mac OS X. This is glorified Rsync with revisions.
1.) Create a Git repository for revisioned files
cd /Volumes/DesktopHD/Sources/tests
git init
git add -a
git commit
Yep, it’s really that easy to set up git. At this point, you can track history through the log of commit messages, and roll back as necessary.
2.) Mount the LaptopHD over afp:// by browsing in Finder, or whatever you’re used to. This also probably works for iDisk and other transport types but for now, we’ll call it LaptopHD.
3.) Clone the repository of tests to the mounted drive
cd /Volumes/LaptopHD/Sources
git clone /Volumes/DesktopHD/Sources/tests tests
cd tests
git fetch
Wow that’s pretty easy too.
4.) Add the tests I’ve already created on the Laptop to the repository
cp -r /Volumes/LaptopHD/Sources/old_tests/* /Volumes/LaptopHD/Sources/tests
git add -a
git commit
Woo I’m invincible!
5.) Then I wanted to push the new files back to the desktop (remember right now I’m at /Volumes/LaptopHD/Sources)
git push ##Don’t do this
What the… NOOOOO!!!!!! What have I done!?!?
Only use git push if you are smarter than me, which isn’t possible so just don’t. The designers put this in by mistake and it’s really horrible (I’m just being inflammatory now so somebody will come along and correct me. That’s how the internet works; I don’t question it.)
First, the correct thing to do in a setup like mine:
5.) Go back to each place that’s out of date and pull the changes back
cd /Volumes/DesktopHD/Sources/tests
git pull /Volumes/LaptopHD/Sources/tests/.git
Now the reason git push sucks:
When I did git push, I went back to DesktopHD expecting the files to be there. They weren’t so I did a git pull. Nope, files are up to date. I did a git status on the LaptopHD version, everything was checked in. Back on the DesktopHD version I did git status and all my files were in the status and marked for deletion. What??? So I killed that repository, started from scratch by copying files from the LaptopHD and did all the steps again, except with the second step 5 rather than the first.
Searching online, it looks like maybe there’s a way to set up a –bare repository and use hooks to automatically forward to your main repository or something. Crap on that. It’s easier to understand, “This is a distributed versioning system, you always pull your changes from elsewhere” and with a couple git remote add commands, pulling from multiple sources is pretty painless.
So there’s my story. I really like git now, just so long as I don’t use git push ever.

Kick Scooters

Thu and I got Xootr kick scooters last weekend. They are pretty awesome.

Despite California being so environmental, it’s a major pain to ride a bike here. Yep, California, you suck at green. On the road, bikers are lucky to get a lane for themselves. But even then, the severe lack of driving skills scares me off the road. To top it all off, bike racks are super rare. I could take my bike in with me to my appartment I guess, but at the grocery store? restaurants? my office? Not so much.
Where scooters win is their portability. You can ride on the sidewalks and then fold them up and carry them with a shoulder strap.
In high school, having a car was freedom. Now I feel the same way with a kick scooter because I can go further than walking, but I’m free from using oil. With all the anger over BP’s fuckup, it’s nice to be able to actually do something about it.

Fixing things

My beloved Mac Mini died a while ago. The hard drive went out, so it failed to boot but I had it backed up (Go Time Machine!) so I didn’t lose anything. This would be a pretty epic failure for most, but I’m a computer guy so it wasn’t a huge worry for me.

This weekend, my car’s dashboard lit up with a “Check Tire Pressure” dummy light. I was freaked. I thought sure it would be a trip to the dealer, a couple hundred dollars and/or lost time to get it fixed. (I really didn’t assume it was ACTUALLY just tire pressure, but that’s because cars are a mystery to me.)
Well today, I fixed both; and I’m quite pleased with myself.
I ordered a new laptop hard drive from Amazon, cracked open my Mini, detached the WiFi antenna, unscrewed the mother board from the housing, detached the hard drive, slid in a new one, and got everything back together and it works!
But the thing that really stressed me out, was this car light. I couldn’t see any difference in the tires so I thought it was a bad sensor. But when I took the pressure of each tire and compared it to the manual, I discovered that the front driver side wheel was 20 psi when it should be 35. So I filled it up with $.75 of air and the light went off! It’s called a dummy light for a reason.
So tonight I’m celebrating the small victories in life. Here’s to proactive backups and easy car maintenance!

Dream Merger

I’m getting married! I’ll start from the end and work backwards.

Most recently, we put up our website at http://www.DreamMerger.com/, so I can finally blog and link to it. You can also just google for [Troy and Thu Wedding] because we’re awesome and have the top hit. You’ll have to do that because we don’t yet have a lot of details like time or location (who said you’re invited?) but you may read our stories and get to know us. We’ve always joked how an Apple and Google employee would be like a corporate merger, hence Dream Merger.

Secondly, the proposal was accepted in Boulder, Colorado under the beautiful Flatirons while we took a 4th of July holiday. Boulder is a special place for me, and I selfishly wanted to plant pleasant memories in Thu’s head of the most beautiful place in the world. I don’t think I needed to buy a rock for that, but it didn’t hurt.

And firstly, the ring I selected is a sapphire stone accented by small diamonds. Thu and I had been shopping so I could understand what she liked. Instead, she told me all the things she didn’t like and I took lots of notes on my iPhone so I could extrapolate what she wanted. Wanting it to be a surprise, I took the day off work and rode the Bart into San Francisco to the San Francisco Provident Loan Association where Ben and Allison made me an extremely happy customer.

Jump back with me to WWDC ’09 (2 months ago), I had just finished presenting Quartz Composer to hundreds of raving developers and knew I’d finally have some time to go ring shopping. SFPLA was the highest rated jewelry store on Yelp so I walked up to Mission street where they are located. For those of you who know San Francisco neighborhoods, Mission district can be -colorful-; so it comes at no surprise that the building looked like a cross between a 1920s bank and a jail with bars on the windows and thick plastered walls.

But the ominous exterior was no indication of the attitude within. I met Ben for the first time, and he made me feel so comfortable answering my questions about rings, giving me advice about the proposal itself. He recently got married himself, so it was like having an older brother in the jewelry business. I felt no pressure at all and he was very knowledgeable.

Contrast this with some of the places that Thu and I went after that day with shoddy quality and low customer service. The sales associates would push certain styles and “bling” on us. One place even tried to pass the softer, cheaper tanzanite off as sapphire while whispering to each other in vietnamese. Never go ring shopping at the Grand Century mall in San Jose!

So I played hooky and returned to SFPLA on the last day of June. Thu and I were leaving for Colorado the next day, so I didn’t have much hope to buy a ring in one day. I talked to Ben some more, and also met Allison who reminded me of a conspiring little sister. She was so excited by my ring selection and it really balanced Ben’s stoic humbleness so I felt both confident and excited by the duo.

The two of them were able to get it done, even going so far as to shut down the jewelry portion of the store in order to rush out to their gem suppliers to get me stones to look at, brought the different choices out of lockdown into the sunlight and within reach of that shady Mission neighborhood, then put a rush order on the setting and cleaning so it could be done before I left the city that day. It was all so perfect, and I cannot say enough about them, or the ring that Thu very much enjoys.

As I rode the Bart back home, I texted Thu, “I finished everything I needed to get done before we leave.” just to keep up the charade that I had worked all day long.