Hacker Newsnew | past | comments | ask | show | jobs | submit | chrismorgan's commentslogin

In Telugu, k is one of the smoother letters: కి (ki: the squiggle at the top is the i vowel sign).

https://chrismorgan.info/

Come back next week, and that should all be archived (preserving all content and links) and a new site in a completely different direction begun. A pure-CSS 3D space. Lots of handwriting. A synthesised pipe organ. And lots more, over time.


Telling humans and computers apart was never the purpose of CAPTCHAs, only how they initially worked. The name has been a complete misnomer for at least a decade now. Its actual purpose is, and has always been, abuse prevention. Has it been successful? Some yes, some no, and a lot of collateral damage. Its mode of operation now looks a lot like inscrutable blacklisting for some plus inconvenience and bad rate limiting for the rest.

> was never the purpose of CAPTCHAs,

TCHA of CAPTCHA is literally "tell computer human apart"


You ignored the emphasis and the rest of the sentence. And the rest of the comment.

(Also, the T was nominally Turing rather than telling.)


How does a human abuse a website, and how does a CAPTCHA stop a human from abusing a website when it's designed to let a human in? If it doesn't stop humans from abusing the site, then it must stop... computers from abusing the site. And it stops computers by using the CAPTCHA to tell apart a human and a computer? Am I wrong here?

I can tell you don’t live in a network Cloudflare hates.

I get hit with them all the time. That doesn't answer how does a human abuse a website? Hitting F5 on the keyboard 1000 times?

Abuse isn’t just about inducing CPU or network traffic load (in fact I doubt that was even considered when CAPTCHA was first invented). It’s spam, fraud, that kind of thing. A lot of it is bot-perpetrated, but quite a bit is by humans too.

> By stashing infrequently-used items in a command bar like this, […] You don’t need to add that extra toolbar or layer of menu items.

I’m concerned, from this description, about people putting features only in a command palette, and rendering features completely undiscoverable.

This is one of the big problems of Windows’ Start Menu ever since Vista. In XP, you could find all your programs easily. Vista kinda hid them, and Windows 8 hid them a little more, and 11 hid them a lot more. They’re still there, but honestly difficult to find.

So please make sure your features are still discoverable.

Also remember that a lot of users are shockingly bad at typing. Command bars are a power user feature.


This is one of the reasons why I’m a super fan of the macOS global menubar.

It’s always present and cannot be hidden by app developers, and so there’s no reason to not populate it, and thus the menubar serves as a consistently available master index of the program’s functions. That alone makes it invaluable.


Those who undervalue this don’t realise that the Mac menu bar is also the standard mechanism for defining keyboard shortcuts; as long as it has an entry in the menu bar, it can have keyboard shortcuts assigned and even reassigned from System Settings.

There’s incentive for the menu bar to be properly populated with all the functions that a program offers. Mac users expect it.

Compare with non-standard Mac apps (mainly Electron apps or ports from other OS), modern Windows apps, and many Linux apps where the menu bar is often a second class citizen or completely absent, leaving you to the whims of the developer rather than enjoying conformance to a system-wide standard.


Yep. Nothing screams “phoned in” like a Mac app with an empty menubar.

And nothing screams "has never had the pleasure" like a Windows or Linux user who says "who cares if there's no menu bar?" ;-)

I’m extremely disappointed Ubuntu gave up on Unity. It had the same basic concept, and menus being searchable was so good. GNOME’s determined direction (Adwaita) is so dumb for anything but small, simple apps. Just hopelessly bad.

Mind you, app-defined command palettes can be better than a global one because they can provide more information and context and augment it with other widgets as appropriate. The best command palettes are not just a searchable version of the menu, they add more.


I think probably app-defined palettes and a global menu is best possible combo.

The app-defined palette enables more rich functionality as you’ve mentioned, while the system-owned global menu provides a consistent way to see everything an app is capable of without hunting and pecking through the palette. The menu also serves as a unified API for assistive and automation technology to interact with software and allows users to choose how the menus are displayed (don’t like a top-aligned menubar? Cool, your desktop can present it as window attached menus, a pie menu, or NeXT style floating menus or anything else you can imagine).


Years ago I got a Surface Book. By the end of its three year warranty, I was on my fourth unit: the first was replaced after almost two years due to a couple of broken keycaps (left Ctrl, and S or D was most of the way to split), minor battery bulging, some screen discolouration at the bottom edge, and there had also been slowly increasing connectivity issues between keyboard part and top part; the second was BSODing from the start, basically DOA; and the third stopped recognising the top part’s battery after nine months. The fourth unit was in poor shape by the time it was two years old (similar issues to the first unit), I replaced it before it was three, and a couple of years later when I tried to start it it wouldn’t finish booting. The power brick had developed issues over time too.

For what I wanted at the time, all that was acceptable. But as a first-generation product of a new category, I wouldn’t have tried it without that three year warranty. There were bound to be issues.


> I don't know who actually likes curly quotes

For reading, I don’t know who prefers straight quotes.

For writing—

There are more than a few people on HN who deliberately type curly quotes and other non-ASCII punctuation, due to a strong preference for them. I’m one of them.

I use Compose sequences: ; ; for left single quote, : : for left double, ' ' for right single, " " for right double.

