Dark Sky Redux

I have to admit to being a bit of a weather nerd. Florida, of course, has very active weather—especially in the Summer—so some of my obsession is self preservation but I also follow the weather where family members reside and that doesn’t affect me directly. One of my favorite weather apps was Dark Sky, an independent app that specialized on localized weather reporting. It was eventually bought by Apple and integrated into Apple Weather.

Now the developers of Dark Sky have left Apple and started Acme Weather with the intention of producing an even better weather app. It has a lot of the features of Dark Sky but introduces what are essentially error bars into its forecasts. As they say, forecasts are never certain and they are attempting to indicate how accurate a given forecast is.

The new app is available for iOS in the app store but there are plans to port it to Android as well. I don’t remember if Dark Sky was available on Android but I welcome the plans to make the new app generally available.

I’m generally happy with Apple Weather and use it several times a day but I must admit to being tempted to try out. The yearly subscription is $25 with a two week trial period. I’ll probably give it a try because, as I say, I’m a weather nerd.

Posted in General | Tagged | Leave a comment

Elisp Pre-commit Hooks

Another short post today but one that some of you may find useful. Over at the Emacs subreddit, James Cherti offers a set of commit hooks for Elisp programmers. There are hooks that check for parenthesis consistency, byte compile to check for compile errors, native compile to check for errors, and even a hook to check for conformance to Elisp indentation conventions.

The project repository is here. It has a little more information on installing and using the hooks but essentially everything you need to know is in the reddit announcement.

If you’re an Elisp programmer and like to run some rudimentary checks before committing your work, you may find Cherti’s project useful. If, like me, you hate being constrained by arbitrary coding format conventions, you can choose to ignore the indentation checks. In any event, if you’re an Elisp programmer, you should take a look at Cherti’s post.

Posted in General | Tagged , | Leave a comment

Org 9.8

Ihor Radchenko writes to tell us about the release of Org Mode 9.8. It’s a pretty big release as you can see from the Changes file. It’s much too long to list the changes here and, of course, not everyone will be interested in all the changes so be sure to take a look to see what’s of interest to you.

As always, we should pause and give thanks to Ihor, Bastien, and the others—see the announcement for a list of those contributing to this release—who work so hard on our behalf without any recompense but that thanks. These guys are heroes and, as I always say, we owe them a beer whenever he find ourselves in the same bar as any of them.

The announcement has a short list of significant updates so if you don’t want to read the whole changes file, that’s a good place to start.

Posted in General | Tagged , | Leave a comment

Flycheck 36

Note: As I was preparing tomorrow’s post, I noticed that I forgot to publish today’s. Sorry. Here it is, better late than never.

Over at Meta Redux, Bozhidar Batsov has announced the release of Flycheck 36. It has, he says, been a long time coming but he’s really happy with it.

He’s added a couple of new language checkers—javascript-oxlint and org-lint—fixed a security issue, and added some features to ShellCheck. There are also quality of life improvements and bug fixes. Additionally, he’s updated the app’s Web site.

Take a look at Batsov’s post for all the details. Batsov notes that many people have assumed that Flycheck is essentially dead because of the builtin Flymake’s integration with Eglot but he says that Flycheck is alive and well and continuing to evolve.

If you’re a Flycheck user or interested in it, all this is good news. Batsov has put a lot of work into improving it and has plans for more. He explicitly asks those who want additional features to let him know or better yet to submit a PR. In any event, you should take a look at Batsov’s post to see all the new features and improvements.

Posted in General | Tagged | Leave a comment

A Case In Point

The fates are still punishing me for leaving home for travel. Today I had two errands to run:

  1. Renew a driver license
  2. Return an unused TV set top box to my provider

The DMV is, of course, a red flag but it turned out taking 3 hours. Three hours at the DMV is no one’s idea of a good time. After I staggered out of the DMV I went to my provider to drop off the TV set top box. That should take about 5 minutes, right? Silly you and me. That took an hour and a half.

In any event, I’m exhausted and ready for bed so today’s post is going to be ultrashort. The other day I wrote about Prot’s post on using --init-directory as an aid in debugging. Serendipitously, I ran across this post about ready-player freezing. The developer, Álvaro Ramírez, asks the user to provide information on his configuration and Emacs version.

This is a perfect example of where Prot’s advice would be useful. The user could easily build and install a temporary init.el to eliminate everything but what’s needed to produce the problem. Doing so might even allow the user to discover the problem on their own.

Posted in General | Tagged | Leave a comment

Disaster At The Bunker

I returned home Wednesday night to discover that the minions, far from guarding the bunker, had been enjoying a nonstop Bacchanalia and that the bunker had been without Internet connectivity for a couple of days. I should have known something was up when I received a notice that my Apple hub had gone offline and I couldn’t see that status of any of my Smart home devices.

I got home exhausted to find that everything was off line, even the TV. The WiFi router showed that it didn’t have access to the Internet although the local WiFi was fine. I called our provider and they couldn’t see the modem either. After the usual power off for 30 seconds dance a couple of times they decided they needed to send out a tech.

The next day the tech came out and said he’d check the cable. He did his thing for about half an hour and the Internet came back. He never came in the house bunker and left without telling me what the problem had been.

