jm + google   175

re:Work - The five keys to a successful Google team
We learned that there are five key dynamics that set successful teams apart from other teams at Google:
Psychological safety: Can we take risks on this team without feeling insecure or embarrassed?
Dependability: Can we count on each other to do high quality work on time?
Structure & clarity: Are goals, roles, and execution plans on our team clear?
Meaning of work: Are we working on something that is personally important for each of us?
Impact of work: Do we fundamentally believe that the work we’re doing matters?
teams  google  culture  work  management  productivity  hr 
5 days ago by jm
User data plundering by Android and iOS apps is as rampant as you suspected
An app from, meanwhile, sent the medical search terms "herpes" and "interferon" to five domains, including,,,, and, although those domains didn't receive other personal information.
privacy  security  google  tracking  mobile  phones  search  pii 
26 days ago by jm
Google Cloud Platform HTTP/HTTPS Load Balancing
GCE's LB product is pretty nice -- HTTP/2 support, and a built-in URL mapping feature (presumably based on how Google approach that problem internally, I understand they take that approach). I'm hoping AWS are taking notes for the next generation of ELB, if that ever happens
elb  gce  google  load-balancing  http  https  spdy  http2  urls  request-routing  ops  architecture  cloud 
4 weeks ago by jm
Google tears Symantec a new one on its CA failure
Symantec are getting a crash course in how to conduct an incident post-mortem to boot:
More immediately, we are requesting of Symantec that they further update their public incident report with:
A post-mortem analysis that details why they did not detect the additional certificates that we found.
Details of each of the failures to uphold the relevant Baseline Requirements and EV Guidelines and what they believe the individual root cause was for each failure.
We are also requesting that Symantec provide us with a detailed set of steps they will take to correct and prevent each of the identified failures, as well as a timeline for when they expect to complete such work. Symantec may consider this latter information to be confidential and so we are not requesting that this be made public.
google  symantec  ev  ssl  certificates  ca  security  postmortems  ops 
4 weeks ago by jm
Chromecast Speakers
Supports Spotify -- totally getting one of these
spotify  speakers  music  home  google  gadgets  toget 
7 weeks ago by jm
Google Cloud Shell
your command line environment in the [Google] Cloud. This feature enables you to connect to a shell environment on a virtual machine, pre-loaded with the tools you need to easily run commands to develop, deploy and manage your projects. Currently, Cloud Shell is an f1-micro Google Compute Engine machine that exposes a Debian-based development environment. You are also assigned 5 GB of standard persistent disk space as the home disk so you can store files between sessions.

It's also free. This is a great idea -- handy both for beginners getting to grips with GoogCloud and for experts looking for a quite dev env to hack with. I wish AWS had something similar.
google  cloud  shell  google-cloud  gcs  gce  cli  tools 
8 weeks ago by jm
Brotli: a new compression algorithm for the internet from Google
While Zopfli is Deflate-compatible, Brotli is a whole new data format. This new format allows us to get 20–26% higher compression ratios over Zopfli. In our study ‘Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms’ we show that Brotli is roughly as fast as zlib’s Deflate implementation. At the same time, it compresses slightly more densely than LZMA and bzip2 on the Canterbury corpus. The higher data density is achieved by a 2nd order context modeling, re-use of entropy codes, larger memory window of past data and joint distribution codes. Just like Zopfli, the new algorithm is named after Swiss bakery products. Brötli means ‘small bread’ in Swiss German.
brotli  zopfli  deflate  gzip  compression  algorithms  swiss  google 
10 weeks ago by jm
Using Samsung's Internet-Enabled Refrigerator for Man-in-the-Middle Attacks
Whilst the fridge implements SSL, it FAILS to validate SSL certificates, thereby enabling man-in-the-middle attacks against most connections. This includes those made to Google's servers to download Gmail calendar information for the on-screen display. So, MITM the victim's fridge from next door, or on the road outside and you can potentially steal their Google credentials.

The Internet of Insecure Things strikes again.
iot  security  fridges  samsung  fail  mitm  ssl  tls  google  papers  defcon 
september 2015 by jm
What does it take to make Google work at scale? [slides]
50-slide summary of Google's stack, compared vs Facebook, Yahoo!, and open-source-land, with the odd interesting architectural insight
google  architecture  slides  scalability  bigtable  spanner  facebook  gfs  storage 
august 2015 by jm
The reusable holdout: Preserving validity in adaptive data analysis
Useful stats hack from Google: "We show how to safely reuse a holdout data set many times to validate the results of adaptively chosen analyses."
statistics  google  reusable-holdout  training  ml  machine-learning  data-analysis  holdout  corpus  sampling 
august 2015 by jm
Inside the sad, expensive failure of Google+
"It was clear if you looked at the per user metrics, people weren’t posting, weren't returning and weren’t really engaging with the product," says one former employee. "Six months in, there started to be a feeling that this isn’t really working." Some lay the blame on the top-down structure of the Google+ department and a leadership team that viewed success as the only option for the social network. Failures and disappointing data were not widely discussed. "The belief was that we were always just one weird feature away from the thing taking off," says the same employee.
google  google+  failures  post-mortems  business  facebook  social-media  fail  bureaucracy  vic-gundotra 
august 2015 by jm
New study shows Spain’s “Google tax” has been a disaster for publishers
A study commissioned by Spanish publishers has found that a new intellectual property law passed in Spain last year, which charges news aggregators like Google for showing snippets and linking to news stories, has done substantial damage to the Spanish news industry.

In the short-term, the study found, the law will cost publishers €10 million, or about $10.9 million, which would fall disproportionately on smaller publishers. Consumers would experience a smaller variety of content, and the law "impedes the ability of innovation to enter the market." The study concludes that there's no "theoretical or empirical justification" for the fee.
google  news  publishing  google-tax  spain  law  aggregation  snippets  economics 
august 2015 by jm
Why Google's Deep Dream Is Future Kitsch
Deep Dream estranges us from our fears, perhaps, but it doesn't make them go away. It's easy to discuss Deep Dream as an independent creature, a foreign intelligence that we interact with for fun. Yet like all kitsch, it comes straight back to its creators.
kitsch  deep-dream  art  graphics  google  inceptionism 
july 2015 by jm
Google Flights
oh look, Google has a flight search engine! I had no idea
google  flights  travel  search  holidays 
july 2015 by jm
Self-driving cars drive like your grandma
'Honestly, I don't think it will take long for other drivers to realize that self-driving cars are "easy targets" in traffic.' -- also, an insurance expert suggests that self-driving cars won't increase premiums
driving  google  cars  traffic  social  insurance 
july 2015 by jm
Google Cloud Platform announces new Container Registry
Yay. Sensible Docker registry pricing at last. Given the high prices, rough edges and slow performance of the other registry offerings, I'm quite happy to see this.
Google Container Registry helps make it easy for you to store your container images in a private and encrypted registry, built on Cloud Platform. Pricing for storing images in Container Registry is simple: you only pay Google Cloud Storage costs. Pushing images is free, and pulling Docker images within a Google Cloud Platform region is free (Cloud Storage egress cost when outside of a region).

