MurphyA/hacker-news huggingface dataset:
Show HN: Roceet – File Sharing Platform
by yellow_dot | 2025-04-21 18:09:52+00:00
Roceet is a data sharing platform. Drop/Select your files, set your password (optional) and generate a sharable link.

I noticed my fiancee would always struggle to transfer files between her phone and laptop; like CVs and stuff. There's no cross platform AirDrop I know of, so she would usually email things to herself.

In its beta version, its only supports link sharing, but if the project gains tracktion I plan on developing mobile + desktop app with device-linking and device-targetted transfers; basically AirDrop over the web.

I would like to extend the current scope with team support; 1 bucket for multiple users.
by brudgers | 2025-04-21 18:10:25+00:00
the flash comment was very uninformed

https://youtu.be/1IyD1mLgyeM?si=FLVemqt1Dui4jLVU

If you are videoing for slow-mo you might have a 1/240 shutter speed.

If you want to freeze motion in a closeup. You want to be about an order of magnitude faster…and about two orders of magnitude faster than 30p.

In addition, video typically uses smaller sensors to improve depth of field at wide aperture — you don’t want bokka — and to keep lens size down (even though broadcast lenses are massive and six or seven figures).

And of course video tolerates a lot of motion blur and noise.

In other words, the fire truck doesn’t rely on garden hoses.
by s1artibartfast | 2025-04-21 18:11:07+00:00
Thats funny, I have had a substack account for a couple years and haven't seen this infinite feed. It seems like LiveJournal 2.0 the way I use it.

I agree that required post emails is user hostile, but trivially mitigated with email filters. From substack -> trash [omit any you want]
by feraidoon | 2025-04-21 18:11:08+00:00
I had something like this implemented for safely executing shell commands, by using metaprogramming:

name="A$ron"

z("echo Hello {name}")

Note that this is not an f-string. The z function expands the variables by parsing this string and accessing its caller's local variables.

https://github.com/NightMachinery/brish
by pityJuke | 2025-04-21 18:11:49+00:00
Good! I’ve been using a third-party labeller (which is a great hack), but making it more user friendly and official is a great thing.

I’m a proponent of verification only for “important people”. Yes, the definition of important is funny, and people may feel slighted by it: but I’ve yet to find a system that helps me identify high quality sources so immediately on a social media platform.
by bonzini | 2025-04-21 18:11:56+00:00
JP was a great communicator. He understood what it meant for the church to talk to the people—first by traveling to many countries and in opposition to communist atheism, later with the organization of the Journee Mondiale de la Jeunesse. During the late 90s there was a pretty big Catholic spiritual movement towards boys and girls in their late teens or early 20s and it's crazy how big the JMJ was.

His trick was hiding the conservative positions behind the mask of the beloved communicator.
by tstrimple | 2025-04-21 18:12:03+00:00
I ran into this problem when I was a smart ass early 20 something on 4chan. Those were fun times being sarcastic and hyperbolic for effect. Up until I realized that it wasn't just edgy satire for a good chunk of the crowd. They actually believed a lot of the ridiculous shit we were saying. Then I learned about Poe's law and cut WAY back on my online shitheadedness. But no... Unfortunately a lot of folks who say crazy stuff believe it.
by simonw | 2025-04-21 18:12:30+00:00
That's what (good) journalism is: the craft of hunting down sources of information, figuring out how accurate and reliable they are and piecing tougher as close to the truth as you can get.

A friend of mine is an investigative reporter for a major publication. They once told me that an effective trick for figuring out what's happening in a political story is to play different sources off against each other - tell one source snippets of information you've got from another source to see if they'll rebut or support it, or if they'll leak you a new detail because what you've got already makes them look bad.

Obviously these sources are all inherently biased and flawed! They'll lie to you because they have an agenda. Your job is to figure out that agenda and figure out which bits are true.

The best way to confirm a fact is to hear about it from multiple sources who don't know who else you are talking to.

