skysight-inc/HackerNews huggingface dataset:
I very much believe in this direction both as a practicing data scientist, and working daily with folks who kinda know SQL or Python but are really more experts in other stuff, like security, k8s, supply chain, etc.

For a slightly different take focused more on that kind of user, eg, connected to their operational databases like Splunk, elastic, neo4j/Neptune, & databricks, and want the choice to use directly or embedded in their existing tools & automations, we are getting ready for more cohorts on louie.ai cloud, and would welcome folks curious for their team. Early enterprise & gov teams on self-hosted louie.ai face the same thing every day.. it really changes how I feel about programming.

While a lot more to do, half a year of working with LLM-augmented querying & coding already feels like a weight has been lifted from my shoulders that's been there for decades yet I never realized things can be different. Ex: "Try that last cell again, except this time trim the IP columns to the first 2 octals, and then visualize how servers connect together in a GPU graph network viz." I can in theory code the sql/spl, pandas, and python viz for that... and figure out the precise syntax/lib/code tweaks to get there... Or just write that high-level edit as if I was pairing with any reasonable person!
TIL about Emacs elisp benchmark-progn and benchmark-run
I loved clippy, and found it super helpful. Granted, I was a child and fascinated with the idea of artificial intelligence, which clippy was the closest thing to at that point in time. It was a useful tool, and it's at times irrelevant suggestions got me exploring things I would never have learned through school or casual exposure. All in all it was a fun, quirky, at times useful and all around great tool, just not for the target audience.
For the kind of things I do with bash scripts, the python standard library is usually more than enough.
> if they do, they're a horrible person

Very bad gamble if you need the job and a bunch of people just got laid off. If you can afford to move jobs, you would have done it already after the layoff.
why does any of this even matter?
I mostly agree with the points but I hard disagree with point number 3.

