Hacker News .hnnew | past | comments | ask | show | jobs | submit | flax's commentslogin

I really like the idea. But my one attempt was disappointing. "playful energetic urban fantasy at night" ended up set to "very slow" by default.

I would really like to be able to run this on my phone. Use my Brilliant smart glasses to periodically take a picture, ask a model to describe the mood/setting, and get an ambient stream to match the mood.


The 'Fast'/embedding model, unless the input is absolutely clear, snaps to the closest alternative.

Here's the song it created when I asked Gemini Flash to do it!

It called it, "Cobalt Kinetic" and explained that, "A high-velocity Mixolydian engine fueled by syncopated electronic pulses and glitchy accents, evoking the iridescent blur of hidden magic weaving through a midnight skyscraper canyon."

Here's the audio: https://vocaroo.com/1hjtPAxLWqyA


This smells like bullshit to me, although I am admittedly not experienced with Claude.

I find it difficult to believe that a sleep mask exists with the features listed: "EEG brain monitoring, electrical muscle stimulation around the eyes, vibration, heating, audio." while also being something you can strap to your face and comfortably sleep in, with battery capacity sufficient for several hours of sleep.

I also wonder how Claude probed bluetooth. Does Claude have access to bluetooth interface? Why? Perhaps it wrote a secondary program then ran that, but the article describes it as Claude probing directly.

I'm also skeptical of Claude's ability to make accurate reverse-engineered bluetooth protocol. This is at least a little more of an LLM-appropriate task, but I suspect that there was a lot of chaff also produced that the article writer separated from the wheat.

If any of this happened at all. No hardware mentioned, no company, no actual protocol description published, no library provided.

It makes a nice vague futuristic cyperpunk story, but there's no meat on those bones.


This isn't to the level of the OP, but I just asked Claude "Are there any interesting Bluetooth devices in my vicinity which aren't actually mine or ones I am connected to?" and it downloaded a tool called `blueutil` and identified a variety of things.

