Dennis Forbes ·

Trump posted some laughably stupid, lie-filled spiel of nonsense about a new bridge connecting the countries yesterday. It was just an embarrassing spectacle, and another demonstration why the 25th needs to be enacted, where again literally everything the foolish demented diddler says was ignorant, factless trash. Just lying endlessly, as is his manner.

What a clown show idiocracy right now. What a worldwide embarrassment as such a great country has become a pathetic worldwide farce.

But the moment it was posted, everyone immediately suspected it was the scumbag Moroun family from Michigan pulling the strings of the Big Diddler. These rent-seeking trolls have been profiteering off the Ambassador Bridge for decades, and have done everything they can to block alternatives. A private family owning an international crossing is crazy, but that’s how the situation was.

They bought every politician they could to keep the status quo. Until eventually a politician (Rick Snyder) bucked them and let a bridge be built. But only if Canada paid for 100% of it.

Well, it turns out that those people were right. The scumbag Moroun family got the ear of Epstein pal and perennial greaseball Howard “Wig-Salesman” Nutlick and mere hours later Trump was pushing out his nonsense. As an aside, is like everyone in that administration a paedophile and criminal? Is it like a requirement to be close to Trump?

What an absolute disgrace. Canada needs to shut down the Ambassador Bridge. Having these foolish clowns lying endlessly about this country…it’s done.

This is not short-term damage these foolish self-dealing imbeciles are doing. It is going to be a legacy. The US is going to come out of this criminal administration with zero friends (well, maybe El Salvador, Argetina, and the hilarious rag-tag group of pathetic despots that make up the “Board of Peace”), a spiralling economy with no one to fund the largess, and a more and more certain civil war. All while this admin is trying to foment separatism in Alberta…far more likely, clowns, is that Canada absorbs some of the better parts of the US after what is coming.

It has been pretty quiet news, but the US sanctioning ICC judges (on behalf of Israel, bizarrely), thereby making all American companies cease business with those people (which includes a Canadian), basically put a death clock on US businesses from operating internationally. Visa, Mastercard, Paypal, and even the tech companies…their days are numbered outside the US. Everyone is rapidly pursuing replacements.

Good job, chimps. You got your momentary big tough guy wins, while flushing the future of America down the toilet.

Everyone can just cluck and imagine that the fetid bag of shit will just die soon enough and it will blow away and things will go back to normal, but it won’t. This trash exists top to bottom in American politics, and it is not a trustworthy partner in any matter.

As an aside, I would be remiss to point out how hilarious it is to see the Big Diddler constantly railing about Canada making a relatively small trade deal with China. I understand that China has dick-slapped this foolish simpleton in the face repeatedly, and have come out of Trump’s pathetic threats looking stronger than ever, but Trump has announced a dozen or so “deals” with China so far, often just making up details for his smooth-brained base to celebrate. Trump is absolutely desperate for any iota of attention he can get from Xi, even if China basically shrugged and moved on, knowing America is a falling empire.

Canada makes a small deal and suddenly we’re cancelling the Stanley Cup? Someone take grandpa’s phone away, he’s sundowning.

On other news, right on target for the 2000 push-up challenge. It was looking grim over the first couple of days as muscle fatigue and pain made it seem unsustainable, but the conditioning started happening much quicker than I expected.

Dennis Forbes ·

Hacker News is a community of many disparate voices and opinions, at every level of skill and coming from many perspectives, demographics and corners of the globe. In this entry I’m talking about the average HN user, which I will label Joe HackerNews. The aggregation that decides what comments and submissions rise to the top, and ensure that others are pummelled to transparent or flagged away.

Use the site enough and you can clearly see trends and group-think come and go. It has been interesting watching the evolution of AI discussions on the site.

There are the oft cited five stages of grief that people move through when confronted with a shock or loss. It’s a controversial simplification device, and like a Barnum effect we make reality fit the stages when often it’s much more nuanced and non-linear.

Whatever. This is a football 🏈🦉 Sunday before-first-coffee post, so I’m running with it. Lots of pushups left to do.

Denial: “AI will never understand the code I work with, or the complex domain I work in. That’s only a tool for shitty web apps and juniors that don’t know what they’re doing!”

