MurphyA/hacker-news huggingface dataset:
Show HN: Software devs, I made a tool to make creating estimates less painful
by mpoweredo | 2025-08-05 08:44:53+00:00
Hey HN!

I am a FE dev who is working at a software agency and im making 2-3 estimates per week.

Creating estimates is painfull manual proccess, where you have to read a lot of .docx like RFP, SRS etc. This was really tiring for me

Also in agency where im working we make estimates in google spreadsheets which is another pain, trying to drag something, copy, duplicate can really mess up the whole layout

So i just wanted tool that can just automate this a bit.

I just started researching and I couldnt find anything good enough for my usecase.

So I made a tool for creating estimates with AI. I just checked out that AI is really good at breaking down SRS into tasks and estimating it.

So the plan is very easy 1. Upload project's SRS 2. Generate estimate which is really good base to work later on it 3. Check, correct and it is ready

Result? Estimates made in 15-30 minutes instead of 2-3 hours

Check this out (no signup) needed: https://devtimate.com/
by lupusreal | 2025-08-05 08:45:12+00:00
I was a great test taker, I used to make a sort of game out finishing tests in half the time as almost everybody else and acing it at the same time. I also never crammed, never attended pre-test study groups, and sometimes made a show of drinking beers right before the test just to annoy the people cramming in the last minute.

But I'm not particularly brilliant, in fact I wouldn't be terribly surprised if I have undiagnosed ADHD. My test taking performance trick, which I freely told everybody to their annoyance, was very simple. I knew the material! Read the assigned texts, do the optional homework, pay attention in class. If you know the material you don't have to try to cram it into your brain in the last half hour before the test. If you know the material you don't have to try to reason it out from first principles during the test. You just go in, fill out the easy answers straight away, go back and do a second pass for the tricky questions, and that's it. If you have to sit there wracking your brain for 30 minutes on a single problem it's because you already fucked up with how you approached the course weeks ago.

Again, I'm not special for this. There were a handful of other students who were as fast as me. We'd sit in the hall waiting for our friends, look at each other and say "you knew all this stuff too, huh?" "yeah of course"
by avaq | 2025-08-05 08:45:20+00:00
They can't implement function application without tanking performance? I find that hard to believe. Especially considering that function application is already a commonly used (and, dare I say: essential) feature in the language, eg: `Math.sqrt(2)`.

All we're asking for is the ability to rewrite that as `2 |> Math.sqrt`.

What they're afraid of, my understanding goes, is that people hypothetically, may start leaning more on closures, which themselves perform worse than classes.

However I'm of the opinion that the engine implementors shouldn't really concern themselves to that extent with how people write their code. People can always write slow code, and that's their own responsibility. So I don't know about "silly", but I don't agree with it.

Unless I misunderstood and somehow doing function application a little different is actually a really hard problem. Who knows.
by svara | 2025-08-05 08:46:05+00:00
Side note, it's not super helpful to tell me what I need to study in broad terms without telling me about the specific results that your argument rests on. They may or may not require deep study, but you don't know what my background is and I don't have the time to go read a textbook just because someone here tells me that if I do, I'll understand how my thinking is wrong.

That said, I really do appreciate this exchange and it has helped me clarify some ideas, and I appreciate the time it must take you to write this out. And yes, I'll happily put things on my reading list if that's the best way to learn them.

Let me offer another example that I believe captures more clearly the essence of what you're saying: A model that learns addition from everyday examples might come up with an infinite number of models like mod(a+b, N), as long as N is extremely large.

(Another side note, I think it's likely that something like this does in fact happen in currently SOTA AI.)

And, the fact that human physicists will be quick to dismiss such a model is not because it fails on data, but because it fails a heuristic of elegance or maybe naturalness.

But, those heuristics in turn are learnt from data, from the experience of successful and failing experiments aggregated over time in the overall culture of physics.

You make a distinction between experiment and observation - if this was a fundamental distinction, I would need to agree with your point, but I don't see how it's fundamental.

An experiment is part of the activity of a meta-model, a model that is trained to create successful world models, where success is narrowly defined as making accurate physical predictions.

This implies that the meta-model itself is ultimately trained on physical predictions, even if its internal heuristics are not directly physical and do not obviously follow from observational data.

In the Fermi anecdote that you offer, Fermi was talking from that meta-model perspective - what he said has deep roots in the culture of physics, but what it really is is a successful heuristic; experimental data that disagree with an elegant model would still immediately disprove the model.
by zimpenfish | 2025-08-05 08:47:00+00:00
I'd check out the OpenCV documentation and examples. This is basically what I use for face recognition in videos[0]; for recognising cars or other objects, you'd probably want to either train your own model or use something like OpenCV's YOLOv3 (example: [1] but you'd need to steal the video reading code from the first link[0])

[0] https://github.com/ageitgey/face_recognition/blob/master/exa...

[1] https://github.com/deveth0/python-opencv/tree/master/objectD...
by alias_neo | 2025-08-05 08:48:14+00:00
If like myself you're a Linux and Firefox and Android user, H.265 support is extremely lacking; you're probably ok on a modern Android, but you'll not be able to view any of the streams or do scrubbing etc on desktop in Firefox, nothing video related is going to work in the Frigate UI, you won't be able to preview videos etc and will have to download them and use VLC. This might not sound like an issue, but it's a huge pain in the arse if you actually want to use it day to day.

All in, H.265 is unsuitable if you use a specific set of software/tools that is quite a common combination; Linux/Firefox/Android.

The original commenter is correct, if you're one of these people like myself, avoid H.265 like the plague until support is better and be sure to buy cameras that also support H.264.
by echo_time | 2025-08-05 08:48:41+00:00
This looks incredible, and its obvious that a lot of work has been done, but in exploring it I notice a lot of things that make me hesitate to spend the money!

First, in the section "Expressions are flashcards on steroids", the flavor text on each element (Translations, Audio, etc) is identical.

Next, I look at the pricing and get one idea. Then when I create an account and go to upgrade, I see completely different pricing options. Its not that I care so much about the options, but it kind of worries me!

At one point I swear I saw the phrase "Say something about comprehensible input" instead of an explanation of CI, and the sentence itself was duplicated but now I don't. Maybe you are making this landing page live? It _is_ a nice landing page, to be sure.

Overall, I think it looks really cool and I'm interested in trying it out but just a little nervous at the moment.
by King-Aaron | 2025-08-05 08:48:42+00:00
There's been very few interstellar objects he's claimed as alien, in fact only one - and for onomua (or however it was spelt) he also said the most likely outcome would be a natural object. His expedition to recover metal spheroids from the ocean floor was a fascinating one which garnered a lot of support and I believe still had value in devising methods to recover impact materials from underwater.

So really it's the same thing, he gets a lot of aggressive pushback online for mentioning 'aliens', but generally speaking nothing he says or does is actually that baseless.
by HDMI_Cable | 2025-08-05 08:48:44+00:00
While I do agree with a lot of what you're saying (wrt. people in the US feeling that their country is slowly falling apart, perhaps into fascism) I just wanted to point out that I don't actually live in the US.

Though I think the nascent feelings you describe are very universal: living in a (thankfully) stable democracy, I think these feelings that the world is slowly unraveling are quite universal—we constantly see in the news that the U.S. is slowly falling apart, that there are now large-scale land wars in Europe again, and that China is inching towards a crisis in the Taiwan Strait. I think for a lot of people it feels hard to imagine a world that gets better in the short-medium term, especially as the U.S. slowly starts to unravel itself (from an outsider POV).

I'm not really sure whether the world is slowly starting to become more crazy or whether this has always been the case (I wasn't even a teenager when Trump was first elected), I sometimes wonder if the feeling that things are reaching a breaking point is the same feeling that people had in 1928.
by npteljes | 2025-08-05 08:49:39+00:00
Just in case you (or someone reading) doesn't know the technical details, private keys are distinctly different from passwords, on how they work to authenticate the user.

