Staying Secure Online

This is a public service announcement. Many people I know are not taking important steps necessary to secure their online accounts and devices (computers, cellphones) against malicious people and software. It’s a matter of time before something seriously harmful happens to them. This article will urge you to use higher security than popular advice you’ll hear. It really, really, really is necessary to use strong measures to secure your digital life.

» Continue Reading (about 3000 words)

How is the MariaDB Knowledge Base licensed?

I clicked around for a few moments but didn’t immediately see a license mentioned for the MariaDB knowledgebase. As far as I know, the MySQL documentation is not licensed in a way that would allow copying or derivative works, but at least some of the MariaDB Knowledge Base seems to be pretty similar to the corresponding MySQL documentation. See for example LOAD DATA LOCAL INFILE: MariaDB, MySQL. Oracle’s MySQL documentation has a licensing notice that states: You may create a printed copy of this documentation solely for your own personal use.

» Continue Reading (about 300 words)

Props to the MySQL Community Team

Enough negativity sometimes gets slung around that it’s easy to forget how much good is going on. I want to give a public thumbs-up to the great job the MySQL community team, especially Morgan Tocker, is doing. I don’t remember ever having so much good interaction with this team, not even in the “good old days”: Advance notice of things they’re thinking about doing (deprecating, changing, adding, etc) Heads-up via private emails about news and upcoming things of interest (new features, upcoming announcements that aren’t public yet, etc) Solicitation of opinion on proposals that are being floated internally (do you use this feature, would it hurt you if we removed this option, do you care about this legacy behavior we’re thinking about sanitizing) I don’t know who or what has made this change happen, but it’s really welcome.

» Continue Reading (about 300 words)

S**t sales engineers say

Here’s a trip down memory lane. I was just cleaning out some stuff and I found some notes I took from a hilarious MySQL seminar a few years back. I won’t say when or where, to protect the guilty.[1] I found it so absurd that I had to write down what I was witnessing. Enough time has passed that we can probably all laugh about this now. Times and people have changed.

» Continue Reading (about 500 words)

EXPLAIN UPDATE in MySQL 5.6

I just tried out EXPLAIN UPDATE in MySQL 5.6 and found unexpected results. This query has no usable index: EXPLAIN UPDATE ... WHERE col1 = 9 AND col2 = 'something'\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: foo type: index possible_keys: NULL key: PRIMARY key_len: 55 ref: NULL rows: 51 Extra: Using where The EXPLAIN output makes it seem like a perfectly fine query, but it’s a full table scan.

» Continue Reading (about 200 words)

Freeing some Velocity videos

Following my previous post on Velocity videos, I had some private email conversations with good folks at O’Reilly, and a really nice in-person exchange with a top-level person as well. I was surprised to hear them encourage me to publish my videos online freely! I still believe that nothing substitutes for the experience of attending an O’Reilly conference in-person, but I’ll also be the first to admit that my talks are usually more conceptual and academic than practical, and designed to start a conversation rather than to tell you the Truth According To Baron.

» Continue Reading (about 200 words)

Looking for a freelancer

I’m looking for a freelancer to convert this WordPress blog into Markdown for use with Octopress. It should be straightforward – I have already used a plugin to export the data as Markdown. However, a few extra things will need to be taken care of. I have posted this job on Elance. Please submit proposals there!

» Continue Reading (about 100 words)

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 hotels.com 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)