skysight-inc/HackerNews huggingface dataset:
Well, planning is a common one. It's rare that teams actually manage to estimate the time needed properly, so projects end up overrunning like crazy. To some degree this is inevitable (software planning is hard after all), but for the most part, it's due to poor planning, failing to push back on developer estimates and generally not understanding the work needed.

Hence we get things like:

Manager: Hey Bob, how long is this new feature going to take?

Bob: 2-3 days max

Manager: Okay, 2 Jira points it is

2 weeks later

Manager: Bob, where's the feature?

Bob: Well, the library we use didn't have the feature we thought it did, and there were more features in the brief than we imagined, and browser compatibility was mixed for the JavaScript API our code depends on...

All of this probably could have been caught during the planning stages, but it wasn't.

Other things they often get wrong are:

- Not knowing what the client actually wants, or letting themselves get sidetracked by constant feature requests. Seen plenty of projects sink into the abyss because days were spent building the wrong thing, or overly optimistic sales guys promised the world and management didn't push back on it...

- Not checking in on the work people are doing, and letting projects fall apart. It's obviously a fine balance between 'checking in with people too often' and 'checking in with them too rarely', but I've seen team leads pass off work to individuals/small groups, then fail to check how things are going until everything's on fire and 2 weeks behind schedule.

- Not being willing to teach or train staff. Obviously you need to be qualified enough to do the job, but there should be chances for growth anyway.

- Not hiring enough staff. This is often a sign the company is floundering or layoffs are on the way, but if ex employees aren't being replaced and no one's been brought on in years despite a growing workload... that's probably not great leadership.

- Not getting staff out of their comfort zone/giving people a chance. This is something I've seen with teams where 1 or 2 people are classed as senior devs, and lots of others are classed as junior ones. The former get all the challenging, interesting work, while the latter get saddled with the boring gruntwork. This hurts the latter's career prospects big time, and gives the team a high bus factor due to the overreliance on a few 'star' performers.

- Micromanagement in general

- Hiring people who aren't the right fit for the team/work, or who aren't qualified for the role in question

- Not firing people who are underperforming, or toxic. The latter is probably worse really, since not only does a toxic environment put people off doing their best work and make good employees want to leave, but the negative consequences of the toxic individual leaving are often way overblown. Yes they might be popular or talented or someone you've personally been friends with for a decade, but they're definitely not irreplacable.
Well, this site is a bit more general than only Russian disinformation but has a fairly interesting database too:

https://euvsdisinfo.eu/

(It’s from the EU’s diplomatic service so it should be considered geopolitically self-interested)
2 years in most places --

But after 1 year you have to show that it's the vendors fault instead of the vendor having to show it was your fault so often "de-facto" 1 year.

Various exceptions include for stuff like food, underware etc.
>CEOs don't all start at a company from day 1 and instead get hired and immediately have a huge salary?

With 20/20 hindsight which seems like the better path now?

>This should tell you all you need to know.
To be maximally charitable, some people don't want to trade one freedom for another (lots of people are just assholes, but let's ignore them for a moment).

There are some fundamental compromises in freedom. If I have a right not to be stabbed you have a lost a right to stab me. Clearly, there are some things where this is an obviously good trade, like in not being stabbed.

I suspect this person fears they will lose some freedoms if they choose to run a company or have their options reduced in the job market if companies are regulated to be less shitty. There may be some of that, but I suspect we can take the worst offences off the table and make the market more robust creating a total increase in freedom and options for everyone.

This is why I went with a child in the mines example. Getting kids out of the mines and into schools was a complete gain for everyone beneficial to society. Employers got more educated employees. Kid got out of the mines. Coal production went up.
Semantic Search Is Cool, but What Else?
He could step anytime he wants to. He's not someone who is going to work to make sure him and his family have food to eat.
Adobe exec likened hidden cloud subscription fees to 'heroin', says FTC
> I wonder if there has been any attempt to modernize these systems to make them cryptographically secure, biometrically verifiable, or anything like that.

There has been[0]! ISO 18013-5. My understanding is that individual facts like "isOver18" or "isOver21" can be signed by the issuer (the state) so that you can present proof of age without giving any other information (including precise age), though it's up to the state to actually do this and not just sign e.g. "birthdate".

[0] https://www.mdlconnection.com/implementation-tracker-map/
Indie Game Dev: Assessing Risk (2022)
Docker wouldn't help with testing kernel modules. You'd need a VM.
Based on other comments, it's more likely due to being on Windows.
Not an expert but my impression is that RLS is not only rock solid, but extremely more testable since you can construct sql queries that test virtually any access scenario
The teslas that also have a ton of QC issues? I'd rather trust a long time car manufacturer like Honda, BMW, Audi, or Nissan when it comes to EVs
But look! A clickable prototype!
> I wonder if there has been any attempt to modernize these systems to make them cryptographically secure, biometrically verifiable, or anything like that.

Not sure about the U.S., but I think the DoD has something like an e-ID for access to classified sites/material?

The Estonian digital ID was an attempt - the original version got broken because they messed up with the RNG, but it was an attempt and I think it's fixed now.

The good parts of EIDAS across the EU are also an attempt.
of course this created an interoperability nightmare with third party libraries, which irrevocably forked Google's whole JS ecosystem from the community's 20 years ago and turned their codebases into a miserable backwater.
Don’t most credit cards require arbitration these days?
Your choices are influenced by exposure, and I don’t mean Tuesday. I mean your entire childhood and adolescence as well.

How did you decide on that brand, really? And what was your second choice? Even if you narrowed down to three options by pure rationalism the tiebreaker is often emotional. Then we convince ourselves the decision was objective even when it was not.
Well, I'm sure there's all sorts of interesting nuclear physics to be learned like island of stability stuff, but given the context of who's doing this work and competing for credit - I guess even out of the cold war context it's a great way to show that 1) my country is better than your country at nuclear physics get rekt or 2) my country and your country get along now, look at us do nuclear physics together or 3) what's up, new player here, btw I'm also good at nuclear physics check out this element I found.

Or in this case 4) oh no your country and my country don't get along anymore! time to asset scientific dominance by "re entering the super heavy race" (https://www.science.org/content/article/u-s-back-race-forge-...) and getting the department of energy to start funding this again so we're back on top.
>I haven't found any justification for blocking Firefox

They don't want to spend on QA for another browser
> and annoys global companies

Lol... Meta is doing a huge campaign here in Brazil about how they won't provide us their AI services because they are annoyed by that entity.

It has been quite a help to the government popularity.
If I could, I would. Probably the best long term investment of my tax dollars today.
This is something I've struggled with as a mostly solo dev. I've most often just stuck with vanilla javascript because of course that's good enough, but definitely there have been times where I hoped I had some typing helping me out. Alas, I haven't quite finagled the art of finding a way to use it "just a little bit."
It can't ever taste the same as caffeine has flavor.
What's Wrong with Feature Flags?
Scam is doing a lot of heavy lifting here, no? If by scam, you mean that a large volume of the “work” enabled by these tools is not productive to society, then fine, I think what you say follows. However, there’s a lot of good work that is done with email and other tools you mentioned. For every good email I send, there might be 100 spam emails, but the drag from the spam on society is surely much less than the value of my “real” email. Furthermore, the technology is an improvement over snail mail for many use cases. I agree that the jury is still out on whether or not AI is as good as imagined, but it seems overly pessimistic to entirely discount a new technology that has been at least personally useful to me. If we were to really run with this definition of scam, we’d soon realize that all technology is a scam. So why even get up in the morning? Might be a simpler life to mail bombs and rot in prison at that point…
Looks like normal SQL syntax to me. That's not alien to most practitioners.
Oh, this is the bane of shared network drives.
> Push less data through wires.

In the systems I work on this has been a big one. In SQL people are pretty good about not writing `select *` in production code, but when querying directory servers, redis, mongodb, etc. people get sloppy. When a system is small, it's enticing to pull in lots of data and work with it in code instead of writing real queries. This doesn't scale.
Can you describe in a single message/email an intersting software project?
Experiment: get 40 hours of free programming work in typescript/(almost)any database.

You have a great idea and you need a good programmer.
Mail me: [first_4_letters_of_my_user]erant@gmx.com.
The reason for this: I am moving to remote work/consultant and I need to experiment all things. The proposal is very serious and you will see on github the code for your project. It's your code/your project. Please, describe here, on HN, your ideea and tell 2 words about yourself.
> There is no place where you can get by with an insulated attic

Surely you mean “uninsulated attic” here?
I realize you're asking about performance optimizations, but since you put it in the context of a workload's cloud bill being too large, I'll chip in and say that by far the largest impact on cost I've seen over the years is to just rightsize the infrastructure the workloads are running on. What I see more than anything is applications that are reserving 10x more CPU or memory than they're actually using. In some cases this might mean amortizing resource usage over time, by asynchronously consuming some kind of queue, in cases where the extreme reservation of resources is due to some temporary usage spike (downstream client doing some batch processing, for example).
Try this in your '.bash_aliases' file, for example:

alias df='df -t vfat -t ext4'
The German inventor of a decaf process sold the extracted coffein separately in pills, which might have given him a second income:
https://en.wikipedia.org/wiki/Ludwig_Roselius
oh dang! Thanks for the feature- this was sick to watch. Appreciate you putting the time in to give your thoughts.
Discussed previously:

https://news.ycombinator.com/item?id=25159097 - Nov 2020 (205 comments)
Show HN: Tiny Moon – Swift library to calculate the moon phase
Tiny Moon is a tiny Swift library to calculate the moon phase for any given date, works super fast, and works completely offline.

All of this started when I realized that we only have 12, sometimes 13, full moon's in a year. That doesn’t seem like that many.

I set out to build a MacOS app to remind me when a full moon occurs, so that I could take a moment and step outside to appreciate it.

The MacOS app I ended up creating can be found at https://apps.apple.com/us/app/tiny-moon/id6502374344 along with the source code [0], all powered by the Tiny Moon library.

I knew that I wanted the app to work offline, so working with a network request was out of the picture. Taking inspiration from SunCalc [1] and Moontool for Windows [2], I decided to create my own library and wrote Tiny Moon as a Swift Package to power my app.

The app tries to be as minimal as possible, does what it does very fast, and works completely offline.

[0] https://github.com/mannylopez/TinyMoonApp

[1] https://github.com/mourner/suncalc

[2] https://www.fourmilab.ch/moontoolw/
Not true in my experience - at least when I buy decaf beans online they are normally more expensive, which I put down to them being niche in comparison.
> Economies of scale. It’s cheaper to build lots of identical things.

It is important to note what parts the identical is important and what you can vary. You can buy cars in many colors because it turns out black is no longer an advantage, manufactures can change paint quickly. (the reason you only get about 6 choices is sales wants to keep each color in stock so you can drive it home, there is no savings in manufacturing to have 6 colors choices as opposed to 60,000)

In the case of houses the identical thing is 8 or 9 foot tall walls with mostly 90 degree angles. You have a lot of options to make walls longer or shorter as you desire and so houses get great scale factors despite not being very identical.
Accelerating Compute by Cramming It into Memory
I switched to Apple Maps a couple of years ago. I live in Seattle and haven't had any problems with it.

Also, if you didn't know, you can delete Apple Maps entirely if you dislike it. iOS definitely tries hard to enforce those default apps.
it's a bit of that you have to know the sha, and that's quite unique. it's apparently unique enough for Google photos to "private" share without logins
But if we make it clear the impressionist is doing an impression of a famous person we're good? Because this law disregards that, you can clearly label something as "fake" and it doesn't matter, you're still liable as long as it appears authentic. A good impressionist would appear authentic.
Feast the Open Source Feature Store Now Supports Vector Databases
Twice-yearly injection offers 100% protection against HIV
Do you think Iraqis would agree?
Not to put too fine a point on it, but Android is the dominating platform, except in the U.S.:

https://explodingtopics.com/blog/iphone-android-users

But this is also exactly the same game Apple plays against Android users. It's the same reason why iMessage bubbles are green for Android. Google won the maps round, but such wins are vanishingly rare against Apple.

https://support.apple.com/en-us/105087
No, TypeScript is not unsound because it uses structural typing.

A language has a sound type system if every well-typed program behaves as defined by the language's semantics during execution.

Go is structurally typed, and yet it is sound: code that successfully type checks is guaranteed to abide the semantics of the language.

TypeScript is unsound because code that type checks does not necessarily abide the semantics of the language:

function messUpTheArray(arr: Array<string | number>): void {
arr.push(3);
}

const strings: Array<string> = ['foo', 'bar'];
messUpTheArray(strings);

const s: string = strings[2];
console.log(s.toLowerCase())

`strings` is declared as a `Array<string>`, but TypeScript is happy to insert a `number` into it. This is a contradiction, and an example of unsoundness.

`s` is declared as `string`, but TypeScript is happy to assign a `number` to it. This is a contradiction, and an example of unsoundness.

This code eventually fails at runtime when we try to call `s.toLowerCase()`, as `number` has no such function.

What we're seeing here is that TypeScript will readily accept programs which violate its own rules. Any language that does this, whether nominally typed or structurally typed, is unsound.
INAL, not legal advice:

The definition of digital forgery references the existing legal code's definition of "Intimate visual depiction", which is defined here: http://uscode.house.gov/view.xhtml?req=(title:15%20section:6...

So if you take an otherwise legal picture of someone, and add a filter which, eg, gives them a big forehead, you're fine. However, if you take a picture of and use it to create realistic porn of that person, that can sue.
See I don’t understand how they have multiple vendors for Kraft or Johnson and Johnson products. There are no multiple suppliers.

Coca Cola I can understand, but those are all franchisees and the parent company watches them like a hawk. Mostly what they make is purified water to mix with the syrup they got from corporate to reduce shipping costs and losses.
When I visited a rust belt city recently, it was amazing how many of the coffee shops and bars were still open of my preferred "sit and have a quiet conversation" variety. In my VHCOL city, where commercial rents are absurd, the only coffee shops/bars that can stay open are the ones that can drive tons of business (and thus push patrons through like cattle, with all cues pointing towards "you shouldn't be hanging out here").
It’s unambiguously O(n), there’s no lg n anywhere to be seen. It may be O(n) with a bit larger constant factor, but the whole point of big-O analysis is that those don’t matter.
I want to re-read this and think about it more.

But one thing stuck out: I never liked most of the distillation of actions as clean architecture would advocate for, be they lambdas in class form (DepositAction) or interactors. I feel strongly that they are the right thing in describing business logic, however.

What did click for me is the conceit of a service, which the JVM world embraces. Services are plain old objects that have a method for each action you'd like to model. This is nicer than the aforementioned approaches because there is often common code to different actions. Like actions, services are the place where validation happens, persistence happens, and all of the interesting business logic. IO and orthogonal concerns are injected into them (via constructor), which lets you write tests about the core logic pretty easily.

What you get is the ability to reason about what happens without the incidental complexity of the web. Web handlers then boil down to decoding input, passing it to the service, examining the result of calling an action, and then outputting the appropriate data.