Container Registry is now ready for production use:

* Encrypted and Authenticated - Your container images are encrypted at rest, and access is authenticated using Cloud Platform OAuth and transmitted over SSL
* Fast - Container Registry is fast and can handle the demands of your application, because it is built on Cloud Storage and Cloud Networking.
* Simple - If you’re using Docker, just tag your image with a tag and push it to the registry to get started.  Manage your images in the Google Developers Console.
* Local - If your cluster runs in Asia or Europe, you can now store your images in ASIA or EU specific repositories using and tags.
docker  registry  google  gcp  containers  cloud-storage  ops  deployment 
june 2015 by jm
Inceptionism: Going Deeper into Neural Networks
This is amazing, and a little scary.
If we choose higher-level layers, which identify more sophisticated features in images, complex features or even whole objects tend to emerge. Again, we just start with an existing image and give it to our neural net. We ask the network: “Whatever you see there, I want more of it!” This creates a feedback loop: if a cloud looks a little bit like a bird, the network will make it look more like a bird. This in turn will make the network recognize the bird even more strongly on the next pass and so forth, until a highly detailed bird appears, seemingly out of nowhere.

An enlightening comment from the G+ thread:

This is the most fun we've had in the office in a while. We've even made some of those 'Inceptionistic' art pieces into giant posters. Beyond the eye candy, there is actually something deeply interesting in this line of work: neural networks have a bad reputation for being strange black boxes that that are opaque to inspection. I have never understood those charges: any other model (GMM, SVM, Random Forests) of any sufficient complexity for a real task is completely opaque for very fundamental reasons: their non-linear structure makes it hard to project back the function they represent into their input space and make sense of it. Not so with backprop, as this blog post shows eloquently: you can query the model and ask what it believes it is seeing or 'wants' to see simply by following gradients. This 'guided hallucination' technique is very powerful and the gorgeous visualizations it generates are very evocative of what's really going on in the network.
art  machine-learning  algorithm  inceptionism  research  google  neural-networks  learning  dreams  feedback  graphics 
june 2015 by jm
Google Cloud Platform Blog: A look inside Google’s Data Center Networks
We used three key principles in designing our datacenter networks:
We arrange our network around a Clos topology, a network configuration where a collection of smaller (cheaper) switches are arranged to provide the properties of a much larger logical switch.
We use a centralized software control stack to manage thousands of switches within the data center, making them effectively act as one large fabric.
We build our own software and hardware using silicon from vendors, relying less on standard Internet protocols and more on custom protocols tailored to the data center.
clos-networks  google  data-centers  networking  sdn  gcp  ops 
june 2015 by jm
Google Photos - Can I get out?
what's the export policy for Google's new Photos service? pretty good, it turns out
google  export  data  google-photos  photos  archive  history  storage 
june 2015 by jm
Snake-Oil Superfoods
mainly interesting for the dataviz and the Google-Doc-driven backend. wish they published the script though
google  snake-oil  superfoods  food  dataviz  bubble-race-chart  graphics  infographics  google-docs  spreadsheets 
may 2015 by jm
Eric Brewer interview on Kubernetes
What is the relationship between Kubernetes, Borg and Omega (the two internal resource-orchestration systems Google has built)?

I would say, kind of by definition, there’s no shared code but there are shared people.

You can think of Kubernetes — especially some of the elements around pods and labels — as being lessons learned from Borg and Omega that are, frankly, significantly better in Kubernetes. There are things that are going to end up being the same as Borg — like the way we use IP addresses is very similar — but other things, like labels, are actually much better than what we did internally.

I would say that’s a lesson we learned the hard way.
google  architecture  kubernetes  docker  containers  borg  omega  deployment  ops 
may 2015 by jm
'The multiple repository tool'. How Google kludged around the split-repo problem when you don't have a monorepo.
kludges  git  monorepo  monorepi  google  android  aosp  repo  coding  version-control  dvcs 
may 2015 by jm
Your Google Algorithm Cheat Sheet: Panda, Penguin, and Hummingbird
Interesting that GOOG are still doing these big-bang releases -- I guess crunching the data to come up with new weights/rules is a heavyweight, time-consuming process
google  search  ranking  releases  panda  penguin  hummingbird  weighting 
may 2015 by jm
Google Online Security Blog: A Javascript-based DDoS Attack [the Greatfire DDoS] as seen by Safe Browsing
We hope this report helps to round out the overall facts known about this attack. It also demonstrates that collectively there is a lot of visibility into what happens on the web. At the HTTP level seen by Safe Browsing, we cannot confidently attribute this attack to anyone. However, it makes it clear that hiding such attacks from detailed analysis after the fact is difficult.

Had the entire web already moved to encrypted traffic via TLS, such an injection attack would not have been possible. This provides further motivation for transitioning the web to encrypted and integrity-protected communication. Unfortunately, defending against such an attack is not easy for website operators. In this case, the attack Javascript requests web resources sequentially and slowing down responses might have helped with reducing the overall attack traffic. Another hope is that the external visibility of this attack will serve as a deterrent in the future.

Via Nelson.
google  security  via:nelson  ddos  javascript  tls  ssl  safe-browsing  networking  china  greatfire 
april 2015 by jm
Kubernetes compared to Borg
'Here are four Kubernetes features that came from our experiences with Borg.'
google  ops  kubernetes  borg  containers  docker  networking 
april 2015 by jm
Large-scale cluster management at Google with Borg
Google's Borg system is a cluster manager that runs hundreds of thousands of jobs, from many thousands of different applications, across a number of clusters each with up to tens of thousands of machines. It achieves high utilization by combining admission control, efficient task-packing, over-commitment, and machine sharing with process-level performance isolation. It supports high-availability applications with runtime features that minimize fault-recovery time, and scheduling policies that reduce the probability of correlated failures. Borg simplifies life for its users by offering a declarative job specification language, name service integration, real-time job monitoring, and tools to analyze and simulate system behavior.
We present a summary of the Borg system architecture and features, important design decisions, a quantitative analysis of some of its policy decisions, and a qualitative examination of lessons learned from a decade of operational experience with it.

(via Conall)
via:conall  clustering  google  papers  scale  to-read  borg  cluster-management  deployment  packing  reliability  redundancy 
april 2015 by jm
5% of Google visitors have ad-injecting malware installed
Ad injectors were detected on all operating systems (Mac and Windows), and web browsers (Chrome, Firefox, IE) that were included in our test. More than 5% of people visiting Google sites have at least one ad injector installed. Within that group, half have at least two injectors installed and nearly one-third have at least four installed.

via Nelson.
via:nelson  ads  google  chrome  ad-injectors  malware  scummy 
april 2015 by jm
Google delist CNNIC certs
As a result of a joint investigation of the events surrounding this incident by Google and CNNIC, we have decided that the CNNIC Root and EV CAs will no longer be recognized in Google products.
cnnic  certs  ssl  tls  security  certificates  pki  chrome  google 
april 2015 by jm
Tim Bray on one year as an xoogler
Seems pretty insightful; particularly "I do think the In­ter­net econ­o­my would be bet­ter and more hu­mane if it didn’t have a sin­gle white-hot highly-overprivileged cen­ter. Al­so, soon­er or lat­er that’ll stop scal­ing. Can’t hap­pen too soon."
google  tim-bray  via:nelson  xoogler  funding  tech  privacy  ads  internet 
march 2015 by jm
Bug Prediction at Google
LOL. grepping commit logs for /bug|fix/ does the job, apparently:
In the literature, Rahman et al. found that a very cheap algorithm actually performs almost as well as some very expensive bug-prediction algorithms. They found that simply ranking files by the number of times they've been changed with a bug-fixing commit (i.e. a commit which fixes a bug) will find the hot spots in a code base. Simple! This matches our intuition: if a file keeps requiring bug-fixes, it must be a hot spot because developers are clearly struggling with it.
bugs  rahman-algorithm  heuristics  source-code-analysis  coding  algorithms  google  static-code-analysis  version-control 
march 2015 by jm
Google open sources a key part of their internal build system (internally called "Blaze" it seems for a while). Very nice indeed!
blaze  bazel  build-tools  building  open-source  google  coding  packaging 
march 2015 by jm
Stairs to nowhere, trap streets, and other Toronto oddities
'There’s a set of stairs on Greenwood Avenue that lead nowhere. At the top, a wooden fence at the end of someone’s back yard blocks any further movement, forcing the climber to turn around and descend back to the street. What’s remarkable about the pointless Greenwood stairs, which were built in 1959 as a shortcut to a now-demolished brickyard, is that someone still routinely maintains them: in winter, some kindly soul deposits a scattering of salt lest one of the stairs’ phantom users slip; in summer someone comes with a broom to sweep away leaves.
These urban leftovers are lovingly called “Thomassons” after Gary Thomasson, a former slugger for the San Francisco Giants, Oakland As, Yankees, Dodgers, and, most fatefully, the Yomiuri Giants in Tokyo.'
trap-streets  maps  ip  google  via:bldgblog  mapping  copyright  thomassons  orphaned-roads 
march 2015 by jm
Explanation of the Jump Consistent Hash algorithm
I blogged about the amazing stateless Jump Consistent Hash algorithm last year, but this is a good walkthrough of how it works.

Apparently one author, Eric Veach, is legendary -- : "Eric Veach is huge in the computer graphics world for laying a ton of the foundations of modern physically based rendering in his PhD thesis [1]. He then went on to work for Pixar and did a ton of work on Renderman (for which he recently got an Academy Award), and then in the early 2000ish left Pixar to go work for Google, where he was the lead on developing AdWords [2]. In short, he's had quite a career, and seeing a new paper from him is always interesting."
eric-veach  consistent-hashing  algorithms  google  adwords  renderman  pixar  history  coding  c  c++ 
march 2015 by jm
Anatomy of a Hack
Authy doesn't come off well here:

'Authy should have been harder to break. It's an app, like Authenticator, and it never left Davis' phone. But Eve simply reset the app on her phone using a address and a new confirmation code, again sent by a voice call. A few minutes after 3AM, the Authy account moved under Eve's control.'
authy  security  hacking  mfa  authentication  google  apps  exploits 
march 2015 by jm
"Everything you've ever said to Siri/Cortana has been recorded...and I get to listen to it"
This should be a reminder.
At first, I though these sound bites were completely random. Then I began to notice a pattern. Soon, I realized that I was hearing peoples commands given to their mobile devices. Guys, I'm telling you, if you've said it to your phone, it's been recorded...and there's a damn good chance a 3rd party is going to hear it.
privacy  google  siri  cortana  android  voice-recognition  outsourcing  mobile 
march 2015 by jm
Release Protocol Buffers v3.0.0-alpha-2 · google/protobuf
New major-version track for protobuf, with some interesting new features:

Removal of field presence logic for primitive value fields, removal of required fields, and removal of default values. This makes proto3 significantly easier to implement with open struct representations, as in languages like Android Java, Objective C, or Go.
Removal of unknown fields.
Removal of extensions, which are instead replaced by a new standard type called Any.
Fix semantics for unknown enum values.
Addition of maps.
Addition of a small set of standard types for representation of time, dynamic data, etc.
A well-defined encoding in JSON as an alternative to binary proto encoding.
protobuf  binary  marshalling  serialization  google  grpc  proto3  coding  open-source 
february 2015 by jm
Binary message marshalling, client/server stubs generated by an IDL compiler, bidirectional binary protocol. CORBA is back from the dead!
Intro blog post:

Relevant: Steve Vinoski's commentary on protobuf-rpc back in 2008:
http  rpc  http2  netty  grpc  google  corba  idl  messaging 
february 2015 by jm
2015-02-19 GCE outage
40 minutes of multi-zone network outage for majority of instances.

'The internal software system which programs GCE’s virtual network for VM
egress traffic stopped issuing updated routing information. The cause of
this interruption is still under active investigation. Cached route
information provided a defense in depth against missing updates, but GCE VM
egress traffic started to be dropped as the cached routes expired.'

I wonder if Google Pimms fired the alarms for this ;)
google  outages  gce  networking  routing  pimms  multi-az  cloud 
february 2015 by jm
Nice looking static code validation tool for Java, from Google. I recognise a few of these errors ;)
google  static  code-validation  lint  testing  java  coding 
february 2015 by jm
Coining "Dysguria"
“dysaguria” is the perfect noun, and “dysagurian” is the perfect adjective, to describe the eponymous company in Dave Eggers’ The Circle. It’s not in the same league as Orwell, or Huxley, or Bradbury, or Burgess. But it does raise very important questions about what could possibly go wrong if one company controlled all the world’s information. In the novel, the company operates according to the motto “all that happens must be known”; and one of its bosses, Eamon Bailey, encourages everywoman employee Mae Holland to live an always-on (clear, transparent) life according the maxims “secrets are lies”, “sharing is caring”, and “privacy is theft”. Eggers’s debts to dystopian fiction are apparent. But, whereas writers like Orwell, Huxley, Bradbury, and Burgess were concerned with totalitarian states, Eggers is concerned with a totalitarian company. However, the noun “dystopia” and the adjective “dystopian” – perfect though they are for the terror of military/security authoritarianism in 1984, or Brave new World, or Farenheit 451, or A Clockwork Orange – do not to my mind encapsulate the nightmare of industrial/corporate tyranny in The Circle. On the other hand, “dysaguria” as a noun and “dysagurian” as an adjective, in my view really do capture the essence of that “frightening company”.
dysaguria  dystopia  future  sf  authoritarianism  surveillance  the-circle  google  facebook 
february 2015 by jm
Google Java Style
A good set of basic, controversy-free guidelines for clean java code style
style  java  google  coding  guidelines  formatting  coding-standards 
february 2015 by jm
Zoë Keating on getting a shitty deal from Google's new Music Key licensing
The Youtube music service was introduced to me as a win win and they don’t understand why I don’t see it that way. “We are trying to create a new revenue stream on top of the platform that exists today.” A lot of people in the music industry talk about Google as evil. I don’t think they are evil. I think they, like other tech companies, are just idealistic in a way that works best for them. I think this because I used to be one of them. The people who work at Google, Facebook, etc can’t imagine how everything they make is not, like, totally awesome. If it’s not awesome for you it’s because you just don’t understand it yet and you’ll come around. They can’t imagine scenarios outside their reality and that is how they inadvertently unleash things like the algorithmic cruelty of Facebook’s yearly review (which showed me a picture I had posted after a doctor told me my husband had 6-8 weeks to live).
google  business  music  youtube  zoe-keating  music-key  licensing  tech 
january 2015 by jm
F1: A Distributed SQL Database That Scales
Beyond the interesting-enough stuff about scalability in a distributed SQL store, there's this really nifty point about avoiding the horrors of the SQL/ORM impedance mismatch:
At Google, Protocol Buffers are ubiquitous for data storage and interchange between applications. When we still had a MySQL schema, users often had to write tedious and error-prone transformations between database rows and in-memory data structures. Putting protocol buffers in the schema removes this impedance mismatch and gives users a universal data structure they can use both in the database and in application code…. Protocol Buffer columns are more natural and reduce semantic complexity for users, who can now read and write their logical business objects as atomic units, without having to think about materializing them using joins across several tables.

This is something that pretty much any store can already adopt. Go protobufs. (or Avro, etc.)

Also, I find this really neat, and I hope this idea is implemented elsewhere soon: asynchronous schema updates:

Schema changes are applied asynchronously on multiple F1 servers. Anomalies are prevented by the use of a schema leasing mechanism with support for only current and next schema versions; and by subdividing schema changes into multiple phases where consecutive pairs of changes are mutually compatible and cannot cause anomalies.
schema  sql  f1  google  papers  orm  protobuf 
january 2015 by jm
'Machine Learning: The High-Interest Credit Card of Technical Debt' [PDF]
Oh god yes. This is absolutely spot on, as you would expect from a Google paper -- at this stage they probably have accumulated more real-world ML-at-scale experience than anywhere else.

'Machine learning offers a fantastically powerful toolkit for building complex systems
quickly. This paper argues that it is dangerous to think of these quick wins
as coming for free. Using the framework of technical debt, we note that it is remarkably
easy to incur massive ongoing maintenance costs at the system level
when applying machine learning. The goal of this paper is highlight several machine
learning specific risk factors and design patterns to be avoided or refactored
where possible. These include boundary erosion, entanglement, hidden feedback
loops, undeclared consumers, data dependencies, changes in the external world,
and a variety of system-level anti-patterns.


'In this paper, we focus on the system-level interaction between machine learning code and larger systems
as an area where hidden technical debt may rapidly accumulate. At a system-level, a machine
learning model may subtly erode abstraction boundaries. It may be tempting to re-use input signals
in ways that create unintended tight coupling of otherwise disjoint systems. Machine learning
packages may often be treated as black boxes, resulting in large masses of “glue code” or calibration
layers that can lock in assumptions. Changes in the external world may make models or input
signals change behavior in unintended ways, ratcheting up maintenance cost and the burden of any
debt. Even monitoring that the system as a whole is operating as intended may be difficult without
careful design.

Indeed, a remarkable portion of real-world “machine learning” work is devoted to tackling issues
of this form. Paying down technical debt may initially appear less glamorous than research results
usually reported in academic ML conferences. But it is critical for long-term system health and
enables algorithmic advances and other cutting-edge improvements.'
machine-learning  ml  systems  ops  tech-debt  maintainance  google  papers  hidden-costs  development 
december 2014 by jm
The Oral History Of The Poop Emoji (Or, How Google Brought Poop To America)
'I went over to Japan right around the time Takeshi was deciding which emoji were going to make it into the first cut of Gmail emoji. The [PILE_OF_POO emoji] was absolutely one of the necessary emoji that Takeshi said we have to have. There was actually conflict because there were people back at headquarters who had no idea what emoji were, and thought that having an animated [turd] in their Gmail was offensive.'

'[The poop emoji] got very popular when a comic called "Dr. Slump" was broadcast in Japan back to the ‘90s. Such poop was not an object to be disliked, but it had a funny meaning. This was a very popular comedy animation where a girl played a trick on other people using the poop. The poop was this funny object to play with. It was never serious.' 'In Japanese that’s called “unchi.” It’s a child word with a benign meaning. '
culture  emoji  google  pile-of-poo  turd  poo  japan  gmail  unchi  dr-slump 
november 2014 by jm
How I reverse-engineered Google Docs to play back any document's keystrokes « James Somers (
Excellent write-up of this little-known undocumented GDocs behaviour, an artifact of its operational-transformation sync mechanism
operational-transformation  ot  google  gdocs  coding  docs  sync  undocumented  reversing 
november 2014 by jm
a new "types for Javascript" framework, from the team behind Angular.js -- they plan to "harmonize" it with TypeScript and pitch it for standardization, which would be awesome.

(via Rob Clancy)
via:robc  atscript  javascript  typescript  types  languages  coding  google  angular 
october 2014 by jm
The Laborers Who Keep Dick Pics and Beheadings Out of Your Facebook Feed | WIRED
“Everybody hits the wall, generally between three and five months,” says a former YouTube content moderator I’ll call Rob. “You just think, ‘Holy shit, what am I spending my day doing? This is awful.’”
facebook  wired  beheadings  moderation  nsfw  google  youtube  social-media  filtering  porn  abuse 
october 2014 by jm
Google Online Security Blog: This POODLE bites: exploiting the SSL 3.0 fallback
Today we are publishing details of a vulnerability in the design of SSL version 3.0. This vulnerability allows the plaintext of secure connections to be calculated by a network attacker.

ssl3  ssl  tls  security  exploits  google  crypto 
october 2014 by jm
Mark "ONEList" Fletcher's back, and he's reinventing the email group! awesome.
email groups (the modern version of mailing lists) have stagnated over the past decade. Yahoo Groups and Google Groups both exude the dank air of benign neglect. Google Groups hasn’t been updated in years, and some of Yahoo’s recent changes have actually made Yahoo Groups worse! And yet, millions of people put up with this uncertainty and neglect, because email groups are still one of the best ways to communicate with groups of people. And I have a plan to make them even better.
So today I’m launching in beta, to bring email groups into the 21st Century. At launch, we have many features that those other services don’t have, including:

Integration with other services, including: Github, Google Hangouts, Dropbox, Instagram, Facebook Pages, and the ability to import Feeds into your groups.
Businesses and organizations can have their own private groups on their own subdomain.
Better archive organization, using hashtags.
Many more email delivery options.
The ability to mute threads or hashtags.
Fully searchable archives, including searching within attachments.

One other feature that has that Yahoo and Google don’t, is a business model that’s not based on showing ads to you. Public groups are completely free on Private groups and organizations are very reasonably priced.
email  groups  communication  discussion  mailing-lists  yahoo  google  google-groups  yahoo-groups 
september 2014 by jm
CausalImpact: A new open-source package for estimating causal effects in time series
How can we measure the number of additional clicks or sales that an AdWords campaign generated? How can we estimate the impact of a new feature on app downloads? How do we compare the effectiveness of publicity across countries?

In principle, all of these questions can be answered through causal inference.

In practice, estimating a causal effect accurately is hard, especially when a randomised experiment is not available. One approach we've been developing at Google is based on Bayesian structural time-series models. We use these models to construct a synthetic control — what would have happened to our outcome metric in the absence of the intervention. This approach makes it possible to estimate the causal effect that can be attributed to the intervention, as well as its evolution over time.

We've been testing and applying structural time-series models for some time at Google. For example, we've used them to better understand the effectiveness of advertising campaigns and work out their return on investment. We've also applied the models to settings where a randomised experiment was available, to check how similar our effect estimates would have been without an experimental control.

Today, we're excited to announce the release of CausalImpact, an open-source R package that makes causal analyses simple and fast. With its release, all of our advertisers and users will be able to use the same powerful methods for estimating causal effects that we've been using ourselves.

Our main motivation behind creating the package has been to find a better way of measuring the impact of ad campaigns on outcomes. However, the CausalImpact package could be used for many other applications involving causal inference. Examples include problems found in economics, epidemiology, or the political and social sciences.
causal-inference  r  google  time-series  models  bayes  adwords  advertising  statistics  estimation  metrics 
september 2014 by jm
'The very first release of Gmail simply used spamassassin on the backend'
Excellent. Confirming what I'd heard from a few other sources, too ;)

This is a well-written history of the anti-spam war so far, from Mike Hearn, writing with the Google/Gmail point of view:

Brief note about my background, to establish credentials: I worked at
Google for about 7.5 years. For about 4.5 of those I worked on the Gmail
abuse team, which is very tightly linked with the spam team (they use the
same software, share the same on-call rotations etc).

Reading this kind of stuff is awesome for me, since it's a nice picture of a fun problem to work on -- the Gmail team took the right ideas about how to fight spam, and scaled them up to the 10s-of-millions DAU mark. Nicely done.

The second half is some interesting musings on end-to-end encrypted communications and how it would deal with spam. Worth a read...
gmail  google  spam  anti-spam  filtering  spamassassin  history 
september 2014 by jm
Google's new end-to-end key distribution proposal
'For End-To-End, our current approach to key distribution, is to use a model similar to Certificate Transparency, and use the email messages themselves as a gossip protocol, which allow the users themselves to keep the centralized authorities honest. This approach allows users to not have to know about keys, but at the same time, be able to make sure that the servers involved aren't doing anything malicious behind the users' back.'
end-to-end  encryption  google  security  email  crypto  key-distribution 
august 2014 by jm
The poisoned NUL byte, 2014 edition
A successful exploit of Fedora glibc via a single NUL overflow (via Tony Finch)
via:fanf  buffer-overflows  security  nul  byte  exploits  google  project-zero 
august 2014 by jm
The Internet's Original Sin - The Atlantic
Ethan Zuckerberg: 'It's not too late to ditch the ad-based business model and build a better web.'
advertising  business  internet  ads  business-models  the-atlantic  ethan-zuckerberg  via:anildash  web  privacy  surveillance  google 
august 2014 by jm
Spain pushes for 'Google tax' to restrict linking
The government wants to put a tax on linking on the internet. They say that if you want to link to some newspaper's content, you have to pay a tax. The primary targets of this law are Google News and other aggregators. It would be absurd enough just like that, but the law goes further: they declared it an "inalienable right" so even if I have a blog or a new small digital media publication and I want to let people freely link to my content, I can't opt-out--they are charging the levy, and giving it to the big press media.

It was just the last and only way that the old traditional media companies can get some money from the government, and they strongly lobbied for it. The bill has passed in the Congress where the party in the government has majority (PP, Partido Popular) and it's headed to the Senate, where they have a majority also.
spain  stupidity  law  via:boingboing  linking  links  web  news  google  google-news  newspapers  old-media  taxes 
july 2014 by jm
Google's mighty mess-up on 'right to be forgotten' -
In this context, the search giant says that it has "a team of people reviewing each application individually". Really? Did this team of people decide that redacting links to an article reporting a criminal conviction was consistent with an individual's right to privacy and 'right to be forgotten'?

Either Google is deliberately letting egregious errors through to try and bait journalists and freedom of expression activists into protesting or its system at vetting 'right to be forgotten' applications is awfully flawed.
google  right-to-be-forgotten  privacy  law  ireland  adrian-weckler  journalism  freedom-of-expression  censorship  redaction 
july 2014 by jm
Calendar Hacks
Some great tips on managing a busy calendar, from Etsy's managers. Block out time; refuse double-booked meetings by default; rely on apps; office hours. Thankfully I have a pretty slim calendar these days, but bookmarking for future use...
calendar  etsy  via:kellan  google  google-calendar  office-hours  life-hacks  hacks  tips  managing  managers  scheduling 
july 2014 by jm
173 million 2013 NYC taxi rides shared on BigQuery : bigquery
Interesting! (a) there's a subreddit for Google BigQuery, with links to interesting data sets, like this one; (b) the entire 173-million-row dataset for NYC taxi rides in 2013 is available for querying; and (c) the tip percentage histogram is cool.
datasets  bigquery  sql  google  nyc  new-york  taxis  data  big-data  histograms  tipping 
july 2014 by jm
Google's Influential Papers for 2013
Googlers across the company actively engage with the scientific community by publishing technical papers, contributing open-source packages, working on standards, introducing new APIs and tools, giving talks and presentations, participating in ongoing technical debates, and much more. Our publications offer technical and algorithmic advances, feature aspects we learn as we develop novel products and services, and shed light on some of the technical challenges we face at Google. Below are some of the especially influential papers co-authored by Googlers in 2013.
google  papers  toread  reading  2013  scalability  machine-learning  algorithms 
july 2014 by jm
"The Tail at Scale"
by Jeffrey Dean and Luiz Andre Barroso, Google. A selection of Google's architectural mechanisms used to defeat 99th-percentile latency spikes: hedged requests, tied requests, micro-partitioning, selective replication, latency-induced probation, canary requests.
google  architecture  distcomp  soa  http  partitioning  replication  latency  99th-percentile  canary-requests  hedged-requests 
july 2014 by jm
Google Replaces MapReduce With New Hyper-Scale Cloud Analytics System
MR no more:
“We don’t really use MapReduce anymore,” [Urs] Hölzle said in his keynote presentation at the Google I/O conference in San Francisco Wednesday. The company stopped using the system “years ago.”

Cloud Dataflow, which Google will also offer as a service for developers using its cloud platform, does not have the scaling restrictions of MapReduce. “Cloud Dataflow is the result of over a decade of experience in analytics,” Hölzle said. “It will run faster and scale better than pretty much any other system out there.”

Gossip on the mech-sympathy list says that 'seems that the new platform taking over is a combination of FlumeJava and MillWheel: ,'
map-reduce  google  hadoop  cloud-dataflow  scalability  big-data  urs-holzle  google-io 
june 2014 by jm
Google forced to e-forget a company worldwide
Here we go.... Canadian company wins case to censor search results for its competitors.
When Google argued that Canadian law couldn't be applied to the entire world, the court responded by citing British Columbia's Law and Equity Act, which grants broad power for a court to issue injunctions when it's "just or convenient that the order should be made."

Google also tried to argue against the injunction on the basis of it amounting to censorship. The court responded that there are already entire categories of content that get censored, such as child abuse imagery.

Will this be the first of a new wave of requests for company website take-downs?

Via stx.
canada  via:stx  censorship  google  search  takedowns  datalink  equustek  gw1000  hardware 
june 2014 by jm
Cap'n Proto, FlatBuffers, and SBE
a feature comparison of these new serialization formats from Kenton, the capnp dude
serialization  protobuf  capnproto  sbe  flatbuffers  google  coding  storage 
june 2014 by jm
Google's Pegasus
a power-management subsystem for warehouse-scale computing farms. "It adjusts the power-performance settings of servers so that the overall workload barely meets its latency constraints for user queries."
pegasus  power-management  power  via:fanf  google  latency  scaling 
june 2014 by jm
Jump Consistent Hash: A Fast, Minimal Memory, Consistent Hash Algorithm
'a fast, minimal memory, consistent hash algorithm that can be expressed in about 5 lines of code. In comparison to the algorithm of Karger et al., jump consistent hash requires no storage, is faster, and does a better job of evenly dividing the key space among the buckets and of evenly dividing the workload when the number of buckets changes. Its main limitation is that the buckets must be numbered sequentially, which makes it more suitable for data storage applications than for distributed web caching.'

Implemented in Guava. This is also noteworthy:

