HN user

nmdeadhead

119 karma

clifford.t.matthews@gmail.com https://ctm.github.io/docs/yld/life/too-public.html

Posts0
Comments29
View on HN
No posts found.
I’m writing again 2 months ago

For Triumph of the Nerds, Bob spent hours interviewing a few of us at ARDI, my Macintosh emulation company. Mat's is the only voice that made the cut. Our fridge got more air time than I did, but I'm juggling and riding a unicycle for a few seconds. "Those were fun days."

Nice to see Bob back, especially after the gut punch of Cleve Moler's death.

https://www.youtube.com/watch?v=ACt6xsMt5Uk&t=456s

Cleve was chairman of the C.S. department at the University of New Mexico from 1980 to 1984. I got my MSCS there in 1985, in a large part thanks to Cleve. I never took any of his courses, but I did speak to him off and on, because he was friendly, approachable and was an advocate of me being allowed into their Masters program.

On a couple of occasions Cleve mentioned that he had fairly significant troubles sleeping and I was impressed by how well he performed with so little good sleep. Turns out, I had undiagnosed sleep apnea myself that only got worse over the years (until I had three surgeries to significantly reduce it). During my bad apnea days there were times where I pulled myself together and rallied by remembering Cleve. I'll never be able to repay Cleve for what he did indirectly for me, much less what was direct and deliberate, but I do try to help others and will remain inspired by him until my brain no longer processes.

D'oh! I didn't think to mention that I do serious rucking, because I tend to think of that as running, because I actually run when I ruck. Most ruckers don't.

As for injuries, I have some trouble in my right foot that was due to competing in a 12-hour ruck race on a hilly trail, where we did loops in the same direction. That was May 3rd and it's still giving me a little trouble. I had a different injury in my right foot that was giving me trouble for about two years that I think was due to an aged (about ten years old) orthotic causing hard to diagnose problems that were easy to misdiagnose. I think that trouble is behind me.

One day on little sleep, when I was new to bicycling, I went over my handlebars at over twenty miles an hour, landing on my face. That flat out broke a few teeth and chipped / damaged some others. Last month I had to have six of my front teeth removed, probably due in part to the damage they took on that bike accident, although to be fair, when I was in grad school I drank a lot of sugared coke right out of the bottle and ate away much of the enamel on my upper front teeth, so some of my teeth problems are due to simple negligence.

Oh, and I had an inguinal hernia that was probably due to my rucking. I had mesh put in on one side in 2012. I have continued to ruck competively since. I came in third overall at the Bataan Memorial Death March this year in the male civilian heavy (meaning carrying a 35 pound pack or more) division[0].

[0] https://bataanmemorialdeathmarch.itsyourrace.com/Results/657...

Funny you should ask. I do my core exercises on Tuesdays and Thursdays and read Hacker News while I'm doing my unweighted squats. "Normally", I run Monday through Saturday and ride my bike on Sundays, with the aforementioned core work done in addition to my Tuesday and Thursday runs.

I'm about to start my "Bataan Memorial Death Run" training block and I've put that training plan on GitHub[0]. I also started an mdbook about some of the stuff I've done, but my (then 92 year old) mom had a stroke and it's less than half-baked[1].

[0] https://github.com/ctm/Bataan-Memorial-Death-March/blob/mast... [1] https://ctm.github.io/docs/yld/life/too-public.html

I started programming professionally at 16. I ran my first mile at 46. I'm 62 now and have run quite a bit. There's a very good (IMO) podcast that is mostly interviews of runners over 60[0]. At least one of his early interviews was with a woman who also finishes Ironmans. Disclosure, I'll be interviewed a week from today, although I don't know when it'll be published.

[0] https://www.youtube.com/@RUNLONGAFTER60/podcasts

In compatibility, it's MUCH worse than all the others, but there's also Executor: https://en.wikipedia.org/wiki/Executor_(software) which you can use to run a Macintosh version of solitaire in your browser by having the browser emulate MS-DOS which then runs Executor/DOS: https://archive.org/details/executor

In addition to Executor/DOS, a non-released version ran on the Sun 3 workstations (they too had 680x0 processors) and Executor/NEXTSTEP ran on NeXT machines, both the 680x0 based ones and the x86 powered PCs that could run NEXTSTEP.

Executor was the least compatible because it used no intellectual property from Apple. The ROMs and system software substitutes were all written in a clean room--no disassembly of the Apple ROMs or System file.

Although Executor ostensibly has a Linux port, it's probably hard to build (I haven't tried in a couple decades) in part because to squeeze the maximum performance out of a 80386 processor, the synthetic CPU relied on gcc-specific extensions.

