skysight-inc/HackerNews huggingface dataset:
Having chewed on this for a while now, my personal synthesis is this: The problem with OO is actually a problem with "inheritance" as the default tool you reach for. Get rid of that and you have what is effectively a different paradigm, with its own cost/benefit tradeoffs.

Inheritance's problem is not that it is "intrinsically" bad, but that it is too big. It is the primary tool for "code reuse" in an inheritance-based language, and it is also the primary tool for "enforcing interfaces" in an inheritance-based language.

However, these two things have no business being bound together like that. Not only do I quite often just want one but not the other, a criticism far more potent than the size of the text in this post making it indicates (this is a huge problem), the binding introduces its own brand new problem, the Liskov Substitution Principle, which in a nutshell is that any subclass must be able to be be fully substituted into any place where the superclass appears and not only "function correctly" but continue to maintain all properties of the superclass. This turns out to be vastly more limiting than most OO programmers realize, and they break it quite casually. And this is unfortunately one of those pernicious errors that doesn't immediately crash the program and blow up, but corrodes not only the code base, but the architecture as you scale up. The architecture tends to develop such that it creates situations where LSP violations are forced. A simple example would be that you need to provide some instance of a deeply-inherited class in order to do some operation, but you need that functionality in a context that can not provide all the promises necessary to have an LSP-compliant class. As a simple example of that, imagine the class requires having some logging functionality but you can't provide it for some reason, but you have to jam it in anyhow.

It is far better to uncouple these two things. Use interfaces/traits/whatever your language calls them that anything can conform to, and use functions for code reuse. Become comfortable with the idea that you may have to provide a "default method" implementation that other implementers may have to explicitly pick up once per data type rather than get "automatically" through a subclass inheritance. In my experience this turns out to happen a lot less than you'd think anyhow, but still, in general, I really suggest being comfortable with the idea that you can provide a lot of functionality through functions and composed objects and don't strain to save users of that code one line of invocation or whatever.

Plus, getting rid of inheritance gets rid of the LSP, which turns out to be a really good thing since almost nobody is thinking about it or honoring it anyhow. I don't mean that as a criticism against programmers, either; it's honestly a rather twitchy principle in real life and in my opinion ignoring it is generally the right answer anyhow, for most people most of the time. But that becomes problematic when you're working in a language that technically, secretly, without most people realizing it, actually requires it for scaling up.
I’m not a Bluesky user, but I contend that it is time to rethink success when it comes to the web. The website I am most active on has fewer than 50k active users, is limited to about that many intentionally, runs on donations and is centered are a single set of interests. It’s almost 10 years old.
Because of two technologies

1) CG-NAT

2) IPv6

You literally can not have one unique IPv4 address per mobile phone.
> I ended up building this:

I'm confused about how you ended up building the opposite of your initial prompt? The initial prompt seemed like puzzle worth solving.
Export/import without masking, a few times a year, with masking generally not required.

This was my first masking in recent times, but I may have half a dozen more times in the next year if/as we do more POCs with full data volumes to figure out price/performance trafeoffs...
> an oopsie that was not easy to fix

Wouldn't it be nice if MS actually did automated testing to a reasonable depth, so stuff like this wouldn't keep happening?

The recent ClownStrike global outage showed a lack of testing before deployment (by ClownStrike).

This latest MS problem just demonstrates it's happening at the source (of Windows) too. It's not a good look.
Oh, I completely agree. In some cases, discussing a draft with your _university-appointed_ tutor before submitting your final essay is even part of the assignment (I believe Oxford/Cambridge humanities work this way), and a great learning experience, and a way for people who can't afford private tutors to get the same kind of coaching (how you get into this calibre of university in the first place notwithstanding).
When I was in college a decade ago, blue book exams in-class were the norm. Seems like a simple solution.
If their situation is that bad they can walk into a local staffing agency and get a factory job that pays 3x the federal minimum wage. Poor pay as a adjunct is a situation they choose for themselves for some reason.
this book is pseudoscience though. https://mynutritionscience.com/p/exercise-weight-loss

there are more good critique online, sorry busy right now to find it.

But please don't spread this myth.
>it's nothing like tiktok other than it being a vertical video feed

Agree. It's interesting that people in tech still don't get that what makes Tiktok so much better than Shorts/Reels is TikTok's semi-manually curated recommendations. They algorithmically detect user interest clusters and manually curate high quality videos for the the biggest clusters.
Dilution is a natural part of the growing process of any startup, and typically if you're experiencing dilution it's because you are gaining something in return - cash, in the case of investors, or sweat equity in the case of employees. There isn't an exact science to dilution/valuation in most cases, especially in the very early stages. You need to sell as much/as little of the company as is required in order to secure the resources you need to be successful. Owning 100% of something that isn't particularly is always going to be worse than owning 1% of a billion dollar company.

