1. 7

    I used to use this since I delete cookies for most sites on close. I have switched to Consent-o-Matic instead though since it’s able to select the most privacy preserving settings on a lot of sites.

    1. 15

      Conspiracy theory: This is advertisement for Kubernetes made by either people that get paid to do things with Kubernetes or are apologists for Kubernetes.

      1. 7

        I wouldn’t call that a conspiracy theory but merely talking about the author biases.

        1. 4

          …Kubernetes was an inside job?

        1. 4

          Host here, thanks for sharing. Conor is an interesting person: His competitive coding experience and his C++ work and algo focus gives him a lot of understanding of software performance. But he also is very interested in beautiful solutions and programming languages. He is like a PL person and a systems person combined.

          1. 2

            I like the moment in the podcast where Conor realised the common ground between array language compiler developers and competitive programmers, evidenced by creating macros that shorten everything. I think there was a lot of insight in that moment.

            I’m fascinated by the idea of languages as tools of thought as well. I’ve dabbled in APL (the famous Conway’s Game of Life in APL video pushed me to try it out). I’ve never gotten to any sort of point of fluency in it though.

            All that to say, I also enjoyed the video at the end where Connor walks you through the ice cream cone problem. Do you think you will keep learning APL @adamgordonbell?

            1. 2

              Thanks for listening @kaspar! Yeah, the notation argument really appeals to me and I think I keep learning more. I really like how using vim keybindings are just in my fingers and how regexs are such a succinct expression of string matching so I’m excited to see what is possible with Iverson notation.

              Julia has been mentioned to me several times now as a practical language with array programming first class, so I’m excited to learn more about Julia as well.

              1. 1

                If you need help or just want to turboboost your learning, checkout the APL Orchard at StackExchange.

                There are a lot of really talented APLers there, including Adám who works at Dyalog, who are happy to answer questions. Also the APLCart is an incredibly useful learning tool.

                1. 2

                  Thanks! I’ll check those out.

          1. 29

            For a month, we looked closely at the parts of the browser that were “sparking joy” for people, and the parts that weren’t

            “sparking joy” is not very high on my list of things I want a web browser to do.

            1. 17

              It’s a reference to Marie Kondo who found popularity with her methods of tidying up. She wrote a book and had (one? more?) popular reality TV show(s). She advocates for going through each of your possessions, asking if it “sparks joy” and to get rid of it if it doesn’t.

              While I got the reference, I’m a bit apprehensive of a new Firefox re-design. I feel like I just got used to the last one. Admittedly that one was sorely needed. This time around I feel like it’s coming too soon and will waste my time unnecessarily. Hopefully it will still be as customizable as before though, so I can put it all back the way I like it.

            1. 14

              Just as something that probably should not be written in Go (like Docker) got written in Go due to hype, something that probably should not be written in Rust will be written in Rust.

              1. 4

                Was it really because of hype? I don’t recall the timeline but Rust was still very unstable when dotcould was building whats now called Docker.

                Its definitely fair to say it would be better in rust, but back in the days, rust would have been a difficult pick.

                Go 1 still hasn’t broken its compatibility promise, which was a huge enabler for many projects.

                1. 2

                  Hype was a big factor. At that time, Go was even seen as a risky bet (though you’re right that Rust would’ve been entirely untenable.) The “safest” choice would’ve been to continue what the industry as a whole was doing and write something like docker in C/C++. I was at dotCloud pre-docker, and it seemed clear that Solomon in particular was itching to find a way to use Go.

                2. 4

                  It is inevitable.

                  1. 3

                    What’s the issue with writing something like Docker in Go?

                    1. 4

                      I think Go is fine for higher level codes of Docker. For lower level, Docker uses Linux namespace, Linux namespace is per thread, but Go runtime creates threads behind your back. This is bad and requires workarounds.

                      1. 3

                        The value on RPC was probably too much. Later, Redhat did a compatible rewrite as Podman without RPC and now it’s an advantage (security and otherwise). RPC was really hot for whatever reason when Go started. It’s probably something to do with the author’s worldviews or background at the time. Or another way, why does the Docker daemon exist? Why do you need to start docker and then connect to it with docker run. Why does docker run ever need to say “docker isn’t running”. I just ran it. You are docker, why are you saying you aren’t running? It’s that whole arch decision.

                      1. 4

                        If this catches on then I am sure Firefox will also re-integrate RSS.

                        1. 4

                          That would be both sad and hilarious.

                      1. 2

                        Interested to hear more about the garbage collector story when compiling Go to WASM. How does that work?

                        1. 7

                          If you are having problems with pipenv, try poetry. It’s modeled after things outside the python ecosystem (to me) and it’s worth a look. On one project, I had pipenv not able to solve the dep tree and poetry did solve it. And remember, these packages come from the same pypi source.

                          This is just an aside, not arguing the OP’s point of Nix as a universal cache or locking mechanism. I just think the smaller step would be to try poetry. I has almost nearly zero cost. I made a requirements.txt file out of pipenv and then just did poetry add for each line.

                          I think poetry would also address the original problem of not bumping all downstream dependencies and just the ones you need.

                          1. 4

                            That definitely sounds like a smaller step. The main reason that I have no desire to do it is that it would be a Python-specific step. I’ve used enough languages that I don’t really have patience for learning their idiosyncratic dependency management systems. Of course, for people who primarily identify as Python programmers, sticking with the traditional Python tools makes sense.

                            1. 3

                              We recently decided to go the other way, from Poetry to Pipenv. Our problem is that we mainly target Raspberry Pi and can’t get the particular dependencies pulled as binaries on ARM, instead we waste a lot of time compiling. We tried all sorts of settings in our pyproject.toml that didn’t work. Switching to Pipenv looks like it will solve it.

                              1. 3

                                +1 for poetry. It’s made python development much less unpleasant for me. And, poetry2nix is pretty awesome, making packaging python projects with nix even easier 😁

                              1. 1

                                Would managed Kubernetes from Digital Ocean or AWS be another option? I know it doesn’t solve the YAML problems but would probably save time and cost?

                                1. 2

                                  I am using managed kubernetes from Digital Ocean at the moment. It’s a money pit for what I need to do.

                                  1. 1

                                    Ah, good to know. I am currently implementing a service using docker-compose and had thought about learning k8s and deploying it to a managed service, though it won’t see a huge amount of traffic to begin with (or maybe ever). That’s one more point to the “worry about it later” side. I will probably just deploy it with docker-compose on an EC2 instance.

                                1. 3

                                  How does the ACME cert integration work here? I can see it in the config there but am not familiar enough with NixOS to understand it. Does it include a Nginx plugin that I am not aware of, is something built into Nginx directly or does it run a script (e.g. acme.sh or certbot) separately?

                                  I’ve been using a custom docker container that runs certbot --nginx to simplify my own deployment.

                                  1. 4

                                    It creates systemd units for getting and renewing the certificates (IIRC a systemd timer for renewal). It’s really nice, I have some NixOS machines running for years and all the ACME stuff is fully automatic.

                                    1. 3

                                      The config seen sets up a nginx with a virtual host, using certbot (not sure which ACME-client is used by default but probably certbot) to fetch the certificates.

                                      NixOS is very nice, especially in cases like this.

                                      1. 3

                                        How does the ACME cert integration work here?

                                        https://nixos.org/manual/nixos/stable/#module-security-acme-nginx

                                      1. 2

                                        Soldering the cables for and sending out the first DIY Electron Detector kits. (Previously discussed on Lobsters.)

                                        1. 8

                                          I love using Ninja for build systems. I use it for Javascript and website building, more recently I converted our 3d-printed open source microscope build over to it.

                                          I feel like the use-cases Ninja was designed for are not the same as what I want to use it for, but it’s actually quite well suited because of it’s simplicity and focus on generating the build file. I wish it did input file hashing instead of reading timestamps as an option. That would be really useful for caching CI builds. Someone implemented it but the patch was rejected. I think because with C/C++ it’s a solved problem. I am considering maintaining a fork with that feature now (read more if you want).

                                          1. 3

                                            Oh that’s cool … Did you see this post a few months ago? The authors were describing a system that used Ninja and content hashes (via OSTree). I have wanted to play around with it, but haven’t gotten around to it.

                                            https://lobste.rs/s/952gdv/merkle_trees_build_systems

                                          1. 2

                                            This is great. One of the big problems I’m running into with my own open-source board (ColecoVision clone) is that keeping the BOM up to date stinks.

                                            I’ve got a bunch of fractional DigiKey carts as I swapped components out during bringup, etc and the web UI for DigiKey is so laggy that it’s annoying to keep up to date so I end up doing one big session at the ‘end’ where I’m comparing my printed-out BOM from KiCad against the DigiKey one by hand. I also can’t seem to figure out how to get KiCad to generate a CSV BOM that DigiKey will read.

                                            Looking forward to trying this for my next project!

                                            1. 2

                                              Thanks yeah, with the 1-click BOM extension you should at least have a reliable way to populate and empty Digikey carts. The BOM builder tool would help even more by finding alternatives and checking if they are in stock, and in there you can also directly import KiCad PCBs (still working on the .sch import). Just send me a message if you want to try out the hosted version (it’s still free, but just not completely public as we pay for the Octopart data).

                                              1. 2

                                                Thanks for the offer - I’ll hit you up soon. Don’t have a lot of free time for another big project right now, but hopefully in the new year!

                                            1. 1

                                              on IRC/Matrix.org.

                                              You say that, but your link is to some matrix thing and there’s no info about IRC server/channel that I can find easily on your site. IRC and matrix are two different things, even if you have the matrix/IRC bridge…

                                              1. 2

                                                Ah, apologies, it’s on freenode#kitspace.

                                              1. 2

                                                This looks really exciting! I’ve wanted something like this that integrates with KiCad and Octopart. If I can ever find enough spare time I’ll dig in and try this out. Thanks for posting!

                                                1. 1

                                                  Nice, thanks, yeah, we use Octopart a ton. The best way to make use of it with Kitspace is probably through the BOM builder tool that I am working on. It let’s you select parts based on Octopart info (and some other APIs+scraping). One day I hope to integrate it into Kitspace proper as the blessed way to “edit” your bill of materials on the site.

                                                1. 24

                                                  Animated diagrams. Something like Visio or Omnigraffle, but with the ability to easily show messages flying around, instances appearing and disappearing, clusters moving, etc.

                                                  People usually reach for PointPoint or Keynote for this, which drives me up a wall. I’d rather have something that can directly create a video file or animated gif.

                                                  1. 11

                                                    Bonus points if the storage format is plain text and plays nicely with version control.

                                                    1. 3

                                                      With such preferences I would consider whether there are enough modules for Asymptote to write the drawing/animation code there efficiently…

                                                      1. 3

                                                        Perhaps something built around Mermaid.js could work. Or a graph library for D3

                                                      2. 8

                                                        My sibling comments have mentioned it, but here is the link to 3blue1brown’s manim.

                                                        1. 4
                                                          1. 1

                                                            Thanks for that link, Reanimate looks amazing.

                                                          2. 4

                                                            There was an CS undergraduate thesis project that did this at AppState in December 2019. I’m not able to find it right now, but it was pretty cool. Similar to how 3blue1brown’s stuff looks/works

                                                            1. 2

                                                              I looked at the code that 3blue1brown released. It’s perfect for his needs.

                                                            2. 3

                                                              SVG can easily do this.

                                                              1. 2

                                                                Keynote can export both video and gif formats.

                                                                1. 1

                                                                  Do you mean something like Canva? https://www.canva.com/graphs/

                                                                  1. 1

                                                                    Curious, what is your use case? Is this the model systems or to animate text or?

                                                                    1. 2

                                                                      I often want to use animation to explain the dynamics of software architecture, either in terms of the interaction of parts during runtime, or the evolution of the architecture itself over time.

                                                                    2. 1

                                                                      Although it’s total overkill, if I had to make animated diagrams I would use Blender.

                                                                      1. 1

                                                                        Probably not exactly what you want but your description made me think of LOOPY. I’ve not tried it myself at all either, just found it interesting.

                                                                        1. 1

                                                                          Lucidcharts is definitely not perfect, but has layers and a presentation mode that should come close to what you want, except for the video out. But maybe If you screencap the presentation?

                                                                        1. 4

                                                                          All over the place, as I am most weeks:

                                                                          1. 4

                                                                            dropgit sounds like a really interesting project. I’ve been thinking a lot lately about how documentation is done at companies and I’m beginning to believe that effective company-wide (or project-wide) documentation would be helped by making it easy for technical and non-technical people to collaborate in the same version control system. Would dropgit allow a developer to continue to use the CLI flows they’re familiar with while a customer support person uses a friendlier interface?

                                                                            1. 1

                                                                              I started to talk with some developers about the problems in documentation and prototype a solution. I thought about relying a lot in git, mainly because I like the idea of having documentation near the code as comments as javadocs or jsdocs, but it also enables other features: most developers I talked said the code is the ultimate true and they can’t trust the documentation because it gets out of sync, so imagine a tool that shows you the last commit date for a code block and the last commit date for that code block documentation. You would be able to easily see if the documentation is outdated and check what were the changes since the last time they were synced.

                                                                              1. 1

                                                                                I’ve often wished contracts in docx form and other legal documents could be in git. Something like dropgit enables that, and can encourage people to use alternate formats like richtext for easier diffing…

                                                                                1. 1

                                                                                  Thanks! The idea is definitely to allow CLI and non-CLI people to work together. How that’s going to look exactly isn’t settled. I have some ideas but we will need to experiment and see what works. At this stage I am trying to see if I can gather enough interest in it to be able to put a serious amount of work towards it.

                                                                                2. 2

                                                                                  My only wish for dropgit would be better commit messages… But it’s a really really cool project and idea! Signed up.

                                                                                  Any chance of self hosting? I don’t put many repos on github/lab so I’d need to be able to point the back end to my own hosting…

                                                                                  1. 2

                                                                                    There is a strong chance for self-hosting and it being completely open source. It’s very early stages for this idea but it’s grown out of working on kitspace.org and gitbuilding.io and part of the motivation is to be able to write software that can be re-used for these open source projects. I wrote a few more details on the GOSH forum if you are interested.

                                                                                    1. 1

                                                                                      Oh and about the commit messages: the idea is that you can change them if you wish. It will give you some time before they become “permanent”. So you can do it later or you can do it as you go. Dropgit is still very early though, mostly ideas at this point, I think I need to tweak the landing page to make that clearer.

                                                                                    2. 2

                                                                                      How is it that you support adding commit messages later? Do you re-write history on the remote?

                                                                                      1. 2

                                                                                        I definitely need to make this more obvious on the page, but this is a UI concept which is at the idea stage. I have some software written for kitspace.org that I can re-use for this but Dropgit as presented doesn’t exist yet.

                                                                                        My current thinking around the commit messages involves three different scenarios:

                                                                                        1. This is a shared repository, you are committing directly to master.
                                                                                          • Dropgit acts as your staging area that “settles” an hour after you make your last commit, then it syncs to the remote. You can only edit your commit messages before it’s “settled”.
                                                                                        2. This is a shared repository, you are committing to your own branch.
                                                                                          • Synced right away to the branch, Dropgit will push --force-with-lease amendments you make to the history of this branch.
                                                                                        3. This is not a shared repository, this is your repo and you are working on master.
                                                                                          • Synced right away and push --force-with-lease to master

                                                                                        Whether we really want to support all three scenarios and how to keep the interaction and interface simple enough bears some further design and experimentation.

                                                                                    1. 5

                                                                                      I am using Plausible, a month with them and enjoying it a lot.

                                                                                      1. 2

                                                                                        Plausible was covered in detail in the last week’s article. That’s how I found out about it and am now happily using it for kitspace.org.

                                                                                        1. 1

                                                                                          Glad to hear that Kaspar, thanks! That was such a nice article that introduced couple of great GA alternatives to many new people, really appreciative of Ben’s coverage!

                                                                                        2. 1

                                                                                          Thanks very much for these nice words Guillermo!

                                                                                          (I’m the co-founder of Plausible)

                                                                                        1. 2
                                                                                          • Solid terminal + editor with appropriate customization for language and individual. This is well worth investing time in, anyone that I know who has done so has reaped huge benefit for weeks/months/years after.
                                                                                          • Docker (or other containers) based development, with a well defined and low/0-effort path to production. At work we’ve built an in-house tool (kubetools) to enable local dev via docker-compose with one command pushes to K8s clusters. Any process/flow like this is ideal IMO.

                                                                                          Ultimately there are just some things that only a production environment needs that. Someone has to handle this - be it the programmer of the features or a dedicated operations team. I suppose (never used) services like Heruko and Elasticbeanstalk abstract these elements away, which is cool.

                                                                                          1. 7

                                                                                            Docker absolutely does not belong in your edit/build/test loop. It’s a tool for integration testing, not your laptop (or prod, for that matter). If this seems unrealistic to you, in my opinion, you haven’t balkanized your architecture in an appropriate way for delivering business value, and that deserves fixing.

                                                                                            1. 3

                                                                                              Curious, but why do you say not in production?

                                                                                              1. 3

                                                                                                I spent enough time in the sausage factory to become a vegetarian, so to speak. I was in the core Docker ecosystem for several years at the outset, and the code quality I observed convinced me that it has no place running important workloads.

                                                                                              2. 1

                                                                                                It’s a tool for integration testing, not your laptop (or prod, for that matter)

                                                                                                Assuming your objection is to “on laptop integration testing,” I get the idealism here. But, we live in the real world where pushing to a “proper integration testing environment” takes a lot of time, and removes us from the flow of development. Having the ability to do some local integration testing, on my laptop, is pretty huge. It allows me to test that my assumptions in regards to an API / protocol / etc aren’t completely misguided, long before I submit it for a full test run in a more realistic setup.

                                                                                                (Note: I am not a docker apologist.)

                                                                                                1. 2

                                                                                                  we live in the real world where pushing to a “proper integration testing environment” takes a lot of time, and removes us from the flow of development. Having the ability to do some local integration testing, on my laptop, is pretty huge

                                                                                                  I guess I don’t agree that integration testing with real dependencies should be part of your development cycle, because I believe (quite strongly) that creating business value at the service level with mock dependencies should be an explicit and enforced design goal of any architecture. Said another way, if you need to integration test to be confident in your changes, you’re too tightly coupled.

                                                                                                  1. 1

                                                                                                    Said another way, if you need to integration test to be confident in your changes, you’re too tightly coupled.

                                                                                                    Something, somewhere has to actually touch the database.

                                                                                                    1. 1

                                                                                                      Sure, but I don’t need a real DB when I’m developing. In fact I explicitly don’t want a real DB when I’m developing.

                                                                                                      Of course I’m speaking from a specific context: business applications where DB access can be easily modeled with a simple contract, and not services that put a lot of logic at the DB layer.

                                                                                                      1. 1

                                                                                                        not services that put a lot of logic at the DB layer.

                                                                                                        I know of few “business applications” that don’t use the whole power of the database. but if you are just talking “Bob’s rails app,” fine. That’s a pretty generous generalization though.

                                                                                                        1. 1

                                                                                                          I know of few “business applications” that don’t use the whole power of the database

                                                                                                          Almost all business applications I’m exposed to have simple CRUD-ish contracts with their persistence layer. Not much logic there. But I’m sure we work in different contexts.

                                                                                                2. 1

                                                                                                  I’ll bite, I am curious as I am working on a re-write of an open source platform for sharing electronics projects. I am re-using the Gitea open source git hosting software (a self-hostable Github clone) as a back-end. I have everything dockerized and use docker-compose so that any dev that wants to help out can spin up the whole application. I currently also deploy it to staging.kitspace.org using the same setup (with some production overrides in a docker-compose.production.yml). How would you suggest I balkanize this architecture correctly and stop using docker during dev?

                                                                                              1. 8

                                                                                                Seems more like a perspective on the release format and documentation of a particular package. The argument may be that this sort of thing is endemic to the JS ecosystem and I agree that NPM et al could do a better job of discouraging releases like this, but I think since so many people are releasing JS packages it’s also a numbers game.

                                                                                                I’d hazard a guess that for every package where you have an experience like this you have 20 well documented packages, not using the experimental modules feature and compiled to ES5 code so you can use them almost anywhere.

                                                                                                1. 10

                                                                                                  I had this same experience with a well known, popular package that I’m 100% sure is used in production in many places. I eventually I found the root cause: an unlisted dependency on some tool that apparently every JS programmer worth their salt has installed already. I submitted a PR to fix the issue, and promptly decided to resume avoiding JS.

                                                                                                  1. 1

                                                                                                    What was the unlisted tool?

                                                                                                    1. 2

                                                                                                      I forget exactly. A typescript type definition package for webpack, maybe? I’m not a JS person, so forgive me if the terminology is bogus, but it was something like that. Whatever it was, a lot of other packages pull it in. I installed some linter-esque tool in an attempt to diagnose my issue and the cryptic compiler errors vanished right away. Without that hint, my limited (nonexistent) knowledge of ES6 modules and whatever else the compiler was complaining about would have never gotten me anywhere.

                                                                                                      How do you publish a package, never once testing a clean install in an isolated environment? It broke on the “hello world” example.