1. 3

    Not to discount this work here, but Vim is still available for Amiga. I know I’d prefer that!

    1. 4

      I really wonder why they used Weston. Is it still the “reference” Wayland compositor? I thought wlroots now fits that.

      1. 6

        Yes, Weston is still the reference implementation. wlroots isn’t really in a position to change that; it’s just a really good implementation, but with no special ties to the Wayland project.

        1. 2

          Collabora has sold in Weston in quite a few places you’d perhaps not look (the RDP implementation is also a reason in this specific case) - and they had their hands in the WSL cookie jar as well. See the slides to https://aglammjapan2019.sched.com/event/L8Vr for a treat.

        1. 2

          Is the lowercase i just a restyled U+0069 or is it a U+0131 ?

          1. 2

            It’s a restyled lowercase i, as the site notes :)

            since the dotted glyphs for i and j are obviously inferior to the undotted variants, those are used instead.

            1. 6

              Just FYI, several Turkic languages use dotless I and ı as completely separate letters from dotted İ and i.

              1. 2

                Welp. Not sure what I can do about that :V

                1. 7

                  Live up to the name, and dot the dotless versions. Obviously.

          1. 27

            I’d recommend a NUC here. I’ve tried using an RPi 1, and then an RPi 3 as desktops, but both were painful compared to a NUC, which was drama-free. I’ve never had any problems with mainstream Linux on mine. IIRC, it comes with either SATA or M.2.

            1. 4

              I’ve also used an Intel compute stick when traveling. It has the added benefit of not needing an hdmi cable.

              1. 2

                It has its benefits, but it was slow when it came out five years ago… I used one for a conference room and it really is disappointing. A NUC would have been better. Harder to lose if you do take it traveling, too.

              2. 3

                I agree with this: If you don’t want a laptop, a very small form factor PC is a better choice than a more barebones SBC for use as a general-purpose PC. The NUC is great, though there’s some similar alternatives on the market too.

                I have a Zotac ZBOX from a little while ago. It has a SATA SSD, Intel CPU and GPU, and works great in Linux. In particular it has two gigabit NICs and wifi, which has made it useful to me for things like inline network traffic diagnosis, but it’s generally useful as a Linux (or, presumably, Windows) PC.

                The one I own has hdmi, displayport, and vga, making it compatible with a wide selection of monitors. That’s important if you’re expecting to use random displays you find wherever you’re going to. It also comes with a VESA bracket so it can be attached to the back of some computer monitors, which is nice for reducing clutter and cabling.

                1. 2

                  Never heard of a NUC before now but I can agree that trying to use an RPi as a desktop is unpleasant.

                  1. 1

                    Yeah the Pi CPUs are very underpowered, it’s not even a fair comparison. They’re different machines for different purposes. I would strongly recommend against using a Pi as your primary Linux development machine.

                    I think this is the raspberry Pi 4 CPU, at 739 / 500:

                    https://www.cpubenchmark.net/cpu.php?cpu=ARM+Cortex-A72+4+Core+1500+MHz&id=3917

                    And here’s the one in the NUC I bought for less than $500, at 7869 / 2350 :

                    https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i5-8260U+%40+1.60GHz&id=3724

                    So it’s it’s 4-5x faster single-threaded, and 10x faster overall !!! Huge difference.

                    One of them is 1500 Mhz and the other one is 1600 Mhz, but there’s a >10x difference in computer. So never use clock speed to compare CPUs, especially when the architecture is different!

                  2. 2

                    Yeah I just bought 2 NUCs to replace a tower and a mini PC. They’re very small, powerful, and the latest ones seem low power and quiet.

                    The less powerful NUC was $450, and I got portable 1920x1080 monitor for $200, so it’s much cheaper than a laptop, and honestly pretty close in size! And the CPU is good, about as powerful as the best desktop CPUs you could get circa 2014:

                    https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i5-8260U+%40+1.60GHz&id=3724

                    old CPU which was best in class in a tower in 2014: https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-4790+%40+3.60GHz&id=2226

                    (the more powerful one was $800 total and even faster: https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-10710U+%40+1.10GHz&id=3567 although surprisingly not that much faster)

                    This setup, along with a keyboard and trackball, is very productive for coding. I’m like the OP and don’t like using a laptop. IMO the keyboard and monitor shouldn’t be close together for good posture.

                    In contrast the tower PC in 2014 was $700 + ~$300 in upgrades, and the monitor from ~2006 was $1000 or more. Everything is USB-C too on the NUC/monitor setup which is nice.

                    I guess my tip is to not upgrade your PC for 7-10 years and you’ll be pleasantly surprised :) USB-C seems like a big improvement.

                    1. 4

                      Yeah I just bought 2 NUCs to replace a tower and a mini PC. They’re very small, powerful, and the latest ones seem low power and quiet.

                      NUCs are great machines, but they are definitely not quiet. Because of their blower-style fan, they become quite loud as soon as the CPU is just a bit under load. Audio proof: https://www.youtube.com/watch?v=rOkyFLrPc3E&t=341s

                      1. 2

                        So far I haven’t had a problem, but it’s only been about 3 weeks.

                        The noise was the #1 thing I was worried about, since I’m sensitive to it, but it seems fine. For reference I replaced the GPU fan in my 2014 Dell tower because it was ridiculously noisy, and I have a 2012 era Mac Mini clone that is also ridiculously noisy when idle. The latter honestly 10x louder than the NUC when idle, and I have them sitting side by side now.

                        The idle noise bothers me the most. I don’t have any usage patterns where you are running with high CPU for hours on end. Playing HD video doesn’t do much to the CPU; that appears to be mostly GPU.

                        I’m comparing against a low bar of older desktop PCs, but I also think Macbook Airs have a similar issue – the fan spins really loud when you put them under load. For me that has been OK. (AdBlock goes a long way on the Macbooks, since ads code in JS is terrible and often pegs the CPU.)


                        I think the newer CPUs in the NUCs are lower power too. Looking at the CPU benchmarks above, the 2014 Dell i7 is rated a 84 W TDP. The 2020 i5 is MORE powerful, and rated 10 W TDP down and 25 W TDP up.

                        I’m not following all the details, but my impression is that while CPUs didn’t get that much faster in the last 7 years, the power usage went down dramatically. And thus the need to spin up fans, and that’s what I’ve experienced so far.

                        I should start compiling a bunch of C++ and running my open source release process to be sure. But honestly I don’t know of any great alternative to the NUCs, so I went ahead and bought a second one after using the first one for 3 weeks. They’re head and shoulders above my old PCs in all dimensions, including noise, which were pretty decent at the time.

                        I think the earlier NUCs had a lot of problems, but it seems (hopefully) they’ve been smoothed out by now. I did have to Google for a few Ubuntu driver issues on one of them and edit some config files. The audio wasn’t reliable on one of them until I manually changed a config with Vim.

                    2. 1

                      I have also been using a NUC for a year now, and it works well. A lot of monitors also allow you to screw the NUC to its back, decluttering your desk.

                      Just watch out, it has no speakers of it’s own!

                    1. 1

                      Wow, this brings back memories. MSJVM 2.0?

                      1. 7

                        I love systemd services and templates and the features it has to restart things, but I think this is a pretty absurd thing to say:

                        and run it as a systemd service, because how else are you going to start this thing anyways, cron?

                        Does anyone seriously think that Linux didn’t properly support services before systemd? It’s not like /sbin/init was symlinked to bash

                        1. 5

                          i’m dealing with this right now on Alpine Linux, which doesn’t use systemd. other than xdg autostart, there are no user services. the autostart thing is very very limited compared to systemd user services..

                          1. 3

                            the point i was making here is that there’s some sort of a controversy around adoption of systemd across major linux distribution in general, and in Debian in particular. It was a tongue-in-cheeck comment about how i am making a stand and declaring systemd as a standard, even though there is an ongoing controversy, but i’m too tired of that debate to engage into it in that specific post.

                            I find the fact that you not only bit on the bait but also that your comment here is the most highly rated kind of strange, to be honest. You’d think comments regarding the actual setup would be more interesting than a single line commenting on that controversy.

                            Or maybe people assumed I truly didn’t know about alternatives to systemd, in which case I apologize: it is obvious, to me, that there are multiple ways of starting processes outside of systemd (cron being the actual, truly most common occurence i find in the wild, because it allows regular users to inject themselves in the boot process without root).

                            i hope that clarifies things…

                          1. 5

                            I have a bunch of keyboards. One of my special interests is high-quality rubber dome boards. I have a buyer’s guide on my web site, if anyone is interested.

                            Right now, though:

                            • On my Windows 7 PC, I use an Acer 6312K, with Alps-like Acer switches. Quite nice.
                            • On my old Macs, I use an original Apple USB Keyboard for the iMac G3. Not very nice.

                            Other notable keyboards include IBM Model M, Topre Realforce 104UG, Dell QuietKey RT7D5JTW. None of them see any use at the moment. Just ordered a Dell AT102W. Looking forward to trying it!

                            1. 3

                              Since you like rubber dome boards, I’m curious what you think about a Sun Type-5. I have one whose layout is very nostalgic for me, that I have been thinking of converting to USB with a spare Pro Micro or similar.

                              1. 3

                                Would love to try one, but haven’t had the chance. It’s absolutely beautiful, and I’ve heard good things about it, apart from the difficulty to use it with other computers. Sounds like a worthwhile project!

                            1. 19
                              [ $USER != "root" ] && echo You must be root && exit 1
                              

                              I’ve always felt a bit uneasy about this one. I mean, what if echo fails? :-)

                              So I usually do

                              [ $USER != "root" ] && { echo You must be root; exit 1; }
                              

                              instead… just to be safe.

                              1. 10

                                Indeed, echo can fail. Redirecting stdout to /dev/full is probably the easiest way to make this happen but a named pipe can be used if more control is required. The sentence from the article “The echo command always exists with 0” is untrue (in addition to containing a typo).

                                1. 3

                                  Don’t you need set +e; before echo, just to be extra safe?

                                  1. 3

                                    I had to look that up. set +e disables the -e option:

                                              -e      Exit immediately if a simple command (see SHELL  GRAMMAR
                                                      above) exits with a non-zero status
                                    

                                    That’s not enabled by default, though, and I personally don’t use it.

                                    1. 1

                                      Or &&true at the end, if it’s okay for this command to fail. EDIT: see replies

                                      It’s as much of a kludge as any other, and I’m not sure how to save the return value of a command here, but bash -ec 'false && true; echo $?' will return 0 and not exit from failure. EDIT: it echoes 1 (saving the return value), see replies for why.

                                      1. 2

                                        You probably mean || true. But yeah, that works!

                                        1. 1

                                          I did mean || true, but in the process of questioning what was going on I learned that && true appears to also prevent exit from -e and save the return value!

                                          E.G.,

                                          #!/bin/bash -e
                                          f(){
                                          return 3
                                          }
                                          f && true ; echo $?
                                          

                                          Echoes 3. I used a function and return to prove it isn’t simply a generic 1 from failure (as false would provide). Adding -x will also show you more of what’s going on.

                                    2. 2

                                      I personally use the following formatting, which flips the logic, uses a builtin, and printd to stderr.

                                      [ "${USER}" == "root" ] || {printf "%s\n" "User must be 'root'" 1>&2; exit 1; }

                                      When I start doing a larger amount of checks, I wrap the command group within a function, which turns into the following, and can optionally set the exit code.

                                      die() { printf "%s\n" "${1}" 1>&2; exit ${2:-1}; }
                                      ...
                                      [ "${USER}" == "root" ] || die "User must be 'root'"
                                      
                                      1. 2

                                        I also always print to standard out, but I’m pretty sure most shells have echo as a built-in. The form I usually use is

                                        err() { echo "$1" 1>&2; exit 1; }
                                        
                                    1. 9

                                      I think CDE is beautiful in a brutalist sort of way, and very nostalgic having grown up with SparcStation workstations, but when I compiled it on Manjaro on my Pinebook Pro it really feels slow and dated. I want to love it, but I can hardly even use it.

                                      Customizing the panel and menus is a chore I haven’t figured out much about. The default .desktop launchers for other DEs don’t show up because CDE uses a different launcher format.

                                      I could go on. It’s not horrible or unusable, but it’s slower than any other DE I have installed, and it feels like a chore to use.

                                      I also tried NsCDE, which reminded me of everything I dislike about CDE and had a number of issues on its own: it’s even slower, less documented, and it would crash often and hard.

                                      At the end of the day I am running CDE on a very quirky platform anyway; some of my experience is tainted from that. But if KDE Plasma runs faster on the same hardware than CDE, I can’t help but assume something is wrong.

                                      1. 6

                                        I was one of the people pestering “The Open Group” about making CDE open source.

                                        I have no illusions about its future though: it’s a historical artifact, and it’s probably better to just keep it buildable on modern systems. Any attempt to “make CDE great again” should start with rewriting it from scratch, or rather creating a new DE on the same design principles.

                                        Also, no idea why it’s tagged “games”. ;)

                                        1. 6

                                          Also, no idea why it’s tagged “games”. ;)

                                          Because we’re compiling “GENERIC TETRIS” from 1992 😁

                                          Someone on Reddit pointed to a modern variant, a sort of rewrite: https://github.com/NsCDE/NsCDE/

                                          1. 1

                                            I tried this, and it was less usable than old CDE… Also they seemed to spend a lot of effort rewriting some of the weirder things about CDE that I doubt are particularly useful to have in 2021.

                                            I’m also a little annoyed that the desktop would crash if I tried to make a change in the settings window (which is also far too much of a CDE settings clone… I’d like to be able to set an image as my wallpaper as opposed to a 1-bit pattern… and for that matter it would be really nice if the settings window would let me apply anything without crashing on me…

                                        2. 4

                                          But if KDE Plasma runs faster on the same hardware than CDE, I can’t help but assume something is wrong.

                                          I feel like it’s probably that there are compiler optimizations that you’re missing out on. I’ve never used CDE myself, but I know that (1) it’s old (and so therefore should be less resource-intensive) and (2) Plasma is relatively heavy (compared to XFCE/LXDE).

                                          …or, felt like it. After looking through the wiki page section on software tuning, I now suspect that the problem is lack of video acceleration or concurrency on the part of CDE. Older software is generally less resource-intensive, sure, but it also tends to use less of the hardware features that we’ve developed over time - the above, as well as SIMD instructions and newer kernel APIs.

                                          1. 1

                                            I was going to chime in with the same thing. I don’t know anything about either desktop environment, but I can only imagine that CDE is written like it’s running on a single-core machine with no hardware acceleration. Whereas I’m confident that Plasma uses OpenGL and I’m assuming it also uses concurrency and/or threads and/or separate processes to communicate between different parts of the desktop.

                                            Plus, there are people who will claim that Plasma now uses less memory than Xfce on the same machine. I doubt that’s true in general, but even if it could be true enough for someone to grab a screenshot at one moment in time, that’s pretty good for Plasma!

                                        1. 18

                                          Our sysadmin @alynpost is resigning as moderator and sysadmin to focus on other projects. Prgmr will no longer be donating hosting. For security’s sake, I’ve reset all tokens and you’ll have to log in again - sorry for the hassle.

                                          Is there any risk that Lobste.rs could go offline in the future due to running costs?

                                          1. 38

                                            No. The new hosting bill is $75/month, which I don’t mind at all.

                                            1. 14

                                              Isn’t that very overpriced? 40€/month at hetzner gets you a dedicated machine with a Ryzen 5 3600, 64GB of RAM and 512GB of SSD on RAID1 (no affiliation or anything, it’s just the provider I know).

                                              1. 8

                                                Hetzner also just uses electricity from sustainable sources, while with digital ocean it depends on the location

                                                1. 3

                                                  Hetzner is the goat! I use them for my VPS and it’s the best deal I’ve seen yet for cloud services. The fact that they’re environmentally friendly as well makes it that much better!

                                                2. 5

                                                  Does Hetzner have managed MySQL? Seems like it’s a big hassle removed there.

                                                  1. 6

                                                    You can rent a managed server with Hetzner and they have a panel to install and mange MySQL on it, but I don’t think it’s comparable to DigitalOcean’s managed offerings.

                                                    1. 1

                                                      Would be really interesting to hear what they’re doing with “managed”. Because based on the prices I’d say prgrmr.com is also not cheap compared to the hardware you get.

                                                3. 5

                                                  Would you consider accepting donations for hosting?

                                                  1. 35

                                                    I appreciate the offers but prefer not to, no. Still looking for someone to print-on-demand stickers, though.

                                                    1. 12

                                                      I’ll buy $75 worth of stickers every month to show my appreciation.

                                                      1. 6

                                                        Minor dissenting opinion:

                                                        I support a lot of people on Patreon and expect nothing in return. Chipping in $5/month to Lobste.rs because I like the community and the stuff that gets shared here isn’t a tall order, and won’t come with any entitlement. (A lot of the people I support are artists and content creators that are usually in high demand from the rest of the community.)

                                                        I can’t speak for the rest of the community, but I don’t think I’m particularly saintly in this regard. :P

                                                        If the expenses grow, please don’t rule this option out entirely.

                                                        1. 3

                                                          It seems to me that the expectation comes from the design of sites which ask for monthly donations. Thinking out loud here, but a donations system which really was just a donations system, something more similar to ko-fi and didn’t have names attached, might help highlight the fact that by donating one is helping out rather than a new account tier?

                                                          I personally also donate on Patreon and expect nothing.

                                                        2. 4

                                                          Thank you! That is a great attitude.

                                                          I have one concern though. What happens when lobste.rs keeps growing and the bill increases? What is your maximum you would spend on the site? Wouldn‘t it be better to care about that rather earlier than later?

                                                          1. 22

                                                            By design, Lobsters grows pretty slowly. I’m thinking of design decisions like invites vs open signups, and a narrow focus rather than a subreddit for everything. Growth is not a goal like it would be in a startup, and I’d pause invites if we saw some kind of huge spike.

                                                            Right off we should have plenty of spare capacity. I aimed to overprovision this new server and we’ll see if I eyeballed that correctly as we reach peak traffic during the US work week. If the hosting bill goes to about 10x current I’ll start reconsidering donations. But that may never happen! Hosting costs slowly decline as power gets cheaper, data centers get built, and fiber gets laid. Lobsters is cheap to run because it’s a CRUD SQL app pushing around text a few kilobytes at a time and our size increases slowly. I hope not to jinx it, but it seems likely that our hosting bill is flat or declines over the next decade.

                                                          2. 2

                                                            Not print-on-demand afaik, but Sticker Mule has been great to work with in the past for me.

                                                            1. 1

                                                              Redbubble do print on demand for stickers, iirc.

                                                              1. 1

                                                                I’m definitely in the market for some stickers if you find a service or have any left over from the first batch!

                                                            2. 5

                                                              Does hosting lobster requires lots of CPU or RAM?

                                                              1. 5

                                                                It’s Rails. So both :)

                                                                1. -1

                                                                  #rust

                                                          1. 15

                                                            Bad title, but actually interesting read. Except this part:

                                                            A good webcam, in my opinion, is a device that provides a decent sound quality

                                                            Maybe I’m just realistically pessimistic but years of experience with people and their shitty audio setups made me swear to never ever use a room mic myself for a video or audio call.

                                                            1. 11

                                                              When using a MacBook Pro for video calls I can get away with using the inbuilt mic as others tell me I come across very clearly and with no background noise / echo etc. I’ve noticed the same with other callers on Apple devices.

                                                              Those on our company’s (expensive) Dells all need to wear headsets to be heard properly and avoid noise / echo.

                                                              I don’t know what Apple is doing with their mics and processing of the audio but it works.

                                                              1. 11

                                                                The Apple mic array is doing a ton of digital signal processing behind the scenes – identifying voice-like noise and “steering” to it using phased array techniques. That stuff is really cool but expensive to develop.

                                                                1. 2

                                                                  It sounds cool, but in reality it is not that hard to develop. And they only have three mics, that gives only a very crude beam-steering abilities.

                                                                  1. 2

                                                                    I wonder why other device / OS manufacturers aren’t providing something similar then. Perhaps it’s encumbered by patents or is much harder to implement if you don’t have your hands on both the hardware and OS. Windows drivers should have enough access though, I’d have thought.

                                                                    1. 1

                                                                      Crude is good enough to distinguish between the voice directly ahead of the camera and other sources. If two people are directly in front of the camera, the chance is good that both intend to be heard.

                                                                2. 2

                                                                  I use one and it works (and I’m conscious enough of these things to have spent almost €1k on conference quality improvements, and some of it was my own money). Location is everything. My microphone is far from my keyboard, somewhat directional, and I’m alone in the room.

                                                                  if I wanted to build a good-quality product I’d probably spend a lot of effort on using two or three good microphones and driver code and training/calibration tools to be able to boost the voice and suppress noise sources (typing on the keyboard, construction work in the neighbouring offices, neighbours fighting, whatever). And I’d forget absolutely 4k.

                                                                  I’m sure 4k resolution is useful for something, but being able to count the hairs on people’s chins during video conferences is not likely to help the conference achieve its purpose.

                                                                  1. 2

                                                                    That and probably no current videoconferencing system allocates users enough bandwidth to transmit 4k anyway, even if their internet connection suffices for it.

                                                                  2. 2

                                                                    My solution to all this, is I bought a good microphone. I have 2 now, a blue yeti, and a rode podcaster. The former is a condenser mic, so its a bit finicky on room noise pickup. The latter is a shotgun mic which is way better for meetings. I bought an arm for them as well.

                                                                    My only problem with all this is I kinda want the whole thing in a package, so I’m tempted to try to buy a new arm with in arm cable management (I HATE CABLES DIE DIE DIE), and to then get an rpi4 with the camera module v2 and make this whole setup work off the boom arm and setup obs there to act as a usb camera passthrough for say 720p. I’m also wondering if I solder up an led light array powered off usb too by the camera. Lighting seems to be the biggest issue with most live meeting setups.

                                                                    Then I can just use like xpra to connect to obs on the pi and all the stupid software on any system I plug this crap into will “just work” and think of the entire thing as a mic/camera but I’ll have sane audio filters.

                                                                    I’ve started down this path actually but not entirely sure I want to do the entire race. It all seems like a ton of silly work for little gain. Depends how bored I get this winter.

                                                                    1. 1

                                                                      Is OBS running on a Pi really good for that? I mean, I’ve thought about building a webcam out of a Pi and a HQ Camera module (and by my suggestion a friend did so), but he used Ethernet/RTSP from the Pi, and I thought about just getting a UVC stream from the Pi and using OBS on the computer it’s plugged into.

                                                                      I guess the real question I have is, how well does OBS run on a Raspberry Pi?

                                                                      1. 1

                                                                        Great question. I’m not entirely sure to be honest, I have a spare 4b 8gig I can test on. But my fallback option is this: https://www.lattepanda.com/products/3.html

                                                                        For 1080/720p should be enough and i’m also trying to have the goal of it doing all this over usb as a device not over ethernet/wifi which is a huge pita. The wifi is the only thing i’ll use and use it for having xpra run obs so I can disconnect/reconnect to things. I might just abandon the pi as the backbone and just use x86 instead because its a lot less of a pain to maybe do something that could be booted/installed off of pxe.

                                                                        You could run obs on the host computer as well instead of on the soc, my goal here was to more to have “obs in a box hooked up to a camera and mic”. It won’t connect super fast if I power it off the host bus and will have to boot but the tradeoffs seem worth it.

                                                                    2. 1

                                                                      Bad title, but actually interesting read.

                                                                      I’m open for suggestions on improving the title :)

                                                                      Maybe I’m just realistically pessimistic but years of experience with people and their shitty audio setups made me swear to never ever use a room mic myself for a video or audio call.

                                                                      It is actually possible to make a good audio setup with room mic. Of course, in some cases it is very hard, if someone is sitting in a crammed open space, but this product is supposed to be used basically at home, where it is much easier to do.

                                                                      1. 1

                                                                        I didn’t say it’s impossible, but I seem to have exclusively worked with people who don’t care about others in the past. I’m regularly the only one using a headset with a microphone, some people at least have earbuds with a non crappy mic, but environmental noise or static is more common than not. And yes, maybe I’m just grumpy because nobody seems to care a bit.

                                                                        Regarding the title: I think “good” is very subjective here, especially given the many different use cases. Yes, my ThinkPad one is horrible, but for team meetings where I have the people on a 14” laptop screen the one in e.g. 4-5y old Macbooks is totally fine. Also I kinda like the Logitech ones (forgot the model) that were actually just 70-100€ and maybe? catered to streamers. No, it’s not 4k but I honestly don’t see the need for that, many people I know never watch this on big enough screens to even notice.

                                                                        1. 2

                                                                          the Logitech ones (forgot the model) that were actually just 70-100€ and maybe? catered to streamers

                                                                          Maybe the C920 HD? They’re excellent, especially for their price. Not sure about the quality of the built-in mic, I always use a headset, but it’s overall a very solid product.

                                                                        2. 1

                                                                          I’m open for suggestions on improving the title :)

                                                                          Buzzfeed it! Top 10 reasons you can’t buy a good webcam, #10 will shock you! I think its fine as-is though, but I am also annoyed that getting good video and audio even for zoom stuff is sooooo more effort than i’d expected. I appreciate the people that put in the effort on calls now though. So much background noise that could be eliminated with a filter through obs or some other audio processing that would remove my headphones letting me hear every wash cycle of their clothes. (also, why do people not mute when not talking or try to do laundry when they’re not on a meeting but I digress)

                                                                          1. 1

                                                                            Top 10 reasons you can’t buy a good webcam, #10 will shock you!

                                                                            Ughh, thanks, I hate it :)

                                                                            So much background noise that could be eliminated with a filter through obs or some other audio processing

                                                                            When in a meeting from PC - sure, it’s possible. When someone is on a meeting from phone it’s both really hard to do anything custom and generally a lot more noise, because someone is walking by a busy street, or standing next to a grinding coffee machine… Or does their laundry, as you say.

                                                                            Seems like the only solution here is to convince people to buy some noise-cancelling headsets for their phone.

                                                                        3. 1

                                                                          At work, I have a fairly expensive VoIP phone with a speakerphone mode that I use exclusively as a microphone. It works very well in my office. In my home office, I’ve been using the microphone built into my Surface Book 2. That also works very well, though it works far better with Teams than Signal. As far as I can tell (having not looked at the code), Teams is doing some dynamic measurement to detect the latency between the sound and the speaker. This is really apparent when you use a wireless setup (for social things, I sometimes use the WiFi display functionality of my Xbox to send video and audio to the living room screen and speakers - this has about half a second latency, which Teams is fine with but Signal can’t handle at all).

                                                                          My webcam actually does have a microphone but I’ve not tried using it.

                                                                        1. 2

                                                                          This looks really useful for me! Thanks!

                                                                          1. 8

                                                                            Might I suggest using terminal colors to highlight ASCII bytes?

                                                                            1. 3

                                                                              Maybe hexyl (which is already colorful) should also gain this xd’s important features (codepages for non-printable chars)…

                                                                              1. 2

                                                                                Great idea, you should let them know about your concept.

                                                                              1. 8

                                                                                Although I have known about Kakoune for a while, I only recently found out that it’s licensed under Unlicense, which I find unsettling for legal reasons.

                                                                                Otherwise, I haven’t really used it much. How does it compare to vis? I have grown very fond of it for terminal editing, to the degree that I usually uninstall vim on all my machines to replace it with vis.

                                                                                1. 5

                                                                                  I stopped off at vis (and sam) along the way from Vim to Kakoune. vis was fairly nice, but ultimately I found it really, really wanted you to move around and make selections with structural-regular-expressions language, and I never quite got the hang of it (quick, what’s the difference between +- and -+?)

                                                                                  In contrast, Kakoune supports basically the same operations as SREs, but encourages you to move around and make selections with immediate, visual feedback — and it’s still easily scriptable, thanks to the “interactive keys are the scripting language” model the article describes.

                                                                                  It’s a bit of a shame that Kakoune’s licensing civil disobedience excludes people who just want a nice text editor, but even if you can’t use Kakoune’s code I hope you (or other people) will steal its ideas and go on to make new, cool things.

                                                                                  1. 6

                                                                                    It’s a bit of a shame that Kakoune’s licensing civil disobedience excludes people who just want a nice text editor,

                                                                                    Huh? I just looked at the UNLICENSE file; unless I’m missing something, it just drops Kakoune into the public domain. SQLite has the same thing going on.

                                                                                    1. 3

                                                                                      The issue is allegedly that it’s not possible to do that under every legal system. Germany seems to be an example where that could cause issues. CC0 handles this better by adding a “fallback” clause in case that it’s not possible.

                                                                                      1. 4

                                                                                        Legal systems are not laws of nature. If no one would ever take you to court or fine you for violating a law, that law does not apply to you. Unlicense, WTFPL, etc are great examples of this - extremely strong signals from author that they will not take any actions against you no matter what you do with the content under that license.

                                                                                        1. 1

                                                                                          Unlicensed, WTFPL, and even CC0 are banned by Google due to opinions by their legal team. While I don’t trust Google for a lot of things, I think it’s safe to trust their legal team thought about this and had their reasoning.

                                                                                          1. 4

                                                                                            But Google’s risk appetite should be pretty different than yours. The legal system hits everybody different.

                                                                                            1. 1

                                                                                              What do you mean by this? Google’s legal team is going to be playing liability games in a paranoid way that is obviously irrelevant for anyone not engaged in corporate LARP.

                                                                                              Like, actually, no appeals to authority, no vague paranoia, what would actually go wrong if you used WTFPL or CC0 in Germany for a personal project?

                                                                                              1. 1

                                                                                                CC0 is fine in Germany, UNLICENSE is the problem.

                                                                                                But otherwise, you’re right. In most cases, nobody cares what license is being used (other than ideological reasons). A small hobby project might just as well have a self-contradictory license, and it wouldn’t be a practical problem. But depending on the scope of what is being done, there are always legal vultures, just like with patent trolls or people who blackmail torrent users, that might find a way to make some money from legal imperfections.

                                                                                                I’m not a legal expert, so I try not to bet on these kinds of things. If CC0 and UNLICENSE are functionally equivalent, signal the same message (“do what you want”) but one is less risky that the other, I’ll take the safer option.

                                                                                      2. 2

                                                                                        What does SRE stand for, in this case?

                                                                                        1. 5

                                                                                          “Structural regular expressions”, I’d wager?

                                                                                          1. 5

                                                                                            structural-regular-expressions

                                                                                      1. 13

                                                                                        IRC’s lack of federation and agreed-upon extensability is what drove me to XMPP over a decade ago. Never looked back.

                                                                                        1. 12

                                                                                          Too bad XMPP was effectively embraced/extended/extinguished by Google. In no small way thanks to lack of message acknowledgement in the protocol, which translated to lost messages and zombie presence, which was specially bad across servers, so it paid to be in the same server (which became typically google) as the other endpoint.

                                                                                          I did resist that, but unfortunately most of my contacts were in the Google server, and I got isolated from them when Google cut the cord. Ultimately, I never adopted Google Talk (out of principle), but XMPP has never been the same after that.

                                                                                          End to end encryption is also optional and not the default, which makes XMPP not much of an improvement over IRC. My hopes are with Matrix taking off, or a truly better (read: fully distributed) replacement like Tox gaining traction.

                                                                                          1. 5

                                                                                            Showerthought: decentralised protocols needs to have some kind of antinetwork effects baked into them somehow, where there’s some kind of reward for staying out of the monoculture. I dunno what this actually looks like, though. Feels like the sort of thing some of the blockchain people might have a good answer for.

                                                                                            1. 7

                                                                                              That’s a fascinating idea and I disagree. :D Network effects are powerful for good reason: centralization and economies of scale are efficient, both in resources like computer power, and in mental resources like “which the heck IRC network do I start a new channel on anyway”. What you do need is ways to avoid lock-in. If big popular network X starts abusing its power, then the reasonable response is to pick up your stakes and go somewhere else. So, that response needs to be as easy as possible. Low barriers to entry for creating new servers, low barriers to moving servers, low barriers to leaving servers.

                                                                                              I expect for any human system your going to result in something like Zipf’s law governing the distribution of who goes where; I don’t have a good reason for saying so, it’s just so damn common. Look at the population of Mastodon servers for example (I saw a really good graphic of sizes of servers and connections between them as a graph of interconnected bubbles once, I wish I could find it again). In my mind a healthy distributed community will probably have a handful of major servers/networks/instances, dozens or hundreds of medium-but-still-significant ones, and innumerable tiny ones.

                                                                                              1. 3

                                                                                                More and more these days I feel like “efficiency” at a large enough scale is just another way to say “homogeneity”. BBSes and their store-and-forward message networks like FidoNet and RelayNet were certainly less efficient than the present internet, but they were a lot more interesting. Personal webpages at some-isp.com/~whoever might have been less efficient (by whatever metric you choose) than everyone posting on Facebook and Twitter but at least they actually felt personal. Of course I realize to some degree I’m over-romanticizing the past (culturally, BBSes and FidoNet especially, as well as the pre-social-media internet, were a lot more white, male, and cishet than the internet is today; and technologically, I’d gnaw my own arm off to not have to go back to dialup speeds), and having lowered the bar to publish content on the internet has arguably broadened the spectrum of viewpoints that can be expressed, but part of me wonders if the establishment of the internet monoculture we’ve ended up with, where the likes of Facebook basically IS the entire internet to the “average” person, was really necessary to get there.

                                                                                              2. 3

                                                                                                I think in a capitalist system this is never going to be enough. What we really need is antitrust enforcement to prevent giant corporations from existing / gobbling up 98% of any kind of user.

                                                                                            2. 3

                                                                                              This! Too bad XMPP never really caught on after the explosion of social media, it’s a (near) perfect protocol for real time text-based communication, and then some.

                                                                                              1. 21

                                                                                                It didn’t simply “not caught on”, it was deliberately starved by Facebook and Google by disabling federation between their networks and everyone else. There was a brief moment around 2010 when I could talk to all my friends on gTalk and Facebook via an XMPP client, so it did actually work.

                                                                                                (This was my personal moment when I stopped considering Google to be “not evil”.)

                                                                                                1. 3

                                                                                                  It was neat to have federatoion with gtalk, but when that died I finally got a bunch of my contacts off Google’s weak xmpp server and onto a better one, and onto better clients, etc. Was a net win for me

                                                                                                  1. 5

                                                                                                    What are “better clients” these days for XMPP? I love the IDEA of XMPP, but I loathe the implementations.

                                                                                                    1. 6

                                                                                                      Dino, Gajim, Conversations. You may want to select a suitable server from (or check your server via) https://compliance.conversations.im/ for the best UX.

                                                                                                    2. 5

                                                                                                      I don’t have that much influence over my contacts :-)

                                                                                                      1. 6

                                                                                                        This.

                                                                                                        Network effects win out over the network itself, every time.

                                                                                                        1. 1

                                                                                                          I guess neither do I? That’s why it took Google turning off the server to make them switch

                                                                                                      2. 3

                                                                                                        IIRC it was Facebook that was a bad actor and started letting the communication go only one way to siphon users from gtalk and forced Google’s hand.

                                                                                                        1. 5

                                                                                                          Google was playing with Google+ at that moment and wanted to build a walled garden, which included a chat app(s). They even invented some “technical” reasons why XMPP wasn’t at all workable (after it has been working for them for years.)

                                                                                                          1. 2

                                                                                                            It was weird ever since Android was released. The server could federate with other servers just fine, but Google Talk for Android spoke a proprietary C2S protocol, because the regular XMPP C2S involves keeping a TCP connection perpetually open, and that can’t be done on a smartphone without unacceptable power consumption.

                                                                                                            I’m not sure that truly counts as a “good” technical reason to abandon S2S XMPP, but it meant that the Google Talk server was now privileged above all other XMPP servers in hard-to-resolve ways. It made S2S federation less relevant, because servers were no longer interchangeable.

                                                                                                            1. 1

                                                                                                              I’m not sure the way GTalk clients talk to their server had anything to do with how the server talked to others. Even if it was, they could’ve treated as a technical problem needed solving rather than an excuse to drop the whole thing.

                                                                                                              1. 2

                                                                                                                Dropping federation was claimed at the time (fully plausibly, imo) to be about spam mitigation. There was certainly a lot of XMPP spam around that time.

                                                                                                              2. 1

                                                                                                                I have been using regular XMPP c2s on my phones over mobile data continuously since 2009 when I got my first smartphone. Battery life has never been an issue. I think if you have tonnes of TCPs the batterylife thing can be true, but for one XMPP session the battery impact is a myth

                                                                                                            2. 3

                                                                                                              AFAIK Facebook never had federated XMPP, just a slightly working c2s bridge

                                                                                                              1. 1

                                                                                                                To make sure my memory wasn’t playing any tricks on me I did a quick google search. It did.

                                                                                                                To make Facebook Chat available everywhere, we are using the technology Jabber (XMPP), an open messaging protocol supported by most instant messaging software,

                                                                                                                From: https://www.facebook.com/notes/facebook-app/facebook-chat-now-available-everywhere/297991732130/

                                                                                                                I don’t remember the move they did on Google to siphon users though, but I remember thinking it was a scummy move.

                                                                                                                1. 2

                                                                                                                  That link is talking about their c2s bridge. You still needed a Facebook account to use it. It was not federated.

                                                                                                            3. 2

                                                                                                              That might be your experience but I’m not sure it’s true for the majority.

                                                                                                              From my contact list of like 30 people 20 weren’t using GTalk in the first place (and no one use used FB for this, completely separate type of folks) and they all stopped using XMPP independently, not because of anything Google. And yes, there were interop problems with those 5, but overall I see the problem of XMPP’s downfall in popularity kinda orthogonal to Google, not related.

                                                                                                              1. 3

                                                                                                                There’s definitely some truth to that, but still, my experience differs greatly. The majority of my contacts used Gtalk back in the day, and once that was off, they simply migrated to more popular, walled garden messaging services. That was the point in time where maintaining my own, self hosted XMPP VPS instance became unjustifiable in terms of the monthly cost and time, simply because there was no one I could talk to anymore.

                                                                                                            4. 4

                                                                                                              I often hear this, but I’ve been doing most of my communicating with XMPP continuously for almost 20 years and it just keeps getting better and the community contiues to expand and get work done.

                                                                                                              When I first got a JabberID the best I could do was use an MSN gateway to chat with some highschool pals from Gaim and have them complain that my text wasn’t in fun colours.

                                                                                                              Now I can chat with most of my friends and family directly to their JabberIDs because it’s “just one more chat app” to them on their Android phone. I can send and receive text and picture messages with the phone network over XMPP, and just this month started receiving all voice calls to my phone number over XMPP. There are decent clients for every non-Apple platform and lots of exciting ecosystem stuff happening.

                                                                                                              I think good protocols and free movements are slower because there is so much less money and attention, but there’s also less flash in the pan fad adoption, less being left high and dry by corporate M&A, and over time when the apps you used to compete with are long gone you stand as what is left and still working.

                                                                                                              1. 4

                                                                                                                My experience tells me that the biggest obstacle of introducing open and battle-tested protocols to the masses is the insane friction of installing yet another app and opening yet another account. Most people simply can’t be bothered with it.

                                                                                                                I used to do a lot of fun stuff with XMPP back in the day, just like you did, but nowadays, it’s extremely hard to make non-geek people around me join the bandwagon of pretty much anything outside the usual FAANG mainstream stuff. The concept of open protocols, federation, etc. is a very foreign concept to many ordinary people, for reasons I could never fully grasp.

                                                                                                                Apparently, no one has ever solved that problem, despite many of them trying so hard.

                                                                                                                1. 2

                                                                                                                  I don’t really use XMPP, but I know that “just one more chat app” never works with almost everyone in my circle of friends. Unfortunately I still have to use Facebook Messenger to communicate with some people.

                                                                                                                2. 3

                                                                                                                  When I was building stuff with XMPP, I found it a little difficult to grasp. At its core, it was a very good idea and continues to drive how federation works in the modern world. I’m not sure if this has to do with the fact that it used XML and wasn’t capable of being transmitted using JSON, protobuf, or any other lightweight transport medium. Or whether it had to do with an extensive list of proposals/extensions in various states of completion that made the topology of the protocol almost impossible to visualize. But in my opinion, it’s not a “perfect” protocol by any means. There’s a good (technical) reason why most IM service operators moved away from XMPP after a while.

                                                                                                                  I do wish something would take its place, though.

                                                                                                                  1. 5

                                                                                                                    Meanwhile it takes about a page or two of code to make an IRC bot.

                                                                                                                    1. 4

                                                                                                                      XMPP has gotten a lot better, to be fair – a few years ago, the situation really was dire in terms of having a set of extensions that enabled halfway decent mobile support.

                                                                                                                      It isn’t a perfect protocol (XML is a bit outdated nowadays, for one) – but crucially, the thing it has shown itself to be really good at is the extensibility aspect: the core is standardized as a set of IETF RFCs, and there are established ways to extend the core that protocols like IRC and Matrix really lack.

                                                                                                                      IRC has IRCv3 Capability Negotiation, sure, but that’s still geared toward client-server extensibility — XMPP lets you send blobs of XML to other users (or servers) and have the server just forward them, and provides a set of mechanisms to discover what anything you can talk to supports (XEP-0030 Service Discovery). This means, for example, you can develop A/V calls as a client-to-client feature without the server ever having to care about how they work, since you’re building on top of the standard core features that all servers support.

                                                                                                                      Matrix seems to be denying the idea that extensibility is required, and think they can get away with having One True Protocol. I don’t necessarily think this is a good long-term solution, but we’ll see…

                                                                                                                      1. 4

                                                                                                                        Matrix has the Spec Proposal progress for moving the core spec forward. And it has namespacing (with “m.” reserved as the core prefix, rest should use reverse domain like “rs.lobste.*”) for extension. What do you think is missing?

                                                                                                                        1. 1

                                                                                                                          Okay, this may have improved since I last checked; it looks like they at least have the basics of some kind of dynamic feature / capability discovery stuff down.

                                                                                                                        2. 2

                                                                                                                          IRCv3 has client-to-client tags which can contain up to 4096 bytes per message of arbitrary data, which can be attached to any message, or be sent as standalone TAGMSG.

                                                                                                                          This is actually how emoji reactions, thread replies, and stuff like read/delivery notifications are implemented, and some clients already made a prototype using it for handshaking WebRTC calls.

                                                                                                                          1. 4

                                                                                                                            Sure. However, message tags are nowhere near ubiquitous; some IRC netadmins / developers even reject the idea that arbitrary client-to-client communication is a good thing (ref).

                                                                                                                            You can get arbitrary client-to-client communication with ircv3 in some configurations. My point is that XMPP allows it in every configuration; in fact, that’s one of the things that lets you call your implementation XMPP :p

                                                                                                                          2. 1

                                                                                                                            I have been using XMPP on mobile without issue since at least 2009

                                                                                                                      2. 2

                                                                                                                        How is IRC not federated? It’s transparently federated, unlike XMPP/Email/Matrix/ActivityPub/… that require a (user, server) tuple for identification, but it still doesn’t have a central point of failure or just one network.

                                                                                                                        1. 3

                                                                                                                          IRC is not federated because a user is required to have a “nick” on each network they want to participate in. I have identities on at least 4 different disconnected IRC networks.

                                                                                                                          The IRC server to server protocol that allows networks to scale is very nice, and in an old-internet world of few bad actors having a single global network would have been great. But since we obviously don’t have a single global network, and since the network members cannot communicate with each other, it is not a federated system.

                                                                                                                          1. 3

                                                                                                                            Servers in a network federate, true. But it’s not an open federation like email, where anyone can participate in a network by running their own server.

                                                                                                                        1. 1
                                                                                                                          $SHELL
                                                                                                                          ~ % echo $SHELL
                                                                                                                          /usr/local/bin/zsh
                                                                                                                          

                                                                                                                          Eh, I don’t know. That tells me that it’s configured as my shell but does not necessarily tell me the location of the shell I’m currently typing in.

                                                                                                                          I can hardly notice the difference. Since you have quit the terminal and started a new session, isn’t the shell you are using guaranteed to be the one configured?

                                                                                                                          1. 9

                                                                                                                            I can hardly notice the difference. Since you have quit the terminal and started a new session, isn’t the shell you are using guaranteed to be the one configured?

                                                                                                                            I think this is the entire point of the article, “is it guaranteed?” The author is presenting a way to be sure your assumption about what is running is what is actually running, outside of the normal checks someone such as myself might run, such as echo’ing the $SHELL variable.

                                                                                                                            If we abstract this a bit, let’s examine the value of a variable halfway through the execution of a program. We believe the value should not have changed, but without looking at the source code, that is a big assumption and the reason we’d be writing tests. The author just let us prove which actual executable was running.

                                                                                                                            For a more concrete example, this screenshot is not edited at all. I clicked the ‘Terminal’ icon on my (admittedly Linux) desktop and immediately echo’d the $SHELL variable. It returns /bin/zsh. But when I use the author’s fuser suggestion, it shows there are no copies of that running, only /bin/bash! You can see all I had to do to fool echo $SHELL was set SHELL to be a new value in my .bashrc file.

                                                                                                                            So to answer the question, no it is not guaranteed and the author just let you prove it.

                                                                                                                            1. 1

                                                                                                                              I can see your point, but “The argument to chsh will be the shell for your subsequent logins as well as the content of $SHELL” is a promise made by the Unix-like environment. If you don’t trust the environment (which makes sense: maybe there is a rootkit), then you shouldn’t trust the output of fuser either, since it’s also part of the environment.

                                                                                                                              Your example of examining source code reminds me of this story. What if the tool you use to view the source also has a backdoor to hide a statement that changes the variable? :)

                                                                                                                              1. 3

                                                                                                                                I take your comment in the “:)” light it is intended and would like to meet you in the middle. I half considered going down the crazy extremes, but my example was more to point to the article giving us a way to start down the road of proving our assumptions, the same as we would prove the assumption that $x shouldn’t ever be negative in such-and-such a function.

                                                                                                                                I think the happy middle ground which allows that one might want to do more than echo $SHELL and less than cover my house in foil is the fact that I am often a fool and make silly decisions, often after saying “This shouldn’t hurt anything…” Occasionally I have found it very useful to validate my assumptions, only to realize that something I decided to do X months ago actually invalidated them. With how often that has proven true, I think the article’s offering of a way to prove the promise made by the Unix-like environment true, or false, is a very worthwhile thing, even if often it will not be needed.

                                                                                                                              2. 1

                                                                                                                                Thanks for this. I was afraid that what I was trying to convey wouldn’t quite come across. It’s a little meta in that I was curious if I could figure out the current path of the current process of the shell I was typing in.

                                                                                                                              3. 5

                                                                                                                                I just opened a terminal with my default shell being /bin/bash. I typed zsh, and at the zsh prompt typed, echo $SHELL. The response was, /bin/bash because that’s my login shell, and the one that spawned zsh.

                                                                                                                              1. 2

                                                                                                                                Another way is to be explicit in saying what shell the terminal app should run.

                                                                                                                                1. 1

                                                                                                                                  Given that the article mentions brew, being explicit would break upon update + cleanup.

                                                                                                                                  1. 1

                                                                                                                                    I’ve been using brew for years and haven’t had a problem. /usr/local/bin/zsh is a symlink for a reason.

                                                                                                                                    1. 1

                                                                                                                                      Another way is to be explicit in saying what shell the terminal app should run.

                                                                                                                                      Thought you meant:

                                                                                                                                      /usr/local/Cellar/zsh/5.7.1/bin/zsh
                                                                                                                                      

                                                                                                                                      Did I misunderstand the above?

                                                                                                                                      1. 2

                                                                                                                                        I think GP is referring to, in this example, /usr/local/bin/zsh.

                                                                                                                                1. 1

                                                                                                                                  I’ve been using PowerShell on non-Windows platforms since the first open source release. I don’t love it, but there are some really nice things about it.

                                                                                                                                  For someone who knows PowerShell, what would compel me to learn Nushell? PowerShell has a ton of built-in functionality, and basically anything that it can’t do natively can be done via .net through it.

                                                                                                                                  1. 3

                                                                                                                                    Curious what the differences between the two USB HDMI capture devices are. I have two with identical form factors to the ones used in the TinyPilot V1 and V2, and I can’t tell a difference between the two other than the one used in the V2 requiring a USB 3.0 port?

                                                                                                                                    1. 2

                                                                                                                                      I believe the primary reason for the change of device was to free up space around the USB port, I believe the only material difference with the device itself is is the packaging (ie. cable or not).

                                                                                                                                      There was some detailed discussion on a Twitter thread regarding this class of device here, including ‘USB 3.0’ variant:
                                                                                                                                      https://twitter.com/Ascii211/status/1273380591115911168

                                                                                                                                      I have the HDMI capture device used in TinyPilot v1, and was going to use a short USB extension to achieve the same result.

                                                                                                                                      1. 2

                                                                                                                                        Oh wow, I just looked at the blue plug on the “USB 3” variant, and indeed it’s just a blue, four-pin (not 3.0) USB connector. 🤯

                                                                                                                                    1. 2

                                                                                                                                      I appreciate the ingenuity, but this is a lot more complex and hard to wrap my head around than “standard,” three-test implementations.

                                                                                                                                      I always love making a program or script smaller and just being clever, and I keep up with things like the IOCCC, but usually, I don’t see the benefit in the real world of being “clever” when something needs to be maintained. Even by myself, because given a long enough time without touching it I’ll forget how it works, too.

                                                                                                                                      Given that fizzbuzz is generally thought of as a question for interviewers to test thought processes and practices around general programming, and not actually something useful besides “food for thought,” I would personally appreciate something clear and concise over something like this, which isn’t really clear about how it works unless you really take a close look at the code.

                                                                                                                                      1. 1

                                                                                                                                        I’ll grant you the first one is a bit tricky, but what about the second implementation that was posted? Is that one too clever as well? And given that both work, which would be easier to modify if say, multiples of 7 were to print out “Quxx”?