Skip to main content
 

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!

 

@Produces
Coffee produceCoffee(@Node @HalfnHalf MilkProduct milkProduct) {
.....
}


https://plus.google.com/photos/107786897865850743842/albums/6102481687489401041/6102481690632384722?...






 

 

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

 

 

TiL M-x google-compile









 

 

My fix.sh script

This contains anything that accepts a changelist in the form of -c XXXXXX

I just run this thing before I mail out CLs and has made my life easier.  Anything else safe that can be added here?  Next step I should add some kind of g4 mail trigger to just run this thing automatically......

#!/bin/sh
buildifier -a -v
/google/src/head/depot/google3/tools/java/remove_unused_imports.py --fix
/google/src/head/depot/google3/tools/java/sort_java_imports.py









 

*Human Factors Design Handbook - 1981*

One can learn a lot by looking into how real Architects design things.  Airports, Parking Garages, Bathrooms, Missile Control Systems, Furniture, you name it, it's in there.  It also includes things highly relevant to our field like accessibility, design for failure, and social factors and privacy:

_Personal space factors are important in establishing the privacy requirements for architectural design._

Currently residing at the desk of @102103132265474854376   -- Check it out!


https://plus.google.com/photos/107786897865850743842/albums/6090541554277570881/6090541559340908530






 

Here's my slides talking about SEO for Google+

Email me at [email protected] and I will gladly add you to the webmaster tools for plus.google.com to see all the cool graphs.




https://docs.google.com/presentation/d/1Cpv9JlJ0r8jOHJioBU-OKqH3Kz5mnD1HTXAAxfqAolw/edit?_escaped_fr...






 

 

1 Direction Hangout had visible effect in search queries to plus.google.com.  (Blue is impressions, red clicks.)


https://plus.google.com/photos/107786897865850743842/albums/6080909467251976817/6080909471461225522






 

 

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.

 

_Add support for [deprecated = true] on all types of definitions_

Fixed in 2.6.0

There was much rejoicing..


https://code.google.com/p/protobuf/issues/detail?id=329






 

So it appears that Pages that restrict visibility from the US will not get indexed in search.  I just checked this using webmaster tools and things don't show up.

I doubt that's what these page owners expect...

@107119856398345819723 / @106642279061626308531 - thoughts?

@102583327817215270776  I know we allow webmasters to geotarget whole domains, do we allow for a way to do it on a page-by-page basis using magic markup?


https://support.google.com/business/answer/4601912?p=audience_settings&hl=en&rd=1






 

Heads up webmasters -- please consider updating your javascript snippets.

Heads up webmasters -- please consider updating your javascript snippets.

Originally shared by Ilya Grigorik

All Google+ widgets have been updated to use the script[async + defer] pattern! E.g. +1 button docs: http://bit.ly/YHoj96

What's the benefit? Loading widgets via script[async+defer] does not block the document parser (see [1]), and allows the preload scanner to discover the script resource and initiate an earlier fetch (see [2]). Net outcome, both your page and the widget load faster! Have a G+ widget on your page? Check out the docs for guidance on how to update your snippets.

Kudos to the G+ team for taking the lead on this! Hope to see more widget providers adopt the same pattern.

[1] https://developers.google.com/web/fundamentals/performance/critical-rendering-path/adding-interactiv...

[2] https://www.igvita.com/2014/05/20/script-injected-async-scripts-considered-harmful/

 

If you have an org devoted to supporting power/'head" users I'd love to hear about it...  [post a comment or message me]

Looks like Youtube has this with real metrics and OKRs which is cool.

https://sites.google.com/a/google.com/yt1tomany-global









 

Managed to get OpenVPN-ng working.  Recommended if you live in Chrome Canary, like I do...


https://docs.google.com/a/google.com/document/d/19UhFhzFenS3zqu-TpFIh96FjFCg9I-VHRAb02mE0LdM/edit?_e...






 

Interesting take on Email based sharing for photos.

.. rewind : we were talking with Yahoo about supporting this use case a few years ago.  Not much came of it.


https://plus.google.com/






 