Anger: “AI stole all of our comments, blog posts and github repos. Do you think we can sue and shut them down?”

Bargaining: “Okay I installed CoPilot and read a tutorial on how backpropagation works. Pretty much up to date. I’m AI augmented and ready for the next century. Should I vibe code the next $10B SaaS unicorn?”

Depression: “It’s over. The field is ruined. Our educations and experience are worthless. The end is nigh.” ⬅️ WE ARE HERE

Acceptance: To be seen how this unfolds.

The denial phase was intolerable, people desperately trying to convince everyone that they are a unique snowflake and work in an advanced unique domain with unique needs, where there’s no way the thinking machine has relevance for them. You still see this sort of person occasionally — “only bad developers get value out of AI, but not me because I’m a great developer” — and generally it’s just delusion with a side of denial.

Just as weird are the “AI has peaked” sorts. At every stage they’ve announced that this is it, AI can’t get any better and now we just wait until the big ponzi-scheme that is the AI market collapses and the ruse will be over. And then it keeps getting better again, and again, and again, even with unknown outsiders on a tight budget popping in with crazy models that make last year’s SOTA look like garbage.

Anger was a conflicted one where the same people who celebrate that information should be free, everything should be open source, every API public, and so on, lamented that algorithmic use was made of that. It’s especially weird when developers complain about other developers looking to automate their jobs away, because this is literally what most software development is: In some way we’re making a machine do something a human could do. Our entire profession is allowing people to do more with less.

Even if you just make a library and post it on github…aren’t you taking away the jobs of every business that would have had to employ developers to make that functionality from scratch, you monster?

Bargaining saw about a thousand “Introduction to tokens” submissions being voted to the top, followed by waves of basic neural network explanations. And to be clear, I’m not being patronizing in noting this, but you could see the collective move to the “if you can’t beat ‘em, join em” stage, perhaps not realizing how outrageously high the entry stakes are now.

Joe HackerNews is now at depression. Posts like this one lamenting the loss of the craft are topping the front page. The comments across almost all AI discussions are veering to positively grim, and have a very “end game” feel to them.

This isn’t the first time the community felt such a threat. Around the turn of the century every board was sure that all software jobs were going to India. The release of GUI builders like Visual Basic were going to put software devs out of work, making building apps into simple work, and even apps like Microsoft Access had forms and flows and could run as an application built by a layman.

Before that CASE tools were going to automate it into some middle-management drag and drop.

I very much have skin in this game. Aside from my own professional operations, one of my sons is in the middle of computer science program, just starting some coop placements. Another is still in high school and makes good money developing for the Roblox community. A daughter does creative works, including 3D modelling for games, and obviously she can feel the pressure on her field. My other son is still selecting his career, considering the medical field, and even there, like almost everywhere, AI is ominous.

It is something I think about constantly, and it can feel overwhelming and like there is no clear path to prepare for the future.

I have notes that I’ll use for a much longer piece on AI that I’ll get to at some point, and this microblog piece was not meant to be particularly illuminating or useful. Just some lazy morning thoughts.

If there is one take away that I would offer up: You can’t argue reality away. Posting comments saying AI is trash, slop, can’t write good code, etc, doesn’t change the path that we are on the tiniest iota. You can’t argue a different reality into existence, and it’s just wasted words trying to do so, even if you find a community that will start chanting in unison to manifest their hopes.

AI is already surprisingly good, and it’s rapidly getting better.

Dennis Forbes ·

On just day two of the 2000 push-up challenge, and it’s looking more daunting than I originally imagined.

Push-ups are in isolation easy. I’ve done countless over my life, though never in large numbers over a short period.

Getting 110 finished on day 1 was easy, trying to get a little ahead of the daily 87 or so to hit the target. It made it seem like this would be the easiest thing in the world.

The part I forgot about is the muscle recovery / fatigue / pain on the next day. I’m clearly out of shape, making this doubly worthwhile of a goal, but also doubly difficult.

Still got ahead of the quota today, thankful I made today easier by doing extra yesterday, but interested to see how this plays out. Will I condition up quickly enough that I can start taking gap/recovery days and make it up on the fill days? Will the pain and fatigue gain quicker still?

