1. 11

    Things I self-host now on the Interwebs (as opposed to at home):

    • NextCloud
    • Bookstack Wiki
    • Various sites and smaller web apps (Privatebin, Lutim, Framadate etc)
    • Mailu Mail Server
    • Searx

    Things I’m setting up on the Interwebs:

    • Gitea on HTTPd
    • OpenSMTPd
    • Munin
    • Pleroma
    • Transmission
    • DNS (considering Unbound for now)

    Over time I may move the Docker and KVM-based Linux boxes over to OpenBSD and VMM as it matures. I’m moving internal systems from Debian to Open or NetBSD because I’ve had enough of Systemd.

    1. 6

      Out of curiosity, why migrate your entire OS to avoid SystemD rather than just switch init systems? Debian supports others just fine. I use OpenRC with no issues, and personally find that solution much more comfortable than learning an entirely new management interface.

      1. 12

        To be fair, it’s not just systemd, but systemd was the beginning of the end for me.

        I expect my servers to be stable and mostly static. I expect to understand what’s running on them, and to manage them accordingly. Over the years, Debian has continued to change, choosing things I just don’t support (systemd, removing ifconfig etc). I’ve moved most of my stack over to docker, which has made deployment easier at the cost of me just not being certain what code I’m running at any point in time. So in effect I’m not even really running Debian as such (my docker images are a mix of alpine and ubuntu images anyway).

        I used to use NetBSD years back quite heavily, so moving back to it is fairly straightforward, and I like OpenBSD’s approach to code reduction and simplicity over feature chasing. I think it was always on the cards but the removal of ifconfig and the recent furore over the abort() function with RMS gave me the shove I needed to start moving.

        1. 4

          Docker doesn’t work on OpenBSD though, so what are you going to do?

          1. 2

            For now I’m backing up my configs in git, data via rsync/ssh and will probably manage deployment via Ansible.

            It’s not as easy as docker-compose, but not as scary as pulling images from public repos. Plus, I’ll actually know what code I’m running at a given point in time.

            1. 1

              Have you looked at Capistrano for deployment? Its workflow for deployment and rollback centers around releasing a branch of a git repo.

              I’m interested in what you think of the two strategies and why you’d use one or the other for your setup, if you have an opinion.

              1. 1

                I don’t run ruby, given the choice. It’s not a dogmatic thing, it’s just that I’ve found that there are more important things for me to get round to than learning ruby properly, and that if I’m not prepared to learn it properly I’m not giving it a fair shout.

        2. 4

          N.B. You can partially remove systemd, but not completely remove it. Many binaries runtime depend on libsystemd even if they don’t appear like they would need it.

          When I ran my own init system on Arch (systemd was giving me woes) I had to keep libsystemd.so installed for even simple tools like pgrep to work.

          Some more info and discussion here. I didn’t want to switch away from Arch, but I also didn’t want remnants of systemd sticking around. Given the culture of systemd adding new features and acting like a sysadmin on my computer I thought it wise to try and keep my distance.

          1. 2

            The author of the article regarding pgrep you linked used an ancient, outdated kernel, and complained that the newest versions of software wouldn’t work. He/She used all debug flags for the kernel, and complained about the verbosity. He/She used a custom, unsupported build of a bootloader, and complained about the interface. He/She installed a custom kernel package, and was surprised that it (requiring a different partition layout) wiped his/her partitions. He/She complains about color profiles, and says he/she “does not use color profiles” – which is hilarious, considering he/she definitely does use them, just unknowingly, and likely with the default sRGB set (which is horribly inaccurate anyway). He/She asks why pgrep has a systemd dependency – pgrep and ps both support displaying the systemd unit owning a process.

            1. 3

              I’m the author of the article.

              ancient, outdated kernel all debug flags for the kernel unsupported build of a bootloader

              The kernel, kernel build options and bootloader were set by Arch Linux ARM project. They were not unsupported or unusual, they were what the team provided in their install instructions and their repos.

              A newer mainstream kernel build did appear in the repos at some point, but it had several features broken (suspend/resume, etc). The only valid option for day to day use was the recommended old kernel.

              complained that the newest versions of software wouldn’t work

              I’m perfectly happy for software to break due to out of date dependencies. But an init system is a special case, because if it fails then the operating system becomes inoperable.

              Core software should fail gracefully. A good piece of software behaves well in both normal and adverse conditions.

              I was greatly surprised that systemd did not provide some form of rescue getty or anything else upon failure. It left me in a position that was very difficult to solve.

              He/She installed a custom kernel package, and was surprised that it (requiring a different partition layout) wiped his/her partitions

              This was not a custom kernel package, it was provided by the Arch Linux ARM team. It was a newer kernel package that described itself as supporting my model. As it turns out it was the new recommended/mandated kernel package in the Arch Linux ARM install instructions for my laptop.

              Even if the kernel were custom, it is highly unusual for distribution packages to contain scripts that overwrite partitions.

              He/She complains about color profiles, and says he/she “does not use color profiles” – which is hilarious, considering he/she definitely does use them, just unknowingly

              There are multiple concepts under the words of ‘colour profiles’ that it looks like you have merged together here.

              Colour profiles are indeed used by image and video codecs every day on our computers. Most of these formats do not store their data in the same format as our monitors expect (RGB888 gamma ~2.2, ie common sRGB) so they have to perform colour space conversions.

              Whatever the systemd unit was providing in the form of ‘colour profiles’ was completely unnecessary for this process. All my applications worked before systemd did this. And they still do now without systemd doing it.

              likely with the default sRGB set (which is horribly inaccurate anyway)

              1:1 sRGB is good enough for most people, as it’s only possible to obtain benefits from colour profiles in very specific scenarios.

              If you are using a new desktop monitor and you have a specific task you need or want to match for, then yes.

              If you are using a laptop screen like I was: most change their colour curves dramatically when you change the screen viewing angle. Tweaking of colour profiles provides next to no benefit. Some laptop models have much nicer screens and avoid this, but at the cost of battery life (higher light emissions) and generally higher cost.

              I use second hand monitors for my desktop. They mostly do not have factory provided colour profiles, and even then the (CCFL) backlights have aged and changed their responses. Without calibrated color profiling equipment there is not much I can do, and is not worth the effort unless I have a very specific reason to do so.

              He/She asks why pgrep has a systemd dependency – pgrep and ps both support displaying the systemd unit owning a process.

              You can do this without making systemd libraries a hard runtime dependency.

              I raised this issue because of a concept that seemed more pertinent to me: the extension of systemd’s influence. I don’t think it’s appropriate for basic tools to depend on any optional programs or libraries, whether they be an init system like systemd, a runtime like mono or a framework like docker.

              1. 2

                Almost all of these issues are distro issues.

                Systemd can work without the color profile daemon, and ps and pgrep can work without systemd. Same with the kernel.

                But the policy of Arch is to always build all packages with all possible dependencies as hard dependencies.

                e.g. for Quassel, which can make use of KDE integration, but doesn’t require it, they decide to build it so that it has a hard dependency on KDE (which means it pulls in 400M of packages for a package that would be fine without any of them).

              2. 1

                Why he/she instead of they? It makes your comment difficult to read

                1. 1

                  tbh, I dunno. I usually use third-person they.

          2. 3

            I really wish the FreeBSD port of Docker was still maintained. It’s a few years behind at this point, but if FreeBSD was supported as a first class Docker operating system, I think we’d see a lot more people running it.

            1. 4

              IME Docker abstracts the problem under a layer of magic rather than providing a sustainable solution.

              Yes it makes things as easy as adding a line referencing a random github repo to deploy otherwise troublesome software. I’m not convinced this is a good thing.

              1. 3

                As someone who needs to know exactly what gets deployed in production, and therefore cannot use any public registry, I can say with certainty that Docker is a lot less cool without the plethora of automagic images you can run.

                1. 2

                  Exactly, once you start running private registries it’s not the timesaver it may have first appeared as.

                  1. 1

                    Personally, I’ll have to disagree with that. I’m letting Gitlab automatically build the containers I need as basis, plus my own. And the result is very amazing because scaling, development, reproducibility etc are much easier given.

              2. 3

                I think Kubernetes has support for some alternative runtimes, including FreeBSD jails? That might make FreeBSD more popular in the long run.

              3. 1

                How is the next cloud video chat feature? Does it work reliably compared to Zoom.us?

                1. 1

                  Works fine for me(tm).

                  It seems fine both over mobile and laptop, and over 4G. I haven’t tried any large groups and I doubt I’ll use it much, but so far I’ve been impressed.

                2. 1

                  Is bookstack good? I’m on the never ending search for a good wiki system. I keep half writing my own and (thankfully) failing to complete it.

                  1. 2

                    Cowyo is pretty straighforward (if sort of sparse).

                    Being go and working with flat files, it’s pretty straightforward to run & backup.

                    1. 2

                      Bookstack is by far one of the best wikis I’ve given to non-technical people to use. However I think it stores HTML internally, which is a bit icky in my view. I’d prefer it if they converted it to markdown. Still, it’s fairly low resource, pretty and works very, very well.

                  1. 3

                    As I transition away from my current gig, I’m going to be moving to the mountains and finally making some more progress on my side project: QueryClips [0]

                    I was unhappy with the limits of Heroku Dataclips and wanted a fun project to occupy my spare time. It has all the features of dataclips + the ability to save exports, support for organizations, a (rudimentary) schema explorer, and more. Specifically this week I need to build some background job infra and some caching.

                    [0] www.queryclips.com if you want to try it!

                    1. 5

                      I’ve been working on a data querying tool - need to fix some bugs, schedule some user review sessions, and revamp the homepage based on what I learn.

                      1. 2

                        title incorrect, should be: everyone from age 12 has an ego problem.

                        “I’m not really sure why it’s hard. But it just seems harder which is cool.”
                        

                        Why do you care how this thing looks? You’re threatened by the fact that (it looks like it’s for children) && (you can’t do it)? Where are these strange values coming from?

                        1. 3

                          Probably simpler, easier, and faster to solve the technology problem than solve the problem of the ego in a capitalist society ;)

                          1. 1

                            damn you rationalists.

                        1. 2

                          I liked this.

                          Everything is cost benefit. It’s often quite difficult to equate “pain” with “cost”. Velocity points and/or engineering hours is the only effective metric I’ve seen used – does anyone have other approximations?

                          1. 18

                            I really, REALLY hate this article. With a blind seething passion.

                            Authors that entitle articles “Ruby XXX” and then spend the ENTIRE article talkins about Ruby on Rails should be … I dunno, given 1000 lashes with a wet noodle or something.

                            Really. Why oh WHY do people equate one to the other?

                            It would be like saying “C is terrible because UNIX sucks!”. What does one have to do with the other beyond the fact that it was a tool that was used.

                            1. 8

                              Most of the errors in Rails are undefined method XYZ for nil:NilClass, this is a whole class of bugs that compilers have been able to detect for years and years.

                              How does this not have anything to do with Ruby? It’s a Ruby error message.

                              1. 6

                                The article mentions “Ruby” in its title, and as a reference to the Ruby is still great, that’s it. The rest is just a rant about how the author has never seen a clean Rails application…

                                This reminds me of a recent article on Clean Code about managing errors, and nulls (or nils in Ruby’s case):

                                Now, ask yourself why these defects happen too often. If your answer is that our languages don’t prevent them, then I strongly suggest that you quit your job and never think about being a programmer again; because defects are never the fault of our languages. Defects are the fault of programmers. It is programmers who create defects – not languages.

                                And what is it that programmers are supposed to do to prevent defects? I’ll give you one guess. Here are some hints. It’s a verb. It starts with a “T”. Yeah. You got it. TEST!

                                (please check the original article for context.)

                                1. 8

                                  Why should the programmer be responsible for preventing an error that the computer could easily prevent for you?

                                  1. 0

                                    I’ll reply with a question too: when the type-safe program crashed, was it a computer error or a programmer error? :)

                                    1. 4

                                      Depends on the nature of the crash. If it’s something the type system was supposed to prevent, it’s either a language design or a language implementation error (or both).

                                2. 2

                                  Think of it as the null pointer exception of ruby.

                                  I very very rarely see it.

                                  Why? Because I haven’t swallowed DHH’s (author of rails) bullshit about TDD being bad. If you listen to the others in the Ruby community and use TDD, you very seldom see that in a running app.

                                  1. 1

                                    I don’t think that’s a class of bug that most compilers detect. Somehow people still get NullPointerExceptions in Java.

                                    1. 3

                                      Try getting a null pointer exception in Haskell or Rust, it’s really only possible if you tell the compiler to let you do it.

                                      1. 1

                                        I edited my comment to say “most compilers” because I realized that was the case. Overwhelmingly web applications to-date have been written in languages where that is not the case. I -think- the author is clumsily making a case against Ruby’s type system, but it’s poorly-expressed here.

                                        I get it that many consider that a language can eliminate an entire class of errors to be advantageous/superior. It takes some really generous interpretation to get from the author’s gripes to that argument. If that’s the point here, it’s not cogent.

                                    2. 1

                                      He’s essentially saying “I see segfaults all the time when I use C. Why doesn’t Unix use garbage collection?”

                                      1. 1

                                        Yes, this is a Ruby error message. However, the author is ranting about rails, and in fact not actually expressing anything interesting about the Ruby language itself other than “It’s not strongly/statically typed”. Duh! Want static typing? Go use another language :)

                                    1. 7

                                      I’ve had some success recently explaining tech debt using spreadsheets. In fact, it’s worked well because spreadsheets tend to be living manifestations of tech debt with very little recourse but to rebuild.

                                      How many times have you heard the phrase “I have to go rebuild the model”? Would that be excusable for an engineering team to just go and rebuild something every time we hit an unforeseen circumstance? No? Then it shouldn’t be OK for the Biz Ops folks, either.

                                      Every single time I have used this framing, my engineering team has been given leeway and dedicated time to work on tech debt. Every single time.

                                      1. 1

                                        What type of company do you work in that you hear “I have to go rebuild the model" from business folks?

                                        1. 3

                                          I’m on the executive team at a 100-person education company. Also, I was being a bit extreme – they don’t often say “rebuild”, but they do often make reference to the amount of work they must put into their operating model (and it’s true).

                                          Whenever someone asks me why my engineering team is working on technical debt, it’s an exceedingly useful item to draw their thinking back to. “What if you couldn’t rely on the integrity of the cash reporting tab because of some prior hack you’d done to get it ready for a presentation?”

                                      1. 3

                                        I’ve interviewed many engineers from particular tech companies in the bay area – it’s more common than you think to employ programmers who are really, really bad at programming. In high paying positions. At companies you’ve heard of.

                                        It surprised me at first, but now I accept it as a fact of life. Hiring is hard, and managing engineers is a skill unto itself.

                                        1. 1

                                          Mind sharing which companies are those? And how do those people who don’t know how to code originally get those jobs, and, even more so, continue to keep them?

                                          1. 6

                                            I have the most data points from interviewing Yahoo engineers. And, to your other questions, I have no idea. I can only fathom they kept their jobs due to a combination of continued restructuring, leaving people on different teams than they were originally hired, combined with a high degree of incompetent management (or maybe deliberately ignorant middle managers, more likely).

                                            One engineer I interviewed had a “Sr. Web Developer” title at Yahoo, and couldn’t write a single line of Javascript. This person couldn’t manipulate the DOM.

                                            It was certainly perplexing. And he wasn’t the only example.

                                          1. 3

                                            I enjoyed this. I work in the education industry and it continuously astounds me how high the barrier of vocabulary can be to newcomers. It’s easily half of the pain.

                                            1. 1

                                              This is really cool. The filesystem is such an enduring abstraction.

                                              1. 1

                                                [video] [slides]

                                                1. 1

                                                  Sorry about that. Thanks for the reminder.

                                                1. 2
                                                  • Becoming a better technical leader
                                                  • Being healthy
                                                  • Becoming a better executive team member
                                                    1. 2

                                                      On the topic of “Becoming a Technical Leader”, I recommend reading “Leading Snowflakes”. Lots of great stories/tips in there.

                                                      http://leadingsnowflakes.com/

                                                      They even have a free weekly newsletter with solid articles: http://softwareleadweekly.com/

                                                      1. 1

                                                        Thanks! I will check this out.

                                                      2. 1

                                                        How are you finding Zen and The Art of Archery? I like archery, particularly because I find it such a relaxing, peaceful experience.

                                                        1. 2

                                                          I think this paper provides a nice contrast to Zen in the Art of Archery, and provides further insight into the origins of kyudo:

                                                          http://www.thezensite.com/ZenEssays/CriticalZen/The_Myth_of_Zen_in_the_Art_of_Archery.pdf

                                                          It does come off as attempting to invalidate Zen in the Art of Archery, but I find it provides lots of useful perspective, even if you disregard the premise.

                                                          1. 2

                                                            As a german Kyudo archer (albeit very amateurish), I was communicated that Herrigels Book is generally not considered very interesting.

                                                            Especially his interpretation the “target in darkness” event was explained to me by my sensei as problematic (I do have to say that I’m really just reiterating what I understood, take it with a huge grain of salt). Hitting the first arrow with the second is a western legend and mystical: Robin Hood. So probably Herrigel interpreted that into the event. Kyudo weapons are war weapons though: an arrow hitting the first is a destruction of equipment. The ultimate shot is the second shot hitting right next to the first. So, many things are possible: He was lied to out of shame or didn’t understand the complexity of the situation out of other reasons.

                                                            Also, while some people are inspired by it, no pupil of Herrigel can be found in Germany. Kyudo was brought to Germany by different persons.

                                                            1. 1

                                                              An interesting read, illustrating the problems of translation :~)

                                                            2. 1

                                                              By the way, I can recommend Archery as a very good sport for programmers and desktop people in general. It has multiple interesting properties for me:

                                                              • It’s a standing sport, upright and stretching the shoulders
                                                              • It’s concentration without structured thought, which I find very appealing after a day of concentrating with structured thinking
                                                              • It has a lot of rules to follow for good reasons (mainly projectiles of up to a meter flying around and people having to concentrate), which I find a nice variation over the usual worklife where people try to avoid rules like the pest.
                                                              • And finally: most people are older then I am, which is a nice perspective shift after my day to day experience in coder offices.
                                                              1. 1

                                                                Just finished it actually. I really enjoyed it. It was an easy read and quick.

                                                                I’ve been on a big Alan Watts kick, and really enjoyed Pirsig’s two books as well. I don’t do archery but I take a lot away from the books.

                                                                Biggest takeaway for me is how to be a leader and a teacher to the less experienced.

                                                            1. 1

                                                              I’m working on making sure each of the engineers on my team is making progress on their goals. And getting better every day.

                                                              1. 3

                                                                Embedded databases: They’re the boxer briefs of the database world in that they are underneath a wide variety of applications

                                                                wat

                                                                1. 3

                                                                  I’m listening to Alan Watts - The Essential Lectures on, well, a myriad of topics.

                                                                  1. 1

                                                                    Juggling technical, leadership, and management responsibilities after returning from a week-long Alaskan vacation.