1. 2

    Here’s a comparison of the new GitHub CLI (gh) against the existing unofficial CLI hub.

    1. 3

      In the Ruby ecosystem, I’ve found The Ruby Toolbox quite useful. It predefines categories of libraries, e.g. Web Authentication, so you can easily get a list of all projects that help with a particular problem. Within each category, it exposes various metrics about the popularity and activity of each project, and it summarizes the metrics with flags like “No release in over a year”. The best project is not always the highest-rated in its category, but it’s a good starting point.

      1. 2

        Very cool. Thinking a little more, it makes sense for this kind of thing to be separate for each eco-system. Nobody’s going to be comparing libraries across say Python or Ruby.

        I especially like the metrics “issue closure rate” and “pull request acceptance rate”.

        1. 2

          You’re probably right, but I find myself wanting to do cross-language comparisons from time to time. Knowing that “this is like requests in language X” would be high praise. Similarly, when learning a new language, I’ll eventually ask “how does this language do Quickcheck (https://hypothesis.works/articles/quickcheck-in-every-language/)?”

          1. 1

            A major reason to pick languages for a project is knowing what works well that you will need. E.g. machine learning libraries, time handling libraries, http libraries… In this, cross language comparisons would help newcomers who don’t yet know what works best. If I were starting a project that needed to talk SOAP, I would want to know where the best libraries were.

        1. 13

          My impression of this post is not positive.

          First of all, the page layout on my 15” laptop screen, plus Firefox, looks terrible. On top of that, the typography of the post itself is nothing to write home about. Beautiful typography has this universal quality: it just looks good to most eyes, and this page? This page is not beautiful.

          Second, I think it is patently untrue to claim that paid fonts automatically make you a better typographer. For evidence, see the plethora of quality open source fonts.

          Third, I am not convinced about the value of the suggested point sizes. Personally, I prefer larger point sizes in my text, whenever I can afford it, but I’m not going to run around claiming that I have found the golden range of point sizes. If you want to make that claim, I do think you have to back it up with evidence; something that is sorely missing in modern typography circles.

          Page margins fall in a similar boat to my complaints about claims regarding ideal point sizes. Far more egregious is the fact that the page margins for this page on my 15” laptop screen are atrocious. Why is the body text laid out off-center, all the way to the right?

          Overall: all the bells in my head ring “shilling!”.

          This is the first post I will flag on lobste.rs (I’m a new user), with “off-topic”, for being low quality, and an ad. I’m willing to have my changed about this post, and I guess a single flag means nothing anyway, right?

          1. 4

            I’m not commenting on your evaluation of the book, but I can answer one of your questions:

            Why is the body text laid out off-center, all the way to the right?

            To make room for notes in the left margin. This page has two such notes: the first one begins “There are 72 points to an inch.” I can see why you thought the body text was off-center, though: if you scroll to a part of the page without margin notes, there is no visual indication of why the left margin is empty.

            1. 2

              I do not think he means to say that the rules here are universal silver bullets. If you want true nuance about font sizes and open source fonts, it’s covered in the book and acknowledged.

              What this article is a bunch of thumb rules for laypeople/non-designers to get their typography looking better than most defaults provided by typesetting software. It is very hand-wavey and generalizing on purpose, to allow people to get up and running with significantly improved typography very quickly.

              As for your claim for it looking terrible, it is clearly subjective, as on my 15” laptop screen, plus Firefox, I think it looks very beautiful.

            1. 2

              It was an interesting read, but it left me wanting more. I felt like there were a lot of rules with little justification other than “this is standard for designers.”

              1. 4

                it left me wanting more

                If by “it” you mean the linked page, the linked page is just one page of a free online book, Practical Typography. For example, there is a whole page about point size, the topic of the second rule.

                I felt like there were a lot of rules with little justification other than “this is standard for designers.”

                Some other pages in the book, such as the page about point size, give more justification for their rules. However, there are indeed some recommendations without specific justification. For example, the page about line length recommends 45–90 characters per line, but doesn’t justify those numbers. I wish the author cited studies, or at least described their personal experiences that led them to pick those numbers.

                However, I can say in my personal experience restyling hard-to-read body text of websites using user styles, the numbers suggested by these guidelines make the text look more readable than when I try numbers outside of the suggested ranges.

                1. 4

                  A lot of those numbers come from the consensus of the typesetting/printing industry over the last 4-500 years, rather than scientific studies or personal experimentation. Some printer in Berlin publishes a book that’s formatted somewhat outside the norms, then some printer in Milan sees a copy, and decides (or not) to copy some of the techniques. A printer in Lyon sees a copy of that book and decides they’re all wrong and to try something completely different for an upcoming project. It’s all entirely unscientific, but over a long period of time, natural selection is a powerful factor.

                  1. 1

                    By “it” I meant the book as a whole, I went through it a couple months ago and that was the impression I was left with.

                    I’d believe the numbers, certainly, I’d just like a bit more justification. Some kind of study, perhaps, or a theoretical basis.

                1. 1

                  A software for documenting workflows in pseudocode that works really well.

                  1. 2

                    I’m having trouble imagining this. What would be the difference between using this software and writing a Markdown document with embedded code blocks?

                  1. 1

                    I suppose it saves on writing Object.assign though. Writing deeply nested objects is something I’ve never really liked to do, ever since reading Data Oriented Design it’s seemed more trouble than it’s worth.

                    Hopefully one day alternatives to JS like Brython gain adoption.

                    1. 1

                      Not sure to understand your comment nor if you have actually read the article :D You can write records flat if you like it, and the ES6 like mutations is not really what’s interesting about records.

                      1. 2

                        This ain’t proggit, if people don’t read the article we mercilessly make fun of them. In fact, you could say they are… roasted

                        Badum-TSH

                        1. 2

                          … I don’t get your joke. You’re saying “roasted” as if it were a pun, but nothing in the article or in this conversation refers to roasting or cooking anything. (I know the other meaning of “roasted”, but a pun doesn’t work unless it refers to multiple meanings at the same time.)

                          1. 4

                            I blame my food allergies. Turns out people mostly boil lobsters.

                            1. 1

                              I don’t understand either but I’m not native so…

                          2. 1

                            I read the article and get the immutability & equality differences, wow cool. The react stuff didn’t interest me so I didn’t comment on it. My comment was just musing on how records & tuples don’t seem to really matter that much if you’re already using Object.assign on a new target object, and you don’t deal with nested objects. Correct me if I’m wrong.

                            :D

                            1. 1

                              This ain’t proggit, if people don’t read the article we mercilessly make fun of them. In fact, you could say they are… roasted

                              Yes, if you don’t care about immutability, about equality properties, about deeply nested object graphs, that will not be useful to you.

                              If you like to walk, having a bike will not be very helpful to you. Does it mean a bike is useless and more troubles than it’s worth, for all people?

                              1. 1

                                I didn’t say it was useless or more trouble than it’s worth. Maybe we’re talking along different, parallel vectors, don’t worry about it.

                          3. 1

                            Writing deeply nested objects is something I’ve never really liked to do, ever since reading Data Oriented Design it’s seemed more trouble than it’s worth.

                            Hopefully one day alternatives to JS like Brython gain adoption.

                            I’m curious about how Brython (or, I guess, Python?) handles this better?

                            1. 1

                              I don’t think Python in particular would, it’s just the only example I know of to put another language “natively” in the browser.

                              1. 1

                                Got it; I think I misinterpreted your original comment :)

                          1. 3

                            This looks interesting, however all I can get from this page is a video which is so low-res that I can’t see the code. Is there a higher-res video I’m not getting for some reason?

                            (Also, sidenote, it took me a few seconds to figure out that the page is supposed to be showing me that video… perhaps I’m just tired, but the widescreen layout of locals.com could do a better job of highlighting the actual content…)

                            (Edit, additional sidenote: I thought clicking the “Technical Tuesdays: One-Page Chess” title might show me a longer article or maybe link to somewhere to see the Chess page running, but instead it pops up this thing… this is my first time seeing locals.com and I can’t say it’s a good first impression…)

                            1. 2

                              I, too, see nothing but a low-res video on this page. I used the “suggest” link on this Lobsters story to suggest the video tag, which would let people know what to expect on the page.

                            1. 1

                              Previous discussion of The Case Against OOP is Wildly Overstated on Lobsters: https://lobste.rs/s/bmzgvz/case_against_oop_is_wildly_overstated. It looks like the posting of another response article, Case against OOP is understated, not overstated, was merged into that Lobsters story as well.

                              1. 1

                                Slack’s original appeal was that it had a much better user experience than prior work chat/email/collaboration tools including the now-dead HipChat and Campfire.

                                I much preferred HipChat actually; I never quite understood the appeal of Slack. I also don’t quite get the appeal of Discord, but I don’t really know any good alternatives (riot.im is NOT it, it’s even slower and worse than Slack). The Stack Overflow/Stack Exchange chat is still the best webchat I know of by the way.

                                1. 6

                                  I also don’t quite get the appeal of Discord

                                  People ditching Slack for Discord is hilarious to me; it’s like ditching Facebook for Instagram. The underlying reasons for the problems are all still there. https://cadence.moe/blog/2020-06-06-why-you-shouldnt-trust-discord

                                  1. 1

                                    Yeah, dunno. I think for a lot of people it’s mostly just a matter of UX; a lot of the points in that article are kind of “invisible” (until you run in to them, that is). I never liked Discord’s UX myself though, the low-contrast text alone was enough to turn me away (although that article says it’s mostly fixed now).

                                  2. 3

                                    I also don’t quite get the appeal of Discord

                                    Compared to Slack? As well as Discord’s UX improvements over Slack listed in the article, I’ve seen one open-source project choose Discord over Slack because Discord’s free plan includes unlimited message history, compared to Slack’s 10,000-message limit.

                                    I don’t really know any good alternatives

                                    I’ve only used it a few times, but so far I quite like Zulip and its threading model where each message is not only within a channel, but also under a “topic” (like an email subject line). I’ve encountered problems finding, rereading, and linking to past discussions in Discord and Slack before—I expect that Zulip’s topics feature would mitigate those problems.

                                    1. 1

                                      Personally, I was turned off just by Discord’s low-contrast text, although the link posted in another comment said that’s fixed now. You can have the best chat in the world, but if I can’t read the actual text then, well…

                                      Zulip looks nice at nice at a glance, I haven’t heard of that before. And it’s completely Apache licensed too. Guess that’ll be the first thing I try if I ever need to set up a chat.

                                    2. 3

                                      The best alternative I know of is Mattermost. It runs well, seems to have a good API, and gets the job done.

                                      1. 2

                                        It has a good mobile client and self-hosting is super easy…and a $5 prgmr instance will handle it with headroom to spare.

                                      2. 3

                                        Element (was riot.im) may be slow, but there are tons of matrix clients. Also, Element is three different apps (web/electron, ios, android), I assume you mean the web version is slow? And which server are you using it on? A crowded server (e.g. matrix.org) makes is slow as well.

                                        But what’s important is that matrix is federated like IRC and email. Not centralized like mattermost, rocket.chat, zulip, slack, discord, teams, hipchat, …

                                        And an open and evolving standard.

                                        1. 1

                                          I only used the web version, for one chat hosted on riot.im. This was a while ago but the general “feel” wasn’t very fast or good at the time, at least in Firefox (it seems a lot of these things tend to preform better in Chrome, but I’m not going to use Chrome just for one thing).

                                          To be honest, I don’t really care all that much about centralized vs. decentralized/federated; just being an open platform like Zullip or MatterMost is “good enough” for me, although even that isn’t a hard requirement. By far the most important factor I judge these apps on is just basic UX.

                                          There’s only one other web client in that list by the way (FluffyChat; I don’t really want to install software for very occasional/casual use of chat) and it errors out with Failed to create WebGL context: WebGL is currently disabled. Okay, so I enable WebGL and can create a username now, and then I get Overflow on channel: flutter/platform. Messages on this channel are being discarded in FIFO fashion. The engine may not be running or you need to adjust the buffer size if of the channel. I’m not sure what to do with that, so I gave up.

                                          1. 1

                                            I hope you reconsider and try out matrix again in the future.

                                            Another thing that I forgot about mattermost and rocket.chat. They are open core, just like gitlab. Some features require paying. While with synapse/element (server/client, matrix is just a protocol) (and e.g. redhat) you pay for hosting & support, not features.

                                        2. 2

                                          I thought Hipchat was a giant garbage heap. Slack is vastly less likely to fuck up my messages or do weird stuff when I view history. The thing Slack has going for it is that it basically works.

                                          1. 2

                                            I find it funny that I had the exact opposite opinion when I used both. I didn’t like Hipchat at all until I tried Slack and realized how much worse things could get.

                                            I told the manager that made the call to switch from Hipchat to Slack that he was moving us from garbage to a garbage fire.

                                            1. 1

                                              Hipchat was regularly doing things like duplicating messages in the scrollback, dropping them, or reversing their order (either pairwise or for entire days).

                                              I was on the Linux desktop client for both, if that matters.

                                              What problems did you find with Slack?

                                              1. 2

                                                Search was outright broken. The desktop client would crash when I searched, then, when I relaunched it, attempt to get me to pay for an upgrade to their service. That was so regular, I wrote a script to blow away its cache.

                                                If I used it while on battery, it cut the amount of autonomy I could expect before needing to charge by about two thirds.

                                                It would arbitrarily turn the sound on for my laptop speakers and set my volume to max if my bluetooth headset went out of range. So, when I went from my desk to the conference room down the hall, if I did not remember to close slack before I did that, next time someone posted a music video to our chat, slack would just start playing it at full volume.

                                                Attaching a screenshot routinely crashed the client.

                                                It would make my fan spin loudly when it was left running in the background.

                                                I was using the desktop client on a fully patched, always up-to-date Fedora GNOME system.

                                        1. 2

                                          This is a defense of OOP by redefining OOP, essentially “Yes, inheritance and trying to model the world with classes are bad, but that’s not what OOP means, OOP means DRY and YAGNI and the law of demeter continuous refactoring and valuing simplicity above all else” seems like sophistry to me. The OOP moniker has no claim to DRY and YAGNI and refactoring and simplicity above any other paradigm.

                                          1. 1

                                            I agree that those things you listed are not especially related to OOP, but the author doesn’t say they are:

                                            Unfortunately, design patterns can easily become a way to smuggle in overly complex OOP design under a veneer of respectability. […] How do you avoid this trap? Focus on the rock-solid principles of good programming [that you listed].

                                            The author says those principles are ways to guide yourself to apply OOP in a good way instead of in a bad way. They don’t say OOP consists of those principles.

                                            What does the author say OOP consists of, then? I think their view is represented by these quotes:

                                            An object is a programming construct that lets you pack together data and functionality in a somewhat reusable package.

                                            Object-oriented languages give you a set of tools for using objects (formalizing their interactions with interfaces, extending them with inheritance, and so on). But they don’t say much about how you should apply these objects to a problem.

                                          1. 17

                                            Requires a sign-in to read. Unread.

                                            1. 8

                                              Is there a way to filter content by domain? I never want to give medium.com my eyeballs

                                              1. 2

                                                Fair enough, and I agree.

                                                But if you like you can work around the problem by telling your browser not to accept cookies from medium.

                                                1. 2

                                                  I opened this page both in Firefox for macOS and Firefox for Android, and both browsers showed me the full article without me having to sign in. I was able to view the article despite not even having a Medium account.

                                                  Maybe your problem is related to this message I see at the top of the page:

                                                  You have 2 free stories left this month. Sign up and get an extra one for free.

                                                  Try opening the page in a Private Browsing window?

                                                1. 1

                                                  Very cool! I’ve had it on my list to try and find videos similar to this of people using Emacs or Vim so I’d love to hear if people take/took Drew up on his suggestion and/or if there are already existing resources that are just people editing text and vocalising the process

                                                  1. 1

                                                    Drew’s video already includes him using Vim—you don’t need to wait for additional submissions.

                                                    I don’t think this is a good style of video to learn Vim from, though, because it’s poorly organized for that purpose. As the linked page says,

                                                    The purpose of this page is to provide a reference for people writing new software which involves text editing tasks.

                                                    If you already know how normal text editing works, Drew spends too much time reiterating that. Even in the Vim section, he often switches between explaining Vim’s features and explaining generic text-editing features you already know.

                                                    A video focused on teaching the Vim or Emacs editing models and keybindings could be much more concise. I bet you could find one just by searching YouTube for “Vim tutorial”.

                                                    1. 1

                                                      I guess I was more interested in watching people use it from a more wholistic point of view. For example, I recently started investing in org-mode (via Doom Emacs so using Vim bindings).

                                                      While there are plenty of great org-mode tutorials, a strict tutorial can be quite hard to express ie; how do all of these disparate bits and pieces work together in a real life setting.

                                                      Likely I just haven’t properly sat down and invested enough time but I like to think that the style of watching someone use a tool to achieve an end goal vs a tutorial about the tool itself have different focuses. The former is much more likely to help me understand the value of it but not necessarily how to go about actually using the thing in question if that makes sense?

                                                      I didn’t really clarify in my original comment but in this case, the wholistic format is what I find interesting more than any specific thing being demonstrated :)

                                                      1. 1

                                                        I agree, a video of someone using Vim or Emacs for actual work while making it clear how they are using the editor would be a great way to learn.

                                                        I just tried searching for a video like that. I found plenty of recordings of livestreams where people use Vim (example). However, in my quick searches I’m afraid I couldn’t find any videos of a programmer using software that displays their keystrokes on screen, or of a programmer aiming to talk about how they are using the editor to do everything they are doing.

                                                        1. 4

                                                          ThePrimeagen has some nice vim videos with software that shows the keystrokes: https://www.youtube.com/watch?v=H3o4l4GVLW0

                                                          1. 2

                                                            I think what you’re looking for may exist on destroyallsoftware.

                                                    1. 3

                                                      I agree that System 4’s bulging trash can icon was too scary, and too strong an incentive to empty the trash. It made people lose their safety net for the wrong reason. But I think the other, less forceful icons of trash cans are better than if the icon looked the same no matter the contents of the trash.

                                                      There are two ways in which it’s helpful to know you have files you can delete by emptying the trash:

                                                      • Privacy: it warns you that anyone snooping on your computer can still see those “deleted” files.
                                                      • Disk space: it lets you know that if your computer starts acting slow due to low free disk space, you can remediate the problem by emptying the trash.

                                                      Saying that, I think computers shouldn’t need a changing icon to prevent the user from running low on disk space. It would be a violation of user expectations if the trash can started doing this now, but it would have been better if the trash always automatically deleted the oldest, or perhaps the biggest files, automatically when disk space was low, while preserving the other trashed files. That way most users would have been able to ignore the trash can.

                                                      A trash can working like that would indeed need a different metaphor, perhaps some kind of futuristic, clean-looking dump. The important thing is it should still be possible for the user to notice that their “dumped” files might still be accessible unless they are manually force-deleted (incinerated?).

                                                      1. 2

                                                        The bulging trash can would make more sense as a “low disk space” indicator, I guess. But I wouldn’t want some kind of implicit background auto-delete undermining my autonomy, thanks. Ask me first!

                                                        I don’t think it’s a good idea to encourage users to ignore their trash. We should know better by now than to think that it’s a good idea to just preserve everything by default. On an individual level, that’s hoarder mentality, which is bad enough… but it scales up to create toxic waste dumps. Throw stuff out! Be deliberate about it. It’s healthy.

                                                        So, how about a shredder icon? Drag a file or folder or your whole trash can to it, watch a satisfying animation while your data gets irreversibly overwritten with noise. Would have made sense back then… but nowadays the whole “desktop metaphor” is gradually losing its power and becoming mere tacky anachronism, as younger generations can’t reliably connect the experience of knowledge work to any physical experience of manipulating papers.

                                                        1. 2

                                                          OS/2 used a shredder icon instead.

                                                        2. 1

                                                          Not a visible trash can, but the .recycled (hidden) directory on SFS and PFS basically works that way. It’s saved me and my files on several occasions while still allowing me to delete files without second thoughts.

                                                        1. 2

                                                          To summarize, the author describes a brute-force solution. Their program uses depth-first search to generate all possible paths through the level that don’t retread ground, and for each path, it evaluates whether it is a valid solution.

                                                          I can imagine possible optimizations, such as terminating searches starting from paths that pass the goal without having stepped on every tile. I was curious exactly how slow this brute-force algorithm was without those optimizations, so I did some benchmarking.

                                                          First, so I could have a larger puzzle to test with, I made up a custom puzzle with a 7×10 grid. See if you can solve it by eye! Start at the bottom center ▪︎ and go to the top center ▪︎ via all ▫︎.

                                                          ▫︎  ▫︎  ▫︎  ▪︎  ▫︎  ▫︎  ▫︎
                                                          ▫︎  ▲  ▫︎  ▫︎  ▫︎  ▲  ▫︎
                                                          ▫︎  ▫︎  ▫︎  ▲  ▲  ▫︎  ▫︎
                                                          ▫︎  ▫︎  ▫︎  ▫︎  ▫︎  ▫︎  ▲
                                                          ▫︎  ▲  ▫︎  ▫︎  ▲  ▫︎  ▫︎
                                                          ▫︎  ▫︎  ▫︎  ▫︎  ▫︎  ▫︎  ▫︎
                                                          ▫︎  ▫︎  ▲  ▫︎  ▫︎  ▲  ▫︎
                                                          ▫︎  ▫︎  ▫︎  ▫︎  ▫︎  ▲  ▫︎
                                                          ▫︎  ▲  ▲  ▲  ▫︎  ▫︎  ▫︎
                                                          ▫︎  ▫︎  ▫︎  ▪︎  ▫︎  ▫︎  ▲
                                                          

                                                          I added this puzzle and some test code to sootopolis.js:

                                                          const roryCustomPuzzle = [
                                                            [0, 0, 0, 0, 0, 0, 0,],
                                                            [0, 1, 0, 0, 0, 1, 0,],
                                                            [0, 0, 0, 1, 1, 0, 0,],
                                                            [0, 0, 0, 0, 0, 0, 1,],
                                                            [0, 1, 0, 0, 1, 0, 0,],
                                                            [0, 0, 0, 0, 0, 0, 0,],
                                                            [0, 0, 1, 0, 0, 1, 0,],
                                                            [0, 0, 0, 0, 0, 1, 0,],
                                                            [0, 1, 1, 1, 0, 0, 0,],
                                                            [0, 0, 0, 0, 0, 0, 1,],
                                                          ];
                                                          
                                                          const solutions = findSolutions(roryCustomPuzzle);
                                                          console.log(solutions);
                                                          console.log(solutions.length);
                                                          

                                                          When run with time node sootopolis.js on my computer, the program finishes in 7.7 seconds, printing out 38 valid solutions. In comparison, solving thirdPuzzle takes 2.8 seconds, solving thirdEmeraldPuzzle takes 0.3 seconds, and solving firstPuzzle takes 0.1 seconds.

                                                          My conclusion? The program, despite using brute force, is still practical for helping a stuck player get past a 7×10 puzzle with 56 traversable tiles. I think the time the program takes to finish for different puzzles could be estimated based on the number of traversable tiles in the puzzle, but I didn’t bother making a plot of runtime vs. traversable tile count.

                                                          1. 3
                                                            Summary

                                                            Use feature flags if:

                                                            • You’re doing A/B testing, so you want different behaviors for different users
                                                            • You’re working on a very complex feature that cannot be safely merged with a single pull request
                                                            • You do not have control over your deployments and rollbacks
                                                              • Because flipping a flag can substitute for a rollback, to an extent

                                                            Why feature flags should be avoided outside of the above situations:

                                                            • They increase the complexity of the code
                                                              • This allows the creation of bugs that only happen with a certain combination of feature flags
                                                              • This slows development, especially if time is not spent on removing feature flags that have become unnecessary
                                                            • When flags are used to disable bugs happening in production, they are inferior to rollbacks
                                                            1. 11

                                                              I admire the effort put into Frink, which makes me even sadder that, though Frink is a free-to-use indie programming language, Frink is not open source. Reading the creator’s accounts of their research struggles in the units data file is quite entertaining until you realize that anyone building an open-source unit-aware calculator is going to have to do all that work again.

                                                              Once, for a school assignment on the topic of GUIs, I used Frink’s embeddability to start building an open-source GUI for Frink, CalcuDoc. CalcuDoc’s difference from Frink’s official GUI was its use of the document paradigm pioneered by Soulver and InstaCalc. I abandoned CalcuDoc once I realized I was wrong in my initial assumption that Frink was open source.

                                                              1. 3

                                                                while i appreciate the author’s reasons for not being open source, i do wish they had at least open sourced the units data file. they could then have fun experimenting with the code, and other people could use the data file to build another open source units-aware language.

                                                                1. 2

                                                                  To give you a little bit of hope, Frink’s website does invite readers to “e-mail Alan Eliasen with questions, comments, or vituperation”. So there is the option of contacting the author and asking if they would be willing to open-source the units data file. Perhaps they could be convinced that open-sourcing the file wouldn’t harm their goals.

                                                                  If Alan thinks that open-sourcing the units data would harm future monetization of Frink, they might agree to an arrangement where they get paid a lump sum and then open source the units data forever. Depending on the price, a new open-source project might find such a deal cheaper than replicating Alan’s work.

                                                                  I’m not sure if Alan Eliasen actually reads that email address, though. They never replied when I linked them to my project CalcuDoc five years ago.

                                                              1. 24

                                                                I’m reminded of Maciej Cegłowski saying that one of the advantages of being independent is that you can speak with a human voice (in https://www.youtube.com/watch?v=5Vt8zqhHe_c). It was really refreshing in the live announcement to see the founders being their own wacky selves rather than hiding their personalities behind some professional facade.

                                                                1. 7

                                                                  Timestamp in Maciej Cegłowski’s talk where he mentions speaking with a human voice: 35:44 (context: 35:17–36:08)

                                                                  Direct link to the recording of the live announcement: Zig SHOWTIME #6 - Announcing the Zig Software Foundation!

                                                                1. 3

                                                                  URLs aren’t the only place GitHub usernames are used. Using the web interface, in some cases, will create commits with the email [email protected].

                                                                  UGH I hate Cloudflare so much. -.-

                                                                  1. 1

                                                                    I’m not sure why you’re seeing “email protected”—I don’t see that even with Tor. If you didn’t already find a way around the overeager protection, here’s the email address I see: myusername@users.noreply.github.com.

                                                                    1. 2

                                                                      They obfuscate anything with an @ sign in it, email or not. You have to enable Javascript for them to decode it, which I don’t in general.

                                                                      But a little bird has told me about a Firefox extension that decodes these, and Cloudflare’s “protection” turns out to be absurdly simple:

                                                                      https://addons.mozilla.org/en-GB/firefox/addon/email-protected/

                                                                      const [key, ...encoded] = data.match(/.{2}/g).map(e => parseInt(e, 16))
                                                                      let bytes = encoded.map(e => String.fromCharCode(e ^ key)).join("")
                                                                      

                                                                      All this annoyance and it turns out to be the kind of “protection” algorithm I would have written in middle school.

                                                                  1. 1

                                                                    Please do not post stackexchange questions

                                                                    1. 2

                                                                      Why not?

                                                                    1. 8

                                                                      There’s a name that doesn’t work in English, as blech tends to be used as an expression of disgust.

                                                                      1. 12

                                                                        expression of disgust.

                                                                        Given some of the things I’ve heard about the trials and tribulations of embedded programming this may not be unfair.

                                                                        1. 3

                                                                          Given some of the things I’ve heard about the trials and tribulations of embedded programming this may not be unfair.

                                                                          Having done embedded development long in the past, it’s certainly apt!

                                                                        2. 9

                                                                          I was expecting a novelty language :)

                                                                          1. 2

                                                                            Same here! It the name made me think it was an esolang initially.

                                                                            1. 1

                                                                              Yeah, I expected this to be a parody language that does the opposite of what good languages do, resulting in something like INTERCAL. I think the name “Blech” will significantly slow the growth of the language.

                                                                            2. 7

                                                                              Seems to be done by Bosch Research, a German company. If it works for them … I see nothing wrong with it.

                                                                              1. 2

                                                                                Sure, but it might limit how seriously people take it. Then again, considering the silly names some projects have…

                                                                              2. 6

                                                                                Being one of the authors - we are aware of this. Blech should remind you of “bare metal”. Programs can run directly on “the Blech”. We also considered the name “Metal” but it was already taken by Apple.

                                                                                1. 2

                                                                                  I really appreciate you chiming in.

                                                                                  To me a die looks like a piece of blech.
                                                                                  Thus the name totally makes sense.

                                                                                2. 3

                                                                                  As German, I find the name very amusing. It’s usually used in disrespect towards sheet metal of questionable thickness/stability, something that bends easily and not being something that you want to relying on for bearing load. It’s sometimes used in an affectionate way, like the Trabbi being referred to as a ‘Blechle’ or ‘small Blech’. Anyways, in all uses I’ve heard it’s always been towards thin sheet metal.

                                                                                  1. 1

                                                                                    I checked several dictionaries but couldn’t find any evidence of this. Is it a local slang?

                                                                                    1. 2

                                                                                      I’m familiar with it, I don’t believe it’s local.

                                                                                        1. 1

                                                                                          Thanks. I wrote it with a (capital) ‘B’ and landed here:

                                                                                          https://en.wiktionary.org/wiki/Blech

                                                                                          1. 1

                                                                                            Yuck, case sensitive URL!

                                                                                      1. 2

                                                                                        I checked several dictionaries but couldn’t find any evidence of this. Is it a local slang?

                                                                                        Nope, not slang: https://www.merriam-webster.com/dictionary/blech

                                                                                        That was the first hit when I did a search.

                                                                                      2. 1

                                                                                        I also assumed it was named along the lines of Worst: http://worst.mitten.party/