We lost our faithful cat Snoopy a few weeks ago, just before the new year. He’d been sick for a while, technically kidney failure and feline mast cell cancer, really just old age. The vet gave him just six weeks, but we nursed him along with steroids and fluids, and he managed a good five or six months beyond that. In the end, it was his time, but it was still tough to let him go. We miss him.

Gina got Snoopy and Charlie at the same time, barely after they were weaned. They’d lived together at the shelter, and she’d only planned to get one, but she couldn’t bear to break them up. They were as close as brothers; for all they knew, they were brothers.

Snoopy constantly groomed Charlie and looked after him, but there was always only one true love of Snoopy’s life: Gina. She was his mama. He followed her around the house, sat on her legs while she worked from home, kept her company while she gardened and cooked, and slept on top of her in bed at night. He was her fast companion, her kitten, her buddy. Continue reading


Goodbye Facebook, Goodbye Google+

I deleted all of my Facebook posts last week. I deleted my Google+ posts too. They were pretty much all posted here on my web site too, so nothing was truly lost, but I still feel a bit lighter, somehow.

Plenty of ink has been spilled on the problems with big social media and the companies behind it. There’s an entire movement of people leaving social networks for various reasons. Many of them have expressed their concerns, often quite loudly and eloquently, so I don’t really need to repeat them here. Consider yourselves lucky. Continue reading


Stop paying the ETL tax

I want to say one word to you. Just one word. Are you listening? … ETL.

Let me guess: that didn’t set your imagination on fire. Even in software engineering and data science, it’s not exactly a household term. Nor are the more modern terms data platform or data engineering. If you do know what they are, chances are you don’t have strong opinions. You know they’re out there, people do them, and that may be the end of it.

ETL stands for Extract, Transform, Load. It’s how you get your data from your primary OLTP database, which serves your application, into an OLAP data warehouse designed for analysis, business intelligence, and data science.

Whatever your product is, it’s hopefully a core competence for your company. It’s a key differentiator. For many of us, data science and analysis are also key differentiators. ETL, however, is not. It looks basically the same everywhere, and does basically the same thing. These are all signposts that generally point toward buying or reusing, not building from scratch. Doing this kind of thing yourself just won’t move the needle. Continue reading


Bridgy stats update

It’s that time of year again! No, not awards season…Bridgy stats time!

Looking at the graphs, the elephant in the room is clearly the Facebook shutdown. It was Bridgy’s second largest silo, numbering 1477 users when we were forced to disable it on August 1. Bittersweet.

On the plus side, I rearchitected in March and moved polling to a separate background service, which helped App Engine’s scheduler handle our workload much better. We now consistently run on one backend instance and one frontend instance, which brings costs down from $70-100/month to a very predictable $35-40. Winning!

Let’s go to the numbers. Since launch in December 2013: 3793 users, 1.22M webmentions sent successfully to almost 2000 unique domains, 12.8M responses handled (likes, comments etc), 42K POSSEs published, total cost back down to ~$.01/user/month (from ~$.02 a year ago).

Data, methodology, previously, previously, previously, previously.


Good technology

My electric toothbrush is good technology.

It has one button. The button turns it on. It vibrates for 30 seconds, buzzes, then repeats three more times. It has no other controls.

It works one way: the standard, ADA recommended way. That’s what most people want. If I want to brush longer, I restart it when it’s done. If I want to stop early, I press the button again.

It has one display, a LED battery indicator. The LED has three parts: low, medium, high. The only other way it communicates is by buzzing.

It serves a purpose. Its ultrasonic vibrations clean my teeth better than manual brushing. It’s also easier to reach every tooth surface when I’m not physically brushing.

It is not configurable. It has no screen. It is not smart. It has no WiFi or Bluetooth. It has no app. It is not a platform. All it has is one button, one LED, and one mode of operation.

My electric toothbrush is good technology. More technology should be good technology.



DOH (DNS over HTTPS) looks like a very small change from DNS over TLS, as they both use very similar formats on the wire. However, DOH treats the DNS response as a web object. It can be cached. It can be pre-fetched. Presumably it can be embedded in web pages. This creates the possibility of a browser defining its own DNS environment completely independent of the platformer that runs the browser, independent of the local service provider and even independent of the DNS as we know it…

Given that some 80% of all user platforms use Chrome as their browser these days then that places a huge amount of unique market power in the hands of the Chrome browser and its provider, Alphabet.

- Geoff Huston, Internet Economics


IndieWeb Google Custom Search Engine

TL;DR: it exists! Try it below, or here.

A search engine for the whole IndieWeb has been a hot conversation topic, on and off, for many years now. Many of us offer search on our own individual sites, and more ambitious projects like cweiske‘s phinde can search our IRC archives, but building a full fledged search engine to crawl and index all IndieWeb sites has always been a bit too big of a project to tackle. (Not to mention the question of which sites we should include in the first place.)

As usual, my first instinct is always software prevention. Whatever the task at hand is, someone has else has usually already tried to do it. Often they’ve even succeeded, to some degree. Search is certainly no exception. Google has offered custom search engines for individual sites for a long time, so I threw together one that searches all of the sites in Indie Map, plus lots more that have joined the IndieWeb since then. It seems to work ok so far. Try it out and let me know what you think! Continue reading


Bridgy traffic bump

A few weeks ago, Bridgy‘s traffic suddenly shot up to 20-50x its baseline, from 5-10 human visitors per day to 200-300. Humans in browsers, not bots or other requests; this ain’t Google Analytics’s first rodeo. They’re all generally coming to the site directly, not from search. If they’re coming from links or social networks, we can’t tell, due to HTTPS etc.

Our best guess so far, based on the timing, is that the influx is Google+ refugees who found Bridgy via either spreadsheets like these or evangelism by Greg McVerry and others.

Regardless, whoever you are, welcome! The traffic is still tiny compared to all the work Bridgy does on its own for backfeed, behind the scenes, so scaling isn’t an issue. It’s ready and willing to take in any and all new users!


Introducing Color Data

We’re pleased to announce Color Data today! It’s a public research database of aggregated genetic and clinical health information from 50,000 people who took a Color test and opted to share their de-identified data.

Building Color Data was some of the most fun I’ve had at Color since I joined. We’ve been using it internally and with partners for a while now, so we’re very excited to share it with the world. We’re announcing it at ASHG in San Diego today, and the early press (GenomeWeb) is very positive. Try it out!

I plan to write more about how we designed and built it soon. In the meantime, huge thanks to Alicia Zhou, Anjali Zimmer, Ben Kobren, Cynthia Neben, Gilad Mishne, Jeremy Ginsberg, Wendy McKennon, and many others for their tireless work and selfless contributions.

If this sounds interesting, we’re hiring! Ping me any time, I always like talking about Color.