Skip to main content
 

Autoawesome CLs

*Autoawesome CLs* - Project Cargocult

I'm going to formalize/automate all the dirty hacks I use to generate hundreds of CLs.  Wish me luck, and I'd love suggestions/feedback.

https://docs.google.com/document/d/1uGbOLN1WMY9JJf9AsGcKG3le0kNJ1fsqCkHaK8wPt04/edit?_escaped_fragme...

 

 

A Design Doc for your Illness

Just got the final Second Opinion report and I'm quite impressed.  [See http://go/secondopinion - it's a great perk]  I liked that they chose people that are advancing in their careers and researching the specific field.  You get a clear, well written summary of your medical record, actionable data, and citations for specific background information.  There's pragmatism and optimism, including this quote:

_Finally, if one can outpace the innovations in cancer that are taking place right now, survival may actually be substantially better._

If you're considering this service please let me know.  We're happy to share our report, just ask.  For everyone else here's an outline of what's included.

Expert Selection Process 2
Letter from Physician Case Manager 3
Summary of Clinical History 4
Questions to the Expert 20
Report by Vijayakrishna K. Gadi, MD, PhD 21
Report by Komal Jhaveri, MD 28
Curriculum Vitae for Vijayakrishna K. Gadi, MD, PhD 33
Curriculum Vitae for Komal Jhaveri, MD 37
Legal Terms 40

https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fappengine.google.com%2F_ah%2Fconflog...

 

CDs are dying

Not sure what's more annoying -- waiting 1.5h for Kaiser to burn radiology CDs or realizing that I actually didn't have a working CD *reader* at home.

Managed to get something working:

Parts:
- 1 SATA<->PATA converter from old server
- old ATX power supply
- my trusty Rackable home server, w/ internal AHCI adapter
- An ancient Sony CD drive.  [Broken]
- A CD drive pulled from an old AMD K6 tower [working]

And of course 1 of the CDs is defective and I'll have to get that again. oof..  CDs deserve to die.

https://plus.google.com/photos/107786897865850743842/albums/6145005531617143713/6145005532518278594?...

 

Free to be you and me

*Free to be you and me* [in 2015?]

[apologies for the banjo earworm...]

Just finished the Unconscious Bias self study.  It brought me back to age 9 and how these songs and videos (and other positive experiences) formed who I am.

I wonder what a 2015 version of FTBYAM would be like?  The ideas are good, but it feels really dated.  Who'd be today's Marlo, Rosy, MJ, or New Seekers?

https://www.youtube.com/watch?v=_26FOHoaC78

 

A cornucopia of kindness

Special kudos to the person who sent a bouquet of flowers with an encouraging note.  It was especially welcome after returning from getting the 'chemo-haircut'.

This is only one of many awesome things that people have done.  Julie and I want to thank you all!

 

Stage 4?  Are you sure?

... was my response to Julie's oncologist giving us the bad news that she has breast cancer that has spread to her bone marrow.  It certainly explains the bleeding, the bruising and the anemia which required multiple transfusions.

No treatment plan yet (tests, and more tests..), but it looks like my future will involve lots of WFH where H == hospital.  I'm going to do whatever I can to improve the 1-2 year survival time odds.

I'm interested in hearing from you if:
- You have dealt with Kaiser's Cancer care and treatment. tips please!
- You have 2nd opinion referrals.
- You have a Caregiver story -- how did it impact you and your career?

Thanks again to everyone that's offered support and flexibility.  Googlers are the best, most supportive people in the whole world.  Proud to work for this company and with you all.

 

firstgoogleremail

I don't have my  - but I do have the email that started the ball rolling towards my eventual employment.  Seven weeks later I started at Google.

*Date*: 8/7/10
*Subject*: Interesting moves

_I'm intrigued the recent social moves coming out of Google and wonder if there's some part for me in all of this, either from the inside or from the outside._

_Truth be told, I'm not getting my "change the internet for the better" satisfaction at the moment even with the independent time I spend on Opensocial/Shindig/OAuth._

_Would you like to have a short chat in the next week or two?_

 

Thirteen Ways To Save Orkut

*Thirteen Ways To Save Orkut* February 2004

_With its integrated personal, social, and business functions, Orkut has an opportunity to outstrip it competitors—but only if its creators make smart choices that support the genuine needs of real people._

http://www.digital-web.com/articles/thirteen_ways_to_save_orkut/

 

Postmortems...

*You might be a Googler if...*

You start writing a postmortem when you arrive at the ER.

So. Many. _Areas for Improvement_

 if you're going to need dental/medical treatment do it in an area where lots of old rich people live.  

Note: All is well now, we extended our stay and Julie is recovering.

https://plus.google.com/photos/107786897865850743842/albums/6134256416285339249/6134256417197264722?...

 

Collections

Some feedback on Collections after actually using them for realzies:

- The aspect ratio of the cover image is really hard to deal with.  You can't crop regular images easily and you can't letterbox easily.
- I'd like to make a collection as 'Draft' so I can get it looking nice before I send it out to the world.
- I'd love to see a 'People mentioned this collection' in the sidebar. [and other aggregates, like places, hashtags, maybe a word cloud?]
- I wish I could back-date things.   Or at least allow for manual ordering.
- What about Pinned/Hero Post for a Collection?
- Will public collections have non-obfuscated URLs?
- Do we filter these oddball urls for naughty words?

 

Ursquake

*Ursquake* March 2010

@113057531893316771155 states

_The social web is revolutionizing the world, and this is our chance to create what will be the most useful and most used set of socially connected products in the world, with the best user controls on privacy and data portability. We have an incredibly strong starting position. It’s rare that we’re being given an opportunity to have such a big impact in such a short time, so lets seize it!_

https://docs.google.com/document/d/1mzvLKwMdb1XdK_CY670eDat8h_LrW1d1LPHrEEioHog/edit?_escaped_fragme...

 

Interviewing PMs

Not sure where to get feedback for this so tossing into the ether...

I've been getting many PM interviews for Technical Hat; I wonder what others think of this line of questioning?

- We have a SMB with 1000 devices and 20 servers
- These machines generate log files (1st question, does candidate know what a log file is?)
- Your product needs to meet the needs of the following users
- Sysadmins need to be able to diagnose problems, do postmortems.
- Auditors need to enforce rules on system usage
- A security team wants to detect intrusions, malware etc.

I then ask the candidate to ask clarifying questions and try to get them to give me any/all of the following through progressive probing:

- Min viable features of the product
- Do they suggest graphs? notifications? email alerts?
- What about user provisioning? Admin features?
- What kind of UI? Web? Mobile? Command line?
- Search?
- A high level technical design showing how the we get from Logs -> UI
- Push vs pull?
- Where/when does parsing happen?
- Technical
- How do you store the data? How do you transform it? Batch?
- What database? How many QPS?
- Redundancy? Failover?
- On site / off site?
- Insights
- Does the candidate understand privacy/security concerns? (Mention wipeout, retention for the auditor use case)

So far I've gotten some decent responses, but most fall into the run reports on files and store those.

For the good candidates we are able to progress to phase II where we design for a multinational fortune 500 scenario.

So WDYT? Good question?

PMs? How do you think you'd do on my question?

 

Code Backed Securities

Your FICO score must be greater than 640 to incur technical debt.

For everyone else you'll need to get a subprime code loan, which will be packaged into Code-Backed-Securities and sold on the open market.

 

Google I need rain boots

Was discussing potential for location-based sharing and remembered this gem.  Despite all the sucky things happening I'm still excited about what's possible in the future.

http://go/ortelius

 

SWEs should do Part Time User Support

My first dev job in 1991 required that I do at least 4h of phone support and 4h of walk-in support a week.  Feeling user pain and answering the same dumb questions over and over made me a better developer and also led to a bunch of innovation:

- Mainframe Mail Woes? Develop SLIP/PopMail, give away on floppy
- Xmodem problems? Add hqx attachment support.
- Need access to Apple's techinfo CD?  Get it via Gopher.
- Indepth howtos?  Publish newsletters like you see below.

You don't have to answer the phone to help people today.  You can engage externally on mailing lists, on G+ and more.  Just remember to follow the guidelines in http://go/u2u

http://conservancy.umn.edu/bitstream/handle/11299/161886/Microcomputer_Newsletter_Jun_1991.pdf?seque...

 