I track this in my Obsidian daily notes. I added a numeric property to the template for the trial period, and on each new daily now it pulls the accumulated pushup_total from the day before forward, adding it with the push-ups done the day before. A convenient way to track it with my normal tracking without yet another spreadsheet.

Dennis Forbes ·

The Canadian Mental Health Association is running a challenge from February 5th to the 27th, participants challenged to complete 2000 total push-ups over the period. It is a fund-raising effort to support CMHA, but also to raise awareness of the 2000 lives lost each day to suicide.

Lots of people will get fitter in the process.

I’ve taken on this challenge, and we’ll see. Around 90 push-ups a day is easy enough, right?

These sorts of challenges, finding a reason to do these little self-improvements and to give something to think about at the same time, are always worth consideration.

Dennis Forbes ·

I added this “microblog” section for quick thoughts I have before I start my day, or when I take a random break from the tasks at hand. The things I write in here will have been created in five or so minutes, ten minutes at the high end, and are meant as “passing thoughts” kinds of things.

I’m not going to great lengths to verify every statement comprehensively encapsulates all perspectives on the subject-matter. Nor do I optimize wordings or grammatical structures. If I happen across an entry at a later point I often see things I could improve and do a quick edit, but apologies if these entries may seem lazy at times.

This is my release-valve, per se, to stop me from feeling the itch to engage with social media. It’s my way of adding my noise to the global cacophony, however drown out and meaningless it ultimately is.

And I mean, really this section isn’t a µBlog, but instead is the purest form of blog. Yet I have ambitions that the main listing of the entries in the macro-blog part of this site are more considered, thoughtful pieces, rather than a reaction to some passing comment someone made elsewhere. So I quarantine those smaller thoughts here.

I hope you have a fantastic day ahead.

Dennis Forbes ·

In a discussion about Apple Research’s open-source MLX machine learning framework on Hacker News yesterday, a comment proclaims-

ANE is probably the biggest scam “feature” Apple has ever sold.

This is a recurring observation, with many inferring that because Apple’s very own MLX doesn’t use ANE, therefore, the logic goes, ANE is useless. An “if they don’t eat their own dogfood” sort of deal.

As some background, Apple added the ANE subsystem in 2017 with the iPhone X. It is silicon dedicated to running quantized, forward-pass neural networks for inference. Apple’s intention with the circuitry was to enable enhanced OS capabilities, and the immediate use of the chip was to power Face ID. That first silicon offered up some 0.6 TOPS (trillion operations per second), and was built with power efficiency as a driving requirement.

The next year Apple released a variant with 5 TOPS, an 8x speed improvement. Then 6, 11, 16, 17, and then 35 TOPS (though that last jump is likely just switching the measure from FP16 to INT8). In all cases the ANE is limited to specific types of models that fit within its limitations. It was never intended to power NN training tasks, massive models, and so on.

It was some NN-dedicated hardware to enable low power but high (enough) performance assistance for OS features and functions. Other chipmakers started adding similar neural engines into their chips to address the same need: Qualcomm, Intel, AMD, Huawei, Samsung … everyone got in on NPUs for the same reasons. You aren’t going to run ChatGPT on it, but it stills hold loads of utility for the platform.

And the system heavily uses the ANE now. Every bit of text and subject-matter is extracted from images, both in your freshly-taken photos and even just browsing the web, courtesy of the ANE (many don’t even realize this, and it’s a barely heralded feature. You can search your photo library for a random snippet of text, even heavily distorted text. You can highlight and copy text off of your photos and even on images found on random websites in Safari when using Apple Silicon, at virtually zero power cost. ANE). After you’ve triggered Siri with Hey Siri, voice processing and TTS is handled by the ANE. Some of the rather useless genAI stuff is powered by the ANE. Computational photography, and even just things like subject detection for choosing what to focus on, is powered by the ANE hardware.

All of this happens with a marginal impact on battery life and without impeding the CPU or GPU cores in performing other tasks.

