Have to add that we work exclusively in strongly-typed languages. Kinda want to see how it plays out, but I can’t help but argue with him, so I think I’ll just go.
I use master and apprentice. Always two there are, no more, no less.
I use master and apprentice. Always two there are, no more, no less.
It’s just not on their radar at all these days. You want to develop and iterate quickly, so you’re not going to program everything from scratch. No, you grab an off-the-shelf framework and implement only your business-specific things in that framework. There’s so many layers of abstraction that optimization becomes impossible (beyond what the framework does for you), but it saves you a ton of expensive developer hours and gets you to market really fast. And when someone complains that your website doesn’t perform for shit, you just blame their hardware, right? Externalize those costs.
There’s also The Core where the hacker says “yea, I can do it”, demands unlimited hot pockets and all of Xena Warrior Princess on VHS, then locks himself up in his room.,


This, I think, is the real promise of vibe coding tools—that you can learn how to code without a CS degree.
I learned to code without a CS degree. I used a for Dummies book, W3schools, Stack Overflow and the good guidance of a senior developer. Learning to code was never the issue. And I think poking around in the code, experimenting, stumbling on unrelated but helpful answers, before finding your problem, are all great ways to become experienced that are prevented by the use of a tool like Bolt. If Bolt produces code that confuses experienced developers, how is the vibe coder supposed to learn anything useful from it?
febr//uary skips the second box, so I think they aimed to have an equal number of options in each column.


If there’s a clear pattern, regex is your friend. I use it for complex find-and-replace actions, or to generate code based on a template and a list of values (find a value, replace it with the template including the value). Full control over the output, more reliable even than manual copy-pasting.
Yeah, I had some webpages archived and tried to use javascript to clean them up, but I ended up parsing it as xml through Powershell instead. I’ve done something with Python and BeautifulSoup too, a long time ago. Both much easier than JS, but somehow JS is designed to work with web pages? Make it make sense.


I find it really easy to tell the difference between a human being polite, neat and well-spoken, and an AI being the same (but soulless). I don’t know if I could put it into words though, there’s just something about AI that lacks subjectivity? A human would phrase something in a certain way and stick with it, because that’s the way they experience it, while the AI takes a phrasing at random, only caring about gaining lexical and grammatical points.
I also think humans overestimate their ability to write clearly and correctly. There’s always some noise in there, even if they’re going full corpo-speak. Unless it’s written-by-committee meaningless corpo, but then I don’t even read it beyond the first sentence. It’s very obvious when someone has tried to strip all meaning from a sentence and the result is not far from AI.
People use the internet without ad blockers??


It’s definitely possible to store the stories in columns, but there’s also very little reason to do it. I think filepath in SQL and the stories in separate files in whatever format makes the most sense (html, txt, epub). If you ever want to search the stories for keywords, write a python script to build indexes in SQL, performs much better than doing LIKE on a maxed out varchar column.
I was thinking maybe Elastisearch, but I don’t know how much work that is to set up. For a hobby project, writing your own indexer isn’t too hard and might be more fun and easier to maintain than an industry-grade solution.
If your remote is completely empty and has no commits, you can just push normally. If it has an auto-generated “initial commit” (pretty sure Github does something like that), you could force push, or merge your local branch into the remote branch and push normally. I think cloning the repo and copying the contents of your local repo into it is the worst option: you’ll lose all local commits.
There’s one valid use-case for LLMs: when you have writer’s block, it can help to have something resembling an end product instead of a blank page. Sadly, this doesn’t really work for programming, because incorrect code is simply worse than no code at all. Every line of code is a potential bug and every line of incorrect code is a guaranteed bug.
I use an LLM with great success to write bad fanfiction though.
You can save time at the cost of headaches, or you can save headaches at the cost of time. You cannot save both time and headaches, you can at most defer the time and the headaches until the next time you have to touch the code, but the time doubles and the headaches triple.
You can do either, but you usually do neither. The best way is to throw a new exception for your situation and add the caught exception as an inner exception. Because rethrowing resets the stack trace, removing the context from an exception message that is often pretty vague, and “bouncing” with throw; doesn’t tell the next exception handler that you already handled (part of) the exception.
I love regex and I use it a lot, but I very rarely use it in any kind of permanent solution. When I do, I make sure to keep it as minimal as possible, supplementing with higher level programming where possible. Backreferences and assertions are a cardinal sin and should never be used.
Did you know that the type of a variable is determined by the frequency of plasma oscillations among the objects valence electrons?
Have to add that we work exclusively in strongly-typed languages. Kinda want to see how it plays out, but I can’t help but argue with him, so I think I’ll just go.
I have seen this, but with “Y”, “N” instead. That was the way the database stored it and the way the UI displayed it, but everything inbetween converted to boolean instead, because there was logic depending on those choices. It wasn’t that bad, all things considered, just a weird quirk in the system. I think there was another system that did just use those strings plain (like WHERE foo = 'Y' in stored procedures), but nothing I had to work with. We just mapped “Y” to true when reading the query results and were done with it.
(And before anyone asks, yes, we considered any other value false. If anyone complained that their “Yes”, “y” or empty was seen as false, we told them they used it wrong. They always accepted that, though they didn’t necessarily learn from it.)
Nulls are useful, but you can’t work with them in Java. Anything can be null at any time without warning, even when you have absolutely no reason to ever allow a null. Null safety as a language feature gives you the choice to allow nulls when they make sense or guarantee a value when needed. It saves you checking for nulls in the core of your logic when you already ruled them out at the boundary and enforced it at compile time.