1.  

    Finishing by bachelor thesis. “Thanks” to the COVID situation, my deadline has been extended a few times, but not I have to be done by next Wednesday. Even if I’ve been working on it in some form or another for over a year, I’m still noticing things I can add all the time.

    1.  

      What’s the title of your thesis? Also, good luck!

    1. 7

      The original press release (linked by the OP) says that it’s happening in the driver, but later on Nvidia clarified that it would be “via a handshake agreement between the driver, vBIOS and the GPU itself”. I wonder how long it’ll take miners to circumvent, or if they’ll bother at all.

      1. 1

        Interesting to see an article about me :) — Can answer any questions, also sorry about the notification spam.

        1. 0

          I have to admit, I did no slept peacefully last night. I was a bit anxious (for nothing) about having been infected while inspecting the prog cryptominer 😬 so I’m checking all the time my local system status with netstat and htop. If you, dear reader, are earning money from my computer CPU, please tell me 😁

          its just XMRig, no infection)

          1. 7

            It would be a mistake to interpret your words as anything other than information-free noise from an abuser.

            https://lobste.rs/u/asymptotically, why did you give an invite to this person? (Post disowned by new user “Miner” who you invited 2 hours ago) It seems strange that you invited this abuser a few hours after this post showed up here, when you tend not to invite very many people to this community. Was this you?

            1. 5

              why did you give an invite to this person?

              This person talks publicly about their mining on IRC. I found it very funny to see a post about them so I decided into invite them here to comment.

        1. 3

          I will hopefully finish porting an old Rust project to C++ and then continue working on it.

          1. 2

            What made you decide to switch from Rust to C++?

            1. 2

              It’s a developer tool for myself and I’m avoiding a lot of “What’s the best way to do ____ in Rust?” and other unknowns since I write C++ professionally. I just want it done since I’m doing it on my personal time, and Rust’s been great. I can write Rust just fine, but there’s a big difference between being able to write in a language, and architect well in a language and thought it’d go a lot quicker in C++ for me.

              The big issue is that I’m going to be able use this tool at work, I also can’t be bringing random code from the internet into it. I’ve also been frustrated with Rust’s module system, and it also helps me simplify interfacing with a bunch of C interfaces I’m using by avoiding binding generators, etc.. I expected the rewrite to be complete hell and failure, but it’s been going surprisingly well so far.

          1. 3

            I’m working on a blog post about flashing coreboot with Intel ME removed and without any blobs or microcode updates on an X200 I bought off eBay recently. I’m also getting a bunch of new parts for it this weekend so I can refurbish it properly.

            1. 2

              Good luck, it’s a lot of fun! Just remember to back up the original BIOS blob so that you don’t end up like me, stuck using a random guy’s BIOS backup that I found on GitHub.

            1. 0

              That’s horrendous. I love it!

              1. 8

                Getting LSP integrated pervasively in Emacs in a way that it reliably just works and performs well out of the box

                I don’t get how this should work, when setting up LSP servers is now the issue. If you want to use rust-analyser, you have to download rust-nightly. If you want to use a Java LSP server, you have to do class-path magic. If you want to use a Python LSP server, you’ll have to let pip download every single python library again to get the right versions. If you want to compile a Haskell LSP server, you’ll need to buy some more RAM.

                But if this would be solved, and all I have to do is run “sudo package-manager install java-lsp-server”, then it would be a considerable advancement. The best one can do, as I understand is planned for 28.1, is to get Eglot into a working and stable state, so that it’s ready for when the server implementations have matured.

                Having a wizard showing up in new Emacs installations might be a great low-hanging fruit way of making Emacs more accessible.

                I have discussed this on the mailing list, but haven’t ever had the time to implement this myself (yet). What Emacs needs is a wizard language, that can be used to teach Emacs itself, but also any package (just like ert is used for tests). Most proposals haven’t been too pretty though.

                Take a look at the screenshots of these Neovim GUIs:

                I don’t see any notable difference, tbh. What I would get is better integration into window managers (opening downloaded files in existing emacs sessions), but I have never understood what neovim actually achieves by splitting UI and backend. Sure, it’s a good design decision in principle, but considering the complexity of Emacs display engine, I’m not sure if it is worth it.

                It is very easy to either freeze Emacs or cause it to run very slowly. Multiple times a day I have to hit C-g incessantly to bring it back from being frozen. When that fails, I am sometimes able to get it back with pkill -SIGUSR2 Emacs. At least once per week I have to pkill -9 Emacs because it turned completely unresponsive.

                I used to have these problems, but in my experience this comes from fighting Emacs instead of cooperating with it. Using unnecessary packages, weird themes and wanting popups everywhere will simply slow stuff down. The main parallelism in Emacs is done by starting external processes, since Emacs is more of a Unix shell than Lisp machine.

                It would be great to have more and more of these influencing and being incorporated to the Emacs Lisp standard library and made to be very performant.

                Please not, dash and s are quite annoying and don’t always lend themselves to idiomatic Elisp (I understand they are influenced by Clojure, which has a difference heritage). seq.el and map.el are nice, but since they are based on generic functions, they are often slower.

                It would be great to move to a forge style of contribution.

                As long as it doesn’t require new accounts, and everybody is free to participate in the conversations, ok, but I’ve only seen this implemented by source-hut, and none of the GitHub clones that have spoiled so many people.

                1. 6

                  Emacs is more of a Unix shell than Lisp machine

                  Strongly agree with this. It’s extremely good as a “visual shell” / UI framework. It’s not usually a good UX when you try to implement too much of your world in Elisp with dozens of packages, spinners, networking, etc. You end up in C-g hell as the author describes. Over 15 years of usage I’ve actually evolved away from the “rewrite everything in Elisp” view and towards “drive scripts from Elisp and slurp results into a buffer for processing”

                  Please not, dash and s … don’t always lend themselves to idiomatic Elisp

                  Also agree. Writing idiomatic Elisp using the built in APIs isn’t that hard, but it’s more “old skool” and can be imperative/verbose, so I guess some people don’t like it

                  On the other hand I think it’s kind of dumb to have to import a “cool” string library to install a library that does something I actually want.

                  Elisp isn’t Clojure and I’m glad for that. I think a lot of the complaints are that it isn’t Clojure/CL/etc, but its not supposed to be. It’s basically a 70s era MacLisp clone.

                  In general I think two (no three) things:

                  1. People can write whatever they want to write, it’s free software, their itch etc
                  2. I wish a lot of the people trying to make Emacs “better” (by their definition) but who are also possibly adding complexity to the code base, changing variables and APIs and default settings etc would just chill and learn more about what it is they’re trying to change before concluding “this needs feature X, let’s hack it in and now everyone has to live with it”
                  3. I know #2 is something of a straw man and not 100% fair but Emacs is where I live all day every day and somebody else’s “cool new feature” is my “unnecessary risk and complexity” (and possibly lost hours troubleshooting)
                  1. 5

                    Take a look at the screenshots of these Neovim GUIs:

                    I don’t see any notable difference, tbh. What I would get is better integration into window managers (opening downloaded files in existing emacs sessions), but I have never understood what neovim actually achieves by splitting UI and backend. Sure, it’s a good design decision in principle, but considering the complexity of Emacs display engine, I’m not sure if it is worth it.

                    The exactly same thing has been said for vim, yet neovim managed to pull if off. Just for the sake of it being a great design decision, it would be worth implementing it. The case in points are so many different forks of emacs, trying to make it run on different platforms (emacs-mac, xemacs, …).

                    1. 4

                      I don’t get how this should work, when setting up LSP servers is now the issue. If you want to use rust-analyser, you have to download rust-nightly.

                      This imo is exactly the problem which should be solved by editor’s extension. In VS Code, the user just installs the rust-analyzer extension and the binary is downloaded automatically. IIRC, coc-nvim provides a similar experience.

                      It is important that LSP support in an editor allows for each language to have a dedicated, easy discoverable plugin which deals with dirty integration bits.

                      1. 4

                        I’ve had pretty hit-or-miss luck with things actually working in VS Code when you do that. Just yesterday I tried using it for C# for the first time, responded “yes” to the prompt when it asked if I wanted to install the recommended C# extensions, and now I have some kind of dependency hell around .NET version mismatches (“Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found.”). Some of the language extensions install without problems, but I’ve come not to expect it.

                      2. 3

                        If you want to compile a Haskell LSP server, you’ll need to buy some more RAM.

                        haskell language server provides precompiled binaries that transparently download for vsode, and lsp-mode is working on reusing this ability.

                        You can also install prebuild binaries via ghcup

                        1. 3

                          That’s basically the same problem as with rustup, that I have to install software from external sources, instead of having it all done by my (system’s) package manager.

                          1. 3

                            You can consider using Nix to declaratively create project development environments that includes build tools like LSP servers, which is exactly what I do in my open source Haskell project (run nix-shell --run "code ." and things “just work”, be it on Linux, macOS or WSL).

                        2. 2

                          I used to have these problems, but in my experience this comes from fighting Emacs instead of cooperating with it. Using unnecessary packages, weird themes and wanting popups everywhere will simply slow stuff down.

                          I don’t think it’s productive to put blame for these problems on the user. Extensibility is the main selling point of Emacs for many, people use it because they want those features. Of course it’s always possible to shot oneself in the foot. But if some of the problems are solvable on the level of platform, they should be solved there. When I pick a theme I want to pick it for its look and not think if it will slow down my editor. If an extension delays startup, becomes unresponsive or slows down every key stroke I want to be told by Emacs about what’s to blame but I also want it to be hard to achieve.

                          It shouldn’t be as easy to bring the editor to a crawl. The user doesn’t have to be an expert or to use vanilla Emacs for it to be fast. The machine I’m typing this on has 8 cores, I don’t see why crazy computations to paint parentheses in rainbow colours should slow down my typing or scrolling. I think support for asynchronous execution is one of the main reasons why Neovim succeeded.

                          1. 1

                            Extensibility is the main selling point of Emacs for many, people use it because they want those features.

                            What features? My comments are more related to UI stuff like pop-ups or constant redrawing effects – in other words non-functional aspects. They can be nice and fun, but since most of the time they are hacks, it’s nor surprising that they aren’t efficient.

                            If an extension delays startup, becomes unresponsive or slows down every key stroke I want to be told by Emacs about what’s to blame but I also want it to be hard to achieve.

                            The problem here is that there is no such thing as an extension. There is no means to distinguish between the core and (so-called) extension, because they are equal.

                            It shouldn’t be as easy to bring the editor to a crawl.

                            As an editor, yes, but again Emacs is a fully programmable environment. Evaluate

                            (defalias 'eval #'identity)
                            

                            and slowly everything will start to break. Emacs’ power necessarily includes the ability to break stuff. The barrier can be lowered, but adding more (finite) computing power doesn’t solve the “issue”.

                            1. 1

                              Hard agree.

                            2. 2

                              If you want to use rust-analyser, you have to download rust-nightly.

                              rust-analyzer provides pre-built binaries

                              1. 1

                                But if this would be solved, and all I have to do is run “sudo package-manager install java-lsp-server”, then it would be a considerable advancement.

                                I’ve only tried clangd, which I was able to just grab via my distro’s package manager and it just worked (other than that every few hours clangd gets OOM killed…)

                                1. 2

                                  I just got iRacing so I’ve been badly failing at throwing an MX-5 around a track, hopefully I’ll get a little better over the weekend :)

                                  Other than that I’ll hopefully be migrating my mail server to NixOS.

                                  1. 2

                                    If you find yourself super interested in ROP techniques after reading this article, ROP Emporium is a great site with a bunch of fun challenges.

                                    1. 6

                                      For the next iteration I’ll work on improving accessibility

                                      Thanks for paying attention to this. The home page is already pretty good with a screen reader. A couple of minor suggestions:

                                      • Put the main content of each page inside either a <main> element or a <div> with role="main". That way, screen reader users can easily find the start of the main content by looking for the appropriate ARIA landmark.

                                      • It might be nice to have a heading just before the code sample. You can use CSS to position the heading off-screen, so it’s available to a screen reader but doesn’t affect the visual layout. As it is now, a blind user skimming the page by jumping through headings might miss the code sample.

                                      I’m happy to answer any questions. Again, good work so far.

                                      1. 1

                                        Thanks for your suggestions!

                                        I’ve implemented the first point you mentioned, it should be already up. Can you provide a concrete example for the second point? I want to make sure I don’t screw it up :)

                                        1. 1

                                          It might be nice to have a heading just before the code sample. You can use CSS to position the heading off-screen, so it’s available to a screen reader but doesn’t affect the visual layout. As it is now, a blind user skimming the page by jumping through headings might miss the code sample.

                                          Could aria-label be used instead? e.g.

                                          <div class="codesample" aria-label="Code sample">...

                                        1. 6

                                          Alternatively, Nix docker-tools, which produces images more minimal than Docker usually does.

                                          This is because BuildKit can build multiple stages in parallel.

                                          Sounds to me like Docker’s finally catching up with what the Nix daemon has been able to do for years. And “catching up” may be generous here. Oof.

                                          1. 2

                                            Does Nix provide a way to cache intermediate build artifacts between builds? (Basically, like .o files caching, but esp. for me in Go and Nim.) I’m a huge fan of Nix, learning & using it for some personal purposes, and even doing some local advocacy, but I haven’t found a way to do that in particular, whereas buildkit does have it. In fact I think it would require some tricks in Nix given that it resets date to timestamp 0 on all files in Nix store. I’m aware of nix-shell, though I don’t have much experience with it yet, but still I think it wouldn’t make much sense to try and use that as part of a CI pipeline (for .o reuse), as it would kinda defeat one of the main advantages of Nix (hermeticity of builds)? I’d be really interested in finding a way to get that reuse, as it would make Nix even more useful to me, speeding up some operations.

                                            edit: Hm, I’m starting to think it could be doable for hash-based build systems (e.g. Go) with some build hook (for saving the intermediate build artifacts), but it might require a virtual/FUSE filesystem for fetching the intermediate build artifacts when queried by go build.

                                            1. 1

                                              It’s possible to use ccache (and probably sccache) with Nix, but I’m not sure how much that would help with Nim and it wouldn’t work at all with Go.

                                              1. 2

                                                Can you show me a nix expression doing that? Does it stay self-sufficient enough to be able to be included in nixpkgs and transparently used to build parts of nixpkgs, or does such use of ccache in a nix expression require an outside service (i.e. some persistence outside the nixpkgs “build sandbox”)? I’m really interested in understanding what’s the mechanism behind what you’re suggesting!

                                                1. 1

                                                  Can you show me a nix expression doing that?

                                                  To be honest I’m quite new to Nix and haven’t gotten it working myself yet :)

                                                  I think that the easiest way to use ccache with Nix is to replace a package’s stdenv, the Nix ccache package comes with an easy way of doing that to packages in your own overlay. A problem is that changing the stdenv would change all of your build hashes.

                                                  You can also turn off sandboxing and set the ccache environment variables.

                                                  or does such use of ccache in a nix expression require an outside service (i.e. some persistence outside the nixpkgs “build sandbox”)?

                                                  Yeah, ccache requires a directory that you keep intact between runs, and sccache uses a remote daemon.

                                              2. 1

                                                I’m currently fighting with Docker go builds myself. Could you explain how BuildKit helps with caching build artifacts (or provide a link)? With a traditional multistage Dockerfile, I can’t seem to find a reasonable way to share go’s build cache across changes to the source code.

                                                1. 2

                                                  You can do something like:

                                                  RUN --mount=type=cache,id=go,target=/root/.cache-/go-build go build
                                                  

                                                  or something like that. See https://hub.docker.com/r/docker/dockerfile/

                                                  The caveat is that as I understand it this won’t survive across multiple VM rebuilds, so depending on CI setup won’t help there.

                                            1. 6

                                              Instead of

                                              set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread" )
                                              

                                              You might want to do

                                              find_package(Threads REQUIRED)
                                              target_link_libraries(YourExecutable Threads::Threads)
                                              

                                              It’s more portable (supports Win32 threads) and it will only set it for your target, instead of for every target in your project.

                                              1. 4

                                                Oh man this is great. Thank you! You wouldn’t know how much issues I have in another project with a windows build and threads, will be very helpful! Will have to edit the site later, can’t do that on mobile. edit: updated the site with a backlink here and the site linked in your profile.

                                                1. 2

                                                  You’re welcome! CMake is pretty nice if you use it the “right” way, but there are so many small things you can do to upset it and make your experience miserable. I should probably write them all down instead of forgetting them and re-discovering them…

                                              1. 1

                                                Would git’s compression and packing interfere with Borg’s compression and deduplication if you wanted to back up a bunch of bare git repositories?

                                                1. 4

                                                  It wouldn’t interfere with it per se, but you can’t further compress data that has already been compressed, so Borg’s compression won’t be able to make the already-compressed data smaller and might make it marginally larger because of the overhead associated with compression headers (although I believe Borg is smart enough to not try to compress data it detects is already compressed). Certainly nothing will break - I’ve used Borg with compression settings on datasets that include already-compressed data (e.g. video files) without any issues other than not reducing the total data size very much.

                                                  1. 1

                                                    Compression can increase data size with already-compressed data, but not by a very large factor.

                                                  2. 1

                                                    It might be worth avoiding letting git re-pack too often, although I don’t know if this is accurate. Possibly something you’d like to look into.

                                                    1. 1

                                                      I have not used Borg Backup for this purpose but used other compression programs as part of other backup systems. It doesn’t interfere, just doesn’t help much, as other comments have asserted. Happy to explain more if you like.

                                                      1. 1

                                                        Would it make sense to backup git repositories if one uses any of the forges? I’ve stopped backing up any of the .git folders as I’m assuming/hoping the work will survive on the forges even if something happens to my machine (that’s why I’m backing the working tree). Background: we had limited backup space at the company I worked for, and less files meant faster backups.

                                                        1. 1

                                                          In my case I am hosting a (personal) git forge, so I do throw the backups in borg as well. I have noticed no issues with doing this. I’m still well below my backup cap though.

                                                      1. 5

                                                        I just got myself a Ubiquiti router and a couple of access points to replace my 10 year old Netgear router/switch/AP combo unit. It looks like it’ll be easy to set up, but I’m sure I can mess it up bad enough to spend all week on it :)

                                                        1. 2

                                                          Best investment I did in a long time. It has its own quirks and stuff but once set up it works amazingly well.

                                                          1. 2

                                                            Glad to hear :) - If it goes well I might replace my crappy backdoored AliExpress IP cameras with Ubiquiti gear too.

                                                        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

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

                                                                              1. 1

                                                                                Redbubble do print on demand for stickers, iirc.

                                                                            2. 5

                                                                              Does hosting lobster requires lots of CPU or RAM?

                                                                              1. 5

                                                                                It’s Rails. So both :)

                                                                                1. -1

                                                                                  #rust

                                                                          1. 6

                                                                            I had a mild panic when my first TOTP code didn’t work. Second try was the charm, though.

                                                                            1. 3

                                                                              Today I learned that Lobsters has TOTP

                                                                              1. 2

                                                                                I think that the TOTP codes are on a subtly different clock now. They seem to expire a little bit early.

                                                                                1. 1

                                                                                  TOTP code didn’t work

                                                                                  uh nice to know this exists :D

                                                                                1. 4

                                                                                  Maybe it doesn’t matter for web things, but it matters a lot if your software is a pain to build from source (especially for distribution packagers)

                                                                                  1. 6

                                                                                    I read the article as suggesting new programmers not worry about the development environment, not that it doesn’t matter at all. By the time someone is shipping source code for a major system, my assumption is they’ll be the chef who has figured out what knives are actually needed. But, having inherited some codebases that made a lot of assumptions about which IDE I would want to use, I would completely agree that at some point chefs need to seriously care about their knives.

                                                                                    1. 2

                                                                                      Another thing I’ve seen quite few devs worry about is which language to use; and my usual advice is “just pick one and go with it, it doesn’t matter that much”. Once you know one language, the second is a lot easier to learn.

                                                                                      1. 1

                                                                                        One of the main reasons I love programming is it is taking a big problem (I need to do X) and breaking it into the discrete smaller problems to get there (X requires Y, Y needs Z, so let’s start with Z).

                                                                                        I have encouraged a few younger programmers who were coming from non-technical fields to do exactly what you said. For them the big problem was “I want to learn programming, and that is scary.” We broke that down into “To program, you need a language. There are so many to choose from, have you ever heard of one you’d like to try? If not, consider Javascript because as long as you can ctrl-shift-i, you have everything you need.” Once the first Big Decision is out of the way, the actual learning can begin.

                                                                                        By the time they realize Javascript isn’t the end-all-be-all for what they need, they have enough knowledge to not feel daunted by the second language. Incidentally, I’ve also seen this as an issue with Linux, where the sheer number of distros has caused analysis paralysis on the person that wants to break in and try it. Keep some spare LiveUSBs on hand and get them over that hump.

                                                                                  1. 5

                                                                                    While the statements seem valid to me, it party seems to assume goals which might not align with the original goals.

                                                                                    First the pseudonymous. It’s true that this allows for eavesdropping, but the original paper speaks about similarity to information in a stock exchange, which to me sounds correct. It also mentions that “linking is unavoidable”.

                                                                                    The corruption, mining, power part is similar. I would consider that to be more of a social problem we see elsewhere as well, that Bitcoin neither created, nor pretended to end, which makes it a statement that applies to many technologies and developments in general.

                                                                                    On PoW, etc. Again true. An observation though. In the early days there always was an argument of the PoW algorithm being replaceable. Over time this kind of changed to new cryptocurrencies being “Bitcoin with different algorithms/settings”.

                                                                                    So no disagreements, but I do think that some points make assumptions goals of Bitcoin, that might not actually be goals, at least not according to the original paper.

                                                                                    I think the space and transaction cost parts are by far the biggest problems when looking at the technology itself.

                                                                                    1. 5

                                                                                      First the pseudonymous. It’s true that this allows for eavesdropping, but the original paper speaks about similarity to information in a stock exchange, which to me sounds correct.

                                                                                      I think it’s much worse than looking at the order history and order book of an exchange. You could send me some coins, and I could look at your address to see how many coins you have (although not perfect - maybe you try your best to retain some privacy and never reuse addresses and keep your inputs small).

                                                                                      It also mentions that “linking is unavoidable”.

                                                                                      There’s Monero and Zcash. All people can see is that someone sent some amount of XMR/ZEC to someone.

                                                                                    1. 2

                                                                                      I need to finish some university coursework, buuut I got myself Doom Eternal for Christmas so I’ll probably just end up playing through that :)