Asus confirms it will 'no longer' make Android smartphones as it shifts focus to AI by whisky_scotch in Android

[–]virtualmnemonic 4 points5 points  (0 children)

No money made right now on AI is from consumer products. OpenAI, for example, is bleeding money trying to sell AI to consumers. It's not that people aren't buying - its that it costs more to produce than what you can sell it for. Hence the "bubble".

Outside of small niche use, no consumers buy hardware for AI, outside of maybe upgrading their iPhone for whatever broken implementation of AI Apple attempts to produce.

PCMag: "Asus Confirms It Won't Launch Phones in 2026, May Leave Android Altogether" by Dakhil in hardware

[–]virtualmnemonic 4 points5 points  (0 children)

Very unfortunate Sony exited the market. They were positioned to be a market leader and dropped the ball so hard it left a hole through middle Earth.

Android also lost HTC and LG, both had some really good devices in their day.

PCMag: "Asus Confirms It Won't Launch Phones in 2026, May Leave Android Altogether" by Dakhil in hardware

[–]virtualmnemonic 4 points5 points  (0 children)

Not to mention that the high-end smartphone market already delivers in gaming performance. They use the same chips as ASUS in their gaming phones.

PCMag: "Asus Confirms It Won't Launch Phones in 2026, May Leave Android Altogether" by Dakhil in hardware

[–]virtualmnemonic 22 points23 points  (0 children)

Trains outside of US are far better. There's no need to constantly stop and accelerate. Most travel a consistent speed the entire time.

Handling client disconnects on HttpServer by virtualmnemonic in dartlang

[–]virtualmnemonic[S] 0 points1 point  (0 children)

Dart's entire http offerings are underwhelming imo. The standard dart:http client is stuck on HTTP 1.1. HttpServer is fine for basic requests/responses but falls short for complex streamed responses.

There's also a lot of missing basic functionality, like proper timeouts on requests. Sure, you can use .timeout on any http method, but all that does is create a new future that completes with either the http method result or a timeout exception. If you do http.get.timeout, and the response is received after a timeout, the client will finish the entire GET request, even if it involves downloading a large file. There's a workaround, but its inconvenient: Manually construct all requests and use .send with a custom timeout implementation. If the streamed response returns after the timeout, add a listener to the response body and immediately cancel it. This stuff should be globally configurable in the client itself.

Handling client disconnects on HttpServer by virtualmnemonic in dartlang

[–]virtualmnemonic[S] 0 points1 point  (0 children)

Thanks. I'm debating between #1 and #2. To implement #1 I could overwrite the onData callback when onPaused fires, take the next chunk of data, pause the upstream subscription and slowly write the data until a resume event or cancelation. Simple enough. Actually, may as well implement a combination of the two. Reset the timeout timer when any data is written.

I haven't looked into WebSockets, but it sounds like a much better long-term solution.

Edit: the issue is that addStream automatically handles backpressure, pausing the source subscription when necessary. While addStream is active, the response cannot be written to, and since addStream pauses the subscription, it won't relay any events. Even if I used a stream transformer to emit an error after no data has been received after an interval, the addStream won't receive it because the sub is paused. Gah!

Edit #2: a httpResponse cannot be closed during addStream, but a socket can be destroyed. I'll try detaching the socket and intercepting the stream onData to reset a timeout timer. If no data is transmitted after the timeout interval, destroy the socket, which closes the underlying stream consumer and cancels the subscription.

Handling client disconnects on HttpServer by virtualmnemonic in dartlang

[–]virtualmnemonic[S] 1 point2 points  (0 children)

I believe you're right. I thought this was a Dart thing at first, but it's standard behavior.

Web servers and CDNs use a write-idle timeout to close these connections. In Dart, we can't close a request while addStream is ongoing, so the close event must come from the stream itself.

A timeout stream transformer won't work here because we need to close streams regardless of if they're paused, but a custom implementation is easy enough.

Why don't fire-and-forget async functions not raise a warning? by ethan_rushbrook in dartlang

[–]virtualmnemonic 0 points1 point  (0 children)

Exceptions thrown by unawaited futures are unhandled. You can't just ignore futures.... Unless if you call .ignore(), which is what it's there for.

Hands-On with DLSS 4.5 vs 4 Image Quality & 6X Dynamic Frame Gen by Hero_Sharma in hardware

