HNHacker News
TopNewBestAskShowJobs

mntmoss

697 karma · joined February 15, 2019

submissionscomments
mntmoss··on ‘Go Back to California’: Wave of Newcomers Fuels Backlash in Boise
It's hard to describe what California is now only in terms of the politics. Despite everything, the state has enjoyed a strong economy for many years, and that results in the symptoms of transcience: so many people enter the state to advance their career, then go elsewhere after getting established. They never fully engage with the politics. It's not just that it's too expensive or too liberal, rather, the local political machinery has grown accustomed to not actually being beholden to constituents in any long term sense. They get plenty of tax revenue and businesses clawing for attention.
mntmoss··on Haskell and Rust
I do find types helpful in smoke testing greenfield code where it needs to deal with structured data and references. But definitely the more complex approaches to typing have sharply diminishing returns. The static invariants I start caring about in complex scenarios are more along the lines of contracts or structured concurrency, and I don't want to reason about those with types.
mntmoss··on There's No Such Thing as Knowing Your Computer 'All the Way to the Bottom'
I was recently doing some language evaluation for rewriting an existing system in Go to improve its cross-platform compatibility. One of the things I realized in this exercise was that "compiles to C" was a powerful feature - not because of C itself, since C often gets in the way of the source language's intent - but because it means that the result fits into and leverages all the C-based tooling, facilitating the desired level of platform independence.

And for a lot of projects today, "the bottom" ends with C for precisely this reason - while the fact that C is the chosen language for this task is completely arbitrary, as arbitrary as the status quo hardware paradigm of "x86 on desktops, ARM on mobile". I could imagine a universe where it was an extended form of Basic or Pascal that ruled the world instead.

Likewise, I was also looking into extending Lua with a small DSL interpreter that could accelerate certain byte-level tasks: copy around blocks of bytes, run some common algorithms quickly, define spaces for variables, apply some parameters. At first I thought of this language as a "VLIW" assembly language with a particular focus on having a big bag of tricks, but when I compared my semantics with actual hardware assemblers, I found that having no registers or stack manipulation and focusing only on direct memory addresses changed the character of it so much as to make it a different beast, one more like the "autocoders" of the 1950's: not quite ALGOL, and yet clearly headed in that direction.

All of which is to say - the more you are comfortable with compilers, the more the bottom just becomes the thing you happen to be leveraging to ship product. It isn't "the real stuff" until it becomes the specification language. Some things, like how numeric types are defined in hardware, force the terms of specification way up the stack so that the hardware may be used at its capacity. But that in itself is an "essential complexity" in computing, where the physical realities coincide with the desired programming model. When it's software defining the spec, as in our libc-and-Javascript-driven universe, that's more akin to social complexity, but it produces the same kinds of effects.

mntmoss··on Ask HN: How is your mental health?
I took a storytelling class recently and the book we used as a text, "Storytelling and the art of Imagination" (Nancy Mellon) has some sound advice for using stories for healing purposes. I find it rather powerful as a way of extending journaling and taking it out of the nihlistic-ruminating mode that feeds anxious-depressed cycles - just taking control of an ordinary life story and adding a few fairy tale elements does a lot.
mntmoss··on Separating gifted children hasn't led to better achievement
My experience specifically with SFUSD math tracking, a good 15 years back, was that it was rigid and caused as many problems as it solved.

Specifically, I had a parent that really, really wanted me to do honors math because my older brother did well at it(and he went on to get a math PhD etc.) and math seemed like a ticket to "success" - and so, in both middle school and high school, I was tracked into the middle options, and then within a few days of starting, parent had pushed around the bureaucracy to get me in honors, where I was not completely hopeless all the time, but suffered quite a lot from pressure to succeed and cheated a few times. Finally in my sophomore HS year I managed to fail a class and got switched to the lower track because for some reason you couldn't go from honors down to the middle option...and then some time later, parent tried to make me talk the school into letting me take the AP Calculus course anyway! Which they said "no" to, of course.