'Google has not applied for patent protection for this algorithm, and, as of this writing, has no plans to. Rather, it wishes to contribute this algorithm to the community.'
hashing  consistent-hashing  google  guava  memory  algorithms  sharding 
june 2014 by jm
FlatBuffers: Main Page
A new serialization format from Google's Android gaming team, supporting C++ and Java, open source under the ASL v2. Reasons to use it:
Access to serialized data without parsing/unpacking - What sets FlatBuffers apart is that it represents hierarchical data in a flat binary buffer in such a way that it can still be accessed directly without parsing/unpacking, while also still supporting data structure evolution (forwards/backwards compatibility).
Memory efficiency and speed - The only memory needed to access your data is that of the buffer. It requires 0 additional allocations. FlatBuffers is also very suitable for use with mmap (or streaming), requiring only part of the buffer to be in memory. Access is close to the speed of raw struct access with only one extra indirection (a kind of vtable) to allow for format evolution and optional fields. It is aimed at projects where spending time and space (many memory allocations) to be able to access or construct serialized data is undesirable, such as in games or any other performance sensitive applications. See the benchmarks for details.
Flexible - Optional fields means not only do you get great forwards and backwards compatibility (increasingly important for long-lived games: don't have to update all data with each new version!). It also means you have a lot of choice in what data you write and what data you don't, and how you design data structures.
Tiny code footprint - Small amounts of generated code, and just a single small header as the minimum dependency, which is very easy to integrate. Again, see the benchmark section for details.
Strongly typed - Errors happen at compile time rather than manually having to write repetitive and error prone run-time checks. Useful code can be generated for you.
Convenient to use - Generated C++ code allows for terse access & construction code. Then there's optional functionality for parsing schemas and JSON-like text representations at runtime efficiently if needed (faster and more memory efficient than other JSON parsers).

Looks nice, but it misses the language coverage of protobuf. Definitely more practical than capnproto.
c++  google  java  serialization  json  formats  protobuf  capnproto  storage  flatbuffers 
june 2014 by jm
The Game on Google Glass
'A tribute to the addictive Ktarian Game featured in Season 5, Episode 6 of Star Trek, The Next Generation.'
star-trek  google-glass  the-game  games  glass  google  tv 
june 2014 by jm
Google Maps Has Forsaken Us
+1. What has happened at Google? Did they fire ever employee in the UX department?
ux  ui  google  gmaps  mapping  web  techcrunch 
may 2014 by jm
interview with Google VP of SRE Ben Treynor
interviewed by Niall Murphy, no less ;). Some good info on what Google deems important from an ops/SRE perspective
sre  ops  devops  google  monitoring  interviews  ben-treynor 
may 2014 by jm
BBC News - Microsoft 'must release' data held on Dublin server
Messy. I can't see this lasting beyond an appeal.
Law enforcement efforts would be seriously impeded and the burden on the government would be substantial if they had to co-ordinate with foreign governments to obtain this sort of information from internet service providers such as Microsoft and Google, Judge Francis said. In a blog post, Microsoft's deputy general counsel, David Howard, said: "A US prosecutor cannot obtain a US warrant to search someone's home located in another country, just as another country's prosecutor cannot obtain a court order in her home country to conduct a search in the United States. "We think the same rules should apply in the online world, but the government disagrees."
microsoft  regions  law  us-law  privacy  google  cloud  international-law  surveillance 
april 2014 by jm
Ryanair drops out of top Google flight search results after website overhaul | Business |
They've done the classic website-redesign screwup -- omitted redirects from the old URLs.
Sam Silverwood-Cope, director of Intelligent Positioning, said: "They've ignored the legacy of the old It's quite startling. They are doing it just before their busiest time of the year." A change in [URLs] without proper redirects means many results found by Google now simply return error pages, he added. "Unless redirects get put in pretty soon, the position is going to get worse and worse."
ryanair  inept  fail  funny  via:christinebohan  web  google  search  redirects 
april 2014 by jm
A sane Google Protocol Buffers library for Ruby. It's all about being Buf; ProtoBuf.
protobuf  google  protocol-buffers  ruby  coding  libraries  gems  open-source 
april 2014 by jm
Google's Open Bidder stack moving from Jetty to Netty
Open Bidder traditionally used Jetty as an embedded webserver, for the critical tasks of accepting connections, processing HTTP requests, managing service threads, etc. Jetty is a robust, but traditional stack that carries the weight and tradeoffs of Servlet’s 15 years old design. For a maximum performance RTB agent that must combine very large request concurrency with very low latencies, and often benefit also from low-level control over the transport, memory management and other issue, a different webserver stack was required. Open Bidder now supports Netty, an asynchronous, event-driven, high-performance webserver stack.

For existing code, the most important impact is that Netty is not compatible with the Servlet API. Its own internal APIs are often too low-level, not to mention proprietary to Netty; so Open Bidder v0.5 introduces some new, stack-neutral APIs for things like HTTP requests and responses, cookies, request handlers, and even simple HTML templating based on Mustache. These APIs will work with both Netty and Jetty. This means you don’t need to change any code to switch between Jetty and Netty; on the other hand, it also means that existing code written for Open Bidder 0.4 may need some changes even if you plan to keep using Jetty.

[....] Netty's superior efficiency is very significant; it supports 50% more traffic in the same hardware, and it maintains a perfect latency distribution even at the peak of its supported load.

This doc is noteworthy on a couple of grounds:

1. the use of Netty in a public API/library, and the additional layer in place to add a friendlier API on top of that. I hope they might consider releasing that part as OSS at some point.

2. I also find it interesting that their API uses protobufs to marshal the message, and they plan in a future release to serialize those to JSON documents -- that makes a lot of sense.
apis  google  protobufs  json  documents  interoperability  netty  jetty  servlets  performance  java 
april 2014 by jm
« earlier      
per page:    204080120160

related tags