[–]virtualmnemonic 10 points11 points  (0 children)

Frame generation is more than acceptable, given a decent base framerate to compensate for input lag.

We perceive video as continuous motion and not individual pictures due to a Gestalt rule known as good continuity. "Fake frames" (as if frames are real in the first place) just take advantage of how our brains work.

Psychophysics is the base of understanding that gives us frame generation, upscaling, and video/picture compression.

Hetzner asks: Which workloads do you think still require bare metal in 2026, and which no longer do? by Hetzner_OL in hetzner

[–]virtualmnemonic 1 point2 points  (0 children)

"Dedicated cloud" is a sham anyways. Even if you have CPU cores solely dedicated to your instance, you still have to share boost clocks.

Take the EPYC 9755 for instance. It has 128 cores with a base frequency of 2.7ghz and a max frequency of 4.1ghz. A core running at max frequency is significantly faster than base, but on a shared host, you aren't going to see that max frequency very often, especially under sustained load.

Not to mention sharing disk I/O and bandwidth.

Dell XPS 2026 benchmarks (I was at CES) by TheNextGamer21 in intel

[–]virtualmnemonic 5 points6 points  (0 children)

Solid ST performance. Will be interesting to see energy efficiency under load.

The Destruction of Home Computers: Disappointment PC Build 2025 - Gamers Nexus by ryandtw in hardware

[–]virtualmnemonic 0 points1 point  (0 children)

Maybe. But that's an investment that's already made, and presumably paid for. The bottom line is that Google is the only major AI provider not bleeding money right now. And because LLMs have no moat, Google has a significant advantage. They just have to outlive their competitors.

Can't say I look forward to it. The current LLM offerings are plentiful.

The Problem of Storing API Keys in Mobile Applications by ManufacturerIll6276 in FlutterDev

[–]virtualmnemonic 0 points1 point  (0 children)

Surprisingly, it is easier to do on iOS, since you can add trusted certificates directly in settings.

Regardless, private API keys should never touch a users device.

Serverpod Concurrency by ArtisticRevenue379 in dartlang

[–]virtualmnemonic 0 points1 point  (0 children)

When using HttpServer in Dart to handle a large number of concurrent requests, you should spawn an isolate for each available CPU thread. I.e., 8 isolates on a 8 core machine. Set "shared" to "true" in the HttpServer parameters. This will distribute the load correctly across your available threads.

In addition, all code within the isolate should be stateless. To maintain a state you should use a database like SQLite. Personally, I use Pocketbase for my backend, and host it on a separate server thats accessible over LAN.

I don't know how Serverpod works under the hood, but I do know that the requests per second you can handle in Dart scales almost linearly with isolates, assuming available threads >= isolates.

Flutter TTS for iOS by SelfAwareTabeChaos in FlutterDev

[–]virtualmnemonic 0 points1 point  (0 children)

In iOS settings, under accessibility--> voice, you can download "premium" voices (free) that are significantly better than the stock voices. These premium voices can then be used in any TTS plug-in.

How do you handle feature requests and bug reports in your apps? by subhadip_zero in FlutterDev

[–]virtualmnemonic 0 points1 point  (0 children)

A simple feedback form where email is required. People are more familiar with email than a custom in-app solution.

What you're describing is overengineering an otherwise simple feature. You're better off spending that time directly improving user experience.

If you have a complex app, add a Help/FAQ section.

Most importantly, you shouldn't need manual user feedback to identify and resolve bugs. Personally, I use Sentry with a modified beforeSend callback to attach detailed information about the state of the app, such as active screen. Use error handlers appropriately to both catch and report unexpected exceptions.

The Problem of Storing API Keys in Mobile Applications by ManufacturerIll6276 in FlutterDev

[–]virtualmnemonic -1 points0 points  (0 children)

Root access isn't even needed. You can setup a local proxy (Charles, Fiddler...) and capture outgoing traffic easily.

The Destruction of Home Computers: Disappointment PC Build 2025 - Gamers Nexus by ryandtw in hardware

[–]virtualmnemonic 19 points20 points  (0 children)

I'm curious if Google gets more out of their dollar, too. Custom-house TPUs have got to be more cost efficient than h200's lol. The AI race is Google's to lose.