Basically, HS math ended with calculus, but even that "lower" track had a strong pre-calc foundation with some trig, linear algebra, etc. At most there was always about a year of difference at stake, in fact - so the post-tracking setup did not change that much. But when I went off to college all these feelings carried over and could not be left behind: I tried taking the engineering Calc courses, hit a wall with integrals, wasted probably a year trying to prove something to myself and developed a miserable self-outlook, settling on an economics degree because it had easier calc courses. (Had I realized that there was also some executive dysfunction in play it might have all been a lot smoother - oh well.)

Basically, parental worry about math tracking created a huge, huge sideline from taking on activities that would have actually helped along my development. It started early and to some extent wouldn't have been stopped by the system, but it would have presented less of a direct obstacle in daily life.

In contrast, the option of self-study and college courses as a supplement has been the path for the truly gifted learners, especially around SF(CCSF, SFSU, USF, and you can go visit Berkeley if that's not enough). That's a way more straightforward way to go about it w/r to a lot of academic topics.

mntmoss··on Back to Windows after twenty years
A strange thought process. If you wanted Unix on not-Apple, a Linux desktop remains the more reasonable option(sub the perpetual caveat of having to vet the hardware for compatability).

And my first inclination would be to see how things go with Msys2 before banking on WSL. You will eventually end up navigating build processes in some depth - but I don't see that as a Windows problem so much as a Unix/libc monoculture problem that gets swept under the rug by never leaving that environment. You won't have quite the same experience with a fully MS stack or with not-specifically-Unixy tools.

mntmoss··on Stop Trying to Raise Successful Kids
One of the "points" of having kids, if there is any, is that you can impose on them, in some limited degree, the future you want to see.

Now, of course, they graduate and move out and then the real world starts repeatedly smacking them over the head until they learn to coexist with the current realities. But that happens with the current success-oriented parenting styles, too. Lots of kids work hard to succeed at the achievement markers, develop some notion of entitlement and self-import, and then graduate into being burnouts, addicts, and recluses - if they didn't already become anxious messes from the workload. It's not helped by driving that lesson harder and deeper.

Balance is more important. If they experienced balance as kids, they stand a chance of finding their way out of imbalance as adults and in turn fighting to bring about the world they want to see, instead of navigating blindly from a point of despair.

Developing kindness isn't the only thing to ensure balance, for sure, but it's one reasonable starting point.

mntmoss··on Text Editing Hates You Too
I agree with the ironic sentiment. We've pushed up the complexity of a lot of features because we can, not because the value is there. Unicode itself is a great example of such: it's a dumping ground for "everything that resembles text" - and while it's easy to consume and there is some benefit to be had, it's also hard to comprehend on any level beyond the very basics. It's quite a ways away from the early telegraphy encoding systems.

With respect to selection, selection is key to all forms of interactive editing because without it you don't have interactivity, you have a linear workflow. As such it does deserve some respect as a fundamental feature, even if it's not critical to fix every last bug. Even if you are working via screen reading and voice to text, you can still benefit from having selection tools available to you.

mntmoss··on How are people making money selling knowledge on the Internet?
I am pretty sure it's a joke played so deadpan that I hate it.
mntmoss··on Please think architecture (2007)
The "generic" one is necessarily a UI to the device, not the actual device, because there's always some kind of special casing or variation in an abstract property like that. Having the UI is of benefit when it serves as a building block, but not if it cuts off customization for some task.
mntmoss··on Perfectly Cropped
Having fallen into that thinking, at some point a few years back I realized that I was selling myself short by thinking that I should behave "like a normal user". And now I combat it with a secondary mindset of training some actions into muscle memory, as if I were learning martial arts techniques.

With a lot of hardware-only workflows, muscle memory training happens by default, which also means that they "get away with" really poor UX ideas at times. With software you can have some mixture of defaults/presets and technique. It's not worthwhile to try to customize all of it(good defaults are precious, early-binding forms are valuable) and technique usually suffices for covering the remainder. But technique is less discoverable than a settings menu, as well, and swipe-and-tap techniques are extremely so since they operate on many dimensions. Compare the new iOS gestures to chorded keystrokes - once you know that chording exists, you can learn any new one given some time.

mntmoss··on Reflections on My Career at Microsoft
The genius of Microsoft is in the long-term thinking. The individual products are easily critiqued. Their planning often mistimes stuff or gets caught out by new developments, and they play a lot of hardball to get where they want to go (which has never made anyone look good), but when they hit, they hit big, and make not just a product but an entire kingdom, which has all the downsides of monopoly but also substantial upside too.

While the Ballmer years saw the company coast along on its old crown jewels, missing nearly every opportunity, Nadella's MSFT has shaped up to be one that is building a few new kingdoms - in the cloud space, open dev tools, new consumer hardware (see the upcoming Surface lineup) - it's definitely not the Windows + Office company of old.

mntmoss··on Essential elements of good documentation
I think the main error I see when developers try to create a lot of docs, vs the most common "uniformly underdocument", is to get twisted in a pretzel over what point or detail to include when, eventually splattering all of it into one form(whether that be tutorial, API reference, or some other idea) while still not covering everything because when you explain everything you eventually end up crossing over into being a programming tutorial.

The more systematic approach which I've really caught onto recently is to assume it has to be atomized a bit to get any breathing room. Make distinct spaces for the narratives, spaces for basic concepts and references, spaces for formal overviews, and spaces for single tasks, features and APIs. Then have them link to each other, using the link as the leverage to let each part of the documents use the necessary vocabulary without overexplaining. While it's possible to overdo that and produce documentation that is a thicket of links, just clarifying that you have a distinct purpose to the space makes the writing process much more systematic - no confusion over what the writing needs to concentrate on.

mntmoss··on Ranked-choice voting is on the ballot in New York City
IRV produces a direct improvement in the politics in that it promotes coalition-building among minor candidates to defeat better-equipped competition: "vote for me and for this guy too".

That means that instead of everyone running alone and mudslinging each other, which gives voters little narrative to work with(which in turn tends to lead towards the incumbents and partisan votes winning) there's more time and space going towards specific issues and platforms that consensus can be built around.

As a voting system there are certainly better ones in terms of the vote itself, but having experienced the change I now think that the impact on consensus-building is an worthy criterion too.

mntmoss··on How to Make a Great Puzzle Game
I call it the method of creating self-feedback. Everyone starts off by using hunches, "taste", and the opinion of the crowd or authorities.

But to get beyond that - and getting beyond playtesting, data-collection and other brute force feedback mechanisms entails doing so - one has to systematically devise original feedback signals - pass-fail checklists, writers' rubrics, dependency graphs, workout logs and so on. Once you have the framework in hand and have validated its philosophical premise to some degree, you can feed your work and ideas through it and it automatically corrects you and guides the ideas away from major fallacies.

Of course, some amount of experimental data helps, but the huge amounts we have grown accustomed to have a habit of producing a lot of busywork - a product tuned and tweaked and prodded to improve this or that short-term KPI or audience appeal metric - without striking at the critical issues that one can probe with a bit of followthrough on self-feedback.

mntmoss··on The Internet and the Third Estate
With respect to the current US political situation, a good deal of it can be traced back to the last major upheavals of the late 1960's to early 1970's. The preordained approach to and discourse around economics, race/ethnicity, and feminism(and likewise many sacred cows of the computing culture) all have some birthing around these dates, and their post-hoc developments have tended towards intensification rather than realignment, a thing which has become more jarring and explosive over time and is likely to precipitate our next political era(or perhaps the current one depending on how you see it).

And this goes for how we talk about and express "free speech" as well, since the era prior had just seen the Red Scare, various forms of media censorship, military drafts, and a "government man" approach to solving all sorts of problems. Everything moved in the direction of libertarian, market-driven ideology, and Facebook is an ultimate result of that.

My suspicion is that the "compete with China" narrative is actually the most powerful thing shaping this discourse. The authoritarian end of US politics will seize upon it as a way to take power, but will always suffer the handicap of their solutions being "too much like China". When combined with the free speech principle it animates arguments for allowing free speech on Facebook and throughout the Internet, while simultaneously also fueling arguments for breaking up the company and decentralizing its functionality in the "users have a right to privacy and should own their data" sense. In that sense it's like the motives that produced the Apollo missions, and a politican who approached it that way, as a "defense of our digital property rights requires the investment of our brightest minds" kind of issue would probably be very successful.

mntmoss··on Music Theory for Musicians and Normal People
The nice part is that, in fact, you can ignore most of it unless you are explicitly aiming to reproduce and capture elements of older works. If you are composing new work, you never really have to learn theory, but a few of the most popular frameworks help things along(e.g. composing to familiar meter, motif and chord structure does a ton to fill in gaps) and as a professional getting some familiarity with repertoire, if not necessarily its underlying theory, is expected. But once you have some distinct patterns to play around with, the music is already nearly there, and it's just a case of elaboration and refinement in some direction.

In that sense it's much more forgiving than software. Software becomes indecipherable almost as soon as nobody is looking at it and its structures are in some sense necessary for a purpose. It's not as amenable to pragmatic solutions although often, more of them are possible than we recognize.

mntmoss··on By Quitting Social Media You Could Read 200 Books a Year
Also my sentiment. Good fictional storytelling describes the corners and in-betweens of human experience; non-fiction typically describes a mix of technical tools(basically trade skills and weaponizable knowledge) and self-promotion(the book was in some fashion written for a career purpose).

The exceptions abound, of course, but categorically speaking, you only need some technical knowledge. It's the "how to lead your life" knowledge that is harder to glean, and one most resistant to taking a head-on approach like studying all the philosophers and then ranking their greatness in a spreadsheet.

mntmoss··on Flash Is Responsible for the Internet's Most Creative Era
I think the essential thing about this era is a gradual cultural rediscovery of ownership. We've just been through a very lengthy race to the bottom for all sorts of information - pretty much anything ephemeral and disposable is free or extremely cheap, and then heavily locked down to protect property rights. And it's built a kind of event horizon to culture where all the things pressed up closest to the digital universe just disappear into a little footnote on a wiki page saying "yes, this happened". Memes, blog posts, videos, games, etc.

There is a game product called "Fortnite", and it's just had a huge in-game event, so it's clearly here, alive and well, but you'll never again be able to experience Fortnite as it was 24 hours ago - ever.

And yet future culture is, as Alan Kay puts it, "the past and the present". It's our reaction to that hole, where nothing really builds on anything else, that, in turn, is motivating interest in products with longer time horizons, longer stories and histories to them.

An obvious metaphor for this is video games vs pinball:

* Fundamentally digital vs fundamentally analog

* Mostly design & marketing vs mostly manufacturing

* Trivially cloned vs scarce, unique

* Black-box artifact vs maintainable assembly

* Perpetually caught in the breathless hype cycle of tech, vs increasingly existing outside of that cycle

Pinball's days as part of the traditional amusement business ended with the 1990's, but it's found a resurgence of interest in the home market as a kind of collectable furniture - something to put in a rec room or a basement arcade, that retains decent trade value if maintained. A whole array of small manufacturers have appeared this decade to serve that market. It's much easier to understand a collector's market for it being sustained 30 years out, versus video game collecting, in which any product with a modicum of popularity will have had its primary content either already preserved through piracy(if emulated), or else impossible to reproduce(if a service). It's a much stronger version of interest in vinyl records or dead-tree books taking precedent over streaming music and e-books.

Because digital media has so little physical value, it is beholden to be entirely marketing driven, front-to-back, and to treat you as either a product marketer or as the product, and sometimes both. The true form of the medium remains always hidden behind the UI. Even your personal work, done on systems you wholly control, just disappears into a collection of files, where it is easily forgotten.

And in that sense I think we are not really asking, "Where is Flash? Where is Hypercard? Where is BASIC?" - because in different eras each of those tools did the kinds of things we wanted and expected from a beginner's tool - so much as we are asking, "Where is the actual medium? Where can I do work and preserve the original source material? Where can I send a kid to learn to play with software and not have it all break six months later, rendering the learning useless? How can I curate software when nobody can make any promises?" Tech continues its warfare for a platform monopoly, and so on this front we keep starting from zero, over and over. It's not hugely different from the space we've arrived at in professional software development, where dependency hell and code rot is an ever-increasing concern for all codebases.

mntmoss··on Bone marrow was kept in a Stone Age meat locker
The admonitions about giving dogs bones derive from fast eaters tending to choke on them - not the bone's nutrition. (Although it would not surprise me if somehow the idea has gotten corrupted)
mntmoss··on The most advanced MySQL raytracer on the market
A lot of art derives value from craft, but when craft is systematized, it becomes product design and targeted towards consumers instead. Demoscene folks have often crossed over to the industrial side of computer graphics and gaming.

A good proportion of the art-as-art world either finds new and original ways to push craft, or focuses on medium facilitating message(which in turn falls neatly into the product-marketing framework).

mntmoss··on Dog Ownership and Survival
Just the other day someone brought their dog in for coworking. Most dogs, if you give them your palm they will sniff and lick at it and it will be cute. But this was a timberwolf-husky breed and he got SO excited at my hand that he quickly progressed to cramming as much of my forearm in his mouth as he could fit(which was somewhere between a third to half of it, coming in from a side angle). Given his size it was slightly worrisome, but he was gentle and left only the smallest of marks. Then he jumped up and slobbered my face to complete the job.

At the same time, this dog wasn't so cooped up and energetic that he could not control himself, and he napped a good deal of the time. He was clearly getting bored at his sleep-deprived owner still sitting around in a beanbag chair working and barked that this was not acceptable, but his interest was maintained by meeting the new people and smells in the space.

It was just a great reminder of how varied breeds and individuals are. I've met rescue wolves and they are extremely shy, requiring total stillness to get any trust; little dogs tend to be domineering yappers; show breeds are often anxious. Of the lot, the "working dogs" are probably the ones that are hardest to keep up with daily, since they need either plenty of exercise or stimulation or both.

mntmoss··on How Do Individual Contributors Get Stuck? A Primer (2017)
I have to agree. I haven't found major improvements in projects/life goals via higher quantities of data capture, but I have found them through better-tuned filters, queuing and signalling.

With respect to stuckness, I have a kind of rule of thumb for everything creative now, which I can phrase as "underachieve twice over". The first time I capture somewhat less than the essentials of the thing I want to address, but require at least one; the second time(third, fourth, etc.) I plow forward and build another iteration on that, adding more of the requirements.

It's not different from estimation or calibration in any other sense, it's just that there is an element of following through on a bulk of knowable, ordinary work in order to collect the important data, instead of sitting there perplexed and avoidant when I don't instantly understand the whole of it.

mntmoss··on Firefighting foam leaves toxic legacy in Californians’ drinking water
City of San Francisco is one of the exceptional ones since it secured the best water from Hetch-Hetchy many generations ago, and the worst that is likely to ever happen is bad pipes, and possibly contaminants in the specific areas that saw military use(i.e. Hunter's Point, Treasure Island, Presidio). Other towns in the Bay Area have something bigger to worry about, OTOH, even tech workers at the major SV campuses. The South Bay is dotted with industrial Superfund sites and there are a lot of unknowns about when and where they'll leak out.
mntmoss··on V8: Workaround for Intel Gemini Lake Processor Bug
"What gets measured gets improved."

It's short-termism, which is a common threat to society at large. Think of cities that build in sites vulnerable to earthquakes or floods, for example. After the event hits, everyone says, "Oh, we will never do that again," and it is true for approximately one generation. Then, unless the culture has evolved to value metrics coinciding with these kinds of long-term sustainability issues, they immediately start to relax any preventative policies.

In business, all the cycles are shorter, there's always a "new thing", and next to nobody has the kind of deep institutional experience you would see in a big topic like city planning. Thus the valuation metrics of all agents will quickly fall to current market pricing, and competition may act to hold those metrics in place - if you are the only restaurant in town that doesn't cut corners, customers will complain about how overpriced you are. Regulation, labor and consumers exercising their power all have a role in changing what a business can or can't do by raising the floors on acceptable practice.

But let's say you are exceptionally good at operating a restaurant on your own - quality everywhere - and grow to have a chain. Now you need to hire managers, and the viable hiring pool consists of the people who were cutting corners before - because there is literally nobody else out there. Good luck retraining them!

Plus, at the corporate scale, you end up with fiefdoms and power struggles leading to metrics that agree with the current internal political situation, not industry or marketplace factors, and certainly not sustainability metrics. A business is a "machinery of people" and needs periodic tune-ups and reprogramming to go in vaguely the right direction.

In a lot of ways what it all comes down to is one of my personal favorite phrases, "fix ordinary things." Most of the time, we don't. We have a habit of putting off fixing all sorts of little things in our lives, even if our intentions are good, so of course we're caught by surprise by the disasters.

mntmoss··on A dissident who beats up Tai Chi masters
There's definitely a multipurpose aspect to a lot of older martial arts styles, where they are no longer tested for their fitness in most practical senses, and so the form gradually degrades into purely being sport or performance. But the other side of that coin is that arts that develop a restricted kind of technique often do renew themselves when they are reintegrated into a practical system by someone with some design sense, and sport styles in particular allow subsets of fighting to be explored in depth and remain vibrant through competition, even if they are not "realistic".

Boxing, for example, is hugely restricted to avoid grappling and yet the fighters still try to clench up regularly. Actually staying on your feet, throwing punch after punch, is hugely unnatural. But boxers that learn enough grappling to escape submissions can cross over to MMA and do respectably well, because they have the skills to bring down someone at a distance.

Judo, likewise, is full of artifice these days. There are mamy restrictions on the types of holds, penalties to avoid stalling, scoring balanced heavily towards getting off an impressive throw, and a limit of up to twenty seconds to get a pin. But these restrictions also compel judo players to develop strategies for a quick, confident takedown and submission.

The styles that suffer, in contrast, are the ones that may have had relevance in the context of weapon fighting but are now mostly performance - the tai chis or aikidos of the world. Krav maga persists in part because its design works with the smaller knives that modern armed forces continue to use.

Ultimately, the point of training any named techniques is to develop muscle memory - what that memory is used for is secondary, and in that sense all popular systems succeed.

mntmoss··on China laying tracks for 1,000km/h maglev trains
Electric improves the flexibility of BRT, for one - you can run buses underground with lower ventilation requirements and without running overhead cables. Extrapolate "better BRT" to whole highways and dedicated streets running articulated self-driving buses(a far easier task than open-road self-driving) - and you can achieve a lot of the things that rails do, for cheaper. The things that can't be done with that model, the biggest capacities and the highest speeds, are the things that are most in need of a huge subsidy anyway.

Electric is also giving ferryboat transit a new lease on life in terms of energy cost/emissions impact. The SF area fleets have ordered a few electrics already - and they've been expanding service, adding new terminals. It's a return to an older model for regional transit and it has plenty of upsides, with the big caveat of needing a viable coastline.

Between those two, I think you have the model for a lot of future transit infrastructure. Regardless I would also not claim rail is "doomed".

mntmoss··on Real-Time Touch Controller for the Yamaha DX7 Synthesizer
One of the simplest options is also the cheapest - just get a Casio toy keyboard. You wouldn't get those for the sound quality, but if you opt to run one through a multi-FX pedal you can achieve a pretty sizable lo-fi tonal palette in a small package.
mntmoss··on Real-Time Touch Controller for the Yamaha DX7 Synthesizer
I think the trick to getting FM into a better UX would be to apply more computation to it to identify ahead of time which parameters and ranges will produce dramatic variation from a given starting point, and so reduce the programming to a model where you aren't repeatedly searching for where sweet spots are, but rather quickly paging into the zone desired and then adding minor adjustments.

However part of the challenge of this would be in covering numerous combinations and identifying places where two or more parameters need to be changed simultaneously. Still basically a problem governed by combinatorial constraints.

mntmoss··on Why I Write Games in C (yes, C)
The semantics matter. A lot of game engines use a mark-and-release per-frame allocation buffer. It is temporary throwaway data for that frame's computation. It does not get tracked or freed piecemeal - it gets blown away.

Garbage collection emulates the intent of this method with generational collection strategies, but it has to use a heuristic to do so. And you can optimize your code to behave very similarly within a GC, but the UI to the strategy is full of workarounds. It is more invasive to your code than applying an actual manual allocator.

← PreviousPage 5 of 10Next →