Tuesday, September 2, 2008

Google Chrome

Go get Google Chrome. Its fast like LIGHTNING!

Labels:

Sunday, August 31, 2008

Android/App Engine prototyping problems

Almost a year ago, Google unleashed its Android SDK in a preview capacity. One of the pain points I experienced with it was the tedium in creating ContentProviders. Today, I'm feeling the same tedium. A ContentProvider is the sole mechanism for an android application to share information with external packages. ContentProviders can be backed by any kind of data, file, database or live server with custom backend. The popular method is creating a ContentProvider that is backed by a database. Creating such a beast is a time consuming operation and making it with a SQL database is quite contrary to the BigTable based datastore API in Google App Engine (GAE).
In my top secret project, I'm using the HttpClientService api that I've defined in my Missing SVN repository (the top-secret project is indeed different than Missing) to interface with my server. Currently, the client does no caching of data -- all information it needs is pulled at user request, from the interwebs. When testing on my local machine, this is not a problem. I have a fast workstation and there isn't much packet loss or latency on a loopback interface.

Unfortunately, this won't work in the "real world." I'm now at the point where I have to implement a sql-lite backed ContentProvider that tries to model a table-based GAE datastore api. Not only does this mean I have to keep track of two different schema, one for GAE and one for Android, but it means I have to implement the same "get my data" api twice, with a layer of abstraction between the android UI and the ContentProvider I'm resenting having to create.

What I'm considering doing is using something like Google's Protocol Buffers or Facebook's Thrift to define my data model and create stub interfaces for both GAE and Android. This seems like a bit of overkill for the current state of my project but even in the not-yet-ready-to-show-anyone stage of this project I'm having to consider these very-high-time-cost coding excersizes. This is going to consume time when I should be iterating on features and trying to get the app in a state where I can finally start to use it. I think I've proto-typed the android app as far as I can go but I don't want to start spending hordes of time on this when I have several core concepts not-yet-implemented.

I'm also feeling the pain of knowing that the stuff I prototyped at the beginning of the project are going to have to be fully re-written and if I don't provide a more featureful content provider.

One of the ways you can provide an abstracted interface to the ContentProvider is by wrapping it in a Service, which of course requires yet another interface declaration, this one with java primatives and simple classes using the AIDL interface spec provided by Android. I figure I'll have to cross that bridge some day, I'm just glad I don't have to do it right now.

Labels: , , , , , ,

Thursday, August 28, 2008

Google Ajax Search

You see that search box in the upper right? I bet you never use it. I use it all the time though. I think its amazing. I'm glad I added it. It helps me find things I've written about before. Its like my own little search engine, just for me.

Labels:

Tuesday, August 5, 2008

Shamu on Google Maps!


View Larger Map

Labels: ,

Sunday, May 11, 2008

quotesdb - Quotes Database on Google App Engine

I took a day off of work recently to take a stab at Google App Engine. I'm already using it experimentally for my game, Missing. But I wanted to see what I could put together in one day. I'm not much of a programmer but the results are impressive to me. In about 6 hours I now have an app running on my site that hosts profiles, quotes and descriptive text for any quotesdb need... in 300 lines of code. If you go to quotesdb.joelapenna.com/fortune it exports the database to a fortune file. I will add an ATOM feed shortly and upload the source as well.

I had to write a small decorator to handle authentication and authorization but beyond that I had to do no work to manage users. I had to write a small data schema but I don't have to host a database on my webserver and I had to didn't even have to set up mod python. App Engine takes care of it all for me. I think its the coolest app we've released since Google Maps.

team-quotesdb project page

Labels: ,

Tuesday, April 8, 2008

Google App Engine - Google Code

Google App Engine - Google Code

Google just launched App Engine! It is in my opinion the best app release Google has made in years! I've been playing with a lot, expect more info to come. Let me know if you want to try it out!

Labels: ,

Saturday, March 22, 2008

Yahoo! Zookeeper

Yahoo! Zookeeper seems like their own implementation of Google's Chubby

Labels:

Wednesday, March 19, 2008

So they say . . .

Wow, it has been 14 hours since I woke up today and I feel so much better than I did yesterday. Its been quite some time now that I've worked on my own project for such a streak. I didn't write any work email. Didn't talk to anyone about work. Didn't send in any code reviews for work. But, best of all I didn't stress out about work.

