Quick update on second New Years’ Resolution two of two
So Jonathan has pulled out (for the timebeing) and the Emacs-for-editing 30 day challenge is on, starting from tomorrow morning. Chances are I’ll love it so much I’ll forget the challenge, which was more for the comraderie, but hopefully I’ll remember to report back in a months time.
I’ve a number of cheatsheets printed out. Haven’t got round to signing up to alt.religion.emacs quite yet though.
Let’s try again
As I’ve written about before, I’ve been hit with the back-in-Oxford-woo-I-can-do-anything effect again and this has me much more positive about everything. When I say that I’ll do a certain job or session of academic work at a particular time, I can have real confidence that I will, which is quite different to my attempts to get myself to do things at home. But of course I know that this is something that won’t last and it’s important to take advantage of it now rather than waiting. So I’m making various plans of how I’m to go forward with the term that I’ll aim to stick to from the word go.
I had my meeting with our combined Dean & Chaplain yesterday, as planned since December, and the gears of Oxford welfare have been put into play around me, as he ran through various things. Within ten minutes some strings had been pulled (probably not really but it felt like that, with him picking up the phone and making calls) and I had my first appointment with the doctor for about ten years, to be checked out on two fronts: first to go through a standardised “depression test” in order to rule that out, and then to see if my inability to focus and concentrate might possibly be due to some kind of deficiency. So I went off to the appointment and it was a strange experience, because that particular doctor’s manner made it hard to take anything about the process seriously. He said “I’ll e-mail you the test and you can fill it in at home, laugh at it, and e-mail it back to me”, and then I’m to have a blood test next week, but I’m feeling that perhaps I should have listened to the Dean more carefully to be sure that I got what the Dean wanted out of the appointment, since it was nothing by surreally comic from my perspective.
The Dean asked me various questions and also asked my permission to speak to the Senior Tutor (who loves me anyway), just to get a word in in advance in case the dreaded Tutorial Board or even public exam-related procedures later in the year start to arise. We have both written to both sets of tutors (Maths & Philosophy) to let them know what to expect of me and that I’m trying to deal with it. But any kind of concrete advice on what I might actually do in practical terms to make some progress was absent, and I pointed this out, and was only offered the suggestion to do some scheduling, and to try and rise above myself and not get worked up about it. I think perhaps he is very aware that coming back to Oxford makes a difference in itself and also that a huge part of the problem is just me worrying about it, and every measure just described helps to counter-act this, so it would definitely be a good place to start. Still, I am left uneasy by the fact that while I might be able to be happy for the next nine weeks, I absolutely have to be in a position to work very hard over Easter – or, at least, much harder than I did over Christmas, and the thing is that right now I still have no roadmap for getting to anything like this.
So this morning I’m making my plans, making myself a tick sheet for them, trying to take advantage of start-of-term-ness. This double life we all lead is so very weird – when in Sheffield Oxford is forever away, and when in Oxford Sheffield is the same, and yet on return to either it’s as if I’ve never been away. Everyone is the same and not in any way bothered by the gap of time and neither am I, in both places; it was still nice to see friends yesterday. We’ll see what I can make of it. I do have nine weeks and perhaps for the next three, at least, I can forget about what comes after that.
New Years’ Resolution two of two: desperate measures
I don’t think I ever really expected to be able to follow through with what needed to happen this vac, being entirely without ideas as to how to make it happen, and unsurprisingly, four days before the end of it, almost none of it has been achieved. There’s a lot I could say and a lot of ideas and excuses and whatever but I’m not sure many of them are very interesting. My ability to make myself work despite not enjoying it (which is of course compounded by not doing it), which has got me through school and my academically difficult first year of university, has entirely left me, or I have lost it somehow, and unless I am able to do something then I’m going to sacrifice my degree. There’s no way I achieve anything right now; anything at all.
When I wrote that previous post I said to myself that I could have a couple of weeks to try and fix things, but if I failed, I said, I’d contact the college authorities for help, admit defeat, and become one of the failing students of Balliol. It took a lot for me to actually do this, as I now have, because for the past year I’ve been mentally separating myself off from this grouping. I’ve been advocating college’s welfare systems and regularly saying things like “well, look, none of us in this room will ever have to get any welfare as we have each other to go to, but…” and so on, but I feel like I’ve exhausted other possibilities, however hard it is in my foolishness to admit this. My parents, for example, don’t understand how I can love my subjects and get so much out of learning them in a lecture or tutorial yet, even with the pressure of deadlines and tests, can’t make myself do the hard work part. I never expected anything from them though as they have always had a policy of not getting involved in my education at all, throughout school, thinking that it has to be independent motivation. Well I’ve run out of that. None of my friends seem to have any ideas either. And I’ve been unable to draw it from myself. So I’ve admitted defeat, though of course that’s not a very helpful word to bandy about my mind, I suppose.
So now I’m to go back to my tutors and tell them that I’ve done almost nothing, that I’m trying to do things about it on my own and with the help of the various welfare figures around the place, but that I’m not making much progress so far. And all after a term where, at long last, Maths appears surmountable. I know that for the first time since coming to Oxford that I can do this, I can get on top of it, but that requires work that I seem incapable of doing. In one of the e-mails from College I was told that “don’t worry this is common and especially in your subject area”. I didn’t pay it much attention until a few hours later when I realised suddenly that it was a reference to the many, many Maths students (and esp. Math/Phils like me) who have dropped back years and got terrible grades and been refused entry to the fourth year. That’s the camp I now inhabit.
To the title of this post, then, and a lighter tone. While I’ve tried every one of my own faculties against this and failed, one thing I am managing to succeed on is my New Years’ Resolution to get up at 6:30 every day and have several uninterrupted hours of work in the morning when I definitely work best. It’s hopeless in the afternoon, but I do seem capable of achieving something at that time. So far, two days in, I’ve had no problems getting up but I’ve managed to lose what little focus I had both times, getting almost three hours of work on the first day but only one and a half today. But it’s progress so I’m pleased that I’ve got somewhere here. On Sunday I go back to Oxford and on Monday morning I go and talk about this in person, and we see what can be done. Balliol’s Chaplain tells me to have courage. But I’d most certainly be lying if I had much hope right now, though I suppose that being at home does that to you.
New Years’ Resolution one of two: Emacs, Emacs, Emacs
If you start to get interested in the unix-based computing world, it becomes apparent pretty quickly that text editors are a lot more important than they are for most people’s computer use. A text editor is a program that lets you edit text, obviously, but it edits plain text: text without formatting such as colours, differing fonts and boldening. Everything is a file for unix, and so everything needs editing: from configuring your system to reading and writing e-mails, you find yourself editing a lot of plain text. For someone like me who relies on LaTeX to produce documents, instead of something like Microsoft Word, I find myself working with plain text in almost everything I do on the computer. On Windows the inbuilt text editor is usually taken to be Notepad, and given that plain text is just, well, text, you might think that’s all you need – perhaps Notepad is about as far as you can go with something so simple. But this is so very wrong: in the unix world, there are numerous editors that give one significantly more power to change text around in front of you. The biggest two are the vi derivatives and the Emacsen; the two most popular versions are respectively VIM (Vi IMproved) and GNU Emacs (Editor MACroS), and between these two there wages the most vicious of all the geek holy wars. Vi-based editing takes a philosophy very different from anything else, and the user is rewarded with great speed with little effort to learn the editor. Emacs focuses on extensibility: it comes with a dialect of LISP, a programming language with an unusual approach, and allows you to turn the simple text buffer into almost anything you want; there are e-mail and chat clients, web browsers, RSS readers and even Twitter clients written in elisp for Emacs. For the past few years I have been on the vim side of the fence, zipping around editing text with my esoteric keybindings. But recently I made a partial switch to Emacs – I have it emulating vim for text editing functions – and now I want to make that switch complete. Yes, my brothers, I am leaping the crevice in which lie the petty “word processors” and “desktop publishing packages”. I am jumping from one aristocratic camp to the other; I am betraying the One True Faith.
Let’s talk a bit about Emacs itself and what I’m finding so great about it already, with the partial switch I’ve made (to be explained). In Emacs, everything is text, and everything is linked together. You have one (set of) clipboard(s) to share between your organisation/scheduling software, e-mail client, shell and chat client, and all of these things are just large amounts of text with specialised key bindings, and it’s then easy to feed this text about. You might run a command in the shell, piping and globbing as usual, and then redirect the output into any of your buffers, where you’re writing an e-mail, composing a poem or goodness knows what else; you could just send it straight into a chat session with someone. It’s very easy to move things around, and plugin authors who have written extra things for Emacs have exploited this well. Org-mode is a phenomenal package that allows you to draft pieces of writing, take notes or make plans in an outline structure, and then it allows you to drop TODO items throughout these. Whenever you have something unfinished in a document, you can just make it into a TODO with some plain text and org mode picks it up. Hit a few keys and all your tasks get scooped up and arranged on a timeline-like display, that is, a schedule for the upcoming week: you barely have to think about storing your information and then org mode brings it together for you. With org mode capture mode, you can yank links from all over Emacs and make TODO items out of them, and this even has a protocol to link to outside applications. In my usual web browser if I want to look into a comment on a blog more carefully, say, I can select it, hit a key combination and then over in Emacs the comment will be waiting, with a link to the original webpage, and a TODO header just waiting for me to summarise what it is I need to do with the comment. Then it gets filed into my org files and filtered into the agenda view and task lists and all the other useful ways org gives you to extract information. And all of this works for everything in Emacs. You never have to put aside all your usual tricks when you’re reading e-mail or something, it’s all there.
Then we have the wondrous world of elisp. Almost everything you do in Emacs is in fact nothing more than the execution of lisp code. Typing letters just calls functions in lisp that insert characters into the buffer; splitting the window is again just a lisp function. And lisp is a magical language because you can change it up as you go. The lisp sitting in memory that’s running your editor is changable as you go. Type some lisp into any document, and hit a key binding to tell Emacs to evaulate it, and change the way things are going. Add a new e-mail client by telling Emacs to load a bunch of lisp into memory. Don’t like what happens with a particular lisp call that you make a lot, but don’t want to rewrite it from scratch? No problem, just write some lisp around the function with the simple concept of advising a function. Want some time-saving code to execute whenever the editor does something in particular, such as getting it to check your e-mail every time you load up you send a new message? No problem, just hook your code into the existing elisp. I don’t know what a list is in elisp, but I’ve been able to hook basic macros in all over the place. Truly, one can construct one’s perfect editor – and by proxy, one’s perfect e-mail client, chat client or PDF viewer. It’s hard to get this across here. But when you realise that you can make this thing do whatever you want, and that your entire life can be organised and recorded in something like org mode, Emacs gets very exciting very fast. You take a fresh look at the likes of rms and friends who set this stuff up. They’re absolute geniuses.
Vim doesn’t have anything like this. Vim’s scripting language is very hard to work with, and does not infect the editor in the way that lisp does Emacs, so all it really allows you to do is (slowly and painfully) add to vim, rather than moulding it to suit your needs.
All of these things excited me when I read about them and so I started looking at how I could take the vi editing philosophy and put it together with Emacs, and of course, you can. Vimpulse pulls together a few things that gives you vim modal editing with all of Emacs’ clever features too, and I’ve been happily using that for a couple of months. I edit text the way I always have and I feed it around the place using lisp, and I feel like I have the best of both worlds. All until things start breaking, and certain modes don’t work at all. People writing cool extensions for Emacs are writing them assuming that the Emacs editing keys are being used, and they’re assuming that you’re not flipping back and forth between insert and normal modes all the time, and it starts to show. You get weird lisp errors popping up and it always feels like the fact you’re trying to cheat the system is at least in part what’s causing it. And then I started to find Emacs bindings slipping in. I would fix errors with M-b, C-f and C-d rather than doing things the vim way – it just suddenly seemed like the right way to fix a certain problem. I started to think that it might be worth the switch to an admittedly inferior and less clean approach in order to get more out of Emacs the operating system (there I said it).
So I’ve been thinking about where I am right now. I’m a competent vim user – when I used to correct hastily-typed transcripts of JCR meetings, I could zip through with a combination of commands that other longterm vim-using friends of mine didn’t even recognise. I found myself getting very cross very quickly when forced into a non-vim environment, furiously hitting escape and messing up the online shopping I was doing or whatever. But then, on the other hand, I was always capable of adapting. Faced with the prospect of doing some work on someone else’s machine, without an easily accessible vim installation, it never takes long before I find myself using Home S-End DEL in place of ESC dd, C-S-> DEL in place of ESC de. I seem to pick up new bindings quickly, and there are many things I do in vim with little more speed than I would in another editor, suggesting that I’m not really that high up the ladder. So, I’ve been thinking, if I were to make a decision to switch to the Emacs bindings now, I could get faster than I now am with vim, and I’m not really throwing away much: I’ve been using vim for two years, I’m hardly seasoned by any real estimation. I’ve made dramatic changes before, throwing away built up effort and invested time in configuring a program to work well for me, and it’s tended to be good. After having an opporunity to evaluate both sides fully, the Emacs side of the editor war appeals more.
So onto the New Years’ Resolution. All my raving about the power of Emacs has not gone unnoticed, and my friend Jonathan has decided to give it a try, so we’re getting ourselves set up with a 30 day Emacs challenge for the New Year. For me, the challenge is removing my crutch that is Vim emulation, and starting the long process of getting fast with Emacs, really wiring it into me. Jonathan’s challenge is to get a text editor more fully integrated into his life, since he’s finally switching from Windows to GNU/Linux, and he’s starting with Emacs – but since he hasn’t had the evaluation time I have, we’ve agreed that Jonathan can simply ramp up his vim knowledge instead if the Emacs experiment goes badly. My challenge is substantially harder: this is something I have worked with day in day out for two years and now I am to use a completely different tool for the same tasks. It is going to hurt, a lot, for the first few weeks.
If he fails at this or I fail with Emacs, and end up slipping back into Vim, there are going to be forfeits – suggestions welcome. I personally have two further stages of the resolution to carry out later in the year once this part is accomplished: firstly, to learn to touch-type properly rather than the weird idiosyncratic style I have now, which is slow and bad for my hands, and thirdly to learn elisp and lay the power of Emacs bare before me. I’m making an investment of my time now to reap the rewards later. I’m going to have absolute mastery over my perfect editor, carefully constructed. It’ll take time, but it’ll be worth it.
So there we have it. I am not pleased with the quality of my expression in this piece, so I’ve got here a few inspiring and amusing pieces written by others on the subject, that got me thinking this way.
- Emacs v. vi is rooted in the love of Lisp | stevengharms.com
- Switching editors is just as hard as switching languages | Codeulate – the challenge I am to face
- org-mode In Your Pocket Is a GNU-Shaped Devil | dot unplanned – down the rabbit hole, this is my life since I discovered Emacs
- A Tough Pill to Swallow | GrumpyMeerkat