Threads for vegai

  1. 9

    I’ve really enjoyed using Matrix, hopefully when sync is faster I can lure more of my friends to use it.

    1. 2

      meh…Startup (initial connection delay) is considerably slower that IRC. It’s a bit of a downgrade in terms of overall polish of clients too (but again, IRC is soo much bare-bones so it’s simpler by design)

      1. 4

        IRC is nice but I prefer Matrix over it due to the ease of use: I got my fiancee to use Matrix with me on my homeserver, but I doubt i would’ve ever got her use IRC. :)

        1. 1

          I got my parents to use IRC in early 2000s. It wasn’t that difficult, just installed an irc client that automatically connects to a server and channel.

          Matrix would be a hard sell now that Telegram and Whatsapp exist.

          1. 7

            the point of the OP is that Matrix clients have to be better than TG or WhatsApp to win, and that’snwhat we’re aiming for.

            1. 3

              In my experience using Matrix for the last several years, most Matrix clients seem to be struggling to keep up in terms of features/functionality. Which is unfortunate, because the official clients that are web/browser based are slow and frustrating to use on older devices. That said, the Android Element.io app is not too bad :)

              I think supporting multiple (unofficial…) clients is very important, since it prevents “vendor lock in”, which can totally happen even when the protocol is federated if everyone ends up depending on the official client and (hypothetically, but not totally impossible…) it is sold/acquired by some nefarious company in the future… I don’t know if the current situation is from Matrix being some quickly moving target, or if implementing the features is just… hard. In any case, it’s not great having such limited options for clients.

              1. 4

                I wouldn’t say that “most” matrix clients are struggling to keep up in features/functionality - it’s more that we’re still figuring out some features (as per the OP) and everyone (including Element) is playing catchup to a fast moving target.

                Totally agreed that vendor lockin is a total antigoal. Element is not the “official” Matrix client - it’s just a client, like Netscape was just a browser in the early days of the web. It happens to be written by the team who created Matrix, but the two are separate these days: matrix.org/foundation v element.io/careers.

                In terms of native Desktop apps, we’re hoping matrix-rust-sdk will power a new generation of excellent native apps - ElementX iOS supports macOS too, for instance, and Fractal-next is already a GTK app based on rust-sdk.

                1. 2

                  and Fractal-next is already a GTK app based on rust-sdk.

                  Yeah… but that doesn’t even support E2EE[1]. I consider that to be a major feature of Matrix, without it Matrix is just a slower way to exchange unencrypted text online. Last time I looked, a few Matrix clients were struggling to implement E2EE.

                  1. https://gitlab.gnome.org/GNOME/fractal/-/issues/717
                  1. 2

                    If you look at the checkboxes on that bug, all the hard bits are already done (thanks to leaning on matrix-rust-sdk). You can literally use Fractal-next for E2EE today. They just need to hook up UI for the remaining edge cases (eg key backups). In terms if why that hasn’t happened yet… it’s a FOSS project; PRs welcome.

                  2.  

                    Just want to give shoutout to Nheko! I use it daily on my desktop.

      1. 24

        Can we have a snarky version, to replace n-gate.com?

        1. 36

          I tried few-shot training GPT-3 by copying 4-5 HN headlines and their n-gate summaries into the prompt. Then I pasted some headlines from HN’s frontpage today:


          Microsoft Windows is prohibited at Gitlab

          Gitlab (business model: “Uber for Git”) has decided that it will no longer support Microsoft Windows (business model: “Uber for proprietary software”). Hackernews, who have all been using Macs for the past ten years and have never even heard of Windows, are shocked and appalled that anyone would use such a terrible operating system. They spend the next few hours patting themselves on the back for making the right choice, and then get into a heated argument over which text editor is the best.


          Bringing back the golden days of Bell Labs

          A New York Times article (business model: “Uber for articles about the good old days”) about an attempt to recreate Bell Labs (business model: “Uber for the telephone”) in Silicon Valley. Hackernews, most of whom are too young to remember the good old days, bemoan the fact that everything was better back then and that the world is going to shit. A few Hackernews try to explain to the others that the world has always been going to shit, and that things were never as good as they seem in retrospect.


          Alex Jones must pay $4m in damages for Sandy Hook hoax claims

          Alex Jones (business model: “Uber for bullshit”) has been ordered to pay $4 million in damages for claiming that the Sandy Hook massacre was a hoax. Hackernews, who have never heard of Alex Jones or Sandy Hook, spend the next few hours trying to figure out what a hoax is.


          Is DALL-E 2 ‘gluing things together’ without understanding their relationships?

          OpenAI (business model: “Uber for AI”) releases a new version of its DALL-E image-generation algorithm, which is able to generate images from textual descriptions. Hackernews, who are not sure what an algorithm is, spends the next few hours trying to figure out what an image is.

          1. 20

            A New York Times article (business model: “Uber for articles about the good old days”)

            Hackernews, most of whom are too young to remember the good old days, bemoan the fact that everything was better back then and that the world is going to shit.

            Alex Jones (business model: “Uber for bullshit”)

            Okay, I think it’s safe to say that GPT-3 just passed the Turing test with flying colours :-D

            1. 9

              This is pretty much perfect!

              1. 5

                This would be the only weekly newsletter I would subscribe to, awesome.

                1. 1

                  These are so good that I’m almost tempted to ask for evidence that you actually ran these through GPT-3 instead of writing them yourself.

                  I wonder how far are we from a Netflix comedy special that’s entirely performed live by an AI…

                  1. 2

                    I wonder how far are we from a Netflix comedy special that’s entirely performed live by an AI…

                    We’re already there!

                    Seriously though, these systems seem pretty nifty for brainstorming, but the extreme cost of re-training makes it difficult to generate something topical. Even OpenAI’s newest, biggest, most expensive text model (text-davinci-002) is running a year behind on training data.

                2. 2

                  I tried replacing the GPT-3 prompt with:

                  "Write a snarky one-sentence summary of the following article: %s\n\n"
                  

                  Here is the result. Not particularly snarky. Maybe GPT-3 needs to be shown an example of the tone in order to maintain it.

                  1. 10

                    Tried “Write a dark-humorous one-sentence summary of the following article:\n%s\n\n” on gpt-3 playground (using text-davinci-002) for the first few lines of https://github.com/hackergrrl/art-of-readme, and I got this:

                    A dark-humorous one-sentence summary of the article would be: “The README file is a long-standing tradition of developers trying to be helpful, but really just annoying users.”

                    1. 2

                      Please @nathell provide different toned variants like this!

                1. 1

                  I guess this is based on the fact that Windows 11 looks pretty much like the Plasma Desktop. This is not a bad thing, I very rapidly became to like it more than the Windows 10 look after upgrading.

                  1. 2

                    The MBA M2 is developing a reputation for running hot. https://arstechnica.com/gadgets/2022/07/the-new-macbook-air-runs-so-hot-that-it-affects-performance-it-isnt-the-first-time/

                    My MBP M2 seems to work great and I’ve heard nothing but good things about the M1 machines.

                    1. 5

                      To be clear, the thermal throttling folks have found shows up when you out it under sustained “pro”-type workloads, and even then it’s faster than the M1 and has phenomenal battery life. Unless you’re simultaneously taxing all the CPU and GPU cores simultaneously for sustained periods in your daily usage, you’re unlikely to ever even hit those.

                      1. 5

                        Can confirm. Have a M2 Air and have not had any issues with Rust development

                        1. 3

                          Yep. My current PC laptop (Asus Zephyrus G14) doesn’t just run hot when it starts using the GPU. It crashes with a hard reboot. I’ll take throttling over that every single time.

                        2. 2

                          Shrug. The MacBook Air M1 also runs hot and starts throttling. I had a MacBook Air M1 for a while (now Pro 14”) and could get the CPU to heat up to 95 degrees and start dropping from 3.2GHz to 2.3 GHz very quickly (e.g. by building PyTorch).

                          But it doesn’t matter. The machine is still perfectly fast even when it throttles. The MacBook Air trades-off a bit of sustained performance for being ultra-thin and fanless. Unless you are doing long builds, you won’t notice, because it won’t throttle with short computation bursts (e.g. your language server doing its work). If you prefer sustained performance, get a Pro 13” or even better, a Pro 14” or 16”. Those models take the other side of the trade-off - they much thicker and are actively cooled, but throttle (less) with sustained workloads.

                          The whole M2 throttling saga is just clickbait of a Youtube’er and some news sites. Where were they when the M1 came out?

                        1. 12

                          The crucial part of this is how the password / master key and decrypted secrets are kept secure in memory. I hope the daemon at least stores secrets in pinned RAM and zeroes out memory when it’s freed. Are there mechanisms that keep other processes like debuggers from being able to inspect the daemon’s address space?

                          (I’m not familiar with Unix key managers in general, just with Apple’s Keychain, which has pretty tight integration with the kernel and hardware trust module to keep it secure.)

                          1. 23

                            there is a discussion on lwn about this between the author and mjg59. https://lwn.net/Articles/893327/

                            1. 36

                              Welp, that’s Drew in a nutshell. He’s a very productive and innovative programmer doing fascinating & crucial work, and also a dick. I keep hoping he’ll tone down his confrontational tone, because I’m a fan of his work, but his stuff won’t last or be widely adopted if he can’t build a strong community around it. Sadly his behavior never changes, and it’s always driving people away who might otherwise be receptive to his projects and messages.

                              Here it comes with the additional downside that he can’t process legitimate criticism, which will interfere with his project being as good as it could be.

                              For anyone who doesn’t feel like reading the thread, mjg59 points out that the security feature for storing keys securely (keeping them out of memory space) only works on Linux, yet Hare works on other operating systems (like BSD). Drew considers this a feature, not a bug, calling it opportunistic improvements in security. Various people suggest it would be better to refuse to do the thing if it isn’t secure, that opportunistic improvements allow adversaries to target systems that lack the security feature, and it’s very hard for end users to know if a programmer used the library correctly (in this case, only on Linux). The conversation doesn’t really proceed further, in part because Drew calls people asking him to engage with mjg59 and/or his criticisms “hero worship”.

                              1. 20

                                Thanks very much, I have the feeling you’ve just saved me half an hour of stressful reading. :)

                                1. 6

                                  I think you are being far ruder by calling someone ‘a dick’ on a forum where they can’t defend themselves. Probably better to say nothing.

                                  1. 9

                                    In case there’s some variation of English slang causing confusion here, I meant “dick” as shorthand for “not careful with the feelings of others”. I think this is just objectively true, an accurate description of his actions, or the pattern of his actions over time.

                                    But you raise a valid point: I could have used more polite language, which could improve clarity, and been more gentle with my tone, at the cost of some emotional content. I think often in communication there is a conflict between genuinely communicating your emotions as you’re feeling them, versus realizing that your current emotions may be unhelpful and taking time until you can communicate something else genuinely instead.

                                    1. 2

                                      Why can’t he defend himself here?

                                      https://lobste.rs/u/ddevault oh

                                    2. 5

                                      I’m normally pretty biased against Drew for the same reasons, but it seems to me like mjg59 is the aggressor here.

                                      Drew explained his rationale, and then more-or-less said “let’s agree to disagree on this.” However rather than letting it go, everyone just kept pushing, stating the same points over and over in an incredibly harsh and disrespectful tone.

                                      They all obviously had some valid concerns (which I agree with), but in this context it’s borderline trolling, and Drew handled it fairly well given the circumstances.

                                      1. 8

                                        Maybe it’s ethically derelict to build and release a language which regresses the state of the art in memory safety.

                                        1. 3

                                          Everything’s a tradeoff. Rust’s borrow checker is one tool of many for helping programmers write correct code, not a moral imperative for all new systems languages. Plenty of thoughtful programmers are skeptical about the effectiveness of Rust’s approach to memory safety, and the cost of that approach with regard to other things that are important, like comprehensibility. For example, see this HN thread from Ron Pressler. Maybe he’s right; maybe he’s wrong. My point is that the question is by no means settled enough that a language designer rejecting Rust’s approach to memory safety should be considered ethically derelict.

                                      2. 3

                                        but his stuff won’t last or be widely adopted if he can’t build a strong community around it. Sadly his behavior never changes, and it’s always driving people away who might otherwise be receptive to his projects and messages.

                                        And yet: https://drewdevault.com/2022/03/14/It-takes-a-village.html

                                        I hope to one day be as successful at building a community.

                                        1. 12

                                          This is a fair point. Drew’s projects have communities built around them, bigger and more cohesive than anything I’ve built, for sure. Maybe that’s good enough, Drew has hit his goals, and he can afford to antagonize whoever comes across on the internet; perhaps his work has enough reach, and wouldn’t benefit from attracting more or different kinds of people.

                                          I’m reminded of an old article about Usain Bolt, the fastest man in the world (still? Certainly when it was written), and how in one famous record-setting race, he turned around, saw that no one else was close to him, and coasted the rest of the way to the finish line. The piece suggested that this was representative of his approach to running in general. It then asked (as many have before and since) how fast could Usain Bolt run if he actually tried? https://www.esquire.com/sports/a7058/usain-bolt-bio-0410/

                                          Well, how much community could Drew build if he, like, stepped away from the keyboard for a few minutes every time he was about to flame, insult, or even threaten people? Does it matter?

                                          In actuality, we know that Drew has not hit all of his goals, and he is not entirely happy with the status quo. https://drewdevault.com/2022/05/30/bleh.html Drew has been so abrasive to so many people that now even members of his communities who are simply using his stuff get grief for being willing to work with him. He’s unhappy about that, he says he’s working to improve, and he asks for another chance. He recognizes a problem and claims to want to address it. But every time I look at new work from him, there’s new examples of him being a dick.

                                          In other words, he’s already successful in building community, yes, but I think his abrasiveness is the biggest obstacle to further improvements, and Drew might even agree with that statement.

                                          1. 7

                                            If people are harassing his users, perhaps blaming the harassers rather than the victims is in order.

                                            1. 2

                                              Harassing them isn’t good. But I get the point that you try to distance yourself from people which defend (or introduce) the project of a person you really don’t want to get involved with.

                                        2. 1

                                          Oh, it’s the Hare guy. I feel like he’s actively harmful to the image of whatever project will employ his aid and just having him there is detrimental regardless of his technical ability.

                                          1. 1

                                            Do you know him?

                                            1. 5

                                              I know his opinions that get loudly posted on every message board such as here (before he was banned for his self-promotion) and reddit, in addition to his bad behavior such as what is showcased here.

                                              In short, I would never willingly use his products or work with him after these exposures 🤷🏽‍♂️

                                              1. 4

                                                I know his opinions that get loudly posted on every message board such as here (before he was banned for his self-promotion) and reddit, in addition to his bad behavior such as what is showcased here.

                                                And yet, Torvalds got a pass for many, many years. The man has a history of terrible public statements, E.G., referring to OpenBSD developers as masturbating monkeys. He has been downright abusive to many, including contributors to his projects. Examples are numerous. I’m more than happy to cite. I challenge anyone to show me just one example of where Drew Devault has displayed these levels of wanton cruelty.

                                                One could be forgiven for thinking that there might be some double standards in the free software community. Torvalds is a darling of the corporate types, and as another horrible, cruel person once said: when you’re a star, they let you do it. You can do anything…

                                        3. 7

                                          What a rude comment thread. The module that people are piling in on Drew about is clearly documented to do what it does (with the caveat that it doesn’t say which kernels it provides security on).

                                          The readme is 4 paragraphs long and the code is like 50 low-density lines, it’s not like this info is hidden.

                                          1. 16

                                            One shouldn’t be required to read the program’s source, and the docs of the APIs it calls, to know whether it’s fit for purpose. Especially when this is a security-related feature.

                                            1. 5

                                              Even more: If such security can’t be guaranteed I may as well store my secrets in plaintext, that way I don’t get a false sense of security. (At the end of the day I’ll be vulnerable every time I decrypt my secrets. And if they are ever flushed to disk I’m vulnerable forever.)

                                              1. 2

                                                The comment thread isn’t about the application himitsu, though. The starting post in that comment thread specifically asks about the API and links to it:

                                                https://git.sr.ht/~sircmpwn/hare/tree/master/item/crypto/keystore - as an app developer targeting the standard library, how do I know whether or not my keys are going to be stored securely or not?

                                                The API is specifically documented as being “low-level” and “not recommended for non-experts”. In the context of talking about this API, I think that:

                                                1. It is reasonable to expect the developer-users of this API to read the documentation and if it is not clear, the source code.
                                                2. mjg59’s comments are kind of overblown, and other people in the thread are worse. The API doesn’t do what mjg59 would prefer, and maybe mjg59’s core suggestion of refusing to store a value if it cannot be stored securely is better, but I think it is definitely arguable and either way the tone was very heavy handed from the beginning.

                                                Personally, I think that there should be an API for testing if values can be stored securely, but it doesn’t necessarily have to live in this module for this thing to be useful. Maybe it makes more sense to group those capability-reporting functions somewhere else.

                                                1. 1

                                                  OK, that makes more sense; I didn’t know the comments were about the API.

                                              2. 21

                                                It’s really funny how different your impression of that thread is from mine. I think one comment summed it up well:

                                                You don’t have to keep engaging with mjg59 if you don’t want to, but belittling people who agree with them as mere hero worshipers is beyond the pale. Remember that in asking us to use your language, you’re asking us to also trust you in your stewardship of that language and how you’ll respond to our concerns and needs as the maintainer. Seeing you attack people so aggressively out of the gate is not a confidence boosting start.

                                                1. 4

                                                  Yeah, obviously I disagree and I don’t think it’s worth talking about much further. I thought Drew was fairly courteous, and the comment he called out as hero worship certainly seems hyperbolic to me:

                                                  Someone who does not feel intensely motivated to learn from mjg59’s freely offered expertise has no legitimate claim on anyone’s attention.

                                                  Like, that’s a ridiculous claim. We can call attention to someone’s expertise without saying such silly things.

                                            2. 1

                                              Are there mechanisms that keep other processes like debuggers from being able to inspect the daemon’s address space?

                                              I was under the impression (from when I last did some game hacking) that you need root to read another process’s memory (Linux). So it should be fine? Now that you mention debuggers, I don’t remember having to escalate to root for gdb to work - I wonder what the reason is.

                                              1. 3

                                                This is true only for other users’ processes. You can gcore your own process just fine, and this is part of the problem - if you’re on an effectively single-user system, like many are, there’s no protection. All your programs are running as the same user anyway.

                                                1. 1

                                                  Is gdb setuid to root, or does it use a helper tool that is?

                                                  I know on MacOS you need to enter an admin password to authorize Xcode / lldb the first time you start a debugger after rebooting. And there are processes that cannot be attached to even if you run a debugger as root.

                                                  1. 1

                                                    The second constraint is imposed by processes protected by macOS System Integrity Protection. The first I believe has to do with entitlements to attach to another process, but that’s just off the top of my head and I could be wrong.

                                                    Regardless, Linux has neither of these protections. Debuggers run as normal user programs and do not require special authorization.

                                              1. 7

                                                insanely detailed post, i have administrated the matrix homeserver for cyberia.club + maintained the matrix marketplace app on DO for quite awhile, and i just learned a ton about the ecosystem. thanks a lot for writing this!

                                                it really does feel like matrix, and the folks who develop it, are severely stunted by how many projects they have going. the golang SDK, the rust SDK, dendrite, synapse, mjolnir, element (web, android, iphone), hydrogen, etc. in my opinion, they ought to focus on a few things (acknowledging their pitfalls) and work on the speed of the darn thing - matrix still feels laggy and slow compared to any modern chat app, and especially compared to IRC. read receipts and online detection cause a ton of CPU usage out of the box on synapse, and imho they should be turned off / deprecated entirely.

                                                in short, i feel like there’s way too much cruft in matrix right now, it’s hard to see a future where the weight of their projects doesn’t simply crush them. i hope for their sake that i’m wrong!

                                                1. 2

                                                  they ought to focus on a few things

                                                  And those few things include these two:

                                                  1. Maintain the specifications
                                                  2. Maintain a single reference implementation

                                                  If they can manage to do just these two things, the community would handle all the rest. That’s how IRC worked and that’s how XMPP kinda worked. Buut I’m guessing they also wanna make some money so they have to branch out a bit.

                                                  1. 2

                                                    Not only that, but it’s always felt to me like it’s being pushed into too many directions, many of which seem to conflict with each other. On the one hand, they want full decentralization and federation. Anyone can run a matrix server, even one they wrote themselves. But on the other hand, they want strong privacy. And on the third hand, moderation controls. I applaud them for trying to tackle all of these at once but I have my doubts that it’s even possible.

                                                    At least with IRC, the implications are clear. Servers do not typically store messages (but they could!), and once your message hits the client of everyone in the channel, there’s no way to redact it. You have to assume that anyone could be logging anything you say, even in private messages. All technical measures to enforce the ability to redact messages and cancel users would be theatrics at best because at the end of the day, anyone can make a screenshot.

                                                    1. 3

                                                      Even IRC is moving in the direction where matrix is going. Check out IRCcloud and IRCv3

                                                      1. 7

                                                        That implies IRC is moving - IRCv3 features never got much adoption in servers and clients outside of IRCcloud.

                                                  1. 5

                                                    Is the problem just that an upgrade requires downtime? Because I’ve never had an issue, just take down the old cluster, run upgrade, bring up the new cluster. Debian basically walks me through it

                                                    1. 5

                                                      My issue is that the upgrade requires RTFM: my database works, I upgrade the OS or packages, and now my database doesn’t work, and I have to figure out what commands to run to fix it. In my personal projects I don’t have time for this.

                                                      In a professional setting I’ve never seen Postgres upgraded. Projects are born and die with the same version.

                                                      1. 10

                                                        In a professional setting I’ve never seen Postgres upgraded. Projects are born and die with the same version.

                                                        That’s odd, in my career we’ve typically been eager to upgrade, because almost every release offers performance benefits which are always welcome, and the occasional new feature which would be really nice to have.

                                                        1. 1

                                                          This is obviously elitist, but I think that if you’re writing on this site, you’re probably in the top 5% (or higher) of the global sysadmin population. But then again, Postgres is rather good for its long maintenance periods for older major versions, so using one of those is usually just fine – at least if you keep up with the minor versions at least.

                                                          1. 6

                                                            I think that if you’re writing on this site, you’re probably in the top 5% (or higher) of the global sysadmin population.

                                                            Even if that were true (I’m not even a sysadmin - I’m a backend developer), that should go for @kornel too. I’m responding to his comment which he also wrote on this site. After some consideration, I think it’s quite possible that the type of projects we’ve worked on are wildly different, or the teams/company’s we’ve been on are of a different culture.

                                                            Most projects I’ve worked on are productivity systems for businesses, where some downtime can usually be coordinated with the customer. The project I’m currently working on is a public system where high availability is so important that it can literally save lives. But that’s also why it’s designed to be fully distributed, so taking down a node for upgrade is “trivial”; when we bring it back up it’ll sync state with its peers. In theory, we can also just completely replace a node with a new one which can then get its state from the other peers.

                                                            1. 2

                                                              Lack of upgrades is “if it ain’t broke, don’t fix it”. New Postgres versions are cool, but upgrade is a non-zero risk. If there are no performance issues, no features that are really required (not merely nice), then there’s no business case for an upgrade.

                                                              I’ve also worked in one place where this hilarious exchange took place:

                                                              – Should we be worried about PHP 5.6 getting EOL-ed?
                                                              – Nah, we use 5.2.

                                                        2. 3

                                                          Well, after the upgrade the database still works, it just still runs on the old postgres version until you run the three commands to switch it.

                                                          1. 1

                                                            is that so? I thought postgres would refuse to start until you run pg_ugrade.

                                                            1. 1

                                                              The new cluster won’t start until the data gets moved of course, but at least on Debian the old cluster stays running no problem until you do that

                                                              1. 1

                                                                oh right, we’re in the thread that talks about debian upgrades. Still just a pg_upgrade thingy (upgrade strategy n°2 in the post), but now I see what you mean. that’s not specific to debian. pg_upgrade requires to have both versions at hand, so you can decide to run the old binary on the old data dir.

                                                          2. 2

                                                            In a professional environment I’d strongly recommend not to blindly upgrade an OS. The point of having major versions is that they might break stuff.

                                                            I have never worked in a setting where they stuck with the same version. I just saw things like the managed versions of GCP for example doing a horrible job, because they require huge downtimes on major upgrades by design. ([RANT] Yet another area where clouds hold us back sigh[/RANT])

                                                            1. 4

                                                              The nice thing about Postgres is that the developers maintain an official repositories of RPM and Debian packages that are well-tested against existing OS releases. This makes it easy to install different Postgres versions side-by-side on the same OS.

                                                              1. 2

                                                                Yes, and a lot of others simply support that in a different way.

                                                                On top of it I think there’s many situations where your data isn’t that big and you can comfortably do dump and restore during your maintenance window and don’t have to worry about anything really. It’s not like you upgrade your DB every day. I’m way more happy about good official docs, than having to pray that the upgrade doesn’t break stuff and going through issue trackers, big breaking changes lists, etc.

                                                            2. 2

                                                              In a professional setting I’ve never seen Postgres upgraded. Projects are born and die with the same version.

                                                              I call this law of the welded monolith. This has also been my experience and not only with Postgres. Other complex systems also.

                                                            3. 1

                                                              Yeah. When I used to run long term apps downtime was the enemy because what if a potential customer clicked a banner ad and got a 500?

                                                            1. 3

                                                              If you don’t want to work, you can just use some hosted PostgreSQL like Amazon RDS. It handles all upgrades automatically.

                                                              1. 4

                                                                Sorry for commenting besides the point, but that’s an incredibly good looking layout.

                                                                edit Content is diamond too, and most needed as I’m currently (or always?) in the process of figuring out how to have a good and fulfilling relationship with org-mode.

                                                                1. 2

                                                                  I would guess that far far less than the incredible amount of human energy that is wasted on Chinese. That said, the Korean writing system seems pretty awesome.

                                                                  1. 2

                                                                    Yeah, I’ve been using Emacs on and off for some 25 years and every time I launch Visual Code almost everything feels better. Emacs still has a superior basis and better underlying philosophy which makes me drift back to it, but neither of those would be (necessarily) harmed by a easier-to-use Emacs.

                                                                    1. 2

                                                                      Using Discord should just plain stop.

                                                                      1. 2

                                                                        I end up missing the brutal simplicity of Go interfaces in other languages like Rust.

                                                                        I feel like Rust gives you the freedom to enjoy this type of simplicity, though. Even though it’s often frowned upon by Rust enthusiasts, Rc<RefCell<dyn Trait>> is very similar to Go interface types. You don’t have to worry too much about lifetimes or concrete types, though it does add a little bit of additional overhead from the RefCell having to check outstanding references every time you want to actually do something with the contents.

                                                                        I suppose it’s not quite as simple, but Rc<RefCell<dyn Trait>> and Box<dyn Trait> both have a somewhat similar amount of cognitive load from typing as Go interfaces do.

                                                                        1. 5

                                                                          For me when I compare Rust version to Go version, Rust one seems much more complicated.

                                                                          1. 2

                                                                            Rust is more verbose, and things are arranged a little differently, but I would argue they’re similar in terms of actual complexity

                                                                            1. 4

                                                                              How can you look at

                                                                              let foo: Rc<RefCell<dyn Foo>> = Rc::new(RefCell::new(Baz(42)));
                                                                              

                                                                              and

                                                                              var foo Foo = NewBaz(42)
                                                                              

                                                                              and claim that they are anywhere near each other in terms of complexity?

                                                                              1. 6

                                                                                You can simplify both cases (Go, Rust) of construction to:

                                                                                let foo = Baz::new(42); // Rust
                                                                                foo := NewBaz(42)       // Go
                                                                                

                                                                                By moving some of that noise to Baz::new in Rust. It is a little bit unidiomatic but not much. The thing you can’t easily remove is borrow_mut(). Since Rust asks you to decide about mutability when you define a trait, even an implementation that does no mutations pays the (syntactic) price of that decision. In Go it is type that implements an interface that decides about that and callsites don’t differ for mutating and ‘pure’ versions.

                                                                                I completely understand that this is all for good reasons in Rust (and I very much like Rust) but for me Go (which I also like) is much less noisy (at the cost of weaker compile time guarantee).

                                                                                1. 1

                                                                                  Complexity for whom? They have similar semantics. They do similar things. The “simplicity” is just that Go uses that kind of semantics everywhere. Except when it doesn’t.

                                                                                  1. 4

                                                                                    The rust version (Rc<RefCell<dyn Trait>>) comes with a high cognitive overhead. It is expressive, but I would definitively not qualify it as “simple”.

                                                                                    1. 1

                                                                                      Yes. And understanding what is actually going on with the Go version is also pretty nontrivial.

                                                                                      I’m not saying that the shortcut isn’t useful, I’m just saying it’s a shortcut, not an abstraction.

                                                                                      1. 2

                                                                                        This thread started with a question about “cognitive load from typing”. Do you think that because Rust exposes implementation details in the type it has lower “cognitive load from typing”?

                                                                          1. 18

                                                                            and at least 64GB of RAM is not useful

                                                                            This is one I keep seeing and don’t get. Especially the “I need 16gb just to run Chrome” people. I’m using 8gb for development, running 4x SQL servers, VS, browsers at the same time - and it works just fine. You really need to have specific use case to require more. It’s fine if they have such use case, but it’s really not a base dev requirement.

                                                                            1. 12

                                                                              They probably take a quick look at how much Chrome is taking memory on the VIRT column and then decide that whatever their RAM is, they don’t have enough to run even just the browser.

                                                                              1. 1

                                                                                You know, you might just be right. Btw, is windows also showing RAM usage in a similar manner? I never bother to look (I’m one of the people the author didn’t mention, which is, running Linux because I like it, it does things I want it to do, and I don’t bother anyone with it if they don’t ask me about it. I will talk a lot about it, I talk about all my favorite things, but I never judge people using windows, and for most people I’d actually suggest macs over linux.

                                                                                1. 2

                                                                                  is windows also showing RAM usage in a similar manner?

                                                                                  No, the most visible indicator (first tab of the windows 10 task manager) shows physical pages taken by the process. The old task manager and the details tab are configurable but I believe still show the physical ram taken, including IO caches.

                                                                                  1. 1

                                                                                    Assuming that most people looking at this use Resource Monitor (the older Task Manager doesn’t provide as much detail and there’s so many 3rd party tools that there’s no unified way to discuss them), I think the culprit is more Windows’ memory use strategy than information displayed about virtual memory. Windows tends to run with very little “free” memory (currently my Windows system shows ~100 MB of ~12 GB memory as “free”) and most available memory in “standby” (currently ~6 GB for me).

                                                                                    In theory, standby memory is supposed to just be cached information that’s available instantaneously for processes requiring more “in use” memory. My experience is that the only time I actually benefit from clearing standby memory is for playing games - it seems as though Windows does hesitate to free standby for use by currently active applications though I’ve never cared enough to investigate this in detail. Microsoft’s position is that it makes sense to move as much data to memory as the hardware can support. This makes sense though I’m dubious that the way Windows does this makes the most sense: it certainly seems that both of my Linux laptops are snappier in general though obviously memory use is only one component of that. There’s a fairly short SuperUser thread on standby memory in Windows addressing this.

                                                                                2. 8

                                                                                  I always pick a machine with the maximum amount of memory that is somewhat affordable at the time of buying, because I have found that most of the time the internal memory is the limiting factor for longevity. The more RAM it has, the longer I will be able to use it. Running newer stuff on an older CPU has never been a big problem, but (non-upgradable) RAM is.

                                                                                  Case in point: I still use a laptop from 2015 on a daily basis without any problem. But that is because I bought it with 16Gb RAM, which sounded back then as an absurd amount.

                                                                                  1. 4

                                                                                    Linking the debug version of libxul.so (most of Firefox) requires more than 16GB :D Otherwise, yeah, most things I do are not RAM heavy at all. CPU speed is much more useful generally.

                                                                                    1. 3

                                                                                      I’ve experience multiple times that windows gives me a popup about running out of ram (16GB), then start to force programs to close, usually because of chrome. I’ve never run into this issue on Linux.

                                                                                      1. 2

                                                                                        What version of Windows are you running? I can never recall coming across such a popup for memory proper though those used to be very common regarding running out of virtual memory on my old laptop from circa 2007 - my one Windows laptop is a ~5 year old Dell running Win 10 with 12 GB memory (that said, I killed a lot of Windows behaviors I regard as resource hogs when I bought this so that might have helped) though anything really memory intensive I shove to my server…

                                                                                        1. 1

                                                                                          They likely have the swap file disabled. If so, then you can easily encounter that error using memory hungry programs like Chrome. They kind of assume you have a swap file to move cold objects to when memory pressure starts increasing rather than going lean themselves.

                                                                                          1. 1

                                                                                            Thanks, I hadn’t ever considered disabling my swap file…

                                                                                          2. 1

                                                                                            Windows 10 LTSC 2019. If it never did setup a swap file, then i cry on the behalf of the entire enterprise world.

                                                                                        2. 3

                                                                                          If you want to compile LLVM 8Gb doesn’t cut it. Otherwise it’s plenty for almost every task you might throw at a machine.

                                                                                          1. 1

                                                                                            If you want to compile it often then probably not. But I get to do it from time to time and 8GB + some swap is just fine. It completes during a lunch break.

                                                                                          2. 1

                                                                                            I have 32GB on my laptop and routinely run out. (Though less often than I run out on my 16GB work computer.)

                                                                                            A colleague used to have an 8GB machine. He kept having to reboot it because compiles would cause it to thrash the swap, freezing the system completely and effectively permanently.

                                                                                            I have my system set up with earlyoom to aggressively kill compiler processes when it runs low on RAM. That’s stupid, but less stupid than the alternative.

                                                                                            This requirement is real.

                                                                                          1. 4

                                                                                            I don’t have much else to offer but to say that this would be an amazing change for Nim. Superficial or not, case insensitivity is a horrible feature just about everywhere it’s applied. It’s so bad that I don’t think they should just make it optional, they should burn it with fire. Nuke it from the orbit. (And provide a tool for automatically upgrading existing projects).

                                                                                            1. 4

                                                                                              do you think you could provide a reasoned argument?

                                                                                            1. 2

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

                                                                                              1. 6

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

                                                                                                Here are both comments, for your convenience:

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

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

                                                                                              1. 4

                                                                                                I’ve never been a fan of printf or f strings or any string substitution stuff like this. I can’t possibly be the only person who reads this:

                                                                                                print(f"{f'${number:.3f}':>10s}")
                                                                                                

                                                                                                And thinks it is completely, unfathombly unreadable, am I?

                                                                                                Is that really preferable to something less magical that takes more lines of code?

                                                                                                1. 9

                                                                                                  I really like f-strings, but I would not write that. I’d rather break that out into a couple lines.

                                                                                                  1. 3

                                                                                                    I prefer format strings because it makes it easier to “see” what the string is going to look like, as opposed to a bunch of concatenation, probably spread across lines. That being said, you’ve got some weird nested stuff going on there that I probably wouldn’t use, so maybe I partially agree?

                                                                                                    1. 2

                                                                                                      You can use f-strings to write readable things as well.

                                                                                                      logger.info(f"Folder for {show.name} is missing, creating...")
                                                                                                      

                                                                                                      Instead of

                                                                                                      logger.info(f"Folder for " + show.name + "is missing, 
                                                                                                      creating...)"
                                                                                                      

                                                                                                      The latter example is not valid Python but you get the point.

                                                                                                      1. 4

                                                                                                        Nitpick: You should probably not use fstrings for logging, since I believe they’re interpolated every time, even if your log level is below that.

                                                                                                        1. 3

                                                                                                          Ah, thanks! I hadn’t thought of that.

                                                                                                          1. 2

                                                                                                            Wouldn’t the concatenation also happen every time, though? Logging functions are just regular functions, so their arguments are evaluated before the function is called, right?

                                                                                                            1. 1

                                                                                                              Yes. Here’s how to avoid unnecessary interpolation:

                                                                                                              logger.info("Folder for %s is missing, creating...", show.name)
                                                                                                              

                                                                                                              Most linters will warn about this.

                                                                                                              1. 2

                                                                                                                I’d forgotten all about that! Haven’t used Python logging in a bit :-) Thanks!

                                                                                                      1. 3

                                                                                                        This doesn’t seem to have any of the pgtk stuff in, so I suppose I still wanna use patched versions if I want semi-proper Wayland support.

                                                                                                        1. 1

                                                                                                          Pure GTK didn’t make it to 28.1 and I think they are aiming for 29.1 (so still a couple year wait)

                                                                                                          https://twitter.com/newplagiarist/status/1511484751219023872

                                                                                                          1. 1

                                                                                                            My first reaction was “a couple of years? that must be an exaggeration!”, but Emacs really does seem to release a new major version only every 2 years per https://www.gnu.org/software/emacs/history.html :-/

                                                                                                        1. 1

                                                                                                          Those rebase scenarios look pretty nice. Git is always a bit scary when doing that.

                                                                                                          1. 15

                                                                                                            trying to keep myself and my family safe In the middle of an occupation of the capital of a G7 country. They protested at my son’s school yesterday.

                                                                                                            Maybe trying to set up the gaming laptop into a full-fledged setup with dual monitors and an actual keyboard and mouse when I’m not doing that.

                                                                                                            1. 3

                                                                                                              How is the situation down there conflict wise? The article shows kids playing soccer on the streets. I hope it’s safe!

                                                                                                              1. 1

                                                                                                                Everyone is safe, but the situation is very uneasy. Many of the occupiers have brought their kids, so I’m not surprised they’re playing soccer, but I wouldn’t want any of my family in the middle like that.

                                                                                                              2. 3

                                                                                                                Yikes, try and stay safe. I’m over in Orleans myself but this stuff is frankly terrifying.

                                                                                                                1. 3

                                                                                                                  Aw geez. And just a couple of months ago I was thinking of Canada as being a potential refuge place if things go even more crazy in Europe. Best of luck and endurance to you all.

                                                                                                                  Mars it is then, I guess.

                                                                                                                  1. 2

                                                                                                                    If it makes you feel better, there’s likely nowhere on the planet that is truly a refuge if things go super sour.

                                                                                                                    1. 1

                                                                                                                      I’d be fine with a small unknown island. But then somebody asks me where my low-latency internet and power come from.

                                                                                                                  2. 2

                                                                                                                    I’m really sorry to hear. This is a super scary time and having the threat of violence looming so close has got to be nervous making.

                                                                                                                    1. 1

                                                                                                                      Hey, me too! I’m over in Gatineau in the ’burbs but I generally spend a lot of time in Ottawa proper.

                                                                                                                      1. 0

                                                                                                                        My sympathies; I’m flying into rat-licker central (Alberta :/ ) for my weekend; I expect I’ll see some of the dumbasses myself along the way, although not as bad as your part of the country. Good luck!

                                                                                                                        1. 1

                                                                                                                          Hey now, we are rat free!