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.
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:
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.
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.
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.
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.
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.
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.
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).
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.
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).