Sunday, July 31, 2011

The deal Michelle Bachmann prefers

The deal Michelle Bachmann prefers
Michelle Bachmann says that the American people believe that the deal that was reached doesn’t cut enough. So one must wonder: is she completely out of touch with America, or does she know she’s lying and just pandering to her base? Every single poll about taxes reveals that the majority of Americans support increased taxes on the rich and corporations.

Americans favor reducing the deficit in this order:
  1. Raise taxes on people making over $250,000/yr and corporations.
  2. Cut non-benefit programs.
  3. Raise taxes on themselves.
  4. Cut benefit programs (e.g. Social Security and Medicare).
The most ironic thing about what Michelle Bachmann has said is that no one actually disputes this. Again, every single poll supports this. What’s interesting is that, if you look at poll results, people making over $100,000/yr actually think that it is necessary to raise taxes on themselves. This speaks to a tremendous sense of civic duty still present in American citizens - one that Michelle Bachmann seems to think doesn’t exist and is morally wrong.

Even economists agree that cutting spending in times of economic crisis is the exact opposite of the correct reaction.

So, again, I ask: is Michelle Bachmann out of touch or lying?

Saturday, July 30, 2011



I just went to download Xcode to do some Python programming, and it turns out the App Store gives no feedback for how far along you are in the install process. For something that’s a three gigabyte download, this is completely unacceptable. I had to open the Activity Monitor just to see that it was, indeed, downloading.


EDIT 1: It’s finished downloading, at least according to the Activity Monitor where my network usage dropped sharply. Still no feedback.


EDIT 2: Apparently all it did was download the “Install Xcode” application and I needed to run it manually. Would have been nice to receive some notification instead of just saying “Installing…”

Friday, July 29, 2011



This chart is exactly what’s wrong with America. Is it important to stick to your principles? Yes, it is, but at some point you have to realize that you can’t always get what you want. The Rolling Stones knew it, and most children learn it by the age of 10. It’s unfortunate that some of our country’s leaders have apparently never learned this lesson.


This current issue with the debt ceiling is the perfect example of that. If we don’t get this resolved, it could have serious ramifications for our country and, indeed, the world. Yet, it’s an issue that Republican leaders have tried to politicize. Not only that, they’re unwilling to compromise. John Boehner’s bill to raise the debt ceiling actually included a requirement to amend the constitution. This is probably the most ridiculous thing I’ve ever seen.


Here’s a great statistic from CNN: since 1962, the debt ceiling has been raised 74 times.


So, why not this time? Why is something that is typically a non-issue suddenly being used to further political ends, at a potential great cost to our country and our world? You’ll have to ask the 240 Republicans in the House (i.e. all of them) who voted against raising the debt ceiling at the end of May.

Thursday, July 28, 2011



This is some of the stuff I’ve been cooking lately. I’ve been making a lot of food that I can make big batches of, cheaply (mostly pasta, rice, and sometimes sandwiches where I prepare a bunch of meat one night and just use that for the rest of the week). The first picture is a sauce of mushrooms, white wine, and cream over rice. The second is cheese tortellini and shrimp in a four-cheese sauce (this wasn’t cheap, but it was delicious… also took the least amount of time to cook out of all of these because the sauce was premade). The third is rigatoni with mushrooms and bacon in a rose sauce.



These are the long-promised pictures of Google’s office. The first picture is of my desk - I can see the mountains out my window! The other pictures are from the rooftop deck, where I eat lunch a lot. It’s got a fantastic view of the mountains and on sunny days, it’s gorgeous. Unfortunately we’ve had a lot of overcast, rainy days recently…

This. Is. Awesome. This is a fantastic version of a fantastic song.





Wednesday, July 27, 2011

Project progress

I got the go-ahead to talk about my project (in vague terms) so I thought it’d be interesting to talk a bit about what I’ve been working on as well as what the state of it was.


First, the project itself. I’ve been working on making Google Groups more dynamic - suggesting relevant, interesting, and popular topics and groups to users. That’s about as much depth as I can give, but it’s extremely interesting.


My two main deadlines are this Friday and September 9th. I’ve basically finished everything that I needed for this Friday, which was most of the stuff on suggesting relevant topics to users. I’m hoping I’m on track to be done well before the September 9th deadline as well, which is everything else.


I’m learning a lot about subjects I hadn’t expected to learn anything about. I’m learning about front-end design, back-end design principles, and best practices for enterprise applications. It’s great to be exposed to ideas I’ve never had to think about before, and also great to be able to take a lot of these concepts and apply them to my own projects (e.g. when I was doing my rewrite of my anagram solver I converted it to a Model-View-Presenter [MVP] style).


So far, this has been an extremely rewarding summer and I’ve loved every minute of it. I hope that the last half will be just as good.

New pretty web layouts, or: thank you Google Web Fonts

Over the past few days I rewrote the UI both for this blog and for the aforementioned anagram solver. I didn’t like any of the available Tumblr themes, so I wrote my own in a much more minimalist style.


I did the same thing with my anagram solver, but a lot simpler - just black and white.


What really saved the day was Google Web Fonts. It’s a really neat concept: basically, you load your font from Google and then you can use whatever font you like without needing to worry that your users have it installed. They have a large selection of clean, modern fonts and it was the work of probably 30 seconds to get a font set up and loaded and it vastly improved the quality of both my anagram solver and my blog.

Saturday, July 23, 2011

A day of disappointment

I’ve had some free time lately and I finally got around to improving and polishing my Words with Friends anagram solver like I’ve been meaning to. I converted it from HTML + jQuery to GWT with a declarative UI, and it’s a lot nicer - both in terms of the codebase and the UI. Adding more of a split like that also allowed me to throw in some unit tests, which gave me the confidence to play around with my original algorithm.


I changed it to alphabetize the words before it adds them to the Trie (e.g. “dog” and “god” become “dgo” and are both stored at the same node). This will reduce the amount of time that it takes to look up any word by a significant margin. If you have the letters “dofga”, it will now alphabetize it to adfgo and then it only needs to look up adfgo, afgo, ago, ao, dfgo, dgo, do, etc. as opposed to every permutation of those letters.


There was a problem, though. It did significantly increase the speed of looking up words. However, any time where you specify necessary start, contains, or end strings it now needs to add all those letters to the word that is searched and filter the results at the end. This is a major use case and it is much slower, leading to an overall decrease in speed so that I had to revert all the changes.


After that, I decided that I wanted to persist the dictionary structure in the Datastore to reduce the long (~30s) wait times whenever Google App Engine needs to spin up a new instance. It took me a couple hours to get this set up (I’ve never worked with the Datastore before). I actually needed to rewrite a portion of my algorithm because the Datastore doesn’t support persisting any sort of map, which is what my Trie structure is based off. After I finally got all of that working, I found out that the object I was trying to store in the Datastore was too large, and I had to revert those changes too. Great.

Tuesday, July 19, 2011

Wednesday, July 13, 2011



Sorry I’ve been lax in posting… I’ve been extremely busy. When I enjoy my work, I work a lot and I’ve really been enjoying my work, and I’ve really been working a lot. Last Friday I presented my proposal for my summer project, and after a meeting that went way longer than it was scheduled for, I synthesized all the feedback I’d received with my original proposal. This week I’ve started the work on that. I’ve got some tough deadlines to meet, but some really exciting work ahead of me this summer.


Despite all the work, I’ve still been making time to have fun. These photos are from two weeks ago where I went white water rafting over the weekend with some of the other Google interns and some interns from NCAR. Last weekend, I went to Breckenridge as a Google-sponsored event, so I got to meet more of the interns that I haven’t met before.


Meanwhile, I’ve signed up for some fun events at the Google office - a Design Patterns book club and an Advanced Java lecture series. The book club meets during lunch every Wednesday and the lecture is every Tuesday afternoon. We had our first book club meeting today, and, while the material we covered so far was more or less intuitive (I already knew it, though I didn’t know it was any sort of defined/formal “pattern”), I learned a lot from the discussions. That’s the great thing about Google, so far - there are all these brilliant engineers who have been writing code longer than I’ve been alive, and I get to work with them every day.