People do not fear change, they fear loss

About a year ago I did a one-day seminar called _Managing Through Change_.   It was actually pretty good and helped me understand how the human brain treats stressful transitions.

Sadly the course isn't offered, but there is some pretty decent self-instruction available here:

https://grow.googleplex.com/opportunity/site/navigatechange/

https://login.corp.google.com/request?s=grow.googleplex.com:443/uberproxy/&d=https://grow.google...

 

 

Recruiting... in reverse

Hi Paul,

Long time no see! Hope all is well with you. Have been trying to reach someone in engineering at Google to see if there might be interest in acquiring my company. Would be cool to catch up sometime, please let me know what you think!

Here's some more info regarding our company / technology:

....

XXXXX is fully bootstrapped, we have no debt and no additional shareholders (just the two of us). The company was recently incorporated, so a transaction would be straightforward. We are both versatile generalists in our respective fields with lots of experience innovating hands-on as well as managing teams. And we’d love an opportunity to demo our tech with anyone who’s interested!

 

HashSets

Replacing static HashSet<String> with Java 7 string switch?

Has anyone investigated whether Java 7 switch is more memory efficient than HashSet<String> or ImmutableSet<String>?  I think it might be.  Read on....

I ask because HashSet is one of the more bloated java collection classes.  It uses 32 bytes for each used entry + an array for the capacity.  For example the follow
ing HashSet uses 128 bytes (2*32 + 16 * 4):

  private static final HashSet<String> FOO = new HashSet<>();
  foo.add("a")
shpub note --category=googplus --syndication=https://plus.google.com/107786897865850743842/posts/VPYQiMunRRY --published="Mon Dec 29 12:22:44 PM PST 2014" --name="" - <<EOF
Replacing static HashSet<String> with Java 7 string switch?

Has anyone investigated whether Java 7 switch is more memory efficient than HashSet<String> or ImmutableSet<String>?  I think it might be.  Read on....

I ask because HashSet is one of the more bloated java collection classes.  It uses 32 bytes for each used entry + an array for the capacity.  For example the follow
ing HashSet uses 128 bytes (2*32 + 16 * 4):

  private static final HashSet<String> FOO = new HashSet<>();
  foo.add("a")
  foo.add("b");

  boolean isFoo(String s) { return FOO.contains(s);}

We can replace that with:

  boolean isFoo(String s) {
     switch (s) {
        case "a":
        case "b":
           return true;
        default:
           return false;
     }
  }

Java 7 transforms this code into something like this:

    switch (s.hashCode()) {
       case -1234:
          return s.equals("a");
       case -55999:
          return s.equals("b");
       default:
          return false;
    }

Which maps to a tableswitch or lookupswitch.  Squinting it appears that you'd need the following for each entry:

tableswitch:
  per-entry: hashcode + result value (8 bytes)
  equals test: 4 opcodes (16 bytes)

So it would appear that you have 24bytes/entry.

Performance would be limited by the JVM/Dalvik/Art implementation of tableswitch which can be O(n)

Also obligatory reference to:

  http://blog.jamesdbloom.com/JavaCodeToByteCode_PartOne.html

http://blog.jamesdbloom.com/JavaCodeToByteCode_PartOne.html

 

Farewell

Farewell.

After a 4 month battle against cancer we made that hard yet logical decision to end the fight.  Tommy didn't visit Google often, but he always enjoyed the attention, laying in the grass, and walking the trails nearby.

Thanks to everyone that put up with my last minute cancellations for vet visits and the extra time I spent tending to his needs in his final months.

 

Tail latency == power user latency

The next time you ignore a few deadline exceededs ask yourself:  Where are the people affected on the participation curve.  Often they're the ones with thousands of blocked people, tons of posts and +1s and *your most valuable users*.  Call 'em whales if you like, but do not ignore them.

http://ross.typepad.com/blog/2006/04/power_law_of_pa.html

 

Perf

My vet didn't realize that Perf was due last night and said Tommy should go home.  Just finished at 8:00am after staying up much of the night to get it done.

Going to sleep for a while and am glad I don't need to wear a massive flowery collar around...

 

Install ground-breaking spyware; receive ongoing rewards!

