Threads for sebboh

    1. 2

      Apparently, I have just obligated myself to tear-down, photograph, and review an iconic hand-held chording keyboard. https://lobste.rs/s/8zqsoy/twiddler_chord_notation#c_sel68x

      1. 1

        Hi. I just bought a pair of Twiddler3 units. AMA!

        I’ll start.

        I love this device and the device makes me sad and it also makes me sad to realize that there is just something wrong with me, because I love it anyway.

        I knew from way back when that the Tek Gear folks would ship me a unit that was not glued together if I asked them to. Indeed, they did.

        Glue and the silicon holding strap-case are the only things holding it together. Without the glue.. it creaks when I use it. The case separates easily into two pieces.

        Inside, a big green PCB with little .. snappy momentary switches, of the normal through-hole design.. Hold on, time out. This needs to be a blog post with pictures.

        Ugh, IOU a post, xiaq.. I’ll do it this weekend.

        The little HAT switch (thumb stick) is profoundly useless.

        1. 1

          Looking forward to your post!

          I suppose you’ll cover it in your post, but why did you specifically ask for a unit that was not glued together?

        2. 2
          1. 12

            Some people are really into “unix minimalism” which usually includes hating on anything that works over D-Bus and reinventing wheels instead :)

            secret-service/libsecret/seahorse are pretty great.

            1. 3

              Thank you for saving me from searching the web for ‘seahorse’ only to find it works over D-Bus. :)

              I think that complicated stuff might be useful to someone. It’s not for me, though.

              My personal desktop environment lacks a lot of functionality that others enjoy, but I can jump straight to the appropriate line of source for every piece of functionality that I allow in. It’s … relaxing. I’d rather have problems that are my own darn fault than not know how something I rely on worked in the first place–so I have to just search the web when it eventually breaks.

              You’ll note that I speak very narrowly there and I quickly draw curtains over huge chunks of machinery that I don’t understand at all (the kernel, the cpu, the bus, the devices, the compiler, everything, everything!). There’s just that one little piece I understand well enough to find relaxing, and I can’t let D-Bus or Gnome’s dconf or KDE’s KIO or any of that cool stuff get in there, or I won’t understand it anymore.

          2. 1

            The author has miscategorized the tweet about the “soul-stifling metaverse” so profoundly that I am helpless to do anything other than flag this post. Sorry, user. :(

            1. 3

              Formal methods, like TLA+ and P, […]

              Ok, I know what TLA+ is. (https://en.wikipedia.org/wiki/TLA%2B)

              But, what is P?

                1. 1

                  Ah, thanks. I skipped over that at first, but I followed up on it per your suggestion and found this:

                  P provides a high-level state machine based programming language to formally model and specify distributed systems.

                  https://p-org.github.io/P/whatisP/

              1. 1

                “ana” and “kata” might be used in place of “4+” and “4-”. (I might have mixed up the words!)

                1. 2

                  What does it mean that when I post this to linkedin, it says that a preview cannot be viewed and the link ends up being “https://www.linkedin.com/redir/general-malware-page?url=https%3A%2F%2Fcontrachrome%2ecom%2F”?

                  1. 6

                    Sounds like this is related to these comments on that other site: https://news.ycombinator.com/item?id=31040838#31041937

                    Here are both comments, for your convenience:

                    This site is currently blocked by FortiGuard under the category “Spam URLs”, making it unavailable to some percentage of users on their work devices.

                    The domain seems to have been picked up as a false positive for spam/malware in places. They were blocked by Quad9 too due to one of their underlying data sources (I forget which), but they were unblocked after I submitted a false positive report.

                  2. 6

                    I am going to attempt to stick an ESP32, an i2s microphone, an i2s amplifier, a speaker, a button, and a battery on a breadboard, then duplicate the whole thing, and add software that turns the pair into wifi push-to-talk-style walkie-talkies.

                    1. 1

                      Turns out that the carrier board for the ESP32’s I got is not breadboard friendly, so I had to get creative..

                      First off, the 40 header pins are arranged in two banks of 2x10.

                          ::::::::::
                          
                          ::::::::::
                      

                      If I stick that in a bread board, half the pins would be shorted straight to the other half. I’ll depict the center-line of the breadboard here..

                          ||||||||||
                      ------------------
                          ||||||||||
                      

                      To get around that, I went above the board with half of them (the outer rows) and below the board with the remaining pins. I made the headers on the top female.

                      After I finished all that soldering (my nine year-old helped!) I discovered that the carrier board was physically too wide for my breadboard. I can get the below the board pins connected, sure, but I can’t put any jumper wires in, because the board goes from power rail to power rail.

                      To get around that, I pulled one of the power rails off of a breadboard and attached a second breadboard there.

                      Then I soldered headers on the mic and amp, and that’s all I got done so far. :)

                    2. 7

                      Tvix and Guix in the same tag?

                      1. 10

                        Linux gets tagged unix despite technically not being one, so I guess it is close enough for anyone to care.

                        1. 8

                          sure, we can call it “nix-family” or something I guess

                          1. 13

                            Maybe too cute: nix-ish

                                1. 2

                                  ix is *nix-y but not nix-y. IMO “nix” was a poor choice of name that was bound to cause confusion eventually.

                            1. 4

                              In that case why not make it more general and call it e.g. “package-management”? That would encompass not only nix, but also guix, tvix, dpkg, yum, portage, chocolatey etc.

                              It’s a lot more broad than just “nix”, but so are most of the other tags on Lobsters, with the exception being programming language tags. Maybe it could be combined with a new tag “operating-system” for NixOS/GuixSD.

                              1. 22

                                I think that nix is so different that it should not be lumped together with other package managers

                                1. 13

                                  I agree. While nix is technically a package manager, it has a vastly different approach to it. I’d go ahead and call the tag nix and post nix and nix-related things under it, and only if and when the GUIX people consistently take over that tag, at that point we can consider creating a tag for them too, but not before. because premature optimisation is the root of all evil.

                                2. 19

                                  Every time a nix tag gets suggested, consensus seems to fizzle out as we discuss what the best name for an inclusive tag would be.

                                  At this point, I’m willing to stick with nix and not let perfect be the enemy of the good. We should have had a nix tag years ago!

                              2. 2

                                I don’t see many Guix stories so it should be a non-issue.

                              3. 12

                                Two more important ur-languages!

                                • Something that represents spreadsheet programming (one of the most popular programming paradigms in the world)
                                • SQL

                                Misc thoughts:

                                • Arguably there’s enough difference between constraint solving languages and logic languages, but I think Picat is the only constraint language that’s also a full programming language.
                                • XML based languages? HTML is the dominant one, but there are a few other niche ones out there, mostly mediated through a GUI abstraction.
                                • I’ve often wondered what’s the problem that most clearly shows the difference between paradigms. My best guess rn is “given a list of integers, return the squares of the odds”. At the very least it showcases the differences between imperative, functional, and array paradigms, maybe also logic?
                                1. 5

                                  Spreadsheets: programming model is reactive programming, related to dataflow as mentioned elsethread. Data model is flat tables, basically commensurate with SQL.


                                  SQL I think is definitely prolog-esque. @Sophistifunk says in the sibling:

                                  the value in SQL is getting data you put in back out

                                  That’s true in a sense, but not really. Part of the value provided by relational databases is a high degree of reliability; but you might as well say that the value in ZFS is getting data you put in back out. Which is somewhat true, but ZFS is not a programming language but a storage model.

                                  The value of prolog is not in deriving novel facts, but fairly boring ones derived from those which you input. The same is true of SQL. Any time you do something like perform a join, you are deriving new facts from the data you input.

                                  1. 1

                                    fwiw I meant “novel” as in “you didn’t enter them” not as any sort of value judgement. Joins in SQL are mostly just a convenience to reverse the act of normalisation, and I think the search-engine-esque aspect of Prologs are what separate SQL tuple stores from them, despite a shallow resemblance in the fact that they both aim to be declarative in nature. But it’s not something I’m adamant about, I think there’s a reasonable case to be made either way and we’re probably arguing about the colour of the shed.

                                  2. 4

                                    I agree on both of these, and would lump dataflow in with Spreadsheets. Somebody suggested SQL would go in with Prolog, but I’m a hard-disagree on that. The essence of SQL is defining relations and selecting subsets of them, whereas prolog is about defining facts and then rules from which novel facts may be derived; the value in SQL is getting data you put in back out, whereas the value in Prolog is surfacing the new data implied by the facts and rules you put in.

                                    1. 2

                                      Came here to say this. Note, you probably mean SGML-based rather than XML-based. And egads, SQL is super important!

                                      That said.. What is the lineage of SQL? …Oh, Prolog, by way of “Datalog”, according to Wikipedia. So, this one is covered by one of the ur-languages. Neat.

                                      1. 3

                                        I don’t think being either SGML based or XML based is likely to affect the language category. That’s just syntax.

                                    2. 4

                                      “re-legend-able”: You can change the labels (legend) on these keys.

                                      1. 1

                                        Did I mess up the spelling? My spellchecker didn’t know the word relegendable, but I suspected it to be a fault of my dictionary for aspell…

                                        1. 1

                                          It’s fine. My eye saw “rele-gen-dable”, so I didn’t understand what the word was or how to search the web for it. All the search results were for customizable keycaps… so I tried searching for “relegen” and got more confused, but the word “legend” did appear in those results, then I figured it out.. :)

                                      2. 2

                                        They mention that their OS is open-source but it seems you need to join a wait list to get an access to the code.

                                        Then, change the title. Life is too short for fake open-source. We have arrived at the point where anything less than source-in-hand is probably a lie.

                                        1. 1

                                          What is SIB? …I think I don’t get a joke. Does SIB just mean x86?

                                          1. 2

                                            SIB is short for (s)cale (i)ndex (b)ase, the format of some memory operands on x86. E.G. [rbx + 4*rcx]; rbx is the base (address of some array), rcx is the index (of some element of that array), and 4 is the scale (size of an individual element of the array).

                                          2. 1

                                            M-x neuralink-mode

                                            Oh ho, actually it will be M-x inferior-neuralink.

                                            I’ll see myself out. :)

                                            1. 2

                                              Here’s a tip. If your web app occasionally hangs in PROD but never TEST and while it is hung, resource usage is low, but it’s really acting like it is in some kinda IOWAIT, check if your developers used a secure hash function instead of a regular hash function and maybe the only real difference between the two is that the former hits /dev/random instead of /dev/urandom … Where was I? Oh. Run cat /dev/random > /dev/null on TEST and see if it suddenly acts just like PROD.

                                              And have fun! :)

                                              1. 2

                                                An alternative twitter in which all current posts are displayed on the screen at the same time, using a kind of tree layout.. (Well, I imagine bending it around visually to make a wheel layout, but that’s just display-level fluff.) All posted messages that start with “You know,” share a common root. When some starting letters are common to a lot of posts (in the last 24 hours?) then those letters are displayed with a larger font.

                                                So, trending topics and hash tags and such would arise naturally from the medium.. so long as people put their hashtags in the front. (I thought about arranging it by longest common substring anywhere within the message, but I wasn’t sure what that would look like.)

                                                If some really long common starting string exists, then the whole message is displayed on the home page in a large font.

                                                Users would navigate by typing. If you type “you know,”, that’s a filter.. You’d only see messages that start with that.

                                                1. 2

                                                  I’d really like a HTTP proxy inside Emacs so that I can navigate and edit requests and responses with all of the usual text editing tricks. It would be something like a cross between mitmproxy and magit.

                                                  1. 3

                                                    Ok, breathe. Let’s work the problem.

                                                    At this point, not a moment later, I would have taken a low-level image of the device. Just ’cause.

                                                    1. 3

                                                      I want a physical button on my keyboard named “LOCAL”. It’s a modifier. And I want there to be no mechanism for sending any “local” codes to a remote machine. In fact, I want the specifications for any interstitial infrastructure to explicitly forbid the transmission of such codes. They’d be of extremely limited use, because of that. Perfect.

                                                      1. 3

                                                        do elaborate, why would you want this?

                                                        1. 9

                                                          I want a key that is just mine. I don’t want RET ~ . to terminate a ssh session. That strange invocation is required because all the other keys are being sent to the remote. I want LOCAL+c (like ctrl+c, but guaranteed to be received and handled locally). I bet I could find more uses for it, too.

                                                          edit: fix typo: terminal –> terminate

                                                          1. 2

                                                            ah I see, thought it was something in the more eccentric side where similar phrasing has been used, but there the meaning was about input modes that was used to taint tag input to prevent it from crossing certain boundaries (oops I pasted the password thing into the wrong window that happened to be networked).

                                                            1. 1

                                                              That’s in the ballpark, I guess. (I have a passing familiarity with ‘taint mode’ from perl?)

                                                              The first example I was thinking of was something like “7-bit ascii” vs “8-bit ascii”.. (See https://en.wikipedia.org/wiki/8-bit_clean I guess.) But, the control codes are all represented within the first five bits so, not the example I was thinking it was!

                                                              The second example is Private Address Spaces. 192.168.*.* and friends don’t get passed between routers. Sure, some manufacturer or crazy admin could break that rule, but they’d be “wrong, wrong, wrong!”, and everybody would know it.

                                                              I want a button reserved for private use. Now that I thought it through, my idea is clearly not about terminals. Sorry OhhhhYeaaaaah. :)

                                                      2. 2

                                                        Yanking both lower control arms off the front of my Nissan and replacing them. If you’re near Bellevue, Nebraska, check out DIY Garage. In short, you rent their hydraulic lift and tools for a flat hourly rate. It’s kinda awesome.