MurphyA/hacker-news huggingface dataset:
Show HN: Dayflow – A git log for your day
by jerryliu12 | 2025-09-24 14:53:57+00:00
Hi HN! I've been building Dayflow, a macOS app that automatically tracks what you're actually working on (not just which apps you have open).

Here's what it does:

- It creates a semantic timeline of your day;

- It does it by understanding the content on your screen (with local or cloud VLMs);

- This allows you to see exactly where your time went without any manual logging.

Traditional time trackers tell you "3 hours in Chrome" which is not very helpful. Dayflow actually understands if you're reading documentation, debugging code, or scrolling HN. Instead of "Chrome: 3 hours", you get "Reviewed PR comments: 45min", "Read HN thread about Rust: 20min", "Debugged auth flow: 1.5hr".

I was an early Rewind user but rarely used the retrieval feature. I built Dayflow because I saw other interesting uses for screen data. I find that it helps me stay on track while working - I check it every few hours and make sure I’m spending my time the way I intended - if I’m not, I try to course correct.

Here’s what you need to know about privacy:

- Run 100% locally using qwen2.5-vl-3b (~4GB model)

- No cloud uploads, no account

- Full source available under MIT license (https://github.com/JerryZLiu/Dayflow)

- Optional: BYO Gemini API key for better quality (stored in Keychain, with free-tier workaround to prevent training on your data)

The tech stack is pretty simple, SwiftUI with a local sqlite DB. Uses native macOS apis for efficient screen captures. Since most people who run LLMs locally already have their tool of choice (Ollama, LLMStudio, etc.), I decided to not embed an LLM into Dayflow.

By far the biggest challenge was adapting from SOTA vision models like Gemini 2.5 Pro to small, local models. My constraints were that it had to take up <4GB of ram and have vision capabilities. I had to do a lot of evals to figure out that Qwen2.5VL-3B was the best balance of size and quality, but there was still a sizable tradeoff in quality that I had to accept. I also got creative with sampling rates and prompt chunking to deal with the 100x smaller context window. Processing a 15 minute segment takes ~32 local LLM calls vs 2 Gemini calls!

Here’s what I’m working on next:

Distillation: Using Gemini's high-quality outputs as training data to teach a local model the patterns it needs, hopefully closing the quality gap.

Custom dashboards where you can track answers to any question like "How long did I spend on HN?" or "Hours until my first deep work session of the day

I'd love to hear your thoughts, especially if you've struggled with productivity tracking or have ideas for what you'd want from a tool like this.
by mpweiher | 2025-09-24 14:54:01+00:00
1. The WWW would like a quick word with you regarding function calls having won.

2. You are making an invalid assumption, which is that we only get to have one tool in our toolbox, and therefore one tool has to "win". Even if function calls were the best tool, they would still not always be the right one.

With the benefit of hindsight, it’s clear that these properties of structured programs, although helpful, do not go to the heart of the matter. The most important difference between structured and unstructured programs is that structured programs are designed in a modular way. Modular design brings with it great productivity improvements. First of all, small modules can be coded quickly and easily. Second, general-purpose modules can be reused, leading to faster development of subsequent programs. Third, the modules of a program can be tested independently, helping to reduce the time spent debugging.

However, there is a very important point that is often missed. When writing a modular program to solve a problem, one first divides the problem into subproblems, then solves the subproblems, and finally combines the solutions.

The ways in which one can divide up the original problem depend directly on the ways in which one can glue solutions together. Therefore, to increase one’s ability to modularize a problem conceptually, one must provide new kinds of glue in the programming language.

-- John Hughes, Why Functional Programming Matters

https://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf

via

https://blog.metaobject.com/2019/02/why-architecture-oriente...

3. Procedure calls are not particularly composable

See CORBA vs. REST.
by afandian | 2025-09-24 14:54:03+00:00
I visited Sweden this summer. One or two things accepted only Swish payment. Seems to be impossible for a visitor to use, you need to set it up with your bank.

I managed by asking a friend to use theirs. But don't assume that tech that "makes life easier" automatically means that it's inclusive. (See also parallel discussion today about EU Age Verification app [0]).

[0] https://news.ycombinator.com/item?id=45359074
by Zak | 2025-09-24 14:54:16+00:00
I've had four overnight delays on three transatlantic trips this year. Fortunately, EU passenger compensation rules applied to three of them; the airline must pay each delayed passenger 600€ or convince them to take a more compelling non-cash offer.

I'm not for heavily regulating non-safety details of how most industries do business, but I do think it's fair to demand the true price up front and compensation when the airline doesn't provide the service it sold for reasons within its control.
by btown | 2025-09-24 14:54:19+00:00
But this, too, skips over some nuance. There are a few types of actors here:

- small content creators who want to make their content accessible to individuals

- companies that want to gobble up public data and resell it in a way that destroys revenue streams for content creators

- gatekeepers like Cloudflare who want to ostensibly stop this but will also become rent-extractors in the process

- users who should have the right to use personal tools like yt-dlp to customize their viewing experience, and do not wish to profit at the expense of the creators

We should be cautious both that the gatekeepers stand to profit from their gatekeeping, and that their work inhibits users as well.

If creators feel this type of user (often a dedicated fan and would-be promoter) is a necessary sacrifice to defend against predatory data extractors… then that’s absolutely the creator’s choice, but you can’t say there’s a unified “us” here.
by gmuslera | 2025-09-24 14:54:27+00:00
And that without counting memes and other graphic version of some text, some even sent by mail, or image captures or whatever of long and sometime critical pieces of text (i.e. certificates).

It was something not specific of mobile apps, it was something present on internet for some decades (specially when bandwidth or mailbox sizes didn't added enough to be a concern to send something as image instead of text).

But in this particular moment of history, we have AIs that can extract the text from an image, do the translation and maybe write an answer about what is there. Or be a new attack vector against AI agents.
by stonemetal12 | 2025-09-24 14:54:42+00:00
I copy pasted it in to google. The first result might be it but it says "Please note, that this is a legacy course. ... The course content is also no longer updated or maintained."

No hint on how old and moldy it is. Does it teach a relatively recent Java or 1995 Java?

So asking if that is the right one doesn't seem out of line.
by coldtea | 2025-09-24 14:54:42+00:00
>I don’t call them fascists baselessly – someone who speaks out in support of and expresses solidarity with fascists, or who uses fascists dog-whistles or promotes fascist ideology and talking points, or boosts fascist conspiracy theories – well, they’re a fascist

Or this is just a circular argument, since you first labeled everything you don't like in politics or ideology as "fascist", "a fascist dog whistle", a "fascist conspiracy theory", etc, so then it's easy to mark any person who approves of any of those things as someone who "speaks out in support of and expresses solidarity to fascism", thus also a fascism.

There's no shortage of mere conservative or even leftist ideas or practices that have been labelled "fascist" in modern discourse. It's fascism-ception.

There are some negative developments, as there have been in previous administrations as well (from McCarthyism and Hoover era political meddling, to the post 9/11 establishment of black sites, the normalization of torture, the Patriot Act, and many other things, including the government's promoting "fact-checking" and funding "independent" organizations that spread throughout the media). Under the current US administration there's the stomping of the right to protest when it comes to Israel, ICE revamp, deporting without due process to places like El Salvator, and other issues.

But until people can criticize political developments like adults, and not with knee-jerk "fascist" / "communist" / "evil" accusations against the other side, political discourse will be worse than Reddit comment sections.
by pron | 2025-09-24 14:54:48+00:00
You call it weak selective pressures, but another way of saying it is low fitness advantage. And we can see that because the programming language landscape is far from static, and newcomers do gain adoption very quickly every now and then.

In fact, when we look at the long list of languages that have become super-popular and even moderately popular - including languages that have grown only to later shrink rather quickly - say Fortran, COBOL, C, C++, JavaScript, Java, PHP, Python, Ruby, C#, Kotlin, Go, TypeScript, we see languages that are either more specific to some domains or more general, some reducing switching costs (TS, Kotlin) some not, but we do see that the adoption rate is proportional to the language's peak market share, and once the appropriate niche is there (think of a possibly new/changed environment in biological evolution) we see very fast adoption, as we'd expect to see from a significant fitness increase.

So given that many languages displace incumbents or find their own niches, and that the successful ones do it quickly, I think that the most reasonable assumption to start with when a language isn't displaying that is that its benefits just aren't large enough in the current environment(s). If the pace of your language's adoption is slow, then: 1. the first culprit to look for is the product-market fit of the language, and 2. it's a bad sign for the language's future prospects.

I guess it's possible for something with a real but low advantage to spread slowly and reach a large market share eventually, but I don't think it's ever happened in programming languages, and there's the obvious risk of something else with a bigger advantage getting your market in the meantime.
by hyperman1 | 2025-09-24 14:54:50+00:00
I see 2 nasties here:

On one hand, this is a clear overreach of the courts: They gave a private party the right to censor random sources without judicial oversight.

On the other hand, the courts still need to judicate in their respective countries. If cloudflare says: We're in another country so the courts cant make us block illegal things, well, the courts have to overblock or they lose the ability to enforce their decisions.
by mystraline | 2025-09-24 14:55:14+00:00
Ive asked this before with no answer:

A browser (say, Firefox) is a "User Agent". Agents are supposed to act on our behalf, and in our best interests when ambiguities are present.

So, why are OUR user agents acting on behalf of website operators and their admins and users, and not on our behalf?

Having CSS that prevents usability shouldn't be implemented. Or it should be an easy toggle to turn on/off, without having to resort to Ublock Origin filters.

Same with 'prevention of right-click'. Why is this even implemented?

Or JavaScript also has a lot of onerous calls that are anti-user. I can understand why some of them are needed, but again, should be trivial to toggle.

So, why aren't our agents acting like proper agents?
by crazygringo | 2025-09-24 14:55:14+00:00
A CRDT requires its own data model that becomes, in a sense, the "main" data model. Because its design and constraints effectively become the design and constraints and requirements on the downstream data snapshot.

CRDT's generally require you to track a lot more stuff in your snapshot model than you would otherwise, in order to create messages that contain enough information to be applied and resolved.

E.g. what was previously an ordered list of items without ID's may now need to become a chain of items each with their own ID, so you can record an insert between two other items rather then just update the list object directly.

So yes, the CRDT is effectively your data model.
by Manuel_D | 2025-09-24 14:55:26+00:00
Not quite: prior to the communications Decency Act of 1996 (which contained section 230), companies were also not liable for the speech of their users, but lost that protection if they engaged in any moderation. The two important cases at hand are Stratton Oakmont, Inc. v. Prodigy Services Co. And Cubby, Inc. v. CompuServe Inc.

The former moderated content and was thus held liable for posted content. The latter did not moderate content and was determined not to be liable for user generated content they hosted.

Part of the motivation of section 230 was to encourage sites to engage in more moderation. If section 230 were to be removed, web platforms would probably choose to go the route of not moderating content in order to avoid liability. Removing section 230 is a great move if one wants misinformation and hateful speech to run unchecked.
by suninsight | 2025-09-24 14:55:43+00:00
So I can attest to the fact that all of the things proposed in this article actually works. And you can try it out yourself on any arbitrary code base within few minutes.

This is how: I work for a company called NonBioS.ai - we already implement most of what is mentioned in this article. Actually we implemented this about 6 months back and what we have now is an advanced version of the same flow. Every user in NonBioS gets a full linux VM with root access. You can ask nonbios to pull in your source code and ask it to implement any feature. The context is all managed automatically through a process we call "Strategic Forgetting" which is in someways an advanced version of the logic in this article.

Strategic Forgetting handles the context automatically - think of it like automatic compaction. It evaluates information retention based on several key factors:

1. Relevance Scoring: We assess how directly information contributes to the current objective vs. being tangential noise

2. Temporal Decay: Information gets weighted by recency and frequency of use - rarely accessed context naturally fades

3. Retrievability: If data can be easily reconstructed from system state or documentation, it's a candidate for pruning

4. Source Priority: User-provided context gets higher retention weight than inferred or generated content

The algorithm runs continuously during coding sessions, creating a dynamic "working memory" that stays lean and focused. Think of it like how you naturally filter out background conversations to focus on what matters.

And we have tried it out in very complex code bases and it works pretty well. Once you know how well it works, you will not have a hard time believing that the days of using IDE's to edit code is probably numbered.

Also - you can try it out for yourself very quickly at NonBioS.ai. We have a very generous free tier that will be enough for the biggest code base you can throw at nonbios. However, big feature implementations or larger refactorings might take time longer than what is afforded in the free tier.
by catapart | 2025-09-24 14:56:04+00:00
Good UX means including translations for supported languages, not telling the user "do it yourself by highlighting content".

Not translating entire articles to a language you don't support has the easy remedy of letting people select the text and use third party tools to support their specific use-cases. But not including translations for your clickable content for languages that aren't supported are the literal practical limits of ability. I would rather my apps work for people in languages I do support, with full accessibility (and minimal scripting overhead), than to have them work poorly for keyboard-only users in all languages, regardless of my app's support for them.

Again, we're talking about the stuff that should be iconic. Things that can literally be represented by icons. Buttons and tab headings. Things that you shouldn't actually need translated AT ALL, much less into every single language there is.
by numpad0 | 2025-09-24 14:56:10+00:00
You don't want Palantir to be able to buy list of Uber riders traveled to/from locations near MI6. A universal government backed ID cards on signup, or worse yet used as substitute for credit cards, makes that kind of things easy.

You can have such ID card system that can produce proof of authenticity of card itself, without any digitized card-face information included. I think that's how most existing systems are implemented.
by mpweiher | 2025-09-24 14:56:34+00:00
> And for the places like client/server-communication: This is kind of where "call/return" usually shines.

The WWW would like a quick word with you. CORBA as well, if it could get a word in.

> we already have other tools (signals, observables, effects, runes,...)

We can build them. We can't express them. We can also build everything out of Turing Machines, or Lambda Calculus or NAND gates.
by boston_clone | 2025-09-24 14:56:50+00:00
It's an unnecessary claim to be made that only serves to promote FUD, which is why a lot of rationalists are debunking it.

That's like saying "during an arrest a car was impounded - this vehicle has the capability to plow into a school and harm children". Like yeah sure the capability is there, but without evidence of intention, why say it?
by bitwize | 2025-09-24 14:56:54+00:00
Duh. I've known this for decades. The biggest advocates for DRM I've known are small-time content creators: authors, video producers, musicians. They've been saying the same thing since the 90s: without things like DRM, their stuff would be pirated, and they'd like to earn a living doing what they love instead of grinding at a day job to support themselves while everybody benefits from their creative output. In addition, major publishers and record labels won't touch stuff that's been online because of the piracy risk. They don't want to make an investment in smaller creators without a return in the form of sales of copies. That last bit is less true of music now than it used to be because of streaming and stuff, but the principle still applies.

This is why the DMCA will never be repealed, DRM will never go away, and there is no future for general purpose computing. People want access digital content, but the creators of that content wouldn't release it at all if they knew that it could be copied endlessly by whomever receives it.
by potato3732842 | 2025-09-24 14:57:11+00:00
>Tracking enforcement officials decreases their ability to enforce and makes them easier to target.

Why is that a bad thing? God forbid the enforcers only have the effective power to enforce where there is sufficient local support that they feel safe doing so. Sounds like a pretty effective check on power to me.

There was a case in my city a few years ago where the state police pulled someone over, found the passenger had weed on his person was in the process of arresting him but had to abort and he fled on foot because they initiated the stop in a supermarket parking lot at a busy time and the passers by were numerous and displeased enough the officers felt unsafe.

I get that people get their panties in a knot over the idea that the government might have less practical ability to enforce petty civil nuisance stuff like parking but the flip side of this is that when you need serious resource investment to do things people don't like (like arresting weed dealers, ICE raids, etc), you do a lot less of it. And that's a tradeoff that I think is very worth making.
by lisper | 2025-09-24 14:57:18+00:00
> Is there any way to use HN karma?

Nothing other than vanity AFAIK.

It's actually a bit of a scam because karma accumulates and never expires. I've been on the leaderboard for a long time, not because I'm making particularly valuable contributions (I only post a few times a week) but just because I've been on HN since it launched.
by stevenwoo | 2025-09-24 14:57:29+00:00
The problem is the soundbite of some of these studies on the surface is ridiculous to lay people but even good studies with bad sound bites are used as weapons against science funding in the USA. The shrimp on a treadmill study is still used as argument against science funding today. https://www.npr.org/2011/08/23/139852035/shrimp-on-a-treadmi...
by motakuk | 2025-09-24 14:57:35+00:00
Hi Hacker News! Matvey, Ildar, Joey, and Dominik here. Anthropic introduced the Model Context Protocol (MCP) almost a year ago, and the community has built thousands of open-source MCP servers, but there are a few issues.

Local MCP servers are executables, and running straight from GitHub is quite dangerous. Also, to start the local MCP server and connect it to, for example, Gmail, one needs to register a Google Cloud account, issue a file with OAuth tokens, place it in a specific directory, and set the environment variable.

We built Archestra, a simple desktop orchestrator for open source MCP servers, enabling you to install and use self-hosted & remote MCP servers with just a few clicks. It's running local MCP servers in a Podman sandbox to prevent access to the host, dynamically adjusts the set of enabled tools, and maintains permanent memory. Most importantly, it handles authentication through the UI via OAuth or by retrieving API keys from the browser and launches MCP servers accordingly.

Archestra is open source and MIT: https://github.com/archestra-ai/archestra

A short demo, using GitHub, Gmail and Slack MCPs: https://www.loom.com/share/84ea6a684f014ebba5e39dd0dd0242a2

You can try it yourself by downloading the app and using it with local models, OpenAI, or some of our free tokens: https://archestra.ai.
by throwaway0123_5 | 2025-09-24 14:58:15+00:00
I think saying that "LLMs can produce outcomes akin to those produced by human intelligence (in many but not all cases)" and "LLMs are intelligent" to both be fairly defensible.

> I see no reason whatsoever to believe that what your wet meat brain is doing now is any different from what an LLM does.

I don't think this follows though. Birds and planes can both fly, but a bird and a plane are clearly not doing the same thing to achieve flight. Interestingly, both birds and planes excel at different aspects of flight. It seems at least plausible (imo likely) that there are meaningful differences in how intelligence is implemented in LLMs and humans, and that that might manifest as some aspects of intelligence being accessible to LLMs but not humans and vice versa.
by sjm-lbm | 2025-09-24 14:58:53+00:00
FWIW, at least as of today, American Airlines' website attempts to show you round trip prices.

When choosing your outbound leg(s), they show a price inclusive of the cheapest return journey on the day you selected to return using the class of service on your outbound leg. So, there's all sorts of ways for it to be incorrect - maybe you want a different class of service, maybe the cheapest return has a stop but you'd like the direct, etc. - but it's still really useful for figuring out the best options for your flights.
by catapart | 2025-09-24 14:59:43+00:00
isn't selectable because it breaks the UX for keyboard-only users.

Has nothing to do with "thinking" anything. It's about testing with accessibility parameters and knowing* what practical problems occur.

If you really need to translate ONE WORD, it's not that onerous to type it. You're bringing edge-case hypotheticals to a discussion about practical functionality.