Get out of your comfort zone

One of the most valuable life skills you can ever develop is to overcome the urge to stay within your comfort zone. If you stay where you’re familiar and feel safe, two things might happen: You might find out that it’s not safe after all. Bad things can happen where you feel at home just as well as out of the familar. Nothing good will happen. You might skate through life without even living it.

» Continue Reading (about 500 words)

Should Velocity videos be free?

At the closing keynote of the recent Velocity conference in New York, an audience member stepped up to the microphone and called for O’Reilly to provide videos of the event free to the public, instead of behind a paywall. The conference chairs, who don’t call the shots on such matters, squirmed and looked at the person who does call the shots, a few feet away. Someone volunteered the information that speakers are able to download their own talks and post them freely if they wish.

» Continue Reading (about 600 words)

Using GPG in Gmail on a Mac

I used to use the FireGPG extension to encrypt and decrypt text in a browser – including wikis, for example, where sensitive client information could be stored. It’s been a while since I had that need, but recently I wanted to send a GPG-encrypted message to a coworker, and FireGPG has been discontinued for years. I also use a Mac now, and Chrome is my primary browser. What to do? I looked around at a few Chrome extensions, but didn’t really like them.

» Continue Reading (about 200 words)

Is soliciting a review commercial or transactional?

I’ve booked rooms through a few times, and they always send me followup emails asking me to rate the stay and so forth. In my view this is commercial/marketing email, not transactional, and I should be able to opt out of it. I don’t want to get the emails and I don’t want to rate the hotels, in part because I don’t believe in the validity of such ratings/reviews (reference, reference).

» Continue Reading (about 600 words)

Continuous integration and deployment

I’ve been talking to some smart people about deployment. First a little background. One of my colleagues was working on a project that ultimately didn’t bear fruit. It was a system for continuous delivery, and involved reacting to git push by building and shipping to production. But it felt as if the problem shouldn’t be separated from provisioning, and from setting up a development environment, and so these things got folded in, and the effort became a boil-the-ocean project that had to be set aside.

» Continue Reading (about 1200 words)

More Notebooks and Journals!

Something interesting happened after I published my ultimate notebook and journal face-off blog post a couple of months ago. I received an email from a company called Grandluxe, asking if I’d like to receive some stationery products in hopes that if I liked them, I’d write a review on them. I had never heard of them before, but they’ve been making paper products for 68 years, and apparently are trying to break out of the Asian market into international territory.

» Continue Reading (about 600 words)

Early-Warning Is an Unknown Unknown

This post originally appeared on O’Reilly Radar. In 2002, US Secretary of State Donald Rumsfeld told a reporter that not only don’t we know everything important, but sometimes we don’t even know what knowledge we lack: There are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – the ones we don’t know we don’t know.

» Continue Reading (about 1700 words)

MySQL isn't limited to nested-loop joins

I have followed the “Use the Index, Luke!” blog for a while. Today Marcus wrote that (I’ll paraphrase) MongoDB disgraces NoSQL the same way that MySQL disgraces SQL. I agree with a lot of this, actually, although I’m not sure I’d put it so strongly. People often like products for good reasons, and to think that legions of developers are stupid or ill-educated is suspect, in my opinion. But that wasn’t what I meant to write about.

» Continue Reading (about 500 words)

It happened again

Oracle released a bunch of MySQL stuff they’ve been working on since the last huge release, and my blog reader filled up with a few dozen posts I’m gonna have to read through so I don’t feel ignorant. Dear MySQL Engineering Team, could you take pity on me and release these gradually over the course of a month or so next time? Especially since Google discontinued Reader, and I’m using Feedly now, and it has a bug that I can’t figure out how to report, which result in articles being marked as read when I scroll, which makes me feel super-paranoid-insecure that I’m gonna miss an article that I scrolled over without having read yet.

» Continue Reading (about 200 words)

Sending the query to the data

It’s common wisdom that large-scale database systems require distributing the data across machines. But what seems to be missing in a lot of discussions is distributing the query processing too. By this I mean the actual computation that’s performed on the data. I just had a conversation with Peter Zaitsev yesterday that helped make concrete some thoughts I’ve been having about Cassandra for a while. Because Cassandra doesn’t allow you to really do any computation in the data (aggregating, evaluating expressions, and so on), if you’re going to use it for truly Big data, you’re going to fetch enormous amounts of data across the network.

» Continue Reading (about 500 words)

Features I'd like in MySQL: windowing functions

Continuing with my wishlist, I’ll add windowing functions. They’re enormously powerful. They allow you to extend relational logic beyond the strict boundaries of tuples. In MySQL at present, one must use ugly hacks to preserve state from one row to the next, such as user variables – which are not guaranteed to work if the optimizer changes the query plan. And yeah, PostgreSQL and SQL Server have windowing functions too, and once you’ve used them it’s a little hard to go back.