That's part of how the human intelligence side of journalism works. This is why I think journalists are particularly well suited to dealing with LLMs - human sources lie and mislead and hallucinate to them all the time already. They know how to get (as close as possible) to the truth.
by Someone | 2025-04-21 18:13:00+00:00
Nitpick: Lisp didn’t start out as an interpreted language. It started as an idea from a theoretical computer scientist, and wasn’t supposed to be implemented. https://en.wikipedia.org/wiki/Lisp_(programming_language)#Hi...:

"Steve Russell said, look, why don't I program this eval ... and I said to him, ho, ho, you're confusing theory with practice, this eval is intended for reading, not for computing. But he went ahead and did it. That is, he compiled the eval in my paper into IBM 704 machine code, fixing bugs, and then advertised this as a Lisp interpreter, which it certainly was. So at that point Lisp had essentially the form that it has today”
by mkehrt | 2025-04-21 18:14:01+00:00
Catholicism isn't Protestantism. The idea that the Bible is the only source of truth is a Protestant idea and thus is very visible in the US. Catholicism, however, teaches that tradition and church teachings are sources of truth on par with the Bible. As such, for many teachings, especially those like Hell where the Bible is unclear, what it says isn't very relevant to Catholic doctine.
by BeetleB | 2025-04-21 18:14:10+00:00
The person I was responding to began with "Ignoring that Microsoft isn't following the MIT licensing requirements", and it is clear in his comment that he's not referring to the OP's issue, but the issue in general.

In other words, he's saying that even if it had been some other license, he wants attribution.

That's silly. If you want attribution, say it up front (which could simply mean picking the MIT license).
by teddarific | 2025-04-21 18:15:20+00:00
other Magic Patterns co-founder here —

to add on to Alex's answer above, we also differ in that we have a lot of features focused around brainstorming / exploring ideas, versus just spinning up a fullstack app. For example, we have a "Commands" feature that lets you get four variations (that are guaranteed to be different!) of a prompt.

We also have a Chrome extension that lets you import designs from your existing product to ideate on top of existing content.
by timonoko | 2025-04-21 18:15:31+00:00
Gemini:

Based on these figures, Finland has more main battle tanks than Sweden. Finland’s inventory of ~239 tanks exceeds Sweden’s estimated ~121–130 tanks by roughly 100–118 units. While Sweden’s Strv 122 is highly capable and considered among the best tanks globally, Finland’s larger number of Leopard 2 tanks gives it a numerical advantage.
by masklinn | 2025-04-21 18:15:33+00:00
> they really do want to allow either raw strings are a template string.

I’d consider that an invalid use case:

1. You can create a template string without placeholders.

2. Even if the caller does need to pass in a string (because they’re executing from a file, or t-strings don’t support e.g. facetting) then they can just… wrap the string in a template explicitly.
by bob1029 | 2025-04-21 18:15:34+00:00
> We’d love to hear from .NET developers

I think the .NET ecosystem is probably one of the worst applications of this kind of product. One major reason being that it already has a first-party vulnerability tracking system that is fully integrated into the visual studio + nuget experience [0].

The biggest reason for me is that I simply don't use 3rd party nugets as a .NET developer. It's almost always first party and very tightly controlled third party (i.e., official AWS SDK). The batteries are included. They're installed in the toy already and there's also a spare pack in the box just in case.

If you are working on modern .NET projects and having trouble managing all of your dependencies, you are definitely doing something suboptimal.

[0] https://learn.microsoft.com/en-us/nuget/concepts/auditing-pa...
by Terr_ | 2025-04-21 18:15:37+00:00
IIRC the usual workaround in Elixir involves be small lambda that rearranges things:

"World" |> then(&concat("Hello ", &1))

I imagine a shorter syntax could someday be possible, where some special placeholder expression could be used, ex:

"World" |> concat("Hello ", &1)

However that creates a new problem: If the implicit-first-argument form is still permitted (foo() instead of foo(&1)) then it becomes confusing which function-arity is being called. A human could easily fail to notice the absence or presence of the special placeholder on some lines, and invoke the wrong thing.
by consumer451 | 2025-04-21 18:15:40+00:00
One would hope, but when I last gave this some thought... If you are in the C-suite, and could deploy your best devs to maybe save some unknown % on energy costs, or have them work on a well-defined new feature that grows your ARR 5% next year, which would you do?