Clean code makes the project more easily maintainable. We generally try to keep a standard in code quality (and I would say 98% of the codebase we touch is well written). We also try to schedule refactoring rounds (but that doesn't always happen because of time constraints).
There's two levels here:

1. The screenreader transforms the visual structure into something understandable for the human behind it

2. The human tries to make sense of it and maintain a mental model of what the screenreader is presenting to them

Semantics are key for #1, but #2 can still lose track of what's happening on a complex form. For that, it helps if the human can keep trying, and fix whatever they missed on the next pass.
and you never know which party you're trusting when you download those thousands of unvetted code into your build dependency
Future maintainers, who could be you. It has happened to me a few times, and I thanked my past self every time.

It doesn't even have to be clean code. Sometimes I'll even settle for understandable code. In my experience, however, few people care about this. My most common comment in code review is "add doc" or "add explanation"
Nice! thanks for the reference
Call/cc is generally considered a bad primitive now, superseded by delimited continuations that compose nicely.
> Meetings are an important part of the software development job.

Imagine the folks building the Linux kernel or other popular, successul, and mission critical software projects sitting in meetings all day long.

I genuinely think that meetings are the only way management can justify their existance and therefore commercial projects consider them as an "important part".
With it's shared memory, 8GB on an MBP isn't even analogous to 8GB on a PC... irrespective of how efficiently it is utilised.
Ohh. I had been looking for something like this. I own Wallpaper Engine but I needed a replacement for it on Linux. Have you studied porting this to Linux as well?
Dupe (https://news.ycombinator.com/item?id=38184000)
> There are a lot of formulas on how to do estimates, and everyone has their own rules. I also have my own rules.

The actual way to produce estimates can be found in the excellent book Thinking Fast and Slow by Daniel Kahneman: you have to consider a previous project (or, better, several of them) of roughly similar in size and scope, and use that as an anchor for this estimate. You're allowed to add or remove a bit because of a slight difference in complexity. But the golden rule is never to say that this other project doesn't count because, although it seemed similar at the start, it encountered unexpected problems. That's the whole point!

If you haven't worked on a project that large (or kept good enough notes about how long it took), well, tough luck, you can't produce an estimate, any more than someone who doesn't know any software dev at all can.

Looking back at a project with this in mind I was surprised to find the distribution of subtasks (into 3 big buckets of "main complex logic", "simple GUI", "reports/presentations") was roughly equal rather than about 80% on the first one as I suspected. There's no way a rule like "add 40%" can help you with something like that.

The book discusses a great example where they were preparing a university syllabus to teach various biases, including the underestimate bias and this very technique to avoid it, and they still underestimated how long it would take to prepare the course (even after being given information about how long previous courses took to prepare!).
And it still works on Xbox One/Series consoles! It's included in Rare Replay too which is excellent value especially on sale.
You want to provide any examples of what you mean or just leave a statement saying "jq is the worst ever"?
The problem is it's routed through a central server.

> all smart home devices had to go through a hub

I think ultimately this is the only way to get it to even work properly, let alone last long enough that the next purchaser of a smart home can use it reliably. But it will also slow innovation and Big Tech will hate it.
True. But you should also write it for your fellow developers/engineers. If the culture among engineers in your job discounts the value of clean code, you're probably entering a world of pain.

Sure, you should not obsess over clean code, as it does not directly produce value. You should also not expect your manager to understand its value. But if your fellow engineers frown upon efforts to improve code quality, start looking for your next job. The mental drain is just not worth it.

Esentially, where the clean code is appreciated, mediocre engineers/developers will eventualy acquire "guru" status, just because they happened to be hired a year or two earlier than the better ones. And will often be unfriendly to anyone "threatening" their status.
That's probably because HTML wasn't intended to be the part where you prevent against double submission. The backend should probably handle that.
These aren't hard to swallow at all - how about this:

Good requirements do not exist -
Writing good requirements is months of work -you have to interview business stake holders, ask challanging questions, you ahve to involve industry experts and have developers think, not code.

Its safe to say this almost never happens.

Agile is an insidious ruse - its popular because it frees management from having to commit to planning and discovering requirements. However management still expects engineers to provide them outputs of waterfall - accurate estimates, architecture, etc.

CV driven Architecture is common

Engineers have a complexity addiction and feel inadequate and impotent if they are 'just building' something simple.

So simple projects get bloated to inckude Kafka, kubernetes or some other buzzword of the year. Instead of discussing business problems and missing requirements, engineers prefer to discuss technical complexity. So they often commit to adding technical complexity before they've understood business complexity.

Then when they hit business conolexity, they have no mental capscity or bandwidth left to address it

Communication between business and Eng is usually broken

To arrive at good design decisions, one person needs to have great understanding of business and technology. In most projects, this person does not exist. Design is riddled with qeustions like 'Do we really need to have feature X, it doubles complexity but only 5% of users would even care". To even understand that, business needs to communicate commercial information to developers, or developers have to educate business. This rarely happens, and so these decisions are usually not even identified
Slightly less irritating than garage door, but:

I’ve been going to my baseball team’s website recently to buy stuff because they won, and a 5 second video ad pops up every time you go…

I’m here, I want to spend money, and you want to show me ads?
Der Judenstaat
Incidentally this is why I think an O'Reilly is one of the most cost-effective subscriptions that I pay. It is not cheap, for sure, but I can find most book recommendations like this on it.
My urologist in Canada recommended a procedure that universal healthcare doesn’t cover. I paid out of pocket at the clinic where he does these procedures. I’m glad I got it.
And would you care to link to some of the tonnes of research? It already sounds dubious. Ideal is not the same as most attractive fire instance. But let's see the science you're basing your generalising statements on.
I often find myself at totally random moments thinking about problems related to work. It is often at times that I have been away from the laptop, that solutions pop-up in my mind, for a nasty problem. Often it is form of attacking a problem from a different direction.

For me turning of my work laptop is not enough to disconnect from work. Most of the thinks that I worry about while being at home are not about technical aspects but about non-technical aspects of the job: dealing with managers, colleagues, and project organisation.
https://orbstack.dev/
That's also part of the difficulty of having multiple girlfriends at an advanced age. If you have N girlfriends and M jokes, you should maintain a table sized N*M to keep track which joke already told to which girlfriend.
This is in general hopeless, you will not be able to anticipate where the business moves over the coming years. Does not even have to be the business itself, could also be the regulatory environment or whatnot. When you decide to not write your application from scratch, you will always have the risk of running into limitations eventually. If it is low level stuff like your O/R mapper or your logging framework, that is no big deal, but if it is some high-level application or business framework, then things might get tricky.

In one of the projects I worked on there suddenly came the requirement that they need metrics on how long people were working on different screens, completely unrelated to the actual business. No big deal in general, just put some code in some base class to collect the current time on enter and on leave. But the application framework we used just does not allow this, you can not modify the base classes used for screen, you have to add code for the enter and leave event on each screen individually. It just never occurred to the people that made the framework that you might want to do the same thing on all your screens and nobody expected that we might ever need this either, until we did.
The point about "incompetent people" is a bit harsh. "Competence" is rarely boolean - some people are smarter, some are less smart, but may have other qualities (e.g. being more thorough), some may not be that familiar with a certain technology etc.; that code you have to work on may look the way it looks because it had to be adapted several times to changing requirements without enough time to refactor it properly, not because the person who wrote it was incompetent. There are already enough young developers leaving university full of self-confidence thinking they are God's gift to the job market, so maybe a word or two about giving people the benefit of doubt before classifying them as incompetent is in order. That's not to say there aren't really incompetent people, but you should avoid jumping to conclusions too early...
It depends.

The thing about inheriting an older, undocumented codebase is that it often blows up in ways that you least expect; even drawing assumptions about how a function works based on its name can be problematic.
Remember Rule 10: Soft skills over technical skills.
I'm sure the team lead has some qualities.
Well, simply, for senior researchers to stop making big-time publications so high-up on the list to hire people. I know quite a few senior researchers, and they do have some say in it...
If you buy a device that relies on a server connection for functioning, you might legally own it, but it essentially is 'on loan' by the company.

Well, you could always strip it for copper, I guess...
Ultra-high technological society will be all over the solar system.
> Unlike in the 19th century, when weak cavities were shored up by purpose-built pillars, the policy now is to inject concrete to fill up endangered spaces
But which shadow library can I find this book on?
Buying smart home devices with cloud integration also just means that at some point, the manufacturer will declare it obsolete and will rip out support to force you to re-buy every 5-7y.
People said this about GC but then I implemented a WASM interpreter with GC support and it wasn't very hard to do. This FX proposal would introduce... 6 more instructions I think? Not bad. Especially compared to something like the SIMD extension which feels like it's adding a million instructions.
In the words of Terry Pratchett, "It’s indoor work with no heavy lifting". And it pays astonishingly well. Which are useful things to remember when it sucks a bit.
Ok, this is at least partly exculpatory.
- Truly controllable depth of field without software artifacts

- Better IQ

- Use with flash

- A variety of focal lengths that the iPhone doesn't have for more flattering perspective (200mm and up)
2023 on track to be the hottest year ever
There are, but the lack of reserve requirements make the widespread idea that banks are lending other people's deposits out is even more wrong.

The effectiveness of these "stress tests" remain to be seen. There was widespread trust for the "financial innovations" "pricing risks" until the system turned out to be a total scam.
Yes, I think the world would be better if the internet were slower...
Parallel discussion: https://news.ycombinator.com/item?id=38188614
The last point is the most important one, last of course, as our industry does not respect communications, despite it being the main cause of all our irrational management deadline issues.
I couldn't agree more with this list.
While I was at university,I used to imagine software engineering job like a place where like minded people talked all the time about algorithms,new technologies etc. A place where senior engineers would guide/mentor you, where you could take time to create the best code/solutions... :D
For me, discovering that soft skills often are more valuable than tech skills was a huge wake up call.
The points in this article match what's in the book "Poems for Software Developers". https://www.amazon.com/dp/B0CMNR4G39 Like the article says, you'll probably not get a greenfield projects, you are going to spend a lot of times in meetings, and you aren't going to just be left alone to code. You will have to work with people on a team. Knowing the technical aspects of programming is one challenge, but another challenge is coordinating the effort of developers to drive to a goal, on time, and according to requirements. That coordination effort is a lot of what the experience working as a software developer is all about.
> After writing countless emails to convince him to fix his code, and wondering why they wouldn't just fire him and save everyone else some time

I do wonder whether this was escalated, to either the previous team lead, some other manager, or just a shouting match in the corridor.
They can be upgraded to Sonoma. It's just a bug that has already been addressed...
There is also conflicts of interests, some of those Members of the Senate failed to disclose they own stocks in Intel.
May I ask what course are you taking? I am interested in learning more background on semiconductors so I'm curious what you are studying.
Mostly agree, but i think the more seniority you get in your company the less you will deal with these issues and of course changing jobs helps. So basically you might encounter all of these but not necessarily.

And starting from scratch and college is basically the same point
Maybe, but the people I have worked with have been pretty heavily bimodal, especially by the senior level - many people in the "competent" bucket varied a bit but generally produced workable code (maintainable as well as works now). But there is a distinct class of senior engineer that produces awful code that is hopeless to work with later. Most frustratingly, it does actually work for the current task so those outside the system will only see problems with the later devs to work on it.
Low Birth-Weight Paradox
I use ChatGPT paid for at least 75% of my queries. Only reason to venture out into search engine land is to find updated information which often is done by adding reddit to the end of the search.

I'd say Google is in trouble, I mean there is a limit to how many ads you can pack on the first page of results and I'd say they've passed it a long time ago.

In that context Bing + GPT would be more of a winner I think.
11. Perception is reality. Ideas mean nothing if you can't sell them. Providing actual value to the company means nothing if you can't sell it. You will work with people who cause more damage to the company than they bring benefit but are good at selling it. It does not matter what you think about what you are doing, it only matters what other people think. If you can be good technically and be a good communicator, the world is your oyster.

12. Most developers are very wrong about what would bring value to their managers. If you think you are underappreciated for your good work, there might be potentially very simple things that you could change that you aren't aware that could make you much more successful. Your manager might care less about how elegant your solution is but might remember you were two days late with it because he had to explain to his boss why the entire feature got delayed. Every situation is different and there is nobody on your team to help you -- you are responsible for reading the situation and making what is important.

--

And regarding:

> 10) You will profit more from good soft skills than from good technical skills

I would add more. You will profit more from learning an orthogonal skill or field. You can be good developer by just being able to gather requirements and implement them. But you can be extremely valuable, sought after specialist if you know how to do those things AND ALSO know some other field not commonly considered by developers.
2023 State of Climate Services: Health
To be fair, the best team leads I have had were all far from the strongest developers on the team.

The best team leads job isn't to dev, it's to represent the teams interests to the larger organization, and I have known some people who have really gone to bat for us, while at the same time barely being able to code genuinely getting angry at CI for pointing out obvious problems with their code.
Interesting. That might be the best explanation of SoftBank being previously bullish on WeWork investment.
I am confused. Can someone please give some context for this slideshow?

Thanks!
Most people never change defaults, this is for mass surveillance and repression. Its not about some specific activists, for those they hire foreign private security firms and they are using 0-days anyway.
2.6T is shareholders hypothetical money, how they would do that?.
> After writing countless emails to convince him to fix his code, and wondering why they wouldn't just fire him and save everyone else some time, the CTO announced that the guy was now promoted to team lead. :)

It is. commonly known that some good developers make poor leads. Could some poor developers make decent leads?

After all, most serion management has never seen an if-clause, are they any better than this guy?
I think college prepared me for some of those things.

Group projects were a standard thing throughout most of my time there and they introduce you to the messiness of teamwork.

I still recall one semester during which I was in two group projects with another guy and we negotiated who'll be slacking off and who pulling their weight in each of them so that everyone passes.

One friend of mine is still holding a grudge against a mutual friend of ours who was extending the deadlines given to him to deliver his part until it was too late.

I got top marks in a project where two guys just took over seeing that me and the forth guy were incompetent.

I took one for the team when our lecturer said that he won't be giving top marks to everyone, so we need to decide who loses 20% of their points - I volunteered because I knew he personally disliked my choice of technology (NodeJS - we had complete freedom in that project with regards to platform/language) and I just needed to pass.

Overall a learning experience.
“Just fine” here means riddled with debt.
> Imagine the folks building the Linux kernel or other popular, successul, and mission critical software projects sitting in meetings all day long

What do you think LKML is? It's a big continuous asynchronous meeting.
Tips for hiring your first technical writer
I would almost add another point to the list of 10 points: Your worse software engineering colleagues will often get promoted to do something else. Expect them to become your team lead.
I use delimited continuations all the time if the language exposes an interface for them. Coroutines are great to have around. I also use async/await whenever I have to write JS. Seems this proposal really covers the bases for control flow which is great.
I feel like learning something like jq is rendered almost obsolete with the onset of GPT. Spending time learning the syntax of a tool I will use one every so often seems like a waste of mental energy when I can just rely on GPT to spit out whatever I need on demand
> What if you submit the form, but the request never arrives?

I think the proper way is to disable the button, then set the subsequent state of the button depending on the response from the server if any.

submit => check button state and if enabled then => disable button => server response (or not, then timeout) => update button state (along with error message if any)
>New EU regulation is forcing Meta to offer users an ad-free alternative

Which regulation is that?
The error doesn't mean they are using qdrant, but it's possible
Haven't fully wrapped my head around Matter yet, but does that standard solve the problem? It's my understanding that there's no need for specific apps when anything can connect to a Matter device. Or can manufacturers still pull a fast one like this and kill Matter compatibility with an OTA firmware update? Not sure why they'd want to, but I wouldn't put it past them.