1. 8

    This is an awfully long post to say “I don’t understand OOP, and I claim to hate it based on this misunderstanding.”

    1. 16

      There’s a lot of good stuff in here that we all think everyone knows and we say to each other in the pub but we don’t really say out loud to the people that need to hear it.

      The main one that comes to mind is about mobility. They said something like “if I get fired I’ll have a new job in two weeks.” The tech folks that don’t know this is true need to learn it. More importantly: the people who manage tech people need to learn it.

      1. 22

        if I get fired I’ll have a new job in two weeks.

        This has never been true for me. Job hunting has always been a relentless slog.

        1. 12

          Imma guess it depends on where you are. Silicon Valley, Seattle, NYC, London, you can basically put your desk stuff in a box, and throw it out a window and have it land in another tech company’s lobby.

          Other places, not so much.

          1. 9

            I agree living in a tech hub makes finding a job way easier, but I jump to temper the hyperbole just a bit. I know that I personally felt a lot of self-hatred when I tried to change jobs and it took months of applications and references and interviews to actually get one, even living in a tech hub.

            1. 6

              Technology stacks don’t really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it’s not going to be the same as webdev or embedded.

              It depends on what you do. The author is a database specialist, so of course they’re going to claim that SQL is the ultimate language and that jobs are plentiful. I’m an SRE, so my career path requires me to pick specific backend-ready languages to learn. I have several great memories of failed interviews because I didn’t have precisely the right tools under the belt:

              • I worked on a Free Software library in Python along with other folks. They invited me to interview at their employer. Their employer offered me a position writing Lua for production backends. To this day, I still think that this was a bait-and-switch.
              • I interviewed at a local startup that was personally significant in my life. I had known that it wasn’t a good fit. Their champion had just quit and left behind a frontend written with the trendiest JS libraries, locking their main product into a rigid unmaintainable monolith. I didn’t know the exact combination of five libraries that they had used.
              • I interviewed at a multinational group for a position handling Kubernetes. I gathered that they had their own in-house monitoring instead of Prometheus, in-house authentication, etc. They also had a clothing line, and I’m still not sure whether I was turned down because I didn’t already know their in-house tools or because I wasn’t wearing their clothes.
              1. 3

                They also had a clothing line, and I’m still not sure whether I was turned down because I didn’t already know their in-house tools or because I wasn’t wearing their clothes.

                Seems like a blessing in disguise if it was the clothes.

              2. 3

                I have this problem and I’m in a tech hub. Most of my coworkers and technical friends are in different countries I can’t legally work in, so I rarely get interviews through networking. Interviewing is also not smooth sailing afterwards.

              3. 5

                This has never been true for me. Job hunting has always been a relentless slog.

                Same here, I also live in a city with many startups, but companies I actually want to work for, which do things I think are worthwhile, are very rare.

              4. 7

                There’s a lot of good stuff in here that we all think everyone knows and we say to each other in the pub but we don’t really say out loud to the people that need to hear it.

                Interesting that you say that in the context of modern IT. It has been so with many things since ancient time.


                Perhaps the traditional after-work Friday beer plays a more important role in one’s career than most people think. Wisdom is valuable and not available ons course you can sign up to.

                1. 1

                  Wisdom is valuable and not available ons course you can sign up to.

                  Which is ironic given wisdom is often what they’re being sold as providing.

                2. 5

                  The main one that comes to mind is about mobility. They said something like “if I get fired I’ll have a new job in two weeks.” The tech folks that don’t know this is true need to learn it. More importantly: the people who manage tech people need to learn it.

                  Retention is a big problem. It can take up to a year to ramp up even a senior person to be fully productive on a complicated legacy code base. Take care of your employees and make sure they are paid a fair wage and not under the pressure cooker of bad management who thinks yelling fixes problems.

                  1. 2

                    That’s probably why the OP says their salary went up 50% while their responsibilities reduced by 50%. Onboarding.

                1. 6


                  Next to me on my desk I have a very good book, “Making and Breaking the Grid”, which is about graphic design.

                  I am not very good at graphics design, but I want to be better, so over the years I’ve collected a dozen or two books on it.

                  These books are classics. I can pick them up 50 years from now and get information on things like the grid, typography, A/B testing, and so forth. They contain no tech.

                  By the same token, I’ve got easily 100x that on technology to actually implement the concepts in these books. These books are good for about a year or three. Every so often you have to either toss out what you have or put them in cold storage. (Anybody looking for a good AJAX book?)

                  The problems don’t change on these crazy fast cycles. The technology does, however. So as a professional you have to ask yourself: is your job to master solving problems and then choosing and applying tech to do so, or is your job mastering tech and then taking whatever problem you’re given and throwing that new tech at it.

                  This is not an anti-tech/Luddite argument. If the cool thing you’re using can solve the problem better, use it. This is an argument about what things drive what other things. I’m willing to bet that there are a lot of folks using things like CSS Grid who’ve never read about or used grids “in the wild”. Some of these folks might even be UI/UX folks. For those folks, how would they ever be able to tell whether a new tech was actually useful for something they needed, or just something new and flashy? We’ve gotten something seriously backwards in our industry, and it’s not just limited to CSS and graphics. </rant>

                  1. 3

                    Indeed! I wish I had a better sense of what factor(s) drives this too. Is it people trying to get promoted and optimizing for “new shiny tools” to say they fixed a problem (without actually fixing the root of the issue)? Are we afraid of going “deep” into the problems and so we just build superficial wrappers / abstractions that make sense to us but no one else?

                    1. 4

                      (unsubstantiated opinion follows)

                      I love photography. I’m not that great at it, but I’ve been shooting pictures for decades and I feel like I’m getting better.

                      I don’t read photography things online. Why? Because, in my mind, the business of making and buying photography gear is not related at all to the business of actually shooting good pictures. Don’t get me wrong: I’m a huge photography gearhead and have serious nerd envy about some of the hi-res/low-light/HDR gear I’m seeing. It’s just that the gear doesn’t make the picture. Sure, it can help take a good idea and turn it into an excellent picture, but it’s the idea and the expertise to translate it that drives whatever gear you might or might not need, not the other way around. Mozart would kick ass on a ukulele. No matter how hard you bang on that $100K piano, you’re not going to sound like Mozart.

                      People buy things based on the benefits they’re promised. When these things get complex, the person buying is never sure if their average/poor results are a result of poor gear or something else. This leaves them open to buying even more cool gear next year. When you don’t have a feedback cycle, the feedback cycles becomes something akin to “what the other cool kids are doing”. This is why fashion designers pay models to be seen in their outfits. We are herd creatures. If you can’t do a good job, you can at least hang with some really awesome people playing with some seriously cool stuff while you blame your poor results on something else.

                      1. 3

                        That’s true there is certainly a ‘mimesis’ component to all of this (both individually and organizationally).

                        I have seen what you’re describing re: photography / music in a lot of hobbies. Mastering the fundamentals is difficult and takes time, so people probably figure why not spend more money on more powerful gear to on one level emulate the masters, and on another feel like they’re getting more immediate rewards.

                        I suppose the same general train of thought applies here in how we manage software abstractions, complexity, etc.

                    2. 2

                      This is related to something I realized recently while looking for a CAD package. I am very familiar with FreeCAD, and it’s great. But the interface is clunky, and I have a large project I wanted to undertake so I thought I’d look at the alternatives: AutoCAD, Archicad, Rhino, and a few others. I was shocked, shocked I tell you, to learn that FreeCAD is actually the best of the bunch. Easiest to use, complete feature set, easily extended.

                      I compared this thought to when I met some architects a couple years back. I noticed pretty quickly that these architects weren’t architects at all: they were AutoCAD users. They didn’t learn architecture, they learned AutoCAD. Some learned Archicad.

                      The same is true in programming: we have Java Programmers, where we used to have Software Developers (many are the latter, still, but it’s not typical.)

                      I suspect we’re seeing the same thing in “web design” and so on.

                      1. 3

                        I used to do Agile Tech coaching, ie, I knew both how to code and how to run good software projects.

                        Time and time again, I’d see somebody ask another coach a question, like “How do we split User Stories?”

                        The answer would be “Well, you right-click on the link in the kanban column, then choose ….”

                        They were explaining how to split User Stories, that is, the physical process of using the tool. But they weren’t actually explaining how to do it regardless of the tool. The building were full of folks like that. We were using traditional classroom methods to teach people how to operate tools, not how to actually do the work.

                        I stopped doing that job. It was too depressing. A lot of activity and work, but progress was actually going backwards.

                        1. 2

                          I just got back into doing coaching, and I’m finding the same things now that I did almost a decade ago. It’s like we’ve learned nothing.

                          1. 2

                            I feel like some really great coders and mentors came up with some things that worked, managed to generalize them so they continued to work (which usually doesn’t happen), but had no idea why they worked.

                            Nothing wrong with that, at least until you get thrown a lot of edge cases and the field fills up with people who want to look smart and publish. Then, this simple idea grows into an entire industry. It becomes a monster, a monster that’s not actually about making stuff people want. (It’s about doing coaching that people like. Not the same thing!)

                            I also did my share of publishing, figuring out (I think) why things work. And know what? It doesn’t make a difference. It’s still about “meeting people where they are” and playing “tell me what you want and I’ll tell you that’s what you need” Note: it’s not that it’s crooked, it’s that trying to help people without a good theoretical foundation can never scale past a few clients and a couple of years. It grows into a marketing monster and stagnates. Nothing is ever going to change there, and still those initial ideas have a lot of merit. You just can’t build on them without destroying the thing you’re trying to promote.

                            I hope never to go back. I think I’d rather sweep streets. My life’s missing is to make developers happer and more productive. I’m sticking to that :)

                            1. 1

                              I feel a lot of this.

                              My life’s missing is to make developers happer and more productive. I’m sticking to that :)

                              My personal approach to coaching is basically this. I’m fortunate to be in a situation where I’m able to do it this way, though. And I don’t know why I can, so I can’t replicated it. :D

                    1. 20

                      Most of the things he praises — compact lambda syntax, Enumerable replacing “for” loops, everything is an object, MVC — came directly from Smalltalk-80. Often with exactly the same syntax. I think a lot of the genius of Ruby was to mold Smalltalk into a form that was more familiar looking and worked well as a scripting language. (ST-80 had no notion of a source file, nor of unbound functions nor top-level code not part of an object.)

                      1. 1

                        When I was first introduced to Ruby in … 1998 I think, I was told “It’s like Perl, but OO.” And as a Smalltalk enthusiast, I thought “Well, I don’t want OO Perl. I want Smalltalk.” And passed without even looking.

                        The next person who introduced me to Ruby in, 2001 I think, told me “It’s basically a Smalltalk that knows how to interact with the rest of the world.” I looked, and was immediately hooked.

                        I consider Smalltalk and Lisp to be perfect*, and everything else is a compromise. Ruby provides what I consider to be the fewest compromises, while providing interoperability with the rest of the world. It’s situationally-perfect, I suppose.

                        * I often say “Smalltalk-80 is so named to commemorate the year in which it was perfected. Lisp doesn’t have a year modifier because it came out perfect.”

                        1. 1

                          What do you think of Crystal?

                          1. 2

                            I don’t dislike it. I think it’s a great compromise for people who care about the things it offers, but it doesn’t offer anything I care about.

                      1. 6

                        Throwing this out there - the distance you created can be reclaimed. The maintainers today would welcome fresh contributions!

                        I also agree that Chelimsky was an incredible steward, maintainer and contributor. He set the course that made RSpec what it is today, and it’s dang good.

                        It’s worth calling out that Myron Marsten, Jon Rowe, Penelope Phippen carried that forward into being rock solid, reliable, and dependable.

                        What I would like to see going forward is some kind of bridge into property based testing. I don’t have a complete vision for what that might look like, but it would open up a world of possibility.

                        1. 8

                          Oh, I’m not sure I care to reclaim any distance. It’s a mostly good memory at this point. I have regrets, which I think I shared effectively, but I couldn’t be more proud of where it’s at today. And the current maintainers are fantastic.

                          I tried picking up some tickets a few years back, and it didn’t feel like home anymore.

                          I guess I like what they’ve done with the place, but all of my furniture is gone, so it doesn’t feel like home anymore. Maybe the future holds something different, though.

                        1. 23

                          The author even points out that XP only says we should pair on production code. If you’re pairing 8 hours (or more!) per day, you’re being overworked and exploited, or you aren’t doing your whole job.

                          I have seen very few gigs where there isn’t at least an hour a day of email and other administrative tasks to do. Then there’s a lunch break, and bathroom breaks, trying out a new thing, reading some documentation, answering questions from colleagues.

                          If you’re pairing more than 4-6. hours in a given day, you aren’t doing your job as a software developer. You’re being exploited as a code typist.

                          Pivotal is well known for this kind of thing. They strategically schedule their “famous breakfast” to get people to show up earlier. And also strategically order not-quite-enough food so people are encouraged to show up early, so they get some.

                          When you “require” eight hours of pairing per day, you’re getting all of the administrative time “for free,” or you’re preventing your people from doing their whole job. It’s toxic, and the only thing I don’t understand is why some people are surprised at the burnout.

                          1. 49

                            As the saying goes:

                            The first rule of distributing systems is don’t, if you can avoid it.

                            What’s been amazing to me has been the amount of time and effort spent on this technique outside of the small fraction of places it makes sense, all while it is trivially obvious for anybody who stops and thinks for teo minutes what the problems are gonna be.

                            The conference-industrial complex sold snake oil and everybody just lapped it up. Such is the quality of “engineering” in software.

                            1. 29

                              And worse, the snake oil often claims to cure a disease most people don’t have in the first place: the need to scale up dramatically on extremely short notice.

                              1. 33

                                I read a joke somewhere (I cannot remember where): “kubernetes. An ancient Greek word for more containers than customers.”

                                1. 4

                                  I believe @srbaker coined that phrase.

                                  1. 3

                                    Corey from Screaming in the Cloud (https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/) has a variant of this (if I’m remembering well):

                                    Kubernetes, the Greek god of spending money in the cloud

                                    1. 2

                                      Boss wants to market horizontally scaling when vertical would be 10x cheaper :)

                                1. 3

                                  Hopefully replacing the neutral inhibitor switch on my tractor.

                                  Also working on a native Smalltalk OS for RPi4.

                                  1. 2

                                    I read that as “neural inhibitor.” That would have been one hell of a tractor!

                                    Do you have code up anywhere for the OS project, it sounds really interesting.

                                  1. 1

                                    I love that this has been done. I wonder why it’s taken so long; it seems obvious. :/

                                    1. 3

                                      Came here looking for a modern application to play my MOD files.

                                      1. 1

                                        Trivia: That was not the first time Steve Jobs pulled the magic-trick trick. When introducing the Macintosh in 1984, he reached inside his blazer, to extract the floppy from his shirt. He floppy contained the program that made the Macintosh introduce itself

                                        He also pulled the same trick for the original iPod, and then various models that followed. iPod nano is the one that sticks in my head, making use of the “useless” pocket in jeans.

                                        And the original iPhone as well. (I didn’t watch that event live though, hasn’t stuck in my head so much.)

                                        1. 1

                                          I remember watching that keynote, where Jobs repeatedly claims that he was unveiling the thinnest and lightest laptop ever. I watched it from a laptop that was both thinner and lighter. I think it was a Fujitsu somethingorother.

                                        1. 5

                                          The author points out that the “no warranty” bits are in the pinephone license. But completely misses that the exact same text is in every software license.

                                          1. 8

                                            The author seems to focus on power and thermal management features of the SOC. These are often managed by proprietary firmware on other platforms, even while while they may be running Linux as well. While the “no warranty” clause is in pretty much FLOSS license, it isn’t in many proprietary one.

                                            1. 4

                                              From the “Warranty” on iOS & iPadOS:

                                              This Warranty does not apply to any non-Apple branded hardware products or any software, even if packaged or sold with Apple hardware. Manufacturers, suppliers, or publishers, other than Apple, may provide their own warranties to you – please contact them for further information. Software distributed by Apple with or without the Apple brand (including, but not limited to system software) is not covered by this Warranty.

                                              From the “License” on same:


                                              1. 1

                                                It is in nearly every proprietary software EULA I’ve seen, in my work as a license compliance officer.

                                                1. 2

                                                  Really? Proprietary firmware for things like power management chips come without any warranty according to their license? I would assume that some warranties would be mandated by regulatory bodies, at least here in Europe, but I am clearly not an expert on that topic.

                                                  1. 2

                                                    Sometimes there are limited warranties as regulators require but they’re a lot more rare than any sensible person wants them to be.

                                                    It is certainly more common in firmware, certainly, but still uncommon.

                                              2. 3

                                                It’s not the same in every software license. Expensive proprietary charging controller firmware probably does come with a warranty of sorts.

                                                The license text is there for a reason; you don’t have a legal recourse for when the software goes wrong (to the extent permitted by law). That’s fine for most things, but you’d not want software you use under such a license to be the sole thing responsible for preventing your house from burning down, IMO.

                                              1. 16

                                                Something actually good for photo management and editing..

                                                • RAW processing must be done on the GPU, as in vkdt, but like, write it in Rust, using wgpu or something. There is a raw loader in Rust already, use it
                                                • don’t use imgui type things for UI noooooo just use GTK please and make it look nice and simple and GNOME-ish
                                                • what is infuriating about Lightroom and every clone is that they treat exports as fire-and-forget. If you browse the library, it re-renders from RAW all the time, maybe using some kind of cache (badly). I do want to manage the JPEGs! In fact I want to see the JPEGs most of the time but if RAW exists for a photo I want a “redevelop” button to exist of course. And the discovery of the RAW origin of the JPEG must be really “bulletproof”, no matter how I move stuff around the FS as long as it’s below the directories the software knows about.
                                                  • conversely, software like digiKam that aims to organize all the things is usually not great at RAW.
                                                • why does everything suck over NFS. I store photos in NFS shares, please take it into account and access everything optimally. Don’t mmap the photos. Don’t use SQLite databases that don’t work over NFS. Argh.
                                                1. 4

                                                  All the putative Lightroom replacements are terrible. I would happily pay what I pay to Adobe to literally anyone else for software that did the 60% of what Lightroom does that I use.

                                                  1. 1

                                                    Can you expand on the things in Lightroom you find most useful?

                                                    1. 2

                                                      Organizating, developing, importing and exporting. And I don’t do that much developing in Lightroom, but I do use Photoshop, which opens a whole other kettle of fish.

                                                    2. 1

                                                      Do you / others hate capture one? Seemed pretty good from my limited use but not mentioned in any of these replies.

                                                    3. 3

                                                      This is not the answer you want, but

                                                      why does everything suck over NFS

                                                      … is because NFS itself sucks.

                                                      1. 2

                                                        why does everything suck over NFS. I store photos in NFS shares, please take it into account and access everything optimally. Don’t mmap the photos. Don’t use SQLite databases that don’t work over NFS. Argh.

                                                        I feel your pain!

                                                        I’ve been continually disappointed at how poorly many Linux apps perform when run on an NFS file share.

                                                        Also, I do not speak for my employer, but I work for the AWS EFS team and my service presents itself as an NFS file share, so we see a fair bit of customer pain around this as well.

                                                        It surprises me how little innovation I see in the remote filesystem space these days given that we have pervasive gig speed networking growing on trees and computers so fast that the processing load of the NFS protocol is largely inconsequential for many use cases.

                                                        1. 2

                                                          I work in the data space and everything is moving to “the cloud” and that typically means object stores. People have wasted too much money on things like HDFS, they just want to store files somewhere and not have to think about it. (The pain that these are not really file systems is largely ignored)

                                                          1. 1

                                                            Yeah it sometimes surprises people how many use case really work well when implemented on a file system, especially one that has reasonable capabilities for locking and the like.

                                                            That’s true everywhere from the back end where people are storing raw seething data all the way up to the consumer user experience where Apple tried DESPERATELY for the first decade of its life to hide the fact that there was a UNIX-ish userland behind the curtain with a bog standard traditional filesystem, and even they’ve gone back on that by providing their “Files” app and interface in recent releases.

                                                            Files are just an incredibly useful way to think about data from just about every angle. Certainly not THE ONLY way or THE BEST way because such descriptors are pointless when talking about abstractions.

                                                            1. 2

                                                              In a sense, files are a reasonable (of course almost nothing is perfect, and files are not) implementation of a core and almost unavoidable notion of compartmentalisation, or a Bunch Of Stuff, together with the clearly desirable idea of using various tools on the same Bunch Of Stuff… Hard to avoid that completely!

                                                        2. 1

                                                          Second on every LightRoom clone being… not great. Sadly I’ve stuck with actually paying for LightRoom, but I would gladly pay $80+ one time for an adequate replacement.

                                                          1. 1

                                                            No, my complaints apply to Lightroom itself too — at least back when I used it, export worked exactly the same way there.

                                                            I actually like the editing part of RawTherapee more than Lightroom :P

                                                            1. 1

                                                              I’m just getting started. The auto button is much better in LightRoom :’)

                                                          2. 1

                                                            I do want to manage the JPEGs! In fact I want to see the JPEGs most of the time but if RAW exists for a photo I want a “redevelop” button to exist of course

                                                            You’ve probably tried it, and it has its own warts, but digikam does track the jpeg and allows you to re-import raw images. Just letting you know if you haven’t tried it before :)

                                                            1. 1

                                                              Have you seen Darktable? I think it covers most of your bases.

                                                              1. 1

                                                                Of course. The remarks about Lightroom and its clones definitely apply. Also its GPU support is incomplete and based on OpenCL – with some advanced usage of OpenCL that’s not supported by Mesa Clover (the “images” feature especially).

                                                            1. 5

                                                              Slightly off topic (especially since this spin doesn’t seem to actually have a 32 release yet), but is anyone here running Fedora Silverblue? I’m considering moving over to that, but I’ve been burned before. I’m curious for anyone that is running it, how much of an impedance do you feel it is to your everyday development?

                                                              The last “interesting” OS I tried was NixOS, and I eventually came to the conclusion that it was getting in my way more than it was really helping me. Mostly this came down to installing dev tools. I found I wasn’t working on things that were interesting to be because it was too much of a pain to get tools installed. (Rust (latest versions), Adruino (I think having it at all?), and LuaSocket (was getting built wrong, I gave up trying to find where it wanted the -D LUA_COMPAT_APIINTCASTS compile option after 3 hours) are what come to mind.)

                                                              If there is anyone running silverblue here, do you ever have similar kinds of issues?

                                                              1. 3

                                                                but is anyone here running Fedora Silverblue

                                                                I only tried Silverblue on a spare hard disk that I have lying around. I think it is really a bit step forward and like what they are doing. I am reading the Silverblue forums semi-regularly and it seems that Fedora Toolbox (which is used to create VMs for doing development in) breaks every now and then. It seems that Silverblue is still a second-class citizen to regular Fedora. On the other hand, given the nature of Silverblue these problems are easily solved by booting into an older snapshot when such a glitch occurs for the short timeframe it takes them to fix it. Unfortunately, I do not have more data points than that. Besides that it is not possible to run Nix on the root filesystem by default, because / is immutable.

                                                                I would monitor the Silverblue forums for a while, because it gives a good idea of what kind of problems to expect.

                                                                Rust (latest versions)

                                                                I know that this post not about Nix. But with the Mozilla Nix overlay, you can get the latest stable/beta/nightly: mozilla.latest.rustChannels.{stable,beta,nightly}. You can also use the overlay to get any arbitrary stable or nightly version. See the following:

                                                                https://discourse.nixos.org/t/pin-rust-version/5812/2 https://discourse.nixos.org/t/pin-rust-version/5812/3

                                                                I use NixOS on various machines, but I would really recommend newcomers to use Nix for a while on a familiar distribution. NixOS is so much more fun if you have climbed part of the Nix learning curve (know the Nix language, know your way around nixpkgs). That way you can always revert back to what you know if trying to do it the Nix way takes too much time.

                                                                Sorry for the digression ;).

                                                                1. 3

                                                                  I have been running Silverblue on my desktop and my laptop since late January. I enjoy it.

                                                                  I resisted the docker fad for a long time for many reasons, but mainly because I thought the implementation of docker was unfortunate, and the ways people used it was cumbersome and error-prone. Podman solves the former, and Toolbox solves the latter.

                                                                  There are a few rough edges. Toolbox switching isn’t as nice as it could be (there could be Terminal integrations that would make this nicer), toolbox shits a lot of things in your environment (at least one of these conflicts with Ruby on Rails, so I have to unset VERSION to be able to run migrations), and a few other tiny things.

                                                                  The documentation is still sparse.

                                                                  Overall, I’m very happy with it and will continue to use it. This is the first time I’ve used anything other than Debian since before the bo release.

                                                                  1. 3

                                                                    but is anyone here running Fedora Silverblue?

                                                                    I’d jumped around a couple distros for various reasons (temporal recounting over the last ten years):

                                                                    • Fedora: wanted to follow along with RH (my early days of Linux)
                                                                    • Arch: wanted to be able to consume as “pure” a systemd stack as I could to get a good feel for things
                                                                    • Debian: wanted to converge my workstations (testing) and servers (stable+backports)
                                                                    • Fedora: wanted to really start adopting podman+toolbox

                                                                    I jumped back into Fedora, via silverblue, with F31 and I’ve been using F31 and F32 interchangeably as necessary (when a package in F32 wasn’t working well I could always just use my pinned F31 instance).

                                                                    With Arch and Debian I was effectively rolling my workstation, which is a comfort as if you’re using newer hardware you want new kernels and often you want to get your hands on something without having to consider packaging yourself. Silverblue basically marries up the principles of a released system with the principles of rolling in a way that I find to be completely and utterly acceptable for my use cases. I am able to effectively “ride” the releases of Fedora without having to do a precarious upgrade or reinstall.

                                                                    I’ll say, I am likely layering many more packages in than what you’d see people typically recommend.

                                                                    [agd@enoch ~]$ rpm-ostree status
                                                                    State: idle
                                                                    AutomaticUpdates: disabled
                                                                    ● ostree://fedora:fedora/32/x86_64/silverblue
                                                                                       Version: 32.20200428.0 (2020-04-28T01:00:38Z)
                                                                                    BaseCommit: 3304e379ff5090a15816af207dbcc82f0db0cd4883216ede8f4957a499e30df8
                                                                                  GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0
                                                                               LayeredPackages: baobab beets beets-plugins boxes cheese chromium darktable eog evince evolution ffmpeg file-roller firewall-config gimp git-lfs gmpc gnome-boxes gnome-builder gnome-calculator gnome-firmware gnome-screenshot
                                                                                                gnome-shell-extension-gpaste gnome-shell-extension-pomodoro gnome-sound-recorder gnome-tweaks htop hugo ipmitool keepassxc libreoffice make mpd mpdscribble nautilus-image-converter numix-icon-theme-circle
                                                                                                numix-icon-theme-square oathtool opensc openssl p7zip p7zip-gui p7zip-plugins pass peek rawtherapee seahorse seahorse-nautilus simple-scan sshuttle system-config-printer vim vlc youtube-dl
                                                                                 LocalPackages: sublime-text-3210-1.x86_64 code-1.43.2-1585036535.el7.x86_64 rpmfusion-free-release-32-0.3.noarch rpmfusion-nonfree-release-32-0.4.noarch sublime-merge-1119-1.x86_64

                                                                    I’m of the mindset that I choose to run a distribution because I trust the packaging guidelines and the packagers of the software. This means that I’m quite preferential to using the fedora packages. I’ve been using flatpak where necessary but I am only consuming packages that are either:

                                                                    • packaged by upstream in a way that I think is better than the equivalent package in Fedora
                                                                    • doesn’t exist in fedora in a reasonable way (e.g. mumble)

                                                                    I am only a little bit struggling in the sense that Fedora IoT is the “headless” version of Silverblue (if you want to think that way) and it’s difficult to get kernel modules (e.g. ZFS) into. I’d love to be able to install Fedora on my servers and have ZFS available, but be able to “ride the releases” by pulling composes rather than reinstalling.

                                                                    The last “interesting” OS I tried was NixOS, and I eventually came to the conclusion that it was getting in my way more than it was really helping me.

                                                                    I dipped my toes into Nix right before going to silverblue and had the same sentiment.

                                                                  1. 3

                                                                    I switched employers recently and they let me choose my own hardware with basically no limit. At the time, I thought that part of my job might be iOS development, so I’d need a Mac. I asked for a 16” MacBook Pro, since they have supposedly fixed the keyboards.

                                                                    The MacBook Pro is, three weeks later, going to a designer colleague. I have replaced it with a ThinkPad T450s which is faster than I need it to be and was less than 10% of the price.

                                                                    After buying the laptop used and picking it up, I ordered a brand new keyboard and trackpad on ebay for less money than two days worth of lunch out. I love this machine, and it feels like new thanks to the keyboard and trackpad replacement.

                                                                    1. 6

                                                                      Proposal for crystal-lang tag. This language, not only for maturity in the early stage, also gains a lot of traction on Lobsters. This thread is just an example of it.

                                                                      1. 2

                                                                        Agreed. Taking the human-friendly parts of the Ruby syntax that is possible to make run fast and then making that into a natively compiled language is a solid foundation. Lilith helps demonstrate how usable Crystal is, for demanding tasks.

                                                                        I think the name is a bit unfortunate, though, but naming things is always hard.

                                                                        There are only two hard things in Computer Science: cache invalidation and naming things.

                                                                        – Phil Karlton

                                                                        1. 2

                                                                          There are two hard problems in computer science: cache invalidation, naming things, and off-by-one errors.

                                                                          1. 1

                                                                            I don’t understand what makes the name unfortunate?

                                                                            1. 2

                                                                              Lilith was a workstation built by Niklaus Wirth at ETH Zürich.

                                                                              1. 0

                                                                                For anyone having watched Breaking Bad, the immediate association is Crystal Meth.

                                                                                1. 6

                                                                                  i would never in a thousand years have thought of associating ‘crystal’ with crystal meth. i think the name is great, and goes along with the general gemstones-and-minerals naming scheme that is common for programming languages

                                                                                  1. 1

                                                                                    I can’t think of any programming languages except Ruby and Crystal that are following a naming scheme that centers around gems and crystals. Do you have other examples?

                                                                                    Also, have you watched Breaking Bad?

                                                                                    1. 4

                                                                                      perl was of course the canonical one, and ruby was influenced by that. this list has onyx, jade and opal, and i remember alternate ruby implementations being called topaz, sapphire and opal, but you’re right, it’s not as popular a trend as i was imagining.

                                                                                      never watched breaking bad, but i read a lot of science fiction and fantasy, so that’s my primary cultural association with the word “crystal”. there’s also the whole new age “crystal energy” thing. i don’t think you can call it a bad name based on an association you have formed from a single tv show.

                                                                                  2. 1

                                                                                    For anyone having seen The Dark Crystal, the immediate association is Darkness.

                                                                                    1. 3

                                                                                      Or quality puppeteering and questionable lipsync.

                                                                                      1. 1

                                                                                        Hell yeah, and The Dark Crystal movie and show are brilliant nonetheless. As is Breaking Bad, and probably the Crystal language as well.

                                                                                        The point I was making was that associating with Darkness is as far-fetched - though TDC is kind of dark - as associating with Crystal Meth. AFAIK the more common street name is Meth anyway, not Crystal.

                                                                                        1. 1

                                                                                          Unless we have no data indicating what the most common association is, your guess is as good as mine. I assume this also varies a lot from culture to culture.

                                                                                          My personal associations with the word Crystal are mainly questionable things like “Crystal Meth” or “Crystal Healing”, which I want to avoid. This could be because English is not my first language, but I don’t believe I’m alone in this.

                                                                                          Actual data would be needed in order to determine if people in general mainly associate Crystal with minerals or questionable things, though.

                                                                              2. 1

                                                                                If there are other examples of posts that merit a new tag, feel free to list them in a new meta post suggesting a new tag.

                                                                              1. 9

                                                                                I feel like I’ve seen this scenario play out a few times recently: author chooses a non-copyleft license, gets annoyed when someone doesn’t do the thing copyleft requires.

                                                                                1. 6

                                                                                  PS This is all just to say that app-making is nothing like building a house. It’s more like building the first house ever in the history of houses, with a pile of rusty nails and your bare hands, in a non-stop tornado. It’s different every time, and it’s astonishingly complex, non-linear, and unpredictable. We all do our best to mitigate this, to make it more regular, but the industry just hasn’t gotten very far with that yet. The only reason anything ever ships is because people just keep working until it’s ready.

                                                                                  This person has never built a house.

                                                                                  I’ve talked to actual architects and they say construction is nothing like this stereotype. They find it rather condescending. I’ve also talked to people who have worked professionally as both architects and programmers. They say the same thing.

                                                                                  Everybody who says “software is more special than X!!!” inevitably gets the most basic facts about X wrong.

                                                                                  1. 4

                                                                                    There’s this widespread and unfortunate tendency towards hyperbole, which obfuscates and devalues the underlying critique. My guess is it’s written in a “blowing off steam” mode, rather than to articulate, analyze, or even persuade.

                                                                                    But I have worked in both construction and building maintenance. My dad was a general contractor. I think there are some important differences between how buildings and software get designed and built, and you don’t need three exclamation marks to highlight them either. To start with, buildings have permits and building codes. Mechanical and civil engineers, as well as architects, have professional societies and mandatory accreditation processes. The building trades have licensing processes, apprenticeships, and in some cases unions.

                                                                                    1. 4

                                                                                      I have built houses. Building houses and building software have so many overlaps they might as well be the same industry.

                                                                                    1. 4

                                                                                      Working on a plan to get paid by a deadbeat client who has been dodging payment and making me feel guilty about asking to be paid for almost four years.