A Revival Of Blogs?

John Lampard over at disassociated has a post about the renaissance of
blogging in general and wonders if niche blogs are next
. I was a bit surprised by that because I wasn’t aware that blogs went anywhere.

Perhaps I’ve got a narrow view of things but I’m not aware of there being significantly less blogs than there ever were and almost all of them are what could be called niche blogs in the sense that they mostly deal with a single subject. There are, to be sure, some general newsy blogs—Instapundit comes to mind—but most seem to be focused on a particular subject or at least a narrow range of related subjects.

Certainly Irreal is like that. Most of its posts are about Emacs, followed by those of some other technical subject, and finally a few rants about my favorite hobby horses. Similarly, I have a lot of blogs in my feed that are like that. Their niches are varied: some are about Emacs, some are about Unix, some about computing in general, some are about writing, and some are about a diverse set of things that interest me.

The type of blog that was literally an online diary—today I had a Reuben for lunch—are happily extinct but it seems to me that you can find examples of most other types. What do you guys think? Does it seem to you that blogs have died out and that niche blog especially are a dying art? I don’t think so but as I said, I may have a narrow view of things based on my working on Irreal everyday.

Posted in Blogging, General | Tagged | Leave a comment

Is Markdown Really Holding You Back?

Brian Hogan has a post that I, at least, find provocative. His thesis is that Markdown—and by extension, Org-mode—are holding you back because they’re not semantic. That’s true, in a way, I guess, but both Markdown and Org-mode are Markup languages. That means they’re concerned with producing publishable content: they consider what things look like on the printed page or the screen.

They are, in their way, semantic languages in that they specify what grammatical object is being described. Markdown, and especially Org, can use that information to display the item in a manner appropriate for the output target. Of course, Hogan wants a stronger sense of semantic where the markup describes higher order meanings such as “step in a process” instead of simply “a bullet item”.

The problem is that that always ends in tears. It ends, in short, in abominations like XML. XML is, in fact, what Hogan really wants but even he knows it’s a horrible solution beloved by exactly no one. Still, he says, it’s necessary because otherwise it’s too hard for AI agents and the like to discern the meaning of the markup.

Forgive me for saying that that’s not my problem. My problem is producing a nice looking document that human beings can read, understand, and enjoy. If AI companies want to get rich by training their AI agents on my content, it’s certainly not incumbent on me to make their job easier.

And by the way, why doesn’t Hogan mention Org-mode. It does, after all, meet a lot of his requirements, have a single definition, and allows the easy—for some definitions of easy—specification of backends that can be semantically aware.

So, as Betteridge’s Law of Headlines insists, no, Markdown is not holding us back. I understand Hogan’s views to the contrary and I certainly don’t accuse him of bad faith but I fail to see how Markdown or Org-mode is holding us back in any meaningful way.

Posted in General | Tagged , | Leave a comment

Infix Versus Prefix Operators

Over at the Lisp subreddit, Combinatorilliance asks if there are any studies addressing the question of whether infix or prefix notation is easier to read and understand. There are, of course, fierce partisans on both sides of the question. We certainly hear lots of complaints from the anti-Emacs brigade about how hard Elisp is to read and in particular how prefix notation is an abomination.

I can read either notation with equal facility so I’m not going to enlist in either camp. At the end of the day, I’m pretty sure that it’s just a matter of what you’re used to. That gives the infix camp a huge advantage because, of course, we all learned to do arithmetic that way. But once you’ve used Elisp—or any Lisp—for a while you get used to prefix notation too and mostly don’t care which you’re reading.

I say “mostly” but truth to tell, I slightly prefer prefix. It is, after all, unambiguous and doesn’t require parenthesis that aren’t already there for other reasons. The precedence is always explicit. And an interesting, if anecdotal, data point is that Lisp originally envisioned an eventual infix notation but the original users liked and preferred S-expressions with their prefix notation.

As for Combinatorilliance’s question, it’s far too underspecified as stated. It’s like asking whether English or Italian is easier to read. You’ll get widely different answers if you ask the question in the United States or Italy. To be well-formed, the question would have to be something of the sort, “Do people with equal facility in reading infix and prefix find one or the other easier to read?” You can already see the problems. Now you have to have an reliable of measure of facility in reading the two notations and once you do, the question seems to lose some of it’s interest. Again, it will come down to a matter of preference rather than inherent lucidity.

Most Emacs users in a programming position are going to have to be adept at both notations so the whole thing boils down to just another holy war like Vim versus Emacs.

Posted in General | Tagged , | Leave a comment

🥩 Red Meat Friday: Cloudflare And AWS

