Making The Case Against Markdown

For some reason, Markdown has not just become the format of choice for giving READMEs in GitHub repositories some flair, but also for writing entire websites and documents. In a recent rant, [Burak Güngör] covers all the ways in which Markdown is a good idea as a basic document formatting concept and how its implementation is absolutely atrocious.

Even without straying into the minefields helpfully provided by other Markdown dialects beyond CommonMark, there is already plenty here to indulge in. The very idea of Markdown as a ‘simple text formatting syntax’ breaks down the moment you look at the available formatting styles and how they translate into HTML. Worse, the sheer complexity of parsing Markdown makes it vulnerable to a regular expression denial-of-service (ReDoS) attack.

This is where the question arises of whether Markdown is truly a text formatting aid or trying to be a programming language that just happens to usually spit out HTML documents, as, at some point, you’re basically writing something that approaches a regular expressions engine in its nightmarish implications.

Continue reading “Making The Case Against Markdown”

Re-Learning How To Run

As I write this, four astronauts are on their way around the moon for the first time in 50 years. A lot us have asked ourselves just exactly why you’d send people out that far when the environment is so hostile and we have increasingly competent robots that could do the jobs in their place. If anything, that’s even more true now than it was back in the day of the Apollo program, when the remote operations capability was a lot more constrained. But having people, potentially in the near future, on the lunar surface remains qualitatively different.

I was recently re-watching some of the footage from Apollo 16 when the astronauts were driving around in the Lunar Roving Vehicle, and the discussions that they’re having about the lunar geology that they can see for the first time with their own eyes is very convincing. Having people in situ tightens the loop of “hey, that’s interesting”, “let’s take a closer look”, and “I wonder what that means” in a way that minutes or hours of transmission time, and sterile observation of photos on a computer monitor just break. In comparison, our Mars rovers move excruciatingly slowly, the data comes back through a very thin pipe, and it takes months or years to analyze.

Of course, there is danger to human life; it’s a lot more expensive to get people safely to, and importantly back from, the moon than it would be with a disposable robot. Comparison with the Mars rovers is also unfair because travel to Mars is another scale entirely. Even if it does make sense to send humans for exploration on the moon, it may not make sense to do the same on the red planet, in the near future or ever. Given all that, I’m stoked that we can see through the robots eyes, but if all else were equal, I’m sure that we’d learn more from human explorers.

While in a lot of ways the Artemis I and now the Artemis II missions are underwhelming in comparison to the many “firsts” of Apollo, I absolutely appreciate them for what they are: a shakedown trial of a set of technologies and practices that we used to grasp, but which have atrophied over the last five decades. If a new generation of scientists is to put feet onto regolith, we need to learn to walk before they can run, or rover. In that spirit, I’ll be crossing my fingers for the future of manned spaceflight over the next week and a half.

Ask Hackaday: Using CoPilot? Are You Entertained?

There’s a great debate these days about what the current crop of AI chatbots should and shouldn’t do for you. We aren’t wise enough to know the answer, but we were interested in hearing what is, apparently, Microsoft’s take on it. Looking at their terms of service for Copilot, we read in the original bold:

Copilot is for entertainment purposes only. It can make mistakes, and it may not work as intended. Don’t rely on Copilot for important advice. Use Copilot at your own risk.

While that’s good advice, we are pretty sure we’ve seen people use LLMs, including Copilot, for decidedly non-entertaining tasks. But, at least for now, if you are using Copilot for non-entertainment purposes, you are violating the terms of service.

Continue reading “Ask Hackaday: Using CoPilot? Are You Entertained?”

Age-Verification And The World Before Social Media

Although it may be hard to believe for current generations, there was a time when the Internet and the World Wide Web were not as integrated into society as it is today. The only forms of online ‘social media’ that existed came in the form of IRC, forums, BBSes, newsgroups and kin, while obtaining new software for your PC involved generally making your way over to a physical store to buy a boxed copy, at least officially.

In this era – and those before it – age-verification already existed, with various goods ranging from tobacco and alcohol to naughty adult magazines requiring you to pass some form of age check. Much like how movies also got age-gated, so did video games, with a sales clerk taking a very good look at you before selling you that naughty puzzle game or boxed copy of Quake 3.

Today we’re seeing a big fuss being made about online age-verification, with the claim being that it is ‘for the children’, but as any well-adjusted adult can attest to, this is essentially a big bucket of hogwash.

Continue reading “Age-Verification And The World Before Social Media”

The Unreasonable Power Density Of Lithium-Ion

We’re all used to it by now, but I’d just like to reflect on how insanely power-packed lithium ion batteries are, and everything that’s afforded us. I’m trying to think of a gadget, a hobby, or nearly anything in my house that’s not touched by the battery chemistry.

