Threads for amitizle

    1. 4

      Empty commit can be pretty useful if you are using IaC and want to fix drifts

      1. 3

        Also when GitHub actions get stuck (happens to me frequently) and I need to trigger a re-run.

        Edit: To expand, this happens whenever my “prettier” action has prettified the code and committed it back to the branch. It seems to trigger another run of the actions (there are three) but these will be stuck on Expected — Waiting for status to be reported until I push an empty commit.

      2. 2

        I do work on multiple fixes/chores in parallel but during development I’m too lazy to create branches and switch between them so I just have one big develop branch and make a visual separation between groups of commits with a git commit --allow-empty -m -----------. That also makes it easy to rebase and check conflicts for everything at once.

      3. 1

        Drifts by committing something empty and having git-ops do the enforcement of repo state?

        1. 1

          Yes, sort of, plus if you’re using Github/Gitlab etc you’d have the commit in the repo pointing to the PR for audit/history purposes. See Atlantis for example for such workflow.

    2. 6

      Not directly related but- I will never read something that is publicly shared in Google Drive and requires me to login for that.

      1. 4

        Also not related to the article, but I don’t have a Google account on my phone, yet am able to read it; it doesn’t require you to log in.

    3. 10

      It’s becoming the new doom

    4. 3

      I signed up to the waiting list yesterday and really want to start testing it. Currently I’m using Alacritty + tmux and I wonder how it compares to it.

    5. 2

      I never understood ranting on other tools or languages. If you don’t like it don’t use it. If you think there’s a better tool or language for whatever it is you’re doing, use the better tool.

      1. 5

        If you think there’s a better tool or language for whatever it is you’re doing, use the better tool.

        That’s not always your choice. I got stuck for a few months writing golang at a job where I was originally hired to write Clojure, and that’s probably the rantiest I’ve ever been. I felt like I had to program with oven mitts on just to keep my job. Luckily I got moved to a new team before I completely lost it.

        1. 1

          This seems to be totally normal at midrange to massive companies. The tools are chosen for you by architects you may never meet, considering primarily what languages the offshore and onshore teams both know.

          It stops being about the technical fit, and becomes about the arguably harder human fit.

          Which is hilarious since developer productivity, the argument made when you say “best tool for the job,” is an entirely human factor.

      2. 4

        A language doesn’t stand on its own – its community affects the experience of using it. A language’s community:

        • Writes libraries for the language
        • Writes documentation for the language (in forums and Stack Overflow)
        • Devises new patterns to make working with the language more pleasant

        As those benefits are correlated to the size of the community, it’s reasonable for someone to want to convince others to use their preferred programming language and thus become part of its community.

    6. 1

      Add a cronjob to apt update && apt upgrade -y && reboot

    7. 19

      I love Alacritty, the only thing I’m still missing is ligatures support.

      1. 1

        There’s a fork that keeps up-to-date with upstream that adds ligature support. I seem to remember seeing an explanation several months ago for why it (or something like it) hadn’t been merged in but I don’t remember and can’t seem to find it right now. The only discussion I can find about it is a brief talk in upstream’s pinned ligature issue.

        But it works for me with Iosevka. I have no idea how other fonts are working, but half of the reason I use alacritty is that this fork exists and is one of the only terminal emulators I could find (outside the ones bundled with DEs) that actually has ligature support.

        1. 2

          Thanks! I think that this is the reason? (harfbuzz only works on linux/bsd. On other platforms core text and direct write should be used.)

    8. 8

      Can someone please explain how it is possible that one malfunctioning SDK can break the entire app? IIUC this is due to Facebook login but still, why can’t the app continue to function regularly?

      Or is it broken only for whoever actually logged in with Facebook in the first place?

      1. 24

        This is due to Facebook’s idiosynchratic engineering practices.

        At least last time this happened (https://github.com/facebook/facebook-ios-sdk/issues/1373), two months ago*, just including the SDK was enough to bring your app down before it had even initialised because Facebook ran code in the Objective-C class load method, which no sane person would override, let alone do network calls in.

        That’s the idiosynchratic part, but it spells disaster when combined with Facebook’s amateurish development practices: The SDK will load objects from the FB backend, parsing them with brute force, expecting them to always be well-formed. This, combined with no working internal CI/CD system, leads to situations like this, where anyone doing a configuration error on a backend service can bring down millions of clients without them even calling the code in question.

        1. 10

          “Idiosyncratic” seems like an exceedingly polite way to put it.

        2. 5

          Realized today that I’m more dismayed by the tech public’s reaction to this than the failures of engineering displayed. Specifically, a bunch of people over at the orange site believe it isn’t fully preventable when the fix is simply to see bad engineering decisions for what they are: static initialization is dangerous and has no place in a SDK deployed at FB’s scope. Full stop.

          1. 2

            Unfortunately, there are tons of SDKs out there that does static initialization. When brought this issue up with another big-name SDK during integration, the response is in the line: we need to do some initialization, and relying on SDK users to call “init” method properly is a no-go based on what we experienced. That sounds plausible, but the solution is to make sure you have init’ed upon the first call to your library, and this can be solved through tooling (adding a custom LLVM pass to call your init method if not through your public API).

        3. 2

          Do you have a citation for "no working internal CI/CD system"?

          1. 2

            They have a CircleCI instance, but if it did continuous integration and delivery, it would not be all-green.

        4. 2

          The SDK will load objects from the FB backend, parsing them with brute force, expecting them to always be well-formed

          I spit water out of my mouth as I read it.

      2. 9

        It’s just shoddy code from Facebook, and it’s a hot mess, because their SDK calls home in the initializer, IIRC, and a “bad” result that causes it to throw will blow up any app that includes the SDK, even if the app doesn’t use FB login. It’s a total catastrophe.

      3. 3

        To add my speculative point to the good substantive answers above…

        Another part of the problem is our industry has never really adopted REST as a way of architecting big public APIs. So instead of accessing them over HTTP using common patterns every API is expected to have a client library implementing the API’s custom, closed RPC-over-HTTP architecture.

        (I don’t have any solutions, I’m just lamenting.)

        1. 1

          Which industry are you referring to? Serious question.

          1. 2

            Software. Or that part of it that creates Web APIs.

      4. 4

        I’m guessing this is why a bunch of apps on my iPhone weren’t working this morning (GroupMe, Spotify, etc.). I wasn’t logged in with FB, for what it’s worth.

    9. 2

      Not sure about the per user namespace requirement, but I’m personally using gitit which is backed up by a git repo, supports exports very well (with pandoc) and is generally awesome IMO.

    10. 4

      Bye bye Nginx. It was a great run.

      1. 9

        People who immediately say that they’re going to switch to Apache. How exactly do you expect OSS to be developed and paid for? Would you really be much happier if it was part-time volunteers instead of a paid dev team who are the shareholders of their success?

        Nginx is all BSD licensed, anyone can fork it at any time, if need be. Yet so far, it’s still maintained by nginx.com, even though there was already a fuss once the Inc got formed and funded a number of years ago.

        P.S. Out of curiosity, how’s the switchover from GitHub to GitLab going, past the Microsoft acquisition?

        1. 5

          I do agree that switching just because of such move is not feasible.

          However, not all Nginx is OSS AFAIK, all Nginx plus features are closed source. I think.

          1. 5

            However, not all Nginx is OSS AFAIK, all Nginx plus features are closed source. I think.

            Yes, and NGINX Plus is not available for a download unless you’re a paying or an evaluating customer, so, what difference does it make?

            OSS NGINX is a great product by itself, unless you need some of the enterprise-level features, which are often not available in the lightweight alternatives anyways, so, it’s really kind of pointless to be speaking about switching just because the authors got a bit of cash for their hard work.

            1. 3

              I agree. I also don’t believe that it’ll make things “worse”, maybe it’ll make things even better with a company at the size of f5 supporting the OSS efforts as well.

          2. 3

            And Apache is not a viable choice after Nginx.

            1. 1

              I’m curious as to your reasons why not? Doesn’t Apache httpd have event and worker modules that preform as well as nginx? Do you have reasons other than performance?

              1. 3

                My concern is ease of configuration. I mostly understand the parts of Nginx config I use, I never really understood the Apache config.

              2. 2

                I have a long history with both, so I feel qualified to answer this. Apache is larger, slower, and is more cumbersome to configure. But it is well tested, packed with features, and is the de facto reference implementation for anything to do with HTTP.

                Nginx has a smaller footprint, is fast, easier to configure, and scales much better.

                I have heard the difference between the two reduced to this sound bite: Apache is an HTTP server, Nginx is a web server.

                1. 4

                  That sound bite doesn’t make any sense for multiple reasons, one being that Nginx can actually reverse proxy / load balance other protocols than HTTP…

                  edit: Apache is nearly the same performance today, and Apache has actual features like Cache Invalidation which Nginx doesn’t offer in the open source codebase… which makes object caching useless.

        2. 3

          P.S. Out of curiosity, how’s the switchover from GitHub to GitLab going, past the Microsoft acquisition?

          It’s going great, thanks for asking.

        3. 1

          P.S. Out of curiosity, how’s the switchover from GitHub to GitLab going, past the Microsoft acquisition?

          All came back to GitHub when they enabled free private repositories.

      2. 3

        This is precisely the same super flawed logic people used when Redhat bought IBM, Microsoft bought Github. Lather, rinse, repeat.

        Open source is big business now. This isn’t necessarily a bad thing (though I’ll admit it can be).

        We have to wait and see how F5 handles their new acquisition..

    11. 4

      He lost me at oh-my-zsh. Plugins are not nearly as necessary as he makes them sound.

      1. 3

        My thoughts exactly. So many unnecessary plugins.

        When I only started using zsh I did so with oh-my-zsh and it took a few seconds for each terminal window. I’ve debugged it and saw so many things evaluated.

        Then I moved to writing my own config, which is way faster.

    12. 14

      Oh fun!

      • Steve Yegge (linked one of his best blog posts IMHO) - I like that the opinions are unfiltered.
      • Joel Spolsky - his blog posts are talking about software development from all angles
      • Jamie Zawinski - jwz is a legend
      • Joe Armstrong - his an old school software developer, him and the chaps behind OTP actually built an amazing distributed system framework and VM.
      • Robert Virding - see Joe Armstrong.
      • Brad Fitzpatrick - he built LiveJournal and had problems with scaling the db, so he built memcached. Also he’s behind OpenID and one of the golang team members
    13. 4

      At this stage both Android and iOS are pretty much the same. They both serve pretty much same features, notifications look pretty much the same and my feeling is that with every version they are both copying things from each other.

      I’ve had a few Android devices and I’ve had problems with some and had amazing experience with others. It’s very much vendor specific (like in everything else).

      Also - I don’t think that with any smartphone there’s a way to entirely de-google or de-apple or de-ads yourself.

      1. 2

        Also - I don’t think that with any smartphone there’s a way to entirely de-google or de-apple or de-ads yourself.

        Could try a non-Android non-Apple smartphone :) They still exist, if less popular.

        1. 1

          Interesting. Do you have any recent experience with any of those? Any in particular I should check out?

          1. 1

            I’m currently typing this on a non-Android Blackerry 10 device. They don’t make them new, but many are still very serviceable. I’m holding out to replace this with a Pyra, but have been tempted by Planet Computers’ current Gemini and their upcoming device (defaults to Android but official support to dual boot with Sailfish or Debian). I would get a Nexus 5 and run ubports, but I need a real keyboard. If you don’t, might be worth checking out Purism’s Librem5 slated for release next year, my wife is getting that one.

            This is not a complete list, but ones I’m currently using or eyeing.

            1. 1

              The Gemini looks pretty good. My only problem is the camera which is something that I’m using quite a lot. Other than that, the specs are great!

              1. 2

                They claim https://www.indiegogo.com/projects/cosmo-communicator improves the camera, as well as a few other things.

              2. 2

                They claim https://www.indiegogo.com/projects/cosmo-communicator improves the camera, as well as a few other things.