When I complained that the results were boring, it installed a Python package called 'bleak', found a set of LED lights (which I assumed are my daughter's) and tried to control them. It said the signal was too weak and got me to move around the house, whereupon it connected to them, figured out the protocol, and actually changed the lights while I was sat on her bed - where I am right now. Now I have a new party trick when she gets home! I had no idea they were Bluetooth controlled, nor clearly without any security at all.


https://www.kickstarter.com/projects/selepu/dreampilot-ai-gu...

Found that in seconds. EEG, electrical stimulation, heat, audio, etc. Claims a 20 hour battery.

As to the Claude interactions, like others I am suspicious and it seems overly idealized and simplified. Claude can't search for BT devices, but you could hook it up with an MCP that does that. You can hook it up with a decompiler MCP. And on and on. But it's more involved than this story details.


That appears to be more than a centimeter thick, and not particularly flexible. It's more like ski goggles than a sleep mask.

So yeah, a product exists that claims to be a sleep mask with these features. Maybe someone could even sleep while wearing that thing, as long as they sleep on their back and don't move around too much. I remain skeptical that it actually does the things it claims and has the battery life it claims. This is kickstarter after all. Regardless, this would qualify as the device in question for the article. Or at least inspiration for it.

Without evidence such as wireshark logs, programs, protocol documentation, I'm not convinced that any of this actually _happened_.


Claude, or any good agent, doesn't need MCP to do things. As long as it has access to a shell it can craft any command that it needs to fulfill its prompt.


There are no shell commands to do what is described. I could get Claude to interact with BLE devices, but it did it by writing and running various helper applications, for instance using the Bleak library. So I guess not an MCP per se.


They said access to a shell, not to shell commands. A shell can include a package manager.


Not really? I did something similar for a different device recently. It can make files and has access to bash. It's perfectly capable of installing packages and writing small scripts basically entirely autonomously. No MCP needed.


A lot of BLE peripherals are very easy to probe. And there are libraries available for most popular languages that allow you to connect to a peripheral and poke at any exposed internals with little effort.

As for the reverse engineering, the author claims that all it took was dumping the strings from the Dart binary to see what was being sent to the bluetooth device. It's plausible, and I would give them the benefit of the doubt here.



I was originally going to ask something similar, but from a different angle.

These blog posts now making the rounds on HN are the usual reverse engineering stories, but made a lot more compelling simply because they involve using AI.

Never mind that the AI part isn't doing any heavy lifting and probably just as tedious as not using AI in the first place. I am confused why the author mentions it so prominently. Past authors would not have been so dramatic and just waved their hands that they had some trial and error before finding out how the app is built. The focus would have been on the lack of auth and the funny stuff they did before reporting it to the devs.


Claude could access anything on your device, including system or third party commands for network or signal processing - it may even have their manuals/sites/man pages in the training set. It’s remarkably good at figuring things out, and you can watch the reasoning output. There are mcp tools for reverse engineering that can give it even higher level abilities (ghidra is a popular one).

Yesterday I watched it try and work around some filesystem permission restrictions, it tried a lot of things I would never have thought of, and it was eventually successful. I was kinda goading it though.


Yes, it is very lacking in details. The Claude output would have been interesting, or a few logs or protocol dumps.

The lack of detail makes me suspect the truth of most of the story.



wow! Thanks for that.


This "game" sounds horrible. It seems designed to maximize anxiety and conflict, and extract kompromat. What is the upside supposed to be?


It's the same reason people go see scary movies. To feel the thrill.


Scary movies aren't real, though.


ever played 'spin the bottle'?


This is a very male attitude to have.


Women don't get anxious about social status? TIL


I've been mostly happy with Action launcher. It has the few features I really liked from Nova that are missing from pixel launcher: I can make my home screens scroll in a circular/infinite manner, I can remove the search bar and the google news feed or whatever they call the left page, I can set more than one page in the dock.

Unfortunately, the app list page isn't quite as configurable. There are folders rather than tabs, and there's an extra click necessary to search by app name. Overall, it does the job.


Oh good. Now the documentation will be written by The Machine That Lies to You. Wonderful. What could possibly go wrong?


Now we need The Machine That Never Lies to You and some doors...


Could you explain why? I have been interested, in theory, in Kotlin Multiplatform. But I'm already very comfortable in Dart and Flutter. I have decades of experience with Java, Javascript, and quite a few years with Typescript. Kotlin feels like a different kind of language, one I find grating. I think this is primarily aesthetic, but it's still enough to make getting over the initial hump annoying. As petty as it is, I think the lack of statement-terminating semicolons is a major reason I do not like it. I would welcome a factual list of things that make the KM experience better for you.


Kotlin doesn’t feel right to me either. I did a portion of AoC in it this year and it was surprisingly more verbose than I expected. I think the thing I liked the least was trailing lambda syntax combined with how verbose it was to define variables with types.

It also inherits all of the bad parts of the JVM. Crappy build tooling (gradle), and then the slow startup and high memory usage.


Coming from writing a ton of Swift (and previously Obj-C), Kotlin’s ergonomics feel kinda off. It also feels like it’s different for the sake of being different more often than I’d like.


Can you give concrete examples? I played with Swift in school after already making the dive into Kotlin. It just felt like Kotlin but trapped on Apple. Part of the program even included a course in using a different language every couple weeks where we went through Scala, Lisp, and some others just to see what they could do.

Currently Kotlin is far and away my favorite language but I also haven't looked into the newer languages recently and am interested in hearing pain points people have. Especially if it isn't annoyances with Gradle


Broadly speaking, Kotlin deviates from popular conventions more than Swift does. For example, Kotlin expects you to use inline if statements where in Swift, ternary operators work like they do in C, JavaScript, and many other languages.

There's also things like Swift's guard statements that can help make intent clearer and read a bit more nicely.


Same opinion. It just feels off. Why use `fun` for function declarations instead of func or function? Dropping () before { makes it hard to tell what runs first. It feels like it's trying to be different for the sake of being different. I'm not able to quickly skim kotlin code like other 'C-like' languages and tell what is going on because it's trying to be too clever.


You're just not used to it.



I used Kotlin as well and it just feels off too. The package support is a major thing, as I don't want to mess around in Gradle, I want something that Just Works™. Dart 3 has much of the same feature set as Kotlin now with sealed class support, it's just not as functional, but it recently got tearoffs so you don't have to specify the class, just the property, similar to Swift (ie if you have an `enum Color { red, blue }` and a function takes `Color`, you can just do `f(.red)` not `f(Color.red)`).

The main thing though is that Dart has pub.dev and a CLI that makes it extremely easy to add packages, via `dart pub add`. If I do want to go more of a functional route I'll just use Rust instead, it has all of what Kotlin has and more, plus a similar streamlined package management as Dart in the form of `cargo add`.


Funny you say that since Dart is the primary reason most people I know don't want to use Flutter.

There's been a trend of improved DX for languages used in app development:

ObjC -> Swift

Java -> Kotlin

Javascript -> Typescript

...Dart feels like the before with no after, even though it got traction in the era of the Afters.


Darts pretty good. It has a lot of modern features, nullable types, pattern matching, sum types, and factory constructors; some really good build tooling. It can compile fully AoT.


It’s not very good if you’re comparing it against Kotlin or Swift though.


It's a matter of taste, even just the swift example on this website makes me raise eyebrows.


I think that is valid because the syntax shown off here is controversial. However, I think Dart is just generally worse in almost all of its features.


It is great if you’re comparing it against Kotlin or Swift, unless you’re stuck in an era of 1.x Dart.


I would consider it to be weaker in power to both


Programming languages aren’t anime.


Eh, it's getting there, slowly at first but more rapidly now. It now got tearoffs, I explained in another comment but

> if you have an `enum Color { red, blue }` and a function takes `Color`, you can just do `f(.red)` not `f(Color.red)`

Dart is getting new features pretty fast, they really started focusing on the DX more after Dart 2 and now especially after Dart 3. Macros were supposed to ship but it was incompatible with the goals of fast compilation, so other sorts of smaller features will ship instead.


Big turnoff with Dart is the lack of json (de) serialization -- kind of shocking to have to resort to source code generation libraries in a modern language.

Also, statement based instead of expression based, and not immutable by default are kind of a drag; not the end of the world but a bit unpleasant, IMO.


Serialization support is coming, probably this year. As for statements vs expressions, it does have some expressions such as if and for inside lists but changing it wholesale to an expression based language would be too much of a breaking change.


Serialization support has been coming for years, I lost patience.

Otherwise, yes, some support for expressions, some support for immutability, no support for optional semi-colons, no privacy modifiers so "_" littered everywhere.

I just found it to be an exceedingly ugly language when I used it a couple of years ago. Yes, some more pleasant modern functionality has been bolted on since then, but it's unfortunate that Dart was chosen as the backing language for Flutter, which is an awesome mobile framework.


Serialization has always been possible via libraries, so most people were doing fine with that, what is coming is native serialization support, but in practice it will be functionally the same, ie rather than you running build_runner, the compiler will do it for you. I'm not sure what you used but that's what you were hung up on, there were always ways to solve it.

Dart is a pragmatic language, it has everything you need and has a lot of benefits too, such as sound null checking (very few languages have this, Rust comes to mind), JIT and AOT support (Javascript / TypeScript such as for React Native doesn't, and Kotlin is just getting there with Kotlin Native but it still has a lot of issues), and now more functional programming concepts with algebraic data types via sealed classes and pattern matching.

What language would you have chosen when Flutter came out circa a decade ago, or, we can be even more charitable and ask what language would you use today if you were to implement Flutter? I'm curious because everyone has their own ideas but they all don't work for one reason or another.


I thought dart could natively deserialize via dart:convert? It just only decodes to lists and maps, you have to manually map into classes.


isn't this just because Dart is way newer than those? it's from the 2010s. it's really modern in comparison (same generation as Kotlin swift and typescript)


> Dart feels like the before with no after, even though it got traction in the era of the Afters.

It's aged like the recent languages but feels clunkier like a language that's much much older.


Dart is hands down the best modern language out there for app development right now what are you even talking about? I understand that maybe a lot of people haven’t used it or maybe haven’t used it in years and that probably drives a lot of the FUD but for those who use it, it has stupidly high ratings from developers who use it and has for years.


It's not FUD when you make something terrible* and that reputation doesn't immediately slough off.

And I just checked the Dart release notes from all of 2025: https://dart.dev/resources/whats-new

Great progress! But smells a lot like the language I had it pegged for when "underscore as a wildcard" lands in February 2025, 2 years after pattern matching lands.

How did they ship pattern matching in 2023, with a million examples of how to do it right already hashed out and in the wild... and then not figure out a wildcard symbol for 2 years?

-

* Dart was awful, lost to Javascript because no one rated it highly enough to justify moving off Javascript, and was practically dead until Flutter dusted off the corpse and pivoted away from their browser goals... so super weird revisionism to act like we're talking about some beloved evergreen language.


> How did they ship pattern matching in 2023, with a million examples of how to do it right already hashed out and in the wild... and then not figure out a wildcard symbol for 2 years?

We shipped support for `_` as wildcards in patterns with Dart 3.0 when pattern matching first shipped.

However, prior to Dart 3.0, `_` was already a valid identifier (as it is in most other languages). The feature you're mentioning from last year was to remove support for uses of `_` as an identifier outside of patterns. This way `_` consistently behaves like a wildcard everywhere in the language. We didn't ship that in 3.0 because it's a breaking change and those are harder to roll out without causing a lot of user pain.

It's OK to not like Dart. There are multiple popular languages for a reason. But it is helpful when communicating about a language to others to be accurate so that they can make their own informed opinions.


You seem confused and indeed spreading FUD.

Dart wasn’t awful. It wasn’t adopted at the time because it had a distinct runtime that would require splitting web in two which nobody wanted. On top of that it gave Google too much power, because now they would control both runtime (V8) + language (Dart).

TypeScript won and became king because it was pretty much JS 2.0 instead of JS++ like Dart.


In your version of history Dart was always a great language... but Google was simultaneously too powerful for other vendors to allow Dart to proliferate, but also too weak to sustain it themselves despite Chrome going on to do just that for many many web standards.

I'm sure that's a really cozy idea, but doesn't pass the "common sense" test: a bit like your random misuse of the term FUD.

-

The simple reality is it wasn't very good, so no one was rushing to use it, and that limited how hard Google could push it. ES6 made Javascript good enough for the time being.

Dart 1.x had a weak type system, and Dart 2 was adding basics Kotlin already had almost 2 years earlier: that was also around the time I first crossed paths with Flutter, and honestly Flutter by itself was also pretty god awful since it was slowly reinventing native UI/UX from a canvas.

(It was a lot like Ionic: something you used when you had a captive user-base that literally couldn't pick a better product. Great for Google!)


> In your version of history Dart was always a great language... but Google was simultaneously too powerful for other vendors to allow Dart to proliferate, but also too weak to sustain it themselves despite Chrome going on to do just that for many many web standards.

"In my version of history"

It takes two seconds to find this if you weren't there when it happened. Google had a fork of Chromium with Dart VM called Dartium, it wasn't a matter of resources. Industry flipped Google off, plain and simple.

Educate yourself before making such claims, the decision to not adopt Dart wasn't because of its technical merits as a language.

The rest of your comment is just your opinion, so you do you. I'm not a Dart or Flutter devrel team to sell you their product.


I guess this is the Dunning-Kruger effect everyone talks about!

To understand just enough to regurgitate what happened, but miss why it happened... and then assume someone who's pointing at the much more relevant why is just plain wrong.

Because the why requires actually understanding of things like developer mindshare rather than regurgitating search results.

-

The hint I'll leave if you're willing to consider maybe you don't know everything ever... look at who's feedback is being promoted when Chrome wants to do obviously unpopular things on the web: https://github.com/webmachinelearning/prompt-api/blob/main/R...

https://github.com/mozilla/standards-positions/issues/1213

And model for yourself what happens if developer interest exceeds vendor refusal in magnitude, so Google just ships the thing, without a feature flag, to a massive percentage of the web-going world.


http://xahlee.info/comp/CoffeeScript_Dart_Javascript.html

Keep trying, though, if you believe hard enough you might rewrite history.


I guess you're not willing, or not capable? Either way, good luck: must be a hard way to live :)


Have you even used modern Dart?


Maybe Windows, I haven't used it in a long time. But I have noticed my son's MacBook pro (used to be my work laptop) only pretends to be available after "waking". It'll repeatedly fail to actually take input in the user login password field. It does so silently, leading to missing characters in the password and needs several attempts to actually fill out fully. I don't know what it's doing in this time, but not having the "busy beachball" is a lie.


Every single YouTube video does this right now. They are all incredibly slow and take forever to get to the point (if there even is one).

I have heard this is because there's a magic duration number for monetization.


So if I listen at 2x, how many minutes do they count for monetization purposes?


Watch hours are literally how long someone watches. So if you watch a 2 hour video at 2x, it counts as 1 hour.


Neither "wanting to be liked" or "wanting to avoid being disliked" rings true to me, at least as applied to my own social anxiety. I want to avoid being thought of at all. The idea of being liked is just as anxiety-producing as being disliked. Possibly more so. Every relationship with another person, positive or negative, is another cognitive burden to maintain. I would vastly prefer most of my interactions to just remain at the default/stranger level where I can re-use the same anticipatory model for most people I deal with.

Tangentially related, I have for some time had a desire to write short stories, but the anxiety around revealing anything that might expose my inner self is probably the biggest reason why I don't.

I was reading a collection of short stories yesterday and came upon Michael Swanwick's "Slow Life". It struck me that it shares more than a few similarities to his "The Very Pulse of the Machine": Woman astronaut on a moon in the outer solar system is placed in lethal danger, encounters alien intelligence that communicates by reading/influencing minds, she isn't sure whether the communication is genuine or hallucinated, eventually the alien intelligence provides a long-shot resolution to save her. Maybe Swanwick just had another story to tell with some of the same beats. It happens. Or maybe it's like bare feet in a Tarantino movie. The point is, the idea of someone examining my own stories and thinking such thoughts about me is extremely distressing. It's not being disliked that I try to avoid. I'm trying to avoid the baseline stress of social interaction.

I recognize the irony of opening up about this in writing. If you have something to say _about me_, please don't.


The weird thing about "The idea of being liked is just as anxiety-producing as being disliked" is that it is an incorrect prediction of reality: actually being liked would. Thinking about it is really a different thing: it overestimates the stakes involved, it mistakenly invents "ideas of people" to do the liking which do not behave like actual people, and is unable to build any self-esteem by imagining people liking you because these imagined people are under your our control; being liked by your own imagined people doesn't "count" the way being liked by real people would...

The human mind is not really designed to handle under-socialization well, and seems to fill in the empty space with imaginary figures which fail to meet its social needs. Taken outside its natural tribal operating regime, it bugs out in all kinds of strange ways.

> the idea of someone examining my own stories and thinking such thoughts about me is extremely distressing

This is a very familiar feeling to me, and in my experience it actually is a fear of being disliked, or more specifically about not being able to control others' reactions to me. But the fear is so great and unapproachable that the mind cordons it "out of sight" of conscious feeling.

It becomes better to not be thought of than to expose myself to the possibility of others seeing me poorly, especially if I'm not able to defend myself and make the case for my being seen with grace. I suspect that it is over-exposure to human meanness and judgement and under-exposure to kindness and grace which brings about this expectation of others' dispositions towards oneself; this perhaps is the reason for the Christian injunction that humans not judge one another--it guards against this particular failure mode of the social mind.


I really hope it doesn't make you too uncomfortable for me to say: amen to that.

That's it. Leaving you in peace now. Peace!


Social anxiety is not one uniform phenomenon


This might be therapeutic for you:

The vast majority of people who interact with you in any way, think about you extremely little or not at all beyond the moment of interaction.

We just don't play nearly as big a role in other peoples' lives as we sometimes imagine.

It's the observant and introspective people among us who believe otherwise. Most people are neither.


I looked at several yesterday. I landed on Action Launcher because it has a scrollable dock and infinite scrolling homepages. It lacks tabs in the app drawer, but it does let you create folders there.

Hyperion seemed to have all necessary features, but the UI was unintuitive and the documentation non-existent.

I also liked Lynx, but that would be a major change for me.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: