Tools

Skills That I Needed When I Started My PhD

9 Jul 2024

I’m starting my third year as a PhD student. I thought it would be good to look back on some of the things that have helped me to this point. I study programming languages, but I imagine these things will help anyone in computer science—and some might have application to other STEM fields as well.

There are many softer skills that you need as a PhD student: curiosity, good work ethic, organization, etc. These are essential and nothing can replace them. (Note: that was not an exhaustive list.) I’m going to focus on some of the tools and hard skills that made the ride a little more comfortable. These compliment, rather than compete with, the softer skills that one develops as a beginning researcher.

...

Warp Factor Refactoring in Emacs

1 Jun 2023

Here’s a nifty Emacs workflow for doing a project-wide search-and-replace on steroids. While I do use refactor tools that come with language servers,1 sometimes those aren’t enough. Consider the case where you not only need to change the name of a function, but also e.g. need to swap the order of two of its arguments. Or you’ve broken one function out into two that need to be chained together. Whatever—there are plenty of ways where the IDE won’t be able to do everything that you need. Enter: Emacs.

...

Email, getting work done, and corporations or: Outlook considered harmful

28 Aug 2022

It's hard to overstate how important email is in our modern world. Even as hip new platforms like Slack &co. gain traction in the workplace, so much communication takes place in a crusty old medium that's outlived every purported "email killer". Where does it get its staying power from?

Email predates much of the Internet as we know it today. Its current incarnation first emerged in the early 80s, though it has roots in earlier forms of digital messaging from as far back as the 60s. "Email" is roughly three related protocols: SMTP, "Simple Mail Transfer Protocol", which deals with the sending of mail; IMAP, or "Internet Message Access Protocol", which allows mail clients to fetch mail; and POP3, or "Post Office Protocol", an older mail fetching protocol largely superseded by IMAP.

...

FreeBSD on a Raspberry Pi

12 Feb 2020

I’m a FreeBSD guy. My first computer was a FreeBSD machine that my dad had running in a closet. I learned how to use Emacs as well as the command line on that black-screen white-text no-mouse interface. That’s how real programmers spend their childhood! 😎 😜

I’ve only heard good things about FreeBSD. While not known as particularly desktop-friendly (various Linux distros win here) I’ve heard tales of its rock-solid stability. I wanted to try running on FreeBSD again, just to see what all the fuss was about.

...

Citations with Pandoc

6 Feb 2019

Today I figured out how to get Pandoc to automatically generate MLA citations for me!

I used Pandoc and the Biblatex bibliography format. What’s nice about this is that you can enter in all the information you know about the source, keep it nice and organized in a file, and then change the citation style on the fly. Imagine if you thought you had to use MLA, but then realized you needed to switch to APA citation styles. You can do that instantly with Pandoc and Biblatex.

...

Marked Man

24 Jan 2019

Marked Man (mm) is a little program I wrote to view Markdown files like UNIX man pages. (Because who wants to leave their terminal just to open a file?)

It uses Pandoc to convert between Markdown and the groff format. As a happy side-effect, this program can read basically anything as a man page: HTML, LaTeX, Word files (seriously), ePub, etc. Anything that Pandoc can read, Marked Man can handle.

Installing #

I’m working on getting this set up with Homebrew. For now, check out my GitHub repository here.

...

DuckDuckGo

15 Jan 2019

DuckDuckGo is a search engine. Like Google Search, you just throw some keywords into a box and get a list of results. Lots of people use Google, but I don’t. DuckDuckGo works better for me, and this is why.

The Duck
## Consistent Results

Did you know that Google will give you different search results, based on who you are and what you have searched for in the past? This is called a filter bubble, and it’s annoying and dangerous. DuckDuckGo doesn’t put you in a filter bubble.

...

Editors, or The Tools of my Trade

6 Dec 2018

I spend a fair portion of every day writing programs. As with all professions, using the right tools makes a huge difference in my productivity and general happiness. Having good tools helps me keep my gumption up.

One of my favorite books is Zen and the Art of Motorcycle Maintenance. Contrary to what the title suggests, this book is actually not about motorcycles. It’s about a lot of things; one topic is about tools and caring about your trade.

...

Emacs Tips and Tricks

23 Sep 2017

Emacs Tips and Tricks #

To Learn About #

  • ☒ Company-mode (completion framework for lots of stuff)
  • ☒ YASnippets (templates)
  • ☒ Auto-YASnippets (something like that—I installed it for temporary templates)
  • ☒ Alchemist mode (integrates with company mode—tooling for Elixir)
  • ☐ What do M-. and M-, do?
  • font-lock-add-keywords would let me add new keywords to a language
  • ☐ hi-lock
  • ☐ highlight-phrase, unhighlight-regex
  • Registers
  • ☐ Auto-loading packages to make startup time shorter

Things that make me happy #

  • Undo in region (just highlight something and hit undo)
  • Generate Backus-Nauer Forms with a slightly modified syntax with ebnf-eps-buffer

Helm #

You can filter buffers by pattern with Helm. Type: @pattern to find buffers matching pattern. If you want to have spaces in the pattern, you must escape them with a backslash.

...

Mastodon