I’m sure that every Irreal reader is aware of the recent Internet outages caused by problems at AWS and Cloudflare. Most of those readers also know that things happen. Servers fail, cables break, backhoes wreak havoc, software runs up against implicit boundaries, and human beings make configuration errors. When those things happen, sites can lose their Internet connectivity. When they happen to services like Cloudflare or AWS, lots of sites can be knocked offline.

Cloudflare and Amazon are big companies with an outsize presence. That makes them an irresistible target for some people. Especially people who make their homes under bridges. An unfortunate number of these people are in the tech press which engaged in a feeding frenzy over unfortunate events that are rare but inevitable.

Sadly, even normally temperate folks can be drawn into the fray. Rik Huijzer, for instance, recommends that “ordinary” people not use Cloudflare because it’s a single point of failure. But what are the alternatives? At the end of the day you have to connect to the Internet and that connection point is just as apt to fail—more likely, actually—as Cloudflare or AWS. That’s true even if you self host: problems like this are almost always going to be at the network end.

I was inclined to dismiss the whole brouhaha with a shrug until Miguel Arroz injected a certain amount of rationality into the discussion and made me realize that reasonable people shouldn’t let this nonsense stand unchallenged. Arroz makes a great point: “Their downtimes being so visible is a consequence of their success.”

Posted in General | Tagged | Leave a comment

Destroying Value Wherever They Go

As I’ve said many times, management is a necessary part of any successful business, especially any large business. After all, someone has to set the goals, make all the mundane decisions, and do all the politics that would bore an engineer to death. That said, there’s a certain type of manager—usually coming from the finance side of the business—that are mainly good at destroying companies. They focus on financial metrics such as stock price and almost always have a poorly hidden contempt for those who make whatever it is the company is selling. They are, they believe, the ones in the know. The only ones who know how things work.

The poster child for this is, of course, Boeing where the finance suits turned the world’s premier aircraft manufacturer into a company so bad at making aircraft that many laymen—let alone those in the business—refuse to fly in them.

Another, less drastic example, is Bell Labs. The Labs were a national treasure inventing things like the transistor, lasers, and, of course, Unix. There was much more as I mentioned in this post. That all ended after divestiture. Our national treasure was destroyed almost immediately by the new management. The Labs still exist—sort of—but when was the last time you heard of them doing something spectacular.

Over at The Unix Heritage Society (TUHS), there’s been a recent discussion over where the 20% rule—the policy that employees could spend one day a week working on their own projects—originated. The consensus appears to be that HP had been doing this for years and was probably first. Of course, the discussion soon devolved into the level of control exerted on engineers at various companies.

Rob Pike—one of Bell Labs stars from the old days—chimed in with this post. The gist was that there was little supervision or direction—at least in the Research department—as long as people were delivering value. Pike offers this explanation for why he left:

The main reason I left the Labs was a change in management resulted in
insistence that I work on things of no interest to me, things that didn’t
even align with my skills, and deliver that message to the people reporting
to me. A complete failure to understand what had made the place so
successful.

Ken Thompson expressed similar sentiments in this oral biography:

It had changed; it was really different … You had to justify what you were doing, which is way above my pay grade.

It is, once again, an example of suits being completely oblivious to the value of the treasure entrusted to them and having no idea of what made it so valuable and successful. It’s easy to say that these organizations need close supervision if they’re to be successful and bring value to the company. The Labs reveal that for the nonsense that it is.

Posted in General | Tagged | Leave a comment

Calc As A Desktop App

As I’ve said many times before, I’m a big fan of Emacs Calc. Try as I might, I haven’t been able to master Calc in its entirety. That’s mostly because it has many advanced features that I seldom or never have the need to use.

Regardless, there are a lot of features that I do use. As long as I’m on my laptop, Calc is the only calculator that I use. I can’t remember ever having a calculation, no matter how esoteric, that it couldn’t make. I use it enough that I have it bound to F10 in Emacs.

Thomas Ingram has done me one better. He’s arranged to make Calc a desktop app by having his computer call Calc from anywhere. He does this on Linux by adding a Desktop file that points at Emacs with an --eval command line option asking it to run full-calc. He has a version for those who—inexplicably—don’t run Emacs in server or demon mode and one for those who do.

Living in the Apple ecosystem, as I do, the Desktop file option isn’t open to me but I could do the same thing by using iCanHazShortcut that I use for macOS keyboard macros. Doubtless there are plenty of other ways. Regardless, in either ecosystem or probably any modern OS it’s possible to call Emacs and ask it to run calc.

I always have Emacs running so I probably won’t implement Ingram’s solution unless I find myself often needing Calc when I’m not inside Emacs. As I said, it would be easy to add it to my iCanHazShortcut app if I do. If you don’t spend most of your time in Emacs, as I do, Ingram’s solution may be just what you need to keep Calc at your fingertips.

Posted in General | Tagged , | Leave a comment

A Reminder About org-clone-subtree-with-time-shift

