![](/static/253f0d9b/assets/icons/icon-96x96.png)
![](https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png)
I’m talking about using the ChatGPT API to make a chat bot. Even when the user’s input is just one sentence, it can cause ChatGPT to forget its prompt.
I’m talking about using the ChatGPT API to make a chat bot. Even when the user’s input is just one sentence, it can cause ChatGPT to forget its prompt.
Is it possible to be a productive programmer with slow typing speed? Yes. I have met some.
But…can fast typing speed be an advantage for most people? Yes!
Like you said, once you come up with an idea it can be a huge advantage to be able to type out that idea quickly to try it out before your mind wanders.
But also, I use typing for so many others things: writing Slack messages and emails. Writing responses to bug tickets. Writing new tickets. Documentation. Search queries.
The faster I type, the faster I can do those things. Also, the more I’m incentivized to do it. It’s no big deal to file a big report for something I discovered along the way because I can type it up in 30 seconds. Someone else who’s slow at typing might not bother because it’d take too long.
GPT-3.5 seems to have a problem of recency bias. With long enough input it can forget its prompt or be convinced by new arguments.
GPT-4 is not immune though better.
I’ve had some luck with a post-prompt. Put the user’s input, then follow up with a final sentence reminding the model of the prompt and desired output format.
Doesn’t that also mean that ONE malicious person can get traffic off their local street or hurt a competitor’s business?
Just like moderating Lemmy, effectively policing user-generated content is a huge challenge.
I don’t think we know that yet, and I think the discovery will be interesting.
How many reports were there? Were they credible? What other sources of truth did Google consult in deciding to ignore those reports?
Google gets lots of reports and needs to filter out spam, and especially malicious reports like trying to mark a competitor’s business as closed, or trying to get less traffic in your neighborhood for selfish reasons. It wouldn’t be reasonable for Google to accept every user suggestion either.
So if Google reached out to the town and the town said the bridge is fine, then it’s not Google’s fault. If they ignored multiple credible complaints because the area was too rural to care about, that might be negligent.
I’m a fan of randomizing the test order. That helps catch ordering issues early.
Also, it’s usually valuable to have E2E tests all be as completely independent as possible so it’s impossible for one to affect another. Have each one spin up the whole system, even though it takes longer. Use more parallelism, use dozens of VMs each running a fraction of the tests rather than trying to get the sequential time down.
I think the reality is that there are lots of different levels of tests, we just don’t have names for all of them.
Even unit tests have levels. You have unit tests for a single function or method in isolation, then you have unit tests for a whole class that might set up quite a bit more mocks and test the class’s contract with the rest of the system.
Then there are tests for a whole module, that might test multiple classes working together, while mocking out the rest of the system.
A step up from that might be unit tests that use fakes instead of mocks. You might have a fake in-memory database, for example. That enables you to test a class or module at a higher level and ensure it can solve more complex problems and leave the database in the state you expect it in the end.
A step up from that might be integration tests between modules, but all things you control.
Up from that might be integration tests or end-to-end tests that include third-party components like databases, libraries, etc. or tests that bring up a real GUI on the desktop - but where you still try to eliminate variables that are out of your control like sending requests to the external network, testing top-level window focus, etc.
Then at the opposite extreme you have end-to-end tests that really do interact with components you don’t have 100% control over. That might mean calling a third-party API, so the test fails if the third-party has downtime. It might mean opening a GUI on the desktop and automating it with the mouse, which might fail if the desktop OS pops up a dialog over top of your app. Those last types of tests can still be very important and useful, but they’re never going to be 100% reliable.
I think the solution is to have a smaller number of those tests with external dependencies, don’t block the build on them, and look at statistics. Sound an alarm when a test fails multiple times in a row, but not for every failure.
Most of the other types of tests can be written in a way to drive flakiness down to almost zero. It’s not easy, but it can be doable. It requires a heavy investment in test infrastructure.
Check out Linear. The startup I was at nearly switched to Jira and then thankfully when a bunch of us protested, we tried Linear and ended up really loving it.
The plan to deprecate Chrome V2 extensions has been constantly postponed again and again for years now. There is NO SCHEDULED DATE for this to happen currently, and when it is announced it will be more than 6 months out.
Source: https://groups.google.com/a/chromium.org/g/chromium-extensions/c/zQ77HkGmK9E/m/HjaaCIG-BQAJ?pli=1
If Google really wanted to kill ad blockers, they would have done this years ago.
They don’t. They want to force ad blockers and other similar extensions to use more efficient APIs that don’t slow down the web. Extension developers overall (not just ad blockers) aren’t happy with the changes, so they’re still working on the APIs.
OK, let’s say you’ve got a bunch of regexes in a source repository that need to get modified frequently. It can be difficult to code-review complex regexes, and even harder to code-review changes to an existing regex.
Something like this might actually help. A change to a complex regex might actually produce a more clear diff of a subset of lines.
Also, I think being able to comment in the middle of a regex would be super handy for that type of code.
Yeah, kids are exhausting. I have way less time for personal projects.
First, don’t be afraid to take time off when your kids need you. Kids get sick, kids have bad days. Family comes first. If you’re responsible about communication, your job can handle you taking time off when needed. Don’t let your job add to your stress more than necessary.
Then, you have to learn to redefine productivity and impact. I used to focus on more tangible measures of accomplishment like the number of commits, number of bugs fixed, and so on. But after a while I realized that nobody cared about those things when it came time for performance review. In fact, sometimes I got more kudos for a little side project I spent less than a day on, than work that took me months.
So, I learned to focus on what has the highest impact. I don’t overload myself with tasks so that I have lots of time to mentor, to do cleanup work, and to think about the big picture. If my “regular” tasks are going to take all of my time, that’s too much - I ask my manager what’s the highest priority and I push some things back. The “big picture” thinking allows me to sometimes make some great insights and do work that wasn’t asked for, but makes a big difference.
If you do that, you also have plenty of time to learn new things on the job. Rather than personal projects, do side projects related to your work. Try rewriting something in a new language you wanted to learn. Try out a new library or framework. It’s okay if some of them are throwaway - turn them into a useful proof-of-concept or demo. It’s an opportunity for you to learn and to do something useful for work.
And don’t forget to enjoy your kids and take lots of pictures and videos! Oh, and write down all of the funny things they say. They’re only young once.
That hasn’t happened yet. Most likely they quantized GPT-4 more. It’s still based on the same training data.
I totally feel you. I’ve been in a position where the only way I could get any coding done was by working overtime.
I think like others I’ve found that it’s more a function of how long I’ve been on the same team, not how senior I am.
When I switch companies or switch teams within the same company, it’s a great opportunity to get a “reset”. I’m no longer in charge of anything, I’m no longer the go-to person for important knowledge. I get to spend a lot more time coding and problem-solving. After a few years it gets harder and harder.
I think the trick is to find the right balance. After you’ve been on a team for a few years is often the best time to have the biggest impact and get a promotion or bonus. But it also means your day becomes the most consumed with meetings and you spend less time building, so eventually you might want to shift to a new team to get a fresh start.
Can you elaborate on what happened when you tried to search? I’ve never had trouble.