_[from a survey I received from TiVO today]_

We are considering creating a special segment of the TiVo Advisors panel to explore TiVo subscribers' usage of mobile technology and how it relates to your enjoyment of TV and other media.  Everyone who participates in this exclusive segment of the panel will receive ongoing rewards based on actual participation (not a monthly sweepstakes).

This ground-breaking research will help us understand the ways mobile, television, digital, social, and other media are viewed, used, and shared by TiVo subscribers.  Your participation will have a direct impact on how entertainment and information is delivered to consumers today and in the future.

To participate in this exclusive group, you will be required to download and continually run an app on a qualified mobile device (up to three devices per panelist).  The app runs in the background of your device (in other words, you do not have to interact with the app to receive rewards).

Qualified devices include:

Android™ smartphones and tablets that run Android version 4.0 or greater, and are not rooted;
Kindle Fire HD, but not the first generation Kindle Fire;
iPhone® 5, iPads® and iPod touch® devices that run iOS version 5.0 or greater.
Earlier iPhones are not supported at this time.
The app is a small mobile application (about 3.3 megabytes) which is not intended to interfere with your web, app, wireless phone, or battery usage. Once installed, you should never need to re-activate the app.

At this time, we'd like to get your initial thoughts about this idea.  If we choose to proceed, we'll send out more information in the next few months.

 

Location start and end in Calendar

*Wanted*: Location start and end in Calendar

I think we can do a better job of mapping travel in Calendar if we allowed Events to have *begin* and *end* locations.

For example, I have a GBUS entry in my calendar.  Part way through my ride I'm getting cards telling me time to the start point.

I quickly scanned buganizer and didn't see an FR there -- but I think this would really help for happy hour.

-----
Another crazy idea -- according to the https://tools.ietf.org/html/rfc5545  location could reference a URI.  Imagine if the URI referenced a moving object, like a bus, plane or other trackable object.]   If we had that then we could support navigation to any stop along the path, support timed transfers and other cool stuff....

https://tools.ietf.org/html/rfc5545

 

Power off those monitors

I just powered off 64 monitors and 2 HD screens on my way out the door.  Most monitors were in standby mode (~1.5w) about 10 were not (bad X config, dunno...)

Assuming that they stayed that way for 2 weeks that'd be 269 kWh.

That's ~ 7 of electricity or so just on my floor.  Kind of a drop in the bucket, but still....

 

tech

In Oakland this morning...

 

Google House

"Google should just buy stuff for me" -- Sergey at a TGIF a while back.

... or Takeout for subscription services

Think about Spotify, Rdio, Netflix, HBO and other content subscription services.  Once you stop paying you have nothing left.  Takeout is nothing more than references to a paywall.

A way to disrupt this might be to structure systems to reward you with ownership of a portion of the catalog each month.  Examples:
- Your most listened song or TV show.
- The ebook you shared the most.
- etc.

Then when your subscription period ends you get to keep the fruits of this relationship.

In many ways this is like the Columbia House[1] or BMG music club.  You get a free thing each month by default.  You can sample the entire catalog, or get more if you want.  But you're always *owning* something new and interesting each month.

[1] http://en.wikipedia.org/wiki/Columbia_House

 

Work to do

We've got work to do.

I just spent a week in the Palm Springs area attending the Indian Wells tennis tourney while using our products. It was good to get outside the bubble for while, but it was frustrating -- especially since I know we can do much better. Issues I encountered:

* Public Google+ shares are rare. This might be expected with the demographics of the area (>50 year old golfers) -- however looking at my G+ nearby view I was the only person to publicly post the winner of the Tennis final (and that stadium holds 16k people...) Nearby stream was depressingly too -- only a handful of posts. Also I think the nearby view should expand distance in "sprawl-like" areas like this. When I was in Palm Springs I didn't see any nearby posts in the nearby towns.

* During the rain delay you had to look at the Facebook Tournament page to find out when play resumed. On-site they had a big 'Check-in with Facebook' ad on the changeable displays. On the 'Follow Us' screen they did at least have Youtube next to FB/twitter.

* Maps is really borked in this area. I commented on this earlier, but there are many businesses that are not there, or are located in the wrong place. MapMaker edits in the area are in queue for weeks it appears too. Navigation worked fairly well, however I encountered areas where nav got really confused -- not sure if the root cause is Mountains blocking GPS, plain crappy samsung GPS or that road info is not accurate.

* There are some weird Business names that must have been collected by Street View. For example _Elmer's Breakfast-Lunch-Dinner_ which is a literal reading of the road sign.

https://plus.google.com/photos/107786897865850743842/albums/5722007384962904001/5722007386027464434

 

Little Monsters

Just invited to littlemonsters.com. Decided I'd sign up via Facebook Connect (since most people will)

Interesting things:
* popup affordances on the home page guide you to features
* Facebook connect used but only to bootstrap your account.
* Sets up an email forwarding address for you that uses your Facebook primary email.
* Has a link to mail.google.com on your profile to read your email (and a gmail logo)
* No public profiles (as of yet..)
* System posts supported (my profile creation has already gotten one "Like")
* Has +1 buttons!
* Very pinterest style for posts -- big page full of posts. None of this single-column vertical scroll.
* has up and down votes.
* "Fan" instead of following.
* Friend finder not there.
* Sorted list of "New" users.
* Chat rooms.
* "t" button for notifications.
* and holy smokes! -- actually they're provisioning a new mailbox for each user on the GA+ domain littlemonsters.com.

plenty more, happy to demo.

 

Social 2012

Here are my new years thoughts on the social web platforms. I've been pondering what the world can do to get ourselves out of this one man/one graph/one api situation we find ourselves in and what Google can do to help.

Facebook the product and Facebook Connect/APIs have sucked up most of the social web oxygen. Open efforts have largely failed -- the Google-led consortium OpenSocial has been relegated to niche usage like enterprise or contextual gadgets, OpenID use is declining, Webfinger never took off, oEmbed has murky IP, even RSS and Atom are use is declining.

In particular OpenSocial is now paralleling a different OSF -- the _Open Software Foundation_. Remember that? DEC/IBM/etal banded together to fight off a common enemy (Solaris/AT&T or Windows). There was some decent output from it (I loved me some Tru64 OSF/1 Unix) but in the end it was Linux that disrupted and became the server standard while Windows claimed the defacto client standard. Today both OSFs are in decline and don't define the market.
So what to do? Here are a few of my ideas, what about yours?

* Obviously getting market share for Google+ the product and Google+ the platform helps, it provides an alternative. However if we're not careful we end up with a Coke/Pepsi duopoly, since much of our growth will come at the expense of the wider ecosystem before it starts to take from Facebook.

* Try to build on open standards where it sees broad based usage. OAuth 2.0 is something that everyone (including FB) has actually implemented. Activity Streams and schema.org are ascending. Add social to these where it makes sense.

* Try to nurture the next disruptor and be prepared to jump on it when it comes. Any technology that Google promotes as "open" will likely meet the similar fate as OpenSocial. (And I hope schema.org is the exception here...)

* Do something about the Terms of Service encumbered internet that's slowly taking off.

Hopefully sometime in 2012 there can be a way for everyone to work together on social. I hope to live to see the day that Facebook, Google, Twitter, LinkedIn and a hundeds of smaller players can do something that lifts all our boats and benefits users.

 

Offers

I just filed http://b/issue?id=5777937

Google Offers needs it's own Google+ Page, and we should be promoting it in the daily emails we send. This twitter stuff is so last decade...

 

Grab your seatbelts..

I've been lucky enough to live through spikes like this. At Typepad we had cuteoverload, and gofugyourself, at hi5 we had the Romanian DJ phenomenon which resulted in 20% penetration in a months time...

In both cases the small teams had to scramble to deal with the load and focus on features was suspended.

I'm so stoked to see what we can do with the infrastructure of Google behind us.

http://asiajin.com/blog/2011/12/09/google-occupied-by-akb48-within-a-day-in-japan/

 

goog.require

Can you guess the top goog.require() calls in google3? Comment below (no peeking!) (props to @103827306991532885669 for the idea)
*Edit* - new list by using new custom closure gsearch
.
.
.
.
.
.
.
.
.
.
.
.
.
.