It’s pretty clear that Apple intended the ANE as hardware for the OS to use, and third party apps just weren’t a consideration or priority, nor did they make it a part of their messaging. In 2018 they did enable CoreML to leverage the ANE for some limited cases, and even then the OS throttles the capacity you can use to ensure that the OS is never left waiting when it demands it.

So why doesn’t MLX use ANE at all? The authors specifically stated why. The only public way of using the ANE subsystem is by creating and running models through CoreML, which is entirely orthogonal to the purpose and mandate of MLX. Obviously Apple Research could just reach into the innards and use it if they wanted, but MLX is an open-source project so that simply isn’t viable.

Apple added some tensor cores to the GPU in their most recent chips (M5 and A19 Pro), calling them “neural accelerators”. These are fantastic for training and complex models (including BF16), at the cost of magnitudes more power usage. It also gives Apple a path to start massively scaling up their general-purpose AI bona fides, adding more and more NA cores per GPU core, and GPU cores per device — copy/paste scaling — especially on the desktop path where they can achieve enormous levels of performance where power isn’t as much of a concern and active cooling is available.

Apple is unlikely to move existing OS NNs to these new tensor cores. Their purposes and driving philosophies are very different, and they serve different roles and purposes.

Nor is there any indication that Apple is abandoning CoreML (another parallel claim made in MLX-related discussions). Apple Research put out MLX to rightfully try to get some of the attention of the Pytorch et al. community, and it has been wildly successful, but it doesn’t supplant or replace CoreML.

If you have a consumer app for Apple devices, and you run NNs for inference to enable features, odds are high that your best bet is CoreML (which will use the GPU, GPU NA, ANE, and CPU as appropriate and available).

People seem prone to all-or-nothing stuff like this, thinking it’s all losers and winners and everything is binary. It’s reminiscent of Google unveiling Fuchsia, where every tech board like HN had the prognosticator of all prognosticators declaring that the day of Linux, ChromeOS, Android, and so on was over. It’s a Fuchsia world now, baby.

Years later and Fuchsia powers a Nest device, and largely seems to be a dead project. So…maybe not?

Dennis Forbes ·

I’ve casually listened to Peter Attia’s podcast The Drive for years. I’m not the sort of podcast listener that has a queue that I vigilantly keep on top of, but instead it’s more of a periodic picking and choosing when I’m in the mood. Sometimes when I take a walk I open the podcast app and see if there are episodes that sound like a good listen from the ones I subscribe to: The Drive, 99% Invisible, Decoder with Nilay Patel, This American Life, Freakonomics, NPR’s Fresh Air, CBC’s Ideas, Sam Harris’ Making Sense, among a number of others. If nothing looks good I listen to great music playlists like the algorithmic 𝔇𝔢𝔞𝔡 𝔏𝔢𝔞𝔳𝔢𝔰 𝔇𝔢𝔞𝔡 𝔖𝔬𝔲𝔩𝔰.

Peter Attia is a fantastic science communicator, with a unique approach. In the current blowback to his appearance in the Epstein files, one critic talked about how she enjoyed an episode he hosted with a female researcher she respects, but then complained that he spent much of the episode “mansplaining”. Which is a pretty silly complaint because Peter’s entire method of repeating, recapping, and guiding the conversation forward is something he does with every guest. It’s what makes his podcast good, and he really seems to do a ton of homework preparing for each episode. The information/time ratio is much denser than comparable podcasts for this reason.

Attia isn’t just a Joe Rogan grunting along and saying stupid stuff occasionally.

Regardless, his emails to Epstein were vile. Thankfully I’ve never taken advice from Attia on how to be a good person, husband, father, or so on, and I imagine few others have either. His involvement with Epstein doesn’t indict his science communications. I don’t suddenly think statins are bad because Attia believes in them, and now that he’s unveiled as a bad guy therefore anything he has ever said is bad. That would be bizarre and unproductive, but it’s precisely what is happening across the space. People are literally doing an “Aha! I told you he was wrong about everything because look he wrote some gross emails to that terrible guy Epstein”.

It just demonstrates that people are more interested in going all in on cult of personality things and it becomes some weird personality thing where it’s 100% onboard or 100% against. There can’t be “this guy is a creep and I disagree with him on many things, but this is actually interesting and informative”.