IMO we need *Public* to be different from *Publicized*.  There are people that want stuff to be out there, but not promoted.  Give the user a choice here..

We've been through this hell many times.  User thinks their audience is small.  We blow it up big time:

- Google+ Shares of Youtube videos
- Photos on a Map
- next?

I've told this story many times, but when I was at hi5 we analyzed why people deleted their accounts.  A big percentage were people with photos that appeared in the hi5 version of 'What's Hot'.

http://www.allisonwoodruff.com/publications/2014-Woodruff-CHI2014-ReputationManagement.pdf






 

*This is how Googlebot fetched the page*

So my  with SEO got the shout out, so I guess I should tell you more...  I learned a few things about driving search traffic at some startups and at LinkedIn which really mastered the practice. When Authorship was unlaunched I noticed that we did quite poorly in this area.

So I got our sites verified on Google Webmaster tools and started going through a few checklists.  Bushels of low hanging fruit.  Many issues have been fixed, but there are many more to go.  I'm collecting resources on this sites page:

https://sites.google.com/a/google.com/oz/oz-documentation/seo

And here's a cover bug that lists many of the problems found:

https://b2.corp.google.com/issues/17438991

Also if you're interested in these issues I can add you to the webmaster tools sites.  You can see what people are searching for and what your pages look like to Googlebot.  And hopefully it's not like the /explore page (which is fixed in http://cr/75340820)

[we now return you to your I release code freeze scramble]


https://plus.google.com/photos/107786897865850743842/albums/6058268239207694881/6058268240831870450






 

I hope you can update Mark with authorship changes the same way you treat Search Engine Land.

I hope you can update Mark with authorship changes the same way you treat Search Engine Land....  He's going to lose some major credibility.

Originally shared by Mark Traphagen

Interview with Me About Google Authorship

Andre Alpar of OMReport.de interviewed me last June at SMX Advanced in Seattle about Google Authorship and the changes we had seen from the beginning of the year up to that point.

Please note that this interview was conducted before Google removed all author photos from regular search, but Authorship still works, and I believe the principles I discuss here are still valid.

 

You can now donate and gift-match via payroll deductions.


https://support.google.com/googlersgive/answer/3381180






 

*One simple trick that simplifies JS Loading!*

@103532563190745371016 has delved deep into script loading and found that it's better to  just use a regular script tag to load many resources.  The key is to use the async and defer attributes.

It turns out that preload scanners work better than the gobs of script-tag-injecting js code, even on older mobile browsers.

If you're targeting IE9 and above you can also use the _onload_ attribute on your script tag to trigger execution when the script is async loaded.

Work is ongoing to update our docs and existing uses in google3.


https://docs.google.com/a/google.com/document/d/1vOKlHN3VI9nlJYbkCIXSZiP_T9QimGvaoh48qR9BKI8/edit?_e...






 

Google Health...  For dogs

Just had to deal with medical records for my dog's chemo treatments.  Very suboptimal.  I was able to get PDFs (instead of fax) and some digital x-rays.

However to make sense of this I had to manually plug in blood test results into a sheet.  Each of these data points had differing error-ranges. etc.

There's a long history of animal based science being applied to humans.  If we could solve the Vet problem we could move on to Humans.....









 

I don't think that's what we meant by "name shaped".

@102143528674197588447 @103643500382916616176


https://plus.google.com/






 

This following comment makes me wonder...  when will HTML not make up the majority of our search corpus?

_They've already been using their ranking system to encourage HTTP and HTML. Think of all the poor BBSs and gopher servers they've been discriminating against!_


http://search-beta.slashdot.org/story/14/08/07/1556204/google-will-give-a-search-edge-to-websites-th...






 

 

John Hjelmstad / Jonathan Beri - same deal as sign in button...  let's incorporate it...

John Hjelmstad / Jonathan Beri - same deal as sign in button...  let's incorporate it...

Originally shared by Gerwin Sturm

As you might have noticed I invested quite some time in Polymer recently. What I like about web components is that they make a lot of things a lot easier, except...

Normally adding a +1 button (or any other Google+ plugin) to a website is just about the easiest thing you can do.

1. Take the code snippet from the docs, e.g. https://developers.google.com/+/web/+1button/

2. Paste it in your code at the appropriate place.

3. Done.

Unfortunately the gapi JS library doesn't like to work with the Shadow DOM. Even if you pass in a direct reference to an element inside of your element it won't work.

The (https://github.com/GoogleWebComponents/google-hangout-button/) works around this issue by adding an element to the light DOM, telling gapi to render the button there, then snatching the element and sending it to the shadow realm dom.

Since there are a lot more widgets to choose from, I took this idea and started by creating a generic element that takes `type` and `data` as attributes to render the appropriate plugin, using the same idea as the hangout-button.

So for the default +1 button you could just use

Or for a profile badge you would use

<google-plugin type='person' data='{"href": "https://plus.google.com/+GerwinSturm"}'>

From there I started to create specific elements, that have the relevant attributes for each plugin.

For now there are only two but others are easy to add:

(the profile attribute will be used to build the href attribute needed by the profile widget)

The plugins still aren't really happy inside of the shadow dom, displaying some errors in the console, and not all interaction seems to be working correctly.

I have some other ideas I will test to improve this, but maybe the gapi team will eventually support Shadow DOM properly ;)

For now these elements work better than not working at all :)