I know a fair amount about Executor, because I wrote the initial version of it, although all the super impressive parts (e.g., the synthetic 68k emulator and the color subsystem) were written by better programmers than I am.

Ultramarathoning is, IMO, often misunderstood. However, volunteering at an ultramarathon aid station is a great way to get exposed to the sport, since you'll get to see a wide variety of people participating, whereas if you only know one or two ultra runners you may assume everyone is like they are. UltraSignup [0] is one way to search out ultras for which you may want to volunteer.

[0] https://ultrasignup.com/events/search.aspx

I haven't read "The Comfort Crisis", but but for the last dozen years, I've spent three and a half months training hard to compete in the Bataan Memorial Death March male civilian heavy division[0], meaning I race a tough marathon course wearing a 35 pound pack. I do well.

I'm pretty sure I'd be in the top 10% of LTPA in that study, at least for my most recent ten years. I haven't spent the money to have any of my longevity markers tested, per-se, but I did get a (free) arterial wall stiffness test[1] last year and my heart did very well for any age group, and yet I was sixty.

If you have any questions, I'd be happy to answer them, although I'm about to go for a morning walk and may be gone an hour or so.

[0] https://bataanmarch.com/register/civilian-individual/ [1] https://github.com/ctm/diet/blob/master/blood_work/20230623_...

FWIW, although it's closed source and pre-alpha, I've written a poker server (and proof-of-concept client) in Rust. A few people gather together at 5:05pm Pacific and play a tournament a day at https://craftpoker.com The outdated Players' Manual is at https://ctm.github.io/docs/players_manual/friends.html

It's free, no ads, we don't sell (or even collect for the most part) your information, etc.

Back in the day I did some work on fast hand evaluators in C and wrote in Objective-C the first software to deal multi-table poker tournaments (on IRC) on the internet.

I do not think that when it's explicitly stated it becomes intuitive for everyone and that adds a further wrinkle. Many people will still get it wrong, even when the problem is stated correctly.

However, if the rule is not explicitly stated, how can the player know that the rule exists? Perhaps "Monty" is evil and will not always open a door, "evil Monty" will only open a door when he knows you've chosen correctly.

IOW, without that rule explicitly stated, the answer "Switch" is simply incorrect. Without that rule, the answer is "I don't have enough information to know."

I'm that old. I toggled the PDP-8 our high school had. I did it often enought that for over a decade after I stopped I had the RIM bootloader memorized. It's only a handful of instructions. You can see it on page 35 of http://bitsavers.trailing-edge.com/pdf/dec/pdp8/software/DEC...

I have a few old timey computer stories, including using a punch card to transport a chunk of nitrogen triiodide. Hijinks ensued.

As a high school student, I stopped our PDP-8 while it was running BASIC, then toggled in a little machine loop that changed all the occurrences of the 12-bit value that represented "Clear the Accumulator" with the 12-bit value that represented "Load the Switch Register into the Accumulator". I then loaded the soft-restart address into the program counter, set the switch register to 0, then used the continue switch to soft restart BASIC.

Surprisingly, everything appeared to work fine, until the following day, when someone soft restarted BASIC, but left one of the toggles up (because the soft restart address was octal 0200).

I wrote this up in more detail at https://ctm.github.io/docs/yld/programming/pdp8/first-hack.h...

I too am a runner (~100 mi/week when not tapering or recovering) and "normally" I limit my caffeine to a double espresso at 5:15am. I take that one to synchronize my sleeping and bowels. However, it's a little more complicated than that because I divide the year into three different major training blocks and what I do varies both by which major block I'm in as well as what I'm doing within that block.

As such, there are trainings where I use extra caffeine for a variety of different purposes, e.g. to get maximum speed to train my body to go faster, or for the mild analgesic effect to counter some discomfort from long distances. Depending on how much extra I take and when, I may have to take the attendant tiredness into account when planning the following day's activities, both physical (more training) and mental (programming).

I believe I benefit from my use of caffeine, but it's tricky. I log all the caffeine I take as well as all the calories, analgesics and alcohol in a text file (which I keep in a public repository in GitHub). I can then look back and try to figure out what's worked well in the past so I can do more of it as well as what has held me back.

Ostensibly an African proverb is “If you want to run fast, run alone. If you want to run far, run together.” I'll add "If you want to run really far, call walking running."

The Cocodona 250[1] starts in less than two weeks, but with the Crooks Fire it's looking like C250 will be 200 < C < 250.

[1]https://cocodona.com/

Perhaps building a start-up is more like finishing the Hardrock 100[1]. Unless you get extremely lucky, it takes years of work just to qualify to get into the lottery. It then takes a lot of persistence and failures in the lottery to get to the starting line. If you're not prepared at the starting line you probably won't finish and even if you are prepared there's room for a lot of luck (both good and bad) to affect your chances.