» Continue Reading (about 200 words)

Features I'd like to see in MySQL: CTEs

The pace of MySQL engineering has been pretty brisk for the last few years. I think that most of the credit is due to Oracle, but one should not ignore Percona, Monty Program, Facebook, Google, Twitter, and others. Not only are these organizations (and the individuals I haven’t mentioned) innovating a lot, they’re providing pressure on Oracle to keep up the improvements, too. But if you look back over the last few years, MySQL is still functionally a lot like it used to be.

» Continue Reading (about 300 words)

Can TokuDB replace partitioning?

I’ve been considering using TokuDB for a large dataset, primarily because of its high compression. The data is append-only, never updated, rarely read, and purged after a configurable time. I use partitions to drop old data a day at a time. It’s much more efficient than deleting rows, and it lets me avoid indexing the data on the time dimension. Partitioning serves as a crude form of indexing, as well as helping purge old data.

» Continue Reading (about 300 words)

Free talk on MySQL and Go at Percona MySQL University DC

If you’re in the Washington, DC area on Sept 12th, be sure to attend Percona University. This is a free 1-day mini-conference to bring developers and system architects up to speed on the latest MySQL products, services and technologies. Some of the topics being covered include Continuent Tungsten; Percona XtraDB Cluster; MySQL Backups in the Real World; MariaDB 10.0; MySQL 5.6 and Percona Server 5.6; Apache Hadoop. I’ll be speaking about using MySQL with Go.

» Continue Reading (about 200 words)

Speaking at Percona University Sept 12th

I’ll be joining Percona for a free day of MySQL education and insight at their upcoming Percona University Washington DC event on September 12th. My topic is accessing MySQL from Google’s Go programming language. I’ve learned a lot about this over the past year or so, and hopefully I can help you get a quick-start. If you’re not familiar with Go, it’s the darling of the Hacker News crowd these days.

» Continue Reading (about 300 words)

Speaking at Strata NYC: Making Big Data Small

I’m off to my first Strata conference, and I’m speaking! I’ve always wanted to attend Strata. (OSCON too, but I haven’t yet made it there.) My session will be about ways to make big data small, in both the storage and processing dimensions, without losing much of the value. If you’re familiar with Bloom Filters, this is an example. Bloom Filters let you answer the question, Is value X a member of this data set?

» Continue Reading (about 200 words)

Using encryption? You're suspicious

Yesterday more details on the NSA’s secret and illegal monitoring activities were revealed. (Yes, the NSA revealed some things themselves, but as far as I can tell, that was only a conciliatory effort and didn’t actually reveal more details – just more talk.) Remember my recent series of blog posts, where I claimed that privacy in today’s world is impossible without trustworthy hardware/software, privacy is impossible unless it’s default, and privacy is essentially unachievable because of the scope of the problem, and the way we’ve built our society and technologies?

» Continue Reading (about 400 words)

Email snooping is a small fraction of the story

I wrote previously about why privacy and security require open-source, inspectable hardware and software to run on, and software that makes encryption the default so everyone uses it. My example application was email, and I concluded that it’s currently impractical to think that we can block government snooping on a large scale even in the domain of email. Now, think what a small fraction of people’s Internet-connected activities we’re talking about: email.

» Continue Reading (about 700 words)

The Ultimate Notebook

If you’re like me, you spend so much time typing on a computer that a good notebook or journal is one of life’s finer pleasures. I’ve kept a diary of my personal life for close to 30 years now, and I have a shelf full of journals. I’ve found a great many that I enjoy writing in, and choosing a different one each time is part of the fun.

But thus far, my quest for a notepad has been unsatisfying. Many notepads have loved me, but I’m sorry to say their love has been unrequited. I’ve tried all the usual things: Moleskine, loose-leaf paper, binders, what have you. But I never found something that is practical, functional, a joy to write on, and a pleasure to look at and hold. I just can’t settle into a long-term relationship with my notebook, because I haven’t met The Right One yet.


» Continue Reading (about 4300 words)

Privacy is impossible unless it's the default

This is a follow-up to my last post, in which I asserted that without free software and hardware, privacy is impossible. Suppose we have trustworthy, free hardware and software. What else is needed to thwart efforts to monitor our everyday behavior on a massive scale? Let’s look only at one activity that’s currently being monitored: email. How can we make email less vulnerable to prying eyes? Technology to encrypt email between ordinary citizens (PGP, OpenPGP, and GnuPG) has existed for years, and in a form strong enough to frustrate any known attempts at decryption.

» Continue Reading (about 900 words)