That's all they should've ever been doing. :)
New short course (1/2): Intro to Federated (Machine) Learning
Until workers in the US are making a living wage, pay affordable prices for their shelter and healthcare needs, and are not $500 away from a life changing economic event, wages must be driven higher and immigration must be restrained (even if this drives up costs and reduces profits). More job openings due to lower interest rates increases competition for workers, driving up wages.
More than that, most of what makes a design attractive doesn't cost any more than unattractive and so there is no cost. Often attractive is cheaper because a factory knowing attractive features are in demand will setup jigs/machine to automatically cut the profile into a board while if you wanted a something plane it has to be cut but hand.
It's maybe useful to note in this discussion for some that "soundness" of a type system is a bit of technical/theoretical jargon that in some cases has specific mathematical definitions and so "unsound" often sounds harsher (connotatively) than it means. The vast majority of type systems are "unsound" for very pragmatic reasons. Developers don't often care to work in a "sound" type systems. Some of the "most sound" type systems we've collectively managed to build are in things like theorem provers and type assertion systems that some of us don't always even consider useful for "real" software development.

Typescript is a bit more unsound than most because of the escape hatch `any` and because of the (intentional) disconnect between compiler and runtime environment. Even though "unsound" sounds like a bad thing to be, it's a big part of why Typescript is so successful.
Show HN: Yoopta – Open-Source Rich Text Editor with Extensive Customization
Hi everyone!
I want to share my Yoopta-Editor project with you.
Yoopta - open-source rich-text editor for web apps. It’s packed with features that let you build an editor as powerful and user-friendly as Notion, Craft, Coda, Medium etc.

This project was born from my own frustrations as a Front-End developer working with various WYSIWYG editors. Despite the prominence of many tools, none satisfied my fundamental needs.

Yoopta-Editor It's not just another rich-text editor. It's a solution designed to overcome common challenges developers face with existing editors that are often limited, despite being labeled as "rich".
This editor will provide you with the following features:

- Easy setup
- Default list of powerful plugins
- Everything is customizable and extensible
- A list of useful tools (ActionMenu, Toolbar etc.) for the convenience of working with the editor
- Drag and drop, nested dnd is supported also
- Automatic lazy loading for media components (eg. image, videos, embeds)
- Selection box for manipulating with multiple blocks at once
- Mobile friendly
- Exports/imports in different formats like markdown, html, plain text
- Every plugin render can be extended with your own UI-kit components
- Large documents
- Markdown shortcuts, hotkeys. And customization for this!
- Nested Ordered, Todo, Bulleted lists
- The soul invested in the development of this editor
... and other features that I forgot to write about in this list .
Just check it in examples ˆ-ˆ
RLS is rock solid. That's what Supabase leverages to create access policies and more. They have a very good example of how it works and how powerful it is in their docs: https://supabase.com/docs/guides/database/postgres/row-level...
Gradual typing is the key. The problem with Java is that types are in your face way before you actually need them.

With TS you can prototype with JS and only after you know what you are looking for you can start to add types to find bugs and edge cases and want to get nice code completions for your stuff.
Exactly... I'll order an item a few times a few weeks apart... then the next time it's suddenly 50% higher priced. No real reason why. I've taken to actually ordering direct from a few different mfgs for a few things Amazon has had that local stores haven't simply because Amazon's pricing is sometimes unreasonable.

That they outright lie about "retail" when doing sales is also offputting. The irony is I've started to appreciate Prime Video, and now they charge extra for that without commercials. It's infuriating all around.

That doesn't even begin to cover counterfeit, expired or other problems on fulfillment such as saying it'll be there tomorrow until the order is placed and you get it 4 days later, or maybe not at all (lost?).
I just hacked it with some random email and it worked fine
Pinterest serves pages in many domains (different TLDs). It is better to use a regex to block them.
History Illustrated: A soft landing for Boeing?
As Wilson and I are working on this project, we'd love to hear your thoughts!
I actually would go the other direction: I actually moved from Arch to NixOS just to get fully-supported out of the box ZFS support, including ZFS root. I had even intended to use NixOS as a thin layer that provided my "base" OS but run all the real stuff in distrobox (likely even with Arch in the container, effectively returning to my old setup but with ZFS underneath), but then when I actually used it I found it easier to just do most things natively.
And what of GDPR in the EU?
New short course (2/2): Federated Fine-tuning of LLMs on Private Data