Farther down the road of Vim

It’s been a few weeks since I wrote anything about Vim, but that doesn’t mean I haven’t been using it. In fact, it’s all I’m doing my coding in on my laptop, and I’ve got gVim up and running on my desktop to replace Notepad++. There are a number of things I still have yet to get into in Vim, like Vim-style RegEx (this will be a big one, as I use RegEx a lot, and Vim has its own format for them). I’ve made some tweaks to my .vimrc to make things more friendly for me, and even installed a couple of (fairly lightweight) plugins.
Continue reading

Of Callbacks and Onions

I already mentioned that we’re going through LearnYouNode at PCS. The problems have been pretty good by and large, butone of them stands out for the time it took me to wrap my head around it: number six, titled Make It Modular. The problem is based on a previous problem, in which you have to build something that will take in strings representing a file path and a file extension, and then log to the console a list of all the files with that extension at that file path. Reasonable enough! Problem five was a good learning exercise; I was able to finish it up in what seemed like a not too unreasonable amount of time. Problem six, though.… (spoilers for LearnYouNode problems below, watch out!)
Continue reading

Node’s URL module

As part of Code School, we get to periodically give tiny little lighting talks—just 3–5 minute reviews of a tiny little piece of what we’re learning about. We’re doing this so that people can get comfortable giving presentations and speaking about tech things. For me, that’s not really an issue; my business partner Amanda and I have done a number of talks on ebooks, both solo and co-presenting (including one 4 hour overview of the then-new epub 3.0 spec at Tools of Change 2012); the only challenge to a 3–5 minute talk was saying anything useful in that short a time. Fortunately, the topic I got to go over is pretty short and sweet: The URL module in Node.
Continue reading

Time for an upgrade

Well, between having a couple more things come up in class that were issues because I was still running Mint 14 and having just backed up the laptop anyway, last night I decided I might as well go ahead and upgrade to Mint 17. It’s a lll be long-term support version; apparently it’ll be supported until 2019, which seems like it should be more than enough—I’d be surprised to still be using the same laptop in five years! So I wiped the hard drive (including the Windows partition that I hadn’t logged into in over a year) and threw in the Mint Cinnamon 17 install CD. Rather than going with the default install, I decided to give my /home its own partition—I’d read some blog posts from people who advised doing that, as it apparently makes both upgrading and recovering from catastrophic “oops, I broke it” moments a lot easier. So, 50 gigs for root and 10 for swap (both of which are probably on the generous side, but whatever), leaving me 260 for /home, which should be plenty given that this is mostly a work system.
Continue reading

The fun never stops!

So, in addition to the laptop running Mint that I was tinkering with last night, I’ve got a Windows 7 desktop (making ebooks requires InDesign, which will have nothing to do with Linux even under Wine) and a server running Ubuntu server 12.04. The server has a RAID-1 with all my work files, writing projects, music, and whatnot on it, as well as some other things like a TS3 server.
Yesterday, as I was pounding out some JavaScript homework before class, we had a bit of heavy rain roll through—heavy enough to actually bring some thunder and lightning with it, which is rare in these parts! So, shades of childhood and West Virginia summer storms, isn’t this lovely… and the power flickers. Well, that’s annoying, but no big deal since I’m working on the laptop. I churn out the rest of the homework, head off to class, and then get ensnared in the learnyounode madness.
Continue reading

And this is why I love Linux?

We just changed gears at code school tonight—up to now we’ve been hitting programming fundamentals, from basic stuff like loops and types and whatnot on through factories and prototypes and into scope and closures, which still make my head hurt if I look at them too closely. But tonight we left all that behind and started to wade into the next big topic of the program: Node. I’m definitely pretty psyched for it—playing with asynchronous programming and getting to do a bunch of back-end stuff sounds like a lot of fun. There has been, however, a bit of a snag.… Continue reading

First steps with Vim

Ebook creation has always involved a lot of html and css editing. Because it also tends to require InDesign, I’ve been unable to do much of it in Linux. So, for the past many years, I’ve been using Notepad++ as my editor of choice. Now that I’m doing Code School, I’m spending more and more of my time in Linux. I fumbled around for a while with various editors: Gedit was the first one I started using, but it lacked the power of Np++. Eventually I found my way to Geany, which worked quite well, and eventually from there to Brackets.
When I started tinkering around more with the Ubuntu server I’ve got running at home though, I found I needed something I could use from the command line without a GUI. For a while I was happy enough with Nano; I wasn’t doing much, and it did the job well enough. With more time in Code School and more time using the terminal, I started to feel like I needed something more powerful. I’d heard of Vim, and even seen it once or twice accidentally, mostly when adding messages to git commits, and it always seemed arcane and pointlessly difficult. People kept singing its praises though, so one day I decided that my brain wasn’t melting quite enough learning about closures and scope, and that I needed to make everything much harder on myself, so I switched over to Vim. Continue reading

Yep, still here

Well, I’ve been learning a heap of new things lately—I’m doing Portland Code School to further my JavaScript knowledge, which is great fun. We’re about 4 weeks in at this point. Until now, it’s been pretty straightforward stuff for me; a lot of what I learned in teaching myself some Ruby applied pretty well. I’m having to spend more and more time with furrowed brow, going “Why isn’t this working?” lately though—which is good fun! Well, I guess more in retrospect than at the time, but…
Anyway, I’m going to be noting down the important and useful things I figure out here. They may not be important or useful to anyone else—I make no guarantees there. Likely topics will include JavaScript, linux, vim, and Ruby once I get done with the PCS course and have more time to play. Publishing, specifically ebooks, will probably make occasional appearances as well, as Digital Bindery is still going strong. Who knows, maybe we’ll even get into games, books, kung fu, or biking.


I was quite flattered to be asked to speak at my graduation, in company with my classmate Dehlia McCobb. I could go on for ages about what a great time the publishing program at PSU was and how much I learned there, but my speech summed it up pretty well. So here it is:

So, we’re finally done! It’s been a great experience for me, and a lot of the credit for that goes to all of you. The best part of the Ooligan experience, after all, is the freedom that we’re given to figure things out on our own, and a lot of the figuring out that happens is us helping each other. I remember a conversation with Dennis a year ago or so in which he said that when the program first started, the instructors needed to explain just about everything to the students. After a few years, though, a sort of collective pool of knowledge built up, and suddenly the instructors didn’t need to explain what things like BLADs or drop caps were, because everyone seemed to know already. That pool of knowledge comes from students teaching each other, which happens because of Ooligan—the work we do on the press teaches us at least as much as our classes do. So, thanks to all of you for helping to teach me so much. Continue reading

What I learned about XML for small publishers at TOC

In early February I got to head over to New York to attend O’Reilly’s Tools of Change conference. It was a great time, and I learned a lot about exactly the sort of stuff I’m interested in; namely, how publishers are dealing with technology and what sort of problems and opportunities new technology is opening up. After I got back to Portland, Kent Watson from PubWest (who is also one of our instructors at PSU’s publishing graduate program) asked me and Victoria Blake from Underland Press to join him  in talking to the members of PubWest about the sort of stuff we learned at the conference. Continue reading