HNHacker News
TopNewBestAskShowJobs

unconed

1,056 karma · joined May 19, 2009

developer, engineer, geek. my nifty things can be found at http://acko.net/ .
submissionscomments
unconed··on The HTML-in-Canvas API origin trial
I discussed concerns about HTML-in-Canvas a while back as part of this post: https://acko.net/blog/html-is-dead-long-live-html/

Since then I've actually met these two and had to conclude that:

- They didn't have any use-cases in mind that weren't cosmetic

- They don't quite understand how being part of an advertising company shapes how they build and conceive of web tech

- They react quite poorly to reactions that aren't cheerleading

The answer for curved elements was handwaving and "just approximate it with flat projective transforms" which tells you this is not a serious attempt to expose mature UI internals, but just another shiny epicycle on the creaky leviathan that is the HTML5 web api.

The list of features that "automatically work" rests on assumptions that are only valid for minor visual adjustments. The moment you try to use HTML-in-Canvas as a more basic building block, a lot of that falls away.

e.g. Suppose I render a piece of text and then use that as a mask for visual effects. If the browser now draws a text selection highlight into that mask, the text becomes unreadable.

unconed··on Show HN: A CC0 museum of retro 3D tricks you can paste into a page
Seems like vibe coded slop?

The long/lat globe has a bizarre projection that has incorrect perspective. Neither orthogonal nor inverse Z.

The "utah" teapot is not the utah teapot. The handle is also oriented with backfaces showing, and is disconnected from the teapot body.

The "glenzing" example is just regular alpha blending and fill whereas the original glenz effect was about mimicking alpha blend using bitwise tricks on a purposely designed 256 color palette (iirc in Second Reality).

Etc etc.

I don't understand why this stuff is supposed to be impressive when what it really represents is the inability of the person who posted it to spot and fix the errors, ranging from blatantly obvious to subtly historically inaccurate.

Calling this a "museum" is a misnomer. Museums do curation and restoration, not kitschy knock offs.

unconed··on Normalized Fascism in Open Source: $12M Given to DHH
So, just to illustrate.

A "vaccine skeptic" is generally considered to mean someone who is skeptical that vaccinations work at all.

This is very different from having specific concerns about specific products, like the COVID "vaccines", which turned out to:

- not protect against infection

- not prevent transmission

- have numerous side-effects worse than the disease it's supposed to prevent

...all in direct contradiction to the pharma propaganda that was the norm during 2021-2022, for which large amounts were paid to influencers and media.

Indeed, someone who is a proponent of the practice of vaccination ought to be dismayed that such a shoddy product was pushed as belonging in the same category as time-tested vaccines which went through a rigorous and long development process before hitting the market, rather than being foisted on a population under duress. Competing remedies were also ridiculed so as to secure that desirable Emergency Market Authorization, combined with government contracts that removed any liability for the producers, with additional censorship of those contracts before release to the public.

Hence, "You're all on the same team now" is an example of missing the point entirely and turning the issue of vaccination into political team sports and "our guy" vs "their guy", rather than actually debating any of the issues that matter in public health. Do you see what I mean about not being able to state what opponents actually believe?

With loaded terms such as "hate", "toxic" and "harmful" being thrown around like candy, it's exactly the same thing. Hate and harm are supposed to be decided according to objective norms of discourse and behavior, not sentiment. Because what happens is sentiment is decided according to whom the source and target is. The lefties obsessed with these topics decide first who can be a victim and perpetrator based on the tenets of intersectionality, and then interpret the events and actions to fit that preconceived hypothesis. This is largely a result of peer pressure within their own circles. The Jason Arday case is the best recent illustration.

Notice too that the surveys you cite center on "worry about the rise in harmful content" and "feeling less safe". Not about any actual harm that may have been done, nor about whether safety has actually gone up or down.

I'll even add that the distinction between looking at objective behavior and outcomes, vs looking at subjective sentiment, tracks very well with masculine vs feminine norms in social interaction. Feminization of online spaces has been an absolute disaster and the quality of discourse has gone down immensely, because women by and large prefer social cohesion over facing uncomfortable truths. But when the ship is sinking, complaining that someone is rocking the boat is willful blindness.

unconed··on Curvature Beziers: Improving on a timeless recipe
Sorry but you're missing the forest for the trees here.

The locality of a bezier, even with symmetric constraints, amounts to the fact that the user's specified positions (the endpoints) and tangent directions are preserved exactly and can be modified independently. This makes detailed edits easy. And because curvature beziers only differ from classic beziers in the tangent lengths (not directions), the same properties hold.

The "7 control point span" you talk about is really a 5 point span, because adjusting the lengths of the bezier tangents at the far ends serves to explicitly preserve the user's intent, namely the radius of curvature.

Catmull-Rom e.g. ties together the tangent at a control point with the position of the previous and next control point. And B-splines don't guarantee going through any control point at all except the endpoints, with the tangents not even independently controllable.

This is why artists like beziers.

unconed··on Curvature Beziers: Improving on a timeless recipe
I wrote the article :).

To clarify, I meant B-splines _lack local control_ like Catmull-Rom splines, not that the latter is an instance of the former. Though indeed, all cubic splines are just cubic polynomials.

I disagree with your characterization that the proposed solution lacks local control, because edits only affect the segments in question, just like with a classic bezier. From the point of view of curvature handles, the handles you don't touch don't change. (The splitting of a curvature bezier is imo the best illustration of this.)

Re: the meaning of the scalars, I imagine they are derived similarly as the perpendicular-distance diagram in the post. If you plug bezier formulas into curvature formulas, a lot of terms cancel out.

unconed··on Curvature Beziers: Improving on a timeless recipe
As the post says, beziers are everywhere so we are stuck with them. It's worth trying to improve them for that reason alone.

Additionally B-splines (like Catmull-Rom) have the issue that moving one point affects a larger area of the spline than an equivalent bezier. The local control of beziers makes them more desirable for precise illustration.

As for the formula you cited, it tells you where to put the control point for continuity in function of two scalars, but those scalars don't directly map to intuitive controls. It also doesn't help when moving a curve point while preserving curvature on both sides because it only tells you one side in function of the other. I.e. continuity of curvature is a weaker constraint than having the desired curvature.

I initially experimented with something similar but found that numerical drift would steadily accumulate during interactive editing. The post shows this with the last example before curvature handles: rotating the tangents there preserves curvature continuity but the curve tends to blow up for certain angles, because the tangent is a poor proxy for indicating desired curvature.

unconed··on Curvature Beziers: Improving on a timeless recipe
Yes, a linearly parametrized line.
unconed··on Curvature Beziers: Improving on a timeless recipe
The C1 continuity you refer to is relative to the parametrization t=0..1 per segment. This is useless in practice.

For e.g. animation purposes, you need to reparametrize to arc length which destroys the apparent C1 continuity.

unconed··on Curvature Beziers: Improving on a timeless recipe
Most of those rules are copes, really.

Placing points at X/Y extremes is by itself useless because beziers are rotation invariant. i.e. If that's the best place for the control points, then by the same argument if you rotated the curve by 45° the points would need to be on diagonal extremes. It's only useful with typography where many letters are oval. IIRC this rule originated because buggy rendering code assumed the curve would never extend beyond the XY bounding box of the control points.

Placing nodes at inflection points is actually a bad idea because there are very few configurations where curvature remains continuous. It's better to construct S bends with the inflection point in the middle, because then you always get a smooth transition.

Picking a specific spacing between control points makes it more likely that equal tangents represent approximately the same curvature on both sides, but it's not guaranteed either.

unconed··on Curvature Beziers: Improving on a timeless recipe
If you like that, then try this.

Take a row of pascal's triangle, add a zero in front (shift it to the right by one place), and divide it by the row below it.

    0 1  4  6 4 1 /
    1 5 10 10 5 1
    = ...
From this you can prove that a linear bezier line (of any degree) must have equally spaced control points.
unconed··on "Fix" MacBook Neo Cursor Lag: Record 1 Pixel of the Screen Every 10 Seconds
>A software cursor is manually drawn by the graphics stack, which saves what was under it, draws the cursor, and then whenever it needs to be moved, writes the original data back, saves the data at the new position, and then draws the cursor there.

AFAIK this hasn't been true for a long time on most platforms, certainly on macOS. The desktop image is composited on the GPU by assembling the underlying windows with appropriate effects like shadows and scrolling/scaling. A software cursor is just another overlay which may also have a transparent shadow.

Actually preserving what was under the cursor and putting it back is the sort of thing you wouldn't do anymore, because that's a cache which requires babysitting based on everything that's underneath and around it.

e.g. On macOS there's full screen zooming for accessibility, and if you wiggle the mouse, the cursor grows in size briefly (maybe even too big for hardware cursor to support).

unconed··on HN seems dead compared to say 10-15 years ago
In 2011 the iPhone was ~4 years old and iPads were ascendant as the only tablet game in town. Google was still playing catch up with Android as a knock-off, having just debuted Android Honeycomb.

The actual topics are:

- the Apple campus that is still unique today

- a rectification of an urban legend about Jobs and Knuth

- a clip showing Jobs was prescient in the late 90s about personalized cloud tech

Dismissing the focus on Jobs as a cult of personality is a mistake, he was simply very influential, and so was Apple at this time.

Meanwhile LLMs are the antithesis of the Jobsian style: just cramming pirated data into a model and reselling it as fake intelligence without real source attribution.

unconed··on Ask HN: What was your "oh shit" moment with GenAI?
My "oh shit" moment with AI was when an industry where licensing was the cornerstone of projects and employment contracts decided to just adopt pirated code without any source attribution.

The other one was when a CTO boss sent me an AI proposal to review and the experience was like being gaslit by a con artist.

Many professional developers have started acting like the kind of employee that previously would've been fired after 3 months.

unconed··on Show HN: Freenet, a peer-to-peer platform for decentralized apps
Woke lost, because it infected companies, universities and other organizations. It prompted entitled idiots like cited above to go into projects started by others, assume eminent domain, and attempt to take it over with slander and defamation. Always with the same script, pretending to defend while engaged in an unprovoked and drawn out attack.

See the cases of:

- The Ada Initiative

- DongleGate

- James Damore

- Bret Weinstein and Evergreen state (there's even a documentary by Mike Nayna about this)

Just to name a few.

Hyperventilating over the phrase "woke mind virus" or calling Musk a nazi a few dozen more times will not work.

You're the square, and your favored ideology lost.

We now even have BlueSky serving as the verifiable echo chamber of the idiots, and it's absolutely hilarious how they just can't stop attacking each other over there.

Calling for sources while questioning one of the most visible forms of social activism of the last decade is pure gaslighting btw.

unconed··on Saying Goodbye to Asm.js
Asm.js was never needed as a legacy mechanism, as it was just a compilation target for native code. There was nothing that it needed to remain backwards compatible with, all asm.js code was new code.

https://acko.net/blog/on-asmjs/

unconed··on How and Why I Journal
Hm so not only is it possible to manipulate scores on HN with weird scripts, but mods only noticed this when users pointed it out in this instance, with no automation or logging there to detect something like this?

Do you suppose motivated individuals might have used something like this to bury wrongthink at a time when mods insisted such a thing wasn't happening, and even if it was, it was happening to all tribes equally so really it wasn't a big deal?

unconed··on Students boo commencement speaker after she calls AI next industrial revolution
It's not that AI can't convince a novice that what comes out is passible.

It's that experts in a field generally agree that what comes out is insidiously hollow garbage.

This isn't a "semi-religious" belief. It's linear token soup and diffusion bakes running headfirst into actual expertise, second and third order effects, refined skill and taste, and so on.

If you actually want to see civilization advance, you cannot rely on machines that merely mash up existing intellectual output while pretending to have expertise.

We already had that in the form of art school avant-gardism. AI is just style transfer of that, with corporate sycophancy and valley hyperbole as a veneer.

unconed··on Notion leaks email addresses of all editors of any public page
After making one of the least worst rich editors out there on the web, they needed to keep their developers and designers busy (while not having time to fix privacy bugs).

Like every other AI tool it mainly seems to exist to produce productivity porn. Summarize the meetings nobody could be bothered to summarize. Write the docs nobody can be bothered to read or write. Communicate as an end, not a means, because the company your work for has transitioned into the dead-weight phase.

unconed··on macOS Tahoe windows have different corner radiuses
This article's timeline is mostly accurate, but contains a few inaccuracies:

- Unified toolbar and titlebar dates from much earlier... it was 10.4, not 10.7.

- The brushed metal look was supposed to be applied to "appliance-like" apps as opposed to "document-like" apps... But Apple was never able to stick to that rule themselves.

There are a few design ideas that always turn out to be bad when implemented, but which designers seem to have to learn the hard way. Transparency is the biggest one, but I guess so is excessive rounding now.

unconed··on Ape Coding [fiction]
>Despite the quick spread of agentic coding, institutional inertia, affordability, and limitations in human neuroplasticity were barriers to universal adoption of the new technology.

Blaming lack of adoption purely on regressive factors follows the same frame that AI firms set. It isn't very effective satire for that reason.

It couldn't be that there is something essential and elementary that is wrong with the output, no... all these experienced experts are just troglodites and wrong and we should instead tag along with the people who offloaded the parts of their work they found tough to a machine the first chance they got.

There's no such thing as ape coding. There's still just coding, and vibe coding.

unconed··on Fredrick Brennan, founder of 8chan, has died
The news article isn't an obituary, it's gravedancing. Hope that enlightened your royal majesty.
unconed··on Fredrick Brennan, founder of 8chan, has died
>He died in his sleep last month

Title is misleading.

>Wizardchan, a smaller and misogynistic forum for male virgins

I see the media has learned exactly nothing since the days any of this was relevant. Just apply the usual adjectives until consensus is achieved.

There's nothing more credible than sockpuppetting a dead person to renounce anything related, amirite?

unconed··on It's all a blur
The degree to which people defend poor scholarship and writing on HN these days is frankly pathetic.

There is nothing about that intro that is offensive. Reading comprehension ought to tell you that "pun intended" is a joke to make the bitter pill that OP wrote garbage easier to swallow.

unconed··on It's all a blur
Homework assignment: make a bode plot of the convolution filters [1 1 1] vs [1 2 1].

Which one turns +1, -1, +1, -1, .. into all zeroes?

You ought to know this because the fourier transform of [1 0 1] is a cosine of amplitude 2 on the complex unit circle e^(i*omega), which means the DC quefrency needs to be 2 to get the zeroes to end up at nyquist.

The frequency response H(z) (= H(e^i*omega)) of [1 1 1] on the other hand will have its minimum somewhere in the middle.

Also here's a post that will teach you how to sight read the frequency response of symmetric FIR filters off the coefficients: https://acko.net/blog/stable-fiddusion/

unconed··on It's all a blur
Using a caesar cypher as an intro without explaining the pro tool and framing the educational context properly is just shit pedagogy bro.

Go look up what a z-transform is, and begone.

unconed··on It's all a blur
A binomial is exactly equal to a repeated 2 sample box blur yes. That's exactly how you construct pascal's triangle.

For filter sizes > 2, box blurs are ass.

unconed··on ai;dr
>Before you get your pitchforks out and call me an AI luddite, I use LLMs pretty extensively for work.

Chicken.

Seriously, the degree to which supposed engineering professionals have jumped on a tool that lets them outsource their work and their thinking to a bot astounds me. Have they no shame?

unconed··on It's all a blur
Sorry but this post is the blind leading the blind, pun intended. Allow me to explain, I have a DSP degree.

The reason the filters used in the post are easily reversible is because none of them are binomial (i.e. the discrete equivalent of a gaussian blur). A binomial blur uses the coefficients of a row of Pascal's triangle, and thus is what you get when you repeatedly average each pixel with its neighbor (in 1D).

When you do, the information at the Nyquist frequency is removed entirely, because a signal of the form "-1, +1, -1, +1, ..." ends up blurred _exactly_ into "0, 0, 0, 0...".

All the other blur filters, in particular the moving average, are just poorly conceived. They filter out the middle frequencies the most, not the highest ones. It's equivalent to doing a bandpass filter and then subtracting that from the original image.

Here's an interactive notebook that explains this in the context of time series. One important point is that the "look" that people associate with "scientific data series" is actually an artifact of moving averages. If a proper filter is used, the blurryness of the signal is evident. https://observablehq.com/d/a51954c61a72e1ef

unconed··on I was banned from Claude for scaffolding a Claude.md file?
It's bizarre how casually some people hate on Musk. Are people still not over him buying Twitter and firing all the dead weight?

_Especially_ because emotional safety is what Twitter used to be about before they unfucked the moderation.

unconed··on Engineers who dismiss AI
cough

The Strange Case of "Engineers" Who Use AI

I rely on AI coding tools. I don’t need to think about it to know they’re great. I have instincts which tell me convenience = dopamine = joy.

I tested ChatGPT in 2022, and asked it to write something. It (obviously) got some things wrong; I don’t remember what exactly, but it was definitely wrong. That was three years ago and I've forgotten that lesson. Why wouldn't I? I've been offloading all sorts of meaningful cognitive processes to AI tools since then.

I use Claude Code now. I finished a project last week that would’ve taken me a month. My senior coworker took one look at it and found 3 major flaws. QA gave it a try and discovered bugs, missing features, and one case of catastrophic data loss. I call that “nitpicking.” They say I don’t understand the engineering mindset or the sense of responsibility over what we build. (I told them it produces identical results and they said I'm just admitting I can't tell the difference between skill and scam).

“The code people write is always unfinished,” I always say. Unlike AI code, which is full of boilerplate, adjusted to satisfy the next whim even faster, and generated by the pound.

I never look at Stack Overflow anymore, it's dead. Instead I want the info to be remixed and scrubbed of all its salient details, and have an AI hallucinate the blanks. Thay way I can say that "I built this" without feeling like a fraud or a faker. The distinction is clear (well, at least in my head).

Will I ever be good enough to code by myself again? No. When a machine showed up that told me flattering lies while sounding like a silicon valley board room after a pile of cocaine, I jumped in without a parachute [rocket emoji].

I also personally started to look down on anyone who didn't do the same, for threatening my sense of competence.

Page 1 of 16Next →