Lector is a reading app for macOS. It’s an Electron app for now. The name comes from the Latin (for someone who reads), with a homophonic hat tip to Hannibal. It came about from wanting a minimalist app that would let me read PDFs and scanned books in dark mode and keep track of my spot across multiple books.
A Lector book is just a directory full of images. (PDFs have to be split up into image files first, so I have a small script to do that.) When the app starts up, it looks at the book list directory to see what books are available. It also has a JSON file to track where I’m at on each book (which page and which part of the page), what size the window is, which book I last had open, etc.
The app itself looks like this, on an empty desktop to show how I usually use it:
No title bar, since I find that distracting. And the page images are scaled by default to fit the window width.
Hitting g / brings up a brief panel showing the books that are in the system, with alphabetized keys to get to them (so g a to go to the first, g b for the second, etc.). When I’m done reading a book, I delete its directory, so these mappings change fairly regularly.
j and f and double-clicking all go to the next page; k and d both go back to the previous page. J and K move up and down the page (in larger jumps), and the mouse can also be used to scroll. (I find that I mostly use the mouse for scrolling and f/d for page navigation, but every once in a while I’ll use the other keys.)
As you can see in the screenshot, it defaults to dark mode, with slightly lowered contrast for easier reading. i inverts the colors and s toggles the higher contrast view.
How I use Lector
I use it when I want to read a book I’ve scanned (usually with Scanbook). I haven’t used it as often lately, but I fully expect that to change soon. (It’s been very handy for reading textbooks.)
I’ve found that I prefer the window size shown in the screenshot, wide (so that the text is large enough) with just enough vertical room for a paragraph or so (since reading in smaller chunks is easier).
I’d like to move off Electron at some point, probably to a native Swift app. Having it support PDFs directly (or splitting them up itself) would be nice, and having a way within the app to remove books would also be good.
Finally, I’d love to add EPUB support at some point. (I haven’t yet found a desktop EPUB reader I like. Marvin’s great on iOS, though.)
Bookshelf is my reading tracking app. It’s a Python app running Django. The name comes from, uh, the thing that holds books.
Behold the books:
At the top there’s the stats panel, which shows how much I read the last six days with color coding for the genre tags (and yes, Wednesday and Friday I didn’t meet my 100-pages-per-day goal), my page total so far this month (932), how many books I’ve finished so far this month (2), and how much of my reading this month has come from each tag (I usually try to read around 50% nonfiction, but I usually fail).
And then there’s the book list itself. Title, progress bar with some extra data (including how long since I started the book), current page number (clicking this opens a panel where I can record the page I’m on along with a comment), and how long it’s been since my last entry.
Each book has a staleness limit (default is five days), where if I haven’t read the book at all in that period of time, it changes the color of the title to a glaring, awful red, and that’s sufficient motivation for me to get back to that book. (To be honest, lately I haven’t seen it come up much since I’ve been reading only a few books at a time, but in those crazy days when I was reading twenty to thirty books at a time, I saw it a lot.)
Also: the sixth book (in case you were wondering) is A Disciple’s Life, which is only visible on Sundays (I reserve it for Sunday reading).
And the mobile view, for the heck of it, and since it’s the one I use almost all of the time:
There’s also a stats page, since the statistics are surprisingly helpful in motivating me to make time for reading:
(Yes, as of a couple days ago I’ve read more this year so far than all of last year in total. This makes me inordinately proud even though it really doesn’t matter.)
And, lastly, the hopefully self-evident history page:
How I use Bookshelf
On my phone, I have it saved to my homescreen as a PWA, and that’s primarily where I use it, since I mainly read on my phone these days. On my laptop, I have it open in Firefox as a pinned tab.
I use Bookshelf every day to track my reading, both for individual books and for my daily/monthly reading goals. It’s handy, too, as a bookmark that toddlers can’t pull out.
The desktop view needs some love, particularly that stats page. (I added those genre tags to it a month or two ago and realize now that I never actually looked at the desktop version. Whoops.)
Also (this should be no surprise by now), I’m planning to switch it to FastAPI along with plain text files for storage, for the same reasons I gave in those other posts.
Over the last few years I’ve wanted to get back into reading classics (“back into” referring to high school and college lit classes), but…it’s a struggle. I’ve DNFed pretty much all the classic novels I’ve tried to read — Oliver Twist, Madame Bovary, War & Peace, and Scaramouche, among others. What I suspect is probably at fault here: my fiction tastes skew heavily toward genre (primarily sf&f with occasional forays into mystery and thrillers), with realistic/literary fiction (basically all those aforementioned classics falling into this category) usually boring me out of my mind. Not entirely sure what to do about it yet, other than to try reading something like Dracula to see if the same thing happens.
Also, from the flip side of the coin: I’ve been reading a fair amount of more contemporary sf&f lately (the last several years) and goodness, there’s a lot of great fantasy and science fiction being published these days.
What an astonishing thing a book is. It’s a flat object made from a tree with flexible parts on which are imprinted lots of funny dark squiggles. But one glance at it and you’re inside the mind of another person, maybe somebody dead for thousands of years. Across the millennia, an author is speaking clearly and silently inside your head, directly to you. Writing is perhaps the greatest of human inventions, binding together people who never knew each other, citizens of distant epochs. Books break the shackles of time. A book is proof that humans are capable of working magic.
Back at the beginning of the year I had a few days of reading over a hundred pages a day, and I liked it so much I decided to make it a loose goal going forward. While some days it hasn’t panned out, by and large I’ve managed to pull it off. I love it. At roughly two books each week, I’m finally making a semi-decent dent in my gargantuan Mount TBR (which keeps growing at a much-faster-than-geological rate).
Cat’s Cradle, by Kurt Vonnegut. My first time reading Vonnegut. Not really what I expected — I don’t know what on earth I was expecting — but I think I liked it. Weird book, though. Looking forward to reading more of him.
Ultralearning, by Scott Young. As I got into this book, I realized I was mainly mining it for ideas to help me get better at writing. And it did deliver, though there’s certainly a lot of the book that wasn’t as useful in that regard.
Educated, by Tara Westover. Whew, that was intense. And maddening. Couldn’t put it down.
The Remains of the Day, by Kazuo Ishiguro. Not my usual reading fare, but I really, really liked it. Thoughtful and bittersweet and slow, in a good way.
A Craftsman’s Legacy, by Eric Gorges. Made me want to make things with my hands. Which is why I read it.
How to Write a Novel Using the Snowflake Method, by Randy Ingermanson. Framed as a story, which ended up not being my thing, but I do think the snowflake method has a lot of value and I’m currently trying out some variations on it in my own fiction.
Brothers in Arms, by Lois McMaster Bujold. Good as usual. I love the Vorkosigan books. Great comfort reading, kind of like Discworld for me.
The Bear and the Nightingale, by Katherine Arden. A bit of a slow start for me but then it got good — and darker than I’d expected, which in this case I liked.
Becoming Superman, by J. Michael Straczynski. What an amazing, inspiring story. Plenty of content warnings, though — what a messed-up family.
The Worlds of Medieval Europe, by Clifford R. Backman. Surprisingly readable for a textbook. (Is that bad to say? Any offended textbook authors in the audience?) Learned a ton, particularly about the parts that were blanks in my mental chronology (800s, 900s, etc.).
Smoke Gets in Your Eyes, by Caitlin Doughty. Great book — at least if you think about death all the time like I do. I honestly have no idea what normal people would think of it. Right after I read this book, I got an ad from a local mortuary that offers free tours, and you better believe I’m going to go check it out once the semester’s over.
Digital Minimalism, by Cal Newport. My favorite parts were the bits on solitude and on analog hobbies and strenuous leisure.
The Revenge of Analog, by David Sax. After reading this, I was ready to shrug off all my digital hobbies and go full analog. Still working on finding the right balance.
Range, by David Epstein. I’m cheating a little by including this since I’m still in the middle of it, but it’s good and right up my alley. The part about premodern villagers being incapable of abstract thought was fascinating.
The World as It Is, by Ben Rhodes. I didn’t vote for Obama, but now I wish I had. A good on-the-ground look at those eight years.
Isaac’s Storm, by Erik Larson. Whew.
12 Strong, by Doug Stanton. Also whew.
The Tiger, by John Vaillant. The hunt for a man-eating tiger in eastern Russia. Eye-opening.