JTR over at The Art Of Not Asking Why has a useful reminder about something that I, at least, always forget about: org-clone-subtree-with-time-shift. The idea is that you have something scheduled on a certain day but want to repeat that event regularly. You can add a repeater to the entry that will repeat it at fixed intervals. For example, if you have a weekly meeting on Friday at 10 AM you can add an entry for that meeting and the repeater +1w and the task will appear every Friday.

You can also clone an entry a given number of times. For example, suppose you have a class everyday at 8 AM for 3 days. You can make an entry for the first day and then use org-clone-subtree-with-time-shift to add two more entries on subsequent days.

Scheduling events with Org mode really is a lot more flexible than you might imagine. The org-clone-subtree-with-time-shift function is an example. You can take an existing entry and clone it any number of times at any given fixed interval. It’s much easier than trying to do this by hand.

There are, of course, some nuances so be sure to take a look at the Docstring for the function.

Posted in General | Tagged , | Leave a comment

Burst-driven Development

Most serious Emacs users are familiar with Bozhidar Batsov. He’s a blogger and the developer/maintainer of several OSS and Emacs projects such as RuboCop, CIDER, Projectile, nREPL, and many others. And, of course, he has a full time job. That brings up a question that Batsov says he is often asked: “How does he find time to work on all these projects?”

He answers that question in a recent post on his (think) blog. The secret, he says, is “burst-driven development”. By that he means that while he may keep an eye on his bigger projects he will only work on one or two at a time in a burst of effort. During those periods, he may work on a project furiously for several days or weeks and then move on to something else. The important thing for him, he says, is to not try to work on several projects in parallel.

This type of schedule may seem less than optimal for project development but Batsov has learned a few things that suggest it’s good enough:

  • Few problems require immediate action
  • There can be times when you don’t have any good ideas for improving a project
  • Sometimes a project is simply mostly done

That last item is especially telling. Often I’ll see complaints about some project saying that it hasn’t had any updates for a long time. But sometimes a project solves the problem it was written to address and there is little to add other than keeping up with OS changes or something of the sort.

In any event, if you want to see how a prolific developer handles his projects, take a look at Batsov’s post.

Posted in General | Tagged | Leave a comment

JTR On Projects In Emacs

JTR over at The Art Of Not Asking Why has a post discussing his current scheme for handling projects in Emacs. It’s a post that discusses the problem that many of have with integrating our Org files across all our devices. JTR, like me, lives in the Apple ecosystem and needs a way of interacting with his Org files from his iPhone and iPad. The situation isn’t any better in the Android world.

For various reasons, JTR has stopped using iCloud for his syncing. I’m sympathetic to his complaints but doubt that any other solution would be an improvement. Servers go down and there are network problems. This happens regardless of what cloud solution you’re using. If you’re fortunate to work from home, you can, of course, arrange to do everything locally, which avoids many of the cloud problems.

Given these realities, JTR has settled on some procedures to ease his workflow. Oddly, most of them don’t involve the networking aspects of his workflow. Rather, he restructured how he arranges his Org files and made all his workflows project oriented. You can read the details in his post and judge whether or not they’ll work for you.

The takeaway is that trying to spread access to your Org files—or more generally, your Emacs files—across all your devices is a difficult problem for which there isn’t a compelling solution. Beorg or Plain Org are nice apps that can help in the Apple domain and there are others for Android but they’re not the same as being in Emacs. In the end, you may have to adjust your Emacs use in some way as JTR did.

Posted in General | Tagged , | Leave a comment

Snippets With Abbrev Mode

I’m a big user of yasnippet. I invoke it several times a day in various contexts. I also use the builtin Emacs abbrev-mode for some simpler text substitutions: “ra” for “→” for instance. Again, I usually use this facility several times a day.

One of the endlessly entertaining things about Emacs is that it’s always surprising you with capabilities you didn’t know about. Just the other day, I learned about delete-pair and have been using it ever since. Today, I learned something else that I had no idea existed. You can use abbrev mode in the same way as yasnippet.

Rahul M. Juliato has a very interesting post about how to use abbrev-mode like yasnippet. It turns out that you can specify a function after the substitution part of the abbrev definition and it will operate on the substituted text.

Juliato first shows a simple function that repositions the point. He uses that to implement source code blocks for Markdown and Org mode. But there are no real restrictions on the function so he shows how to implement replacement placeholders as in yasnippet.

All of this is really interesting but a case can be made that yasnippet can already do this and more easily. The thing is, though, as I said, there are no restrictions on the functions that work on the replacement text so you can do pretty much anything you can imagine. To be sure, you’re going to have to write some Elisp but depending on the application, it may be worth it.

You may never have occasion to use this capability but it’s wonderful to know it’s there.

Posted in General | Tagged | Leave a comment