3d  3g  4g  99th-percentile  absurd  abuse  acm  ad-injectors  adobe  adrian-weckler  ads  adsense  advertising  adwords  aggregation  ai  al3x  algorithm  algorithms  amazon  america  android  angular  annotations  ansible  anti-spam  antispam  aosp  api  apis  app-engine  appengine  apple  application-shortcuts  apps  architecture  archive  art  assholes  atscript  audio  australia  authentication  authoritarianism  authy  autocomplete  automation  aws  azure  b-trees  backreferences  backup  ballymascanlon  bay-area  bayes  bazel  behavioral  beheadings  bell-curve  belle-du-jour  ben-treynor  benchmarks  best-practices  beta  big-data  bigquery  bigtable  binary  birdsong  blacklist  blaze  blenders  blink  blocking  blogging  blogs  boards  boilerplate  book  borg  bots  brainteasers  brotli  browser  browsers  bruce-schneier  bubble-race-chart  buffer-overflows  bugs  build  build-tools  building  bureaucracy  business  business-models  byte  c  c++  ca  caches  calendar  canada  canary-requests  cap  capnproto  cardboard  cars  causal-inference  censorship  cep  certificates  certs  chilling-effects  china  chrome  cisco  classification  classifiers  clearcase  cli  clos-networks  cloud  cloud-computing  cloud-dataflow  cloud-storage  cluster-management  clustering  cnnic  code-validation  codec  coding  coding-standards  coe  colds  collaboration  communication  competition  compression  computer-science  consistency  consistent-hashing  containers  content  contracts  cookies  copyfight  copyright  corba  corporate-culture  corpus  correlation  cortana  costs  cron  crypto  css  culture  daily-mail  dapper  dash  data  data-analysis  data-centers  data-processing  data-protection  data-retention  data-structures  database  databases  datalink  datasets  dataviz  ddos  dealextreme  debugging  deep-dream  defamation  defcon  deflate  denmark  deployment  design  development  devops  dirt  disaster-recovery  discussion  disk  disks  distcomp  distributed  diy  dkim  dmca  dns  docker  docs  documentation  documents  double-irish  dpi  dr-slump  dreams  driving  dropbox  dtecnet  dvcs  dvr  dysaguria  dystopia  east-texas  ebooks  ec2  economics  editing  editors  efficiency  eiffel  elb  emacs  email  embed  embedded  embedding  emergent  emoji  employment  encryption  encyclopedia-dramatica  end-to-end  enda-kenny  ensemble  equustek  eric-schmidt  eric-veach  estimation  ethan-zuckerberg  etsy  ev  event-processing  eventual-consistency  exercises  exploits  exponential-time  export  extensions  external  f1  facebook  fail  failures  false-positives  fault-tolerance  feedback  feudal-internet  fg  files  filesystems  filtering  fine-gael  firefox  flatbuffers  fleets  flights  flu  fonts  food  formats  formatting  foss  fox  france  free-software  freebsd  freedom  freedom-of-expression  fridges  froyo  funding  funny  future  gadgets  gae  game-day  games  gce  gchq  gcm  gcp  gcs  gdocs  gems  geolocation  gfs  git  glass  gmail  gmaps  google  google+  google-calendar  google-cloud  google-docs  google-flu-trends  google-glass  google-groups  google-instant  google-io  google-maps  google-news  google-photos  google-tax  google-voice  googlewhack  gossip  government  gpa  gpl  grand-theft-auto  grant-shapps  graphics  graphs  greatfire  groups  grpc  gta4  guava  guidelines  gw1000  gzip  h264  hacking  hacks  hadoop  hardware  hashing  health  hedged-requests  hermetic-servers  heuristics  hidden-costs  hiring  histograms  history  holdout  holidays  hollywood  home  honeypots  hosting  hotels  hr  hrd  hsdpa  html  html5  http  http2  https  hublog  humans  hummingbird  ico  identity  idl  iframe  ilya-grigorik  inceptionism  incident-response  incidents  inept  infographics  innodb  insurance  international-law  internet  interoperability  interviewing  interviews  invariants  investment  iot  ip  ireland  itax  japan  jars  java  javascript  jean-marie-hullot  jeff-dean  jetty  jitter  jokes  jon-rafman  journalism  js  json  kdd  kernel  kevin-fox  key-distribution  keywords  kits  kitsch  kludges  kubernetes  labelling  lame  languages  latencies  latency  launches  law  law-enforcement  learning  legal  leveldb  libraries  licensing  life  life-hacks  linear-time  linking  links  lint  linux  lionsgate  load-balancing  lockstep  lorem-ipsum  low-latency  lte  mac  machine-learning  mail  mailing-lists  maintainance  malware  management  managers  managing  map  map-reduce  mapping  maps  mariadb  marketing  mars  marshalling  maven  maven-central  memory  messaging  metrics  mfa  microsoft  mike-hearn  millwheel  mit  mitm  ml  mobile  mocking  mocks  models  moderation  monitoring  monorepi  monorepo  movies  mozilla  mpeg  mua  multi-az  multi-dc  muscular  music  music-industry  music-key  mysql  nasa  nelson-minar  netbsd  netty  network  network-traffic  networking  neural-networks  new-york  news  newspapers  nosql  nsa  nsfw  nul  nyc  office-hours  old-media  omega  on-call  online-backup  open  open-source  openbsd  opendns  operational-transformation  ops  opt-out  optimization  oracle  orm  orphaned-roads  osx  ot  outages  outsourcing  paas  packages  packaging  packets  packing  panda  papers  paramount  paris  partitioning  passwords  patents  paul-buchheit  paxos  pdf  pegasus  penguin  people  performance  periodic  persistence  pervasive-computing  phone  phones  photography  photos  pii  pile-of-poo  pimms  piracy  piratebay  pixar  pki  pliers  poaching  politics  poo  porn  post-mortems  postmortems  power  power-management  powerpoint  ppt  preconditions  pricing  prism  privacy  probabilistic  productivity  profiling  project-zero  proto3  protobuf  protobufs  protocol-buffers  protocols  proxying  publishing  push  puzzles  python  quality  questions  r  r-and-d  rahman-algorithm  randomness  ranking  rants  re2  reading  realtime  recode  record-labels  redaction  reddit  redirects  redundancy  regexps  regions  registry  regular-expressions  regulation  releases  reliability  remote-disabling  renderman  replication  repo  request-routing  request-tracing  research  resilience  reusable-holdout  reversing  review  riak  right-to-be-forgotten  roads  robots  routing  rpc  ruby  rumblefish  ryanair  safe-browsing  safety  sampling  sampling-profiler  samsung  satire  sbe  scalability  scale  scaling  scalr  scheduling  schema  science  scm  scripps  scummy  sdn  sea  search  security  seo  seomoz  serialization  services  servlets  set  sf  sgd  sharding  shell  shipping  ships  side-effects  siri  site-specific-browsers  skype  slides  smartphones  smtp  snake-oil  snappy  sniffing  snippets  snooping  soa  social  social-media  software  source-code  source-code-analysis  sovereign  spain  spam  spamassassin  spammers  spamming  spanner  spdy  speakers  speed  spinning  spotify  spreadsheets  spying  sql  sre  sse  ssl  ssl3  stack-ranking  standards  star  star-trek  static  static-code-analysis  statistics  steve-jobs  stings  stl  stock-photos  storage  stream-processing  streaming  street-view  stupid  stupidity  style  superfoods  surveillance  swiss  swpats  symantec  sync  synchronization  syria  systems  takedowns  talks  tax  tax-avoidance  tax-evasion  taxes  taxis  tcp  teams  tech  tech-debt  techcrunch  technology  ted-dziuba  telcos  telecom  test  test-doubles  testing  tests  the-atlantic  the-circle  the-game  thomassons  tim-bray  time-series  timing  tipping  tips  tls  to-read  toget  tomato-sauce  tools  toread  tories  tpb-afk  tracers  tracing  tracking  traffic  trafficpaymaster  training  transactions  translate  translation  transparency  transports  trap-streets  travel  treasure-island  trends  triangulation  trolling  tumblr  tun  turd  turkey  tv  twitter  twoheadlines  types  typescript  udp  ui  uk  unchi  undocumented  unicode  unit-testing  unlabelled-learning  unladen-swallow  unsubscribe  urls  urs-holzle  us-law  us-politics  usa  user-scripts  ux  v8  version-control  via:AdamMaguire  via:aliverson  via:anildash  via:bldgblog  via:boingboing  via:christinebohan  via:codeslinger  via:conall  via:destraynor  via:eoin-brazil  via:fanf  via:jg  via:jordansissel  via:kellabyte  via:kellan  via:nelson  via:preddit  via:robc  via:spoon  via:stx  via:tieguy  via:waxy  viacom  vic-gundotra  video  viewer  vim  vogons  voice-recognition  vp8  vps  vr  wage-fixing  warner-music  wave-power  web  webkit  webm  webrtc  websockets  weighting  wifi  wired  word-frequency  work  xhr  xml  xoogler  yahoo  yahoo-groups  youtube  zip  zippy  zoe-keating  zopfli 

Copy this bookmark: