MurphyA/hacker-news huggingface dataset:
by toomuchtodo | 2025-04-21 20:36:41+00:00
The US had at least one year of solar PV deployment capacity in reserve before tariffs went into effect, ~50GW. It also has roughly the same amount of domestic manufacturing, but not fully vertically integrated. Gas plants are backordered well into the 2030s and coal plants (which only produced ~15% of electricity in the US in 2024) are teetering near retirement. To push either to failure would not be hard, you'd just have to target (legally, economically) specific parts of the supply chains needed for thermal generation construction (Siemens or GE Vernova) and operations/maintenance.

Tariffs and economic uncertainty are pushing down oil prices. The US O&G industry experiences pain below $70/barrel. It is not having a great time under this admin, as of this comment.

https://news.ycombinator.com/item?id=43624269 (citations)

'Unstoppable force' of solar power propels world to 40% clean electricity - https://news.ycombinator.com/item?id=43620007 - April 2025

Shift to Clean Energy Will Persist under Trump, New Analyses Say - https://www.scientificamerican.com/article/shift-from-fossil... - April 16th, 2025

‘Drill Baby Drill’ Is Drowning in Oil: Trump's tariffs are helping to create some of the worst conditions for the industry so far this century. - https://www.bloomberg.com/opinion/articles/2025-04-15/trump-... | https://archive.today/4Qyno - April 15, 2025

Texas Oil Executives Are Frustrated at Trump for Crushing Crude Prices - https://www.bloomberg.com/news/articles/2025-04-09/texas-wil... | https://archive.today/oHr2w - April 9, 2025
by jrapdx3 | 2025-04-21 20:36:47+00:00
As a search of the Tcl wiki shows, attempts to add named-argument capability to the Tcl proc command have been around for several years.

My own nxproc extension is more comprehensive. (See wiki [0].)

The extension enables named arguments, regular positional arguments, and 'rest' arguments, nxargs and nxunknown. Nxproc also provides (optional) type-checking of procedure arguments. (Types: string, number, bool and enumerated. Enums are lists of values restricting what the arg can contain.)

Nxproc supports TclOO with nxcontructor and nxmethod commands -- same feature set as "plain" nxproc. Also provides case-insensitive '-ci' variants, and runtime display of named-argument default/actual values and types.

Nxproc is a Tcl C extension. Bundle has Windows, Linux binaries. Compiles easily on other platforms.

[0] https://wiki.tcl-lang.org/page/nxproc
by manmal | 2025-04-21 20:37:43+00:00
I wish there were a variation that can destructure more ergonomically.

Instead of:

```

fetch_data()

|> (fn

{:ok, val, _meta} -> val :error -> "default value"

end).()

|> String.upcase()

```

Something like this:

```

fetch_data()

|>? {:ok, val, _meta} -> val

|>? :error -> "default value"

|> String.upcase()

```
by elmerfud | 2025-04-21 20:37:48+00:00
That's comparing two quite dissimilar things. The charging port on your phone is about standardization and interoperability between devices and with external devices. Governments typically have to do this because the industry fails utterly to do this even though it always benefits the industries to have standardization. You can simply look back at a plain telephone, those interfaces have been standardized and regulated. Electricity is also another thing that has been standardized and regulated. This breaks up monopolistic ecosystems and encourages innovation by having this standard in which many things can operate on. In some cases the industry comes together and forms a working group and agrees upon standards and everything is great in some cases, like Apple and they're charging port, they staunchly refuse to come together in a common agreement and this is really where governments need to step in because it makes it better for everyone. It always boggles my mind that companies actively work at harming their own future business growth.

I am really not sure how typing in a program that has been written on paper relates to any of those things that require standardization for interoperability.

My question was less about could they do it because governments can regulate all kinds of crazy things. It was more about why this would even come up as a thought and a proposal in your mind. Because the marketplace would actually solve for this problem all by itself. Distributing a program on media has an increased cost to it as opposed to just printing it out on some paper. Back in the day when these things were popular, if a given program was popular enough someone would write it down save it to a disk and distribute it for a nominal fee.
by aleph_minus_one | 2025-04-21 20:37:53+00:00
> I wonder how many other projects are not attributed correctly. Are you checking up on them also or just waiting for the next HN post?

As I wrote in my parallel post (https://news.ycombinator.com/item?id=43756102): these copyright violations (not giving proper attribution of the license requires it is copyright violation) from Microsoft's side (the more, the "better", and the clearer the message) can be considered de-facto, implicitly stated corporate messages from Microsoft's side that they are from now on officially fine with copyright violations, and thus everybody is from now on free to violate the copyright on every software product that Microsoft has ever produced.
Show HN: Guessing Game Inspired by the Bar Scene in Inglourious Bastards
by androidguy | 2025-04-21 20:38:14+00:00
I built a web app inspired by the bar scene in Inglourious Bastards, where characters guess identities with limited information.

You can try it here: https://xoself.com/guess

Scene that inspired it (starts ~5:40): https://www.youtube.com/watch?v=a6IVkQ8-Lx8
by packetlost | 2025-04-21 20:38:34+00:00
I don't think |> really can support applying the result of one of its composite applications in general, so it's not ambiguous.

Given this example:

(await getFutureAsyncFactory("bar"))("input")

the getFutureAsyncFactory function is async, but the function it returns is not (or it may be and we just don't await it). Basically, using |> like you stated above doesn't do what you want. If you wanted the same semantics, you would have to do something like:

("bar" |> await getFutureAsyncFactory())("input")

to invoke the returned function.

The whole pipeline takes on the value of the last function specified.
by mapt | 2025-04-21 20:39:03+00:00
Your attitude of tolerance is admirable.

If you queried a hundred random people who knew this same Russian and were similarly opposed to his politics, do you believe that one hundred of them would share your perspective? Or would a handful give that guy dirty looks at the bar because they were not in the exact same headspace you are in?

I struggle with comparisons because I'm trying to illustrate for you what those people are seeing when they spontaneously start acting that way that is different from what you're seeing. It's difficult to find any comparable situation as lopsided as Israel's relationship with Palestine, and the almost inscrutable international response to that relationship. Liberal tolerance ethics takes deliberate effort (generalization is a natural cognitive bias), and all of the people who would typically provide guidance on normative ideals suddenly took on the unprecedented position that we should exterminate a couple million people in what is effectively a concentration camp because of a violent outburst against the people who put them there, that this was Good and Righteous Justice, that anybody who didn't want to exterminate them were dangerous fringe actors. People who rejected this propaganda storm found themselves ideologically adrift, latching on to whatever floats.
by PebblesRox | 2025-04-21 20:40:11+00:00
I was part of a faith-based health sharing program for a few years. When it came time to cancel my membership, I had to call in and speak with a rep. I got past several rounds of retention attempts and succeeded in cancelling. The rep offered to pray for me before we ended the call and asked if I had any prayer requests. I mentioned something about getting over a bad cold and she said, “you know, one of the benefits that we offer—“

I felt a little bit bad about hanging up but mostly I was just mad.
by Jameswallner97 | 2025-04-21 20:40:16+00:00
FounderStack provides: - Complete startup document checklist - Every template you need (founder agreements, IP, NDAs) - Digital proof of ownership & creation dates - Secure digital vault for sensitive info: Passwords, Business Bank accounts, subscriptions - Clear record of who owns what

No more "I thought we agreed on X" moments. No more scrambling for docs during due diligence.

Early access (30% lifetime discount): sign out waitlist now! https://founderstack.co.uk/
by gerdesj | 2025-04-21 20:40:39+00:00
I'm no expert but:

"...ignoring the trivial case of 1 being an obvious factor of every integer."

I remember quite a big chunk of GEB formally defining how integers are really not trivial! The main problem seems to be is that you soon end up with circular reasoning if you are not razor sharp with your definitions. That's just in an explainer book 8)

Then you have to define what factor means ...
by SllX | 2025-04-21 20:40:48+00:00
No more unsettling than space in general is. It’s pretty hostile to life. We’re not just making turns around the orbital racetrack setup around the Sun, we’re also flying through space following the gravitational trail of the Sun as it races forward without a destination.

I was playing with Universe Sandbox over the weekend trying to figure out how to terraform Venus. Changing its axial rotation period to a day to match the Earth while I screwed around with its chemistry was enough to cause Europa and some of the other famous moons of Jupiter and Saturn as well as Charon to yeet themselves outside of the solar system within about 10 or 20 years of simulated time.
by hadlock | 2025-04-21 20:41:14+00:00
o3/o4 seem to know how to search things like pypi, crates.io, pkg.go.dev etc and apply those changes on the first try. My application (running on an older version of code) had a breaking change to how the event controller functioned in the newer version, o3 looked at the documentation and rewrote it to use the new event controller. It used to be that you were trapped with the LLM being 3-8 months behind on package versions.
by steveklabnik | 2025-04-21 20:41:29+00:00
> The blog post is unclear on if they will only be allowed to verify accounts as being part of NYT or if they will be allowed to give out blue checks to anyone in general.

On a technical level, any account can "verify" any other account.

On a practical level, blue checks are shown only if that verification comes from someone BlueSky trusts. Right now, that's bsky.app and nytimes.com.
by 9rx | 2025-04-21 20:42:15+00:00
"Enterprise" traditionally refers to code that is full of bad practices. Like, when Java was all the rage, FooFactoryBuilderFactory was the embolism of enterprise. In other words, where sloppy developers are found. Glad we were able to clear up that isn't what you meant.

So you are meaning – with respect to the code – the same as all other software? What, then, is "enterprise" trying to add? It is not like you would write code that makes billions any differently than you would a code that makes a dollar.
by ariejan | 2025-04-21 20:42:23+00:00
With Windsurf I'm able to pick any of the premium language models. I.e. Claude 3.7 Sonnet costs 1 credit / prompt, whereas the thinking model costs 1.25 credits, and o3 costs a whopping 7.5 credits.

It's simply passing on the cost of respective model's costs, I think. I can image it's hard to come up with an affordable / interesting flat rate _and_ support all those differently priced models.
by returningfory2 | 2025-04-21 20:42:40+00:00
> It's possible that this is a compiler bug. It's also possible that there's some fringe case where the reference actually can escape via that method call, and the compiler doesn't have enough context to rule it out.

Here's an example, I think: suppose the method spawns a new goroutine that contains a reference to `chunkStore`. This goroutine can outlive the `ReadBytes` function call, and thus Go has to heap allocate the thing being referenced.

In general, this kind of example makes me suspect that Go's escape analysis algorithm treats any method call as a black box and heap allocates anything being passed to it by reference.
by rohanphadte | 2025-04-21 20:42:41+00:00
The previous two token limits were: user prompt credits (500) flow actions credits (1500)

For power users, flow actions would deplete much more quickly (every time the LLM analyzed a file, edited, etc), so Windsurf removed the flow action limit, so you're only getting charged for 500 messages to the AI, which is strictly better for the user.
Show HN: A Medical Research Agent Built with BioMCP and Haystack
by oryx1729 | 2025-04-21 20:42:44+00:00
I created a simple app to explore how Agents & MCP can help with medical research. It connects to ClinicalTrials.gov, PubMed/PubTator, and MyVariant.info using the BioMCP Server(https://github.com/genomoncology/biomcp), and uses Haystack(https://github.com/deepset-ai/haystack) as the MCP Client.

The idea is to let users ask natural-language questions like: - Are there new studies on treating acne? - What trials exist for migraine prevention? - Show me trials for managing hay fever symptoms - What are some ongoing trails for never-smokers with lung cancer?

If you’re curious, here are the links: - MedOryx App: https://med-oryx.streamlit.app - MedOryx GitHub: https://github.com/oryx1729/med-oryx

Would love any feedback or thoughts.
by thot_experiment | 2025-04-21 20:42:53+00:00
I guess it depends on expectations, if your expectation is an CRUD app that opens in 5 seconds, then sure, it's definitely tedious. People do install things though, the companion app for DJI action cameras is 700mb (which is an abomination, but still). Modern games are > 100gb on the high side, downloading 8-16gb of tensors one time is nbd. You mentioned that there are 663 different models of dsr1-7b on huggingface, sure, but if you want that model on ollama it's just `ollama run deepseek-r1`

As a developer the amount of effort I'm likely to spend on the infra side of getting the model onto the user's computer and getting it running is now FAR FAR below the amount of time I'll spend developing the app itself or getting together a dataset to tune the model I want etc. Inference is solved enough. "getting the correct small enough model" is something that I would spend the day or two thinking about/testing when building something regardless. It's not hard to check how much VRAM someone has and get the right model, the decision tree for that will have like 4 branches. It's just so little effort compared to everything else you're going to have to do to deliver something of value to someone. Especially in the set of users that have a good reason to run locally.
by bryanlarsen | 2025-04-21 20:43:38+00:00
No it isn't. That's why I said that modelling is tool #1. The whole US might not go an hour without sun and wind, but your area might go 3 weeks. But the combination of your area and a neighboring area might max at 3 days. So thus instead of building a continent wide interconnect and no storage, you build a regional one and 3 days of storage.
by techpineapple | 2025-04-21 20:44:45+00:00
I remember reading a book on the Columbine shooter, and on some level I imagined evil, but a coherent evil, and it really was not, it was quite nonsensical and inconsistent. It was like 4chan logic.

I think when at the surrounding facts - a group of people who talk anti-woke but don’t seem to make a distinction between Jackie Robinson and “all white people are racist”, or willing to ignore every last economist in favor of blanket tariffs, or hiring a Fox News host to run your DOD in the first place! You’re telling me there aren’t enough conservative minds to choose from, in the fucking military! the simplest solution is that there isn’t a coherent ideology.

I think this makes sense, that sort of evil isn’t rational, but we’re so used to movie villains with a coherent ideology I think it poisons the reality. Go watch “The Last King of Scotland”. Idi Amin was the whole bag of nuts.
by rudedogg | 2025-04-21 20:45:28+00:00
Yeah, I was referring to their webapp/Chat, aka Gemini Advanced. It uses your prompts for training unless you turn off chat history completely, or are in their “Workspace” enterprise version.

https://support.google.com/gemini/answer/13594961?hl=en

> What data is collected and how it’s used

> Google collects your chats (including recordings of your Gemini Live interactions), what you share with Gemini Apps (like files, images, and screens), related product usage information, your feedback, and info about your location. Info about your location includes the general area from your device, IP address, or Home or Work addresses in your Google Account. Learn more about location data at g.co/privacypolicy/location.

Google uses this data, consistent with our Privacy Policy, to provide, improve, and develop Google products and services and machine-learning technologies, including Google’s enterprise products such as Google Cloud.

Gemini Apps Activity is on by default if you are 18 or older. Users under 18 can choose to turn it on. If your Gemini Apps Activity setting is on, Google stores your Gemini Apps activity with your Google Account for up to 18 months. You can change this to 3 or 36 months in your Gemini Apps Activity setting.
by kmeisthax | 2025-04-21 20:45:37+00:00
Without exception, every AI company is a play for your data. AI requires a continuing supply of new data to train on, it does not "get better" merely by using the existing trainsets with more compute.

Furthermore, synthetic data is a flawed concept. At a minimum, it tends to propagate and amplify biases in the model generating the data. If you ignore that, there's also the fundamental issue that data doesn't exist purely to run more gradient descent, but to provide new information that isn't already compressed into the existing model. Providing additional copies of the same information cannot help.
by sekao | 2025-04-21 20:45:48+00:00
Agreed. Zig's approach re-uses the existing machinery of the language far more than C++ templates do. Another example of this is that Zig has almost no restrictions on what kinds of values can be `comptime` parameters. In C++, "non-type template parameters" are restricted to a small subset of types (integers, enums, and a few others). Rust's "const generics" are even more restrictive: only integers for now.

In Zig I can pass an entire struct instance full of config values as a single comptime parameter and thread it anywhere in my program. The big difference here is that when you treat compile-time programming as a "special" thing that is supported completely differently in the language, you need to add these features in a painfully piecemeal way. Whereas if it's just re-using the machinery already in place in your language, these restrictions don't exist and your users don't need to look up what values can be comptime values...they're just another kind of thing I pass to functions, so "of course" I can pass a struct instance.
by jandrese | 2025-04-21 20:45:57+00:00
One of the ironies in the US is that some of the more conservative states with supposedly renewable energy hostile governments are actually deploying more solar than many liberal states. When people want to oppose a solar install for whatever reason they often turn to environmental laws, requiring impact studies or other such red tape, that are much weaker in conservative states. Texas is a champion of renewable installs despite a government that is openly pro-fossil fuel.
by israrkhan | 2025-04-21 20:46:03+00:00
I also really like Zed. But what prevents me from switching to Zed, is my workflow. I tend not to run desktop GUI applications on my main development machine (headless and sometimes remote). nvim is excellent in such circumstances. Also nvim is available on all platforms. I know Zed is also recently available on Linux, but I really doubt it will be as good as Zed on Mac.
by huyegn | 2025-04-21 20:46:14+00:00
I liked the pipelining syntax so much from pyspark and linq that I ended up implementing my own mini linq-like library for python to use in local development. It's mainly used in quick data processing scripts that I run locally. The syntax just makes everything much nicer to work with.

https://datapad.readthedocs.io/en/latest/quickstart.html#ove...
by bsder | 2025-04-21 20:46:38+00:00
So, for debugging, we're already in the REPL--which means an interactive environment and the very significant amount of overhead baggage that goes with that (heap allocation, garbage collection, tty, interactive prompt, overhead of macroexpand, etc.).

At the very least, that places you outside the boundary of a lot of the types of system programming that languages like C, C++, Rust, and Zig are meant to do.
by kmeisthax | 2025-04-21 20:46:44+00:00
Solely from reading the headline, I'm going to assume "update" means "price increase". I'm going to read the rest of the article before continuing the comment.

Alright, I'm back, this sounds like one of the rare times in which a pricing "update" is actually an update and not just a disguised increase. But I'm also not a Windsurf user, so let me jump through some of the comments and double-check that I didn't get hoodwinked.

...and the comments seem pretty positive, at least regarding the pricing. So I think this is actually one of those few times "update" means "update".
by aleph_minus_one | 2025-04-21 20:46:55+00:00
It is indeed sincere:

> We absolutely should have done better here: our company policy is to maintain copyright headers in files – we have added headers to the files to attribute your work.

This is a more than clear corporate statement from Microsoft's side that Microsoft is perfectly fine if copyrights are violated (implicitly including Microsoft's), as long as, if they get caught, people start giving proper credits. This implicitly implies that Microsoft promises that from now on they will only sue for getting proper attribution in case of copyright violations, and not for monetary compensation for damages.

I find this implicit statement really nice from Microsoft's side - actually more than what I could ever have wished for. :-)
by rozzie | 2025-04-21 20:46:59+00:00
I've been annoyed lately by posts (elsewhere) by vibe-coding startup CEOs who think they can build companies without developers. These are not serious people.

Recently, my head spun around a bit when I saw an experiment done by my team at blues, and I realized it was time for me to dig a bit deeper. https://www.tjvantoll.com/2025/03/17/vibecoding/

And so, over the past few weeks I've done an interesting CEO vibe-coding experiment of my own, trying to test the limits and to see how close I could come to building something that could be regarded as 'ship quality'.

Did I succeed? You be the judge.

I didn't write a single line of code in this repo, but, as HN would expect, my instructions were voluminous and needed to be quite detailed. An interesting experience, nonetheless.
by skydhash | 2025-04-21 20:47:08+00:00
> for instance having hundreds of different developers with widely varying levels of skill and talent

That's a management problem. Meaning you assess that risk and try to alleviate it. A good solution like you say is languages with good type checking support. Another is code familiarity and reuse through frameworks and libraries. A third may be enforcing writing tests to speed up code review (and checklist rules like that).

It's going to be boring, but boring is good at that scale.