That said, there are generally some norms around percentages for co-founders, and employee option grants can be benchmarked against comp data that you can find in Carta or Pave.

Happy to chat more if that would be helpful!
I’m a computer science student at a major university in my country, and I completely agree. I’ve come across many papers that seem questionable, and there are powerful individuals in the scientific community who only accept work from a select group. It feels like these people are building their reputations on what often appears to be fake or unsubstantiated research.
This is a bit of an exaggeration.

I learned cursive, then reverted to print, but when I entered a phase of my life where I needed to write several pages a day I quickly went back to (a custom variant of) cursive because it was faster to write in a legible way than print.

When I rush print it quickly becomes illegible. When I rush my cursive it doesn't look quite as nice as it does when I'm writing steadily, but I can still read what I wrote ten years later.

From what I can tell it works because cursive letters are defined in a shape that lends itself to a quick moving pen. Once you learn that shape (both to write and read), you can quickly get words down on a page and then understand them later. If you just try to slur your print in an unprincipled way your letters distort in ways that make them harder to tell apart.

Now, I imagine someone could develop a slurred print that doesn't have connections between letters, but I'd probably call that a cursive anyway.
> the lack of holding a position for long enough is a career-limiting move.

is it though? I see people hoping all the time. Sure you're bound to run into a situation where somebody will view that as a negative but the only way you can switch jobs every 2 years is if somebody hired you. Which means that by definition, there will be companies that don't care.

I guess in a tightening market you'll have more candidates without job hopping so you can use it as a criteria but if your company has legitimate vertical movement there's probably less to worry about. Of course though if you company staffs its ranks pretty entirely by hiring outside as opposed to internal promotion then you should expect to replace the role in a couple of years.
> If an LLM is tasked with translating a full text to a summary of that text then it is very reliable.

Hrm. I've found LLM summaries to be of... dubious reliability. When someone posts an article on this here orange website, these days someone will sometimes 'helpfully' post a summary generated by a magic robot. Have a look at these, sometime. They _often_ leave out key details, and sometimes outright make shit up.

Interesting article on someones' experiences with this recently: https://ea.rna.nl/2024/05/27/when-chatgpt-summarises-it-actu...
Developer pockets $2M in savings from going cloud-free
As long as we don't have the resources to devote 10+% of the workforce to teaching, the bar will be wrong. The bar was wrong for me during school and university, and I found teachers who gave high weights to homework or even attendance quizzes to be extremely obnoxious.

On setting up expectations for adulhood, I think this is exactly backwards:

> If you got good grades at school with little actual effort and the constant praise for that formed your identity, you may be in for a bad time in adulthood.

Praising a child for effort without results seems way more likely to set them up for a surprisingly bad time as an adult. My personal experience has been that the "good grades/rewards without effort" thing has continued and seems pretty likely to continue through adulthood as long as you go into some kind of engineering.
AWS is seeing growth rates reduce and needs to pump up their revenue.

They're moving onto the "squeeze" part of the cycle.
> Every application is a bit different, but it's not that the PostgreSQL design is a loser in all regards. It's not like bubble sort.

When doing game development in the early 2000s I learned that bubble sort is not a loser in all regards. It performs well when a list is usually almost sorted. One situation when this is the case is in 3D rendering, which sorts objects by their distance from the camera. As you move the camera around or rotate it, bubble sort works very well for re-sorting the objects given the order they had in the previous frame.

To prevent bad worst-case scenarios you can count the number of comparisons that failed on the last pass and the number of passes you have performed so far, then switch to a different sort algorithm after reaching a threshold.
Not really sure if it'd do much. Old GPUs meant you're playing old games. That was fine in a time where consoles stalled the minimum spec market for 8+ years, but this decade left that behind. I imagine that very few high or even mid end gmaes made in 2030 would really be functional on any 2020 hardware.

So the games that work are probably out of support anyway. So there's no money being generated for anyone.
I was recently watching a talk about uv by one of the developers. One thing he said has really stayed with me after the talk - having tooling that works near-instantaneously unlocks whole new category of experiences. Inspired by that I gave Bun a try to see how modern front-end may look like without all the cruft, and it's just insane how much complexity you can shave off that way. For example, I would never imagine just bundling your whole project in a server handler. But it just works and if not for the lack of client auto refresh when files change (backend rebuilds just fine), I wouldn't even be able to notice the difference between that and dev server.
I don't think a method being tied to an instance is the best case for calling it "tight coupling".

OOP can be used to design relatively uncoupled systems.

One of the lessons learned in all these decades is what the grandparent post alludes to, which is distilled into "prefer composition over inheritance". Implementation inheritance (as opposed to interface inheritance) indeed introduces coupling and is therefore discouraged in current advice.
https://www.wired.it/article/piracy-shield-piattaforma-agcom...