See, work has been pretty tough the past few weeks as I work on a project that seems to progressing in the wrong direction. Its been tough enough that I, the dude who's not "professional" in the first place has slid some place far south of sane.

So, what did I do today? Well, I wrote a neat little app that I'm going to clean up before I publish. Its very simple: a quotes database with neat cross-linking between posters and the people they've quoted. It has four models to it and it is only a few hundred lines of python and a bit of html but after a day of working on this little guy I'm actually a bit proud of it.

Frameworks... This is the first time I've put together a website with a "web framework" of any sort. I never realized how wonderful it would be to not have to worry about writing SQL schemas, handling CGI and dealing with HTTP. There is now thousands of aborted lines of code that will never be written because someone thought ahead and saw that some code only has to be written once.

Labels: , , ,

Friday, December 7, 2007

In honor of Randall Munroe

Labels: ,

Friday, November 2, 2007

OpenSocial - Google Code

OpenSocial - Google Code

Google's "Maka Maka" project looks like it finally launched. I'm quite excited by this change. Its funny that just a year ago I was talking with friends about how I wished someone would unify the social networking space and I think we're about to see that happen. I guess we'll have to see if we can really make this happen. I love Facebook and I always thought that they would be the ones to open up this space. They're a smart, innovative and daring company with a product I've proudly used for years. I wonder what their plans were before this news.

Though, to be honest, if you asked me what sort of app I would like to see on a social network I wouldn't have an answer for you. What about widgets on web pages? No ideas there either. I'm not really interested in looking at little doohickeys or playing scrabble or throwing sheep at people so why then am I excited? I'm looking forward to the day when I have *one* address book. Thats really it. I want to sort and tag and organize my contacts and I don't want to have to enter the majority of the contact information. With a little tweaking and some interopability I might someday be able to make sure that the contact in my email app has the most up to date email address for my friends. How will that make it up to date? Because their profile is controlled by them and when they change their email address they can update the profile and nobody will have to send a "changed my email" message, similiarly for phone, address, IM, etc. I think this is made more possible by Google's next move into this field, an open social graph but enabling people to get data is the first step in letting them control where it goes.

This makes you wonder. Why didn't XMPP take off? I'm still sour about the state of instant communications. Microsoft and Yahoo, Google and Jabber, IRC. Why are these things so hard to traverse. There isn't even a market in making money here - It not any different than email but with email I can talk to anyone no matter what domain they're on.

There are rumors that Facebook was ignored in the creation of the open social alliance. I don't think that was the case but if it was I'd be deeply disappointed in my company. I think its possible that this could have happened but I find it unlikely. More likely was that so and so talked to so and so but that never go to whos-its-face and thus the proclaimation. It seems people look at this as if it were only a strategy move, something to move into an upcoming industry but Google is an Engineer driven company. My bet is that someone here got fed up with the state of the social networking world, talked to enough people and then had a project to work on.

Labels: ,

Sunday, September 16, 2007

Google Reader for the Wii

For as long as I've had my Nintendo Wii, I've said the best part of the system is being able to log onto Google Video and watch Tech Talks. The user experience has always left a lot to be desired. Quite frankly, browsing the interwebs on a TV is not a great experience but I put up with it because I was able to watch TV on . . . my TV. Today, I decided I was going to see if there was a way to read RSS feeds on the Wii and I did a search. Low and behold it turns out there is a special Google Reader interface for the Wii. This was an amazing realization and now I seriously recommend that everyone who wants to watch video online should have a Wii. I love my company.

Labels: ,

Facebook HQ

Labels:

Sunday, August 5, 2007

My Science Foo Camp Profile

Find the joe.
IMGP5740.JPG Originally uploaded by dullhunk
Find the joe!

Labels: , ,

Saturday, August 4, 2007

Science Foo Camp

I'm a volunteer at Science Foo Camp!

Some links:

Labels: , ,

Tuesday, March 6, 2007

What's new?

Its been four months since I last updated this blog and surprising little has happened in that time. When I last left off I had just moved to San Francisco for work. I had a job, a place to live and even some friends already who had either lived in SF for a long time or had just moved to the state as well.

