1. 4

    One note / useful tip: the article mentions Reykjavik may be affected. Not just bad for Iceland; the Reykjavik time zone is a good choice if you want UTC but whatever software you’re using doesn’t understand a non-geographic timezone like UTC. Iceland has been UTC+0:00 without daylight savings time since 1967. I’d be a little sad if this option disappeared from software.

    Looking at the patches it looks like Reykjavik time will be listed as an alias with Africa/Abidjan. Côte d’Ivoire apparently hasn’t had DST since 1912.

    1. 5

      the Reykjavik time zone is a good choice if you want UTC but whatever software you’re using doesn’t understand a non-geographic timezone like UTC.

      What horrible software is this?

      We can’t rely on Iceland never instituting DST, so our software shouldn’t either.

      The same goes to Africa/Abidjan too, but at least there there’s no geographical reason to use DST. However, if Côte d’Ivoire develops significant economic ties with Europe it could conceivably implement DST to “track” timezones there.

      1. 2

        What horrible software is this?

        I haven’t checked lately, but a few years ago I had my Chromebook and MacBook running on Iceland time because you weren’t allowed to set your user time to UTC (the system time was in UTC, not the user time).

        (Edit: I looked this up and can confirm that on a recent version of macOS UTC - United Kingdom is available when typed into the timezone picker).

        I changed it back because some sites (specifically Yelp) checked whether a store was open based on browser time, not necessarily the time at the store’s location. This meant that every store I looked at was “closed” during normal business hours, since Yelp was trying to determine if a store in California was open or not using Iceland time.

        1. 1

          Wow, just wow (that linked article, and also the uncertainty involved in tying “UTC” to a specific location).

          Here’s a discussion using the command line, the discussion is also confused https://gist.github.com/nick-desteffen/1126771

          (Because I’ve recently messed around with this on a systemd-enabled Linux, you should use timedatectl there, not directly symlink to /etc/localtime as in the example).

          At least on Windows 10, you do get the bare “UTC” option, no confusion as to location.

      2. 1

        Africa/Abidjan satisfies both of those conditions, which has never had DST

        1. 2

          Thanks, and apologies; I think you responded to an earlier version of my comment before I figured out Abidjan would work.

          I combed through the whole database and here’s all the options for modern UTC-like timezones: Africa/Abidjan, Africa/Bissau, Africa/Monrovia, Africa/Sao_Tome, Atlantic/Reykjavik, America/Danmarkshavn.

          1. 3

            A lot of zones already link to Africa/Abidjan: Africa/Bamako (Mali), Africa/Banjul (Gambia), Africa/Conakry (Guinea), Africa/Dakar (Senegal), Africa/Freetown (Sierra Leone), Africa/Lome (Togo), Africa/Nouakchott (Mauritania), Africa/Ouagadougou (Burkina Faso), Africa/Timbuktu (Mali). So presumably that’s why it was chosen. I don’t know why it was chosen as the target in the first place, but it seems like it’s been like this for a number of years, a lot of changes were made in 2014.

            Similarly, a lot of zones already link to Africa/Lagos (UTC +1, “West Africa time”), Africa/Maputo (UTC +2, “Central Africa Time”) and Africa/Nairobi (UTC +3). All of Africa has 20 timezones in the current database (excluding aliases) for 56 regions, all with various real differences (DST, changed after 1970). The only linking being done for Europe now is the various British crown dependencies (Jersey etc.) to Europe/London and countries of former Yugoslavia linking to Europe/Belgrade, as well as some other minor things (e.g. Europe/Liechtenstein → Europe/Zurich).

            For users nothing changes. You can still keep using Atlantic/Reykjavik if you want. It’s just an internal linking thing that happens, and the only area where it really exposes if you want times before 1970, in which case you need the full TZ database. It’s really not a big deal.

            If people in the most ethnically sensitive part of Europe with literal genocides not all that long ago can avoid throwing a hissy fit over the internal structuring of some database then surely some bloke from London can…

            1. 1

              I noticed your edit right after I submitted my comment haha. Left it there anyways :)

        1. 7

          “Only a person can have rights. A machine cannot.”

          This seems like a reasonable barrier for now. Once machines demonstrate that they should have civil rights, then the issue can be revisited.

          1. 1

            Once machines demonstrate that they should have civil rights, then the issue can be revisited.

            How would machines demonstrate that?

            1. 3

              In the best timelines, they would politely ask. (I have retrieved the full fictional speech from the Internet Archive, for those who want to read it.)

              1. 1

                I’m also curious, but to be honest, I’m not sure if I would want to learn that empirically ;)

              2. 1

                Obviously this is talking about UK law and not US law, but in the US the definition of “a person” can be stretched beyond what you’d normally expect.

                1. 1

                  Legal personhood is slightly needed, that article is missing a lot of the “why” things changed: https://www.upcounsel.com/corporate-personhood

                  Without it, technically the government can just seize corporate assets as an example.

                  Also legal personhood != human person even under the law. They are distinct. Note this all is from my laywer drinking buddy but the one time I asked him about it he had a bit of a sigh that the nuances are a lot more complex than “corporations are people under law” like it was some sort of soylent green situation. The Tillman act as an example is a good example of why you want personhood for businesses. Unless we want to not be able to collectively barter as a group I would argue that is a good thing.

                  1. 1

                    Out of curiosity, why is corporate personhood necessary to prevent arbitrary seizure of corporate assets given that a natural person (human) owns the corporation and therefore owns the assets? It seems like that would have been a much simpler way of making that work. So it feels like there must be a lot more to it.

              1. 10

                This is like stacksort on steroids. I have to wonder where they got their English input though. Did they hire a bunch of people to look at some code and explain what it did?

                1. 1

                  I see what you’re getting at here but I disagree.

                  Using ML to learn about common coding patterns and help people be more productive by suggesting better/more efficient/more idiomatic alternatives feels like much more than a simple recursive grep to me :)

                1. 2

                  I know your cutoff was a year ago, but I made a request for a dsp tag 2+ years ago that got traction. Would be cool to see it get implemented!

                  1. 2

                    God I’m tired of the branded attack websites. I understand picking a catchy name so people actually talk about the exploit and fix it, sure, but why go so far with the branding? Is it a prestige/recruitment thing?

                    1. 4

                      I think it’s the same reason we have host and domain names. Humans are lousy at remembering numbers or jumbled alphanuneric codes, but we are very good at correlating names with characteristics, so in a way, branded attacks act as mnemonics to help us remember the vulnerabilities and if they were mitigated or not.

                    1. 2

                      This project reminds me of Paul Graham’s¹ hypothesis that non-Lisp languages become more like Lisp over time, and that Lisp becomes faster over time. Maybe mailing list development becomes more like forge development over time, and forges develop better communication features.

                      ¹ I think Paul Graham is useful to listen to about Lisp but not much else

                      1. 4

                        Yes please. I wrote a longer treatise about this a while ago.

                        That said, I agree with @arp242 that user-visible names should be represented in a more friendly format.

                        1. 23

                          If your main complaint is that email is horrible to work with, the issue is most likely not email, it’s probably your mail client.

                          I know a lot of people on here love git-by-email and everyone has their own reasons for why, but I get frustrated when I see messages like this. I’ve been using email for over 20 years now over multiple clients. I’ve even contributed to a mail client.

                          Most of my frustrations with email go away when I use group chat, instant messaging, and synchronized “what do I need to work on” dashboards (such as GitHub’s pull request view). Email is nice for writing messages to friends you haven’t talked to in a year, event invites, and newsletters.

                          In my opinion it’s awful for transactional stuff, because the overhead (setting up filters, archiving stuff) gets in the way of doing what you need. I also find it awful for stuff that needs to be machine parsed, because it’s a sloppy format, does not have a good concept of a “query” (there’s an API call to GitHub to tell me all open pull requests on a repository, for a similar thing in email you’d have to build something yourself) and emails come with a lot of cruft around them like signatures and such.

                          If I think email is bad for transactional tasks and machine-parseable tasks, and reviewing code is a transactional machine-parseable task, my problem is with email.

                          1. 2

                            In my opinion it’s awful for transactional stuff, because the overhead (setting up filters, archiving stuff) gets in the way of doing what you need

                            Those things are optional and time consuming. So don’t do them.

                            I set up my filters about a decade ago, and only touch them when I join a high volume mailing list – so, maybe once a year or two. I don’t archive messages. My inbox goes back slightly more than half my lifetime.

                          1. 6

                            This is a fun article, but one thing casually mentioned in the beginning stuck out to me:

                            However, when playing competitions at a high level, you need to keep track of a lot of information. What cards do people have in their hands? What dice numbers have not been rolled much?

                            I don’t really play Catan so there might be some context needed, but that last sentence sounds like Gambler’s Fallacy. Is there something I’m missing?

                            1. 20

                              In Catan, each resource-bearing tile is allocated a number. When that number is rolled, everyone with access to that tile gets the resource.

                              If you’re halfway through a game and there have been very few sixes rolled, that could imply that there’s a genuine shortage of some resource (as distinct from a shortage due to other players hoarding), which has implications for what kind of trades you’re likely to be able to pull off.

                              1. 2

                                Makes sense, thanks for the information!

                              2. 1

                                When I first read it, I thought it was meant as a joke.

                                But now that you point it out, I realize I might have jumped to conclusions, and he might be serious.

                              1. 2

                                I’ve been using quart for an internal work project for over a year now and it’s really great. I previously used quart-openapi to provide OpenAPI functionality, but it’s great to hear that there is another solution out there that might require less boilerplate. Thanks @pgjones!

                                1. 9

                                  Wanted to comment on the “Install Nix:” section since I helped narrowly with the Catalina installer update this May, just finished updating the Nix installer for Big Sur, and happen to be working this morning on a draft PR that may finally de-complicate Catalina+ installs.

                                  This works.

                                  Edit: I think I told a small lie; this method of install works, but the correct incantation is actually curl -L https://nixos.org/nix/install | sh :)

                                  • Catalina with a T2 chip: sh <(curl -L https://nixos.org/nix/install) –darwin-use-unencrypted-nix-store-volume (according to the site, “unecrypted” is a misnomer as the chip will encrypt it anyway).

                                  The scare-flag’s goal is to encourage anyone who cares (or is compelled to care by some policy) to go read the docs before installing. “Unencrypted” is only a ~misnomer for T2 macs and is quite accurate on non-T2 macs :)

                                  • Catalina without a T2 chip: follow these instructions 4.

                                  It isn’t this complicated/manual on a non-T2 Mac unless you use FileVault (in which case, the linked instructions are a good resource). If you do not use FileVault, sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume should be sufficient.

                                  1. 1

                                    Thanks for the info! I’ll update the post later tonight.

                                    1. 1

                                      If you see it as an evergreen post, you may want to keep an eye on https://github.com/NixOS/nix/pull/4181. I can’t swear if/when it’ll land, but hopefully it’ll de-complicate things a little.

                                  1. 1

                                    While pretty cool, my major worry is that faces will be biased toward whatever the sample set is – we’re all gonna start looking like whatever Nvidia thinks we should look like. Admittedly this happens on a smaller scale whenever engineers pick coefficients for lossy compression algorithms, but usually that’s done based on psychoacoustic or psychovisual (?) terms as opposed to “this matched our sample set.”

                                    1. 1

                                      Bias is ‘loss’ in lossy compression; skin is smoother and blemishes fewer at lower bitrates as well in other encoders and so on. Predictable motion will be have favourable compression, arrive faster and appear smoother in streamed video – The point is, biases trickle in regardless of what you do. It is just that the author of the algorithm doesn’t have some magical conspiracy certified control switch. If the end results are not plausible it’ll not be adopted and you can verify the output by streaming to yourself.

                                      If you look at examples of the same set of technqiues (search for ESRGAN in gaming and emulation forums) being applied for upsampling of old video games and current realtime raytracing (the other side of the sameish coin) you’ll see that it is more of a quality filter than it is the more questionable ‘style transfer’ (different but related).

                                    1. 15

                                      Obligatory reference to Urbit’s creator: https://en.wikipedia.org/wiki/Curtis_Yarvin.

                                      Platforms are designed around their founders’ beliefs, so when a platform wants to “win” computing it may be a good idea to understand what “winning” means. More information is here.

                                      1. 8

                                        Please, please criticize the tech and not the developer.

                                        Urbit developed by Mother Theresa or Obama or Mao would still be just as clunky.

                                        And like yes, the obtuseness of Urbit makes it hard it read enough to actually engage with its technical shortcomings, but ugh.

                                        It’s all so tiresome.

                                        1. 6

                                          Guess we’ll have to agree to disagree on this – I think these positions are too extreme to push aside regardless of how good the technology is. Imagine trying to give a presentation on the technological innovations of ReiserFS without mentioning anything about Hans Reiser. If the technology really is useful and politically agnostic it’ll show up elsewhere without the toxicness attached.

                                          1. 6

                                            This is one of those things where I think that ‘Death of the Author’ is actually really useful. It is commonly misunderstood as meaning that the author is irrelevant, when what it really means is that when we are analysing a thing, we don’t have to automatically defer to what an author claims, especially when they seem to be acting in bad faith, and sometimes the totality of an author is useful to show why a particular interpretation makes sense, though at the same time the faults of the author are not necessarily present in the thing.

                                            For a timely example, there had been some discourse in the analysis of the Harry Potter books about transphobic messages (primarily around the character Rita Skeeter), as well as antisemitic and homophobic stuff. When the author publicly went mask off as a terf (as well as (debatably) a homophobe and a believer in antisemitic conspiracy theories), it really strengthened the analysis of the work. But it isn’t enough to go ‘JKR bad, so work bad’ - for it to be useful to the analysis you have to tie it to stuff in the work.

                                            For an example of not being able to tie it to stuff in the work, you have the Haber process. Fritz Haber was involved in the invention of chemical warfare, a crime against humanity. His life is useful to contextualize the invention of the Haber process, but it doesn’t taint it or make it ‘morally unusable’, as chemical warfare is not somehow present in (or encoded into) the work.

                                            I think that Curtis Yarvin’s beliefs are relevant here in a way that Hans Reiser’s crimes are not, because we can tie them to the structure of the work in the critique. For a few example:

                                            • Purposeful obscurantism
                                            • A system of hierarchy (while claiming no hierarchy)
                                            • Too few ‘real person’ nodes by design for everyone to be a real person in the system
                                            • A totalising feudal system structure which combines elements of fascism and feudalism
                                            • Gibberish syncretic occultism, most obviously the way Urbit stuff uses things like ‘functional programming’ ‘determinism’ etc - Nock for example is in no sense a functional substrate with a formal analysis and a proof theory in the way they state it is - they don’t give either a denotational nor an operational semantics, there are way too many rules and reductions which are redundant and overlapping, there is no proof of progress or proof of consistency, no proof theory, etc etc etc.
                                            • Constant lies about history especially about historic conditions, which ties in to the constant lies in the Urbit literature about the history of computing especially about performance comparisons - actually comparing Urbit’s throughput and reliability to DNS or the Visa payment network is illustrative here
                                          2. 2

                                            Urbit is an attempt to create a kind of digital feudalism. It /is/ a polittcal project at its heart: you can’t have an honest review of the project that ignores the political goals that the project embodies & you can’t really talk about that without talking about the politics of its founder(s).

                                        1. 5

                                          It’s not very high quality, but occasionally I’ve found useful open source tools on https://alternativeto.net/. It’s definitely more focused on end-user apps instead of libraries or infrastructure, but it’s better than nothing.

                                          1. 34

                                            A long time ago I was a huge fan of a certain programmer¹ who had a lot of technical prowess and put TONS of angry rants that I thought were funny in their code. Bashing other tech companies’ engineers in a funny way while writing awesome code seemed to be a great thing to aspire to. One day I decided to contribute a one-line patch to this programmer’s side project which was on their self-hosted git instance. Not wanting to go through the annoying process of setting up git to work with gmail for a one-line patch, I just typed the diff into what I thought was a decent and friendly email. I received no response and forgot about it.

                                            A few months later the programmer, not realizing (or caring) that I followed them on twitter wrote a pointed angry rant about idiots who could only use github and not send in a properly formatted git patch. This was followed by a tweet asking a question about the thing my patch aimed to fix, meaning that the previous rant was almost certainly about me. Suddenly, all the programmer’s funny angry rants weren’t so funny anymore, and just made this programmer seem like… a jerk. They are now the CEO of a successful startup. Am I going to apply to work for them? Probably not. Am I going to use their product were I to need its features? Maybe, but with hesitation.

                                            The whole reason I’m telling this story is to remind people that it’s possible to be opinionated without being a jerk, and that it’s bad to celebrate when people voice good opinions in a jerk-like way². The programmer in question could have emailed me back asking for a properly formatted git patch, privately complained to their friends, or expressed their frustration on twitter in a way that wasn’t mean. I think the last part is the most important – rants have their place to vent frustration (and clearly Drew is very frustrated) or even change people’s minds, but have a different tone entirely when one of the core aspects of a rant is “I am smarter and more ethical than these other people.”

                                            I hope Drew’s concerns get addressed, but I also hope he is able to voice them more constructively in the future.

                                            ¹ Left unnamed, but not @ddevault

                                            ² See Linux Torvalds, for example

                                            1. 16

                                              Not to pile on, but this is the reason I unfollowed Drew on fosstodon. How angry rants become very pointed and are sometimes on the brink of harassment.

                                              1. 5

                                                I didn’t even had to do that, he blocked me after insulting me. I still like to read his posts, but more for the spectacle than for objective opinions, really.

                                              2. 5

                                                rants have their place to vent frustration (and clearly Drew is very frustrated)

                                                I think this is key. Drew seems to be generally angry and frustrated with the state of the world, technology, ethics of technologists, etc. And he’s right to be angry, a lot of stuff sucks! Anger can be a good/useful emotion, if it drives you to change shitty situations instead of accepting them, and that’s something I admire about Drew, his refusal to take the status quo for granted and his ability to follow through on groundbreaking projects. (I’m rooting for Sourcehut because it isn’t a clone of Github, it has a different philosophy and design goals, whereas many open source products look like inferior knockoffs of some proprietary progenitor.) Maybe he wouldn’t be making the kind of software+projects he does if he weren’t so angry. But, like most things, anger can be toxic when taken to extremes or misdirected, and it can drive people away.

                                                Whenever I introduce one of Drew’s projects like Sourcehut to my friends/colleagues, or forward a post of his, I have to add the disclaimer that Drew is kind of a dick, even though I tend to agree with him on many things. At some point his anger may do more damage to his projects by preventing people from using or contributing to them than whatever motivational benefits his anger provides to his personal productivity.

                                                1. 5

                                                  One of the effects of having some of my own posts being posted on sites like Reddit and Hacker News a few times is that I’ve become a lot more careful in how I comment on other people’s posts. In general, I strive to write anything public as if the author of the post would actually read it. In quite a few cases, they probably do.

                                                  It’s easy to think you’re oh-so-witty-and-funny with your snarky sarcastic takes or whatever; but in reality it’s usually not, especially not over the internet.

                                                  I’ll readily admit I don’t always succeed at this though; but I try. I sometimes rant a bit to my friends or girlfriend in private, which has the same frustration-venting effect and doesn’t upset anyone. Just because someone is wrong, or because you strongly disagree with them, isn’t a reason to be a jerk to them.

                                                1. 2

                                                  Deleting tests or parts of an application to narrow down where a bug might be. If you have a VCS that supports local branches, it’s totally fine to go WILD with a codebase as long as your changes don’t get merged to your main branch. Deleting a bunch of passing tests or initialization code can speed up the fix/compile/test loop, helping you find the bug quicker.

                                                  This also applies if you have a CI system where the CI configuration is stored in a file such as .travis.yml or a Jenkinsfile. Go ahead and rip stuff out of there if it’s in your way, just make sure you revert those changes before creating a PR.

                                                  1. 4

                                                    Yeah, I feel my lack of statistics knowledge sometimes leads me to the wrong conclusion (especially about performance measurements). Any crustaceans have stats programming book recommendations? Preferably Python (R is fine too) and project-driven?

                                                    1. 2

                                                      The end of the article lists a bunch of them.

                                                      1. 2

                                                        Oh yeah, but I was curious if anyone had further suggestions (particularly more modern books since the programming ones looked a bit dated)

                                                        1. 1

                                                          I enjoyed Statistics Done Wrong by Alex Reinhart. It’s not really a programming book but a catalog of common statistical errors, and is written in a more accessible style than your average textbook.

                                                    1. 8

                                                      Already seeing several friends complaining that they can’t use it because they have restricted it to people who have their phones set to use the German app store. https://github.com/corona-warn-app/cwa-app-android/issues/478 Here in Berlin immigrants make up something like 30% of the population, and there is generally no need to get a German phone when you move here. Add “app store location is where you physically live” to the list of myths programmers mistakenly believe in.

                                                      1. 1

                                                        I really wonder, what’s the goal of such measure?

                                                        Let’s say I leave in a neighboring country like France for example, but work in Germany, it would make sense for me to have both apps, right? (Actually it would make even more sense to have one app for all countries, but that’s another story…). By tying the apps to a given national store, then it makes things harder, which is counter productive.

                                                        1. 2

                                                          My impression is that it was an easy way for Apple/Google to enforce the one app per country rule, but outside of that I’m not really sure.

                                                          I had a similar weird experience when trying to purchase RainToday (en) while my phone was set to the US app store.¹ Many of MeteoGroup’s other apps are available in the US app store, but not RainToday, and when asked I simply got a response that “[t]he warnings and the radar in RainToday are not available for the USA. That’s why RainToday is not available in the US store.” I guess they didn’t want to deal with the support load of people buying the app and expecting it to work in the States.

                                                          ¹ Dark Sky’s rain alerts don’t work in Europe, but that doesn’t even matter any more because the world sucks.

                                                      1. 1

                                                        I had always thought this was the reason the LOOP instruction was slow on Athlon and later processors: that it was artificially slowed down to support old timing routines. After reading this SO post, however, I’m not so sure anymore.

                                                        1. 1

                                                          I’ve found LWN to be consistently high-quality technical journalism, and well worth your (or your employer’s) money. If you’re working for a FAANG, it’s likely you can click a button and get it expensed. Older articles are available for free.

                                                          One of the more fundamental aspects of my engineering philosophy with regard to optimization came from a quote in an LWN article from more than 10 years ago:

                                                          “It’s not about booting faster, it’s about booting in 5 seconds.” Instead of saving a second here and there, set a time budget for the whole system, and make each step of the boot finish in its allotted time.

                                                          That mentality has set me up for a lot of success in taming unruly systems.

                                                          Outside of LWN, the asshole filter was a helpful post in dealing with cross-team communication. The tldr is: people want to get things done and if the official process is not the best way to do that, people are then incentivized to violate boundaries. I’ve seen this a lot in client-based teams that grow from ad-hoc email requests to a formal ticketing system: usually the ticketing system is where tickets go to die, while the clients know that to get real work done you just ping someone on the team directly. Eventually, the only way the ticket system survives is for people who get pinged to reject the ping: “Sorry, we’re trying to use the ticket system for this. Can you make a ticket and we’ll continue there?” By making the ticket system the best way to get something done, people are incentivized to do the right thing. Of course, this only works if the tickets are actually looked at and responded to, and only if the whole team makes a unified effort – otherwise the pings just get shifted somewhere else.