the source is in italian, couldn't find one in english that describes how it works but you can just translate it and it's more or less readable, from the source (google translated):

"On the platform, those who hold the rights, for example Sky and Dazn for football, upload the IP addresses or the Fully qualified domain name (Fqdn) , i.e. an unambiguous domain name that allows an online resource to be identified without a doubt, pirate sites that are broadcasting content without authorization , together with forensic evidence certifying the violation . Those who make the request have a few minutes to correct any errors, after which Piracy Shield generates a ticket and includes the report in the list of incriminated sites. Telecommunications and network operators draw on this, and have 30 minutes to block them. The process can also be automatic.

In the case of the Aiip trial, for example, the association has developed an interface, which it will provide to its members, which connects regularly, with a frequency of 1-2 minutes, to Piracy shield , checks the update of the list of sites to be blocked and, if there are new ones, executes the request. The platform also contains a white list of resources that, on the contrary, must not be reset.
Piracy Shield is located on the Microsoft Azure cloud and can be reached by accredited operators only via VPN (virtual private network). At the moment the project aims to tackle piracy of sports content"
Which server? The one you have no idea about because you released your weights and anyone can download/use them at that point?
Interesting! I wonder how this plays into AWS pricing. They charge a flat fate for MBps of IO. But I don’t know if they have a rule to round up to nearest 4K, or they actually charge you the IO amount from
the storage implementation by tracking write volume on the drive itself, rather what you requested.
Roughly 50% of higher education occurs at community colleges. We don’t do research. What you pay for the class does not correspond to what I make. I’m not paid enough to do all the stuff that is suggested in the comments.

The top earning professors in the nation in mathematics are all very good research mathematicians
Must go and read for yummy pasta : https://dietomi.com/creamy-chicken-pasta/
Unfortunately, there isn't an exact science to dilution/valuation in most cases, especially in the very early stages. Ultimately you need to sell as much/as little of the company as is required in order to secure the resources you need to be successful. Owning 100% of something that isn't particularly is always going to be worse than owning 1% of a billion dollar company.

That said, there are generally some norms around percentages for co-founders, and employee option grants can be benchmarked against comp data that you can find in Carta or Pave. And managing your cap table on Carta will help to make things easier in the future for investors/employees/the company to manage the cap table as it grows and changes.

Happy to chat more if that would be helpful!
Agree. This isn't even necessarily an AI problem, people have been cheating/plagiarizing for years. And schools have failed to find or implement a method to prevent it.

I was in high school when kids started getting cell phones with internet access and basically as soon as that happened it opened up rampant cheating even among the best of students. I can only imagine it being much worse nowadays than even 15 years ago when I was in high school.
One part I took issue with is “elite priesthood of Rust and Zig developers” .. I love Rust and hope everyone working on interpreted / high level / “easy” languages knows Rust is accessible and doable for most developers, especially in sync land.

You can benefit from 1000x (!) speed ups just rewriting sync Python in sync Rust, in my measured experience, because the compiler helps exponentially more the more abstract your code is, and Rust can absolutely do high level systems.

The main blocker is when you’re missing some library because it doesn’t exist in Rust, but that’s almost always a big opportunity for open source innovation
Thank you! The thing I find tricky here is choosing the weight. I think maybe one obvious way you would want to weight samples would be for recency. E.g. if I have a table of user login events then I care about seeing more of the ones that happened recently but still want to see some of the older ones. Would the algorithm still work if I converted a `created_at` timestamp to epoch time and used that? Or would I want to normalize it in some way?
It is relative reasonable for them to restrict the equipment that terminates their wiring / fiber / radio signals. If only to reduce the cost of supporting low-skill customers with flaky equipment.

Naturally, "God is Greed" ISP PHB's love to use that as an excuse to charge exorbitant rates for piece-o'-sh*t equipment. And other crap.

It would be wonderful if there were governments so technically savvy that they were able to effectively regulate abuses in this area.
Yes, I agree it is nuanced.

I have a particular stereotypical programmer in mind. The one that rewrites their entire program in X, because it's fast. Not because they understand the data dependencies and run-time performance characteristics of their program.

Typically these folks misattribute the performance gains they experience in such projects to the language itself rather than the tacit knowledge they have of the original program.
Ha, "burn the ships", I love it.
Congrats, great blog and amazing running!

I'm facing a huge moment soon where I will see whether I have made a big mistake that will result in the biggest fail of my life. But I'm still optimistic that it will be the biggest win of my life. My ships are burned!
That doesn't seem right. It's supposed to be up there through to 2030+, and the point of a 2nd supplier is just to ensure there aren't any blocker level problems if a single supplier has issues.
> Do you pronounce the vowel in /var as in "bar" or as in "bare"?

