Recent submissions

Comment · 2 days ago
A pipeline can tolerate clock offsets. E.g., an ALU like the Pentium 4's staggered ALU but within "a single clock cycle" might allow the more significant input bits to arrive at a time offset relative to the time for the first bits of inputs. Parsing variable length encoded instructions has a similar "carry propagation". Similarly, different stages might use different amounts of the cycle. Grid network routing can also localize time synchronization.

Getting the clock routing delay to approximate the delay that is designed to be tolerated seems likely to be rather tricky, but I think clock offsets from imbalanced travel distance do not have to make all of that time wasted.

I might well be wrong as I am only aware of some very general concepts of hardware design. Even in my ignorance, I am aware that theoretically possible in some cases is not the same as practical/worthwhile in general.

Comment · 11 days ago
For Stack Overflow, I only answered technically off-topic questions, so I contributed a bit to one problem of SO.

(I also made one "let me Google that for you" comment on an SE answer, though I tried to be polite asking what was not understood from the Google result. I cringe a bit when I remember that. https://stackoverflow.com/questions/55752699/what-does-a-spl... if anyone is interested.)

I am not a programmer, but I do have some knowledge of computer architecture. Unfortunately for me, the Stack Exchange sites where such questions would be on-topic (Computer Science and Electrical Engineering/Electronics) did not get many questions that I could answer. (https://electronics.stackexchange.com/a/123778 is one of my more popular answers.)

I do not remember exactly why my participation in Stack Exchange sites declined. Part of the motivation loss was from fewer "interesting" questions, part was from a slight decline in politeness, part was from modest discomfort with the policies that made asking questions more difficult, part was from general declining enthusiasm and competition with other interests.

I do remember what caused me to rage quit; it was my worldbuilding question being voted to close as too broad and this answer to the question: https://worldbuilding.stackexchange.com/a/247948 .

Besides being just one specific use of adamant (when I was more looking for classes of uses), I felt it mocked my sense of high fantasy (which was one of the tags used). (I do not think this was the poster's intent and I was overly sensitive, but combined with general dissatisfaction and a declining mood this triggered a rage quit. Having something that annoyed me be extremely popular did not help.)

Comment · 11 days ago
Technically, not all energy on earth comes from the sun. Geothermal energy comes from radioactive decay and cooling (including shrinking converting some gravitational potential energy to heat). Tidal energy is partially from the moon. Even meteorites provide a miniscule energy input. But, yeah, the Sun is kind of a big deal.
Comment · 28 days ago
Do compilers use profile information to allocate compilation time (such as by using an extremely expensive but slightly better register allocator for a hot loop)?

I got the impression that expensive register allocation is not an option. A 1% improvement in register allocation that results in a 0.1% local performance improvement and a 0.002% program performance improvement may be considered not to justify 1000x local compile time, but for frequently run stable-ish software the compile time and compiler development/maintenence time might be justified.

(I am not a programmer, but I do like thinking and learning about such things.)

Comment · 1 month ago
For a book, the local value of a page may not accurately represent the value added to the completed book. In fiction, a relatively boring page may be intentional as a kind of palate cleanser. In non-fiction, an early hard to understand section may make later sections easier to understand and avoid unlearning.

In programming, it may be challenging to distinguish between You Aren't Going To Need It (wasted work that adds complexity) and brillant foresight that avoids trying to retrofit an abstraction over independently developed code.

I am not sure that a manager needs to reliably judge the quality of the product to reliably deliver quality products. Judging skill and integrity (and promoting the development of such) does not seem to require having the same skill.

Comment · 1 month ago
I suspect a programmer working for a well managed business might be willing to work unpaid overtime to tidy up code from professional pride. Personal feelings do not generate monetary profit (at least not directly) but have value to workers; the worker's and the management's values are not completely aligned.

This seems to be a wisdom issue both for the worker (e.g., avoiding burnout or even just resentment) and the management (workers who have external principles can be more valuable but they can also be more difficult to manage even decently, i.e., with average ROI)

Your comment reminded me of Bunny the accountant's statement that Skeeve must charge the going rate to have the kingdom on a rational budget and Skeeve deciding to refund taxes to those who complained the most (in one of Robert Asprin's Myth Inc. books). What could possibly go wrong? :-)

Comment · 1 month ago
I agree that heroic effort can hide a resource allocation issue, but often the goals of those controlling resource allocation are not well aligned with the hero's goals. By no longer buying supplies for a student, a teacher is not going to get the school system to provide free supplies.

In terms of work in the job description, I could probably be replaced by 1.2 (1.1?) average competent workers. In terms of other benefits of my employment to coworkers and patrons, my impact is hard to estimate. Others bring in goodies for snacking, but I maintain a consistent but limited selection of snacks; others may spend as much or more money per year on snacks, but knowing that certain snacks will be available has significant value.

While I would have liked being promoted one level (from library page to library aide, from shelving only to shelving and check-in), higher positions have responsibilities I would have found extremely stressful. I was passed over twice for a promotion supported by my immediate supervisor (the decision was made by higher ups, the second time my supervisor was miffed that his input was not given more weight) and I had a meltdown at the interview for a third chance when technical issues (not working audio in an online interview) forced cancellation of the interview. I took my reaction as evidence that I was not ready for more responsibilities.

The first time I was not promoted, I was not especially bothered; the person getting the job was competent and went beyond minimal effort. The second time I was told that I would probably get the job (which I think was part of why my supervisor was not happy about my not even getting an interview) and the person getting the job seemed (after some observation) to be less competent and less enthusiatic than the previous transfer. (I think this estimate was not derived entirely from my disappointment: my first impression was "this is a library person" (glasses et al.). Perhaps seeing a library person not seeming enthusiastic about working at a library may have soured me more than if I had no hints of a kindred spirit.)

I like helping my coworkers (I like most of them and dislike none), but shelving books is not that team-oriented. I do not want to manage people (I am not good at it and do not enjoy it).

Comment · 1 month ago
I think reputation and warranties are insufficient. While building a reputation may be expensive, destroying a reputation can be profitable (in the short term). Warranties can also be made less effective by making the buyer spend excessive time and effort to enforce the warranty. The company sets the terms and effectively their interpretation, so after two years of waiting, nudging, waiting, complaining, waiting, threatening, and waiting one finally gets an "equivalent value" replacement (and the warranty clock was running during that time).

The company might also go bankrupt with much of its profits having gone to owners and decision makers who are not bound to honor the warranty.

Comment · 2 months ago
I wonder if ads (not 20+ minutes straight of ads!) would be less annoying if they were diverse and even moderately entertaining.

E.g., have a customer standing in front of the concession stand saying "Man, the popcorn costs an arm and a leg." followed by an alien with many arms and legs saying "Here, I'll pay." detaching an arm and a leg. The original speaker leaves with his popcorn and the alien buys itself some popcorn (another arm and leg taken off), takes a taste and says "Mmmm. Worth it!" (That might not be a great ad, but I am not that clever at advertising. However, I think that would at least make me smile if not laugh, and a professional should be able to find better concepts and execute them well.)

Having modestly different versions (like openings for The Simpsons) could be a cost effective way to made different versions that could actually draw attention by trying to see what is different and to see Easter eggs for movies for frequent theater goers (or those staying for a double feature).

With big time movies, the movie production company could provide one or two generic ads with various small variations (like a character from the movie being shown or being promoted with a earlier trailer sitting down next to someone in a theater "watching" a trailer who says "I clearly got here too early." to which the character says "That's why took the time to stop by the concession stand" and waves his box of Milk Duds (or other item from the concession stand) while holding a drink in the other hand.

I think there are so many ways to make advertising less annoying. However, even with no repeats and interspersing ads with trailers and shorts (possibly with some product placement, i.e., subtle advertisement), twenty five minutes sounds painful. Entertaining, or at least mildly interesting, advertisement also requires more effort and some appreciation of the audience. Why bother when one has a captive audience? Even with good targeting information, there is also the problem that those wanting to buy the movie goers time/attention may not be selling something of interest (though I could enjoy a clever car ad even though I do not drive and have a slight anti-car bias). With low effectiveness of ads (and so selling price), their number would be increased to compensate for individual ineffectiveness even if the theater is not especially greedy. Driving away movie goers with more ads, then means even more ads need to be shown to compensate for the reduction in eye count.

I have not gone to a movie for about a decade — Interstellar, which was released in 2014 — and I did not really enjoy the experience. Beside problematic aspects of the movie, the sound volume was not comfortable, the social environment was not comfortable, and I went because my host family urged me to go. However, there was not a long feed of ads, so that experience was relatively good. Anyway, I may not be the best person to ask about the contemporary movie going experience.:-)

Comment · 2 months ago
I would guess that rate of benefit relative to divergence from idiomatic purity might also be significant. If a little clutter gains a 50% improvement with language A but only a 10% improvement with language B, language B having a 15% advantage under idiomatic expression may not be that significant.

But, yes, terms like "the speed of C" do not seem especially useful.

Even "equal effort" ignores the complexity of the effort-to-benefit function as well as maintainability issues and other considerations like finding good programmers who want to use the language.

Reality seems to be very complex.

Comment · 2 months ago
If a language can produce the same machine code (including dynamic patching) as a second language, that second language can at best only equal the runtime characteristics of the first. The development and maintenance costs can be very different.

I am not certain if C (apart from inline assembly) can generate all possible machine code, and some translations can be fragile (autovectorization, e.g.).

Comment · 2 months ago
I think more recent languages also provide abstractions that reduce the frequency of off-by-one errors. Type systems also seem to have improved.

Unfortunately, even having tools that eliminate simple errors (like spell checkers and grammar checkers in ordinary writing) does not remove reasoning errors or clarity/conciseness issues.

(Efficient resource use is another dimension besides correctness and maintainability. Using an O(NlogN) method versus O(N×N) may be a mistake when N is small, but tools may lack the domain or profiling knowledge to detect such a mistake. Programming languages also seem to generally lack a way to express the importance of tail resource use, so even with profile information a tool might optimize for mean resource use.)

I think more recent languages have also attempted to increase clarity and conciseness by abstraction and consistent syntax. A newer language may also have more idiom consistency (some of the natural idiom divergence may be less more recently with easier communication -- the Internet functioning like cheap books did for spelling?).

I am not a programmer, but I do like thinking about such things.

Comment · 2 months ago
Would having prominent "cancel order" and/or "edit order" buttons and delayed payment processing have sufficiently reduced the support costs for such cases? (I am guessing not since such is an obvious method of providing a fast/easy default with a somewhat easy undo, but sometimes the obvious is missed or turns out to add problems -- like people seeing a prominent "edit/cancel order" and assuming it meant 'confirm/place order' as used by every other site.)
Comment · 3 months ago
I think a microscopic black hole would evaporate very quickly from Hawking radiation, so the result might be more bang than suck.
Comment · 3 months ago
In D&D, min-maxing (hyphen and one x) is already a used term for character optimization, minimizing undesirables and maximizing desirables (I guess).

Minimizing peaks is probably not a good strategy generally. Even low peaks may have some benefit ("if you know your problem is in this domain and performance is critical, this tool offers a 3% advantage").

Minimizing troughs may be more attractive. People generally seem to react more strongly to negatives and competitors can devise benchmarks which emphasize one's troughs.

While a universal expert would be convenient and broad knowledge aids some forms of creativity, specialization has substantial advantages.

Trading max performance (primary metric of concern) for some improvement in a secondary metric often makes sense and that could be an interpretation of "minmaxxing", reducing the over-emphasis of a single metric which would otherwise be maximized.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton