RSSAmplifier

Blog

Dennis Ogbe

ogbe.netRSS feed ↗28 posts

Latest posts

Adventures in self-hosted mapping

Suppose you wanted to plot a few markers on an interactive world map and display them on your website. How would you go about it? That was a question I asked myself recently as I was thinking about the implementation of my snowboarding travel page . I wanted something like Google Maps, but definitely not Google Maps; something meaningfully self-hosted, but also not too complicated or brittle;…

Reverse-chronological numbering for publication lists in \(\LaTeX\) and with =citeproc.el=

One thing that always bothered me about my CV and publications page was that although I managed to list my publications in reverse chronological order, i.e., with the newest publications at the top, the numbering of the list of publications was still ascending. So, until now, my publication list was something like: 1. 2025 publication 2. 2024 publication 3. 2022 publication I found this annoying…

Semi-Open Heart Protocol

About a week ago, the Open Heart Protocol made its way to the front page of Hacker News . I immediately thought that this looked like a lot of fun and a cool opportunity to add some more bells and whistles to this website. There is a public API , but the devs ( muan and robb ) also provide some code examples to self-host the backend using the Cloudflare Workers free tier. Since I am already using…

Using Emacs and Org-mode as a static site generator

For reasons that I don't yet fully understand, I spend a considerable amount of time during the holidays tweaking and updating this website. The resulting static site generator has now grown in complexity to a point where my previous posts are woefully outdated and rather confusing to read. So why not make an updated "This is how this site is built" post for the year 2025? Alright, saddle up.

HTTP Basic Authentication for personal package.el repositories

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…

Custom =org-sitemap-function= post-Org 9.1

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…

Emacs Config Redux

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…

Beamer Poster templates using (some) Purdue Colors

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

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…

ZeroMQ Pub/Sub Hello World

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…

Beamer templates inspired by the official Purdue University colors

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…

Reducing the size of GNOME 3.20's titlebars

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

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…

Some matrix multiplication tricks

The first two are sort of obvious: We want to multiply some matrix \(\mathbf{A}\) with some diagonal matrix \(\mathbf{D}\). Instead of carrying out a bunch of multiplications by zero, we replace the matrix multiplications by a for loop and elementwise multiplication. In other words,

Blogging using org-mode (and nothing else)

Update : I finally (after 4 years!) fixed a compatibility issue with org-mode > 9.1. See this blog post for an updated org-sitemap-function and an updated project definition. I'm leaving this post up to preserve history. As you can tell, the look of this website has changed significantly---and it was about time for that. In case you didn't know, this site used to be hosted on…

Julia + Emacs = Success

Julia is an interesting new scientific programming language. I haven't used it much in the past, but I believe that it has the potential to be a very fierce FOSS competitor to MATLAB. When I tell friends and colleagues about Julia, my punchline is usually: "It looks and feels like MATLAB, but it's as fast as C." I'd like to start using Julia more for things like Monte-Carlo simulations and other…

SSH Usernames

I love SSH . It's the most convenient and secure way to manage multiple machines over the internet. It allows me to access my desk machine or my home server from anywhere in the world. It calms my paranoid side with features like SSH Tunneling . In short, SSH is one of my favorite tools. But the Internet is an interesting place.

Variable-width Serif Fonts when editing plain text in Emacs

I edit a lot of \(\LaTeX\) documents using AUCTeX in Emacs. Since I believe that serif fonts like Times New Roman are a lot easier to read than monospaced fonts, I wanted to be able to view and edit text in an emacs buffer using a variable-width, serif font. After 20 minutes of elisp hacking during lunch, I came up with toggle-serif , a small elisp function that does exactly what I want. When…

ctmpmon

Sometimes, especially when I run intensive simulations on one of my machines, I want to be able to keep an eye on the temperatures of my CPU. lm_sensors gives me this functionality on my arch linux systems, and the ArchWiki has a great intro page on it.

My Emacs configuration

I finally created some acceptable CSS to publish good-looking HTML files using org-mode . Since my emacs configuration file is a literate program contained in an org-mode file, I can now put it on the web for the world to see. This is it. Best, Dennis Update : The link above hasn't worked for years. I finally got back to uploading the config again. See here.

Remotely updating iTunes and MPD at the same time

Like many other people, I enjoy listening to music. I have aggregated a reasonably large (~90 GB) library of digital music over the years, and, of course, my favorite way to listen to it is MPD . Right now, I'm running MPD on my "media center" computer hellboy2 , which (surprisingly?) is a MacBook running OSX Yosemite connected to an HDTV. Before I switched to MPD again (this is actually my second…

Creating beautiful polar coordinate plots in MATLAB

For a problem that I'm currently working on, I found myself having to visualize some antenna patterns using MATLAB. To create polar coordinate plots, MATLAB offers the polar method, which is unfortunately quite limited in functionality. For this reason, Duane Hanselman created mmpolar , which brings MATLAB's extensive handle graphics capabilities to polar plots. I wanted to create some antenna…

Editor Macros

Something really interesting happened to me over the course of the last few weeks: I switched from using a combination of tmux , vim , and the fish shell for my daily computing needs to doing everything and more in emacs ! I can already see some readers of this make faces and scream out profanities and other nice things in disgust: "You are such a heretic!", "How could you become one of them?",…

The fish shell

I've been using zsh with a few customizations for quite a while now and I can honestly say that I would never go back to just using plain bash (although that is not entirely true: I do my scripting in bash, since bash is the common denominator amongst many *nix systems). Some of the things that I liked about zsh include better tab completion and interactive syntax highlighting. I also configured…

Creating a custom Linux Live USB environment

In the advanced C programming class that I assist in teaching, we are holding interactive programming exams. That means that every student is tasked with constructing a C program in a time frame of a about 2 hours. Students have access to GCC , Valgrind , as well as the Emacs and Vim text editors (we are staunch proponents of religious freedom). One hurdle in holding programming exams is the…

No one man should have all that power

I apologize. The title is pure clickbait. This post is not about Kanye West (or Malcolm X). But I promise, it will be interesting! (And it will have something to do with the word 'power') One reason I started this website for is to explain things to myself in a somewhat coherent form. My reasoning is that if I can take a concept and write it up in publishable form, I will have truly understood and…

All roads lead to Rome

Is there such a thing as ideomatic C? I'm not sure: I hear Python people talk about ideomatic Python a lot (although I'm probably still very unpythonic most of the time), and I'm convinced that functional programming in languages like Haskell and Lisp approaches the task of programming with fundamentally different ideoms than an imperative language like C. But I haven't really witnessed many…

Hello, World!

Hello World! This is my first blog post! I can use this as a test on how to use the math and the code view feature. The math environment takes the \(\LaTeX{}\) syntax, which always makes me happy. This is inline math: \(2x + 15 = 9\). This is the equation environment: \begin{equation} \label{eq:test_eq} X(\omega) = \int_{-\infty}^{+\infty} x(t) e^{-j\omega t}\ \mathrm{dt} \end{equation} Seems to…