Comments explaining what the code does, which is what an LLM could answer, are basically useless comments. Comments that describes why the code is how it is, is a bit more valuable, but also something LLMs cannot really reliably infer by just looking at the code.
It will be messy, but if the EU can make political and economic decisions for the benefit of their own people, instead of subservient to the US, this paradigm shift could turn out to be very healthy and productive for the region and future generations. China's prosperity is undeniable, and it's due to their willingness to question the unipolar dominance of the US in the decades since WWII. In terms of economic and geopolitical strategy, they've been ahead of the game and prepared for the disintegration of the "rules-based" order. Is the EU ready?
I thought that was a typo or the forum software removed something, but no - it's a pointer to an empty string literal. If I understand how that works, this creates a null byte (in the read-only memory section of the compiled output?) and points to it. Before this line it checks if p is NULL.
I wonder what is the advantage of doing this? Maybe to make sure that p is an actual pointer, so later code can just make that assumption.
That makes sense, with that "guard" at the top, the rest of the function can return the pointer anywhere. And I imagine the compiler will ensure the empty string literal is created only once. Good to know!
it would be better to make p a const char* though, so that the code is not casting away the constness of the string literal (which can invoke undefined behaviour, though in practice string literals are going to be in a read-only area of memory anyway).
It's not just a toy or a fun hobby project, there's potential for practical use as a step in bootstrapping an entire software stack from human-verifiable artifacts.
Excellent comment, much appreciated. I knew some of this before but seeing the dots connected in a succinct summary helped deepen my understanding, especially the relevance/equivalence to formal logic and proofs. Now I'm starting to get what languages like Haskell and OCaml are about. It's a wonder how I've missed such fundamental (and in retrospect basic) knowledge through years of programming. But better late than never, I'm really enjoying diving into the history of ideas - logic, mathematics, electrical circuits, computers. Curry-Howard Correspondence is eye-opening, and it was decades ago. The more I learn, the more I value the "innovations of the past" that built up what we have today.
This is an article about the advantages of keeping your code projects in a monorepo. I was surprised to see it because I'd started doing the same a while ago, as it naturally evolved, and found similar benefits to the ones in the article, such as discovering unexpected connections between my many projects. I even have my own CLI for managing it, like described in the article.
It's a good organizational pattern, not perfect but cuts out a lot of bureaucratic cruft in modern code management and lets you jump in and get to work. Hope it was OK to add an explanatory subtitle in the submission, since the title by itself was not clear what it was about.
Thanks for posting this. I'm glad I'm not alone in the monorepo club! I really believe in the benefits. Especially for a personal monorepo where the amount of code is not usually enough to run into the limits of git.
I'm curious about your CLI tool, what do you use it for?
Ah I was hoping to get a discussion started but no one bit the bait, haha. But I'm glad you saw it so I can personally thank you for a thoughtful article! I like the "Dot a Day" idea too, and enjoyed seeing a glimpse of the workspace.
As for the CLI, it's a primitive script (was Bash, now TypeScript with Bun) that does a few common actions like scaffolding a new project with minimal base, some shortcuts for Git, SSH, taking notes. I really liked this part of the article too, aside from the monorepo idea, seeing how other people are making their own personalized CLI tools to manage projects. Like that ASCII art, the feeling I got was a mix of nostalgia and camaraderie.
Al-Jabr, from where we get the word albebra, is an abbreviated name of the book (The Compendious Book on Calculation by Completion and Balancing). The translator's name was al-Khwarizmi, from where we get the word algorithm. He was of Persian origin.
Oh you're right, I was confused by the rich cultural exchange of translations happening at the time, from Greek and Sanskrit texts to Arabic then later Arabic texts to Latin. Both the book and the author are fascinating subjects I enjoy learning more about.
We're witnessing a divergence between Coders and Clauders, with the latter dominating the market at a lower cost of labor + subscription fee to the almighty AI providers. Coders may be called in, hopefully with better renumeration, to review and debug the massive amount of code being generated. Either that or they will also be replaced by specially trained/prompted language models doing the review.
With how much some people spend on tokens that they've shared on here, and concerns about raising prices, I've kind of been wondering if we're actually heading to a point where seniors who don't use AI are going to be cheaper than juniors who do.
reply