MurphyA/hacker-news huggingface dataset:
by hot_town | 2025-08-05 08:27:29+00:00
I launched Open SaaS about a year and a half ago and surprisingly it’s become the most popular free SaaS boilerplate starter on github (https://github.com/wasp/open-saas).

After 2 years of work total, I’m pleased to launch what I’m calling “Open SaaS v2.0”.

Here’s a breakdown of all the features and updates I’ve made to it over time:

*New Big, Shiny Things for v2.0*

- Complete redesign with Shadcn UI for a modern and consistent look (themeability coming soon...). - Script that autogenerates an LLM-friendly version of the documentation https://docs.opensaas.sh/llms-full.txt. - Added Zod validation for webhook payloads.

*Main Features*

- 100% open-source repo w/ a focus on open-source tools when possible. - Auth that you own (no 3rd party services): email, google, github, discord... - Full Payments Integration: easily swap out Stripe for Lemon Squeezy or Polar (coming soon!). - Full-stack typesafety on top of React, NodeJS, Prisma. - Admin dashboard w/ revenue and site analytics (Google or Plausible) - OpenAI API & AWS S3 integrations.

*New Features*

- Added Lemon Squeezy as payment provider option (Polar and Paddle in the works!). - Enhanced file uploads with progress bars and validation. - Added a generic cookie consent banner (if you need one). - Integrated Playwright for end-to-end testing. - Added a 404 page.

*Fixes & Improvements*

- Upgraded Wasp (React/NodeJS/Postgres) framework to v0.17.0. - Upgraded AWS and OpenAI SDKs to their newest-ish versions. - Tightened S3 CORS configuration for better security. - Improved payment webhook logic. - Made UI components more consistent (e.g., controlled switches). - Fixed various styling issues, including dark mode inconsistencies. - Improved error handling and validation across the app.

*Refactoring & Code Organization*

- Major "vertical reorganization" of the codebase for improved modularity (auth, payments, users, file-upload). - Significant refactoring of user management pages and queries. - Refactored to use prisma transactions for safer DB mutations. - Cleaned up and simplified various parts of the codebase.

*Docs & Content*

- Updated documentation for deployment, installation, and new features. - Added a customization checklist.

There have been a slew of paid SaaS boilerplate starters popping up since we started, but Open SaaS will stay free and open-source forever.

So if you're interested in becoming a contributor, or just wanna add a suggestion to the roadmap, feel free to create an issue https://github.com/wasp-lang/open-saas/issues.
by kennywinker | 2025-08-05 08:27:35+00:00
This is a power-user’s nightmare.

Instead of arranging things in a logical hierarchy, and enabling quick navigation thru keystrokes - just toss out making the ui make sense because the chatbot can solve all.

Your job is to make a good product. AI-as-interface is just slapping a layer of randomized language parsing in between the user and bad ui.

I’m not actually saying no chatbots. What I am saying is using a chatbot to solve a usability problem is a massive middle finger to anyone who might have to use your product for 8 hours a day. Make it good, then make it idiot-proof. Don’t make it for idiots only.
by algo_lover | 2025-08-05 08:27:44+00:00
So this is like medium + org-babel-mode/jupyter but for clojure content?

It's a good idea with a good execution (especially the idea around literate programming). I also like that I always have a copy of my own content in my fork.

I would just need some more convincing though to post content here instead of just posting it on my own blog?
by Y-bar | 2025-08-05 08:27:57+00:00
> because that's the way the underlying C libraries also worked

I feel like this is a weak defence of the internally inconsistent behaviour. As someone who has been programming with PHP for over twenty years now, most of them professionally, I still cannot remember the needle/haystack order in these functions, I thank intellisense for keeping me sane here.

As evident with this pipe operator, or with for example Attributes, PHP does not need to religiously follow the C way of doing things, so why not improve it instead of dismissing it as "it is the way it is because that is the way it was"?
by barrell | 2025-08-05 08:28:16+00:00
I would say probably 50% of the learnings from Humane SRS would be applicable in other fields/schedulers. There is another half that is language-specific though - at the end of the day, if you try to learn a language the same way you cram for a med school exam, you're probably not going to succeed. The inverse is also true, please nobody use Phrasing to cram for their med school exam XD

I agree most peoples collections get unwieldy and something needs to be done, so props to Rember! I take the opposite approach - instead of helping people manage large collections, I try to help people get the most out of small collections. This sort of thing is not possible in most fields outside of languages (I don't think — I cannot say I've given it any real thought though).

For example, the standard tier in Phrasing is 40 new Expressions per month. This should result in 2,000-3,500 words in a year, which would be a pretty breakneck pace for most learners, and is considered sufficient for fluency. Of course, users can learn Expressions other users have created for free, or subscribe to higher tiers, or buy credits outright, but it's often not needed.

Indeed Phrasing does not really use the idea of "cards," we reconstruct pseudo-cards based on the morphemes, lemmas, and inflections found within the Expression. So "cards" are indeed not the boundary I use.
by agos | 2025-08-05 08:28:48+00:00
I am personally thinking creating an alternative to the ubiquitous todo app to highlight how different frontend libraries/frameworks/state solutions tackle common problems.

One example could be a form where the validation rules of one field depend on another, where you have to pick an option from a list that is loaded from a server (what do you do when the current value is not among the returned list?), etc.
by jeroenhd | 2025-08-05 08:29:33+00:00
Correctly naming things is one of the harder challenges in computer programming. Putting effort into naming intermediates that you're going to throw out is a waste. Plus, the more variables you introduce, the more likely you'll accidentally re-use a variable name somewhere down the line.

With PHP allowing variable initialization in one branch but not the other, and continuing execution by default when an undeclared variable is passed, declaring more variables can lead to an annoying class of bugs that would require significant (breaking) changes to the core language to completely eliminate.
by Timwi | 2025-08-05 08:30:57+00:00
The section where the article mentions function composition implies that it doesn't. The article says that compositing the functions before passing them into map would be an optimization. I take that to mean that without the composition, each map fully processes an array passed to it from the previous map, and the first map fully reads the whole file in the example. If it were iterable, the function composition would make no difference compared to a pipeline of multiple maps.

Meanwhile, I'm confused as to why it sometimes says “map” and sometimes “array_map”. The latter is what I'm familiar with and I know that it operates on a whole array with no lazy evaluation. If “map” isn't just a shorthand and actually creates a lazy-evaluated iterable, then I'm confused as to why the function composition would make any difference.
by bananapub | 2025-08-05 08:31:27+00:00
perhaps this a good moment for you to engage in some reflection and consider that perhaps some people have put more thought in to "how do we replace passwords" than you did in making a single hacker news comment?

you:

> A single per-user client certificate is a cleaner solution, without the vendor lock in problem, since there’s no need for real time synchronisation of an evolving set of passkeys.

reply:

> Having a single certificate makes it trivial to implement cross-website tracking.

you:

> Users who truly need that ability can create multiple certificates, and synchronise them as appropriate.

well, indeed! perhaps designing a system to support multiple certificates with synchronisation, so that we're not forcing ever user to be trackable by every single website, would be a good idea.

some sort of keys to enable one's passage in to a website?

this is a cancer on this website, and certainly one I'm also suffering from, despite being quite aware of it - real life things are usually pretty complicated and just because I know enough to make a random guess at a solution, it doesn't mean people who have put way thought in to the problem have done a bad job or missed by brilliant insight.
by tgv | 2025-08-05 08:31:29+00:00
> Node was literally designed to be good for one thing - backend web service development.

I don't think it was, at least not originally, But even if it was, that doesn't mean it actually is good, and certainly not for all cases.

> Node running on a potato of a CPU can handle thousands of requests per second w/o breaking a sweat using the most naively written code.

The parent comment is specifically about this. It breaks down at a certain point.

> you can get a full ExpressJS service up and running, including auth, in less than a dozen lines of code

Ease of use is nice for a start, but usually becomes technical debt. E.g., you can write a pretty small search algorithm, but it will perform terribly. Not a problem at the start. You can set up a service with a just a little bit of code in any major language using some framework. Heck, there are code free servers. But you will have to add more and more work-arounds as the application grows. There's no free lunch.

> The TS team switched to go because JS is horrible at anything that isn't strings or doubles.

They switched because V8 is too slow and uses quite a bit of memory. At least, that's what they wrote. But that was not what I wanted to address. I was trying to say that if you have to switch, Go is a decent option, because it's so close to JS/TS.

> But for the majority of service endpoints ...

Because they are simple, as you say. But when you run into problems, asking the V8 team to bail you out with a few more hacks doesn't seem right.
Show HN: I've been building a configuration tool for Claude Code
by davepoon | 2025-08-05 08:31:33+00:00
I originally started by sharing a collection of specialized AI subagents and slash commands for Claude Code on GitHub. Then, I enhanced it by creating a web UI, so people can browse, search, and install both subagents and commands instantly by copying and pasting. After that, I started creating a CLI tool to allow more advanced users to install and manage subagents and commands directly from their terminal. Now, I am trying to enhance the CLI tool to be a configuration tool that allows you to share, extend, and reuse the Claude Code configuration(commands, hooks, subagents and MCPs) easily for team onboarding, bulk installation, etc.

Website: https://www.buildwithclaude.com/ Github Repo: https://github.com/davepoon/claude-code-subagents-collection

Would appreciate any feedback or feature suggestions.
by WatsonAI | 2025-08-05 08:31:47+00:00
Hi

We’ve built a free AI-powered digital forensics platform designed to help users extract, recover, and analyze digital evidence from various sources (computers, apps, etc.).

It’s called Dr. AI Watson — and it’s built with 500+ plugins, covering:

Deleted data recovery (chats, files, screenshots)

Support for apps like Facebook, WhatsApp, mobile games

AI-assisted case analysis

Automated report generation (useful for legal/litigation work)

Works on Windows for now (mobile version coming)

No signup required. Just download and try it: https://eplatform.drwatsonai.com/drwatson/downpage.html?down...

We originally built it for internal investigations but realized it might help: Individuals recovering lost data IT or DFIR professionals Lawyers handling divorce/fraud cases Journalists or NGOs needing verifiable digital evidence It’s 100% free. We’d love your feedback — whether about UX, bugs, features, or use cases we didn’t think of. Happy to improve it with your suggestions!
by AWPAGE | 2025-08-05 08:33:16+00:00
I’ve unfortunately had the same thing happen to me and am trying to run the gauntlet of getting a response.

Even more annoying is that I suspect its an issue linked to Google SSO and IP configurations.

I’m personally a big fan of Anthropic taking a more conservative approach compared to other tech companies that insist it’s not their responsibility - this is just a natural follow on where we get a lot of false positives.

Having said that desparate for my account to be unbanned so I can use it again!
by secondcoming | 2025-08-05 08:33:16+00:00
A format cannot be both human and machine readable. JSON is human readable, that's the point of it. Human readability is great for debugging only but it has an overhead because it's not machine friendly. Protobuf messages are both smaller and quicker to decode. If you're in an environment where you're handling millions of messages per second binary formats pay dividends. The number of messages viewed by a human is miniscule so there's no real gain to having that slow path. Just write a message dump tool.
by mcdeltat | 2025-08-05 08:33:20+00:00
> What I miss about being a young 20-something was how easy and willing everyone were to do stuff

Perhaps times have changed or my friends don't actually like me, but in my experience this hasn't been true since I was like 16. People are constantly busy or otherwise unwilling to go out and do stuff together. If it gets worse with age then the outlook is extremely grim...
by thatjoeoverthr | 2025-08-05 08:36:41+00:00
"Can they do this under pressure?" might in fact be a good question to test for and train for. A lot of real-life activity after graduation will involve some pressure.

But we could do what I'll call a "monastic exam".

You've got a week, not an hour, but it's in a little monastery and you don't have your phone or other unapproved tools.
by londons_explore | 2025-08-05 08:37:36+00:00
> big bowl of bland, flavorless word salad.

I guess nobody tried to adjust the temperature via the API then...

You can make something really unbland then!

Eg. "Write a 3 sentence story" Temperature=1

The old cat, Bartholomew, stretched languidly in a patch of afternoon sun, his purr a rumbling motor. A mischievous bluebird, emboldened by the cat's sleepy demeanor, swooped down to steal a whisker for its nest. Bartholomew's eyes snapped open, a silent promise that their game was far from over.

Temperature=2:

The old clockmaker found a gear he didn't recognize, its teeth shimmering with an otherworldly light. He fitted it into the grand clock tower, and as the hands struck midnight, the town square was bathed in a soft, silver glow. From that day on, no one in the town ever seemed to age.
by ff12wq111 | 2025-08-05 08:37:44+00:00
Love this perspective! Interactive fiction with LLMs sounds fascinating - there's something powerful about creating engaging experiences rather than just "saving the world."

Your point about making things more interactive really resonates. I think you're right that it could spark more curiosity and engagement, especially in younger people.

Do you have any demos or examples of what you're building? Would love to see how you're combining traditional interactive fiction with modern AI.
by defraudbah | 2025-08-05 08:38:08+00:00
PHP is that weird beast that no one wants to praise and yet it works tremendously well for those who manage to tame it.

I would likely never touch it as there are too many languages to use and what I know is more than enough to do my job, but I am super excited to see languages like PHP that aren't mainstream in my bubble to keep evolving
by ndsipa_pomu | 2025-08-05 08:38:19+00:00
It would be trivial to set it up to only delete old instances when free space goes below a threshold.

If the data can expose the driver to additional risks, then the driver can be exposed by someone stealing the vehicle and harvesting that data. Again, that can be trivially protected against using encryption which would also protect in the instance that communication was disrupted so that the tar isn't uploaded/deleted.
by kaoD | 2025-08-05 08:38:42+00:00
It could be this: https://stackoverflow.com/questions/67789309/why-do-i-get-an...

If you did something like:

const p1 = makeP1(); const p2 = makeP2(); return await Promise.all([p1, p2]);

It's possible that the heuristic didn't trigger?
by lurk2 | 2025-08-05 08:40:32+00:00
The point is that you can’t catch up, even making more money than you could ever reasonably hope to earn. If you had $220,000,000, you can catch up to Bezos in 60 some-odd years; but by then he will also have been compounding at 7% per annum, and will have north of $19,000,000,000,000, which is around 2/3rds of America’s GDP today. Of course, Jeff Bezos will be dead in 60 years, but this leads us to the core of the debate: What did Jeff Bezos’ children do that would warrant their wealth?
by Timwi | 2025-08-05 08:40:39+00:00
Readability (and hence, maintainability) is definitely a factor in decisions like this. In the particular case of the pipe operator though, the article does mention something it lets you do that you couldn't do before: in a context where only an expression is allowed (such as match), you can now do things that previously would not have worked because it would have required temporary variables.
by theshackleford | 2025-08-05 08:41:01+00:00
> It's not, it's fucking loud.

It's not. Source: I actually own it rather than having to rely on making broad generalisations.

> I live in a city

I also live in a city, many of us do. You are not unique. Many of us in my street have had to file numerous noise complaints against various cars in the street, yet i've never received a single complaint about my bike.

> I see that 99% of bikes are fucking twice louder as any car

Sounds like an issue specific to were you live. I couldnt tell you the last time I heard a bike around here, but the peace is disturbed here by a car almost every other minute of the day.

In fact, we have to pack up and move house because our neighbours car and his friends cars are so absurdly loud and they will sit there and just rev the shit out of them for 20-30 minutes at a time multiple times a day.
by Frieren | 2025-08-05 08:42:13+00:00
We live in the middle ages of computing. No reasonable laws, no regulations, rogue corporations doing whatever they please.

Can you imagine installing pipes in a building that can only be serviced by that one corporation? Can you imagine installing a sewage system in a city and only one corporation can ever access?

This is a new tax on ownership. Big corporations are taxing everybody else. Closed systems that could be easily repaired go to the trash or cost large amounts of money as serfs own nothing and lords get their share of all transactions.
by philipallstar | 2025-08-05 08:42:29+00:00
> We could count the dead of capitalist imperialist oppression and come to similar conclusions, but I don't think that's a productive converation.

Capitalism and imperialism aren't the same thing. That's the difference. Socialism is a total system where power and money are both controlled by the state. Under capitalism, the state has power, which can take different forms, and the market has money.

And ironically, the most imperial moves recently are with Socialist countries: Russia with Ukraine, Georgia, and Crimea, and China with Taiwan etc.
by ubercore | 2025-08-05 08:43:18+00:00
I believe I first came across this in the early xslt days, when I had a manager that wanted to write all software with an XML requirements spec, then use xslt to simultaneously generate code AND documentations.

1. It did not work because of course it didn't work 2. This meant that all data output of the system would done in XML and transformed, so I got to know xslt quite well 3. It did give me a fun moment at a conference where a speaker asked "Who knows the Schwartzian transform or has used it?" and only me and my coworkers raised their hands
by a3w | 2025-08-05 08:44:19+00:00
Nearly an aside, but:

Why are people still installing security cameras that are monitored by them? They increase stress level and felt insecurity. They do not make you feel secure, say psychological studies. You probably think more about burglaries and dead spaces in your setup and actively monitor for these in your daily lives, where for 99.8 % of people this should be a non-topic.

If you want to install them for later police work, that still seems tedious and you might require off-site backup. In public places we often have CCTV of people, but unless you have number signs on vehicles, they seem to not help with conviction rates by much.
by muzani | 2025-08-05 08:44:25+00:00
In interviews, I do care, but more on why you're using this stack. If you know only one stack and use that for everything, that's pretty bad. If you're thinking, "Hey let's use JS/Kotlin on every part of the stack," that hints at a fear of learning new stacks as well.

By ten years of experience, you should probably have used all the major tech stacks in your area of expertise. If you're BE, probably Go, Node, Rails, Django, Spring, maybe even PHP. If mobile you should be able to use native, capacitor, PWA, Flutter, React Native, maybe KMP. And so on.

It's sometimes a bonus if you're using something someone has never heard of. Y Combinator is named after a Lisp thing. PG was using Lisp as a hack while everyone else was using C and he credits it for his rapid development speed. Many tools are just built for teams of > 3, and lose the advantage of having a solo dev.

If you're competing with Google's AI team and you use something generic, then... you're probably not going to make it. If you're building something that doesn't require a lot of technical expertise, they might still want to suss out that you know the difference between JavaScript and Java.
by King-Aaron | 2025-08-05 08:44:49+00:00
Abstract:

Old, digitized astronomical images taken before the human spacefaring age offer a rare glimpse of the sky before the era of artificial satellites. In this paper, we present the first optical searches for artificial objects with high specular reflections near the Earth. We follow the method proposed in Villarroel et al. (2022) and use a transient sample drawn from (Solano et al. 2022). We use images from the First Palomar Sky Survey to search for multiple (within a plate exposure) transients that, in addition to being point-like, are aligned along a narrow band. We provide a shortlist of the most promising candidates, including one with ∼3.9σ statistical significance. As in previous cases (Villarroel et al. 2021, Solano et al. 2023), no known astrophysical or instrumental explanations fully account for these events. We explore remaining possibilities, including fast reflections from highly reflective objects in geosynchronous orbit, or emissions from artificial sources high above Earth's atmosphere. Notably, the ∼3.9σ candidate coincides in time with the Washington D.C. 1952 UFO flyover, and another (a ∼2.0σ candidate) falls within a day of the peak of the 1954 UFO wave (Figuet 1980). We also find a highly significant (∼22σ) deficit of transients from Solano et al. 2022 within Earth's shadow, supporting the interpretation that sunlight reflection plays a key role in producing these events. This study should be viewed as an initial exploration into the potential of archival photographic surveys to reveal transient phenomena, and we hope it motivates more systematic searches across historical datasets.