HN user

ryanianian

2,514 karma

Coding and ranting

Posts1
Comments681
View on HN
AI's Dial-Up Era 9 months ago

The "enshittification" hasn't happened yet. They'll add ads and other gross stuff to the free or cheap tiers. Some will continue to use it, but there will be an opportunity for self-hosted models to emerge.

I absolutely adore TextMate, but it hasn't kept up. It will often fail to respond to the `mate` terminal command, or it will take many seconds to start even on my mostly vanilla M4 Max.

Could there be a different smell or air-flow coming from one side versus the others?

My apartment building has identical elevator lobbies. I thought my dog was smart by not leaving the elevator on seemingly identical incorrect floors. But actually I think she just knows what home smells like.

Really cute. But I really want the ability to put the different tabs -- Brief, Workspace, Schema -- side-by-side. I know SQL and wanted to play with this, but the UX was frustrating enough to drive me away, even though it is really pretty.

I get you're being snarky, but I'll politely push back.

I remained skeptical for a long time. Then I got one. I absolutely love it. In particular, the ability to have multiple notebooks with me and cross-linking via tags. And "infinite pages" lets you insert space in the middle of a page or continue moving down without having to worry about physical page sizes. I can also screen-share the tablet with the desktop app to draw diagrams on zoom calls.

Admittedly, it is only incremental over a spiral notebook and a bic pen. But they do that incremental thing pretty well, particularly because of their focus on the "calm tech" aspects and lack of mainstream ecosystem to track upstream.

Recruiters and agents have been solving this problem for years. Firms hire a recruiter for jobs that they actively want to fill. Applicants hire a job agent. Those two meet. Very little incentive for spam in this relationship.

The problem, of course, is mismatched incentives for the middlemen versus the clients, particularly at the margins. Similar to real-estate brokers. They may be effective in many ways, but they are looking for pareto-efficiency, where they get you 80% of the match (or 80% of the pay) or whatever for 20% of their effort.

It's hard to imagine any incentive scheme between buyers (hiring managers) and sellers (applicants) that wouldn' be subject to the same market mechanics, even if at lesser scales when done through more automated means.

I don't think crypto really has anything to do this.

FWIW there are several third-party mobile applications that work just fine to operate Sonos equipment.

The speakers expose a few SOAP-based APIs to any clients on the LAN. Those allow for track control, grouping, etc. They don't allow adding new music services, but they can do the vast majority of daily interaction. These APIs continue to work nearly flawlessly even for my Play:1 devices that are 10 years old.

Streaming via AirPlay is indeed hit-or-miss, but it hasn't gotten worse in the past couple years.

I control my Sonos from a jQuery-based web application I wrote nearly 10 years ago that runs on a raspberry pi in my closet. I have not had to change anything in several years, and I use my 15+device Sonos system all the time.

The new app is indeed a dumpster fire. Somehow the company managed to make their first-party application worse than any of the third-party applications.

PHP trivially scales up to multiple nodes behind an LB. You're really only limited by your backend storage connection count and throughput.

Go and friends may make for more efficient resource utilization, but it will be marginal in the grand scheme of things unless there are plans to do massively different things.

As it is this code is very simple. I haven't used PHP in 15 years and I was able to trace through this from front-end to back-end in less than 3 minutes.

To me it look like a really great level of complexity for the problem it solves.

Keep it up, OP.

A "correct" implementation would give you a temporary IAM role or something (STS) based on a JWT or other authn mechanism.

This is not that difficult if you're already invested in an identity ecosystem, but a right pain without something to bootstrap it.

On the plus side, AWS creds can be made to be temporary and limited in scope to just the nouns/verbs required. Creating and vending those tokens is an exercise for the reader.

Magic wormhole is great for live, peer-to-peer transfers.

But it is not great if you want to distribute a file multiple times, asynchronously, or with other functionality gained from centralized storage. This is where people typically use email, dropbox, or perhaps the tool from TFA.

std::move is just a cast operation. A better name might be std::cast_as_rvalue to force the overload that allows it to forward to move constructors/etc that intentionally "destroy" the argument (leave it in a moved-from state).

Even zooming on desktop (firefox on macos) is broken. I want to zoom in to see the street names and investigate the images, but the site makes it impossible. I can download the images to my desktop, but they are low resolution. What a cool project to be soured by such awful technology that didn't need to exist in the first place.

This is fun. The UI and concept are well-executed.

I wish it did farnsworth timing, though. The idea is that the individualy characters play at full 30 words per minute speed, but the characters are spaced to be at your target listening rate.

You want to hear each letter as a distinct sound rather than hearing individual dits and dahs. The added time between each character with farnsworth timing gives your audio/memory system time to make the connection rather than slowing the whole character down so you have to remember that dit-dit-dah is U.

I can typically hear at about 30 wpm with farnsworth timing. It is, for me, much harder to hear when slowed down to 10 wpm with the dits and dahs slowed way down.

It has taken a few months of practice. I'm still too nervous to use it on the ham bands aside from scheduled chats with friendly operators. My favorite way to learn has been guided courses with experienced CW (morse code) operators from cwops.

Obligatory warning that SSRI withdrawals can be extremely dangerous.

I was on Lexapro for a minute. It worked for a bit, but then I started to not care about anything. A certain amount of anxiety/emotional swing is important for my humanity, as I found out. I really wanted to get off that stuff. But my doctor insisted that I ween off of it by reducing my dosage over a period of 2 months. I'm glad I listened. I could acutely feel each reduction.

workflow engines are somewhat of a design smell

Probably so, but the real design smell seems to be thinking of a workflow engine as a panacea for sustainable business process automation.

You have to really understand the business flow before you automate it. You have to continuously update your understanding of it as it changes. You have to refactor it into sub-flows or bigger/smaller units of work. You have to have tests, tracer-bullets, and well-defined user-stories that the flows represent.

Else your business flow automation accumulates process debt. Just as much as a full-code-based solution accumulates technical debt.

And, just like technical debt, it's much easier (or at least more interesting) to propose a rewrite or framework change than it is to propose an investment in refactoring, testing, and gradual migrations.

Humans are really good pattern matchers. We can formalize a problem into a mathematical space, and we have developed lots of tools to help us explore the math space. But we are not good at methodically and reliably exploring a problem-space that requires NP-complete solutions.

Sure, but those are heuristics and feedback loops. They are not guaranteed to give you a solution. An LLM can never be a SAT solver unless it's an LLM with a SAT solver bolted on.

(Not an AI researcher, just someone who likes complexity analysis.) Discrete reasoning is NP-Complete. You can get very close with the stats-based approaches of LLMs and whatnot, but your minima/maxima may always turn out to be local rather than global.