In case of an online login, a password travels to the server, and gets checked against its stored form, to see if the user's login request is valid.

In case of a private key, the server sends a bit of data that the user signs digitally on their own device with their private key, sends back the signed data, and the server checks authenticity with the user's previously stored public key.

So at the end of the day, private keys are not essentially glorified passwords. Yes, both are strings that are used to authenticate. But it's their very essence itself that makes the difference.
by sleiben | 2025-08-05 08:49:58+00:00
Looks really interesting, especially with the dashboards.

Just to validate an idea here: I’m using k8s (20+ services) and trying to stick to the 12factor design pattern by having all the baking/companion services, also like cron jobs deployed from within the service directory. Right now I’m using k8s cron services for cron jobs and log the steps and observe with DataDog. Using k8s cron services feels right somehow but the observability with DataDog not. So, would it make sense for me, to deploy a baking k8s web service running sidequest instead?
by gwd | 2025-08-05 08:50:11+00:00
Thanks for the write-up!

I've got a system for learning languages that does some of the things you mention. The goal is to be able to recommend content for a user to read which combines 1) appropriate level of difficulty 2) usefulness for learning. The idea is to have the SRS system build into the system, so you just sit and read what it gives you, and review of old words and learning new words (according to frequency) happens automatically.

Separating the recall model from the teaching model as you say opens up loads of possibilities.

Brief introduction:

1. Identify "language building blocks" for a language; this includes not just pure vocabulary, but the grammar concepts, inflected forms of words, and can even include graphemes and what-not.

2. For each building block, assign a value -- normally this is the frequency of the building block within the corpus.

3. Get a corpus of selections to study. Tag them with the language building blocks. This is similar to Math Academy's approach, but while they have hundreds of math concepts, I have tens of thousands of building blocks.

3. Use a model to estimate the current difficulty of each word. (I'm using "difficulty" here as the inverse of "retrievability", for reasons that will be clear later.)

4. Estimate the delta of difficulty of each building block after being viewed. Multiply this delta by the word value to get the study value of that word.

5. For each selection, calculate the total difficulty, average difficulty, and total study value. (This is why I use "difficulty" rather than "retrievability", so that I can calculate total cognitive load of a selection.)

Now the teaching algorithm has a lot of things it can do. It can calculate a selection score which balances study value, difficulty, as well as repetitiveness. It can take the word with the highest study value, and then look for words with that word in it. It can take a specific selection that you want to read or listen to, find the most important word in that selection, and then look for things to study which reinforce that word.

You mentioned computational complexity -- calculating all this from scratch certainly takes a lot, but the key thing is that each time you study something, only a handful of things change. This makes it possible to update things very efficiently using an incremental computation [1].

But that does make the code quite complicated.

[1] https://en.wikipedia.org/wiki/Incremental_computing
by TheOtherHobbes | 2025-08-05 08:50:15+00:00
One thing that's rarely considered is that by any metric Japan had already lost the war.

And what's interesting - and definitive - about both Japan and Germany is that the regimes kept fighting when this was obvious.

There was plenty of insanity to go around, but it takes an extra special kind of insanity to ignore defeat when outmatched by a superior force, and when continuing to fight will cause massive casualties for your own population when failure is already guaranteed.

This isn't just irrational, it's compulsively self-harming.

At the same time it's recognised now that Germany and Japan both had very limited prospects of victory in WWII. There were voices in the military in both countries making this point before the fighting started. But the regimes chose irrational violence for irrational ends, with horrific self-destructive consequences.

What killed millions wasn't the weapons, it was the culture of mass delusion that made the weapons necessary.

It's the nature of authoritarianism to deny reality until pushed into collapse.

That's the only real enemy in war, and we're still fighting it today - unsuccessfully.
by somenameforme | 2025-08-05 08:50:51+00:00
That's a great example. NSF funding (as of 2023) is < $10 billion. So the money spent shipping weapons to Ukraine could have funded it for decades. The money spent on Iraq or Afghanistan could have funded it for centuries. But in modern politics we simply accept that politicians will endlessly blow money like this, and we then content ourselves with fighting over the table scraps that are left over for whatever our pet interests happen to be, while framing those scraps as representing the most important existential crises to have ever existed.

Don't you see how comically dysfunctional this is? If you took the amount of money we spend and actually optimized it for outcomes, the possibilities are unimaginable. But we simply are incapable of electing the sort of people who could do this, because succeeding in politics is mostly just legal corruption (and illegal, but hey that's what pardons are meant for!) on a massive scale where everybody wants their bellies buttered to the point that suddenly government receipts of $5+ trillion dollars, $14k+ for every single man/woman/child, is literally not enough to maintain the basic operation of government. All the while our 'public servants' somehow get filthy rich in office. It's just lol.
by jwrallie | 2025-08-05 08:51:37+00:00
Everything powerful is also potentially destructive. Macros have their places, but most of the time they are not the right solution. I too have removed most of my macros, and have a few that are worth to keep. Usually time saved with macro cleverness is paid off with time debugging with cryptic compiler behavior.

