MurphyA/hacker-news huggingface dataset:
Show HN: Magic Input – Use your iPhone as a keyboard and trackpad for your Mac
by willswire | 2025-12-30 12:19:07+00:00
Hey HN,

On a recent flight home for Christmas, I tried to get some side-project work done on my MacBook… and immediately lost the battle with Seat 28C. I could barely open the laptop, let alone type comfortably.

The real constraint on planes these days is elbow room. That got me wondering: could a small, handheld keyboard and trackpad setup make in-flight work tolerable?

After failing to find anything compelling on Amazon, I realized something obvious: my iPhone already has a great keyboard and touch experience. So why not use it directly?

I looked for existing apps, but the top options felt dated and required both devices to be on the same Wi-Fi network—which isn’t always possible (or desirable when paying ridiculous prices for airplane Wi-Fi).

So over the last few days I’ve been tinkering with a project I call Magic Input. It turns your iPhone into a wireless keyboard and trackpad for your Mac.

How it works (high level):

• The iOS app discovers nearby Macs using MultipeerConnectivity

• Keyboard input and touch gestures are streamed directly to macOS

• The macOS app injects events at the system level (requires Accessibility permissions)

• No shared Wi-Fi network required; devices connect peer-to-peer

It’s very early, but already supports basic typing and cursor control—especially useful in cramped spaces like planes.

Here’s the TestFlight link for the brave. You’ll need to install the same app on both macOS and your iPhone:

https://testflight.apple.com/join/T1PgucDs

Happy to answer questions or dig into implementation details if anyone’s curious.
by bn-l | 2025-12-30 12:19:29+00:00
Why is the US doing this just to cover the crimes of one small country? It seems like they’re really going above and beyond.

Surely couldn’t have that much blackmail on him. You’d need something so shocking that it’d ruin him and his entire family forever. Where just mentioning the name would cause disgust for generations. Surely there’s nothing like that in the archives.
by gbnwl | 2025-12-30 12:19:52+00:00
> That’s the part that’s hard (or impossible) to do with markdown files or tool-local memory.

I'm confused because every single thing in that list is trivial? Why would Codex have trouble reading a markdown file Claude wrote or vice versa? Why would multiple agents need their own copy of the markdown file instead of just referring to it as needed? Why would it be hard to share specific files with teammates or collaborators?

Edit - I realize I could be more helpful if I actually shared how I manage project context:

CLAUDE.md or Agents.md is not the only place to store context for agents in a project, you can just store docs at any layer of granularity you want. What's worked best for me is to:

1. Have a standards doc(s) (you can point the agents to the same standards doc in their respective claude.md/agents.md)

2. Before coding, have the agent create implementation plans that get stored in to tickets (markdown files) for each chunk of work that would take about a context window length (estimated).

3. Work through the tickets and update them as completed. Easy to refer back to when needed.

4. If you want you can ask the agent to contribute to an overall dev log as well, but this gets long fast. Is useful for agents to refer to the last 50 lines or so to immediately get up to speed on "what just happened?", but so could git history.

5. Ultimately the code is going to be the real "memory" of the true state, so try to organize it in a way that's easy for agents to comb through (no 5000 lines files that agents have trouble trying to carefully jump around in to find what they need without eating up their entire context window immediately).
by cipherself | 2025-12-30 12:19:58+00:00
One anecdote in the same vein, a couple of months ago, I wanted to parse systemd-networkd INI files in Python and the python built-in ConfigParser [0] and pytest's iniconfig parser [1] couldn't handle multiple sections with the same name so I ended up writing 2 parsers, one using a ParserCombinator library and one by hand and ended up using the latter given it was much simpler to understand and I didn't have to introduce an extra dependency.

Admittedly, INI is quite a simple format, hence I mention this as an anecdote.

[0] https://docs.python.org/3/library/configparser.html

[1] https://github.com/pytest-dev/iniconfig
by krapp | 2025-12-30 12:20:17+00:00
Neither.

The oligarchy and military industrial complex are all in on AI and the economies of the Western world are already existentially tied to AI. Any political party advocating anything less than aggressive AI maximalism would be committing political suicide, akin to jumping out of an already runaway train.

It doesn't matter what the people want. Left-populism (which common sentiment against AI would be, since AI serves the interests of capitalism) has no tacit reality in American politics, only right-populism has any power.
by drcongo | 2025-12-30 12:21:27+00:00
We used to have a self-hosted Nextcloud and everyone hated the docs in it. We're a design company, with everyone on Macs, so something this ugly, clunky and hard to use [0] is never going to get traction.

[0] https://nextcloud.com/c/uploads/2025/09/Nextcloud-Hub-25-Aut...
by ofalkaed | 2025-12-30 12:21:59+00:00
>Sometimes I wish there was a commercial company behind 'linux for audio' that will give me a finely tuned Linux distro on a finely tuned desktop machine, based on whatever distro,

That would be Ubuntu Studio or Kx-Studio. Mint is quite far from what you want unless you are willing to put in the time to set it up right. Most any distro which ships PipeWire with Jack support enabled will probably perform better than your Mint setup running ALSA. PipeWire speaks Jack so if built with Jack support, any Jack aware application will connect to PipeWire with no need to start Jack or anything, it just works.

It is not an obscure file that I had to edit, it is the file (script) which starts the server. Took maybe 5 minutes to get everything working flawlessly and that includes compiling PipeWire since Slackware does not build it with Jack support and a google search to find out why resume killed the audio.
by merek | 2025-12-30 12:24:11+00:00
If you've ever built a website for mobile but never heard of PWAs (Progressive Web Apps), I recommend checking them out. In essence, adding 2 files can make the site installable from a mobile browser and define caching behavior for offline functionality.

1. manifest.json: a JSON file that defines the app's name, icons, theme colors, and how it should launch when installed.

2. Service worker: a JS file that controls things like resource caching for offline usage

Unfortunately PWAs don't receive first class support compared to native apps. Still, I still hope to see wider adoption. I think for many not-too-complex apps, they can significantly lower the cost of development, and the development experience could be as simple as

- Building with HTML + JS + CSS. No clunky SDKs, reduced need to test on painfully slow emulators or expensive physical devices

- Installable from a browser. No need to maintain a listing in the Playstore/App Store, avoiding policy headaches, rent, etc.

https://developer.mozilla.org/en-US/docs/Web/Progressive_web...
by idoubtit | 2025-12-30 12:24:26+00:00
That's my experience. I'm not a Python developer, and installing Python programs has been a mess for decades, so I'd rather stay away from the language than try another new tool.

Over the years, I've used setup.py, pip, pipenv (which kept crashing though it was an official recommendation), manual venv+pip (or virtualenv? I vaguely remember there were 2 similar tools and none was part of a minimal Python install). Does uv work in all of these cases? The uv doc pointed out by the GP is vague about legacy projects, though I've just skimmed through the long page.

IIRC, Python tools didn't share their data across projects, so they could build the same heavy dependencies multiple times. I've also seen projects with incomplete dependencies (installed through Conda, IIRC) which were a major pain to get working. For many years, the only simple and sane way to run some Python code was in a Docker image, which has its own drawbacks.
by Lysander1 | 2025-12-30 12:26:20+00:00
What's good for the goose is good for the gander. The US is acting to impose sanctions on individuals with no direct ties to it by using its legal authority over American entities. The reason the US wants to do this is because the ICC is seeking to impose its legal authority over individuals whose state has not joined the ICC with novel legal theories and using its legal authority over ICC states. If the ICC had remained in areas where its legal authority is clear and not disputed, its judges and prosecutors wouldn't be facing this issue.
Ask HN: What skills and projects should an unemployed software dev focus on?
by MITfather | 2025-12-30 12:26:27+00:00
My daughter is an MIT graduate and a junior software developer who’s currently unemployed. She has a solid academic foundation, but it’s been hard translating that into job offers in the current market.

I’m trying to understand what actually matters right now from a hiring perspective. Beyond brushing up on core CS, what specific skills should she focus on building? More importantly, what kinds of projects genuinely help at the junior level?

For example:
– Are end-to-end projects more valuable than algorithm-heavy ones?
– Are there particular domains where a well-executed project sends a strong signal?
From your experience as interviewers or hiring managers, what projects actually make you stop and say, “this person is ready”?
by basch | 2025-12-30 12:26:40+00:00
you dont know what you dont know. walking into hockey for the first time, you may think you should be looking for the puck.

but really, what you want to look for is how the players are moving. it's sort of a "which one is different from all the others." one person will clearly be moving in a completely unique way, as the others chase them or vie to get open or get in somebodys way. to acomplish this identification, youre looking at their legs, shoulders, hands, feet, and heads.
by nindalf | 2025-12-30 12:27:06+00:00
Yes, that's right. I mainly read on the kindle and I make a lot of notes and highlights while reading. These notes are synced to Amazon's cloud, which I can access by scraping read.amazon.com. I read paperbacks too, but I just add these to the library manually. No highlights from these.

I think highlighting is why I strongly prefer ebooks nowadays.
by luma | 2025-12-30 12:27:38+00:00
Absolutely screwed! Every single product they have - OS (dominant desktop and laptop OS by a wide margin), Azure - (gaining in second place, now 25% vs AWS 31%), M365 (also dominant, particularly in terms of revenue). None of these show any sign of going anywhere, and if anything, the numbers for cloud and M365 are trending up.

I could only wish my own business were this screwed.
by Izkata | 2025-12-30 12:27:47+00:00
> When your audience gets one episode a week, with mid-season breaks, schedule slips, and multi-year gaps between seasons

Multi-year gaps between seasons is a modern thing, not from the era you're talking about. Back then there would reliably be a new season every year, often with only a couple of months between the end of one and the beginning of the next.
by constantcrying | 2025-12-30 12:28:03+00:00
No. The problem with DB are not the trains or the personnel on the trains. The problem is that the tracks are in miserable condition and that they are operated in a terrible way. The fault in this case is 100% with DB. Nobody else is to blame.

Shifting the blame away from DB, who is responsible for creating the terrible track conditions and is responsible for the operations, to the train operator, who zero ability to influence what DB is doing is just totally unfair.

DB is at fault here, they lead the train onto the wrong tracks and they also caused the previous delays. Regional trains in Germany have many different kinds of operators. Taking any of them is always miserable in exactly the same way, which is in almost every case caused by DB, because they can not operate the train network.

What is worse is that these operators also get into conflict with the DB trains. E.g. they prioritize a DB train, which is already late, over a regional train, causing delays for regional trains.
by caspar | 2025-12-30 12:29:11+00:00
I can vouch for this "study plan".

4 years ago I tackled exactly those courses (raytracer[0] first, then CPU rasterizer[1]) to learn the basics. And then, yes, I picked up a lib that's a thin wrapper around OpenGL (macroquad) and learned the basics of shaders.

So far this has been enough to build my prototype of a multiplayer Noita-like, with radiance-cascades-powered lighting. Still haven't learned Vulkan or WebGPU properly, though am now considering porting my game to the latter to get some modern niceties.

[0]: https://github.com/caspark/the-all-seeing-crab
[1]: https://github.com/caspark/little-crab-tv
by soldthat | 2025-12-30 12:29:32+00:00
There’s a fundamental flaw in the concept of “international justice”.

On a nation level the power of a court to prosecute individuals is supported by a policing force that is capable of resorting to violence on a local level that is acceptable for the greater peace.

On an international level, enforcing justice would ultimately require going to war, with mass casualties and likely numerous incidents of potential breaches of the law itself.

In the example of Israel vs Hamas, the ICC warrant included the leaders of Hamas - but the ICC had zero chance of actually arresting them, they were killed by Israel though. So half of the defendants carried out the justice sought by the ICC on the other half.
by _heimdall | 2025-12-30 12:29:40+00:00
> For years, we've been told a lot of things that have never come to fruition.

This is the specific comment I was replying to.

It isn't about throwing ones hands in the air, its about realizing that CEOs are always going to embellish the present as much as possible and make claims of the future that are aspirational at best.

I raise both politicians and the Fed because they both do the exact same thing when it comes to making claims of the future that they don't know will happen but hope will push people today in a certain direction.

I wasn't claiming that all three groups are the same, only that they all fall afoul of the frustrating type of claimed the earlier comment took issue with.
by jll29 | 2025-12-30 12:31:35+00:00
Orkut Büyükkökten's orkut.com might have been a semi-private project (Google, like any company, doesn't normally name its products after first names of its coders).

Also, as you say, it was populated by many Brazilians, an imbalance like that may discourage non-Brazilians from joining, so not sure if integrating them would have helped or hurt.
by rayiner | 2025-12-30 12:32:11+00:00
Texas is what the global mean aspires to be. My mom visited my extended family in Australia and Canada (we’re originally from a third world country) and came back ranting about how “poor” those countries were and how “nobody can get rich.” What she meant was that they don’t have big mcmansions on two acres everywhere and a doctor or lawyer or engineer only makes a comfortable salary instead of a $500k+.
by immibis | 2025-12-30 12:32:15+00:00
The reason banks do this is that if they don't comply with US tax laws they'll be cut off from all US-based banking systems including international payments (universally conducted in USD), cut off from issuing any credit or debit cards (they are all US-based networks) and the CEO will be arrested if he ever steps foot on American soil. So basically, the US is forcing them to do this and they don't have a choice unless they want to stop being a bank. It's the same situation as dealing with US-sanctioned individuals. HTH.
by elbci | 2025-12-30 12:32:58+00:00
If you edit the post, maybe touch on how technology always promised liberation but only delivered more of the same class division, how luddites attacked the machines taking their jobs instead of attacking the social contract, how "art and entertainment" is available to a tiny privileged minority while all the rest are simulating/faking conspicuous consumption (including of art and entertainment) to maintain the illusion they were not felt behind ;)
by Arch-TK | 2025-12-30 12:33:35+00:00
In the UK, yes, banks are on the hook if _you_ get scammed. It seems the bar for them to prove that you were at fault is too high so in reality the banks just make the decision on what you can buy for you.

A good few years ago now (when it was possible to get something in good condition for such a measly sum) I was buying a car from a private individual. The transaction was in cash. You can't take £1500 out from an ATM, unless you spread it over multiple days, and probably doing that would also get you flagged. So I went to my bank (also HSBC coincidentally) and they required me to tell them what I was buying with that money.

Now I could have lied, of course. But they could also have just told me that I can't take cash out if they didn't believe me.

If you look around, there are news stories of people being denied access to their own money because the bank decided it was too risky.

You can get kicked out of a bank for being too risky. And there's not even any legal requirement in the UK for a bank to offer you an account. Or well, there _is_ but like with all UK regulations which protect the individual, it's full of caveats. You are entitled to a Basic Bank Account (BBA) if you can't get any other account except if you can't verify your identity/residency, or you have a history of financial misbehaviour, or if you are too closely associated with terrorism. So I guess homeless people or pro-palestine protesters aren't allowed bank accounts.
by gentooflux | 2025-12-30 12:33:41+00:00
If it empirically works, then sure. If instead every single solution it provides beyond a few trivial lines falls somewhere between "just a little bit off" and "relies entirely on core library functionality that doesn't actually exist" then I'd say it does matter and it's only slightly better than an opaque box that spouts random nonsense (which will soon include ads).
by MrSkelter | 2025-12-30 12:33:47+00:00
Googles ad business is riddled with fraud in all levels.

Google profits directly from the fraud. It has no incentive to reduce it and is embarrassed by its extent.

Google is essentially overseeing a huge criminal enterprise which funds its other activities. It’s been well documented for over a decade and no one seems to care.

The traffic is faked, the publishers are faked, the clicks are faked and the ad rates are manipulated.

It’s an incredibly lucrative way to steal money with extremely low
risk and trivial penalties. The victims are the advertisers. Google has no interest in rocking the boat while they get paid.

The effective ads via Google platforms are like the percentage of real drugs in what’s bought off the street. Coincidental and ever being shaved.
by tor825gl | 2025-12-30 12:33:57+00:00
Arguably there are lots of films which could have done with being 4-5 hours long, and were compressed to match conventions and hardware limits for 'movies'.

Lots of novelizations fall into this category. Most decently dense and serious novels cannot be done justice to in 2 hours. The new TV formats have enabled substantial stories to be told well.

The Godfather parts I and II is just one story cut in half in a convenient place. Why not cut it into 4 50 minute eps and an 80 minute finale? (Edit: this substantially underestimates the running time of the first two Godfather movies!)

People are going to pause your thing to go to the toilet anyway. You might as well indicate to them when's a good time to do so.

Obviously there are also quite a few movies where 90 minutes is plenty. Both formats seem needed.
by kasey_junk | 2025-12-30 12:34:54+00:00
It takes the right sort of library owner to curate the library and a community amenable to helping out. My wife runs our library and one thing she does is pulls out some books when the library is flush and puts them back in when it’s a little dry. But she works in the book industry so she also has a source of high quality books and knowledge about them.

She’s specifically a children’s book person, so we made sure our library could fit kids books (picture books are big). But many of the kits won’t.

We also live in a walkable college town. There are 5 libraries within 4 blocks of ours. Our neighbors take it upon themselves to clean up and donate. We came back from our Christmas break to someone having installed a motion activated light in the library!

So under the right conditions they work. But you know what works better? Professional librarians, with appropriate resources and facilities. But in all cases, free libraries, public libraries, research libraries, etc. deaccessioning is required so sad for the op, we throw books away.
by DivingForGold | 2025-12-30 12:34:59+00:00
Well, when non natives erect a 90 ft tall bronze statute of a "deity" in Texas, that reportedly weighs 90 tons, has a face with portions that resemble lower primates (and a tail), it's sure to get a rather vigorous response. It's reported that the statue was created in India and shipped to the US.
by spwa4 | 2025-12-30 12:35:13+00:00
The case was not brought by the EU, it was brought at the EU. These companies sued Google for antitrust violations, at the EU who immediately stole all the spotlight, but technically it was those companies, not the EU directly. So the EU put out press releases that these antitrust violations were why these companies had not become full-fledged search engines. Why we didn't have an EU search engine. That's why I stated that they claimed stuff like kelkoo could replace Google if only given the chance. That's what they did claim.

It was, and is, a completely absurd claim, that the goal was to have an EU search engine, that goal, of course, totally failed, and that it is very weird where the money went. You know, given the goal. Given what they supposedly wanted to achieve.

Well, perhaps I should really clarify. I'm sure that what happened to the money is totally legal, but that it is going to achieve exactly nothing for the stated goal, and just happens to go to the budget of the politicians involved. Totally unrelated, I must say, the Berlaymont building, where these people work, has a nice restaurant. Well, multiple. I especially love the foamed milk with imported praline on a stick with just a drop of ... I forgot. It's whiskey, basically, but some Belgian version. Oh and you want to recognize EU commissioners there? They're the little mean guys with 20 security guards around them, eating in a huge separate space in the back, because some of them are so popular they've been attacked by their own EU personnel. And you'd think that would be an excuse to use security guards as servants, but actually no, I was somewhat near one incident. They really were attacked by their own workers. Rumor is some security guards joined in the attack.
by nottorp | 2025-12-30 12:35:40+00:00
> which shows a median difference 20% of revenue for games where Denuvo is cracked “quickly” but also no significant difference if Denuvo survives for at least 3 months.

So how did they measure the difference? They released one title with Denuvo then erased everyone's memories about it and released it again without?

Because if you compare different titles I don't know what you base that percentage on.
by dns_snek | 2025-12-30 12:37:56+00:00
I've had similar issues with anaconda, once upon a time. I've hit a critical roadblock that ruined my day with every single Python dependency/environment tool except basic venv + requirements.txt, I think. That gets in the way the least but it's also not very helpful, you're stuck with requirements.txt which tends to be error-prone to manage.