9069 'goog.dom'
5440 'goog.array'
5364 'goog.events'
3887 'goog.style'
3762 'goog.string'
3337 'goog.dom.classes'
3119 'goog.events.EventType'
2661 'goog.debug.Logger'
2625 'goog.ui.Component'
2573 'goog.events.EventHandler'
2424 'goog.object'
2160 'goog.testing.asserts'
2113 'goog.testing.jsunit'
1968 'goog.events.EventTarget'
1929 'goog.asserts'
1920 'goog.testing.MockControl'
1845 'goog.Uri'
1717 'goog.Disposable'
1693 'goog.events.Event'
1657 'goog.json'
1460 'goog.userAgent'
1328 'goog.Timer'
1184 'goog.structs.Map'
1139 'goog.net.XhrIo'
1131 'fava.delegate.Delegate'
1028 'goog.dom.TagName'

909 'goog.ui.Dialog'
841 'fava.component.DomServices'
792 'goog.ui.Component.EventType'
791 'goog.testing.mockmatchers'
779 'fava.services'
749 'goog.events.KeyCodes'
715 'goog.testing.PropertyReplacer'
690 'goog.functions'
648 'goog.math.Size'
605 'goog.math.Coordinate'
596 'goog.testing.events'
588 'goog.async.Deferred'
557 'goog.structs.Set'

530 'goog.ui.MenuItem'
495 'goog.Uri.QueryData'
472 'goog.dom.DomHelper'
468 'goog.uri.utils'
468 'goog.math'
462 'goog.dom.forms'
453 'fava.extension'
423 'fava.AppContext'
421 'fava.dom.SoyRenderer'
408 'goog.string.StringBuffer'
399 'goog.math.Rect'
397 'goog.module.ModuleManager'
395 'goog.ui.Button'
378 'soy'
378 'goog.positioning.Corner'
372 'ga.Component'
364 'goog.i18n.DateTimeFormat'
353 'crm.testing'
349 'pinto.core.Url'
348 'ga.report.States'
337 'jfk.Button'
329 'goog.net.EventType'
322 'goog.debug'
320 'goog.ui.Dialog.ButtonSet'
319 'goog.math.Range'
316 'fava.data.DataServices'

306 'goog.ui.CustomButton'
301 'goog.testing.MockClock'
301 'goog.debug.LogManager'
Do it yourself:
/home/build/google3/javascript/closure/bin/gsearch goog.require | grep .js: out| ^Crl -pe 's/^.*\((.*)\).*$//' | sort | uniq -c | sort -rn

 

Hancock

Hancock -- might use.

 

+1s

This basic appeal seems to be working....

 

Jacking in...

I don't think this is what William Gibson meant when he coined the term _jacking in_...

In any case it makes OTP'ing easier :) Just stop by your techstop and get a USB extension cable.

 

Myspace...

Poor poor myspace...

Email sent to me today...

 

Alfresco coding

Alfresco coding !

 

Farmville 1970

Farmville 1970 props to Rohit

 

Rainbows over Oakland

Rainbows over oakland

 

Yelp

Yelp warnings at the vet. I imagine the next step is binding arbitration??

 

Opensocial...

I'm at the San Francisco office today putting the socialism back into Social Standards.

From 1-5pm see talks about OpenSocial and OpenSocial v2.0. It's in Duboce Tech talk.. Then at 5 there's a reception with beer, wine, snaks and *10* vendors demoing OpenSocial apps and containers.

And.... If you want to volunteer to register attendees I can hook you up with a snazzy t-shirt with the v2 logo!

 

 

Goats!

Now if only I could cross post this to livejournal...

 

Opensocial...

Oh fun, this years Opensocial event is going to have a snazzy tee.

 

wfh

Going to WFH today. Have to be here for an inspection of the foundation plus keep an eye on the jackhammering.

 

Following

A better follower email might make all the difference to the people that complain that ES is spam.

Here's the flickr follower email. Nice and concise, it illustrates the asymmetrical nature of the relationship and provides some useful information. Furthermore there are two calls-to-action that reinforce the viral loop, specifically asking you to check out the _contacts_ of the person.

https://picasaweb.google.com/107786897865850743842/April252011?authkey=Gv1sRgCKnsktjV2sD36gE#5599453...