10 years of "Using SQLite"
(1) By JayKreibich (jkreibich) on 2020-08-23 21:40:15 [link] [source]
Facebook reminded me that today marks the 10th year anniversary of O'Reilly Media publishing the book "Using SQLite." Or at least the 10th year anniversary of the first set of shipments making it out the door. While writing the book, it was a challenge to keep pace with SQLite releases, and that shows. The book managed to keep in sync with the 3.6.x series, but 3.7.0 was released between final draft submission and publication. By the time the book hit the bookshelves, it was already out of date. Such is life in the tech world. On the other hand, I still get a (small) royalty check every month, most of which goes to supporting my photography hobby/gear-habit.
I would, once again, like to thank Dr. D. Richard Hipp (creator of SQLite), Ginger Wyrick (Hwaci, Inc.), and the rest of the SQLite team for all their help and support during the 2+ years it took to write the book. On the O'Reilly side, Mike Loukides, my project editor and champion, Tim O'Reilly for asking the right questions at exactly the right time, Laura Baldwin (ORM CFO/COO/President and generally amazing person), Kristen Borg, my finishing editor, who had to deal with more than a few freak-outs, and Marlowe Shaeffer (ORM's editor-in-chief) for talking me down from one said major freak-out, calming me down on the phone some random evening while trying to cooking dinner for her kids. Wonderful people all around.
For those familiar with O'Reilly "animal books," which are more and more part of computer history, the answers to your questions are:
- Great White Heron, a sub-species of the Great Blue Heron.
- No, I didn't get to pick, or even asked. You get told by Edie, you smile, and you say thank you.
- About 23 months of writing over ~2.5 years (had to take a six month break due to work).
SQLite had changed so much in the last 10 years. 3.7.0 introduced the WAL transaction engine, and has continued to build important and advanced features. I still use SQLite daily for work and personal projects. For most of my career, SQLite has been my go-to example of "software done right," with extensive testing, meticulous care to detail, personal community engagement, and one of the more interesting approaches to successful open-source business models.
Facebook memory: https://www.facebook.com/jkreibich/posts/3193852217318388
(2) By sean (jungleboogie) on 2020-08-23 22:00:00 in reply to 1 [link] [source]
Thank you for taking the time to remind us of your book, and the 23 months to write it, ten years ago this month. Congratulations on still receiving some royalty payments.
You're right, much in SQLite has changed over the last ten years. When can we expect a Continuing Using SQLite book? 🙃
(3) By JayKreibich (jkreibich) on 2020-08-23 23:18:51 in reply to 2 [source]
Interestingly enough, O'Reilly contacted me in late 2019 to open a conversation about the second edition. My first reaction was, "You still publish books?" You really can't tell form their current website. I was assured that, yes, they still publish books. I'm just not sure how many they sell.
After a discussion and a lot of personal pondering, we decided it likely wasn't worth the effort. The technical book market has changed a lot in the last 10 years, when it was already starting to see a fundamental shifts. "Using SQLite" ended up being a larger (= more expensive) book than anticipated, mostly due to the extensive appendices. In the last 10 years, SQLite has added a huge number of advanced features, like WAL and CTEs (which could be a whole chapter!), making coverage a big effort-- and that would be on top of the biggest criticism about the book, that there aren't enough examples. The amount of revision needed would be quite extensive, and while I'm fairly proud of my writing, I'm not a fast writer. My personal life and career has also moved on to other areas. The book basically consumed three to four hours a day, almost every single day, for two years-- and that was on top of a demanding full-time job.
If people were really interested in making it a community resource, it might make more sense to acquire the rights to the book, throw the whole thing up on a wiki, and just let the community have at it. O'Reilly has an open source policy that might allow that.
(4) By anonymous on 2020-08-24 18:10:34 in reply to 3 [link] [source]
"After a discussion and a lot of personal pondering, we decided it likely wasn't worth the effort."
With your indulgence, I would disagree because "SQLite has added a huge number of advanced features" and an update of the book would be highly pertinent.
I have just started looking at SQLite, my primary interest being SpatiaLite; I am using the pre-compiled binary SQLite 3.33 on Windows 10.
I am not going to buy the current book because it is our of date but would buy the updated version if/when it materialises.
As regards the wiki alternative to an updated book, I have reservations based on experience to date. SQLite has bindings for over a dozen languages. On researching aspects of SQLite on the internet, I find two blind spots:
Although there is ample documentation, there are hardly any worked--readily reproducible by the user--examples or code snippets.
What code snippets do exist tend to be for different environments and do not readily translate to my chosen environment (Windows), a matter made worse because the source do not clarify the environment it applies to.
Unless the wiki is organised by SQLite binding, it will very likely be just as confusing as the material that currently exists on the internet.
PS: Ordinarily, I used SQL Server; I am simply amazed at the functionality that SQLite offers.
(5) By Larry Brasfield (LarryBrasfield) on 2020-08-24 18:38:11 in reply to 4 [link] [source]
Jay is not saying that he could not produce another edition that would be useful and appreciated. From my reading of the first edition, it is clear that he has the skill and intelligence needed to do that. What he is saying is that the personal sacrifice that he is sure (with good cause) would be necessary to produce a revision to the same standards is unlikely to yield the benefits to him (and perhaps others affected by the sacrifice) that would make it worthwhile. There is no reasonable way to disagree with his assessment. Even those who might understand the personal considerations at stake and who can well estimate the monetary and laudatory return to be expected are poorly poised to balance those in Jay's stead.
(6) By anonymous on 2020-08-24 22:45:21 in reply to 5 [link] [source]
I agree. Anytime someone decides to write a book, it's a huge sacrifice, just like writing software. I'm thankful for the first edition on the book and it has helped me with my education and understanding of SQLite.
drh does an excellent job keeping the documentation and comments updated for SQLite.
Thank you Jay and drh!
(7) By JayKreibich (jkreibich) on 2020-08-24 23:56:04 in reply to 5 [link] [source]
Thank you, Larry and others. I'm glad you found the book useful.
It's pretty much as Larry says. The book represents about 1400 hours of work (I'm a slow writer). Compare that to the ~2000 hours per year of a standard full-time job. That's two hours of focused writing, every single day (including weekends), for almost two years. And that was on top of a full-time job in the video game industry, plus family life with two young kids. There was work, and there was the book, and that was it. For two years. Writing isn't easy, either. Most professional authors (such as "made" novelists) only mange about four hours of solid writing per day, and they don't have a "first" job.
Nobody writes a book, especially a tech book, for money. But to be clear, even with O'Reilly's generous royalty rates and 10 years of sales, the math works out to noticeably less than minimum wage, and about 1/40th of my current professional consulting rate. You write because you want to support the community and/or you want it on your resume. For me it was both, and it has served that purpose.
The industry-- both publishing and software development-- has also changed. These days, traditional books (electric or paper) are not the main vehicle by which people learn-- especially $40 books. One only need to look at the O'Reilly websites to understand this. 15 years ago everyone in software development knew of the O'Reilly Animal Books, as they were held up as the gold standard. The cool developers had bookshelves full of color-coded books. These days, if you go to ORM's website, you can barely tell they sell books. Most of us don't have big bookshelves in our work areas. A book released today would have far fewer buyers than we did 10 years ago. People just don't buy books as much... they'd rather have a well indexed, searchable website.
As a comparison, I had another book project in mind (not software related). I eventually scrapped the idea of doing a book, and opted for trying to convert the whole thing to a blog site. It would be easier to manage, as I could write smaller, independent articles on specific topics. And perhaps most important-- more people would actually read it. Community feedback could be integrated and updated. It would be much more of a living body of knowledge, and actual useful resource to that community.
Although to be honest, that hasn't really gone anywhere either, because my life, my career, my wife's career, the kids, and all the rest have moved and evolved. I have other hobbies and interests, and I'm more interested in pursuing my own personal goals outside of software engineering.
Plus I'm old enough that sometimes just want to kick back with a beer and enjoy the sunset, and not feel guilty about "doing nothing."
(8) By ingo on 2020-08-25 06:16:36 in reply to 7 [link] [source]
"Everything" gets updates. Books not. I don't mean a version 2.0 or a rewrite. Why not publish updates on a book? A new chapter on new features every 6-18 months. Maybe a touch up or rewrite of a chapter every now and then. Should be doable with the E-book formats. (and with a better e-book format they could be less linear)
With SQLites backwards compatibility it seems like a fine candidate to me for an updatable book. Older content does not go stale (fast).
Cheers! Enjoy your beer,
(9) By Leam (LeamHall) on 2020-09-15 14:40:33 in reply to 7 [link] [source]
Jay, you get my first post here.
Amazon says your book would cost me about $50. I still have shelves of O'Reilly books, and reading the tone of your comments makes me very likely to add yours to the shelf. I need to learn SQLite for a project, and I really like supporting personable people. I really hate staring at a screen and trying to learn something.
Maybe the community here could put together a "SQLite Cookbook"? Maybe do examples for relevant chapters? I don't know, haven't read your book. Yet. :)