Separate the art and the artist, the science from the science communicator.

I still think Kevin Spacey was fantastic in almost everything he was ever in, and his personal issues are a matter for the courts and the people involved, not the court of public opinion. Spacey was great in Glengarry Glen Ross, for instance, which I still think is a tremendous story and screenplay even if David Mamet became a weird, unhinged Trumper.

I’m a fan of loads of Tom Cruise movies, and simply do not care what cult or whatever he is engaged with, who he dates, what his sexuality is, or anything else not directly and immediately relevant to his acting in a movie. He acts real good like, so good enough for me.

None of these people are my heroes. I don’t idolize any of them. When they fail personally it just doesn’t change any prior response I’ve had to their work because it was never based upon my adoration of these people generally.

Dennis Forbes ·

I drive lots of places. I’ve had my licence for decades, have countless kilometres under my belt, and see cars as liberating. I’m an “Ontario speeder” which means I generally drive around 20 over, yet have zero infractions over all my years driving. Zero accidents either, aside from a minor thing where I went a bit off-road a bit and hit a mailbox: A bee or wasp somehow crawled into my summer shoes and like most I have an irrational overreaction to such things. Only yielded a scratch on a passenger door and a country mailbox that needed to be put back in place on its stand.

Oh, I also once scratched the bumper of someone in the parking at Awenda Provincial Park as I pulled a 26-foot travel trailer and the combined turning radius wasn’t quite what I calculated.

But I also love biking. I love walking. I love transit. I love being in areas that facilitate and encourage all of the above, where I never need to think about parking or other car-related nonsense. We go on vacations to better-planned cities where everyone is walking and biking and it’s just wonderful, and then we come home to our “designed for cars” cities and just accept this as normal or the best we can do? It isn’t.

Here in Ontario, a leans-on-populism premier recently did a big dictum where he forced his way on a lower level of government and ordered them to remove some already built and paid for bike lanes. This was idiotic, and is the sort of self-destructive nonsense that make us look backwards and clownish, and thankfully the courts have thus far blocked it. A number of propagandist figures posted videos to support the premier’s overreach, lamenting the “low number of cyclists” using the bike lanes, not noticing that in their own cherry-picked video there were more cyclists seen than personal vehicle occupants.

Brian Lilley, for instance, who pretends he’s a reporter but shares a bed with Ford’s media relations manager, and is the sort of guy that just puts out completely worthless, thoughtless partisan noise.

The weird thing, and the only way this car-centric nonsense continues, is the significant percentage of the public that makes being anti-bike their personality. It’s like the obnoxious people who want to start incredibly boring spiels about how much they hate pineapple on pizza. If there is a discussion or media story about bikes, these sorts (likely heart-attack in waiting sedentary lazy-bones) always crowd the discussion, making the cliché bot-like noise. It’s bizarre.

Cities should not be designed around single-occupant vehicles. Indeed, those uses should be massively discouraged, tolled, impeded, and so on. The outcome would be better for literally everyone, even if so many can’t see how self-sabotaging the pro-car prioritization we currently endure is.

Every single-occupant vehicle is a massive failure in basic civic sense and city planning.

Dennis Forbes ·

Obsidian is Electron based, and thus it is an eminently scriptable platform. This is evident in the broad range of core plugins that come with the platform, along with a massive community of plugins from third-parties.

I trust the core plugins. I do not trust community plugins. While there’s a superficial vetting on first inclusion, the potential for supply chain attacks or malicious intentions is enormous.

Thankfully adding your own scripted functionality for novel needs is trivial, and the major LLMs are fully versed in creating simple plugins for the system. For my daily notes I start with a template and on file creation a simple, easily audited script, mostly built with Gemini, grabs the current and forecast weather for the day through a web API, and then grabs my current chess.com ELO, and drops it into placeholders in the template. And yes I used Gemini because I have approximately zero interest in becoming an Obsidian scripting expert. But the result is a tiny plug-in script, kicked off on file creation, that I can audit in seconds, versus massive and overwrought community plugins that I can’t reasonably verify in any rational amount of time.

The chess ELO thing is an odd, temporary inclusion as I realized my chess game had stagnated and I’d become mentally lazy about the game, so it’s just a personal motivation to make it a metric I pay more attention to and stop making the silly mistakes and blunders.

Dennis Forbes ·

I’m a heavy user of Obsidian MD. I use the app across macOS, iOS and Windows, but instead of using the inbuilt sync service I store my vaults on a cloud drive. I use multiple vaults (Research, Daily Notes, General / Family, and then one for each major project) all subs in a shared root directory.

Why not the Obsidian sync service? Because one of my reasons for choosing this product is decoupling from a specific platform and treating it as a file-system structure of markdown files that some editors lubricate the use of. Using the built-in facilities for sync is orthogonal to that goal. Everyone should still support Obsidian with a Catalyst license.

I manage history by storing a git repo of all the Vaults and pushing it to a remote repo, accomplished periodically via launchd on the Mac. But given that I store the git work tree on an external drive this causes just endless pain as the security system interjects itself and normal simple perms do not suffice. Macs really encourage you to use the undersized, overpriced internal drive, and make using external drives a nuisance. Add that eliciting the removable device perm request seems to be a roll of the dice, and other times it just auto-denies.

Running the zsh script from launchd fails because it doesn’t have the environment or perms my user account does, and I refuse to just grant zsh universal perms for this one-off need.

Solution: Create a simple Automator app that just calls the script. Run the Automator app, e.g.

/usr/bin/open -W "/Users/.../UpdateObsidianGit.app" `

Grant it the removable device perms. Now schedule that app to run periodically via launchd. Problem solved. Automator is a pretty neat tool, and I had never touched it before but will leverage it heavily henceforth.

Oh and for the git remote I push encrypted files courtesy of git-crypt. Filenames and metadata is still visible, but contents are not if the remote were compromised. Originally used git-remote-gcrypt but having one or two mega files that have to be fully pushed on every tiny incremental change wasn’t quite what I was looking for. For more secure projects and vaults I store them in Cryptomator volumes on the cloud drive. Cryptomator also uses granular change management, similar to git, so changing a file or two in a large project doesn’t yield a massive transfer.

Dennis Forbes ·

I evaluate the storage usage on my primary Mac Mini occasionally, always to be surprised by some storage bomb that is consuming far more than expected. Today’s lucky winner is Windows App — this is the RDC client I use to connect to my primary Windows CUDA machine — which was consuming almost 200GB in the user Caches folder, accumulated junk going back about a year.

How does a simple VNC app amass such a volume of junk files? Very good question. Each time I do this exercise I find some culprit that subscribes to the add forever but never manage or delete philosophy of file management. And note that the Caches folder isn’t some system service where things are truncated as needed, but instead it’s up to the apps using this facility to delete their junk as they go, which lots of apps never do. Add that on modern flash storage you shouldn’t treat it like RAM where “empty space is wasted space”. For a variety of reasons you should strive to have 20%+ of an SSD unused, yielding the benefits of pSLC/dynamic caching. Lower usage/TRIMming makes wear-levelling more capable as well.

This entry reminded me why I’ve always leveraged external storage on my Macs.

Dennis Forbes ·

A number of local stores were retailing a Neilson protein chocolate milk product over the past month or so. Featuring 26g of very high quality whey protein per 325ml bottle and minimal sugar (only natural milk sugars), this product is an absolute banger, and while a lot of people don’t like the light sweetening — only a small amount of stevia — with an added sucralose sweetener it is an amazing way to start the day.

$9.99 CAD for a 12 pack, which is an astonishing value. I bought some at $19.99 a few weeks earlier and was a big fan at that price too. You can’t make a protein drink yourself this cheap with the dodgiest protein powder.

If you’re listening, Neilson, please continue with this product. Not sure if you just had an excess of powdered milk that you needed to get rid of or something, but this is a great product in a space that is dominated by American brands like Fairlife.

Dennis Forbes ·

Added some microblogging facilities for those micro-thoughts I often have during the day, links I might want to share, etc. Yeah, I’m not going to use Twitter, Threads is barely any better (and at this point Meta is basically an arm of the US government), and meh…if I was the only person to ever look back on this I’ll still consider it worthwhile.