I’m looking at my portable wireless keyboard in front of me, with a LiPo pack inside. Oddly enough, I’m charging it with a LiPo-based power bank, simply because the cable to the nearest USB-C adapter is too short. A gaming console, cell phone, and a DSLR camera are all within arms reach and powered with lithium.

It’s not just consumer stuff either. I fly FPV quads and airplanes for fun when I can, and of course those are made entirely possible by the combination of smaller brushless DC motors and their drivers, and the high-power-density LiPo packs that power them. For field recharging, I have a huge self-made LiIon pack that can keep them all in the air all day. These days, LiPo and LiIon tech is the heart of hacker projects big and small. Heck, we even powered this year’s Hackaday Supercon badge with a LiPo that allowed it to run all weekend on a charge for many folks, where in the past swapping out AAs during the event was commonplace.

The application that still blows my mind is that we recently got a solar installation on our roof, which means a huge LiFePO battery in the basement. And while it’s one thing to power noisy little quads on the battery tech, it somehow seems another to power our entire house, for multiple hours per day, from a battery. Granted it’s not a couple of AAA cells in a little black plastic box, but it’s simply amazing to run a washing machine, the fridge, the stove, and even the heating off of what amounts to a battery pack.

Of course, I’m aware of the costs of producing the cells, both in terms of money and the environmental damage. It’s not a free lunch, and I’m looking forward to both cleaner and cheaper energy storage chemistries in the future. But for now, I’m still in awe of the many options that lithium-based battery chemistry has brought us. May your pillows remain non-spicy!

What Is A Computer?

On the podcast, [Tom] and I were talking about the new generation of smartphones which are, at least in terms of RAM and CPU speed, on par with a decent laptop computer. If so, why not just add on a screen, keyboard, and mouse and use it as your daily driver? That was the question posed by [ETA Prime] in a video essay and attempt to do so.

Our consensus was that it’s the Android operating system holding it back. Some of the applications you might want to run just aren’t there, and on the open side of the world, even more are missing. Is the platform usable if you can’t get the software you need to get your work done?

But that’s just the computer-as-a-tool side of the equation. The other thing a computer is, at least to many of our kind of folk, is a playground. It’s a machine for experimenting with, and for having fun just messing around. Android has become way too polished to have fun, and recent changes on the Google side of things actively prevent you from installing arbitrary software. The hardware is similarly too slimmed-down to allow for experimentation.

Looking back, these have been the same stumbling blocks for the last decade. In 2018, I was wondering aloud why we as a community don’t hack on cell phones, and the answer then was the same as it is now – the software is not friendly to our kind. You can write phone apps, and I have tried to do so, but it’s just not fun.

The polar opposites of the smartphone-as-computer are no strangers in our community. I’m thinking of the Linux single-board computers, or even something like a Steam Deck, all of which are significantly less powerful spec-wise than a flagship cell phone, but which are in many ways much more suitable for hacking. Why? Because they make it easy to do the things that we like to do. They’re designed to be fun computers, and so we use them.

So for me, a smartphone isn’t a computer, but oddly enough it’s not because of the hardware. It’s because what I want out of a computer is more than Turing completeness. What I want is the fun and the freedom of computering.

Choice, Control, And Interruption

We were talking about [Maya Posch]’s rant on smartphones, “The Curse of the Everything Device”. Maya’s main point is that because the smartphone, or computer, can do everything, it’s hard for a person to focus down and do one thing without getting distracted, checking their whatever feed, or getting an important push notification about the Oscars. She was suggesting tying your hands to the mast by using a device that can only accommodate the one function, like a dedicated writing tool or word processor.

[Kristina Panos] compared the all-singing, all-dancing black rectangle to an everything-device of old: the all-in-one stereo receiver with built-in tape player, record player, and not just FM, but also AM radio receiver. The point being, the hi-fi device also does a whole lot of things but isn’t similarly cursed. The tape player never interrupts your listening to the AM radio station. When the record is over, it doesn’t swap over to FM. Your agency is required.

Similarly, it’s probably not intrinsically problematic that the smartphone has a camera, a web browser, text messages, and heck even a telephone built in. It’s how they interact with each other and the user, each vying for user attention, and interrupting with popups and alarms. It’s maybe a simple matter of software! (Says the hardware guy.)

Where would a distraction-free, but fully featured, phone begin? With the operating system? It would be perverse to limit you to one app at a time, or to make switching between them more cumbersome. How about turning off notifications, and relying on changing context only when you think about it? Maybe that’s a middle ground. How do you cope with the endless distractions offered to you by your smartphone? By your main computer?