However, unlike finishing Hardrock, it's certainly possible to successfully launch a start-up without exercising. However, the few times I tried it that way I crashed and burned. I strongly suspect exercise might have pulled me through although to be fair there are tons of other things I did wrong that had I done right might have led to greater success.

[1]https://www.hardrock100.com/

I wrote the first 10,000 lines of ROMlib on a Mac+ with no hard drive or even a second floppy drive. I had Think C on multiple (IIRC, five) floppies and enough room to have a few portions of ROMlib and tests on the rest of each of the floppies.

Backups involved copying floppies, which was a bit time consuming with only a single drive.

Good times!

(ROMlib was my clean-room reimplementation of much of System 6; it was a big part of Executor [0])

[0] https://en.wikipedia.org/wiki/Executor_(software)

Running Tips 7 years ago

I get the runner's high most days when I run (and I typically run 6 or 7 days a week), starting about a half hour in. I feel very comfortable physically and mildly euphoric mentally. I hear more in the music I'm listening to than I normally do and I tend to feel very good about people (both others and myself).

FWIW, I do most (80%?) of my running at a 130bpm heart-rate and typically don't get the runner's high when I'm working out more intensely (the other ~20% of the time).

I don't know that I would run as much as I do if I didn't get the runner's high, although I didn't get it regularly when I began. One big takeaway I got from reading one of Lydiard's books was that when you're building your base you basically can't run too slowly, but it's very easy to run too quickly.

If you run too quickly you risk injury and burn-out which interferes much more with making progress as a runner than if perhaps you're not running quite fast enough to get the maximum adaptation for your effort.

I don't normally spend much time there, except at 1pm Pacific on Sundays, but at that time I can be found on #poker of my own (poorly administered) devctm.com IRC server.

FWIW, twenty-one years ago I wrote the first software to deal multi table poker tournaments on the internet. Its first interface was IRC (because there were already bots dealing single table games and tournaments). I've now written a new poker server and decided to start with IRC for a variety of reasons, but mostly nostalgia.

https://github.com/ctm/mb2-doc

I've been a Ruby developer since 2005. Prior to that I did a lot with ancient C, Objective-C and assembly. I'm looking for a Junior position programming Rust.

I know enough Rust to be useful, but not (yet) enough to architect a medium-sized green field project. However, I really like Rust and I aggressively pursue my interests, hence my desire to do it full-time for (less) pay.

So, if your company is doing enough with Rust that you'd like to offload some of the scut work, please contact me. I'm also open to gigs doing Ruby (with or without Rails) and I have the reverse-engineering skills and temperament to work on amazingly bad legacy code, but that would be pricey and fairly short-term.

Location: Albuquerque, NM, USA

Remote: Yes

Willing to relocate: not now

Technologies: Rust, Ruby / Rails, reverse engineering (wrote clean-room code to run Macintosh software w/o Apple code)

GitHub: https://github.com/ctm

Résumé/CV: https://devctm.com

Email: clifford.t.matthews@gmail.com

Wikipedia: https://en.wikipedia.org/wiki/Executor_(software)

Short article that includes a bunch of information from this new paper: https://advances.sciencemag.org/content/5/6/eaaw0341

I read that paper shortly after it came back and sent this info to a friend:

I've read the entire paper and I don't buy their conclusion. Basically, I think they're saying that at > 2.5x BMR, you simply are burning more calories than you can process. I think that a more likely culprit is body damage, which although vague, is definitely something different. Here's a telling portion from their own article:

An alimentary limit of ~2.5× BMR is consistent with the SusMS versus activity duration curve, which flattens out below ~3× BMR (Fig. 1B), but raises directions for further research. First, in at least two studies (Tour de France cyclists and elite Nordic skiers; table S1), subjects maintained metabolic scopes of 3× to 5× BMR without substantial weight loss.

The weasel word "substantial" is present and I guess one could argue that perhaps they had small amounts of weight loss that would add up, but I don't think that's what they're really saying. Between Marshall Ulrich's experience (where he set the age record and then was kind of fucked up for about a year, IIRC) to my own experience where the harder I run the more it beats me up, even in short distances where I can and do eat (and drink!) more post-race and hence gain weight, my guess is that they're being fooled by the correlation between the increase in damage that's done the harder one runs and the corresponding increase in calories needed. As such, they come up with a useful rule of thumb, but their explanation of "alimentary limit" (which is in the title "Extreme events reveal an alimentary limit on sustained maximal human energy expenditure") is just not the case.

