bluquark
Joined 8 years ago
Joined 8 years ago
- Most of the time it's simply a pragmatic way to introduce a clarification without breaking the flow of the text, essentially a more concise form of parenthetical or footnote.
- In classical poetry it is used for a variety of effects, for example novel synecdoches. One side of the gikun might refer to a season, and the other side might refer to a key detail the poet idiosyncratically associates with that season.
- But the contemporary Japanese learner usually notices them the most in fantasy/sci-fi manga and novels. In this genre it's used to introduce in-universe jargon while showing its meaning in parallel. At the extreme, it can allow writers to go over-the-top with how much special jargon the universe includes, without slowing down the pace of storytelling. (This can pose quite a challenge for translators!)
As for users with the lowest-end devices like the Itel P32, Dan's chart seems to prove that no amount of incremental optimization would benefit them. The only thing that might is a wholesale different client architecture that sacrifices features and polish to provide the slimmest code possible. That is, an alternate "lite/basic" mode. Unfortunately, this style of approach has rarely proved successful: the empathy problem returns in a different guise, as US-based developers often make the wrong decisions on which features/polish are essential to keep versus discarded for performance reasons.
I do agree with the general idea that laziness and going easy on yourself is good though. I give myself quite a lot of slack when grading my answers, applying a "my understanding of this word is close enough to avoid confusion in practice" threshold rather than some impractical ideal of native-level mastery.
In practice, that's illustrated by the fact that there's now a button to fully recompute all intervals and difficulties based only on your history and the current algorithm tunings. And if you've already been using FSRS and the tunings haven't changed, the recomputation won't have any effect because it's equivalent to the incremental computations after each review.
So in principle it could be thought of as a just-in-time pure function, which involves a cache of generated data only for legacy & performance reasons.
The refrigerator camera sounds like the same kind of thing. Modestly useful feature that may well become standard-issue someday because the underlying components can be made very cheaply at scale.
However, municipalities with a good credit rating can usually issue bonds that pay out about a third less yield than treasuries, thanks to favorable treatment of municipal bonds in the US tax code. I don't know how healthy Chicago's rating was in 2008 but even if somewhat mediocre, it's likely they could've gotten 3% or less on the bond market.
So at a minimum there was no advantage for the city in signing up for a sweetheart deal with strings attached, instead of covering the shortfall by issuing a bond.
In my personal experience at my workplace I've certainly observed many times that the quote "Adding manpower to a late software project makes it later." is not universally true. When things go well, onboarding an experienced engineer and assigning them a parallelizable task has often proved a relatively lightweight process on teams I've been on, and I've seen the new member's productivity rapidly exceed their communication burden on the rest of the team.
That might be explainable by how several of the innovations you listed reduce the need for communication between humans. For example, we now need less communication about regressions since CI/CD alerts the responsible party immediately, and we need to ask fewer questions when individuals can examine the entire history of a codebase in version control themselves.
(That doesn't mean Fred Brooks's work is now obsolete, this story is consistent with Brooks's underlying analysis of the problem.)
Of course the sums are not directly comparable for other reasons, such as corruption in Russia and procurement dysfunction in the US. But those factors would need to be estimated explicitly.
(EDIT: Thanks for the replies, I hadn't heard that there also exist specific estimates of "defense-sector PPP", so I acknowledge what I wrote above was wrong.)
So investing in tooling certainly improves productivity, but whether it can make things "fun" depends on which categories of hard/slow problems a given developer enjoys.