HN user

kgilpin

487 karma

https://dev.to/kgilpin

Posts4
Comments195
View on HN

One of the biggest gifts in life is to find a true passion. And for every passion there are two sides to the coin - the joy and the suffering. The agony and the ecstasy. It’s a gift to care so much; and it inspires.

Yes. For someone who’s already financially comfortable, it’s nice to be able to stay in the game, keep working with great people, and make some money without having to deal with burnout.

Lots of people in tech like their jobs; they just like other things too. Personally I don’t know why I would want to stop working completely. It sounds boring. I love to build. Why ever stop?

Claude code does utilize both the full Sonnet model and the lighter Haiku model in an automatic way. When you exit a Claude code session, it gives you the stats (tokens, cost, etc). I expect there’s a way to get this in-session as well.

In the US, “Junior” pilots typically work as flight instructors until they have built up enough time to no longer be junior. 1500 flight hours is the essential requirement to be an airline pilot, and every hour spent giving instruction counts as a flight hour. It’s not the only way, but it’s the most common way. Airlines don’t fund this; pilots have to work their way up to this level themselves.

In Europe it’s different.

I feel the same way about code generation vs code review. Everyone knows there are deep problems with LLM generated code (primarily, lack of repo understanding, and proper use of library functions).

Deep, accurate, real-time code review could be of huge assistance in improving quality of both human- and AI-generated code. But all the hype is focused on LLMs spewing out more and more code.

Today, hacker news solves air traffic control with either:

a) More money

b) Video game technology

To truly get this problem, you really need to be in it. Either as a pilot or as a controller.

Watching threads like this reminds me that I have expertise within a couple of specialized domains and that’s it. Beyond those, I’m a tourist.

I’m curious if the OpenRewrite project has any value to you in keeping your Java stuff up to date?

(I’m not affiliated with it; just curious about strategies for upgrading and maintaining apps that use big frameworks.)

This is what’s needed to get the most out of these tools. You understand deeply how the tool works and so you’re able to optimize its inputs in order to get good results.

This puts you in the top echelon of developers using AI assisted coding. Most developers don’t have this deep of an understanding and so they don’t get results as good as yours.

So there’s a big question here for AI tool vendors. Is AI assisted coding a power tool for experts, or is it a tool for the “Everyman” developer that’s easy to use?

Usage data shows that the most adopted AI coding tool is still ChatGPT, followed by Copilot (even if you’d think it’s Cursor from reading HN :-))

I wrote a SWE bench solver. The SWE bench issues are on mature projects like Django.

The objective of my solver was to get good solutions using only RAG (no embeddings) and with minimal cost (low token count).

Three techniques, combined, yielded good results. The first was to take a TDD approach, first generating a test and then requiring the LLM to pass the test (without failing others). It can also trace the test execution to see exactly what code participates in the feature.

The second technique was to separate “planning” from “coding”. The planner is freed from implementation details, and can worry more about figuring out which files to change, following existing code conventions, not duplicating code, etc. In the coding phase, the LLM is working from a predefined plan, and has little freedom to deviate. It just needs to create a working, lint-free implementation.

The third technique was a gentle pressure on the solver to make small changes in a minimum number of files (ideally, one).

AI coding tools today generally don’t incorporate any of this. They don’t favor TDD, they don’t have a bias towards making minimal changes, and they don’t work from a pre-approved design.

Good human developers do these things, and this is a pretty wide gap between adept human coders and AI.

I like how you put the context and prompts into the foreground. In so many tools, it’s invisible. We all know that context and prompts are there - the operation of LLMs is well known. Yet tools try and hide this and pretend that they are magic, instead of exposing control points and handles for the developer to use.

I think people / the market have gotten a little too excited about something AI is actually pretty bad at - making changes to existing code (which is, after all, most of the code).

AI software devs don’t understand requirements well, and they don’t write code that confirms to established architecture practices. They will happily create redundant functions and routes and tables, in order to deliver “working code”.

So AI coding is bunk? No, it’s just that the primary value lies elsewhere than code generation. You can stuff A LOT of context into an LLM and ask it to explain how the system works. You can ask it to create a design that emulates existing patterns. You can feed it a diff of code and ask it to look for common problems and anti-patterns. You can ask it create custom diagrams, documentation and descriptions and it will do so quickly and accurately.

These are all use cases that assist with coding, yet don’t involve actually writing code. They make developers more knowledgeable and they assist with decision making and situational awareness. They reduce tedium and drudgery without turning developers into mindless “clickers of the Tab key”.

I have already been using iPhone Passwords for all my passwords. Anyone else doing this? It autofills passwords on the phone and I can copy a password from the phone Passwords and paste it on my MacBook.

Whenever I do a password change, I have to do it on my phone, so that the new one will be stored. But that is fine with me. I’m happy to do that in exchange for being freed from “password managers”.

When AI is used properly, it’s doing one of two things:

1) Making non-controversial fixes that save time and take cognitive load off the developer. The best example is when code completion is working well.

2) It’s making you smarter and more knowledgeable by virtue of the suggestions it makes. You may discard them but you still learn something new, and having an assistant brainstorm for you enables a different mode of thinking - idea triage - that can be fun, productive, useful and relaxing. People sometimes want completion to do this also, but it’s not well suited to it beyond teaching new language features by example.

The article makes an interesting assertion that AI tools “fail to scale” when the user has to remember to trigger the feature.

So how can AI usefully suggest design-level and conceptual ideas in a way that doesn’t require a user “trigger”? Within the IDE, I’m not sure. The example given of automated comment resolution is interesting and “automatic”, but not likely to be particularly high level in nature. And it also occurs in the “outer flow” of code review. It’s the “inner flow” that’s the most interesting to me because it’s when the real creativity is happening.

A study on Copilot shows 55% faster completion of a programming task [1].

Now we as developers know that coding, and in particular, coding of a de novo feature, is only a fraction of our job. Actual typing in of code is estimated to be between 10 and 60% of the software developer’s job [2].

1] https://github.blog/2022-09-07-research-quantifying-github-c...

2] https://www.microsoft.com/en-us/research/uploads/prod/2019/0...

Make your own!

https://store.flitetest.com/ft-simple-cub-mkr2/

This one’s technically foam, but it’s a very cardboardy foam. With a little bit of carbon fiber reinforcement (provided) it’s surprisingly durable and MUCH simpler and easier to build that a balsa or fiberglass airplane.

After building and flying one of these, I can certainly believe that cardboard/foam construction is great for a “disposable” (single use) airplane or even for a couple of missions - knowing that the life span will be short.

Are there any tools that will go from a whiteboard sketch to a format like Mermaid, PlantUML or even SVG (as boxes, lines and text)? I assumed that with the AI revolution /s there would be such a thing but I haven’t found it…

What we do with appmap.io is to depict only your own code and not dependencies. Also, each diagram depicts a runtime trace and not just static imports. It produces a more focused diagram, and it also clearly illuminates factors like HTTP client and server requests, and SQL, that static analysis can’t see. The data can be depicted as a dependency map, sequence diagram, detailed trace, and flame graph.