Readit News logoReadit News
stabbles commented on What makes Claude Code so damn good   minusx.ai/blog/decoding-c... · Posted by u/samuelstros
alex1138 · 3 days ago
What do people think of Google's Gemini (Pro?) compared to Claude for code?

I really like a lot of what Google produces, but they can't seem to keep a product that they don't shut down and they can be pretty ham-fisted, both with corporate control (Chrome and corrupt practices) and censorship

stabbles · 3 days ago
In my experience it's better at lower level stuff, like systems programming. A pass afterwards with claude makes the code more readable.
stabbles commented on WebR – R in the Browser   docs.r-wasm.org/webr/late... · Posted by u/sieste
stabbles · 4 days ago
Does it include a decent BLAS? If I remember correctly R ships with reference BLAS, but for decent performance you need something external. Wonder what they picked for wasm based R.
stabbles commented on Claude says “You're absolutely right!” about everything   github.com/anthropics/cla... · Posted by u/pr337h4m
elif · 14 days ago
I've spent a lot of time trying to get LLM to generate things in a specific way, the biggest take away I have is, if you tell it "don't do xyz" it will always have in the back of its mind "do xyz" and any chance it gets it will take to "do xyz"

When working on art projects, my trick is to specifically give all feedback constructively, carefully avoiding framing things in terms of the inverse or parts to remove.

stabbles · 14 days ago
Makes me think of the movie Inception: "I say to you, don't think about elephants. What are you thinking about?"
stabbles commented on Gemini CLI GitHub Actions   blog.google/technology/de... · Posted by u/michael-sumner
hotfixguru · 20 days ago
I find their image text for the third image in the carousel funny:

> Delegate work with an "@ mini-cli" tag and the agent can complete a range of tasks, from writing bugs to fixing bugs

stabbles · 19 days ago
Surprisingly it's not fixed in the meantime. Maybe they were being honest.
stabbles commented on The .a file is a relic: Why static archives were a bad idea all along   medium.com/@eyal.itkin/th... · Posted by u/eyalitki
tux3 · a month ago
I actually wrote a tool a to fix exactly this asymmetry between dynamic libraries (a single object file) and static libraries (actually a bag of loose objects)

I never really advertised it, but what it does is take all the objects inside your static library, and tells the linker to make a static library that contains a single merged object.

https://github.com/tux3/armerge

The huge advantage is that with a single object, everything works just like it would for a dynamic library. You can keep a set of public symbols and hide your private symbols, so you don't have pollution issues.

Objects that aren't needed by any public symbol (recursively) are discarded properly, so unlike --whole-archive you still get the size benefits of static linking.

And all your users don't need to handle anything new or to know about a new format, at the end of the day you still just ship a regular .a static library. It just happens to contain a single object.

I think the article's suggestion of a new ET_STAT is a good idea, actually. But in the meantime the closest to that is probably to use ET_REL, a single relocatable object in a traditional ar archive.

stabbles · a month ago
It sounds interesting, but I think it's better if a linker could resolve dependencies of static libraries like it's done with shared libraries. Then you can update individual files without having to worry about outdated symbols in these merged files.
stabbles commented on The .a file is a relic: Why static archives were a bad idea all along   medium.com/@eyal.itkin/th... · Posted by u/eyalitki
stabbles · a month ago
Much of the dynamic section of shared libraries could just be translated to a metadata file as part of a static library. It's not breaking: the linker skips files in archives that are not object files.

binutils implemented this with `libdep`, it's just that it's done poorly. You can put a few flags like `-L /foo -lbar` in a file `__.LIBDEP` as part of your static library, and the linker will use this to resolve dependencies of static archives when linking (i.e. extend the link line). This is much like DT_RPATH and DT_NEEDED in shared libraries.

It's just that it feels a bit half-baked. With dynamic linking, symbols are resolved and dependencies recorded as you create the shared object. That's not the case when creating static libraries.

But even if tooling for static libraries with the equivalent of DT_RPATH and DT_NEEDED was improved, there are still the limitations of static archives mentioned in the article, in particular related to symbol visibility.

stabbles commented on Learn Makefiles   makefiletutorial.com/... · Posted by u/dsego
holsta · 2 months ago
> A couple make flags that are useful [..]

But not portable. Please don't use them outside of your own non-distributable toy projects.

stabbles · 2 months ago
The guide is basically about GNU Make, and the flags are obviously just for end users to invoke make.
stabbles commented on Learn Makefiles   makefiletutorial.com/... · Posted by u/dsego
stabbles · 2 months ago
Another thing that's interesting lately is that CMake has decided that Makefiles are unfit for projects that use C++20 modules, and ninja is the way to go. [1]

Basically it's considered too hard if not impossible to statically define the target's dependencies. This is now done dynamically with tools like `clang-scan-deps` [2]

[1] https://cmake.org/cmake/help/latest/manual/cmake-cxxmodules....

[2] https://llvm.org/devmtg/2019-04/slides/TechTalk-Lorenz-clang...

stabbles commented on Learn Makefiles   makefiletutorial.com/... · Posted by u/dsego
stabbles · 2 months ago
A couple make flags that are useful and probably not very well known:

Output synchronization which makes `make` print stdout/stderr only once a target finishes. Otherwise it's typically interleaved and hard to follow:

    make --output-sync=recurse -j10
On busy / multi-user systems, the `-j` flag for jobs may not be best. Instead you can also limit parallelism based on load average:

    make -j10 --load-average=10
Randomizing the order in which targets are scheduled. This is useful for your CI to harden your Makefiles and see if you're missing dependencies between targets:

    make --shuffle # or --shuffle=seed/reverse

stabbles commented on Andrej Karpathy: Software in the era of AI [video]   youtube.com/watch?v=LCEmi... · Posted by u/sandslash
crsn · 2 months ago
This (sort of) is already a paradigm: https://en.m.wikipedia.org/wiki/Probabilistic_programming
stabbles · 2 months ago
That's entirely orthogonal.

In probabilistic programming you (deterministically) define variables and formulas. It's just that the variables aren't instances of floats, but represent stochastic variables over floats.

This is similar to libraries for linear algebra where writing A * B * C does not immediately evaluate, but rather builds an expression tree that represent the computation; you need to do say `eval(A * B * C)` to obtain the actual value, and it gives the library room to compute it in the most efficient way.

It's more related to symbolic programming and lazy evaluation than (non-)determinism.

u/stabbles

KarmaCake day2677April 19, 2016View Original