Friday, December 17, 2010

Word Lens

This is so awesome:

I just downloaded the app to my iPhone, and it works impressively well. The app is free with a demo mode that reverses words, and language packs are $5. The best part is the whole app works offline, so it works, you know, when you actually need it.

I did buy the Spanish to English pack for emergencies, but this picture is really fun so I'll post it instead. Can you read it? (iPad is apparently not in their dictionary.) Note the crazy angles and it even got my keyboard keys!

Sunday, October 31, 2010

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.

Be sure to watch the episode videos.

Saturday, October 30, 2010

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.

Friday, August 20, 2010

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.

Tuesday, June 15, 2010

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.