Blog
HTTP Basic Authentication for personal package.el repositories
Published: December 17, 2024
In my somewhat convoluted system to manage Emacs packages, I maintain a personal ELPA-compatible package repository (created using an ancient version of elpa-mirror) on this very server. Because these are my packages, I don't want to run this as a public-facing repository and I thus protect access to it using HTTP Basic authentication. For about five years, I was able to use this password-protected package repository by setting the package-archives
variable to include the username and password in the URL, e.g., something like:
(setq package-archives '(("my-repo" . "https://username:[email protected]")))
This special form of URL is now apparently being deprecated and I have noticed that recent versions of Emacs (I'm guessing 29+) do not support this URL scheme any more. I don't really know the details about these URLs, but some cursory googling produced some notes on the topic (cf. Dan Q, Neil Madden). Luckily, due to Emacs' flexibility, I was able to find a solution to this problem relatively quickly. As a bonus, this solution actually does HTTP Basic Auth right.
Custom org-sitemap-function
post-Org 9.1
Published: December 27, 2022
I have been lugging around an old version of org-mode (9.0 to be specific) in the git repo which builds this website for a number of years now. I decided to do this because I had a custom org-sitemap-function
to generate the landing page for my blog, but org 9.1 introduced a breaking change to the org-publish API.
I have now finally come around to fixing this issue and making my website compatible with modern emacs and org-mode versions higher than 9.1. However, porting my old sitemap function was… surprisingly difficult? So just in case someone is looking up my original post these days, this post contains a sitemap-function
which will work in 2022.
Emacs Config Redux
Published: April 24, 2020
I used to keep a HTMLized version of my Emacs config on this website for folks to browse. However, during my last larger config overhaul, I changed things up so much that simply exporting one file and putting it on the website was not possible anymore and the link to my config silently 404'ed.
Since then, I have received multiple requests to re-upload the config file. I kept promising folks that I would one day get to doing that. That day has now finally come.
Took a few hours of cleanup and writing, but the config is now back online in all its glory. There is also extensive commentary, in case you are interested.
Beamer Poster templates using (some) Purdue Colors
Published: October 02, 2018
During the Advanced LaTeX workshop we taught at Purdue last week, I announced that I would share my poster design using the beamerposter package and a similar design as the slides. I finally came around to uploading a few examples to my GitHub account (thanks for being patient, everyone)—you can find them here.
Towards a better Integration of the Julia REPL in Emacs
Published: July 18, 2017
It is not a secret that I am a fan of both Emacs and the Julia language. Even
though I have not been working with Julia a lot recently, I still try to keep
up to date with the language and use it in my research and other projects
whenever it fits. It should also not be a secret that I am a big fan of the
Emacs Way™ of working with interpreted languages, which involves the idea of
controlling a REPL without leaving the editor. It was for those and other
reasons that I initially hacked together julia-shell-mode (See my blog post
about it here), but if you take a closer look at the open isses in GitHub and
the overall lack of commits, you might sense that I have lost interest in this
package. Of course, the reality behind my lack of enthusiasm for
julia-shell-mode
is a little more complicated.
ZeroMQ Pub/Sub Hello World
Published: June 28, 2017
It's been a while since I posted some new content on here. This is mostly because I've been quite busy trying to be an academic at Purdue. This blog will get an update soon with a few publications!
Anyways, I've been working a LOT with C++ recently, side-by-side with (and guided by) my labmates Tomo and Stephen. (Expect a post about the perfect emacs setup for C++ development soon, but here's a hint: it involves the usual suspects rtags and ycmd) As part of our project, I am currently surveying a few methods for inter-thread and inter-process communication, which seems to be what ZeroMQ was created for.
Beamer templates inspired by the official Purdue University colors
Published: May 19, 2016
I've gotten a few requests to share my custom Purdue-themed beamer templates
recently and I finally came around to clean them up, put them in individual
.sty
-files, and upload them to GitHub.
The GitHub repository contains some examples to use the two templates I have
been using for talks and presentations over the last few semesters. The first
(and IMHO better) template is beamer-purdue-gold
and the title page looks
like this:
Reducing the size of GNOME 3.20's titlebars
Published: April 11, 2016
GNOME 3.20 has made it into the official Arch Linux repositories and with it
came—as usual—some sort of breakage. I personally find the default width of
the titlebars repulsive, and I used a small CSS hack to fix them. This broke,
but thanks to reddit, I managed to fix it. Put the following in
~/.config/gtk-3.0/gtk.css
(create the file if it does not exist):
Extending your X11 Desktop using VNC
Published: March 12, 2016
I love multihead setups and I am a thrifty grad student. Today, this combination lead to an interesting and fun Saturday morning project. I figured out how to add an additional monitor to my dual-monitor set-up, which is already a little convoluted.
Let me clear things up: My main setup currently consists of a Thinkpad with its lid closed connected to two monitors (one over VGA, one over DisplayPort). Since my laptop has no third physical display connector, I had to get creative in order to add a third physical monitor to my set-up.
I use a cheap DisplayLink adapter at home for exactly this reason, but unfortunately the official dirvers are buggy and the whole set-up is generally very unreliable. So, with me being the thrifty grad student that I am, I did not want to shell out another $30 for a piece of hardware that doesn't even really work.
What I ended up doing is pretty neat.
Archive
- 2016-02-01: Blogging using org-mode (and nothing else)
- 2015-09-27: Julia + Emacs = Success
- 2015-07-22: SSH Usernames
- 2015-07-06: Variable-width Serif Fonts when editing plain text in Emacs
- 2015-07-01: ctmpmon
- 2015-06-10: My Emacs configuration
- 2015-06-05: Remotely updating iTunes and MPD at the same time
- 2015-06-01: Creating beautiful polar coordinate plots in MATLAB
- 2015-03-16: Editor Macros
- 2015-01-31: The fish shell
- 2015-01-27: Creating a custom Linux Live USB environment
- 2015-01-22: No one man should have all that power
- 2015-01-20: All roads lead to Rome
- 2015-01-19: Hello, World!