1. 2

      I used to use https://linux.die.net/man/1/apg, but now I use the generator built-in to my password management system.

    1. 3

      This was well written and blessedly to the point.

      1. 3

        I used to work with Sebastian (the author) and he is as thorough in everything he does. Really solid work!

      1. 2

        work: Still wrestling with glue/CDK/AWS, but it is geting there

        personal: I am having good fun with my openstreetmap playground extraction project. I am using it as an opportunity to play (no pun intended) with a lot of things I wanted to try for a while. I am outomating everything in gradle and found a cool way to manage python dependencies and start datasette from gradle. I may write a blog about that, if I find the time (to set up a blog…).

        I also use https://github.com/naggie/dsnet/ to manage a wireguard network for my personal infrastructure and I have some ideas how to improve it. Hopefully I find some cycles to do that this week.

        1. 3

          Unfortunately, I believe this domain runs afoul of the rules for the .cat domain

          1. 10

            The non-user-generated content is translated into Catalan if your browser’s language is set to “ca”.

            1. 1

              so does https://www.nyan.cat/ and that has been around for 10 years. I guess nobody really cares?

              1. 2

                https://twitter.com/huy/status/373161206317477888?t=3pap76DQ2Dk7n4tHMZz69Q&s=19

                They do seem to audit periodically (this is a tweet from the creator of nyan.cat).

                1. 1

                  https://www.nyan.cat is available in catalan, if you use the menu in the upper left corner of the page. But I bet nobody really cares :)

              1. 11

                Can we get integration with the weekly “what are you doing this week?” threads? That would be cool.

                1. 11

                  It would also be neat if lobste.rs hosted a finger server. For example finger fs111@lobste.rs could return some of the information found on https://lobste.rs/u/fs111. Maybe users profiles also have a “plan” section for “what are you doing this week” answers? Not sure the utility of all this, but the idea tickles me!

                  1. 5

                    Well, there’s this at least:

                    finger lobsters@typed-hole.org
                    
                    1. 4

                      That would be really cool indeed

                  1. 2

                    work: Deep dive on some painful AWS IAM and AWS Glue stuff. It is just no fun.

                    private project: recently discovered how cool https://datasette.io/ is and I have been building a tool that extracts playgrounds from OpenStreetMap and visualizes them in datasette. This is all driven by having a one year old that likes playgrounds and me wanting to do something with map data again. Good fun so far.

                    1. 1

                      Could you expand on this a bit? What would the visualization provide, compared to laying it out on a map?

                      1. 1

                        Maybe I was a bit too unclear: I am currently using the datasette cluster-map to discover them on the map. I find osm.org a bit too clunky for a search like that.

                        The process right now looks like this: I am taking a protobuf osm dump from geofrabrik (http://download.geofabrik.de/) and extract/convert all the playgrounds (only for my state) into sqlite (I wrote this in java, since there are excellent libraries available for all things osm). Then I use https://github.com/simonw/datasette-cluster-map to visualize/discover them. The next goal is to add photos and notes about them as my son and I go to them. It is a bit meant as a log of our playground adventures. Does that make sense?

                      2. 1

                        I love datasette! But for your specific use-case, are you aware of overpass turbo?

                        You could go to https://overpass-turbo.eu/ , search for your location and run a simple query like

                        node
                          [leisure=playground]
                          ({{bbox}});
                        out;
                        

                        to find all playgrounds in the bounding box. The export button allows you to fetch that data, e.g. as a GeoJSON file or as a PNG image :)

                        1. 2

                          Yeah, I saw that the other day, but I already had all the code written and too much fun doing it. Also, playgrounds can be of type Node OR Way, so it is a bit more than the above. ;)

                      1. 5

                        Taking care of my youngest soon who’s caught the cold 🙂

                        1. 4

                          I’m having my first in April, excited and scared for these kinds of moments.

                          1. 3

                            Congrats! Everything you hear about lack of sleep is true, but the rest is all wonderful :-)

                            1. 2

                              Congratulations! It can be a wild ride from time to time but also lots of joy and wonder. All the best!

                          1. 9

                            This workflow is just bringing (client-side) Git up to parity with Mercurial as used at Google/Facebook:

                            • Adds in-memory rebases (for performance reasons).
                            • Adds changeset evolution.
                            • Encourages of a “patch-stack”/“stacked-diff” workflow with trunk-based development.
                            • Discourages the use of branches/stashes/staged changes, in favor of commits for everything (where possible).

                            Unfortunately, I’ve found it hard to motivate the collection of features as a whole. But most people can use at least one of the following in their workflow:

                            • git undo to undo operations on the commit graph.
                            • git move as a saner, faster replacement for git rebase.
                            1. 3

                              I have looked at this project a few weeks ago and I seem to not get it. Maybe it is something with the naming, but how is it branchless? All work in git is on a branch. What is the difference if I have a local checkout and work on feature-xyz instead of main? I still do git fetch && git rebase origin/main regardless of the local branch name. I could not figure it out from the README tbh.

                              Note that I am from the “rebase, squash and “no-merge-commits” school of thought, so maybe this is going in a similar direction, but I don’t really understand what the usp here is. Maybe it makes more sense to people who have used mercurial?

                              1. 11

                                All work in git is on a branch.

                                Under git-branchless, this is no longer necessary. There are three main ways to not use a branch:

                                • Run git checkout --detach explicitly.
                                • Use one of git next/git prev to move along a stack.
                                • Use git checkout with a commit hash (or git co from the latest source build).

                                Why is this useful? It helps you make experimental changes to various parts of the commit graph without dealing with the overhead of branch management. Suppose I have a feature feature made of three commits, and I get feedback on the first commit and want to try out various approaches to addressing it. My session might look like this:

                                $ git checkout -b feature
                                $ git commit -m A
                                $ git commit -m B
                                $ git commit -m C
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ◯ 9775f9a6 4m A
                                ┃
                                ◯ 97b8d332 4m B
                                ┃
                                ● 67fa26af 4m (feature) C
                                
                                $ git prev 2
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ● 9775f9a6 6m A
                                ┃
                                ◯ 97b8d332 6m B
                                ┃
                                ◯ 67fa26af 6m (feature) C
                                
                                $ git commit -m 'temp: try approach 1'
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ◯ 9775f9a6 7m A
                                ┣━┓
                                ┃ ◯ 97b8d332 7m B
                                ┃ ┃
                                ┃ ◯ 67fa26af 7m (feature) C
                                ┃
                                ● 9dba147f 1s temp: try approach 1
                                
                                $ git prev
                                $ git commit -m 'temp: try approach 2'
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ◯ 9775f9a6 8m A
                                ┣━┓
                                ┃ ◯ 97b8d332 8m B
                                ┃ ┃
                                ┃ ◯ 67fa26af 7m (feature) C
                                ┣━┓
                                ┃ ◯ 9dba147f 58s temp: try approach 1
                                ┃
                                ● ef9ea69a 1s temp: try approach 2
                                
                                # Check out "temp: try approach 1".
                                # Note that there is no branch attached to it,
                                # so we use the commit hash directly.
                                # (Or we can use the interactive commit selector
                                # with `git co`.)
                                $ git checkout 9dba147f
                                $ git commit -m 'temp: more approach 1'
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ◯ 9775f9a6 10m A
                                ┣━┓
                                ┃ ◯ 97b8d332 10m B
                                ┃ ┃
                                ┃ ◯ 67fa26af 10m (feature) C
                                ┣━┓
                                ┃ ◯ 9dba147f 3m temp: try approach 1
                                ┃ ┃
                                ┃ ● 60ad3014 4s temp: more approach 1
                                ┃
                                ◯ ef9ea69a 2m temp: try approach 2
                                
                                # Settle on approach 1.
                                # Hide "temp: try approach 2" from the smartlog.
                                $ git hide ef9ea69a
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ◯ 9775f9a6 11m A
                                ┣━┓
                                ┃ ◯ 97b8d332 11m B
                                ┃ ┃
                                ┃ ◯ 67fa26af 11m (feature) C
                                ┃
                                ◯ 9dba147f 4m temp: try approach 1
                                ┃
                                ● 60ad3014 1m temp: more approach 1
                                
                                # Squash approach 1 into `main`:
                                $ git rebase -i main
                                ...
                                branchless: This operation abandoned 1 commit!
                                branchless: Consider running one of the following:
                                branchless:   - git restack: re-apply the abandoned commits/branches
                                branchless:     (this is most likely what you want to do)
                                branchless:   - git smartlog: assess the situation
                                branchless:   - git hide [<commit>...]: hide the commits from the smartlog
                                branchless:   - git undo: undo the operation
                                branchless:   - git config branchless.restack.warnAbandoned false: suppress this message
                                Successfully rebased and updated detached HEAD.
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┣━┓
                                ┃ ✕ 9775f9a6 12m (rewritten as 14450270) A
                                ┃ ┃
                                ┃ ◯ 97b8d332 12m B
                                ┃ ┃
                                ┃ ◯ 67fa26af 12m (feature) C
                                ┃
                                ● 14450270 32s A
                                
                                # Move B and C and branch "feature" on top of A,
                                # where they belong
                                $ git restack
                                $ git sl
                                ⋮
                                ◇ fcba6182 7d (main) Create foo
                                ┃
                                ● 14450270 1m A
                                ┃
                                ◯ 7d592eae 3s B
                                ┃
                                ◯ fec8f0ba 3s (feature) C
                                

                                So the value for the above workflow is:

                                • No thinking about branch names, especially since they’re ephemeral and going to be deleted shortly anyways.
                                  • Some people don’t find this an impediment to their workflow anyways.
                                • Automatic fix up of descendant commits and branches.
                                  • Works even if there are multiple descendant branches (git rebase moves at most one branch).
                                  • Works even if one of the descendants has multiple children, causing a tree structure.
                                1. 1

                                  Maybe a dumb question, is there an equivalent to hg heads in git-branchless?

                                  1. 1

                                    Not yet, but it should be pretty easy as part of the task to add revset support (https://github.com/arxanas/git-branchless/issues/175).

                                  2. 1

                                    Thanks for the explanation! This is very different from the git I use. I don’t think I ever had a use case for this sort of workflow, but I can see how people might find it useful. I will keep a bookmark and revisit this again in the future. Maybe it turns out useful.

                                2. 3

                                  Seems like this workflow tries to avoid interactive rebase (and other tools are recommended to do that in-memory). I… can’t exactly imagine not using it all the time. Especially in situations like maintaining a constantly rebased “patchset” on top of an upstream, occasionally submitting patches to it. In my mind “restack” means “reorder in interactive rebase”, not what the restack tool does.

                                  What does changeset evolution mean btw?

                                  1. 2

                                    It’s not that the workflow tries to avoid interactive rebase, but that it simply doesn’t offer a good replacement for interactive rebase at present. (It should handle in-memory rebasing, rebasing/editing tree structures, and referencing commits without branches.) It’s on the roadmap: cl https://github.com/arxanas/git-branchless/issues/177

                                    Changeset evolution is this feature from Mercurial: https://www.mercurial-scm.org/wiki/ChangesetEvolution. In short, it tracks the history of a commit/patch as it gets rewritten with commands like git commit --amend or git rebase (or their equivalents in git-branchless). It means that we can automatically recover from situations where descendant commits are “abandoned”:

                                    $ git commit -m A
                                    $ git commit -m B
                                    $ git commit -m C
                                    $ git prev 2  # same as git checkout HEAD^^
                                    $ git commit --amend -m A2
                                    # now commits B and C are based on A instead of A2,
                                    # which is probably not what you intended
                                    $ git restack  # moves B and C onto A2
                                    
                                  2. 1

                                    I’ve been interested in this toolkit since I first came across it but I’m reluctant to set up rust on my laptop to install it. Do you have any enthusiasm for packaging releases yourself?

                                    1. 1

                                      Maybe, I haven’t looked into it too much. What platform are you using? Some kind folks have already packaged it for Nix, if you can use that.

                                      1. 2

                                        macOS for the most part. Mac users as a whole would probably most readily try this out if it were in Homebrew. (I have a bit of a grudge against Homebrew for being slow and pulling in outlandish dependency closures with stuff so I tend to prefer graphical installers or copying things into ~/bin when those are provided options.)

                                        (Really if I had ever set up Rust for something else on my work computer I’d probably be trying it out as is instead of griping but y’know.)

                                        1. 2

                                          Something like https://github.com/emk/rust-musl-builder makes building static binaries very easy, if you want to go that way.

                                    1. 10

                                      I find it funny to read “Haskell makes illegal states unrepresentable.” in that article when astrology is all just made up nonsense. All of your states are illegal in this universe because nothing you “calculate” has any real meaning at all. Any amount of functional programming can’t hide that astrology is a pseudo-science of made up nonsense.

                                      1. 9

                                        I think Haskell, a language that’s all about applying advanced maths concepts to software engineering, is great for an astrology company. After all, both maths and astrology are about making up a set of axioms and then deriving stuff from them - it’s just that in maths, that stuff is occasionally much more applicable to the real world, and the derivation much more rigorous.

                                        1. 7

                                          I don’t think the positions of celestial bodies at the time of my birth have anything to do with my personality or fortunes…and math is great and all…

                                          BUT

                                          IMO astrology is WAY more applicable to most peoples’ idea of “the real world” than the majority of what mathematicians study! :P

                                          1. 3

                                            When your “axioms” and “derivations” are such hand-wavy, make-believe woo-woo as to make a mockery of the terms, I dunno if applicability to the real world even enters the picture, really…

                                            RIP James Randi.

                                            1. 8

                                              Absolutely. I’m not saying astrology is a good predictive system, just that I don’t think it’s inherently incompatible with maths.

                                              1. 5

                                                Astrology has a lot of shared history with mathematics. For example, Pythagoras is regarded as the father of Numerology, in addition to his contributions to real mathematics.

                                                More relevant here, the key thing that you learn about in formal verification (straight out of Goeddel’s Incompleteness Theorem) is that you can only prove self consistency, not truth or correctness, with mathematics. Any proof system starts with some axioms. Axioms are not things that are true, axioms are things that relate the mathematical model to something external: if the axioms hold in the external system then all of the proofs that you’ve made within that system will also hold. This is closely related to the Principle of explosion, often referred to by its Latin name ex falso quodlibet. This is useful in proof by contradiction but it demonstrates that if you start with an axiom that is false then you can prove any premise within the logical system derived from that. I think that applies pretty well to astrology, don’t you?

                                            2. 5

                                              This post has nothing to do with the object-level business of astrology, but makes some interesting points and observations about programming in Haskell. Do you have anything worthwhile to say about that or are you content to take cheap shots and pat yourself on the back about how smart you are for calling out astrology?

                                              1. 3

                                                Keep your ad hominems for you.

                                                I am always going to openly speak out against nonsensical anti-science, pseudo magical concepts. If the pandemic taught us anything then that we need less garbage like horoscopes and more science education so people understand how things work in the real world. Astrology is not just some game, there are people that orient their life around this. It is a slippery slope into more esoteric things.

                                                No amount of Haskell changes that.

                                                1. 1

                                                  No amount of Haskell changes that.

                                                  I’m not a Haskeller myself, but I’d be surprised if a few weren’t cringing at this article.

                                                  The last thing any minority needs is to be publicly associated with crazy, even if that minority is just a programming language community.

                                                2. 2

                                                  how smart you are for calling out astrology?

                                                  Honestly, calling out astrology doesn’t require much smarts ;-P

                                                  1. 1

                                                    lol That’s very true, which is kind of my point. It is well known, especially in nerd culture, that astrology is fake so derailing an otherwise interesting post to yell about it doesn’t actually do anything. It’s simply Applause Light.

                                                3. 2

                                                  There’s nothing fundamentally different from an app that presents astrology data according to different systems (“houses”?) than from a “real” system like an ERP.

                                                  In both cases you have inputs that need to be calculated the same way despite your code changes.

                                                  1. 2

                                                    Yes, they are fundamentally different. If you think that esoteric practices like horoscopes and other pseudo-science are just some quirky thing, you must be closing your eyes to reality. We are in the middle of a pandemic and people from the esoteric spectrum are spreading false information about vaccines, the virus and how this is all a big conspiracy. People who believe in nonsense like horoscopes will tend to believe in other made up nonsense too. I will always speak up against this, because it is harmful to the rest of us.

                                                    1. 1

                                                      People who believe in nonsense like horoscopes will tend to believe in other made up nonsense too.

                                                      What’s the solution to this? I don’t think it’s likely that education will work. It’s been tried. Elimination is certainly not an option. ISTM, the best bet is to give people harmless nonsense to believe in. Better horoscopes than lots of other things they could believe in. Just teach people to keep their hand on their wallets when they’re being taught the secrets of the universe…

                                                1. 21

                                                  Having trouble squaring the whole “ do everyone a favor, and […] don’t work in ad tech” with “I rolled my eyes and reverse engineered the script for him” and everything that follows. If it’s true that you find it all so unsavoury then how about, I don’t know, maybe don’t enable it for your own personal gain in the first place?

                                                  sometimes things are better left unsaid

                                                  Yeah, like for example “the reality is I’m prepared to take their dirty money when it suits me but still think it’s cool to write a knowing blog post about how awful it all is when I’ve decided that suits me better instead”.

                                                  1. 29

                                                    I spent two years working to drill oil and gas wells. There’s probably 40 wells out there with my name on the paperwork. Doesn’t mean I’d recommend anyone else go into that career, or that I particularly like the petroleum industry, or think anyone should use use fossil fuels. It means I had $3000 in the bank and living expenses of about $2000/month, and had spent six months after getting my grad degree with zero other interviews beside front-line tech support. At least drilling wells was something new, and paid about four times better.

                                                    I don’t regret making the choices I did, but I sure as fuck wouldn’t go back.

                                                    (…That said, after that I worked as a staff member in a top tier technical university for a couple years. In retrospect the culture there was probably almost as dysfunctional and generally horrible; at least the petroleum industry is generally honest about using people up and spitting them out.)

                                                    1. 5

                                                      Don’t feel bad about it. Cheap energy is the bedrock of civilisation.

                                                      1. 8

                                                        it’s also possibly gonna be the end of it

                                                        1. 0

                                                          Unlikely though. And it’s worth considering that cheap energy has made extreme climate events much more survivable. From Alex Epstein:

                                                          https://i.postimg.cc/DfPQGZL5/climate-carbon.png

                                                          1. 5

                                                            lol, you know that Alex Epstein is well known to be associated with organizations spreading fake news and anti-science propaganda to defend industrial interests, right? RIGHT?

                                                            1. 1

                                                              He wrote a book titled, if I recall correctly, The Moral Case for Fossil Fuels. So, yeah, I’m aware of his position.

                                                              I don’t see that any of that invalidates the claim that cheap energy - historically at least, provided by burning fossil fuels - saves lives during extreme climate events.

                                                              Edited to clarify, because it’s necessary in times of heated tribalism: I happen to agree that AGW is a real thing, and may pose some challenges to humanity in the future.

                                                              I’m also an advocate of cleaner power generation because of the many health benefits it brings, think nuclear power is underutilized in Australia, have worked for a cleantech startup, and also a petroleum wetstock management company.

                                                              People are complicated :)

                                                              I’d sum my position up as: fossil fuels have been and continue to be a great boon to humanity, especially in developing nations. Let’s be careful not to throw the baby out with the bathwater when responding to AGW.

                                                        2. 2

                                                          I don’t feel bad about it. I learned a lot. Like how annoying people are when they judge off the cuff without putting in any effort to understand.

                                                      2. 19

                                                        I mean, it’s quite possible that one can do something in the past and regret it later…

                                                        1. 4

                                                          Thats true, yet I fail to read any regret in the article. The author seems totally fine with everything that happened.

                                                        2. 6

                                                          I would say he was working against the ad tech. Ad tech is in a big bubble that will eventually burst ( https://www.amazon.co.uk/Subprime-Attention-Crisis-Advertising-Originals/dp/0374538654 ) and it’s hard to argue that what he did was something useful to the ecosystem and instead one of the many scams that are popular in the ad tech.

                                                          Ad tech is when you scam the people buying ads. If you scam the networks or other of the many intermediaries, you’re something else.

                                                          1. 2

                                                            I agree, but money is a powerful motivator.

                                                            1. 1

                                                              I got the impression that she was looking back on that time with regret.

                                                            1. 17

                                                              This title rubs me the wrong way. You can be a successful IT person (what even is that?) without knowing any of this. You can even use OpenBSD without caring about any of the history. It is mildly interesting, but not something anyone must know.

                                                              I am comparing it to the famous unicode article and that one has a ton of information everyone should have at least heard about https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/

                                                              1. 8

                                                                There seems to be a lot of wishful thinking in the BSD communities. In many ways I wish that (a) BSD was the free Unix everyone uses, but Linux is, for better or worse, and is the only Unix that “every IT person” needs to know something about.

                                                                1. 3

                                                                  I think it depends on the BSD; I’ve found NetBSD people to be very relaxed about it, but OpenBSD to be almost cult like. FreeBSD is somewhere in between; a legacy that never hit its full potential, but the zealotry tempered by corporate success.

                                                                2. 6

                                                                  You can be a successful IT person without even knowing about OpenBSD’s existence. Not to knock OpenBSD, but it’s not widely relevant.

                                                                  That’s not to say it’s not being used – but if I go to Indeed.com and type in OpenBSD + my city, I get zero results. Expanded to my entire state, still zero results. More than 1700 results for Linux. 2,650 for Windows, but I expect some of those are false positives – like the Sales Rep job for Champion Window… (NetBSD also 0, FreeBSD gets 6.)

                                                                  If I search all of California, I get 8 jobs that match with OpenBSD. Eight.(Nearly 15,800 with Linux.)

                                                                  1. 2

                                                                    FWIW, I’ve hired about a half dozen people who wound up working with OpenBSD for some non-trivial portion of their job. I never saw fit to specify that in a job listing. I just listed UNIX. (OpenBSD was not the only UNIX they were dealing with by any stretch.)

                                                                    1. 2

                                                                      Am I right to guess that prior OpenBSD experience was not considered an important hiring criterion and they picked it up on the job?

                                                                      1. 2

                                                                        Something like that. We wanted people who had learned a couple of (*BSD, Solaris, AIX, Irix, HP-UX) because we had all of these in our environment. And new weird stuff came in all the time. Being able to pick stuff up on the job was perhaps the most important hiring criterion.

                                                                        Listing UNIX turned out to be a better filter for that than enumerating all of the things we were interested in.

                                                                        1. 2

                                                                          I am curious: what environment has such a Unix zoo? My first job was in a Sun shop, so we had Solaris 8/9 on sparc and Linux (Suse) was getting rolled out to x86 workstations too. We had no other unix though.

                                                                          1. 2

                                                                            We were a medium sized shop that wrote bespoke software in addition to making sure our niche products ran at customer sites.

                                                                            This was before many customers could readily get you long-term, low-friction access to their environments, so we’d replicate them in-house. And letting us host a service was out of the question :)

                                                                            We dealt with a lot of banks (or credit card issuers, which were often but not always banks), several insurance companies (traditional and medical), one lottery operator, a couple of governments, a couple of retail companies, a few advertising companies, and several ISPs. The common thread was that each had their entrenched UNIX systems, we needed to fit in, and many needed to use oddball peripherals (especially for managing cryptographic keys or for accelerating cryptographic operations) that we knew how to integrate.

                                                                            It’s funny that you called it a zoo. We used to call it that too… and I had about 4 racks of equipment for it where I posted lovingly crafted replicas of these signs.

                                                                    2. 1

                                                                      You can be a successful IT person without even knowing about OpenBSD’s existence. Not to knock OpenBSD, but it’s not widely relevant.

                                                                      As an OpenBSD user I’ve come to realise this. I used to mention it on my resume. But not anymore. Quite frankly I don’t think many of the people who see my resume give a shit about it :)

                                                                      1. 1

                                                                        You can be a successful IT person without even knowing about OpenBSD’s existence. Not to knock OpenBSD, but it’s not widely relevant.

                                                                        To be fair though you could say that about anything though. You can be a successful IT person without even knowing about HTML/JavaScript/HTTP/Assembler/Floating Point Numbers/Compiler/Character Encodings/Unicode/C/Java/Git/Linux/macOS/…

                                                                        I have certainly seen successful IT people not knowing one or more of them. Sure, some jobs require knowledge about those, but so some jobs require knowledge about OpenBSD.

                                                                        So I agree that the title is silly. However I’d argue the whole phrase isn’t much better.

                                                                        But then some people use that phrase, because it’s silly or at least famous. Just like “The Good, the Bad and the Ugly” and others is common. But at least that one is usually less wrong.

                                                                    1. 2

                                                                      ssh alone is enough to warrant the title of the blog post.

                                                                      1. 4

                                                                        except ssh was not invented by openbsd, they have a very popular implementation sure, but let’s keep things honest https://en.wikipedia.org/wiki/Secure_Shell

                                                                      1. 2

                                                                        Great site, unfortunately it does not have my current favorite as a contestant: https://github.com/microsoft/cascadia-code

                                                                        1. 2

                                                                          Does this mean all other UNIX-based OSes (or at least Vixie-cron using distros) don’t do this properly (e.g., running the same job twice when time jumps backwards)? That would be pretty messed up.

                                                                          1. 2

                                                                            The Debian patch says it’s originally from OpenBSD, so OpenBSD is likely similar. I haven’t experimented with other OSes yet.

                                                                            1. 2

                                                                              Soo many patches in that repo, and they never went upstream of the whole source became upstream ?!

                                                                              1. 1

                                                                                the upstream repo looks more nostalgic than really active: https://github.com/vixie/cron

                                                                                It looks to me that a community fork to upstream all these things to is better than having all these patches maintained in various distributions.

                                                                          1. 3

                                                                            This made me curious to see how systemd timers do it, and they simply don’t

                                                                            1. 6

                                                                              Interesting read. I still think servers should only ever use UTC as their timezone

                                                                              1. 7

                                                                                UTC is not monotonically continuously increasing either. Leap seconds can skip your execution moment as well as repeat it.

                                                                                1. 4

                                                                                  Cron generally goes by the minute - so you would need a very large leap second to cause a problem in that case.

                                                                                  1. 1

                                                                                    I’m picturing something where the wakeup time is close enough to 1 minute that you could miss a minute. It seems like it will do the right thing if it’s less than a 5 second leap, because they wait up to 65 seconds: https://salsa.debian.org/debian/cron/-/blob/master/debian/patches/features/Better-timeskip-handling.patch#L497

                                                                                    I think the other time logic would save it in the unprecedented case of 5 leap seconds.

                                                                                    My point was wrong because I was imagining some sort of sleep that could set you close enough to a minute that even UTC doesn’t help. I didn’t read the code before to see if this happened in the non-patched case. If that were the case, you could possibly want constantly increasing continuous time like GPS time: http://leapsecond.com/java/gpsclock.htm

                                                                                    1. 1

                                                                                      I wrote a simple cron and my solution was to wake up in the middle of the minute to give 30 seconds of leeway on either side.

                                                                                      1. 1

                                                                                        That’s probably 12 9s of correctness. As backblaze says, there’s more likelihood of an asteroid hitting the earth…

                                                                                2. 4

                                                                                  For sure. But, if a server does use a DST-prone timezone, don’t schedule jobs during the transition.

                                                                                  PS. My servers are on Hetzner. Hetzner images default to Europe/Berlin, I noticed too late…

                                                                                1. 7

                                                                                  I and my team are working on the next tools website. This time, it’s List Tools which lets you do all possible list operations in your browser. We have now added 15 tools and we’ll be releasing it when we have 30 tools. Soon, we’ll be joining all these websites together into one single get things done site that has all possible tools for all possible operations in one place.

                                                                                  1. 1

                                                                                    I don’t understand who this is for. Every programmer can do that in a few lines and everyone else uses Excel. Who is the target audience?

                                                                                    1. 1

                                                                                      Thanks for your question. This is for people who aren’t programmers and just want to get quickly things done. They have a list of items, and they want to merge them, or they want to group them, or they want to change the list item separator, etc.

                                                                                  1. 6

                                                                                    I haven’t been to FOSDEM for ages and I really should. I gave up on the beer event the last couple of times because Delerium got so packed that you couldn’t hear people even if you were shouting in their ears, but if you went back on Sunday evening they were pretty empty and you could sample most of the beers and still have a good conversation.

                                                                                    A few of us used to go there a day or two early and hack in the lobby of the Novotel Grand Place. They seemed quite happy as long as we periodically bought coffee / beer (which were not more overpriced than anywhere else near that area). I don’t know how much of FOSDEM you can capture in an online event. For me, the talks were occasionally interesting (and I’ve given a few main-track talks and several devroom talks), but the people that you’d meet in between were amazing. The talks always felt more like an excuse for attending than the real reason - a chat over breakfast in the Novotel was often the highlight of the trips for me.

                                                                                    1. 4

                                                                                      I gave up on the beer event the last couple of times because Delerium got so packed that you couldn’t hear people even if you were shouting in their ears

                                                                                      The trick is to go to Floris Bar, which is right across in the alley. They open a bit later and you easily get a table. They accept the beer tokens too. :-)

                                                                                      I don’t know how much of FOSDEM you can capture in an online event. For me, the talks were occasionally interesting (and I’ve given a few main-track talks and several devroom talks), but the people that you’d meet in between were amazing.

                                                                                      Totally agree. There is the occasional interesting talk/dev room, but the “hallway track” is the best. Also the yearly bytenight party at Hackerspace Brussels is great to meet interesting folks.

                                                                                      1. 2

                                                                                        I haven’t been to FOSDEM for ages and I really should. I gave up on the beer event the last couple of times because Delerium got so packed that you couldn’t hear people even if you were shouting in their ears, but if you went back on Sunday evening they were pretty empty and you could sample most of the beers and still have a good conversation.

                                                                                        If you stand outside it’s nicer frankly, but the queue are terrible :) In 2018 my phone got stolen at there. The WIFI password was appropriately “BeWarePickpockets” for the evening.