Fortunately, he was done by about noon and I was able to push Thursday’s post just as if nothing had happened. The whole thing made we realize how dependent some of us are on the Internet. All of us at the bunker felt completely at sea without the Internet. That’s true even though we still had access via broadband on our iPhones and iPads. I realized that we had, in fact, become cyborgs. We become disoriented when we get disconnected. It’s a trope so familiar it’s almost a cliche, yet it seems to be the truth. Greetings my fellow mechanized humans!

Posted in Blogging, General | Tagged | Leave a comment

Using –init-directory To Debug

The standard advice people get when they complain about some bug or difficulty with Emacs is to restart it with -q or -Q to see if the problem persists. The problem with that advice is that the difficulty may be with a package. In that case you want to load at least the offending package and its configuration. That used to involve moving or renaming your init.el so that you could install the minimal init.el that produced the problem. As of Emacs 29 that got easier with the introduction of the --init-directory parameter that tells Emacs to load it’s configuration from a different directory.

Protesilaos Stavrou (Prot) has a nice post that explains how to use this feature when you experience a problem and want to file a bug report. The main problem, of course, is what to put in your new init.el. Prot recommends using use-package with :ensure t (and whatever configuration you’re using) to load the package.

Sometimes you might have to build the package from source rather than simply loading it from one of the ELPA repositories. Prot discusses how to do this using package-vc-install to grab the source directly from its git repository. He has some sample code showing how to do this.

Finally, he has some general recommendations that you can use to make the developer’s life a bit easier. On the other hand, if you are the package developer, the --init-directory trick can save a lot of time in locating bugs. In either case, take a look at Prot’s post. There’s a lot of good information in it.

Posted in General | Tagged | Leave a comment

Bending Emacs 11: Winpulse

Last week I wrote about Álvaro Ramírez’s new Winpulse package. The purpose of the package is to flash the window receiving focus when you use the other-window command. I wrote that I chose a different solution—changing the color of the mode line—that I felt was better because it provided a lasting indication of the active window.

In his latest Bending Emacs video, Ramírez expounds a bit more on why he chose the solution he did. The main reason appears to be that he sometimes turns off the mode line in some of his windows so my solution obviously wouldn’t work in that situation. Take a look at his video to see his complete argument.

In my previous post on Winpulse, I noted that you could, of course, use both his and my solution. I don’t think that would be worthwhile for me but in his video, Ramírez mentions Pulsar, a package similar to Winpulse that flashes the current line of the buffer getting focus instead of the entire window.

That seems to me a be something I might want to do since it helps locate the point in the new window. As always, Emacs lets you have things exactly the way you want them.

Ramírez and I tend to like the same sorts of things so our disagreement on this issue initially puzzled me. The answer, I think, is that when he switches windows, he just cycles through all the windows in the frame. I, on the other hand, use ace-window that lets me choose the window I want to change to directly. Again, this is a matter of choice but it helps explain why he and I chose different solutions.

The Bending Emacs 11 video is 8 minutes and 45 seconds so it such be easy to find time for it. If you’d like an enhanced way of seeing what window you’re switching to, take a look

Posted in General | Tagged | Leave a comment

Let’s Play How Big Is Your Emacs Config?

Speaking of things that don’t matter at all , over at the Emacs reddit, reddit_enjoyer_47 wants to know how big our init.el files are. Despite my dismissal of the question as of no importance, it turns out that the answers are interesting. The answers range from about 20 lines to about 7,000 lines. For the record, mine is 2527,

Most of the folks with large init files say they have been using Emacs for a long time. That make sense because the files just naturally accrete by adding small pieces that may outlive their usefulness. More importantly, though, long term users tend to adapt Emacs to their individual needs and the usual way of doing that is by adding packages and changing default options.

More interesting to me are users with tiny configurations. It’s hard for me to fathom how you can make good use of Emacs with a configuration that small. A couple of the responders with small inits either listed them or provided a link to it. They appear to be using Emacs as a single purpose editor, usually for coding in a specific language.

Others take pride in having a small config or perhaps consider it some sort of moral necessity. One even set himself a (small) limit an requires himself to refactor his config if it exceeds that limit. That’s fine, I suppose, but it seems to me that it merely serves to limit the usefulness of Emacs.

Posted in General | Tagged | Leave a comment

Writing SF With Emacs, Part 2

Last week, I wrote about Theena Kumaragurunathan’s post on writing Science Fiction with Emacs and how Emacs was the inspiration for the brain computer interface in his latest SF novel. In a followup post, Kumaragurunathan discusses the philosophical and design choices that make Emacs such a great tool for writers like him. He says,

Good UX comes from good design. The former is the harvest that comes
about from sowing in the latter.

He describes the manifestation of that principal in Emacs as,

Emacs feels timeless to me because it made a simple, stubborn choice
early on: let the user shape the tool.

He goes on to describe this as “giving the user agency” and explains how he’s exploited that agency to integrate Emacs with other tools, such as Org-roam and Hyperbole, to build himself a writing environment tailored specifically for him.

As well as being a novelist, Kumaragurunathan is also a screenwriter so he relies on two distinct Emacs modes for his writing:

  1. LaTeX for his manuscripts
  2. Fountain for his screenplays

There is, he says, no other writing environment that can support both long-form writing and screenwriting.

It’s a nice article and well worth spending a few minutes on. His discussion of how Emacs meets his writing needs and the writing environment he’s evolved from it is instructive and entertaining.

Posted in General | Tagged | Leave a comment