Gemini 3.1 is surprisingly bad at coding, especially if you consider that they built an IDE (Antigravity) around it: I let it carefully develop a plan according to very specific instructions. The outcome was terrible: AGENTS.md ignored, syntax error in XML (closing tag missed), inconsistent namings, misinterpreting console outputs, which where quite clear ("You forgot to add some attribute foobar").
I‘m quite disappointed.
1. Make sure you are using Opus model. Type /model and make sure Opus is selected. While many say sonnet is good, too, I’m not too convinced. Opus is the first model that actually convinced me to use AI as my daily driver - and I’m a developer for about 20 years.
2. Make the tasks as small and specific as possible. Don’t prompt „create a todo app with user login“ but „create a vue app where users can register, don’t do more than that“, then „build a user login“ then, „create a page to create todo items“, then „create a page to list todo items“, then „on list page, add delete functionality“ - and so on, you get the idea.
3. beware the context size. Claude code will warn you if you exceed it, but even before: the higher the context window, the higher AI will miss things. If you start a new prompt that doesn’t require the whole context of the previous one, type /clear.
4. build an agents.md or Claude.md. /init will do that for you, but it will just create a Claude.md with information that it might think are important - but easily miss things. You know best. It often also includes file and directory structure, while it could easily find out again (tree command) without that info in agents/claude file. Still I recommend: let Claude create that file, then adjust it to your needs. Only add important stuff here. The more you add, the more you spam the context. Again, try to keep context small.
5. if Claude needs a long time for finishing a task or did it wrong at first attempt, tell it to update the Claude.md with information to not do the same mistakes the next time again.
6. make sure you understand the code it created. Add conventions to agents.md that will make the code more readable (use early returns, don‘t exceed nesting level of 3, create new methods with meaningful names instead of inline comments etc.)
In German „Swiss cheese“ simply means „Schweizer Käse“ or „Käse aus der Schweiz“ - but you’ll usually still find the exact type like Emmentaler on the label and packaging.
So, as a German, it’s a bit amusing indeed.
Typescript is a workaround.
It exists because web apps got more complex and browsers only support JavaScript.
So developers need to stick to JavaScript, but they need typing, therefore TypeScript has been implemented.
It’s an exception where it made sense to do so. For all other languages: if you use some dynamic language and you need typing, either wait until the language supports types natively (PHP‘s approach) or „just“ change the language.
The additional complexity of an additional typing layer is huge. The complexity of TypeScript - and in general JavaScript‘s ecosystem - is incredibly huge.
The biggest issue we have in software development is not that a language isn’t elegant, or you can’t write some some in 3 instead of 15 lines… the biggest problem is complexity. Developers too often forget about that. They focus on things that don’t matter. Ruby vs Python? It doesn’t make a real difference for web apps.
If you want a language and ecosystem with low complexity try Go. It’s not perfect. It’s not elegant. Or PHP, which has a lot of drawbacks, but overall less complexity. I don’t say Go or PHP are the best languages out there, but you should try them to get a picture - to decide for yourself what’s important and what not.
I can confirm, and for me - even if I want like Kagi - I can’t tolerate it. I’ve read it depends on the Country you’re in. In Germany, where I’m from, loading time is up to 3 seconds - while on Google it’s almost instant.
You definitely want to extract code into functions, even if you don’t need to reuse it. Functions names are documentation. And you reduce the mental load from those who read the code.
Block Universe.
The more you think about it, the more probable it seems.
Why should a universe pass time like a movie, if all moments could exist simultaneously? If there is no time, and it’s just a simulation formed in our brain, there doesn’t have to be a beginning nor end.
I’m not the one you were referring to, but I have similar experiences. I’m living in Germany, and most bigger companies here have such issues. I also worked for companies in Netherlands and Island, so I assume it’s an European, if not global problem.
No one is concerned about keeping people busy. It’s a systemic problem. And there are multiple reasons for it. One reason is that the bigger a company grows, the more hierarchy is necessary. But increasing hierarchy will lead to people doing the work are not the people that are most responsible for it. So we have people that should do the work but they aren’t too motivated because they are not responsible enough - they are too low in hierarchy level. And we have people that are responsible but don’t do the work. They delegate. If something goes wrong or takes too long, they will have enough time and skill to find an excuse.
Another issue is that you need more people to get specific things done. At some point in time these things have been done, and you actually don’t need the amount of people anymore. But you can’t quit them because of worker’s laws. You maybe even don’t want to quit them because you think you still need them. People, of course, tend to find reasons why their own work is important. And they will communicate that. And the chance is good you’ll believe that and don’t question it enough.
There are more reasons for that. But it’s a fact that in many, many companies the economical results of a lot of employees is almost zero. If you don’t believe this, just google the biggest companies in Germany, pick one, apply for an office job and start to work there. It won’t take a month until you’ll find out. Btw. I don’t want to criticize the situation too much. Probably it’s good that people are employed, even if they don’t work efficiently. Otherwise the unemployment rate would be much higher. Then again, Germany‘s economy is flatlining and a crash is not unlikely.
Why is this posted on HN, even twice? It’s not like other news sources won’t announce this. The pope had its good and bad sides, but in the end we should remind ourselves he’s just a human being. It’s OK for HN to inform about people here, but shouldn’t they be somehow related to any topics HN touches? The popes was just a guy who somehow got popular because of some quite successful religion - but I’d personally prefer keep religion out of HN.
In Germany you have quite high minimum wages. Unions and works committees are quite common. Labor protected laws are quite strict. Sure, not every job is fun, but living with low income is not as bad as in the US. So, are people better at their jobs? Nope. Do people work better just because you pay them better? Nope. Should people get paid better, especially those with shirty jobs? Yes - of course. But there’s no reason to believe this would improve quality of work.
I experienced similar with logging in into outlook.com and the teams app on Mac.
Accounts from different companies were mixed up. If I tried to login with my account from company A I got redirected to the login page of company B. It’s a real mess.
I don’t say to get rid of the database. Of course it makes sense to store the comments there. I say get rid of 1) the database events and 2) the Ruby logic to listen to these events. This can be done by the Ruby saving logic. It’s just over engineering to use events.
This has to be a joke.
If the Ruby implementation that saves the comment would simply contain the logic to save the static HTML file - the obvious implementation - no Postgres events are required.
In Germany it’s not unusual that you need about 3x the time by train instead if you go by car.
You can’t force those who have to commute to go by train.
You have to force employers to provide (maybe not only provide, but enforce) remote work options for all the jobs where it’s simply not necessary to be on-site.