Threads for samebchase

  1. -1

    Also agree that we need to have this tag. 👍‍

    1. 4

      I took the train to one of my favourite cities, Göteborg. Planning to go walk in the park tomorrow, and eat good food. On train rides, I’m generally super productive. So I started working on some documentation of how Derw generates list-based pattern matches in case..of statements, in turn helping me decide what the compiled code should look like.

      1. 1

        What makes Göteborg so special, if you don’t mind my curiosity?

        1. 8

          Good question! I’ve had this discussion a lot at work, since it’s not a conventional choice. It boils down to:

          • Close train and bus network with Oslo (where I live). $30 and 3.5 hours each way, not too bad. There is a gap of about 40 minutes without any internet, but apart from that the buses and trains have internet and power the whole way. Border control is also very smooth, particularly on the trains. The staff get on at one stop, check everyone on the train, then get off at the next, so the train is never slowed down.The bus however sometimes is stopped (in the worst case - there was someone with an invalid visa and we were delayed 1 hour)
          • It’s in Sweden, which for me is a very familiar place. I understand more Swedish than Norwegian, food is cheaper, people are friendlier. There’s also a greater variety in restaurants, including my favourite, Chinese buffets.
          • The old town is very pretty, with lots of little cafes for fika. Perfect for sitting in during a rainy day and hacking on a side project.
          • The art museum has a surprisingly large and famous collection, with frequent exhibitions.
          • Several other museums, a very detailed boat museum.
          • Lots of choice of hotels and airbnbs
          • The public transportation is a combination of trams and buses, tickets are relatively cheap and the network is very large, ideal if you’re renting an AirBnB in the suburbs.
          • Historic reasons behind the city structure
          • On sunny days like today, the weather is my favourite: bright sun with cold air. It rains a lot, too, which means generally there’s not much snow
          • Lots of great islands accessible by ferry, and a nice big park with a zoo.

          Overall, it’s a city I come to when I want something that feels like home to me, apart from where I live now and where I grew up.

          1. 2

            Sounds like many of these boil down to convenience with the right set of features. I’m glad you found a place that feels like him. I was asking mainly because I’m still on the lookout :)

            the weather is my favourite: bright sun with cold air

            Mine too. There’s even a word for it - Apricity.

            1. 2

              Apricity

              A good new word to my vocab!

            2. 1

              That’s a great description of the city. Hope to visit it someday.

        1. 9

          Surprised not to see nearlyfreespeech brought up yet! They’ve been around a while and I’ve found it to be no-nonsense and reliable. I don’t use them for hosting but I’ve used them for DNS registration, DNS hosting and used them to delegate to my own authoritative nameservers.

          1. 3

            I’ve used them for hosting and that was totally solid too. Great provider.

            1. 2

              Indeed, I use them as well for registration, it’s all very simple and just works.

              1. 1

                Yup, been using NFSN for hosting and DNS registration for almost a decade. Happy customer.

              1. 2

                These are some of my favourites:

                • Linux
                • Emacs, (Neo)Vim, Org Mode, SLIME/SLY, CIDER
                • git
                • Firefox
                • SBCL
                • Raku
                • OpenBSD
                • NixOS
                • FreeBSD
                • gparted
                • Lagrange, vger
                • TreeSheets
                • FossilWiki
                • GCC
                • ripgrep
                • fish shell
                • Inkscape, the GIMP
                • VLC Media Player
                • OpenZFS
                • MediaWiki
                • Mastodon
                1. 15
                  • “Nix the idea” - absolutely, thoroughly agree
                  • “Nix the implementation” - I hope not as it’s absolutely terrible!

                  Guix shows promise, but still needs more of a community. I’m hoping for more tools building on the reproducible hermetic environment stuff, but less of the “we hacked together a really terrible config language” approach.

                  1. 10

                    I don’t think Guix will really catch up or overtake Nix as-is for a few reasons:

                    • NixOS is a fairly standard distro past the massive sweeping non-FHS changes; GuixSD has all of these changes plus a GNU-borne insistence on using the niche Shepherd init system and the linux-libre kernel, which is going to be a non-starter for most people.

                    • Nix’s value for things like reproducible tooling and environments over e.g. Docker, is its support for macOS as well as Linux - combined with WSL2, you can have a reproducible environment for basically every OS on the market. Because macOS is a closed-source OS, as a GNU project it will almost certainly never be made available on there.

                    • Nix’s other benefit for tooling and development is that its standard central package “repository” (codebase?) in nixpkgs will package essentially anything that is legal to do so; making use of the expressive nature of Nix package management to allow users to decide the level of unfree software they want to permit; Guix will only package libre software and forces users to go through unofficial channels (nonguix) and official channels prohibit the discussion of the fact that nonguix even exists.

                    1. 2

                      Absolutely. If it didn’t have the terrible language, it would be great for all those reasons. But it’s terrible enough that I’m staying away from it, at least for now, despite how much I want it.

                    2. 8

                      I am always a little torn on this. I agree nix is hard to learn, and am pretty selective about who I recommend it to.

                      But it is also a pretty big lever.

                      So big that (at least for people likely to put the lever to use) I don’t think the decision is comparable to something like choosing a general purpose language to invest in learning.

                      I think it is a little bit more like deciding whether or not to move to a place you know you will love–but you don’t speak the language.

                      If you want to live there, it will be worth learning the language. Even if it is like learning Mandarin or English or Icelandic.

                      1. 4

                        Maybe nonguix if someone actually makes it the the whole system rather than an extra channel. Guix-the-system (not just the tooling) is too idealistic about things and I don’t see it ever catching on in the industry.

                        1. 2

                          I’m curious, in what way is Guix better than Nix?

                          1. 6

                            Two ways:

                            • Starts from an existing language (Guile) and then is effectively a DSL. I’m very pro this approach vs. rolling a new language as it means if you can’t figure out how to do things with the DSL syntax, you can always drop into the parent language to do something, and that’s more likely to have general-purpose language features (e.g. a variety of control flow stuff) than a custom “for this config only” language. See also Chef (which has all of Ruby to play with) v.s. say Ansible YAML loops
                            • Their work on reducing the bootstrap seed is vital for things like this to be reliable.

                            OTOH, Guix basically has the problem of it being a purist GNU project i.e. many of the things you want to have packaged just aren’t because they aren’t free enough, and also the NIH is very strong (e.g. Shepherd).

                            On balance, I’m not overly fond of either of them, but I love the idea of them.

                        1. 3

                          It is funny to me to rule out old books from this list. For system administration things do go out of date, but I think development and architecture books have very long life times. For years I have wanted to make a big list of every unix book, but I can’t seem to find plain text library catalogs to enable the creation of the list. I’ll try and remember to do a response post with some of the development focused books I have.

                          1. 1

                            I would like to see that list please :)

                            1. 1

                              Yes, I would like to see this list as well.

                            1. 19

                              At this rate, he might as well write a book on Rust. Learnt so much from his posts. ✅💯

                              1. 10

                                I think it’d actually be nice to put some of his guides into the rust docs. Stuff like typical profile setups, error handling infrastructure, serialization, time and rng handling that are totally fine to just include in your application. Obviously you can’t put this in the permanent rust docs or book as they’re very opinionated and may be outdated easily.

                                But what I’ve seen is that new people, who didn’t see the ecosystem grow since 2015 and follow the trends, are pretty easily overwhelmed with the question of what you should use and what is a fair price to pay performance wise* (backtraces,auto-boxing for errors etc). So it’ll probably be the rust commons ? And I think it should be done sooner than later, because while rust didn’t add a fat std for obvious reasons, it’s hard to search through stackoverflow just to find out what the typical rust way of doing logging/backtraces/errors/regex/.. is (or that you should watch out for async-std vs tokio vs tokio 1.0 in async land). And some will certainly just start to write their own (whacky) solutions instead of using the exisiting ones, creating an even bigger time-to-mvp and thus less motivating results of what you actually wanted to accomplish.

                                * I’ve watched myself and other people deciding against backtraces (stable_eyre), auto-boxing (anyhow) and tracing simply because in rust you can actually think about the overhead this may introduce. Meanwhile nobody will think about turning off backtraces on a hard crash in java/python/nodejs. And I’m very certain this is premature optimization which is preventing you from debugging failures and giving you a harder time using rust also contributes to the “hard to learn” feeling.

                                1. 4

                                  Autoboxing with errors can actually improve performance if the type in your Err variant is large. This is because Rust enums are the size of their largest variant. So if the Err variant of a returned Result is large, the return slot of that particular function will always be large even if the “happy path” (the Ok variant, since errors should be rare) is small or even unsized (()). Boxing ensures the Err variant is only pointer sized.

                                  Of course this isn’t always the case, but it’s common enough that it’s a reason crates like anyhow use this pattern.

                                  1. 3
                                    1. 1

                                      Hm yeah true - didn’t think about that even though I know how rust enums work.. Another pitfall to add to the list. I guess many people just optimize for no-alloc. But I honestly don’t know how well you can do error-kind matching over anyhow/eyre, apart from some type-testing. Which would be my go-to for autoboxing.

                                1. 4

                                  Continuing on from my various explorations that I have done in 2021:

                                  Formal Methods

                                  Read most of Practical TLA+. Now, I have to get around to actually writing some TLA+.

                                  Raku

                                  I use it as an enjoyable, general purpose programming language. Would like to release some libraries and contribute to the community.

                                  NixOS

                                  Have just started using it on my personal laptop. Some compelling ideas, wonder if I can use it at work.

                                  OpenBSD

                                  Runs on my personal desktop, and VPS. Want to gain more experience with using and running OpenBSD.

                                  Reading

                                  Ordered Computer Systems: A Programmer’s Perspective and The Garbage Collection Handbook, so will gradually read through them to improve my knowledge in these areas.

                                  NeoVim

                                  Primarily an Emacs user, but want to be able to reach a point where I can get work done in NeoVim to keep my brain flexible.

                                  Rust/Haskell/ATS/Agda/Coq/C/C++

                                  These will need to wait I guess. Already too much going on.

                                  1. 5

                                    As a Raku programmer, every now and then when I read some Perl code, I am reminded that Raku is a Perl, even if it did not succeed in becoming the next-generation of Perl. So many cool things that I once felt were “Raku things” have been “Perl things” for a long time. e.g. the “defined-or” operator.

                                    There are some libraries that I would like to port over, and I believe I will end up learning some Perl anyway. Higher Order Perl, and Programming Perl are on my to-read lists. I keep looking on MetaCPAN to see what’s up in the Perl community.

                                    Happy Birthday!

                                    1. 2

                                      Wow, that’s a great overview. Thanks for sharing.

                                      1. -1

                                        To be frank, no project that uses the GPL post-GPL2 will ever be the ‘boring’ variant. Not because it can’t, but because you need to convince lawyers that it’s boring.

                                        And GCC has done little to create a situation where it might be. clang/LLVM breaks the compiler in two, with a frontend and a backend that can evolve independently. Can you even do that with gcc? And I mean, in a practical sense. I know that the frontend and backend of gcc can technically be decoupled, but technically != plausibly.

                                        1. 9

                                          What does a compiler’s choice of license have to do with its approach to undefined behaviour? Maybe just being dense, but I don’t understand what point you’re making here.

                                          1. 5

                                            Your information is outdated. You can use GCC backend without GCC frontend, and it is an option supported by upstream. Since GCC 5. See https://gcc.gnu.org/wiki/JIT.

                                            1. 4

                                              Since the compiler’s license has no effect on the license of your code, nor does GPL3 change anything much vs GPL2 (in reality, I understand there is a lot of spin to the contrary), this seems like an axe to grind more than a contribution

                                              1. 3

                                                We couldn’t use gcc post-GPL3 when I was at Amazon (or recent versions of emacs for that matter). Do GOOG/MSFT/FB treat gcc differently?

                                                1. 4

                                                  Are you saying that Amazon engineers are not allowed to use Emacs as a text editor?

                                                  1. 1

                                                    There were many engineers using emacs, but the official line was that you weren’t allowed to install any GPL3/AGPL software on a work machine for any purpose, and that explicitly included recent versions of emacs (and also recent versions of gcc, which meant the build system was stuck with obsolete versions of gcc). I suspect everyone just ignored the emacs restriction, though. I’m sure a lot has changed since I left in 2014 (I bet the build system has moved to clang), and I don’t know the current policy on GPL software.

                                                    1. 1

                                                      Okay, that sounds bad. Thanks for the clarification! 👍🏽

                                                  2. 3

                                                    At Microsoft, the policy is surprisingly sane: You can use any open source program. The only problems happen when you need to either:

                                                    • Distribute the code.
                                                    • Include it in something customers can use.
                                                    • Incorporate it into a product

                                                    There are approvals processes for these. There’s no blanket ban on any license (that I’m aware of) but there are automatic approvals for some licenses (e.g. MIT), at least from the lawyers - the security folks might have different opinions if upstream has no coordinated disclosure mechanism or even a mechanism for reporting CVEs.

                                                    1. 2

                                                      That sound unsustainable. Do you not already need new builds of GCC to build Linux? Surely if not, then you will eventually. And I can’t see Amazon ditching Linux any time soon

                                                      1. 2

                                                        Keep in mind my information is 7 years out of date (I left in 2014, when Amazon was just starting to hire Linux kernel developers).

                                                1. 2

                                                  Visiting family and pre-preparing various Christmas food. As my parents have gotten older we’ve learned it is easier to prep as much as possible about a month in advance, such as dough for sweets, or pre-cooked pierogis, and freeze it until the actual week of the holiday. They’ll find things to stress about in that week to fill the space, but at least one big chunk of is done.

                                                  We tend to give out a lot of holiday food to friends and family. Baking a few dozen mini-loaves of zucchini bread, hand-filling 300 pierogis, and so on, requires a team effort for the whole weekend.

                                                  1. 1

                                                    I have been curious to try out pierogis! Any good recipes you can share (secret ones are totally fine 😅)

                                                    1. 2

                                                      The dough has simple ingredients, but an involved process. I’ll send a DM later today.

                                                  1. 8

                                                    Emacs is not really an editor either! I believe that Emacs is the ultimate editor building material.

                                                    Some people put it in terms of “it’s basically a Lisp machine environment”, and they’re not wrong (albeit it’s not a particularly good Lisp machine, I guess :-P).

                                                    I’ve been trying to get myself to use VS Code on and off for a few years now, as Emacs is not exactly thriving tech these days and I don’t suppose it’s going to get much better in the next fifteen years. Aside from muscle memory and weird UI choices (why in the world are we using three lines’ worth of screen estate to show the current file name and three icons!?), the fact that it doesn’t have the kind of introspection and interactivity Emacs has is what’s giving me the most headaches.

                                                    I want to automate some tedious code generation, or generate some test data? That’s five lines of Emacs Lisp, bind them to a key (I can do all of that in the scratch buffer) and there we go. As far as I can tell, if I want to achieve the same thing with VS Code I pretty much have to create a custom extension, which I then have to package and install. That’s… quite an involved process for a one-off function.

                                                    1. 10

                                                      Emacs is a view of a better, alternate reality, where our computing environments were completely under our control. It makes a bunch of compromises to the world-as-it-exists, and has many hideous warts, because it’s old, but it’s the best computing environment widely available, by my metrics.

                                                      1. 6

                                                        I have never used emacs (ok, I “used” it for about a month, ~20 years ago, but I never got the hang of it), but I use acme (from Plan 9). While acme couldn’t be further from emacs in terms of UI, UX, and philosophy, they are both equally far from “regular” editors like vscode and whatever. Once you have used an environment like this, all the “regular” editors seem equally crippled to you, equally not interesting, and equally missing the point of what’s important. Their differences become trivial.

                                                        1. 6

                                                          I really like acme, too. By the time I got a chance to really play with Plan 9 I already knew Emacs and I was too far gone to the other side but I do wish Emacs played better with the outside world, the way acme does. For a while I actually tried to hack an acme-mode for Emacs that would allow Emacs to interact with the outside world the way acme does but it didn’t get too far. This was like ten years ago though, maybe things are better now.

                                                          IMHO, while the differences in UI are tremendous, the difference in philosophy, for lack of a better term, is not as deep. Acme is obviously more “outward”-oriented, in line with its Unix heritage, whereas Emacs is far more “inward”-oriented, partly because it comes from a different world, partly because it sought to re-create much of that different world under a different environment. But Emacs’ “internal” environment, while operating in terms of different abstractions than those of Unix (files, processes, pipes) into which Acme so seamlessly plugs, is remarkably similar to Acme’s.

                                                          For example, one of the things I like the most, and which I find myself using quite frequently, is an 8-line function that replaces an S-exp with its value. This allows me to write something like One hour from now it'll be (format-time-string "%H:%M" (seconds-to-time (time-add (current-time) 3600))) in a buffer, hit F12 at the end of the line, and get all the parentheses replaced with what they evaluate to, yielding One hour from now it'll be 01:10 in my buffer. This is basically Acme’s command execution, except it’s in terms of Emacs Lisp functions, not processes + some conventional commands like Cut, Snarf etc.. It’s… either more, or less powerful, depending on how much Emacs Lisp that does what you need you have around.

                                                          (I know it’s a silly example, it’s just the easiest concrete one I could come up with on the spot. Over time I used it for all sorts of things – e.g. when testing a bytecode VM, I could write something like test_payload = (bytecode-assemble "mov r8, r12"), hit F12, and get test_payload = [0xDE, 0xAD, 0xBE, 0xEF] or whatever)

                                                          But ultimately it still boils down to a text editor plus an environment from which to assemble a “text processing workbench”, except with different parts – Emacs has its own, Acme allows you to borrow them from the Unix environment. IMHO the latter approach is better. Lots of things, like real code completion and compiler integration support only landed in Emacs once it got reasonable support for borrowing tools from the outside.

                                                          As for VS Code… ironically, the thing that keeps me away from it the most is that honestly it’s just not a very good text editor :-D. Not only could I live without Emacs Lisp, I’d be extremely happy without Emacs Lisp, the language that embodies the simplicity of Common Lisp, the stunning feature set of Scheme, and the notorious openness and flexibility of RMS in one unholy Lispgoblin whose only redeeming feature is that at least it’s not Vimscript. Most of the Emacs Lisp code I write is one-off code that gets thrown away within minutes and I could do without it, I don’t really use much of Emacs’ renowned flexibility (in fact, last time I tried to, I yelled at rustic for like half a day). But in order to get things that I now think are basic, like easy back-and-forth navigation between arbitrary positions in different files, a kill ring, a save register, easily splitting/unsplitting views, oh and if possible a user interface that doesn’t light up and blink like a Christmas tree, I need to install a few dozen extensions, and that doesn’t look like an editor that’ll hold up for fifteen years…

                                                          1. 1

                                                            Did you mean to say “the simplicity of Scheme and the stunning feature set of Common Lisp” instead?

                                                            1. 4

                                                              No, that was sarcasm :-D. Emacs Lisp has a bunch of interesting pitfalls (e.g. for the longest time it only had dynamic scoping) and is not a very straightforward Lisp, much like Common Lisp. However, it’s feature set is fairly limited, much like Scheme (albeit IMHO in poorer taste, I’d rather write Scheme most of the time). Hence the “simplicity” of Common Lisp and the “stunning feature set” of Scheme :-).

                                                              1. 1

                                                                😂 Alright!!

                                                            2. 1

                                                              The inward/outward comparison is apt.

                                                              I ended up in acme after 15+ years of emacs, partly out of curiosity after watching an rsc screencast and partly because I needed a break from my yearly cycle: juggle elisp packages to add features, tinker, tinker too much, declare configuration bankruptcy and repeat again.

                                                              I’m old enough that being able to quickly reuse existing tools is more valuable than the satisfaction of reimplementing them or integrating them into an editor. I do use other editors occasionally, and they are shiny and feel cool and certainly better at some tasks. But I end up back in the pale yellow expanse of tag bars and columns, because there’s another tool I need to interact with and I know I can get it done with files and pipes.

                                                              I sometimes think about how much time and effort goes in to editors and tooling integration, and wonder how we got to such a point.

                                                              1. 1

                                                                The “outward” vs. “inward” distinction WRT Bell Labs/Unix/C and PARC/Lisp/Smalltalk is a fascinating one. Reminds me of Rob Pike’s experience report after visiting PARC: https://commandcenter.blogspot.com/2019/01/notes-from-1984-trip-to-xerox-parc.html.

                                                            3. 4

                                                              This mirrors my own experiences with VS Code. It’s great, but it simple doesn’t have Emacs’ flexibility. The things that VS Code have envisioned people doing are great and easy to do, but if you try to do things besides that, you’re out of luck. VS Code does do a lot of things really well, but I keep coming back to Emacs (these days, Spacemacs) at the end of the day.

                                                              1. 1

                                                                That’s five lines of Emacs Lisp, bind them to a key (I can do all of that in the scratch buffer) and there we go.

                                                                I found this line particularly intriguing as a vim user. Given that I also have some interest in learning common Lisp, I may just have to give emacs a try.

                                                                1. 1

                                                                  Is this not something you can do with vim? I’m not poking fun at it, I’m asking because it seems like a pretty small thing to change editors over. It may be far more useful to do this from the environment you already know.

                                                                  I mean, I didn’t have some grand realization that Emacs is the best editor and thus attained eternal understanding of the Tao of text editors, it’s just that when I installed my first Linux distro, I installed it from one of those CDs that computer magazines came with and the CD was scratched or had sat too much in the sun or whatever, so it had a few corrupted packages that wouldn’t install. vim was one of them, emacs wasn’t, so I learned emacs (and for the longest time I didn’t really use it much – I still mostly used Windows for a couple of years, where I used UltraEdit). In 15+ years of seriously using Emacs, I don’t think I’ve ever used a feature my vim-using buddies frenemies couldn’t replicate, or vice-versa. Other than sane, non-modal editing, of course :-P.

                                                                  1. 2

                                                                    The reason I use vim is very similar to the reason you use emacs: it’s the first one we learned. In your case because your CD was damaged, in my case because my friend was using vim. There’s no harm in giving the other an honest try. I just don’t know when I’ll have the time.

                                                                    1. 1

                                                                      Oh. Well in that case, have fun with emacs! The tentacle fingers are gonna come in super handy once you grow them.

                                                                      (They did tell you about the tentacle fingers right?)

                                                                    2. 1

                                                                      I installed it from one of those CDs that computer magazines came with and the CD was scratched or had sat too much in the sun or whatever, so it had a few corrupted packages that wouldn’t install. vim was one of them, emacs wasn’t

                                                                      I love this.

                                                                      It’s very similar to my Emacs origin story. I was a dvorak typist (still am!) when I was in university and I knew I had to pick between vim and emacs. I looked at vim and it was like “just use hjkl; they are right there on the home row so it’s easy to press” and I was like “no they’re not!” and realized by process of elimination I might as well use emacs instead.

                                                                1. 2
                                                                  • Enjoying my birthday
                                                                  • Drinking
                                                                  • Working on a programming portfolio in case I decide to go for computer science
                                                                  • Working on crust shell
                                                                  1. 2

                                                                    Happy Birthday!!🎂

                                                                  1. 25

                                                                    Thank GOD. With all due respect to the fine folks who work on it, Gnome is a tower of tech debt and I can’t wait to see what System76 produce.

                                                                    I really feel for the small handful of devs who are paid by RH and Canonical to work on Gnome. Seeing Daniel Van Vugt’s commend at the end of this bug is a fine example of the staggering debt these folks are working against.

                                                                    1. 19

                                                                      I get where you’re coming from but a lot of that tech debt is in GTK & friends, and this is supposed to be based on gtk-rs, so it will carry over all that tech debt.

                                                                      Case in point: it seems it would still use mutter, so it’s still going to suffer from the bug you linked to.

                                                                      Also, gtk-rs is essentially a (very advanced) wrapper – some auto-generated, some manually implemented – over GTK that AFAIK is not actually developed by the GTK team, so it involves all the compatibility fun of working with GTK and obviously solves none of the problems System76 had with GTK in the past. It’s also the most mature GUI toolkit available for Rust, as someone else has pointed out here, but that’s a pretty low threshold to exceed. It still has a long way to go before it’s anything near stable.

                                                                      I don’t want to say this is bad and it’s gonna be a waste of time – quite the contrary! First, at the end of the day, this is FOSS so whatever makes these guys happy is what’s important. Second, if anything, it will at the very least give gtk-rs a lot more real-world exposure and more testing, which the whole Rust world will definitely benefit from. And, indeed, as someone else pointed out, it’s really cool that we’d see a desktop developed primarily by a company with paying customers, for its paying customers, something we haven’t seen in the Linux world in a very long time and which, IMHO, has significantly contributed to the decline in functionality and stability, in spite of the growth of “polish”, whatever that is. So I think this is really good news, I’m just… moderating my expectations a bit :-).

                                                                      1. 3

                                                                        Case in point: it seems it would still use mutter, so it’s still going to suffer from the bug you linked to.

                                                                        Boo :( So I guess my lovely System76 Thelio will continue running Windows 11 :)

                                                                        (I’m trying to run Fedora 35 KDE spin as well but that’s got some rather sincere teething pain happening)

                                                                      2. 4

                                                                        Gnome already has a dependency on Rust via librsvg and GStreamer. gtk-rs is the most mature GUI toolkit available for Rust.

                                                                        I wonder if Gnome could capitalize on this and fully embrace Rewrite-it-in-Rust with the help of System 76.

                                                                        1. 5

                                                                          That would be nice but I doubt it. Gnome has SOOOO much C code floating around.

                                                                          I could maybe see them do something like “All new development in Rust” but I seriously, SERIOUSLY doubt it :)

                                                                          1. 9

                                                                            Gnome is a tower of babel application-wise; everything from C to Python to JS.

                                                                            1. 8

                                                                              And vala.

                                                                              1. 1

                                                                                Hah! And nice seeing you here! 😊

                                                                      1. 13

                                                                        My daughter was born last Friday. I was fortunate enough to arrange three weeks parental leave where I work, and that’s naturally what am at this weekend too.

                                                                        Interestingly enough I found dabbing into my pet projects in between the chores and the little one’s feeding is quite doable. It feels like permanent tiredness and slight sleep deprivation allows for easier focusing, somehow? Or perhaps it’s just less coffee throughout the day.

                                                                        1. 5

                                                                          Congrats

                                                                          1. 2

                                                                            Thanks!

                                                                          2. 4

                                                                            Congratulations :)

                                                                            1. 2

                                                                              Thank you!

                                                                            2. 2

                                                                              Congratulations! Glad you’re able to find time for tech as well.

                                                                              1. 2

                                                                                Thanks! Was bit afraid that the rest of my personal life will be completely derailed but it’s going good.

                                                                              2. 2

                                                                                Congrats and best of luck. 🎉 Mine are both teenagers but I still remember those early days.

                                                                                1. 1

                                                                                  Thanks! Our older is 17 now, so our recollections are quite dim :)

                                                                              1. 7

                                                                                To have a “complete” programming education, it’s good to learn a language from the important families, which are described as ur-languages here. Later on it becomes easy to switch between languages in the same family without much difficulty depending on the application.

                                                                                I have written a bit of OCaml, Common Lisp, Raku Clojure, and brief excursions in Prolog and K (recently BQN has become a notable new addition to the family).

                                                                                Some languages are multi paradigm like Common Lisp, Clojure and Raku which allow me to pick and choose the paradigm depending on the problem at hand.

                                                                                At some point would like to try out a stack-oriented language, but doesn’t seem like any of them are actively being used to build software, even though implementations are being created all the time.

                                                                                  1. 1

                                                                                    I honestly don’t understand btrfs. Oracle started it because of ZFS licensing issues, but Oracle owns ZFS now. They could just fix the ZFS licensing issue and have a much more mature system right away, but for some reason they don’t. Btrfs feels like mostly sunk cost at this point…

                                                                                    1. 10

                                                                                      From the third paragraph:

                                                                                      Chris Mason is the founding developer of btrfs, which he began working on in 2007 while working at Oracle. This leads many people to believe that btrfs is an Oracle project—it is not. The project belonged to Mason, not to his employer, and it remains a community project unencumbered by corporate ownership to this day. In 2009, btrfs 1.0 was accepted into the mainline Linux kernel 2.6.29.

                                                                                      1. 1

                                                                                        That’s relevant and interesting, but while if Oracle spends no resources contributing to btrfs I guess that reduces the benefit to getting ZFS in Linux, I still wonder why they wouldn’t consider it a win for Oracle Linux users to be able to use ZFS…

                                                                                        1. 1

                                                                                          Does Oracle own zfs with 100% of the copyright assignment? If not, they may not be able to do it, even if they wanted since it would require getting agreement from every contributor.

                                                                                          1. 4

                                                                                            They own the version that came to them, but not what the community has done since then. They already got a small piece GPL’d for use in grub2

                                                                                            1. 4

                                                                                              While Oracle only holds copyright on ZFS, and not the contributions made to OpenZFS, CDDL section 4 provides a method for them to re license community contributions.

                                                                                              1. Versions of the License.

                                                                                                4.1. New Versions. Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.

                                                                                                4.2. Effect of New Versions. You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.

                                                                                                4.3. Modified Versions. When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.

                                                                                              Via the acquisition of Sun, Oracle is the steward of the license. And therefore could publish a new version which all existing CDDL code would also be covered by (unless the original developer included a notice prohibiting using of future versions). So to make it GPL compatible, this potential CDDLv2 could include a secondary license clause like the MPLv2 does.

                                                                                              1. 3

                                                                                                I was under the impression that people were resistant to ZFS due to some GPL vs BSD kinda ideological difference. I wasn’t aware of this, thanks for highlighting it.

                                                                                                The possibility that the entire OpenZFS effort could, in theory, be appropriated by this section of the CDDL is alarming, and now I have a better understanding why Linux/GPL folks are opposed to this license.

                                                                                                Does this mean that the stewards can take OpenZFS and re-license it as proprietary project, which is essentially a cease-and-desist to all ZFS users everywhere? Of course, in terms of community outrage and developer goodwill it will be a PR disaster, but if ever the winds of business change in a manner where this might not be the worst thing to do, all bets are off.

                                                                                                1. 8

                                                                                                  Does this mean that the stewards can take OpenZFS and re-license it as proprietary project, which is essentially a cease-and-desist to all ZFS users everywhere?

                                                                                                  No, anything out and available as CDDL v1 will continue to be available under v1. Section 4.2 covers continuing to use the original version it was published under.

                                                                                                  4.2. Effect of New Versions. You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software.

                                                                                                  Note this isn’t anything unusual, the GPL has a similar clause. See GPLv2 section 9 of its terms and conditions.

                                                                                                  1. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

                                                                                                  Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

                                                                                                  1. 6

                                                                                                    Most of the license conflict isn’t some ideological difference, but a very practical difference. GPL-licensed code can only be used by software licensed under a GPL-compatible license, meaning roughly that it can only be used by software with a license that has the same or fewer restrictions than GPL. That means using GPL code from a MIT- or BSD-licensed project is no problem, but using GPL-licensed code from a project with a more restrictive license (or from proprietary software) is prohibited by the GPL.

                                                                                                    The CDDL has extra restrictions on what you can do which makes it not GPL-compatible. That means ZFS isn’t allowed to use GPL’d code. Linux is under the GPL, and you can’t be a filesystem inside the Linux kernel without calling Linux functions. So ZFS can’t be integrated into Linux until either ZFS moves to a GPL-compatible license or Linux moves to a permissive license, neither of which is ever gonna happen.

                                                                                                    If the challenge was only that some people who work on Linux had some ideological aversion to the CDDL I bet it’d have been integrated into the kernel a long time ago.

                                                                                                    This is my understanding of the situation from reading stuff on the Internet. There may be inaccuracies. I’m not a lawyer. Also, different lawyers have different views on these things, Canonical’s lawyers for example think it’s okay to have CDDL-licensed code as a separate kernel module that’s loaded at runtime, and that the only problem is having GPL-licensed code in the statically linked kernel image itself.

                                                                                                    My personal view of these things is that ZFS is a kinda cute proof of concept which is never going to be actually relevant due to its license, and that I hope BTRFS will eat its lunch. I think it’s sad that so many great open-source filesystem engineers are putting so much excellent work into a dead project.

                                                                                                    1. 6

                                                                                                      Except ZFS already works well and btrfs doesn’t give much hope of catching up this decade…

                                                                                                      1. 3

                                                                                                        That’s true. The most likely outcome is that neither ZFS nor Btrfs will be usable any time soon (or ever), Btrfs for technical reasons and ZFS for intentional licensing reasons. But I think working on the technical problems of Btrfs is more fruitful than sitting around and waiting for ZFS to suddenly not be under the CDDL.

                                                                                                        1. 3

                                                                                                          I would love to help fund a clean rooming of ZFS (need two implementations to make a standard anyway…) But I may be the only person interested in that.

                                                                                                          1. 4

                                                                                                            You wouldn’t be the only person interested but the amount of engineering effort required would be phenomenal. Sun spent a lot of time and money on it prior to release, and it’s had constant engineering effort on it in the decades since.

                                                                                                          2. 2

                                                                                                            The most likely outcome is that neither ZFS nor Btrfs will be usable any time soon (or ever),

                                                                                                            Only if you restrict yourself to Linux. I’ve been a happy ZFS user on FreeBSD for over a decade now. It works out of the box, the installer can set up a ZFS pool, and the you can boot from a ZFS root filesystem.