Threads for roryokane

  1.  

    The article mentions that “a Robin-hood style hash table” could improve performance. That data structure is interesting, but the linked article doesn’t explain it very well. I found a better explanation here: Robin Hood Hashing – Programming.Guide

    1. 3

      Please run a spellcheck on the content. There’s a few words that look like many cosmic rays got them :-)

      I was looking in the archive for the reason for the change and found this: https://www.feoh.org/posts/i-love-you-pelican-but-im-struggling.html

      Also, the result on Firefox mobile is not great. It’s like some sizing / padding / centring CSS is missing: https://postimg.cc/30hX7Nrm

      1. 4

        Thanks for the reports all.

        I’d installed “Code Spell Checker” on VSCode but it hadn’t enabled. What an embarrassing spelling horror show :) Fixed.

        I also dropped back to the default Nikola theme. I liked the ‘soft’ aesthetic of the one I’d picked, but looking awful on mobile is a non starter in so many ways.

        This theme looks pretty good on my iPhone!

        Thanks again for all the feedback. Super appreciate it.

        1. 2

          I can confirm that the current theme looks good in Firefox for Android. I do see two remaining spelling errors:

          • In “sme of the marketing”, “sme” should be “some”.
          • Whenever the language is mentioned, “Javascript” should be “JavaScript”.
          1. 1

            Fixed. An important distinction. Thanks for the report.

        2. 2

          I’m seeing the same css issues in iOS safari.

        1. 14

          I’m very curious how these companies address the fact that there are countries where smartphones are not universally owned (because of cost, or lack of physical security for personal belongings).

          1. 8

            At least Microsoft has multiple paths for 2FA - an app, or a text sent to a number. It’s hard to imagine them going all in on “just” FIDO.

            Now, as to whether companies should support these people - from a purely money-making perspective, if your customers cannot afford a smartphone, maybe they’re not worth that much as customers?

            A bigger issue is if public services are tied to something like this, but in that case, subsidizing smartphone use is an option.

            1. 24

              if your customers cannot afford a smartphone, maybe they’re not worth that much as customers?

              I had a longer post typed out and I don’t think at all you meant this but at a certain point we need to not think of people as simply customers and begin to think that we’re taking over functions typically subsidized or heavily regulated by the government like phones or mail. It was not that long ago that you probably could share a phone line (telcos which were heavily regulated) with family members or friends when looking for a job or to be contacted about something. Or pay bills using the heavily subsidized USPS. Or grab a paper to go through classifieds to find a job.

              Now you need LinkedIn/Indeed, an email address, Internet, your own smartphone, etc. to do anything from paying bills to getting a job. So sure if you’re making a throwaway clickbait game you probably don’t need to care about this.

              But even this very website, do we want someone who is not doing so well financially to be deprived of keeping up with news on their industry or someone too young to have a cellphone from participating? I don’t think it is a god-given right but the more people are not given access to things you or I have access to, the greater the divide becomes. Someone who might have a laptop, no Internet, but have the ability to borrow a neighbor’s wifi. Similarly a family of four might not have a cell phone for every family member.

              I could go on but like discrimination or dealing with people of various disabilities it is something that’s really easy to forget.

              1. 15

                I should have been clearer. The statement was a rhetorical statement of opinion, not an endorsement.

                Viewing users as customers excludes a huge number of people, not just those too poor to have a computer/smartphone, but also people with disabilities who are simply too few to economically cater to. That’s why governments need to step in with laws and regulations to ensure equal access.

                1. 11

                  I think governments often think about this kind of accessibility requirement exactly the wrong way around. Ten or so years ago, I looked at the costs that were being passed onto businesses and community groups to make building wheelchair accessible. It was significantly less than the cost of buying everyone with limited mobility a motorised wheelchair capable of climbing stairs, even including the fact that those were barely out of prototype and had a cost that reflected the need to recoup the R&D investment. If the money spent on wheelchair ramps had been invested in a mix of R&D and purchasing of external prosthetics, we would have spent the same amount and the folks currently in wheelchairs would be fighting crime in their robot exoskeletons. Well, maybe not the last bit.

                  Similarly, the wholesale cost of a device capable of acting as a U2F device is <$5. The wholesale cost of a smartphone capable of running banking apps is around $20-30 in bulk. The cost for a government to provide one to everyone in a country is likely to be less than the cost of making sure that government services are accessible by people without such a device, let alone the cost to all businesses wanting to operate in the country.

                  TL;DR: Raising people above the poverty line is often cheaper than ensuring that things are usable by people below it.

                  1. 12

                    Wheelchair ramps help others than those in wheelchairs - people pushing prams/strollers, movers, emergency responders, people using Zimmer frames… as the population ages (in developed countries) they will only become more relevant.

                    That said, I fully support the development of powered exoskeletons to all who need or want them.

                    1. 8

                      The biggest and most expensive problem around wheelchairs is not ramps, it’s turn space and door sizes. A wheelchair is broader (especially the battery-driven ones you are referring to) and needs more space to turn around than a standing human. Older buildings often have too narrow pathways and doors.

                      Second, all wheelchairs and exoskeletons here would need to be custom, making them inappropriate for short term disability or smaller issues like walking problems that only need crutches. All that while changing the building (or building it right in the first place) is as close to a one-size-fits-all solution as it gets.

                      1. 5

                        I would love it if the government would buy me a robo-stroller, but until then, I would settle for consistent curb cuts on the sidewalks near my house. At this point, I know where the curb cuts are and are not, but it’s a pain to have to know which streets I can or can’t go down easily.

                      2. 7

                        That’s a good point, though I think there are other, non-monetary concerns that may need to be taken into account as well. Taking smartphones for example, even if given out free by the government, some people might not be real keen on being effectively forced to own a device that reports their every move to who-knows-how-many advertisers, data brokers, etc. Sure, ideally we’d solve that problem with some appropriate regulations too, but that’s of course its own whole giant can of worms…

                        1. 2

                          The US government will already buy a low cost cellphone for you. One showed up at my house due to some mistake in shipping address. I tried to send it back, but couldn’t figure out how. It was an ancient Android phone that couldn’t do modern TLS, so it was basically only usable for calls and texting.

                          1. 2

                            Jokes aside - it is basically a requirement in a certain country I am from; if you get infected by Covid you get processed by system and outdoors cameras monitor so you don’t go outside, but to be completely sure you’re staying at home during recovery it is mandatory to install a government-issued application on your cellphone/tablet that tracks your movement. Also some official check ups on you with videocalls in said app to verify your location as well several times per day at random hours.

                            If you fail to respond in time or geolocation shows you left your apartments you’ll automatically get a hefty fine.

                            Now, you say, it is possible to just tell them “I don’t own a smartphone” - you’ll get cheap but working government-issued android tablet, or at least you’re supposed to; as lots of other things “the severity of that laws is being compensated by their optionality” so quite often devices don’t get delivered at all.

                            By law you cannot decline the device - you’ll get fined or they promise to bring you to hospital as mandatory measure.

                        2. 7

                          Thank you very much for this comment. I live in a country where “it is expected” to have a smartphone. The government is making everything into apps which are only available on Apple Appstore or Google Play. Since I am on social welfare I cannot afford a new smartphone every 3-5 years and old ones are not supported either by the appstores or by the apps themselves.

                          I have a feeling of being pushed out by society due to my lack of money. Thus I can relate to people in similar positions (larger families with low incomes etc.).

                          I would really like more people to consider that not everybody has access to new smartphones or even a computer at home.

                          I believe the Internet should be for everyone not just people who are doing well.

                      3. 6

                        If you don’t own a smartphone, why would you own a computer? Computers are optional supplements to phones. Phones are the essential technology. Yes, there are weirdos like us who may choose to own a computer but not a smartphone for ideological reasons, but that’s a deliberate choice, not an economic one.

                        1. 7

                          In the U.S., there are public libraries where one can use a computer. In China, cheap internet cafés are common. If computer-providing places like these are available to non-smartphone-users, that could justify services building support for computer users.

                          1. 1

                            In my experience growing up in a low income part of the US, most people there now only have smartphones. There most folks use laptops in office or school settings. It remains a difficulty for those going to college or getting office jobs. It was the same when I was growing up there except there were no smartphones, so folks had flip phones. Parents often try and save up to buy their children nice smartphones.

                            I can’t say this is true across the US, but for where I grew up at least it is.

                            1. 1

                              That’s a good point, although it’s my understanding that in China you need some kind of government ID to log into the computers. Seems like the government ID could be made to work as a FIDO key.

                              Part of the reason a lot of people don’t have a computer nowadays is that if you really, really need to use one to do something, you can go to the library to do it. I wonder though if the library will need to start offering smartphone loans next.

                            2. 5

                              How are phones the “essential technology”? A flip phone is 100% acceptable these days if you just have a computer. There is nothing about a smartphone that’s required to exist, let alone survive.

                              A computer, on the other hand, (which a smart phone is a poor approximation of), is borderline required to access crucial services outside of phone calls and direct visits. “Essential technology” is not a smartphone.

                              1. 2

                                There’s very little I can only do on a computer (outside work) that I can’t do on a phone. IRC and image editing, basically. Also editing blog posts because I do that in the shell.

                                I am comfortable travelling to foreign lands with only a phone, and relying on it for maps, calls, hotel reservations, reading books, listening to music…

                                1. 1

                                  The flip phones all phased out years ago. I have friends who deliberately use flip phones. It is very difficult to do unless you are ideologically committed to it.

                                2. 3

                                  I’m curious about your region/job/living situation, and what about is making phones “the essential technology”? I barely need a phone to begin with, not to mention a smartphone. It’s really only good as a car navigation and an alarm clock to me.

                                  1. 1

                                    People need to other people to live. Most other people communicate via phone.

                                    1. 1

                                      It’s hardly “via phone” if it’s Signal/Telegram/FB/WhatsApp or some other flavor of the week instant messenger. You can communicate with them on your PC just as well.

                                      1. 4

                                        I mean I guess so? I’m describing how low income people in the US actually live, not judging whether it makes sense. Maybe they should all buy used Chromebooks and leech Wi-Fi from coffee shops. But they don’t. They have cheap smartphones and prepaid cards.

                                        1. 2

                                          You can not connect to WhatsApp via the web interface without a smartphone running the WhatsApp app, and Signal (which does not have this limitation) requires a smartphone as the primary key with the desktop app only acting as a subkey. I think Telegram also requires a smartphone app for initial provisioning.

                                          I think an Android Emulator might be enough, if you can manually relay the SMS code from a flip phone, maybe.

                                    2. 2

                                      You’re reasoning is logical if you’re presented a budget and asked what to buy. Purchasing does not happen in a vacuum. You may inherit a laptop, borrow a laptop, no longer afford a month to month cell phone bill, etc. Laptops also have a much longer life cycle than phones.

                                      1. 4

                                        I’m not arguing that this is good, bad, or whatever. It’s just a fact that in the USA today if you are a low income person, you have a smartphone and not a personal computer.

                                  1. 4

                                    This parse ambiguity is similar to the ambiguity exploited by the recently-discussed rubygems CVE-2022-29176, though the article reports discovering the Python issue independently. The problem in both cases is looking up a package by the concatenated string {name}-{version} instead of by the name and the version separately.

                                    1. 2

                                      Yeah, these kinds of parsing ambiguities can be extremely pernicious! As best I can tell no modern Python packaging tools will be confused by the “vexing parse” here, but it’s possible that older tooling could be confused into installing package-someversion==suffix instead of package==someversion-suffix.

                                    1. 1

                                      Related links:

                                      The “tl;dr” section from the advisory:

                                      A bug allowed anyone to yank certain gems and upload different files with the same name, same version number, and different platform. To verify your own app, check your Gemfile.lock history for changes that keep the same name and version number but add or change a platform. We have patched the bug, and found no malicious code uploaded using this vulnerability in the last 18 months of gem yanks and pushes.

                                      1. 2

                                        Develop a design intuition

                                        I think the book Refactoring UI is quite helpful for this. It has many examples of UI before and after various tweaks, demonstrating the effects of changes such as rotating a hue in a gradient or adding a second, smaller drop shadow to represent ambient light.

                                        1. 15

                                          2FA/MFA became so annoying I’m now meaning to get an android emulator running just to get these passcodes. I’m sick of having to grab my phone, unlock it, open some app or wait for a text, rush to type it in before it resets etc. Such a huge pain in the ass.

                                          1. 10

                                            1Password includes TOTP for mimicking 2FA. Bitwarden does as well, but it’s a bit clunkier.

                                            1. 10

                                              It’s not really “mimicking” — it’s a TOTP app generating codes the same way as any other TOTP app.

                                              1. 13

                                                It’s mimicking that there is a second factor, which often times implies a second, isolated piece of hardware

                                              2. 10

                                                KeepassXC, a non-subscription-based open source password manager, supports TOTP too.

                                              3. 6

                                                It took me a little while to get used to remembering my Yubikey, but that’s been pretty great for me. I have one that’s USB-C on one end and Apple Lightning on the other. Also, if I’d switch to a Chromium-based browser, I could use the Mac’s Touch ID for 2FA (Firefox on Mac doesn’t support it, though).

                                                Disclosure: GitHub employee, but not involved with this security effort.

                                                1. 4

                                                  On Windows, you can use a TPM and on iOS / Android you can use their credential manager (which is secure on iOS and may or may not be secure on Android depending on how much of a cheapskate the handset manufacturer was). GitHub has done a fantastic job on making this usable. I haven’t used a password with GitHub for a few years for anything other than adding a new device.

                                                  Disclosure: Microsoft employee, but not working directly with GitHub on anything, just a very happy user (of everything except their complete misunderstanding of the principles of least privilege and intentionality in their application of the Zero Trust buzzword).

                                                2. 4

                                                  keepassxc allows storing 2FA tokens

                                                  1. 3

                                                    you can use oathtool to generate them directly

                                                    1. 2

                                                      Buy a USB-A U2F key and leave it permanently plugged into the computer

                                                      1. 1

                                                        Store TOTP secret somewhere (I have it in Bitwarden, it allows me to also generate tokens directly through official clients) and run it through oauthtool to generate singe use token. On my setup I can generate & paste a token with ydotool with a single key stroke.

                                                        1. 1

                                                          2FA on GitHub rarely shows up; I do have it enabled, and I pretty much don’t need to enter a second factor through daily usage. It’s the same as 2FA with Google, which is rarely needed through daily usage. It’s pretty much for sensitive operational changes to accounts (repos in this case I guess), logging in from new devices, or from a device that hasn’t been used in a while. Other platforms are a bit more annoying, for sure, but I feel GitHub gets the balance right in this regard. I’m actually surprised they’re making it almost 1.5 years away of enforcing though… that seems a bit too long IMO.

                                                          1. 1

                                                            My OnlyKey covers FIDO2 and TOTP inputs with easy. It came with a keychain so it stays right next to my home key and my motorbike key so it’s hard to forget about it.

                                                            Passsword Store on syncing between Linux and Android has worked well aditionally and the OTP plugin covers that aspect as well.

                                                            1. 1

                                                              I have a template Perl script I use for TOTP. I copy it over and put in the new key, and run it from the shell to get a TOTP code. I try very hard not to let them use my phone for this.

                                                              1. 1

                                                                I try very hard not to let them use my phone for this.

                                                                Why though?

                                                                1. 1

                                                                  If I lose my phone, I’m potentially screwed, depending on what recovery mechanisms there are. But I can back up a Perl script and store it securely.

                                                                  1. 1

                                                                    you can back-up the QR code from the TOTP app too. Also github gives you backup codes to print out.

                                                            1. 19

                                                              Scrollbars on Linux and Windows 11 won’t take space by default.

                                                              Can we please stop this (ever-continuing) trend? I originally thought auto-hiding scrollbars were a cool design trick until I realized just how much a scrollbar adds to UX: it’s a permanently visible representation of how big a document is, and how far along in it I am.

                                                              Another release, yet more Firefox UI/UX changes seemingly just for the sake of change (which I guess is also the state of the modern web, in many ways, so it’s somewhat fitting).

                                                              1. 11

                                                                What I find interesting is they admit it harms accessibility - that’s why you can turn it back on under accessibility options.

                                                                Why do we find it acceptable for gratuitous inaccessibility by default instead of vice versa?

                                                                1. 1

                                                                  they admit it harms accessibility

                                                                  Here, “they” is Windows, not Firefox. It is Windows that categorized scrollbar visibility as an accessibility option.

                                                                  On Windows, Firefox follows the system setting (System Settings > Accessibility > Visual Effects > Always show scrollbars).

                                                                2. 6

                                                                  I’m not sure about Windows/Linux, but on macOS you can just rest two fingers on the trackpad to make the scrollbar in the current app visible. You don’t have to scroll the app, just rest your fingers on the trackpad.

                                                                  And when you connect a non-Apple mouse to a Mac, the scrollbars become permanently visible by default.

                                                                  Because of this, I haven’t found auto-hiding scrollbars to be a usability issue at all.

                                                                  1. 5

                                                                    On Mac you can also toggle scroll bars back on for all apps in the system preferences, which is what I do

                                                                    1. 2

                                                                      You don’t have to scroll the app, just rest your fingers on the trackpad.

                                                                      Seems to be app specific, because this works in Firefox 100 but not in Chrome 101.

                                                                  1. 1

                                                                    Impressive amount of work, and nice to see that unlike other custom editors they kept Input Methods working.

                                                                    1. 1

                                                                      You can probably thank CodeMirror for that feature, as the HTML elements for natto’s code editors have the class “cm-editor”.

                                                                    1. 17

                                                                      On the one hand, I totally get the value of a lack of a build step. Build steps are annoying. On the other hand, authoring directly in HTML is something I am perfectly happy to do as little of as possible. It’s just not a pleasant language to write in for any extended amount of time!

                                                                      1. 20

                                                                        I’m pretty convinced that Markdown is the local maxima for the “low effort, nice looking content” market.

                                                                        1. 10

                                                                          Agreed. ASCIIDoc, reStructuredText, LaTeX, and other more-robust-than-Markdown syntaxes all have significantly more power but also require a great deal more from you as a result. For just put words out, Markdown is impressively “good enough”.

                                                                          1. 4

                                                                            I can never remember Markdown syntax (or any other wiki syntax for that matter), while I’m fairly fluent in HTML, and I’m not even a frontend dev. HTML also has the advantage that if some sort of exotic markup is necessary, you know it’s expressble, given time and effort.

                                                                            1. 7

                                                                              That’s fine, because Markdown allows embedded HTML [1]

                                                                              About the only thing that’s a bit obtuse is the link syntax, and I’ve gladly learned that to not have to manually enclose every damn list with or tags.

                                                                              [1] at least Gruber’s OG Markdown allowed it by default, and I recently learned CommonMark has an “unsafe” mode to allow it too.

                                                                              1. 11

                                                                                The trick to remember how to do links in Markdown is to remember that there are brackets and parentheses involved, then think what syntax would make sense, then do the opposite.

                                                                                1. 4

                                                                                  For reference: a Markdown [link](https://example.com)

                                                                                  Elaboration on the mnemonic you describe

                                                                                  I thought like you when I first started learning Markdown:

                                                                                  • Parentheses () are normal English punctuation, so you would intuitively expect them to surround the text, but they don’t.
                                                                                  • Square brackets [] are technical symbols, so you would intuitively expect them to surround the URL, but they don’t.

                                                                                  However, I find “don’t do this” mnemonics easy to accidentally negate, so I don’t recommend trying to remember the order that way.

                                                                                  Another mnemonic

                                                                                  I think Markdown’s order of brackets and parentheses is easier to remember once one recognizes the following benefit:

                                                                                  When you read the first character in […](…), it’s clear that you’re reading a link. ‘[’ is a technical symbol, so you know you’re not reading a parenthetical, which would start with ‘(’. Demonstration:

                                                                                  In this Markdown, parentheticals (which are everywhere) and
                                                                                  [links like these](https://example.com) can quickly be told
                                                                                  apart when reading from left to right.
                                                                                  
                                                                                  Why not URL first?

                                                                                  Since you wrote that Markdown does “the opposite”, I wonder if you also intuitively expect the syntax to put the URL before the text, like in [https://www.mediawiki.org/wiki/Help:Links MediaWiki’s syntax] (actual link: MediaWiki’s syntax). I never found that order intuitive, but I can explain why I prefer text first:

                                                                                  When trying to read only the text and skip over the URLs, it’s easier to skip URLs if they come between grammatical phrases of the text (here), rather than interrupting a (here) phrase. And links are usually written at the end of phrases, rather than at the beginning.

                                                                                  1. 2

                                                                                    Well I’ll be dammed. That completely makes sense.

                                                                                    I do, however, wonder whether this is a post-hoc rationalization and the real reason for the syntax is much dumber.

                                                                                  2. 3

                                                                                    Hah. The mnemonic I use is everyone gets the ) on the end of their wiki URLs fucked up by markdown… because the () goes around the URL. therefore it is s []().

                                                                                    1. 2

                                                                                      This is exactly what I do. Parens are for humans, square brackets are for computers, so obviously it’s the other way around in markdown.

                                                                                    2. 3

                                                                                      A wiki also implies a social contract about editability. If my fellow editors have expressed that they’re uncomfortable with HTML, it’s not very polite of me to use it whenever I find Markdown inconvenient.

                                                                                      1. 1

                                                                                        Of course. I was replying in context of someone writing for themselves.

                                                                                    3. 3

                                                                                      This is interesting: I’ve heard that same experience report from a number of people over the years so I believe it’s a real phenomenon (the sibling comment about links especially being the most common) but Markdown clicked instantly for me so I always find it a little surprising!

                                                                                      I have hypothesized that it’s a case of (a) not doing it in a sustained way, which of course is the baseline, and (b) something like syntactical cross-talk from having multiple markup languages floating around; I took longer to learn Confluence’s wiki markup both because it’s worse than Markdown but also because I already had Markdown, rST, and Textile floating around in my head.

                                                                                      I’m curious if either or both of those ring true, or if you think there are other reasons those kinds of markup languages don’t stick for you while HTML has?

                                                                                      1. 2

                                                                                        I’m not Michiel, but for me, it’s because HTML is consistent (even if it’s tedious). In my opinion, Gruber developed Markdown to make it easier for him to write HTML, and to use conventions that made sense to him for some shortcuts (the fact that you could include HTML in his Markdown says to me that he wasn’t looking to replace HTML). Markdown was to avoid having to type common tags like <P> or <EM>.

                                                                                        For years I hand wrote the HTML for my blog (and for the record, I still have to click the “Markdown formatting available” link to see how to make links here). A few years ago I implemented my own markup language [1] that suits me. [2] My entries are still stored as HTML. That is a deliberate decision so I don’t get stuck with a subpar markup syntax I late come to hate. I can change the markup language (I’ve done it a few times already) and if I need to edit past entries, I can deal with the HTML.

                                                                                        [1] Sample input file

                                                                                        [2] For instance, a section for quoting email, which I do quite often. Or to include pictures in my own particular way. Or tabular data with a very light syntax and some smarts to generate the right class on <TD> elements consisting of numeric data (so they’re flush right). Stuff like that.

                                                                                        1. 2

                                                                                          Yeah, with markdown, I often accidentally trigger some of its weird syntax. It needs a bunch of arbitrary escapes, whereas HTML you can get away with just using &lt;. Otherwise, it is primarily just those <p> tags that get you; the rest are simple or infrequent enough to not worry about.

                                                                                          whereas again, with the markdown, it is too easy to accidentally write something it thinks is syntax and break your whole thing.

                                                                                          1. 1

                                                                                            Yes, I’ve found that with mine as well.

                                                                                          2. 1

                                                                                            I don’t mean this as an offense, but I did a quick look at your custom markup sample and I hated pretty much everything about it.

                                                                                            Since we’re all commenting under a post from someone that is handwriting HTML, I think it goes without saying that personal preferences can vary enormously.

                                                                                            Updated: I don’t hate the tables syntax, and, although I don’t particularly like que quote syntax, having a specific syntax for it is cool and a good idea.

                                                                                            1. 1

                                                                                              Don’t worry about hating it—even I hate parts of it. It started out as a mash up of Markdown or Org mode. The current version I’m using replaces the #+BEGIN_blah #+END_blah with #+blah #-blah. I’m still working on the quote syntax. But that’s the thing—I can change the syntax of the markup, because I don’t store the posts in said markup format.

                                                                                          3. 2

                                                                                            You’re absolutely right, and so is spc476; HTML has a regular syntax. Even if I’ve never seen the <aside> tag, I can reason about what it does. Escaping rules are known and well-defined. If you want to read the text, you know you can just ignore anything inside the angular brackets.

                                                                                            Quick: in Markdown, if I want to use a backtick in a fixed-width span, do I have to escape it? How about an italic block?

                                                                                            This would all be excusable if Markdown was a WYSIWYG plain-text format (as per Gruber’s later rationalisation in the CommonMark debate). Then I could mix Markdown, Mediawiki, rST and email syntax freely, because it’s intended for humans to read, and humans tend to be very flexible.

                                                                                            But people do expect to render it to HTML, and then the ambiguities and flexibility become weaknesses, rather than strengths.

                                                                                        2. 2

                                                                                          ASCIIDoc

                                                                                          While I agree about the others, I fairly strongly disagree about AsciiDoc (in asciidoctor dialect). When I converted my blog from md to adoc, the only frequent change was the syntax of links (in adoc, URL goes first). Otherwise, markdown is pretty much valid asciidoc.

                                                                                          Going in the opposite direction would be hard though — adoc has a bunch of stuff inexpressible in markdown.

                                                                                          I am fairly certain in my opinion that, purely as a language, adoc is far superior for authoring html-shaped documents. But it does have some quality of implementation issues. I am hopeful that, after it gets a standard, things in that front would improve.

                                                                                          1. 1

                                                                                            That’s helpful feedback! It’s limped with the others in my head because I had such an unhappy time trying to use it when working with a publisher[1] a few years back; it’s possible the problem was the clumsiness of the tools more than the syntax. I’ll have to give it another look at some point!

                                                                                            [1] on a contract they ultimately dropped after an editor change, alas

                                                                                        3. 4

                                                                                          Agree, I’ve been using it a ton since 2016 and it has served me well. I think it’s very “Huffman coded” by people who have written a lot. In other words, the common constructs are short, and the rare constructs are possible with embedded HTML.


                                                                                          However I have to add that I started with the original markdown.pl (written ~2004) and it had some serious bugs.

                                                                                          Now I’m using the CommonMark reference implementation and it is a lot better.

                                                                                          CommonMark is a Useful, High-Quality Project (2018)

                                                                                          It has additionally standardized markdown with HTML within markdown, which is useful, e.g.

                                                                                          <div class="">
                                                                                          
                                                                                          this is *markdown*
                                                                                          
                                                                                          </div>
                                                                                          

                                                                                          I’ve used both ASCIIDoc and reStructuredText and prefer markdown + embedded HTML.

                                                                                          1. 3

                                                                                            I tend to agree, but there’s a very sharp usability cliff in Markdown if you go beyond the core syntax. With GitHub-flavoured Markdown, I can specify the language for a code block, but if I write virtual then there’s no consistent syntax to specify that it’s a C++ code snippet and not something else where the word ‘virtual’ is an identifier and not a keyword. I end up falling back to things like liquid or plain HTML. In contrast, in LaTeX I’d write \cxx{virtual} and define a macro elsewhere.

                                                                                            I wish Markdown had some kind of generic macro definition syntax like this, which I could use to provide inline domain-specific semantic markup that was easier to type (and use) than <cxx>virtual</cxx> and an XSLT to convert it into <code style="cxx">virtual</code> or whatever.

                                                                                            1. 3

                                                                                              I agree. What sometimes makes me a bit sad is that markdown had a feature compared to others that you can write it to make a nice looking text document as well that you might just output on the terminal for example.

                                                                                              It kind of has that nicely formated plain text email style. Also with the alternative syntax for headings.

                                                                                              Yet when looking at READMEs in many projects it is really ugly and hard to read for various reasons.

                                                                                              1. 4

                                                                                                The biggest contributor there in my experience (and I’m certainly “guilty” here!) is unwrapped lines. That has other upsides in that editing it doesn’t produce horrible diffs when rewrapping, but that in turn highlights how poor most of our code-oriented tools are at working with text. Some people work around the poor diff experience by doing a hard break after every sentence so that diffs are constrained and that makes reading as plain text even worse.

                                                                                                A place I do wrap carefully while using Markdown is git commit messages, which are basically a perfect use case for the plain text syntax of Markdown.

                                                                                                1. 1

                                                                                                  I honestly don’t care that much about the diffs? I always wrap at around 88/90 (Python’s black’s default max line length), and diffs be dammed.

                                                                                                  I also pretty much NEVER have auto wrap enabled, specially for code. I’d rather suffer the horizontal scroll than have the editor lie about where the new lines are

                                                                                            2. 4

                                                                                              It’s not just that they’re annoying, computing has largely been about coping with annoyances ever since the Amiga became a vintage computer :-). But in the context of maintaining a support site, which is what the article is about, you also have to deal with keeping up with whatever’s building the static websites, the kind of website that easily sits around for like 10-15 years. The technology that powers many popular static site generators today is… remarkably fluid. Unless you want to write your own static site generator using tools you trust to stay sane, there’s a good chance that you’re signing up for a bunch of tech churn that you really don’t want to deal with for a support site.

                                                                                              Support sites tend to be built by migrating a bunch of old pages in the first two weeks, writing a bunch of new ones for the first two months, and then infrequently editing existing pages and writing maybe two new pages each year for another fifteen years. With most tools today, after those first two or three honeymoon years, you end up spending more time just keeping the stupid thing buildable than actually writing the support pages.

                                                                                              Not that writing HTML is fun, mind you :(.

                                                                                              (Please don’t take this as a “back in my day” lament. A static site generator that lasts 10 years is doable today and really not bad at all – how many tools written in 1992 could you still use in 2002, with good results, not as an exercise in retrocomputing? It’s not really a case of “kids these days ruined it” – it’s just time scales are like that ¯\(ツ)/¯ )

                                                                                              1. 1

                                                                                                Heh. I was using an editor written in 1981 in 2002! [1] But more seriously, I wrote a static site generator in 2002 that I’m still using (I had to update it once in 2009 due to a language change). On the down side, the 22 year old codebase requires the site to be stored in XML, and uses XSLT (via xsltproc) to convert it to HTML. On the plus side, it generates all the cross-site links automatically.

                                                                                                [1] Okay, it was to edit text files on MS-DOS/Windows.

                                                                                              2. 2

                                                                                                I find that writing and edititing XML or HTML isn’t so much of a pain if you use some kind of structural editor. I use tagedit in Emacs along with a few snippets / templates and imo it’s pretty nice once you get used to it.

                                                                                              1. 4

                                                                                                There’s not some objective scale that can say that something is or is not an art. Art is imagined and we are conditioned to believe that things are or are not art based on our upbringing.

                                                                                                I agree. I was convinced of that after I viewed and thought about Improv Everywhere’s subway art gallery opening in 2009. With the right mindset, I can perceive “Locked Box #2” as an interesting sculpture.

                                                                                                1. 2

                                                                                                  This story should have the math tag, but it looks like I can’t “suggest” that change because the story’s title was already changed due to user suggestions. Can a moderator please add that tag?

                                                                                                  1. 1

                                                                                                    Ping @pushcx.

                                                                                                  1. 4

                                                                                                    Another cool thing: host the blog’s source text on a Git forge, allowing readers to submit corrections to typos or broken links. For example, writing.kemitchell.com is built from GitHub – kemitchell/writing.kemitchell.com, which has merged pull requests.

                                                                                                    1. 5

                                                                                                      Historical tidbit: when the game was first being developed, the developer called this game engine “Phoenix Engine”. That name doesn’t appear in the announcement post or in the code’s README, but I still see a few mentions of that term within the codebase.

                                                                                                      1. 16

                                                                                                        This post only links to the newly released source code via the YouTube video’s description, so here’s a direct link: GitHub – WolfireGames/overgrowth

                                                                                                        I remember commenting on the developer’s blog many years ago to suggest that they open source the game engine they were working on. They had responded that they didn’t see the point, since the engine would be so specialized to their specific game. I’m glad they changed their minds eventually.

                                                                                                        1. 6

                                                                                                          The name is unfortunately misleading. Oh My GitHub isn’t much like Oh My Posh, Oh My Zsh, and Oh My Fish, which are all shell plugin/package managers. Oh My GitHub is a tool for interacting with a limited subset of a specific API, not a tool for customizing an environment using plugins.

                                                                                                          1. 2

                                                                                                            Sorry the name isn’t sound for you.

                                                                                                            Oh My GitHub’s core is written in C, and it’s meant to be used in different frontends, Emacs is one example, I hope others interested could write for other environment, such as Nvim/VSCode/Atom etc. I think Oh My GitHub is extensible in this way.

                                                                                                            Hope this explain my motivation naming it.

                                                                                                            1. 4

                                                                                                              I think you misunderstand the issue, so let me offer a different wording.

                                                                                                              There was a tool named “Oh My Zsh” whose purpose is to simplify configuring zsh. It started a chain of snowclones, including “Oh My Fish” and “Oh My Posh”. At least in certain circles, “Oh My *” convention became firmly associated with configuration and plugin/theme managers.

                                                                                                              You, I suppose unknowingly, used that naming convention for a tool that isn’t a configuration or plugin manager. Now, whether you want it or not, there will be people who will find that name misleading because it doesn’t match a convention that was there before you.

                                                                                                              It’s a bit like if you started a project named “foobuntu” that wasn’t an Ubuntu Linux derivative but, say, a text editor. Whatever your justification for that name could be, people would be guaranteed to assume that it’s an Ubuntu derivative from that name.

                                                                                                          1. 10

                                                                                                            This is a source-available project, not an open source project. GitHub issue #7 pointed out in January of 2021 that the project has no license, implying that the creator reserves all rights except those they must waive to comply with GitHub’s terms of service. The project still has no license today.

                                                                                                            Also, it’s not as easy to download the project binaries as the README makes it sound. The README links to https://github.com/DanRuta/xVA-Synth/releases, but no releases have been published. The README also says to “download the app from the Nexus websites”, but that doesn’t seem possible either. For one thing, the README mentions “the nexus.com website” further down, but nexus.com is unrelated – they actually mean nexusmods.com. Even on Nexus Mods, searching for “xva synth” brings up results like “xVASynth 2 - SKVA Synth”, which sound like specific voice models, not the app itself. The one place I was able to find the app for download was on Steam as a free app xVASynth v2.

                                                                                                            1. 1

                                                                                                              Prior art I had heard of: the five teaching languages created for the 2003 book How to Design Programs. Those five languages, which are subsets of Scheme, range from the “Beginning Student” language to the “Advanced Student” language.

                                                                                                              According to section 2.4 of Hedy’s research paper, Hedy’s main innovation compared to How to Design Programs’s teaching languages is that across language levels, Hedy’s “syntax gradually changes, rather than being extended”.

                                                                                                              1. 1

                                                                                                                I worry that changing the language, instead of extending it, might lead to confusion when the student misremembers what level they’re working at, especially if they’d worked at a lower level for a while. That said, I really like this idea of motivating syntax, I’ll check out the paper (so far I only watched the introductory video on the site).

                                                                                                                1. 4

                                                                                                                  I use delta, often named git-delta in most package managers.

                                                                                                                  1. 10

                                                                                                                    Delta is a nice improvement over the standard diff tool because it syntax-highlights the diffed code, but delta is not really a replacement for Difftastic. Difftastic ignores formatting-only changes such as moving one element of an array to the next line, while delta includes such changes in its diffs.