HN user

aldonius

173 karma
Posts0
Comments129
View on HN
No posts found.

When emails overwhelmed me, I asked a thoughtful user who emailed frequently and seemed to know as much about the product as I did if he’d help answer the emails, so I paid him to do that. And he did a great job, especially in terms of directly solving user problems.

Hey, I got promoted from customer to Customer Support at _my_ $dayjob!

Let's review some common areas.

- Pricing: everyone is always looking to get a better deal. That's their right but I'm unlikely to give one. Saying no here is just another (emotional) cost of doing business.

- Bug reports: broad agree on all four points but not necessarily the conclusion. Users who are willing to go down the debugging rabbit hole with me are golden.

- Pathological customers: I like to call them "frequent flyers". Enough said.

- Feature requests: we're not necessarily as "opinionated" so we rarely give a hard no, but this is why we have a "feedback board with upvotes" approach.

- General usage questions: I have an attitude of fresh eyes often being the best eyes for usability testing. If it's not obvious, what can we do to make it so? We also use Intercom Fin to handle a lot of these level-0-support questions though.

Oracle's not a good comparison though, because it's getting valued as an AI compute provider as well as for its traditional business. At the end of 2021 Oracle's stock was about $100 (all-time-high in nominal terms at the time), its current ATH was October last year at $292.

I guess we can imagine a pure reasoning model (if that's even the right word any more) with almost zero world-knowledge. How does it know what to look for? How does it do any meaningful communication at all?

So I think it's useful to have an imprecise-but-fairly-accurate set of world knowledge as part of an otherwise reasoning-heavy model. It's a cache.

And if the it's an LLM, or something like that, I think it basically has to have world-knowledge built in, because what is natural language if not communication about the world?

Interesting idea and I do agree that contiguous is OK but total is not.

I think I'd suggest a more generous Senate term limit. Three terms (18 years) would allow for someone to see out a complete Presidential super-cycle, for example.

The word Senate is etymologically related to "senior", it's a place where you _want_ people to be able to develop a lot of institutional experience.

I mean, that's pretty normal right. The product starts out as a bit niche and expensive, and then as it scales in manufactured volume, variants & competitors become available at lower price points.

Thanks for clarifying.

Just for reference, usually folks in this situation use postfix initials rather than prefix (like how blockquotes are cited).

- J.S.

I drive a 20-year-old Civic.

On a trip about 18 months ago I had some Kia soft-roader hire car. I bloody hated the lane keeping (unfamiliar narrow twisty roads are bad enough without the car tugging on the steering wheel).

Conversely the auto-distance thing with cruise control is fantastic - it makes CC usable at way higher traffic densities.

It's a somewhat different kind of ring buffer, because there's just one index, but I used it in my signal processing class for a finite-impulse-response filter.

Choose N to be a power of two >= the length of your filter.

Increment index i mod N, write the sample at buffer position x[i], output sum of x[i-k mod N] * a[k] where a[k] are your filter coefficients, repeat with next sample at next time step.

In Brisbane I think our ticketing system cost overhead is maybe 10%?

The cost of the programme rolling out new ticketing infra (the first major ticketing system upgrade in ~15 years since we first got integrated ticketing, going from a stored-value smart card to also being able to tap your credit card) is roughly the same amount of money as the annual revenue from fares.

Prime Number Grid 11 months ago

You'll find that when the number of columns is a multiple of 6 you'll get obvious columns in the dots, and if it's +1 or -1 modulo 6 the columns become diagonal stripes (the process sort of continues for ±2 and at ±3 it's pretty broken down).

It's a fairly straightforward number theory result that every prime > 3 is congruent to ±1 modulo 6 so that's probably what you're seeing. (Can't be +2 or +4 because that's divisible by 2, can't be +3 because that's divisible by 3, leaving +1 and +5 aka -1.)

I'll put in a good word for a chatbot hooked up to the documentation (e.g. at $dayjob we use Intercom Fin) acting as level 0.5 support.

At $dayjob our customers are nontechnical so they don't always know what to search for, so the LLM/RAG approach can be quite handy.

It answers about 2/3 of incoming questions, can escalate to the humans as needed, and scales great.

I suppose with SQLite files, you could at least in theory diff their SQL-dump representations, though you'd presumably want a way to canonicalise said representation. In a way I suppose each (VCS) commit is a bit like a database migration.

Apple M3 Ultra 1 year ago

I think betting on low-power NPU hardware wasn't necessarily wrong - if you're Apple you're trying to optimise performance/watt across the system as a whole. So in a context where you're shipping first-party bespoke on-device ML features it can make sense to have a modestly sized dedicated accelerator.

I'd say the biggest problem with the NPU is that you can only use it from Core ML. Even MLX can't access it it!

As you say the big world-changing LLMs are scaling up, not down. At the same time (at least so far) LLM usage is intermittent - we want to consume thousands of tokens in seconds, but a couple of times a minute. That's a client-server timesharing model for as long as the compute and memory demand can't fit on a laptop.

I see it not so much as getting the compiler to ignore semver but rather giving it more granular information about the nature of the changes.

As I understand it:

- Anything which is breaking-changed in any way for 0.3.0 (e.g. in the article a type change from i32 to u32) is the exact same code in 0.2.1 as it was in 0.2.0.

- Anything which stays the same for 0.3.0 is re-exported in 0.2.1 (from 0.3.0). The code is replaced with a `pub use ...;`

- Anything which moves around in the submodule hierarchy (but is otherwise unchanged) in 0.3.0 is re-exported in 0.2.1, from where it used to be.

If crate Baz depends on something in Foo 0.2.x which changes in Foo 0.3.0, then when (if!) Baz updates to Foo 0.3.0 it will need to deal with that. But Baz can upgrade to Foo 0.2.1 without concern, and any types unchanged in Foo 0.3.0 will be interoperable.