Source code: https://github.com/Scarygami/google-plugins

Docs: http://scarygami.github.io/google-plugins/components/google-plugins/

Demo: http://scarygami.github.io/google-plugins/components/google-plugins/demo.html

 

What is this Messenger app in L???

Will Hangouts still be default? What about Gmessage?


https://plus.google.com/photos/107786897865850743842/albums/6041918966800660241/6041918960428142274?...






 

 

Realized that many people don't know about this nicely curated news blast that's put out every morning.  Subscribe today!


https://groups.google.com/a/google.com/forum/#!forum/morningnews






 

Read this behind the scenes article about Project Boswell with Brett Lider  and Joseph Smarr  who toiled long and...

Read this behind the scenes article about Project Boswell with Brett Lider  and Joseph Smarr  who toiled long and hard to deliver an awesome feature.

This article also showcases how sometimes you have to throw away the first few concepts before you get it right.   Happy that I had a small part at the beginning of the project and props to the many folks that invested time and effort to get this out the door.

 

Nifty new auto screenshot sharing in Ingres. Play Games should offer this as "Screenshot as a Service". I wish that they used Deep Links and Calypso...

Intel report for Portal "Jordan Residence" -- Ace Arch.


https://plus.google.com/photos/107786897865850743842/albums/6031938915992521697/6031938918283855778?...






 

Going to be using hashtags in CLs a lot more now that Critique shows them as links to a search landing page:

https://critique.corp.google.com/#search/&q=tag:socialefficiency&type=cl









 

EA FIFA '73 spotted at Google...

EA FIFA '73 spotted at Google...

 

Big anti-hangouts article from Microsoft.

_Google+ Hangouts is Google’s attempt at a Universal Communications solution, but is designed primarily for consumers rather than information workers. It relies on third-party applications for many key voice capabilities, and has other significant limitations that make it a poor choice for business. Lync, which is easy to use and easy to manage, offers the flexible yet comprehensive UC solution that both enterprises and end users need—a solution that Google can’t match._


http://blogs.office.com/2014/06/09/microsoft-drives-the-universal-communications-revolution/






 

Idea: *bandwidth meter on shuttle*

or a data based way to stop data hogs.

- Install network monitoring on the router. Use sflow or something like http://www.pmacct.net/ Also gather interface stats (up/down/max bw, etc)
- display results for everyone to see
  - use built-in TV/video out (if available)
  - or use an led sign like the one below..

Messages that could be displayed:

  - Bandwidth warning 75% reduce usage.
  - No 3G/4G service.  Hang tight!
  - Warning.  Video usage @35%
  - Display stats for the current ride
     BW used this ride 420M
  - Or even better:
     BW used this ride: 56
  - Or sillier:
    BW use this ride: .05 milli-SWE

Of course a programmable sign could be used for other things too.

Next Stop: West Oakland Park & Ride
Some interesting google-wide metrics (and not the stock price, please...)