Ha, they're everywhere!
If your question were answered, would it make a difference to this accusation?

Is it that you (I presume) believe since this is common, Elon should then get a free pass? If everyone is doing something unethical, does that make it ethical or at least ethical to ignore?
> This setup is as minimal as I was able to get it: no big booms on my desk to move around, microphones blocking my video, etc. Yeah, I look like a pilot on calls, but the audio quality is amazing. Also, the mic being close to me blocks background noise, and isolates it from my desk. Sometimes my colleagues with podcaster-style mics have issues with mechanical transmission from their desk setups, while I have none.

I kind of went the other direction here.

AT2020 condenser mic into a focusrite scarlett. Mounted on an adjustable boom that's clamped to the far right end of my desk with a shock mount and pop filter (so I can get the thing fully out of my way). Sound comes out some bookshelf speakers sitting below my monitor.

My monitor's raised up a bit on an arm so about 20% of it is above eye level for me with the webcam sitting on top of that. It's a solid few feet away from me, so the angle isn't really noticeable to anyone I'm on a call with. But the angle does mean that I can pull the microphone right in front of my face, just below my mouth so I'm speaking over it, and it's not blocking my mouth or any of my face. (Visually it's in front of my shirt and on the edge of the frame anyway.)

It already does a fairly good job of isolating my voice by virtue of being a cardiod mic inches from my face, but further from that I have it set up (in software) with a noise gate opened by the microphone _in my webcam_. When I'm talking to people I'm generally looking at them so I'm speaking towards the monitor. This sets it up so sound directed towards the monitor opens the mic, but other sound generally does not.

I couldn't find a pair of over-ear headphones I could comfortably wear for long periods of time--they'd all push on the arms of my glasses and end up really sore after a couple hours of calls in a day (even non-contiguous). Instead of trying to solve that, I just steered hard into making the open setup work and sound as well as I could.

As far as visuals--I have a couple of LED light panels for my photography that are set at 45 degrees to either side of my camera, with one adjusted a bit cool and one a bit warm. Picked it up from some time spent doing stage lighting--if you evenly light a scene, it looks flat. (Think a photo taken with an on-camera flash.) A slightly warm and slightly cool wash from different angles can be lit fairly brightly while maintaining the depth and texture.

Different approach but same goal and outcome: I spend a lot of my day talking to people and trying to convey information. It's to my benefit that I'm clearly heard and easily understood. And, besides the practical concerns, professionalism. Frankly, I think it's silly _not_ to invest (to some extent, anyway) in this. In the remote work world, a huge part of everyone's interactions with and perception of you is actually their interaction with and perception of your audio and video setup. You don't need to overdo it, but don't be _bad_ at it.
Agreed! See also the ahrefs example
>I have found that OOP with inheritance is actually a form of tight coupling

You are not the only one. Prefer composition to inheritance is a saying for a reason. Inheritance is powerful and useful for small problems, but as you say it introduces tight coupling and so should only be used where that is intended. Tight coupling isn't always bad, but it is bad often enough to avoid it.
Lots. I am just a graybeard sysadmin type, but I got taught how to read papers critically by a world-class geneticist because we were taking papers to implementation in prod. The biggest takeaway for me was that citation padding networks and lack of reproducibility were the biggest issues and were prevalent, and this was in the top journals, you can't just say this stuff happens in the "lesser" ones!
Yeah, that's a better way of putting it. I actually have them on resume as contracting because 1 page resumes are abstractions. The details go into a 20 page portfolio. But if a company has 6 months of runway, I can't mentally consider it a full time position anyway.
I don’t think there’s anything to indicate they don’t understand this idea. But this misses the point; in their eyes, the lesser evil is to allow those with false positives to call the reasoning into question.
reminds me of the "i wish i could talk to ponies" comic
The remaining 60% is trivial and has been left as an exercise to the reader.
Turning AWS Documentation into Gold: AI-Assisted Security Research
> [...] is their log in.

On every first try, I cannot log in into Azure Portal. I chlick "try again", it works. And it's like that for months, if not years.

IMHO it says a lot of your culture if every first interaction of your customers with your product end with an error - and you simply don't care to fix it.
Wow, I have never seen a non-compete in an NDA, and I have reviewed/drafted thousands. That definitely sounds like red flag territory to me!
The multi-second startup times that many modern monitors have wasn't enough?
Some people will say that the book is not a training guide but a naming guide for patterns (or antipatterns) people already were using with success.
Given the direction of the economy, we'd hit a recession and no one will be investing. So a loss for all tech. I argue we already are in one, but the US election cycle wants to delay that reality until 2025.

Though the US did do a pretty big rate cut. I imagine that will at least stall such a bubble burst into 2026 instead.