Threads for C-Keen

    1. 1

      Weirdly, this has been … forked? … already:

      I don’t understand what that is, or why it exists, or why Zanvok Corporation exists … it feels like some sort of scam but I can’t put my finger on it.

      1. 1

        There is also which is mentioned in the news section that seems a legit effort to create something on the same base.

      2. 1

        At the bottom of the main MikeOS homepage, they link to 6 different forks. Not that one, but it looks broadly like perhaps the people behind MikeOS encourage the forks.

    2. 4

      Here’s an updated repository for the code of that system:

    3. 1

      The active emacs theme following this article sees to be here: nano emacs.

      1. 1

        It’s from which is a precursor of the nano emacs theme. I tried to run it but in the end it took away too many UI elements that I was actually using.

        Worth mentioning the modus-themes package (, which introduces a color scheme for maximum accessibility. It will be included in emacs 28, but is probably too recent to be mentioned in the paper.

    4. 10

      Kids, I know this is uncool, unhip, or whatever is the term these days, but in your Readme, at the very top, if you give one sentence, just one sentence, describing what your program does, you might, just might, gain one more user. Also, an angel will get its wings.

      1. 16

        The people who fondly remember l0phtcrack have apparently not realized that an entire generation of nerds has come of age and never heard of it.

        From Wikipedia (

        L0phtCrack is a password auditing and recovery application originally produced by Mudge from L0pht Heavy Industries. It is used to test password strength and sometimes to recover lost Microsoft Windows passwords, by using dictionary, brute-force, hybrid attacks, and rainbow tables.

        The initial version was released in the Spring of 1997.

        (my emphasis).

        In other words, it belongs to the same canon of software and concepts as PGP, Window 95, and the early internet.

        1. 1

          This makes me so sad 😞

          1. 3

            I’ve had interviews with people >recently< that fondly remember l0phtcrack, cdc, dvn, flt, razor, … and can’t recite what a BBS was or how a Fidonet address/echomail distribution worked, who +ORC, +Fravia etc. was or the connection between FutureCrew and Remedy Entertainment. It turns out that infosec, emulation, cracking, demo and other ‘scenes’ were poorly document, taught and historically contextualised to the point that we sip in the aftermath but forget its origins and there is no ‘viagra’ for reigniting computing lost.

      2. 3

        I agree… can someone explain what this tool is and why I might be interested? This submission has zero context.

        1. 5

          It is a windows password auditing (read cracking) program. One of the most popular ones.

    5. 23

      I’m delighted to learn that nano releases have codenames like “Among the fields of barley”, “Tax the rich, pay the teachers”, and “And don’t you eat that yellow snow”.

      1. 11

        Very refreshing to hear that they’re keeping the fun in computing

      2. 5

        “Among the fields of barley”, “Tax the rich, pay the teachers”, and “And don’t you eat that yellow snow”.

        Words to live by. Except the barley thing. I suppose that’s just words.

        1. 5

          “Among the fields of barley”

          It’s a Sting song reference I think:

    6. 4

      I would love to hear about all the non-JS implementations and their status.

      1. 2

        The Rust and Go implementations are coming along very nicely, and there’s an iOS app that uses the Go implementation internally. I’ve also been experimenting with a lightweight implementation in Python, but it’s not really ‘done’.

    7. 2

      What about key ghosting[1] in such keyboard solution?


      1. 6

        The usual solution is to add a diode after every switch.

      2. 1

        What @C-Keen said. Each of the blue-gray segments in this wiring diagram corresponds to a diode:

    8. 1

      There’s an excellent video showing Dan Ingalls demonstrating the Smalltalk-72 and later versions, done by the Computer History Museum:

    9. 6

      ACME is an old text editor from Plan9 and Inferno. Acme-SAC is essentially ACME on top of a modified Inferno virtual machine. The VM is extremely light weight. OSX users can download the AcmeSAC-0.31.dmg from here.

      If you do not have a three button mouse, and on a mac, Option + click is middle click and Command + click is right click. To do a middle click and drag select, click at the starting point of the portion you want to select, then holding command, click the end point. The remaining is explained in this video. If you do not like videos, here are some links to get you started. On the default window opened, due to the age of implementation, some of the functionalities do not work. E.g charon (the web browser) does not seem to open https sites even though it should (in principle). Finally, the keyboard shortcuts detailed here should be of some help.

      The interesting part is that you can run win and get a shell on ACME-SAC that lets you interact with the underlying shell (a variant of RC shell) and operating system (Inferno). The shell is pretty cool in that the environment for any program is accessed by the directory /env. Each variable gets a file. You can modify the variable by directly writing to the file. The shell does not re-parse the values. Hence what you write is the value it will have. The shell is rather advanced, and different from the Plan 9 shell. Here are some of the resources on using that shell. Each program gets a new /env mounted with a copy of its parent environment. So any modifications will be visible only to its children. The OS uses union mounts to perform interesting things. See here for an introduction. The limbo compiler (a predecessor to go) is also available from the command line.

      What motivated me to submit this was the recent story on Hull – an alternate shell (yet to be implemented). The Inferno and Plan9 shells are very interesting case studies in how a shell should be implemented.

      I also feel that ACME represents the best line of editors that can be adapted for a touch environment without losing its functionality significantly (by converting the mouse chords to touch actions).

      The development of ACME-SAC has unfortunately completely stopped. However, it is still interesting, and is runnable on modern systems.

      1. 4

        I have used ACME-SAC for years as my cross platform editor at work. It’s nice and easily extensible. It’s small there is also a nice textbook by Brian L. Stuart using Inferno (and Linux) teaching OS design which will explain the inferno design further.

        I can highly recommend having a look at it.

        1. 2

          Thank you for responding! I have tried to use Acme-SAC multiple times as my main editor, but got stuck again and again. I will check out the textbook by Stuart that you suggested to understand how it all fits together.

          What is the base system you use ACME-SAC in? and have you been able to update it with the latest inferno sources? and what are your plumbing rules like?

    10. 2

      So after reading all of the other comments so far the question for me remains: How should one configure this to get roughly the equivalent of any other search engine?

      1. 1

        It depends on an instance administrator adjusting ranking rules for your specific content - there are ways to configure boosting based on programmable criteria and “negative boosting” for the content you have indexed in your instance.

        As a global search engine, you are at the mercy of others having done this to get good results - if you they haven’t, then you can.

        There is no central authority that can censor, promote, or demote content.

        This model works particularly well for curated instances, but will likely be lacking as a global search engine until a decent chunk of the Internet-using population start to run and manage instances.

    11. 10

      Thank you all for the effort!

    12. 2

      XMPP for personal messages (Family, Friends) IRC for evertthing else the fediverse for social media stuff

    13. 7

      I am always surprised that people think OpenBSD is not suited for the desktop? It has got the best Gnome integration of all the BSDs AFAICT and that’s a great desktop for non programmers. The only downside I see is that by default you don’t get an auto upgradable system, so for family members I’d add the m:tier LTS support for packages and run a cron job…

      1. 3

        GNOME is not suited for the desktop.

    14. 2

      Also the connection to Virus Total is a bit off putting. I could not see from the documentation if that’s optional.

      1. 4

        It won’t trigger unless you hit the button. Ironically, you can also block the VT connection attempt using LuLu.

    15. 3
      1. It can’t do anything technologically useful.
      2. It should be fast at doing what it does, so that it is safe to call LOLWUT on production instances.
      3. The output should be entertaining in some way.

      This is irritating to all of us with open PRs for real improvements, bugfixes, and enhancements that are starved for attention.

      Because of the master-slave fiasco and intense work involved with scrubbing everything, he now needs a diversion to like working on his own project again? That’s great, it’s over – now let’s get back to brass tacks and fix defects, finally finish replication enhancements now being worked on for 2 years, finally wrap up streams (Salvatore’s pet project nobody asked for), and improve performance to play catch-up with other datastores.

      1. 30

        Or, antirez can spend his time as he sees fit, just like any other FOSS maintainer.

      2. 9

        I’m sorry your PRs weren’t getting attention, but it was very important to change a word and the negative discourse associated with that (and this resulting cry for help) were much more critical to spend cycles on.

        You can’t prioritize software quality over Twitter grumping, that’d be silly.

        1. 6

          I haven’t followed the details of the master-slave kerfuffle, but it seems to be simply a failure of community management. As a lazy maintainer, it seems like the proper route is just to say “I acknowledge that people feel so strongly about this sort of terminology and will happily accept PR’s to fix the problem; this seems like a good candidate for new contributors to get their feet wet with” and link to a connected issue tracker.

          Then after a year or two of no nobody submitting fixes you close the issue as WONTFIX and get on with life.

          Edit: That said, taking a break from the stuff you have to do and making something functioning, silly and completely irrelevant in the grand scheme of things can be deeply satisfying. Sometimes you need that sort of thing to remind us why we love doing what we do.

          1. 3

            Yeah, I still don’t understand how Twitter discussions can have this impact on people’s lives.

            Together with just some wording used since the beginning of IT. So why can’t words acquire new meanings? Isn’t that the definition of a living language?

            1. 3

              Because the people are suffering from some kind of delusion.

              I would like to see the budding young DBA-to-be who veered off IT/CS/STEM because he or she got triggered by the word “slave”.

              Or even honest testimonies along the lines of “I was always interested in code, but I’d suffer immense panic attacks when I saw the word ‘blacklist’. I’m a Person of Color so this touches me deeply. The maintainer was kind enough to rename it (we settled on disallowlist) and now I commit a few times a year to the project. I have never felt this included and welcome in my life. Best of all? No one even complained about the broken APIs after the rename!”

              1. 1

                What I find weird is the “matter of fact” tone plus many contributors (not necessarily the maintainer) caving in right away, as if they also felt dirty while typing “git push - u origin master” or felt all the weight of worldwide injustices when the main DB switched to the “slave” one. I was relieved reading sane supporters though.

            2. 2

              Yes words do this constantly. But only in a negative way. Negative connotations tend to hang around. That’s why using these words is problematic. Also impractical, since you’d have to add a disclaimer that you mean the word in the new sense not the broadly known old one. If someone knows an example of some words changing from negative to positive connotations I’d be happy to hear about this.

              For the current example I honestly don’t understand the quarrels people have. Why is dropping language that’s strongly tied to a history of colonisation and oppression a bad thing? Especially when other words can describe the same architectural pattern as accurately as the original words?

              And every programmer knows that choice of words is important, we shouldn’t use them too lightly.

              To turn the question around: So why can’t concepts get new names if the old ones are problematic?

              1. 7

                If someone knows an example of some words changing from negative to positive connotations I’d be happy to hear about this.

                • Fun - to cheat or hoax
                • Smart - a sharp stinging pain
                • Fond - a fool
              2. 4

                “Nice” is one of such words. It meant foolish and silly.

                The problem isn’t much about naming by itself: you want to use “disallowedList” and “allowedList”? Want to use “primary” and “replica”? Want to use “kaka” and “popo”, do as you wish. But going ahead and picking a project at seemingly random and force them to change words that have been picked as they are (or used to be) the standard name of those elements in a somewhat aggressive way then that’s where I’m drawing the line.

                Or creating chaos on the issues section or on social media, extending the use of such standard words to the morals of the maintainers, that’s totally disgusting and absolutely useless.

                What I find even more shocking isn’t the vocal part that enjoys stirring up drama for whatever reason (there is clearly a reason why these groups are doing this and it cannot be to make the tech world a friendlier place, that’s for sure) but it is people who just shrugs them off or who, just like you, now supports their point because they are somewhat technically correct.

                Let’s start harassing all Spanish speaker developers who use the word “negro” for their black elements, how about the word “sheet” that reads as poo in Swedish, how about the word “pitch” that is extremely similar to a bad word in some Slavic languages, and “git”?

                That is and would be dumb to do. Also, why is the “American” morality be pushed down the throats of the rest of the world? Just because they still cannot cope with their past, is that a good reason to force everyone to change their behaviour?

                1. 3

                  I share the idea that this debate is totally dumb. There were intellectuals in the 90s that brought this up with Intel and IDE controllers. PATA went away and that debate didn’t matter, but now we see the same bullshit arising again.

                  The most vocal people in this fight are extremely childish and troll/harass developers. That’s not right. If you take a reasonable stance, you’re a racist.

                  I’m tired of outrage culture.

                  I highly recommend Brendan O’Neil’s speech on offence:

                  and I also recommend the original post about this debate with ver well reasoned arguments:


                  1. 2

                    “In fact, pretty much every leap forward in history… pretty much every freedom we enjoy is a product of individuals having given offense. Having offended against the orthodoxies of their age. Offensiveness is not something we have to begrudgingly accept. Offensiveness is the motor of human progress.”

                    I’ll add the people against offending folks are defending beliefs created by offending folks ranging from speech to progress. Just like he said. They wouldn’t exist if their rules were enforced by the orthodoxy of the day when people were trying to get those reforms started. So, they glorify the reformers who offended piles of people creating their current belief systems but say nobody is allowed to offend their orthodoxies suggesting alternative systems. Double standards are a common sign of bullshit.

                    Edit: Oh, wait, he just said that, too, later in the speech. I’m still watching it.

                2. 2

                  how about the word “sheet” that reads as poo in Swedish

                  I don’t want to get into the broader discussion again, but I speak fluent Swedish; sheet /ʃiːt/ does not look or sound like skit /ˈɧiːt/.

                  1. 1

                    Can’t argue with you, I just looked up English words which sounded/looked like bad words in other languages. Maybe they had something specific in mind, don’t know :)

                3. 2

                  IMNSHO the use of the word “slave” isn’t as simple as being “American”. The African slaves were often sold off by their own chieftains, and different types of slavery have existed and (may be argued to) exist around the world.

                  The point about stirring up shit is more relevant. These are homonyms; a word that sounds the same or is spelled the same as another can have different meanings, as rhe examples above.

                  The slave in an IT or mechanical context simply isn’t the same type of slave that picked cotton in the southern states.

                  I’m sure there are plenty of Slavic lobsters here, but I haven’t read a single comment, here or elsewhere, of one of them being triggered by the etymology of that word.

                  1. 2

                    Exactly and that’s because on a global platform, filled with people from all around the world, with absolutely different cultures and languages, people (including myself) are not going to ruin someone else’s day just because they used a word which was/sound/looks/is derogatory in my own language on something totally unrelated.

                    If there was something totally unacceptable, one could look into why such a word was chosen or if it was intended at all, inform them privately of the thing (if, say, they are interested in being known in those countries) and move on. Not starting a debate about something pretty much every single culture in the world has had.

                    This seems to come from the wave of social justice which is plaguing certain countries, where one is offended for someone else and wants to be their saviour, while making everyone more miserable in the process, probably to achieve a “victory” for humanity or just themselves.

                  2. 1

                    It’s not specifically American at all. Human trafficking rings (a polite euphemism for ‘selling people into slavery’) are still being fought by law enforcement around the world today.

                    I’m sure there are plenty of Slavic lobsters here, but I haven’t read a single comment, here or elsewhere, of one of them being triggered by the etymology of that word.

                    Reasonable people aren’t triggered by thousand-year-old etymology.

           indicates $150 billion/year in revenue derived from forced labor, globally. Consider that your users might actually include someone who has been enslaved and would rather not be reminded of it at work.

                    1. 2

                      Yet your example is hypothetical. There might actually be someone. People shouldn’t be triggered by homonyms at all.

                      Maybe the next hill to die on is killing or terminating child processes. Many women need to have late abortions and be reminded at work of infanticide.

                      This will never stop unless maintainers put their foot down and say that messing around with APIs because a vocal minority bullies them is not ok.

                      The case would be stronger if the proponents of this had personal experience to share, or other evidence to back it up. Even then, we’re talking about software, not people. Better would be to donate to Amnesty or do something else than change every word and rewrite all the dictionaries.

                      1. 1

                        People shouldn’t be triggered by homonyms at all.

                        If only we got a choice about what trauma the world inflicted on us.

                        Maybe the next hill to die on is killing or terminating child processes

                        Maybe. But since nobody has, to my knowledge, brought it up - you are raising a ridiculous straw-man (straw-person, ha).

                        This will never stop unless maintainers put their foot down and say that messing around with APIs because a vocal minority bullies them is not ok.

                        Of the things that might stop it, that seems like one of the least likely to work.

                        As noted elsewhere in the thread, “Feel free to submit a complete PR, including all documentation updates” is more than enough to get them to leave you alone. In the unlikely event that someone cares enough to actually do the work, I’d suggest you’ve just gained a hardworking co-contributor.

                4. 1

                  Please do not conflate my questions or position with abusive behaviour towards others. My post was not about that. I haven’t asked you to do anything, nor have I endorsed abusive behaviour by others. If my questions or position causes so much grief and anger maybe it’s worth exploring why that is the case?

                  Please relax, there’s no need for this aggravating tone here.

    16. 8

      The whole source and the book explaining the stuff is at

    17. 2

      Publishers know what they are doing. Nobody cares about people wanting to block Javascript.

      You can disable Javascript of course and at this point the web is still usable without it. However publishers will increasingly turn to protections against JS blockers, you can thank the increasing aggressiveness and popularity of ad blocking extensions for that.

      1. 4

        You can disable JavaScript but not with a usable UI, so practically most people cannot.

        Also, JavaScript should be disabled by default, enabled on a per site basis and marked as “Not Secure” anyway.
        Browsers should make SRI mandatory for JavaScript and they should take special attention to suspect HTTP headers used with scripts.

        1. 1

          Interestingly sites like ebay and amazon do work fine without javascript. Not quite as comfortable but no quirks there either. Ebay has gotten worse over the years I admit….

      2. 2

        Their is a fairly good compromise. I use uMatrix which blocks 3rd party scripts by default and gives you a ui to enable them as needed. Quite often it doesn’t break anything and when it does it’s usually super easy to work out that a script from a cdn is important but a script from twitter or google analytics is not.

    18. 5

      gopher:// atom feed at: gopher:// You can use curl(1) as a fetcher for your feed reader.

    19. 1

      Hm, why is the pf rule redirecting udp traffic to Is that necessary?

      1. 2

        It’s on port 53 for DNS. I don’t believe vmd starts a dns server along with dhcpd, but it gives out the machine’s IP as the DNS server.