I spent November getting used to living in San Francisco. I had to learn the transit system, purchase things by which to live . . . soap, curtains, desk etc. I also had to learn to not use my car which compared to the other choices -- which soap to buy? Which place to get my hair cut? -- was the easier decision. I was able to find a parking garage that leaves its gates open on the weekends and doesn't check for illegal cars on the week days. Parking would be cheap as long as I could do without taking my car out during the week. Luckily Google provides a shuttle from various points of the city into work at may times of the day and night. The down side is that I have to take a bus to the shuttle stop which adds another 20-30 minutes to an already hour long commute.

I spent almost one third of December out of state. First I went to the LISA (Large Installation System Administration) conference. I had quite a blast in Washington, DC with some of my co-workers from SF and Oregon. I was decimated in a car bomb contest when the bartender we did one with slammed empty glass to the table while I still had half my glass left. I came in 3rd out of 16 people in that race. Second would have been mine had I not been stunned by the 'tender's surprise performance. The following weekend my brother came into town and I enjoyed showing him what I knew of the city. The cap of the weekend was when we went to see Rx Bandits at Bottom of the Hill. I spent the last week of December back in Carol Stream visiting friends and family. While it was quite fun and I enjoyed seeing them I was anxious to get back to my new city and life.

I returned to San Francisco on a terribly early flight on New Years Day courtesy of Josh and for the next few weeks hammered on my project at work anxiously awaiting news of a promotion.

In Februray Diana came into town to visit for a couple weeks and there were good times abounds. I visited Napa Valley for the first time saw some movies and generally had a relaxing time all the while being quite stressed at work. It was late February when I heard about my promotion. I nearly passed out when I heard the good news I was so excited and relieved.

Its the first week of March now and this month has nothing special to report. Chris is visiting for GDC this week and I imagine I'll be hanging out with some folks from Chicago tonight and for the rest of the week.

Labels: , , , ,

Friday, September 29, 2006

I'm moving to California.

So what does this mean?
  1. I will rapidly use up the 50k frequent flier miles I've racked up on these crazy trips to Taiwan.
  2. I will be living in a box in a city. I am hoping for a refrigerator size box and am looking at spending only around $2500 a month. Hopefully my loan request will be accepted so that I can afford the double layer cardboard boxes. If you know anyone in San Francisco who is looking for a box roommate, let me know; I'm interested. Said location needs to have a fast Internet connection. Preferably 15mb/s
  3. I'm going to be driving across the country in my car. I'm going to need some help. I'll cover: food, fun, drink, fun and sleeping and a flight home. My Dad already volunteered though. I'm thinking I'll need another two people if my moving doesn't sync up right with another Googler's (Francisco) move.
  4. I've never lived in my own place before. I will have to do my own cooking. This sounds like disaster.
  5. San Francisco has terrible weather. If you come visit bring pants and jackets, not just shorts and t-shirts.
  6. I'm moving in late November. Sorry its so sudden, I've only been talking about moving for two years.
  7. I will be selling/giving away things. Yay!
  8. Tech support from cali is almost as difficult as tech support from Taiwan.
  9. I will have more things to say later.

Labels: , ,

Wednesday, September 27, 2006

Good Charlotte about to take the stage @ Google.

Good Charlotte about to take the stage @ Google.

I'm not sure I want to work for Google anymore.

Labels: , ,

Monday, September 25, 2006

Coming home October 27th.

The way things are looking, I will be leaving Taiwan for the last time the week of Oct 22nd. I will be in California for a couple days and then back home at the end of the week . . . for some amount of time not yet determined.

Labels: ,

Thursday, September 21, 2006

Andy almost exploded.

Ever see an electrical explosion? How about caused one? Andy did.

Labels:

Thursday, September 14, 2006

ETJA (Estimated time of Joe arrival)

My adventure in Taiwan is ending at the end of October, I expect to be back in Chicago after that but for how long nobody knows!

Labels: ,

Friday, September 8, 2006

Promotion

I got a promotion at work and as soon as I leave Taiwan I will be working on a new team! I'm so excited. This is something I've been waiting 1.5 years for!

Labels:

Thursday, August 24, 2006

Google Shuttle!