Although I don't think it would be easy to find subjects to do such a test, my guess is if you could find a low-impact protocol for raising BMR higher than 2.5x and you were to do it long enough, with "good" nutrition that it would be fairly easy to surpass their magic number. However, that's trickier than it sounds. Riding a stationary bicycle, for example, probably is lower impact than the "running" that was done, however, there are reasons to believe that while shorter distances are lower impact, longer distances may not be, because a bicyclist has less freedom to alter which joints/tendons/muscles he/she stresses and hence you hit the weak-link-in-the-chain syndrome, even though it may take a while to get there. Also, riding a stationary bicycle is boring as hell.

Really, if you take out the "substantial" weasel word from the paragraph I quoted, I think it's pretty damning. However, I think they had a hypothesis and wanted to justify it. On one hand the authors have much greater scientific chops than I do. On the other hand, I'm a fairly analytical person and I have a lot of experience with endurance events, although not much multi-day stuff and my longest multi-day event, the Tahoe Two Hundred, was marred by a (minor, but cumulatively very annoying) toe/foot injury that I sustained on the second day.

Oh, and back to that quoted paragraph: I think the participants in Tour de France and elite Nordic skiers) are much more likely to be significantly more fit (both from a cardiovascular perspective as well as tougher skins, ligaments, and muscles) than the RAUSA runners and that would be in keeping with my hypothesis.

Location: Albuquerque, NM, USA Remote: Yes, please, preferably as a contractor Willing to relocate: probably not

Technologies: Ruby / Rails since 2006, Really enjoying--but am new to--Rust!, prior to Ruby, did Objective-C (and before that C and assembly). My background in reverse engineering (wrote clean-room code to run Macintosh software w/o Apple code) comes in handy with legacy code.

Résumé/CV: https://devctm.com Email: clifford.t.matthews@gmail.com

I typically "train" every day, meaning I run six days a week and ride my bike on the seventh. I do, however, have rest days; it's just that my rest days are shorter distances at a lower heart rate. My Tuesdays and Thursdays are rest days, so I run 8.9 miles @ 130 beats-per-minute heart rate.

I absolutely, do not recommend my training plan for others; it's taken me more than ten years to get where I am, but as an example of what can be done (at least with my body), you can see how I recently trained for the Bataan Memorial Death March[0] and also see a subset of my official ultra results at UltraSignup[1] as well as my self-reported marathon results at Marathon Maniacs[2].

FWIW, I think my sleep schedule and diet have contributed significantly to the gains I've made over the years, but I'm also well aware of survivor bias. Neither of my parents were athletic though and I absolutely hated running as a kid (although I really enjoyed ultimate frisbee in high school).

[0] https://github.com/ctm/Bataan-Memorial-Death-March [1] https://ultrasignup.com/results_participant.aspx?fname=Cliff... [2] https://www.marathonmaniacsdb.com/Maniacs/MyRaces?ManiacId=4...

I use an Osprey Aether 70 for search and rescue. I used to use a Kelty Tioga 5500, but the external frame snagged branches in awkward situations. I've also done the Bataan Memorial Death March, civilian heavy, 10 times, with all but one or two of them using the Kelty. When I tried the Osprey for that, it was too hot.

One of my two upright tubes on my (third) Tioga broke during BMDM this year after a punishing training schedule, so I'm going to use something different for 2020. However, I was doing three training runs a week with bulky dried food (beans and lentils) taking my pack weight to 40 pounds and that's not what the Tioga is designed for, so it's my own fault, not Kelty's.

FWIW, I manually attempt to update to nightly (nightly-x86_64-apple-darwin) once a day, not because I need to, but out of curiosity. I find that clippy often prevents me from updating for a day or two before working again.

Today happens to be a day (and I think yesterday was, too) when I get: "error: component 'clippy' for target 'x86_64-apple-darwin' is unavailable for download for channel 'nightly'" and sure enough, I get the misleading "manifest for 'miri' is corrupt" when I try to add miri.

Surprisingly, I used "rustup component remove clippy" and still couldn't update to nightly, still with a complaint about clippy.

I'm not mentioning any of the above because it bothers me; I expect things to work tomorrow or the next day. I just assume this might be biting a lot of people (perhaps everyone on MacOS).

I'm thankful I got lucky.

I was born in a prosperous country at a good time. I had parents who were well intentioned and reasonably smart. I have an older sister and got to see and avoid some of her mistakes.

Some of the work that I did early on is not too impressive now, but was sufficiently impressive at the time that I never had to look for work.

Capitalism appears to be rewarding people like me. I think there are many people who come from cultures that are resistant to learning better ways to do things. As such, they stagnate, while people who are able to separate the wheat from the chaff on the internet learn ways to be efficient that create ever widening gulfs between themselves and the dig-in-their-heels-and-never-admit-room-for-improvement crowd.