GeistHaus
log in · sign up

Zachary Romero

Part of zacromero.com

Recent content on Zachary Romero

stories primary
Integrating Google Work Calendar With Emacs

I use Emacs for practically everything at my day job so it’s no surprise that I would get around to incorporating my work calendar into org-mode. With just a little fiddling I was able to get it to work. I’ve written a lot of tools in Emacs for work; some of them turn out to be not very useful, but integrating my work calendar has been a net positive to my workflow.

https://zacromero.com/post/integrating-work-calendar-with-emacs/
Elevator Pitch for Emacs: like the terminal with added dimensions

The topic for the August Emacs Carnival is “Your Elevator Pitch for Emacs.” This is an interesting topic to think about since I feel more often than not Emacs users tend to be shy about promoting the editor. So often I hear the refrain “I personally have used Emacs for 20+ years but I wouldn’t ever recommend a colleague use it, there’s just better alternatives.”

I understand this sentiment. Emacs can be finicky. You may have to spend an hour every now and then debugging your init.el. You’ll probably have to read a good amount of documentation. Despite this, I think it’s good to convey the usefulness and benefits of Emacs. So this would be my Elevator Pitch:

https://zacromero.com/post/emacs-elevator-pitch/
Searching Denote Notes With p-search

p-search is a local search-engine I developed for Emacs. I haven’t publicized it too much, mainly due to being extremely busy with a newborn, but I’m slowly working on resuming development on it. In this post, I want to dive into a particular use case that I feel many might find helpful: searching a local denote repository.

Background

The typical way that searching is done locally is via a tool like grep. You think of the term you want to search for, run grep, and get back a list of all entries using that term. This obviously works very well and has been quite effective for decades. Problems start to arise when you have too many matches.

https://zacromero.com/post/searching-denote-notes-with-p-search/
Emacs Discoverability

One of the most distasteful things I find when looking at the Microsoft Visual Studio Code or the IntelliJ plugin ecosystem is the star rating system of the extensions. While I get the reasoning behind such a system, like allowing newcomers to the ecosystem find and install packages they need, from the looks of it, it just seems like a place for users to vent their frustration. It doesn’t help that such a system can be easily gamed as most rating systems are.

https://zacromero.com/post/emacs-discoverability/
Emacsconf 2024 - p-search
p-search: a local search engine in Emacs

The following is a talk I gave for Emacsconf 2024 about the p-search project I’ve been working on.

https://zacromero.com/post/emacsconf-2024-p-search/
p-search

Time Table

Link: https://github.com/zkry/p-search

Documentation: https://p-search.org

p-search is a local seach engine for Emacs, allowing you to combine search customized criteria. This provides a more flexibile way to seach compared to the black and white search with grep/ripgrep.

https://zacromero.com/projects/p-search/
Yaml Pro

YAML Pro

Link: https://github.com/zkry/yaml-pro

Since I have a YAML parser I might as well make use of it. yaml-pro is a minor mode that adds simple but effective YAML editing capabilities. Features include moving and killing subtrees, navigating around, and folding sub-blocks.

https://zacromero.com/projects/yaml-pro/
yaml.el

Link: https://github.com/zkry/yaml.el

yaml.el is a YAML parser written in Emacs Lisp. It can also encode Lisp data structures into YAML.

https://zacromero.com/projects/yaml/
Blog v2 Introduction

I decided to make a major update to my blog. I wrote a good amount of content in my previous blog (I plan to migrate those posts to this blog) but I felt that I wanted a more focused blog as my previous blog contained a very assorted mix of content.

If it’s not obvious from the new theme I wrote, I intend the primary content of this blog to be regarding Emacs and org-mode. Why these topics? Well, it’s the only thing these days I really feel motivated to write about. I may also add a section later on for thoughts on my mind and software in general.

https://zacromero.com/post/blog-introduction/
intentional.el

intentional.el

intentional.el is my attempt at making the perfect productivity application for site-blocking. It turned out to be probably the most advanced site-blocking software that I’ve ever came across and it all is due to how all of the pieces of Emacs work together.

The application is based on the concept of constant whitelist blocking. Most software that goes the blacklist route and this has the problem that there are a near unlimited number of sites that you can waste time on and you can’t possibly block them all. Even if you could, some of those sites may be necessary to unblock for different types of work. The whitelist approach usually has the downside that the number of sites you need to stay productive is also nearly endless and thus you’re constantly updating your whitelist to suit your task… a lot of manual work.

https://zacromero.com/projects/intentional/
asm-blox
Introduction

ASM Blox

Link: https://github.com/zkry/asm-blox

asm-blox is a TIS-100 programming game based on web-assembly. Many of the design decisions of TIS-100 I decided to keep the same but the control flow of the WebAssembly text based language provides a unique challenge.

Another unique feature is that you can configure special blocks using YAML (I chose YAML especially for a grungy cloud feel).

https://zacromero.com/projects/asm-blox/
Time Table

Time Table

Link: https://github.com/zkry/time-table

Time Table is a little project that I spun up in a couple of hours but turned out to be extremely helpful. I wrote the package to mimic the functionality of https://www.timeanddate.com/worldclock/meeting.html .

The basic idea is that this package displays lists of various time zones side-by-side with the time-zone’s normal working hours highlighted according to availability. You can add as many time zones as you like. This was very handy when working across with a multi-continent team and helped me see which times people would be available.

https://zacromero.com/projects/time-table/
Awqat

Link: https://github.com/zkry/awqat

Awqat is a package to compute the Islamic prayer times based on the calculated position of the sun. It is extremely convenient to have the times a keypress away. It was cool to work on this and dig into the internals of solar.el. For fun, try evaluating (find-function 'solar-ecliptic-coordinates).

https://zacromero.com/projects/awqat/