In an effort to experience San Francisco, I took the Google shuttle today. The ride is very bumpy and combined with an already upset stomach the ride was not that pleasant. Otherwise though, the interior of this bus is nicer than the interior of any car I've been in. Plush leather chairs, granity (looks like) tables. Hotness.

Labels: , ,

nice room

Very nice room. Fancy. Like the kind you'd take to spend a weekend at. Old. Its better than a Sheraton.

The Hotel Majestic

On gmaps

Labels:

Wednesday, August 16, 2006

Google just released Music Trends, so if you use GTalk, you can set it to track the music you listen to and then see the results on Search History. Of course this is no where near as cool as last.fm, but I'm sure that soon enough it will have enough data to compete statistics wise with last.fm . . . a bad thing: last.fm is one of those services that I think is quite amazing.

Labels:

Thursday, August 10, 2006

Google Talk Shared Status

One of the more interesting but unknown features of Google Talk is "Shared Status." This allows multiple signons to have the same status message, so if you're logged in at home and at work both of your sign-ons can say "Hey! look at me." An added bonus though, is that if you set one of your clients to "Listening to Sinatra!." all of your clients will change.

The result of which is the ability to automatically change the status message of your normal signin with some automagical pythony goodness.

Labels:

Sunday, May 14, 2006

Ninja vs Pirate

Ninja vs Pirate, a Googly Answer Google's new "Trends" experiment allows people to put search terms up against eachother for dominance. It looks like for the past almost 2 years, pirates have been more *popular* than ninjas, but the aggregate difference in popularity between the two puts Ninjas in the true lead. Trends is really cool. I think you should go look!

Labels:

Friday, February 17, 2006

Mountain View Today

Because I had to layover in San Francisco anyways, I took an extra day (today) to stop by the Googleplex in Mountain View, CA.

Today I:

  1. Rode an electric scooter three blocks to a meeting
  2. Ate a tasty hunan beef lunch
  3. Drank lots of liquid from the 7-11-if-7-11-were-free like snack room.
  4. Ate some cookies.
  5. Prepped for a super long flight!
  6. Got kinda nervious about my trip (for the first time)
  7. Mmmm.... Orange juice
  8. Got three new laptop batteries
  9. Ate a Tasty dinner, cooked to order pasta!
  10. Played ots of foos-ball
  11. Did some work

Labels: , ,

Friday, December 30, 2005

Google Search History Bookmarklet WIP

Francisco and I discovered tonight that Google's "My Search History" changed its bookmarking url. It now requires a special and unique id appended to the http://www.google.com/searchhistory/mark? url as s=YOURUNIQUEIDHERE. This in turn has made figuring out a generic bookmarklet quite difficult. The fruits of our labor is as such:
javascript:
      var mykey = "YOURKEYHERE";
      var orig = document.location.href;
      var loc = encodeURIComponent(document.location.href);
      var title = encodeURIComponent(document.title);
      var zx = Math.floor(Math.random()*100000);
      var url = "http://www.google.com/searchhistory/mark?";
      var url = url + "zx=" + zx + "&s=" + mykey + "&q=" + loc + "&title=" + title;
      var w = open(url,' ','height=450,width=450,scrollbars=1,resizeable=yes');
      w.onload = function(){w.document.location.href='http://google.com/searchhistory/lookup?q=is:bookmarked';}()

What does all this gobbly gook mean? If select "Create New Bookmark" in firefox, and then then in the location paste the above code, replacing YOURUNIQUEIDHERE with the contents of the third argument of the _mark() function calls in the source of http://www.google.com/searchhistory/ you can "easily" star websites and keep them forever in your google account.

It works better now, the popped open window displays msh

Labels:

Monday, December 26, 2005

Google Personalized Module

Outline Feed Module

I just created my first Google Personalized Homepage Module using their provided API. It is a module for Google Reader that provides a listing of your feeds right on your personalized homepage. It uses Google's own ajaxslt to do the transformation from feed to html document.

I got a lot of help from a number of online resources including:

  1. Apple's Dynamic HTML and XML: The XMLHttpRequestObject
  2. Google's Guide to the Homepage API
  3. Erik A. Hanson's How To Use Googles Ajaxslt Library

Labels:

Tuesday, November 22, 2005

Infinite Massage will be visiting

Google Inc.

######### Office

Friday, Decemer 16th, 2005

A Massage Therapist will be providing On-Site Chair Massage

Slots are available starting at 12:00PM

To Reserve Your Massage, visit:

I love my job!

Labels:

Sunday, October 16, 2005

For the hackers in all of us

http://makezine.com/blog/ - Great link blog from the makers of Make magazine "technology on your time."

Labels:

Saturday, October 15, 2005

Google Reader

Google released its Feed reader publicly a few days ago and I'm amazed at how quickly it has improved since I first tried it out internally. It is a testiment to the Google Reader crew's speed and excellence. I have since migrated from bloglines to the reader allowing me to make some more solid observations than my passing usage previously.

  1. Editing tags for a feed does not update the subscription list immediatly, a page refresh is needed.
  2. FAST! I know a lot of people are saying that the reader is slow, but when Google is not having backend problems the UI is amazingly responsive.
  3. Does anyone know how to export feeds without having to log in, or via some programatic interface? I tried the gmail ATOM feed method of base64 encoding a username:password string and adding it as a basic authenticaiton header but it didn't work. Help please?
    authstring = base64.encodestring('username:password')[:-1]
    request = urllib2.Request('http://www.google.com/reader/subscriptions/export')
    request.add_header('Authorization', 'Basic %s' % authstring)
    feed = urllib2.urlopen(request).read(); print feed
    
  4. I would like to be able to prioritize my feeds so that when I only have a few minutes to look at my blogs, I can look at my friends automagically first then leave the less important blogs to the bottom of the list.
  5. Reader is fast! I would suggest trying it out.

username:password string and adding it as a basic authenticaiton header but it didn't work. Help please?

   authstring = base64.encodestring('username:password')[:-1]
   request = urllib2.Request('http://www.google.com/reader/subscriptions/export')
   request.add_header('Authorization', 'Basic %s' % authstring)
   feed = urllib2.urlopen(request).read(); print feed
   
4. I would like to be able to prioritize my feeds so that when I only have a few minutes to look at my blogs, I can look at my friends automagically first then leave the less important blogs to the bottom of the list. 5. Reader is fast! I would suggest trying it out.

Labels:

Tuesday, September 6, 2005

Google Disaster Relief

Google is matching dollar for dollar the donations Googlers make to organizations working on disaster relief. They also pledged $1,000,000 to help with Katrina. I donated just now, if you can spare some money which in all likely hood, considering you are reading this and have internet access please do. People are in bad shape there and need your help.

Labels:

Thursday, February 17, 2005

University of Google

I've been in Mountain View, CA for the past three weeks, working furiously on a project I've been heavily involved with since October. As someone described to me tonight, Google is like a final project that is is always due yesterday, but never actually ends. When I failed out of Purdue, I didn't think that college life was the right thing for me, both socially and educationally. If college really is like Google, and I was just too far out of my mind to realize it, maybe I should go back for a while. . . Nah, I like it here too much. I firmly atest that after Google, I will go back to school; in the Fall I will take classes.

Labels:

Tuesday, February 8, 2005

Google Maps!

I'll never get lost again!!

Try out: Google Maps Beta Use your mouse to scroll in all directions, use the slider to change zoom depth, even click on the little pins marked when you search for a place for even greater detail. I've been waiting for this for a long time. No more page refreshes when you need to change your perspective, no more hard to read streets on a little itty bitty screen shot. Here's a tip; Make your browser window larger . . . See? Now you have an even better view of things.

I hope that with some time Google will release international maps, looking at streets on other continents is fun.

Labels:

Sunday, January 23, 2005

Business Cards are Cool

I really do work there, I'm not just having a good dream.

Labels:

Tuesday, December 14, 2004

Google Work

I got a full body massage today at work.

I haven't said this enough, vocally or in print. Thanks Google.

I really love working here. My friends tell me I'm crazy when I pull long hours or go on unending trips outside of my state, but really, I love it.

From the work environment to the people to the benefits there is not another place I would rather work.

Labels:

The views and opinions expressed in the blog are of Joe LaPenna. Google has nothing to do with these pages.
For information about Google please visit: Google Press Center