Threads for jorgelbg

    1. 70

      Hi, I’m the author! The AI features were in beta for many months and I never got useful negative feedback on them. A couple people expressed displeasure about AI but I (mis)interpreted it as rage against the machine rather than actionable feedback. I think this was a mistake: every piece of beta feedback has a kernel of truth. Psychoanalyzing bug reports is a larger part of the job than I’d have expected when I began.

      It was only after launch that I received genuinely thoughtful responses, such as how enterprise users would be unable to use software that includes this capability. I quit big tech a few years ago and maybe my sense for how big businesses work has become less finely honed. This is a blessing and a curse.

      1. 11

        Thanks for all the blood and sweat you’ve put into iTerm, George.

      2. 5

        Thanks for the time & effort you’ve put into iTerm!

    2. 9

      This one hits close to home. I travel to my home country (Cuba) every year and over there I can only get a max DSL speed of 4Mbps. With that, a bunch of tools/websites don’t work at all. Beyond the lovely 10MB of .css/.js files that are very normal these days, it is common to find tools that don’t adapt to that situation at all. One of my latest cases was while trying to push a small docker image, docker was trying to push 3/4 layers at the same time: reasonable if you have a good connection, but not when a single layer is exhausting the entire connection and causing the other layers to timeout.

    3. 1

      I’ve been using https://github.com/ranmaru22/firefox-vertical-tabs a long time ago and so far no complains. I may give it a try when it gets more stable.

    4. 1

      I’m still wondering why the gcloud cli has not been rewritten in Go. This has always looked (to me) like one case where Go would really shine ¯_(ツ)_/¯.

      1. 1

        That would be nice but I worry they would embed the go runtime and it would still be over 1gb

    5. 1

      I do something similar with a mix of tailscale & Wireguard. When I travel to my home country (Cuba) I need a VPN to access a bunch of different services. I have my own Wireguard running in a tiny Linode instance (picked this one because it gives me the lower response times from Cuba compared to the other ones that I tested). In my experience using that host IP doesn’t give me too much headaches.

      I do run a custom “exit node” (using plain-old Wireguard) on my home connection to do more critical stuff that may be a bit more “picky” about when your IP address is located.

    6. 2

      Not a picture from me, but a request for advice:

      When I was working at Microsoft, I had. Dell 43” monitor at home and a moderately decent camera on top. I’m now no longer required to use Windows (thank $DEITY, I didn’t realise what a productivity hit it was until I stopped) but I had to give the monitor back and so I’m looking at a replacement. The newer version of the one I had is the U4323QE, which also has USB-C power and GigE, so works as a docking station. I’m tempted by that, but I’m also noting that a few 43” monitors with better reviews are about half the price and maybe I should get a separate dock.

      I currently have an HP dock that I got second hand (I actually wanted a USB-C to micro USB cable but no one sold them and so the dock was the cheapest thing I could get locally that let me plug in the FPGA board to my Mac). Apparently its display output uses DisplayLink and is not very reliable with Macs. I would like:

      • A monitor that is big enough that I sit back in my chair properly and don’t hunch forward and hurt my back.
      • A single USC-C cable to connect to my laptop (MacBook Pro) to get power, display, Ethernet, and external USB.
      • Not to think about the problem again for at least 5 years.

      Any suggestions?

      1. 3

        CalDigit TS3+ does just that with my work M1 MBP for the last 2 years. They have released some newer models in the meantime, so maybe compare / check the reviews. My main complain is that MacOS doesn’t have a volume slider for the SPDIF audio output, and I couldn’t figure out a blackhole driver filter I want (I can just add a volume control easily, but since I’m there I want to add some filter chain like dynamic range compression for video calls and I wasn’t able to make it work yet).

        I have a Dell U4021QW now (and can recommend it), which has the USB-C dock thing, and it’s connected to my personal Linux desktop and my work laptop. It works perfectly as KVM switch, but I still use the dock for the Macbook – I want keyboard, mouse and webcam to be connected to the machine that’s on monitor, but I didn’t want macbook to lose ethernet and audio output when I switch display to the personal machine for a moment.

        Caveat: it’s a Thunderbolt 3 dock, not USB-C – there’s apparently some subtle difference. My company’s IT likes it (it’s not affected by their imposed lockdown on USB devices), but my Steam Deck doesn’t work with it. One standard socket is great, we can use all sorts of mutually incompatible cables and protocols with it!

        1. 2

          Thanks. I had some bad experiences with docks. During the pandemic, even Microsoft couldn’t get hold of enough Surface docks, so ended up buying Targus ones. They were awful. They added an electrical hum that made the 3.5mm audio out unusable (worse, this leaked through the power / USB-C cable into the laptop and so it also made the laptop’s 3.5mm audio out unusable). My setup is a somewhat strange mix of old and new: audio on my computer goes to a NAD 3020A amp and a couple of moderately decent (though less nice than the amp) speakers, since I had them lying around and they gave much better audio output than anything from newer decades that wasn’t insanely expensive.

          The only other things I want to plug into the display have plain HDMI or DisplayPort connectors, so I’m not worried about them sharing the display. One is an Xbox (which doesn’t see much use - it’s the old one) and one is the Morello box that will mostly be headless.

          1. 1

            The Thunderbolt docks I’ve used have been, Fine, Actually, whereas most of the USB-C ones, even from reputable vendors, are a giant clusterfuck.

            Currently, I use one attached to my laptop (an M1 MBP) and it’s never caused me trouble.

          2. 1

            The only other things I want to plug into the display have plain HDMI or DisplayPort connectors, so I’m not worried about them sharing the display

            My desktop is also DisplayPort, and the Dell monitor has only one USB-C/Thunderbolt input. It also has one USB3 uplink that can be assigned to the other (not USB-C) inputs. I’d love to have as many USB uplinks as I have video inputs, but these two match my main devices (work macbook and personal desktop).

      2. 2

        I bought the Dell 32” 6K (U3224KB) when it came out last year, to pair with an M2 Ultra Studio (after about 5 years using dual 24” 4K P2415Q’s), and if you can afford it, I would recommend it to basically anyone (assuming their Mac can drive 6K).

        It has TB4 in (plus DP and HDMI in), provides up to 140W power, 4 USB-A 3.2 and 2 USB-C 3.2, 2.5G ethernet.

        But for me the killer factor is not having to worry about DPI. It’s essentially the same DPI as Apple’s Mac/Monitor displays, so you get that super-crisp display, no performance degradation (when using a “scaled” resolution).

        1. 1

          I am very interested, because I hate multiple monitors. How’s the camera?

          1. 2

            I can’t say I’ve really used it sorry (in 14 years of working remotely I think I’ve used a video call… once?).

            But it seems to interact with macOS fine though, and it certainly produces a clear image on the screen if I open up e.g. FaceTime or Photo Booth.

            The only possible downside - the speakers (which are along the top) are very clearly meant for things like audio/video calls. If you want to play music/media a lot, you’ll probably want speakers with a bit more depth to them.

            1. 1

              I mean, I will continue to use Camo to use my iPhone as a webcam, so I don’t really want the camera, but if it’s good, I guess I could use it. Otherwise, any issues with the Mac?

              1. 1

                No issues that affect me now, no. It was not great before the M2 turned up, I wouldn’t recommend it if you want to use it primarily with an Intel Mac + eGPU, unless it’s got Thunderbolt out on the eGPU.

        2. 1

          I’ve been really considering the Dell U3224KB monitor but the huge top bezel it is really distracting ’:) even more because I have 0 interest in those neither the builtin webcam nor the speakers. If only Dell would remove the huge bezel I bet a lot of folks would pay even the same price. It seems to be quite a nice display/panel and the 6K resolution would be great!

      3. 1

        i also bought those screens with ethernet. (because it was 16:10, not for the docking) and I find myself really enjoying the lack of cables.

        ymmv, but if you like clean setups it’s definitely worth the premium. displaylink will be fine for a single screen, it’s the displayport pass through that might be an issue if you want to daisychain displays.

        1. 1

          How’s the display quality? I’ve read some reviews that complain, but I found the older model totally fine. I think the quality near the very edges was not fantastic, but with a 43” display I’m not really using the edges very much.

          1. 2

            Honestly I’m probably the worst judge of this, I think it’s decent, has good picture quality and contrast.

            But I tend to just want my terminals to be rendered nicely.

            1. 2

              But I tend to just want my terminals to be rendered nicely.

              That’s 99% of what I need too.

      4. 1

        I’ve had several Dell UltraSharp’s over the past few decades and have always been happy with them. Something about the screens make me less tired than other screens. I currently have a 30” 4K BenQ that had all the “great for photographers” ratings but for some reason I feel more tired using it than with my old Dell, I’m considering replacing it. (The Apple monitors are also very nice, but hoooo-boy are they pricy)

    7. 1

      We generally prioritize utilizing upstream solutions or off-the-shelf tools to avoid reinventing the wheel. However, in my specific domain, we’ve encountered situations where forking became necessary. This includes a few Prometheus exporters, which are community projects.

      In many cases, forking wasn’t the initial intention. Instead, it occurred when we needed to introduce specific features or optimizations, and there was a lack of momentum in the upstream project.

      Another case is a widely used Grafana plugin that hasn’t seen updates for an extended period. Due to its extensive use and the absence of a suitable alternative with all its features, we were forced to fork it when it became incompatible with the latest Grafana version.

      It would be interesting to hear from people in cochroachlabs/tailscale. According to some blog posts/talks, maintaining such forks has paid off sometimes.

    8. 2

      Not sure I see value in memorizing this information. It will change over time and can vary depending on the cloud provider. I agree that every software engineer should factor costs (from the specific cloud provider in use) when designing a system or changing infrastructure.

    9. 68

      I actually want simplicity.

      1. 10

        This is why it’s so important to word such things carefully. Going by the article’s title, you either don’t exist or are no one. In essence, the post discusses away the existence of certain people and mindsets. It is not only intellectually disingenuous and wrong, it’s also rude. It’s a complete non-starter for a fruitful discussion.

        1. 9

          Eh. I think reading beyond the title is underrated. The question is “what are you willing to sacrifice to achieve simplicity?”, which requires some explanation but does lead to the conclusion in the title if the answer is, in practice, essentially nothing.

          1. 4

            OK, sure. “What are you willing to sacrifice to achieve simplicity?” would still have been a better title.

          2. 3

            I did read the article and it doesn’t change the fact that the title is wrong and flamebait.

          3. 2

            Why are you assuming that the only way to achieve simplicity is to sacrifice something? That is not true at all. A smaller simpler (but better) design can be more feature rush than a more complicated one.

            1. 4

              I’m not, I’m simply stating what the article says.

              But I do think almost everyone would agree that simplicity is better if there’s no trade-off necessary to achieve it.

        2. 4

          Sadly, this type of wording in titles (also in videos) are the ones that get traction pretty much every where. It cannot allow for a middle ground in the point that (hopefully) the author is trying to move across.

        3. 3

          There is no statement about everyone that can possibly be anything but hyperbole, other than the most basic statements of fact like “no one can survive without oxygen.”

          No one should be offended by hyperbole.

          (ba dum tss)

      2. 7

        I work on safety-critical real-time stuff. We can only use simple software otherwise it becomes impossible to guarantee safety and timing. For many use cases a Linux kernel is too complex. A microprocessor is too complex.

      3. 7

        Author here. Obviously my post’s title was inflammatory hyperbole, but to try to defend my main point for a minute:

        How many things in your web development stack can you name — things that you actually like and consider to be a Good Thing — that you would be willing to sacrifice to achieve simplicity?

        I can’t think of many for myself.

        1. 2

          Performance; as long as the code isn’t doing things in a boneheaded way, it’s almost always fast enough.

          Visual effects; I’m cheating here – this isn’t something I actually like, so removing it is pure upside. But it’s complexity that many many applications insist on, and removing it would be welcome.

          Abstraction; code is often shorter and easier to explain when written with fewer, smaller abstractions. The abstractions may be elegant, but they aren’t worth it.

          Resilience; the ability to handle faults gracefully is often fragile, getting it right is time consuming. It typically doesn’t pay it’s way. Detect the error, crash loudly, and move on. Be resilient in a small number of carefully chosen chokepoints instead of spreading error handling everywhere. Aiming for five nines of reliability isn’t worth it.

          the list goes on.

        2. 2

          Obviously my reply is inflammatory hyperbole….

          Because we can’t be arsed to find another job, we let our manager convince us to add yet another baroque curlique to a product that should have been cast in concrete and declared “done” a decade ago….

          …the only ethical thing to do actually is remove obsolete features and any remaining bugs.

          But it’s still selling and unless we keep adding features we will be out competed by our competitors and creating a new product in a new category is too expensive and risky…

          So day by day with a sick feeling in our stomachs we add yet another wart.

          And our customers, being in a market for lemons, choose the glossiest and sparkliest lemon on the rack…..

          …and so life gets shittier for everyone.

        3. 1

          I already achieved simplicity. No frameworks and using basic text editors. I guess…

        4. 1

          Obviously my post’s title was inflammatory hyperbole

          Hyperbole, yes. Inflammatory, no.

          inflammatory: arousing or intended to arouse angry or violent feelings

        5. 1

          I would sacrifice the Lisp and ML families. I would sacrifice sed and jq. I would sacrifice Nix.

      4. 7

        So, what are you willing to give up for it?

        The point, as I take it, is that “simplicity”, like “performance” and other good things people often claim to want more of, is a tradeoff: if you want more “simplicity” or more “performance”, you often will have to give up at least some quantity of something else you care about to get it. And reframing in this way is not just splitting hairs, because it leads to more productive discussions. For example, instead of “why don’t developers care about performance” (unproductive) we can reframe to asking about tradeoffs between performance, which developers do care about, and other things that they also care about, and how to affect the choices being made.

      5. 4

        Most people don’t want simplicity, but the author just put “nobody” because it was simpler.

      6. 2

        Do you own a dishwasher?

        1. 4

          I do. And I installed it myself, which means I can claim with a straight face that dishwashers are pretty simple:

          • there’s a hookup for power. Electricity is used to heat water and run the controller which handles the user interface, sensors and timing commands. Finally, it runs a motor for a drain pump, possibly with a small grinder.

          • there’s a hookup for clean water input. Water is used to clean the dishes, and incidentally to spin the distributor arms.

          • there’s a hookup for grey water draining.

          The primary differences between consumer dishwashers are the material of the central tub, the arrangement of the racks, and the arrangement, quantity and quality of the sound insulation. Most of the sound insulation is external and replaceable.

          Once you understand it, it’s simple.

          1. 7

            The primary differences between consumer dishwashers are the material of the central tub, the arrangement of the racks, and the arrangement, quantity and quality of the sound insulation

            Apparently this is largely due unintended consequences to EU regulation on replacement parts for white goods. This meant that it’s not economically viable to produce dishwashers that are differentiated in any meaningful way unless you are certain to sell very large numbers. They all include almost all of the same components so that they can guarantee availability of replacements for the mandated period.

            Once you understand it, it’s simple.

            Having flooded the floor by not putting plumbers’ tape on when connecting up the water input, I can attest to the ‘once you understand it’ bit.

            1. 1

              Surely that’s an intended consequence. Policymakers would have to be quite naive not to expect that outcome.

              This is speculation, of course, please don’t take it too seriously. Your point stands, regardless.

              1. 6

                I don’t think reducing competition or innovation was an intended consequence. Policy makers being naïve and not considering second-order effects is fairly normal in my experience.

                1. 1

                  Sorry for the delay in responding.

                  I of course don’t know what’s in anyone’s mind except my own, and you could well be right. I do think that regulatory capture is a transformation that most industries have gone through, and it would require a surprising level of naivete to not anticipate it. I am not an EU resident and I don’t really know any EU politicians, so I’m not really qualified to speculate I guess.

          2. 3

            The API is simple, for you. The complexity is hidden behind the form of a commodity. Mining, manufacturing, transport, etc. It always seems like when programmers say they like when things are simple, they generally just mean “simple, for me”, and not simple, for thee. It seems like to me a proclamation for concerns to be handled by others.

            1. 1

              All simplicity is subjective. if you disagree, I’m going to have to point out that you are made of billions of cells, each composed of millions of molecules, each built from up to a million atoms, each made of leptons and baryons and held together by forces that require conditions approximating the first minute of the universe even to observe reliably… so nothing is simple and the word has no objective meaning.

    10. 5

      What has helped me when learning PromQL has been to think about it as a query language for filtering instead of something similar to SQL. You are always filtering down to get the subset of metrics you are interested in and then aggregating those into something to graph with some function (sum, avg, etc.).

      I agree that to fully understand a query you’ll need to grasp more details that are not immediately “bubbled up” to the user: scrape interval, type of the metric (counter, gauge, histogram), query look back period, etc.

      1. 4

        Agreed. This blog post, and specifically his illustrations of how grouping labels works, helped me grok the point that you’re always filtering down first: https://iximiuz.com/en/posts/prometheus-vector-matching/

    11. 2

      I badly want more pixels. I’m tired of 4k @ 27”, dammit! I do hope that there will be a new 8k option, maybe at 32 or 36”.

      1. 2

        I think you’d definitely want 36” for 8k.

        1. 2

          Distance also matters. I went from a 27” 4K display to a 43” one largely to improve my posture. When I sit at my desk, I hunch over the 27” one but I have to sit further back to fit all of the 43” one in my field of view and so the perceived pixel size is basically the same on both.

        2. 2

          I don’t know; 4k native on this 27 is just slightly too small. On a 32”, at 2x, I think it’d be perfect. But I know that this is silly.

          1. 1

            I had a 31” LG at “true 4k”, and while the quality of everything at 2x was nice, it all felt a bit too big. I find 5k at 27” to be perfect. I always enjoyed the text/control size of 2560 at 27”, the way the old Dells and original 27” iMacs had was a great physical size for on-screen controls across both Windows and Mac, but of course 2x is mo bettah. Obviously it’s a matter of taste, but I’d suggest finding somebody who has a similar setup before straying too far out of that sweet-spot, if it’s an expensive commitment.

          2. 1

            I also found 4k on 27” a bit too small, I usually go for the “More space” on macOS and this setting on 27” with 4k (Dell U2718q) was a bit too small. For me at least 32” for 4k gives me a good balance (also depends on the distance at which you sit from the monitor).

            I would love more pixels in the 32” size, sadly, the Dell 8k monitor was not supported properly on macOS (I think now it is, but only on an Intel Mac Pro, the cheese grater one).

      2. 1

        Do you notice it? I have a 43” 4K display and, if I see any pixelation, it’s a reminder that I’m hunching over the desk again and I should fix my posture. My laptop, tablet, and phone all have similar resolutions but I hold them closer to my face. 4K seems to be close to the sweet spot where, for any size where I can fit the entire display in my field of view, I don’t see any pixelation and text is smooth. Every resolution increase before then was fixing visible artefacts but at 4K, for the first time, I don’t see anything that annoys me.

        1. 1

          Oh, almost certainly not. I just want the pixels. GIVE ME MORE PIXELS!

    12. 3

      Thank you to everyone involved in running the website and to the community!

    13. 1

      I usually avoid putting anything “sensitive” as plain text in my dotfiles. Sensitive is very flexible term and depends on whatever you want to not be public (passwords, keys, IPs, etc.). I put those in different repository that is managed & encrypted using gopass. That way I just read them into my environment when I need them using the gopass cli.

      I don’t use home-manager just yet.

    14. 1

      Nothing fancy: Locally I’m using a combination of gopass + direnv. I use this setup for secrets that I generate or (more likely) I am going to be the only consumer. For secrets that are meant to be used by the rest of my team we rely on vault.

      direnv allows me to just automatically have my secrets available when I’m in the repository for a given project as environment variables. gopass usually requests me to confirm the loading of the secrets either via Touch ID or with a Yubikey.

      Since my team mostly deploys into our Nomad cluster, we rely on vault for making those secrets available in our containers.

    15. 5

      Does anybody use tabnine? I get tired of it sometimes, and it suggests code that might not type check, but it can complete a lot of non trivial Haskell code and it automates a lot of the boilerplate in a web project I mantain

      1. 2

        I use tabnine regularly and I do find it useful, I think I prefer their approach of suggesting single lines instead of complete blocks (as appears to be the case from Github Copilot), although I would have to test it. For me it saves me of googling/remembering some snippets of code to do some mundane tasks.

        1. 1

          Try writing an evaluator for simple arithmetic expressions in haskell or elixir - tabnine gets too much right :)

    16. 10

      I am fighting a botnet attack on my personal website. I tried a bunch of approaches but eventually gave in and put the whole thing behind Cloudflare. This post describes the steps I went through, maybe someone else will find it helpful.

      1. 1

        Thanks for that I’ve been using Netlify for my blog and have been debating whether or not to put it behind Cloudflare. I’m currently paying Netlify $120/year for their ‘pro’ service to get analytics but I hear Cloudflare offers some pretty good analytics as well and I’d also get the DDoS protection that offers.

        1. 3

          Much as I hate having to use them, Cloudflare offers a well designed service. I can’t speak to their analytics package, you have to pay for it and I am a cheapskate.

        2. 3

          but I hear Cloudflare offers some pretty good analytics

          Most of those analytics are behind Cloudflares paid plans and you’d pay twice as much ($20/month) for it.

          1. 2

            That’s excellent advice. Thanks, I hadn’t even begun to look into it. Happy to stick with Netlify. They do one thing and do it REALLY well. That’s worth paying for IMO :)

            1. 2

              If you are bellow the limits of the edge workers free plan (100,000 requests/day and 1000 requests/min) you can run https://github.com/jorgelbg/dashflare/. I wrote this because I also wanted a bit more of details than what Cloudflare offered, without going for the paid plans. I host dashflare dashflare in a small Azure instance (2 vCPU/4GB of RAM) for my blog and a couple of additional sites from a friend. That VM also have a few more things running there, not just dashflare.

    17. 1

      I wonder if this will push users looking for an all-in-one solution into the arms of Jetbrains space. Nervertheless, this leaves a hole in the OSS space, unless some fork with traction emerges.

    18. 2

      This took me down memory lane. I think my first contribution was a port of the (at the time popular) Jupiter utility to replace the C# (mono) dependencies in favor of Python, it made the entire package slimmer and it also added integration with the Ubuntu appindicator. I had an Acer Aspire One at the time (with an Intel Atom processor), which I used with a 15” external monitor and Jupiter offered the more reliable way of applying some settings and squeazing a bit more of performance from the laptop. Good times.

    19. 1

      I’ve been playing around with building by own minimal website analytics solution - dashflare. It can be self hosted with minimal effort and it doesn’t require adding a Javascript snippet to the website.

      It was born as a toy project for me (and a colleague) to scratch my own itch of getting rid of Google Analytics and getting to play with edge workers.