(Accordingly, I hate being subjected to automatic curlification, partly because it’s not always correct, but more because if I typed ' or " you better believe I meant ' or ".)


> Multi-level lists, annoyingly, get rendered as code at the deeper levels because of the 4+ spaces from the beginning of the line.

Not so. You just need to be principled with your indentation, adding four spaces or one tab for every level of nesting.

  1. Here is a thing.

      - See, it works.

          Nothing is amiss.

  2.  If you want to align everything…

      -   Then it looks like this.

          Then it doesn’t seem so weird.
(You can leave or remove the two spaces of HN code formatting; zero to three spaces don’t matter.)

I’m pretty sure many Markdown implementations would turn this into a code block. Unfortunately Babelmark seems to currently be broken so I can’t test it.

The original spec says it should work, and it does with <https://daringfireball.net/projects/markdown/dingus>, as with <https://spec.commonmark.org/dingus/>.

Slack messages are formatted in mrkdwn <https://docs.slack.dev/messaging/formatting-message-text/#ba...>. Completely unrelated to Markdown, superficial resemblance only. If there were trademarks in play you’d absolutely attack them for trademark infringement.

But what you type isn’t even mrkdwn, but rather an input mode that supports most of the same syntax.


“Markdown” is a family of writing formats. There is no one “Markdown”. It’s completely unsuitable for direct inclusion in the web platform.

Related reading: https://www.rfc-editor.org/rfc/rfc7763.html text/markdown registration.


The overlap between these Markdown formats is actually larger than with many other formats. Possibly even larger than HTML’s overlap back when MS Explorer was the dominant browser.

> Possibly even larger than HTML’s overlap back when MS Explorer was the dominant browser.

No way. You were never left in doubt about whether a normal HTML tag would work, or whether tables were available or would become a jumbled illegible mess, or whether a line break in the source would become a space or a hard break. And that’s just the first three things that occur to me.


You have to be willingly ignoring CommonMark, these days.

I understand it doesn't have all the extensions one might hope, but to not parse the basics like the examples in the spec say is just doing everyone a disservice.


The history told here has many errors and omissions and, I would say, paints a misleading picture.

Markdown did not come up with the idea of lightweight markup languages (LMLs). It just happened to become the most popular one, for reasons that the article doesn’t really address. There were other LMLs before and after Markdown. (It does mention Textile later on, but doesn’t mention that there were a number of others, and that it was a field that had been steadily developing.)

> What if you could just write out the text and then the link, sort of like you might within an email? Like: [Anil Dash’s blog](https://anildash.com)!

No one would ever have spelled it like that. It would rather have been either “Anil Dash’s blog (https://anildash.com)” or “Anil Dash’s blog <https://anildash.com>”.

> If mark_up_ is complicated, then the opposite of that complexity must be… markd_own_.

I’m guessing this was intended to have actual italics. (Clearly it wasn’t checked after writing, or else the third underscore would have been shifted before the d.) This shows one of the problems of Markdown. (“_anti_commercial” later has the same problem.) Also why you should prefer * for italics rather than _ when writing Markdown, because in CommonMark it allows you to mark up partial words. Throw away Prettier’s Markdown formatting, by the way, it’s terrible and if you’re not careful may destroy your content, and it insists on underscore for italics.

> Hitting the Mark

> [Stuff about Markdown becoming supported by Google Docs, Microsoft Notepad, Slack, WhatsApp, Discord, Apple Notes.]

A lot of this is wrong:

• What most of them have added is an input mode for their WYSIWYG editor which is best expressed as inspired by Markdown. If you want to actually deal in Markdown, they are always infuriatingly incomplete and incompatible. At best (and it’s never even that good) you’re only typing Markdown, not editing Markdown.

• What most of the rest of them have is a lightweight markup language only superficially similar to Markdown. Slack’s mrkdwn and WhatsApp’s formatting are this.

> The Ten Technical Reasons Markdown Won

I’ll grant 1 as valid but non-technical. 2 as valid for Markdown and less valid for other LMLs for reasons that I’ll get into shortly. 3 as valid for Markdown but also some other LMLs that already existed. 4 as valid and somewhat technical. 5 I won’t grant as distinct from 4. 6… well, the key there is actually that correctness isn’t as important as some of us would like. The flavours part of it was more a building up of technical debt. 7, 8, 9 and 10 I will not grant as reasons that Markdown won—several other LMLs already existed with the same benefits.

But it really misses out on the big reason, though 2 and 6 nudge on it:

Markdown won because it was simple, and extended HTML. It was horribly underspecified and all early implementations were all awfully buggy, inconsistent and incompatible, but it was simple and we didn’t care so much about those problems in those days (for better or for worse). People could implement Markdown themselves in an hour or two.

Nowadays, people familiar with Markdown will look baffled at some of reStructuredText’s syntaxes, but at the time I’d say Markdown and reStructuredText were similarly weird, just in different areas. When getting away from things like BBCode which was almost just HTML with square brackets, and Textile which had more idiosyncratic spellings (I mean things like “bq. ” where email had “> ” on every line), reStructuredText and Markdown were about equal.

reStructuredText is way more technically sound. It’s more capable than Markdown, and there’s none of the wild and incompatible fragmentation. But reStructuredText is heavy to implement, and if you only care about outputting HTML and only for yourself, it’s actually harder to extend—you’ll have to define a node type and extend the writer to know what to do with it, or else use the “raw” directive or role. Whereas with Markdown, you just wrote HTML and hoped for the best. Because Markdown was such a mess. But you’d get it right faster than in reStructuredText.

It’s no coincidence that there’s only one major implementation of each of reStructuredText and AsciiDoc, and only three or four total for each. They were designed for bigger, heavier things. Markdown was designed for simplicity at the cost of correctness… just like HTML was.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: