1. 2

    If you’ve never heard, @monotux has it on point: mouse keys!

    They should be available by default for X11 with one xorg.conf line. Windows, maybe? The lack of scroll is annoying at times, but one can generally use +/-, Pg Up/Dn, Home/End, etc.

    1. 2

      Perl::Critic should include this!

      Assignment in an if() is problematic for readability. I’ve already been doing this as often as possible for readability.

      1. 3

        A couple of good counter-arguments are QEMU and GCC.

        QEMU’s command-line launcher’s options are unintuitive at best. At worst, it’s sort of a mess. QMP more than makes up for this, however. Its dense JSON is simple to parse in any language, or dictate by hand for manual intervention.

        The sheer number of features provided by GCC is outrageous! Linker flags don’t help in the matter. Writing Make can be tedious. GCC’s man pages are descriptive and helpful, but hard to search.

        UX is as important as UI. Lowe’s hardware store (USA) recently switched from a text-based point-of-sale system that any cashier could quickly memorize and fly though to a touch-screen interface that is not as helpful to the end-user.

        A program needs user input. An accessible interface guarantees this.

        1. 3

          Here’s part of my .vimrc:

          " :W sudo-saves a file

          command W w !sudo tee % > /dev/null

          1. 1

            Remember kids, don’t dig, drill!

            nslookup or ping if you REALLY have to

            1. 2

              Could you elaborate on that?

              https://nlnetlabs.nl/projects/ldns/about/ mentions DNSSEC support and

              A lot of DNS debugging is done with dig, but as dig is made with the same libraries as BIND8/9 (the most used DNS server out there), what are you actually debugging/testing? drill has nothing in common with either NSD nor BIND. During the development process we are actually uncovering obscure bugs in NSD and BIND (and in drill itself).

              …but as we are not talking about testing DNS implementations, that does not seem too relevant? What other advantages does drill have compared to dig?

            1. 2

              Cool domain, misleading title. I was disappointed that this wasn’t some hack that ONLY used HTML to submit and render a unique link. Instead, this is a webpage for a simple HTTP POST API written in PHP with a tracking script.

              “A” for effort.

              1. 1

                At first there was a github form for submitting link. Got too many requests.

              1. 12

                As discussed in the announcement, your browser is selecting dark mode, probably based on your OS setting. I didn’t attempt to be exhaustive (we see a lot of odd user-agent headers) but you’re probably covered. I know there are extensions like Stylish for applying custom per-site CSS, perhaps there’s also one available for a per-site toggle.

                As discussed in the comments on the announcement, an on-site setting would require that someone volunteer to write the feature. If you’re new to the codebase, maybe drop by the chat room, there’s usually someone familiar with it during US daytime that could help with questions.

                  1. 3

                    After undertaking a personal journey to meet CSS where its heart is, I have deployed your PR. Thanks for implementing this!

                    1. 2

                      Thanks for volunteering! Couple smallish comments and hopefully we can add this user setting pretty quick here.

                    2. 0

                      The light mode UI on my phone is simply an atrocity. The dark mode lobsters was hard to swallow, but it’s not bad, though I do prefer the light theme. Thanks, @danielrheath!

                    1. 1

                      Hey icy,

                      Why don’t you just use RSS? Asking for a friend. ;)

                      1. 2

                        I do, actually. RSS is great, but it doesn’t solve the problem of bookmarking random pages in the wild.

                        1. 1

                          Yeah, but can it run Doom?

                          1. 2

                            Doom needed four floppies. Doom 2 took 5.

                            1. 1

                              Perhaps it could be loaded into memory from a DAT cassette.

                              1. 1

                                Most of the Doom data is game assets and levels though, I think? You might be able to squeeze the game engine and a small custom level in 400k.

                                1. 1

                                  Yes it is. But the engine itself is about 700k. The smallest engine (earliest releases) were a little over 500k. You could probably build a smaller one with modern techniques and a focus on size though.

                                  1. 2

                                    Good news, ADoom for Amiga is only 428k! Bad news, Amigas only have double density FDDs so you only have 452k for the rest of the distro.

                            1. 21

                              Please don’t bring this toxicity over to lobste.rs. Let it live and die on the orange site.

                              1. 19

                                I’ve had a few interesting discussions about our tribal and memetic expectations as exemplified by this repository. Sometimes, when somebody does something unbearably cringy in the name of what they think is supremely excellent taste, it is an opportunity to delve deeper into their implicit beliefs.

                                Nowhere in this repository is it ever imagined that C is not an appropriate language for today’s coders. Rather, the machismo which is required to write fresh C code against an ever-steeper gradient of better toolchains for higher-level languages is also the same machismo which is stoked by the underlying family of memes used to theme and decorate the repository.

                                Sometimes a project’s only purpose is to serve as a warning to others. Even in those moments, let us learn something from the precise nature of the warning.

                                1. 22

                                  Can you define what you mean by ‘toxicity’? I don’t see anything ‘toxic’ in this repository.

                                  1. 5

                                    I don’t like the way its naming and meming relies on using virgin man vs not as a shorthand for bad vs not, however ironically.

                                    It’s a cool trick. Why couple it with a bad meme?

                                    1. 19

                                      The meme is incredibly funny, that’s why.

                                  2. 21

                                    Toxicity? Orange site? I didn’t get any of that.

                                    I could agree that the theming is a little overboard, not because of bad taste, but because it detracts from the technical side, as speps said.

                                    Code needs to market itself, and it seems “skullchap” had some fun in that department.

                                    1. 11

                                      It seems interesting from a technical perspective but I agree on the bad taste aspect, it detracts from the technical side.

                                      1. 8

                                        I think we need a new flag, because this isn’t really spam or off-topic: I suggest “bad taste” ;)

                                        1. 27

                                          The best way to deal with content that’s on-topic but otherwise not very valuable is simply to ignore it.

                                          A comment, btw, counts as an upvote, at least as far as visibility on the front page is concerned.

                                          1. 16

                                            Or maybe some more tags. “based” and “redpilled” come to mind :-D

                                            Alright, I’ll see myself out.

                                            1. 5

                                              Agreed. I marked it off-topic. Whatever your taste or politics, this repository was built simply “for the lulz”. It’s not tech, it’s a social experiment with code.

                                              While there are many social topics in the tech world, that’s generally not what lobste.rs is good for.

                                              1. 53

                                                It’s tech, you and others just seem to be distressed by the cultural shibboleths it touches.

                                                We have articles here that are dripping with furry stuff that are routinely defended from fursecution…a mainstream meme plus cool hack isn’t outside our Overton window for me.

                                                1. 10

                                                  Labeling something “toxic” with the intent of banning it is as much of a cultural shibboleth as any of the memes in the article.

                                                  1. 4

                                                    The furry stuff is a positive expression of someone’s own personal identity, while the chad/virgin meme is a ridiculous objectification of others for being ingroup/outgroup. Do you see a difference?

                                                    1. 4

                                                      Yeah, what’s up with all the furry stuff?

                                                    2. 13

                                                      this repository was built simply “for the lulz”. It’s not tech,

                                                      It’s not? I’m confused. I haven’t tried compiling it, but there’s a C file in there with a bunch of complex-looking code in it. Does that count as tech?

                                                      I don’t know if anyone would use this library for reals (I sure hope not), but the same goes for stuff like Brainfuck or (IMHO) a 6502 assembler. There’s a lot of stuff posted here that is, at some level, done for teh lulz.

                                                      1. 8

                                                        this repository was built simply “for the lulz”. It’s not tech, it’s a social experiment with code.

                                                        A lot of software is written “just because” or “for the lulz”. A lot of good software is even written for this express purpose— Linux started out as a hobby project, no?

                                                        I also don’t see what makes this a social experiment. What’s the experiment? The readme being silly? Is that an experiment?

                                                        1. 4

                                                          Linus Torvalds biography is called “Just for fun”, because that is why he wrote Linux. That is how older people say “for the lulz”. Is Linux now also off-topic?

                                                          There is some actual C macro (ab-)use in there, that is interesting to look at. It is def. tech.

                                                          Why are you so triggered by this stupid meme?

                                                      2. 6

                                                        The shitposting C chad versus the virgin crustacean.

                                                      1. 2

                                                        I’m having trouble figuring out how the routing actually works. The README says:

                                                        Uses the Global Socket Relay Network to connect TCP pipes

                                                        but I can’t find any description of this network — ducking for “Global Socket Relay Network” only returns hits talking about the Global Socket package.

                                                        1. 3

                                                          I had the exact same curiosity. In addition to what you stated, found that:

                                                          The GSRN is a free cloud service and is free to use by anyone.

                                                          As stated by their github repository

                                                          My guess is that it’s similar to TURN, where the GSRN bridges each participants outgoing connection. Sounds very cool for someone who’s hosting at home and doesn’t have a public IP address.

                                                          1. 1

                                                            hosting at home and doesn’t have a public IP address.

                                                            (This is what dynamic DNS is for.)

                                                            1. 4

                                                              Dynamic DNS will not help with the fact that you have no public IP(v4) address. This is the case for many modern ISPs, which provide your modem/router with a native IPv6 stack (including public IPv6 address), but a translated, NATed IPv4 address. This is very common practice in Europe.

                                                              Dynamic DNS is useful when you do have a public IPv4 address, but it gets rotated at a particular interval.

                                                              1. 1

                                                                Indeed — in Australia sometimes you only get CGNAT IPv4 with no IPv6 at all.

                                                                1. 1

                                                                  I forgot about carrier-grade NAT, thanks!

                                                          1. 2

                                                            I still use C. Don’t use C; at least not for web development. I like Node.js for web stuff.

                                                            Express.js is my tool for everything Nginx can’t do on its own (except gitweb, which is a Perl CGI script). Most of my pages are static, but templating with EJS is easier than slapping PHP onto HTML. Wrapping one’s head around the different ways to do things can be frustrating, especially with many libraries providing promises, asynchronous callbacks, or standard synchronous APIs. I still don’t know how to use promises, and haven’t found a good reason to with how tiny my apps are. It’s also really nice to have everything including your config, messages, server code, and client code in the same langauge.

                                                            If you want to use C, Kore.io’s documentation is underwhelming at best and misleading at worst. BHCS seems cool, and parsing JSON with jsmn is very easy. Alas, footguns aplenty and I just crawled back to Node for anything web-facing.

                                                            For a database, I either roll my own simple thing using the filesystem, or pick between PostgreSQL and SQLite. SQLite is easier to set-up and is infinitely more portable. You can just up with your files and walk with the database in your pocket instead of having to fiddle with system services and actually configuring your database, which means less shit to fuss with on my desktop. With the hobbyist volume I work with, SQLite is more than enough.

                                                            Python seems like a fair candidate, but I’ve never used Flask or Django or anything, just gave WSGI half a shot back several years ago. Same with Perl. PHP is really the only other web langauge I’ve used as extensively as Node. I’ve heard it’s gotten better. If you really want to shoot yourself in the foot, give it a shot in Bash!

                                                            1. 1

                                                              You use C and Node? Can you confirm my long-time suspicion? Does Node - at least in parts - remind you of C, and how? I don’t write C, but I learned some back in the 90s and I always thought working with Node reminded me of that C period.

                                                              1. 2

                                                                Working with C and Node are two totally different paradigms to me. Working with Node or JavaScript (at least ES6) doesn’t remind me of C at all (besides the keywords and syntax, such as looping, branching, and functions (except let func = (x) => { do_x_stuff...; } and callbacks, which can be done with C using function pointers)).

                                                                More often than not, I hear people refer to JavaScript as “Lisp in C’s clothes,” which may be a more accurate description: it reads like C, and is a fine functional language. Writing C in a functional fashion is possible and my favorite way to write C (you might give John Carmack’s advice on using C++ functionally a read), but it doesn’t remind me of Node at all.

                                                                The environment around Node is radically different from the environment around C. There’s no good C package manager (unless you argue for a VCS or a system’s package manager), objects do not have methods (a function pointer, sure), allocating one’s own memory is an issue, anonymous functions are non-existent (but clever use of macros is real), error-reporting is based on return values and not exceptions (not without a longjmp or something), and the toolchain is completely different. For example, to add another source file to a program, it must be in the Makefile (or whatever build system) and the build updated, and executed if no compiler errors. In Node, a simple #!/usr/bin/env node on the first line and your program is running without intermediate steps.

                                                                In what ways does working with Node remind you of C? I can see Node’s pass-by-value and pass-by-value-of-reference stuff reminding me of working with C’s variables and pointers to some point. Ultimately, working with them is two totally different processes for me. YMMV with an IDE!

                                                            1. 7

                                                              This only affects case-insensitive filesystems that support symbolic links, so it shouldn’t impact people on normal behaving Unix-like systems.

                                                              1. 9

                                                                Notable exception is macOS.

                                                                1. 7

                                                                  To give a more helpful response than the other responses to you, in the era of APFS I’ve taken to creating an APFS volume formatted as case-sensitive and keep my git repos there.

                                                                  This allows applications like git, which usually expect a case-sensitive filesystem, to work correctly, while the OS or other applications can keep the case-insensitive filesystem.

                                                                  I came up with this strategy from working on shared git repos, where occasionally a user using a case-sensitive filesystem might push two different (to them) branches, such as feature/foo and feature/Foo, but git pull on a default case-insensitive macOS filesystem made git get quite upset.

                                                                  I think it’s also worth noting that case-insensitive is a pretty reasonable default on systems like Windows and macOS, which largely target non-technical users who don’t want to be baffled by two files apparently being called the same thing. Sure, us technical folk get it, but we’re very much not in the majority. Calling behaviour that’s intended to be helpful for the majority, “gimped” is unkind and misinformed.

                                                                  1. 6

                                                                    Even as a technical person who is totally comfortable with case-sensitive filesystems, I prefer case insensitivity. Filenames are first and foremost a way to label sequences of bits for the benefit of humans, and are usually generated by humans. So ideally they should have human-friendly semantics, not less-work-for-the-filesystem-programmer semantics.

                                                                  2. 7

                                                                    “Normal behaving Unix-like systems,” not “gimped Unix-certified systems!”

                                                                    1. 14

                                                                      I don’t think this attitude really benefits anyone.

                                                                      1. 3

                                                                        It was snarkily put, but the message is valid. Personally I have never understood how hackers handed a virtual monopoly to Apple after Microsoft’s crumbled.

                                                                        There was a brief period when Microsoft was losing their stranglehold, and during that time, hackers fled not to Linux or BSD, but … to another proprietary system, this time tied to a massive hardware and software walled garden.

                                                                        1. 11

                                                                          They “fled” to another proprietary system because that system could give them something the free systems could not: Ease of use.

                                                                          1. 7

                                                                            Ease of use.

                                                                            This is it. I am all-in on the Apple ecosystem in the last two years after stubbornly clinging to Linux (various distros) for almost two decades. At some point I just couldn’t handle the constant state of partial-brokenness any more. I have more interesting shit to do than figure out why I can’t share my screen properly on a video call or why the audio stops working every other day. Network effects were part of it, I’ll admit, but since I switched, and really embraced the OS, I am happier and more productive.

                                                                            1. 3

                                                                              I disagree, as someone who was using both Windows, MacOS, and Ubuntu systems at the time in a commercial setting.

                                                                              The Linux systems just worked. Back in the days before Docker and friends, you could write a simple script to take a vanilla Ubuntu installation and set it up as a dev machine while you grabbed coffee. Meanwhile, the team I was on spent much effort trying to do the same with MacOS, and still wound up with a bunch of manual faffing around.

                                                                              Furthermore the systems themselves weren’t user serviceable or upgradeable. A few years after the previous experience, I started work with a new client. To my immense displeasure, their ‘local dev environment’ involved installing a ~ 30GiB SQL Server VM, back when that was large. Several of my colleagues literally had to buy new laptops; I just popped down to JB HiFi during lunch, bought a new hard drive, and had swapped it in with time left over for coffee :)

                                                                              Nowadays, I’m running a MacBook Pro w/ Catalina (client machine), and a ThinkPad W540 w/ Ubuntu (personal machine). Again, the Ubuntu experience is vastly superior. I don’t get crashes when I enable my Bluetooth headset mid-Zoom. The MacOS system mysteriously hangs - but only sometimes - when I open the lid, or when I try to log in. The Ubuntu system … just works.

                                                                              And I’m not just considering this from the point of view of a developer. My mother in law bought a new Windows laptop after years of running Ubuntu quite painlessly, and it has given her no end of trouble. The most recent was a conflict between a WiFi driver update and the Windows power saving settings - which manifested as the WiFi ‘going away’ after a few minutes at idle, and not coming back. Took me the best part of an hour to debug.

                                                                              Perhaps by ease of use you’re referring to the Apple ecosystem as a whole? Where you have an Apple watch, an Apple phone, an Apple laptop, an Apple TV … ? Not having experienced that myself, I can imagine that the ease of use of a tightly integrated system could outweigh the costs, especially for inexperienced or non-technical users.

                                                                              1. 4

                                                                                Not having experienced that myself, I can imagine that the ease of use of a tightly integrated system could outweigh the costs, especially for inexperienced or non-technical users.

                                                                                Even as an experienced, technical user (whose daily tasks usually involve large C codebases, and not, say, using Adobe products), having a MacBook, iPhone and Apple TV lets me effortlessly coordinate my ~personal area network~ in ways that are extremely efficient and honestly, pleasurable/joyful. (It helps that my partner uses Apple devices too.) I still do have a FreeBSD desktop but I mostly use it through ssh from my MacBook.

                                                                                I’ll be frank: I don’t love what it represents. But this lets me get on with my life much more effectively than trying to scout out what the least worst Linux laptop is, the least-crappy Android OEM, etc. etc.

                                                                    2. 1

                                                                      ZFS datasets can be set to case-insensitive, but only on dataset creation. Case-insensitive datasets are usually created when setting up corporate SMB/CIFS shares.

                                                                    1. 3


                                                                      1. 25

                                                                        Negatively: Drinking when I got stressed. Now I drink all the time, to the point where it’s an unreasonable portion of my outgoing expenditure and I’ll usually pour myself something to take the edge off before standup. If I could offer any advice to anyone reading; please only drink alcohol during fun, social occasions.

                                                                        1. 10

                                                                          When I was a cable guy, the only outlet I had was drinking. 4 out of 5 mornings I had a hangover, was still buzzed, or even drunk. My (horrible, universally hated) boss reprimanded me for it multiple times a month. The only thing that stopped me was quitting that job in June.

                                                                          With some help, (a week in the hospital and a lung injury) I’ve also quit smoking cigarettes and avoid nicotine. I now have a very nice and infinitely more affordable green tea habit.

                                                                          I drink still, avoid keeping liqour around, and ceased my habit of staying drunk or getting shitfaced regularly. Stress kills, folks.

                                                                          1. 5

                                                                            Thanks for sharing. I think avoiding keeping liquor around is a good point I hadn’t really considered, by now it’s part of the furniture. Maybe I’ll give my liquor shelf to my parents.

                                                                          2. 11

                                                                            A relative taught me these rules when I was a kid:

                                                                            • Never drink on an empty stomach.
                                                                            • Never drink alone.
                                                                            • Drink for the taste, not for the effect.

                                                                            Works for me.

                                                                            1. 6

                                                                              I’ve heard these rules a couple of times, and, to me, they always sound patronizing. It feels on par with telling an addict to “just stop”. How can the advice work when you want to drink on an empty stomach, alone, and for the effect, and it’s out of your control?

                                                                              1. 16

                                                                                These aren’t guidelines for an alcoholic, they’re guidelines to prevent one from becoming an alcoholic.

                                                                                1. 9

                                                                                  Sorry, I realized my first comment was a little intense.

                                                                                  I understand this. I just don’t think they very good guidelines – they’re more of a description of “patterns of people who aren’t alcoholics”. I think what makes someone an alcoholic is a very complex, and often genetic thing. For some, these rules are essentially impossible to follow from the get-go. Additionally, someone can choose to break all these rules all the time, and still not become an alcoholic.

                                                                                  1. 2

                                                                                    I get your point, but if it’s genetic, then a list of rules won’t make a difference one way or the other.

                                                                          1. 3

                                                                            Neat! Why aren’t we playing this at you know where @icy?

                                                                            1. 2

                                                                              We should! I’ll setup a server. ;)

                                                                            1. 32

                                                                              the next time I have to buy a UPS for a piece of equipment that requires power 24/7, I will buy a line-interactive UPS rather than a standby UPS

                                                                              I’ve been wondering why one would get an office, standby UPS for a server (home or otherwise), but then I realized someone who has never been designing server installations indeed has no way to even know what keywords to look for.

                                                                              And now that fewer and fewer companies even have on-premises server rooms, it may be becoming a somewhat obscure knowledge even among professional sysadmins.

                                                                              Maybe it’s time for a collaborative “how to make a server closet” manual…

                                                                              1. 20

                                                                                I would certainly welcome a guide like that.

                                                                                1. 8

                                                                                  I second this. It would be extremely valuable to some of us who are less familiar with this.

                                                                                2. 7

                                                                                  That would be a lovely piece for all of us with nascent home datacenters. :-)

                                                                                  1. 5

                                                                                    “how to make a server closet” manual

                                                                                    Time to dig through the photos I still have for “how not to make a network/server closet!”

                                                                                    1. 5

                                                                                      I’ve just started playing around with some home server gear, and the best general resource I’ve found is the r/homelab wiki. The Hardware Guide was particularly useful to orient myself to the world of decade-old enterprise servers, but it’s UPS subsection doesn’t mention this “line-active” terminology.

                                                                                      1. 1

                                                                                        Maybe it’s time for a collaborative “how to make a server closet” manual…

                                                                                        That would be awesome.

                                                                                        1. 1

                                                                                          how to make a server closet


                                                                                        1. 1

                                                                                          Not much more than sharing a dank meme and plugging some dude’s book. Points for sharing; valid points nonetheless.

                                                                                          1. 2

                                                                                            I am delighted and disappointed that this was something for hypervisors! OVH has a wonderful KVM on their control panel. It’s been touch and go for me with it, mostly because they use something like getty over SSH, I think. (Change your SSH port, it removes a lot of the noise in logs! Less headache to sort through!) Right now I’m looking into something similar but am plugging straight into QEMU’s system console (not the monitor, yet. QMP is really cool! Also, libvirt is too big, it’s a little less domain-specific).

                                                                                            Very interesting use of a capture card.