Also, would you share all new found efficiencies with your competitors?
by viccis | 2025-04-21 18:15:55+00:00
>Ironically, the nice people at the other pub who told me are Lebanese.

Why is it ironic that an Arab would be nice to you? Ignoring the racial/national assumption here, political views from diasporic Arabs, especially older ones who immigrated many years ago, are incredibly diverse and often more contingent on their local issues than world politics. People make the same mistake when assuming political views towards Mexico from Latinos (both Tejano and Mexican) in Texas, for example.

>my old antifa "friends"

Most antifa folks are gonna have a very clear cut moral stance on the state of Israel, even before Hamas' military began the Al-Aqsa Flood operation. Be honest now, have they distanced themselves from you because of your identity, or is it because of your opinions on the actions of the state of Israel? Because even the most hardline "antifa" types I know are more than happy to organize with the likes of SJP and similar organizations of Jewish and Israeli people.
by kazinator | 2025-04-21 18:16:32+00:00
Classic proverbs in English do not use "person". They use "man". "man" is the word that was used for "person" well into the 20th century, before political correctness took over speech and writing. For instance, the opening narrative for the original Star Trek TV sci-fi series starring William Shattner and Leonard Nimoy uses the words "to boldly go where no man has gone before".

If I were to make a literal translation, it would require the word "find" used in a reflexive/passive tense something like "given a person, an article can be found".

I made the translation fit a proverbial pattern, similar "where there is smoke, there is fire".

Also note that "chelovyek", though not denoting a male, is still a masculine word! A chlovyek's pronouns are "he/him". The cognate of that word in other Slavic languages, likewise masculine.

There are also precedents, like the title of Alexandr Men's book Syn Chelovecheskiy being translated to English as Son of Man.
by teddarific | 2025-04-21 18:17:19+00:00
Other tools are AMAZING for spinning up actual fullstack apps and use cases that require persistent storage. But actual product teams aren’t asking for that.

Also, our customers tell us that anecdotally it feels like we error less compared to other tools because we are focused entirely on frontend (there’s less room for error). Of course, we still error a lot - not easy when natural language is your input set!! - but it helps to stay focused and theres less dependencies on a backend & database.

p.s. one of my personal favorite parts of Magic Patterns is that you can very easily revert to a previous version, which is possible because no backend or database!
by Someone | 2025-04-21 18:17:42+00:00
> The only way for anything to infer that the template string is supposed to turn into valid HTML or SQL is to base it of the apparent syntax in the string

Not the only thing. You can also look at how it is used. Your editor could know of how some popular libraries use t-strings, track which t-strings get passed into functions from those libraries, and use that to assume what grammar the t-string should follow.

Is that cheating? In some sense, yes, but it also is useful and likely will be worth it for quite a few programmers.
by 9rx | 2025-04-21 18:18:19+00:00
Go recognizes the arrogance of language designers (Pike is a team member, so it was hard for such a thing to go unnoticed!), hence why they put their theories to the real-world test instead of just guessing. Most languages seem to pack in feature after feature because some random nobody on the internet thought it would be a good idea without ever seeing if their thought could be proven as a good one, but Go tries to actually show it first.

