Hello, there

Hi, my name’s Andrew and I’m a programmer. I code mostly in Ruby and Rails, but I try to play around with other stuff every once in a while. You can find me as “AndrewRadev” on github and on twitter.

I’m a dedicated Vim user and I’ve created a bunch of Vim plugins. I maintain the VimLinks twitter account, I’m one of the maintainers of the official ruby bindings for vim (but I’m pretty bad at keeping up with the work there), and I own the runtime files for Vim’s eco support.

I have a few non-programming hobbies, mostly standard geeky stuff. I love watching anime and reading manga. I enjoy video games, mostly RPGs. I’m also a Doctor Who fan, but only of the 2005 series. I’m learning the guitar, even though I’ve yet to be able to play a single song from start to finish.

In this blog, I write about my programming-related experiences. Most of the articles seem to be about Vim, but in general, I blog about a bunch of different stuff.

Here are a few of my more interesting projects:

  • vimrunner is a ruby library that lets you spawn a vim instance and control it. This could be useful for integration tests for vim plugins and it’s actually being used for CI in some of my own plugins and Paul Mucur’s runspec.vim.

  • libmarks is sort of a personal Ruby Toolbox. You can save your favorite libraries in there and it will let you organize and search them. In theory. Right now, it’s still very much incomplete.

  • daily_sites is a small website I use to manage my everyday reading list.

  • ctags_reader is a little library to read ctags “tags” files and give you an interface to query them in a similar way that a text editor would. It’s useful for some super-simple static analysis of code.

  • image-processing is an implementation of a bunch of simple image processing algorithms in ruby, using the chunky_png library. It’s mostly an exercise, though I’d love to improve them and actually figure out a good use for them.

  • waiting-on-rails runs the rails command, while also playing some relaxing elevator music.

  • randfiles is a small tool that takes a list of directories and generates a random selection of files, optionally limiting them by size or by count. Inspired by this tweet.

  • digits is a university project in C that attempts to recognize a digit from a given image. It’s very limited, but it was an interesting exercise in image recognition.

  • green-cubes is just a tiny webgl experiment for my talk at BurgasConf 2014.

And some Vim plugins, if you’re into that:

  • splitjoin lets you switch between multiline and single-line versions of the same code.
  • linediff lets you diff blocks of code instead of files.
  • inline_edit makes it easier to edit code that’s embedded in other code, like script tags within HTML.
  • switch changes code in predetermined ways depending on what is currently under the cursor.
  • sideways moves items in lists (argument lists, arrays) to the left and to the right.
  • whitespaste attempts to adjust blank lines automatically when pasting.
  • multichange provides an easy way to replace words in a buffer or a particular area. Think variable renaming.
  • writable_search lets you grep for something, edit the results directly and have the changes update the original buffers.
  • undoquit is like a “Restore Tab” button for Vim, except it also works for splits. A window that was closed with :quit can be reopened with a keymap.

If you’re a Vim user, you might also like to look around my Vimfiles.