http://www.amazon.com/NEOPlex-Programmable-Scrolling-Software-Keyboard/dp/B00B90LY7I/ref=pd_sim_sbs_...






 

 

For a second there I thought we had forgotten some size params on our FIFE urls...


https://plus.google.com/104979267299758620425#__sid=md0






 

This is either really disgusting or super-trollish, depending on whether this person is an actual employee...   Latest comment:

_Nothing at all; this was a decision made by the Hangouts team. The XMPP change has to do with the NIH syndrome a lot of Google engineers suffer from, combined with the incompetence of the Hangouts PM, Kate Cushing._
_Disclaimer: I work for Google._


https://news.ycombinator.com/threads?id=presootto






 

Google+ : For Winners.

(Private communities and hangouts get the job done for Ingress players...)


https://plus.google.com/photos/107786897865850743842/albums/6014259673203354705/6014259666305363442?...






 

Still an empty profile though...

Still an empty profile though...

But not much better than:

Joe Tuman - https://plus.google.com/109949039322333887009

Libby Schaff - https://plus.google.com/110500927796450135344

Bryan Parker - https://plus.google.com/109333654487362962540

At least Parker has a couple of posts there.  Tuman has only 1 Youtube video..

If there are other candidates add them here and I'll share an Oakland Mayor 2014 circle..

 

It's breeding season for -Snowy- Great Egrets.

Next time you're on the west side of 1201 Charleston look up to the trees and you'll notice a dozen -Snowy- Great Egret nests.  Maybe you'll even catch them flying from tree-to-tree carrying newly found twigs.  They really get going on the weekends when they have the campus to themselves.

http://en.wikipedia.org/wiki/Great_Egret


https://plus.google.com/photos/107786897865850743842/albums/6004786295072276513/6004786295235612994






 

 

*want*  - couldn't find an internal bug for this, anyone know?

_Add support for [deprecated = true] on all types of definitions_


https://code.google.com/p/protobuf/issues/detail?id=329






 

Why did no one tell me about this?  Would've been so useful for some mobile debugging a little bit ago....

https://xsds.corp.google.com/









 

I've been very impressed with the rapid progress of Sprint Reader I'm up to 650 wpm and can probably go faster with...

I've been very impressed with the rapid progress of Sprint Reader I'm up to 650 wpm and can probably go faster with a little more practice.

Originally shared by Sprint Reader

Language auto-detection done!

Functionality coming soon and paves the way for more intelligent word hyphenation (by language pattern) and maybe, just maybe auto-translation!

Stay tuned.

  Google Translate     

 

Google+  has some common sense content rules in the User Content and Conduct Policy [1]  You'll notice there is no...

Google+  has some common sense content rules in the User Content and Conduct Policy [1]  You'll notice there is no section on censorship based on viewpoint.

The issue described by Eric Raymond below is much more mundane.  It's actually a problem in the way Google+ previews web snippets.  

A couple of weeks ago we introduced the new Article embed type.  You'll notice these posts by their distinctive large-photos with a ragged-edge.  This new code caused the problem.

The markup on theblaze.com uses the http://schema.org/NewsArticle markup.  That, combined with some other factors causes the preview processing to fail.  This issue was reported to us on April 1st and a fix will be released to production early next week.

I opened an issue on our developer site to track this issue since it does affect a handful of other sites that use the NewsArticle markup.  Feel free to Star it to receive updates: 

https://code.google.com/p/google-plus-platform/issues/detail?id=805

[1] https://www.google.com/intl/en-US/+/policy/content.html

Originally shared by Eric Raymond

G+ may be engaging in non-viewpoint-neutral censorship of news  articles relating to firearms. 

This link:

http://www.theblaze.com/stories/2014/04/04/gun-control-advocates-who-say-more-guns-equal-more-crime-...

results in post blocking when it's either pasted in the link box or pasted in text with the preview image not removed. Others have reported that all firearms-related articles from The Blaze, but not non-firearms-related articles, are blocked.

Something more specific than blocking of firearms-related images is going on, as the Geeks with Guns G+ community would have noticed that a lot sooner than now.

Google has some explaining to do.