Which is also why it draws so much ire. It speaks the truths developers don't like to admit.
by cyberbanjo | 2025-04-21 18:18:22+00:00
install_firefox() { source /etc/os-release printf "Package: snapd Pin: release a=\* Pin-Priority: -10" | sudo tee -a /etc/apt/preferences.d/nosnap.pref sudo add-apt-repository -y ppa:mozillateam/ppa sudo apt update -y sudo apt install -y -t 'o=LP-PPA-mozillateam' firefox printf "%s" "Unattended-Upgrade::Allowed-Origins:: \"LP-PPA-mozillateam:${UBUNTU_CODENAME}\";" | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox printf "Package: firefox\* Pin: release o=LP-PPA-mozillateam Pin-Priority: 501" | sudo tee /etc/apt/preferences.d/mozillateamppa } remove_snaps() { sudo snap remove --purge firefox sudo snap remove --purge snap-store sudo snap remove --purge gnome-3-38-2004 sudo snap remove --purge gtk-common-themes sudo snap remove --purge snapd-desktop-integration sudo snap remove --purge bare sudo snap remove --purge core20 sudo snap remove --purge snapd sudo apt remove --autoremove snapd -y cat <<EOF | sudo tee /etc/apt/preferences.d/nosnap.pref # To prevent repository packages from triggering the installation of Snap, # this file forbids snapd from being installed by APT. # For more information: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html Package: snapd Pin: release a=* Pin-Priority: -10 EOF sudo umount /var/snap }
by pron | 2025-04-21 18:18:22+00:00
> According to the link that’s not the case with the Zig comptime machinery. It’s effectively duck-typed from the point of view of the client (declaration).

It is "duck-typed", but it is checked at compile time. Unlike ducktyping in JS, you know whether or not your type is a valid argument just as you would for Java type bounds -- the compiler lets you know. Everything is also all spelled out, just in a different way.

> It’s about as aesthetic as having spelled out reasons (usability) for preferring static typing over dynamic typing or vice versa. It’s really not. At all.

But everything is checked statically, so all the arguments of failing fast apply here, too.

> I prefer meaningful leaps forward in programming language usability over supposed most-streamlined and clever approaches (comptime all the way down). I guess I’m just a pragmatist in that very narrow area.

We haven't had "meaningful leaps forward in programming language usability" in a very long time (and there are fundamental reasons for that, and indeed the situation was predicted decades ago). But if we were to have a meaningful leap forward, first we'd need some leap forward and then we could try learning how meaningful it is (which usually takes a very long time). I don't know that Zig's comptime is a meaningful leap forward or not, but as one of the most novel innovations in programming languages in a very long time, at least it's something that's worth a look.
by reissbaker | 2025-04-21 18:18:32+00:00
I was responding to your claim "the local culture was preserved, no one was forced out."

If you just keep making things up, providing no sources, and then backtracking and acting as if your claims were meaningless as soon as they're disproved, there's really no point to engaging with you. This has happened over and over. Not to mention the constant victim blaming, and claiming that victims must be biased and therefore not trusted.

There is a reason no non-Muslims are interested in living under a Muslim caliphate. If you refuse to understand why after being given numerous examples, that's on you.
by pauleveritt | 2025-04-21 18:18:40+00:00
This is what we discussed in the first revision of the PEP (the use of `Annotated`.) But we found out: linters don't know anything about the Python type system.

We hope to get a community around all of this, stuff at PyCon US, EuroPython, etc. and work some of this out. The JSX/TSX world really has good tooling. We can provide that for those that want it, perhaps better on some aspects.
by mrguyorama | 2025-04-21 18:18:55+00:00
Life insurance isn't for you.

Life insurance is for the Husband/Wife, Daughter, and Son you left behind to replace the income you used to support them with and pay for the (abhorrently and unethically expensive) process of putting you in the ground in most places.

It's the lottery you don't ever want to win.

Most people do lots of things that don't benefit themselves to the exclusion of all others.
by Terr_ | 2025-04-21 18:20:20+00:00
BTW, there's a convenience macro of Kernel.then/2 [0] which IMO looks a little cleaner:

params |> Map.get("user") |> create_user() |> then(&notify_admin("signup", &1)) params |> Map.get("user") |> create_user() |> then(fn user -> notify_admin("signup", user) end)

[0] https://hexdocs.pm/elixir/1.18.3/Kernel.html#then/2
by daxfohl | 2025-04-21 18:20:22+00:00
I've been using it to learn Lean, the proof assistant language, and it's great. The code doesn't always compile, but the general structure and approach is usually correct, and it helps understand different ways of doing things and the pros, cons, and subtleties of each.

From this it has me wondering if AI could increase the adoption of provably correct code. Dependent types have a reputation for being hard to work with, but with AI help, it seems like they could be a lot more tractable. Moreover, it'd be beneficial it the other direction too: the more constraints you can build into the type system of your domain model, the harder it will be for an AI to hallucinate something that breaks it. Anything that doesn't satisfy the constraints will fail to compile.

I doubt it, but wishful thinking.
by pc86 | 2025-04-21 18:20:32+00:00
Can you see how even the fact that police will knock on your door for a social media post will by definition have a chilling effect on free expression? Will low wage hourly workers in the UK feel secure in voicing their dissatisfaction with their child's school knowing that, while they might be convicted of a crime for doing so, it will probably get overturned on appeal even though they'll lose their job in the interim; or, will they just shut up and go along with whatever they're unhappy about?
by zamalek | 2025-04-21 18:21:21+00:00
> If so, women are really only physically bound to the child through the pregnancy.

Financially also. In America, child birth will set you back 10-15k insured or 30-50k uninsured. Who pays for that? The woman who has been unable to work due to the debilitating condition that late stages of pregnancy is for most woman?

> Once the child is born, the woman can give it up for adoption and be done with it forever.

That doesn't deal with what happens to the child. I assume the GP comment is concerned with "pro-life" vs "pro-birth." Many self-proclaimed pro-lifers actually advocate for birth, not life.
by te_chris | 2025-04-21 18:21:24+00:00
Yeah I cut it by accident during the pandemic. It already sucked then - person you follow liked this is what did me in. Elon just finished it off.

I suspended my account, without realising if I left it for n days it would be deleted. Went back one day and there was someone else with my handle. Actually felt relieved as the whole thing was gone. Didn’t get a chance to worry about an archive.
by AStonesThrow | 2025-04-21 18:21:27+00:00
> a couple of white lies

Don't ever approach it this way. You never need to lie, and preparing for an interview with "lies" in your mind is going to backfire on you.

You can use the technique of "mental reservation". There is always something positive or complimentary that can be said about every bad situation, every horrible supervisor. It is simply a matter for you to examine it dispassionately, extract the good, and frame that nicely without introducing insults or the real negativity and pain that you felt in the moment.

If your supervisor overworked you and you were induced to come in for 70-hour weeks and you ultimately burned out with no vacation or weekends, you could say that the management "was quite dedicated to the company's goals and productivity". If you considered your coworkers to be slackers and they never seemed to work, "the company accommodated a wide range of talents, skills and abilities." If you never saw your supervisor and had nearly no guidance on projects or tasks, "the management believed in me and trusted me to do the right thing in nearly every respect."

These are not lies and you should not lie, because if you go counterfactual, that will be found out. If, on the other hand, they know you had a difficult time and you still found ways to compliment those bastards, then perhaps you will do the same favor for them one day.
by masklinn | 2025-04-21 18:21:40+00:00
> The problem is writing f instead of t => and this will silently work I assume (not a Python dev just trying to understand the language design)

In the fullness of time it has no reason to. Even in the worst case scenario where you have to compose the query dynamically in a way t-strings can’t support, you can just instantiate a Template object explicitely.
by mos_basik | 2025-04-21 18:21:58+00:00
Yeah. A while back I was poking through some unfamiliar code and noticed that my editor was rendering a use of `datetime.utcnow()` as struck through. When I hovered it with my mouse, I got a message that that function had been deprecated.

Turns out my editor (vscode) and typechecker (pyright) saw that `datetime.utcnow()` was marked as deprecated (I know one can use the `@deprecated` decorator from Python 3.13 or `__future__` to do this; I think it was done another way in this particular case) and therefore rendered it as struck through.

And it taught me A) that `utcnow()` is deprecated and B) how to mark bits of our internal codebase as deprecated and nudge our developers to use the new, better versions if possible.
by submeta | 2025-04-21 18:22:10+00:00
> How LLM-powered programming tools amplify developer capabilities rather than replace them

This is my experience as well. You have to know what you want, how to interfere if things go in the wrong direction, and what to do with the result as well.

What I did years ago with a team of 3-5 developers I can do now alone using Claude Code or Cursor. But I need to write a PRD, break it down into features, epics and user stories, let the llm write code, review the results. Vibe coding tools feel like half a dozen junior to mid level developers for a fraction of the cost.
by aerhardt | 2025-04-21 18:22:20+00:00
I only have the 4o option for completions. Like, I see the option in the settings but the dropdown only produces 4o for me. I seem to remember that in github.com I have all the models exposed, but in PyCharm I only get that for autocomplete. I do get a wider model choice in the chat pane. I'll look into it.