When there is no other way, wrapping multi-line macros in a do while and #define constants in parenthesis can definitely help.
by mort96 | 2025-08-05 08:51:40+00:00
I'm surprised that the example requires lambdas... What's the purpose of the `|> foo(...)' syntax if the function has to take exactly one operand? Why is it necessary to write this?

$arr |> fn($x) => array_column($x, 'tags')

Why doesn't this work?

$arr |> array_column(..., 'tags')

And when that doesn't work, why doesn't this work?

$arr |> array_unique
by chamoda | 2025-08-05 08:52:03+00:00
For anyone interested, here’s how I achieve the same in i3wm: it works with the Print key and lets you select the area using only CLI tools.

bindsym --release Print exec "scrot -s '%Y:%m:%d:%H:%M:%S.png' -e 'xclip -selection clipboard -t image/png -i $f && mv $f ~/Pictures'"
by sowbug | 2025-08-05 08:52:04+00:00
> I think it's a reasonable stance to not want other companies to profit from my hard work

For me, the dividing line is whether someone else's profit is at my expense. If I sell a book, and someone starts hawking cheaper photocopies of it, that takes away my future sales. It's at my expense, and I'm harmed.

But if someone takes my book's story and writes song lyrics derived from it, I might feel a little envy (perhaps I've always wanted to be a songwriter), but I don't think I'd harbor ill will. I might even hope for the song to be successful, as it would surely drive further sales of my book.

It's human nature to covet someone else's success, but the fact is there was nothing stopping me (except talent) from writing the song.
by rightbyte | 2025-08-05 08:52:10+00:00
I think you overestimate the power of activists.

What do you propose locally instead of "falling on the sword"? Unless the city council purposely makes the library a drug den there is no easy cheap solution. Especially since the symptoms are an indication of a malfunctional city in the first place in which I wouldn't trust them with some sort of radical endouver.
by rob74 | 2025-08-05 08:52:45+00:00
No, the far right are the ones dismantling federal agencies like the EPA, the FDA, USAID etc., sending the army to police states they don't like, firing the person responsible for jobs statistics because they don't like the numbers, slapping 50% tarrifs on countries because they dared to prosecute one of Trump's buddies etc. (just some of the latest examples).

The "far left" (as the far right likes to call anyone who doesn't agree with them) are those who don't like the above and are protesting against it...
by noelwelsh | 2025-08-05 08:53:20+00:00
Good example of using ad hominem to discredit others in favour of your approach.

Examples:

- "The academic who hasn’t built anything, yet feels comfortable telling you to use their complicated startup framework to find and validate ideas." Presumably a dig at lean startup.

- "A market need? An underserved niche? Demand? WTF do these things even mean?" Come on, these aren't that hard to define.
by makeitdouble | 2025-08-05 08:53:31+00:00
Yes, Java was never really good (I'd argue on any platform. Server side is fine, but not "really good" IMHO)

It made me think about the amount of work that went into JS to make it the powerhouse it is today.

Even in the browser, we're only able to do all these crazy things because of herculian efforts from Google, Apple and Firefox to optimize every corner and build runtimes that have basically the same complexity as the OS they run on, to the point we got Chrome OS as a side product.

From that POV, we could probably take any language, pour that much effort into it and make it a more than decently performing platform. Java could have been that, if we really wanted it hard enough. There just was no incentive to do so for any of the bigger players outside of Sun and Oracle.

> all else being equal, using a single language will do a lot better.

Yes, there will be specific cases where a dedicated server stack is more of a liability. I still haven't found many, tbh. In the most extreme cases, people will turn to platforms like Firebase, and throw money at the pb to completely abstract the server side.
by MrGilbert | 2025-08-05 08:56:00+00:00
> I think it's harder to apply to software since there are more unknowns (or the unknowns are fatter-tailed)

Talking purely in agile software development, there is an idea of "Flow Metrics" [1] to use for estimation, basically boiling it down to "How many stories can we finish in the next timeframe (Sprint or whatever), and what is the uncertainty associated with this number?" I really like the idea, but haven't been able yet to test it.

[1]: https://www.prokanban.org/scrum-flow-metrics
by HDMI_Cable | 2025-08-05 08:56:12+00:00
What sort of privacy implications? I'd imagine that Anki data would be relatively privacy-concern free, as it contains no PII, and for the AnKing decks, all of the content is standardized and so wouldn't contain personal notes. Though, having never worked with this data, please let me know if I'm wrong!

Also, having used those decks in the past, and downloaded the add-on/look at the monetization structure of developers like the AnKing, I would be very surprised if aggregate data on review statistics wasn't collected in some way. I.e., if the AnKing is collecting this data already to design better decks/understand which cards are the hardest—probably to target individual support—then I imagine that collecting some de-anonymized version of that data wouldn't be too much of a stretch.

Plus, considering that all of the developers of AnKing-style decks are all doctors, they probably have a pretty good grasp at handling PII and could (hopefully) make pretty sound decisions on whether to give you access :)
by jillesvangurp | 2025-08-05 08:56:22+00:00
Kotlin is shaping up slowly. It's kind of there with a native compiler that is getting better with each release and decent multiplatform libraries. It's a bit weak with support for native libraries and posix stuff. But that's a fixable issue; it just needs more people working on that.

For example ktor (one of the server frameworks) can actually work with Kotlin native but it's not that well supported. This is not using Graal or any of the JVM stuff at runtime (which of course is also a viable path but a lot more heavyweight). With Kotlin native, the Kotlin compiler compiles directly to native code and uses multiplatform libraries with native implementations. There is no Java standard library and none of the jvm libraries are used.

The same compiler is also powering IOS native with Compose multiplatform. On IOS libraries are a bit more comprehensive and it's starting to become a proper alternative to things like flutter and react native. It also has pretty decent objectc and swift integration (both ways) that they are currently working on improving.

In any case, it's pretty easy to write a command line thingy in Kotlin. Use Klikt or similar for command line argument parsing.

Jetbrains seems to be neglecting this a bit for some reason. It's a bit of a blind spot in my view. Their wasm support has similar issues. Works great in browsers (and supported with compose as well) but it's not a really obvious choice for serverless stuff or edge computing just yet; mainly because of the library support.

Swift is a bit more obvious but has the issue that Apple seems to think of it as a library for promoting vendor lockin on their OS rather than as a general purpose language. Both have quite a bit of potential to compete with Go for system programming tasks.
by busssard | 2025-08-05 08:57:42+00:00
because of UFO Conspiracy Theorists. When someone says Alien in a serious context, most people immediately associate it with UFO nutjobs.

String theory has not really made its debut in the conspiracy crowd afaik. I think "Quantum-___" has done so, especially with the "collapse of the wavefunction through the observer" it has so many esoteric people raving.

String theory is so meaningless to the normal person.