Avatar
😀

Organizations

Popular posts

  1. Building a plotter (part 2)

    So the Makerbase MKS DLC32 arrived. My challenge was how to mount it onto the frame and keep all the wires hidden.

    Normally I would fire up OpenSCAD and get my calipers out and risk the wrath of my family while I disappear for 3 days designing the enclosure to print.

    The second design

    This time I said, let’s see what the LLMs can do.

    hardware

  2. Building a plotter (part 1)

    Basic Drawbot Pen Drawing Robot

    About two years ago I finally pulled the trigger and purchased a 3D printer. Now I missed the Great Funâ„¢ part of the 3D printing hobby where you spent more time hardware hacking than actually printing. My 3D printer just works. It’s a utility. Sure I got to upgrade it from a bed slinger to a core-XY, but there was never any doubt that it would work at the end of the upgrade.

    hardware

  3. When a Kubernetes Operator Makes Sense

    Simplifying a tangled mess with a Kubernetes Operator

    Beyond YAML: Real-World Lessons from Managing Complex Infrastructure

    There are plenty of ways to deploy applications onto Kubernetes:

    • raw kubectl apply
    • Kustomize overlays
    • Helm charts
    • sidecars and init containers
    • and, at the far end of the spectrum, fully-fledged operators

    Most teams start at the simple end and stay there. And they should, most applications don’t need anything more complicated than a Deployment, a few ConfigMaps, and a kubectl apply -k.

    kubernetes operator-pattern vault devops platform-engineering

  4. About 19 years ago, I set up a blog on Google’s Blogger platform to track my adventures learning Java: https://javaadventure.blogspot.com/

    The platform has changed a lot since then, and not always for the better. Many posts no longer render the way they used to, and a few images have disappeared entirely.

    One feature I really loved, which is now broken, was the ability to email a special address and have the message automatically turned into a post. It made publishing effortless… though that was also before I discovered what was then X (née Twitter).

    general

  5. Another interesting tidbit:

    @Benchmark
    public void debug1Arg_date(Blackhole blackhole) {
        LOGGER.debug("Started at %s", new Date(time));
        time++;
        blackhole.consume(time);
    }
    
    @Benchmark
    public void guardedDebug1Arg_date(Blackhole blackhole) {
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Started at %s", new Date(time));
        }
        time++;
        blackhole.consume(time);
    }
    

    Gives the following benchmark results:

    Benchmark                            Mode  Cnt          Score         Error  Units
    Log4jBenchmark.debug1Arg_date         thrpt   20  179653191.248 ± 2731044.349  ops/s
    Log4jBenchmark.guardedDebug1Arg_date  thrpt   20  207001790.376 ± 2074020.617  ops/s
    

    We can also compare guarding with SLF4J over logback

    Java

  6. One of my colleagues had a question:

    Now for some context, when the Jenkins project started off, Kohsuke was working for Sun and felt it would be wrong, as a Sun employee, to use a logging framework other than that provided by the JVM as using a different logging framework could be seen as being implication that the built in Java Utils Logging framework was a steaming pile of excrement.

    Java

    Post activity