5,059 karma · joined July 23, 2011
That doesn't match your context perfectly, but I think it does communicate the importance of managing expectations.
I'm pretty good at thinking on my feet, but I'm also not above changing my thoughts once I've examined a situation in detail. So when asked a question on the fly, I'll respond "my gut tells me X, Y, and Z but I'd like to think about it a bit and get back to you". If you do that, it's important that you follow up with some real thought and structure that provide real value. The confidence comes not in how you ask for time to think, but in your audience knowing your followup will be worth their while.
No mistake, almost all of us can refer to an anecdote of an elderly relative dying soon after their spouse. It can be both tragic and, in hindsight, romantic. But really, the consequences of loneliness are often and unfortunately quite practical.
I lamented when my career first started (2000 or so) that there were devs I worked with who didn't even own computers at home. While my bookshelves were full of books I aspired to learn and my hard drive was full of half-baked projects, they clocked out and their thinking was done.
I still know a few of those now 25 years after the fact. Some of them have made a career out of software. But they never got curious. It was a means to an end. I don't begrudge them that. But as someone who is internally driven to learn and improve and produce, I can't relate.
My primary fustration today is how many of my software peers are satisfied with updating a Jira status and not seeking to build excellent software. I've seen it at all levels - engineers, managers, and executives. I'm actualized by shipping good, useful software. They seem to be actualized by appearing busy. They don't appear to deliver much value, but their calendars are full. It has me at my professional wits end.
Truth be told, the phenomenon of appearing productive without being productive is an epidemic across multiple industries. I've had conversations with people in manufacturing and agriculture and academia and they all echo something similar. Eventually, Stein's law indicates that the productivity charade will end. And I fear it will be ugly.
There are still parents that complain. Turns out they are as addicted to texting with their kids all day as their kids are addicted to the same.
Regardless, it’s great to see that the ban has seemingly nudged things in a healthier direction. Its a failure of leadership that schools needed a statewide ban to make such an obviously positive change.
https://www.aecf.org/interactive/databook?l=35
You can research for yourself and see other evidence that the educational outcomes for children in New Mexico is generally very, very poor.
Expect similar results with New Mexico's "universal" child care.
I appreciate that it’s useful to have an open mind about your tastes and preferences, but each rabbit hole I stumble into is far deeper than the time I have available to explore. So for me, i have to find reasons to dislike things to protect my time and my existing obsessions.
The fact is, despite all the process and pipelines and rituals we've invented to guide how software is made, the best thing leadership can do is to communicate incremental, unambiguous requirements and provide time and space for your engineers to solve the problem. If you don't do that, none of the other meetings and systems and processes and tools will matter.
Acknowledging what happened, taking responsibility, and reconnecting.
...is a reflex, not a tactic.
I had to use an Amazon chatbot a few weeks ago. It introduced itself as "Deepshikha". After that facepalm, I started down the path with its various preferred responses to get a refund on an item I bought that never arrived, had no tracking information, and was almost certainly a scam by a third-party seller. I eventually, after a few tries, selected the right combination of things to get the refund processed. But the chatbot wasn't helpful, it didn't make any decisions, and it simply served as a filter for scam refund requests.
I guarantee you that some middle-management PM and some VP at Amazon counted that interaction as a success. I'm sure that's how it ended up on their quarterly graphs and charts. After all, the customer (me) got what they wanted and the right decision was made. And, !bonus!, it used "AI", reduces cost, and had low latency. Raises and promotions are almost certainly incoming!
But the experience was abysmal and insulting, contibuting to the ongoing ensh*ttification of the Amazon experience.
I do want to keep Notion's ability to work in a browser and to maintain a single, accessible store of my notes.
What are my options?
There are always good reasons for why X law or Y regulation exists or why Z company is given preferences and even subsidies. But the visionaries are undermined all the same.
Pournelle's Iron Law of Bureaucracy states that in any bureaucratic organization there will be two kinds of people: First, there will be those who are devoted to the goals of the organization. Examples are dedicated classroom teachers in an educational bureaucracy, many of the engineers and launch technicians and scientists at NASA, even some agricultural scientists and advisors in the former Soviet Union collective farming administration. Secondly, there will be those dedicated to the organization itself. Examples are many of the administrators in the education system, many professors of education, many teachers union officials, much of the NASA headquarters staff, etc. The Iron Law states that in every case the second group will gain and keep control of the organization. It will write the rules, and control promotions within the organization.
In terms of issues, getting certain mounts to persist took some time. I had jump back into Windows and change some settings to get Windows to give up control.
I tried to install a few packages, like Emulation Station, that presented some headaches but I worked through it.
I tried installing SpaceDrive and it was a slog that eventually went nowhere. It took a lot of effort to get it compiled and running and then it didn't really work, so I gave up. It's alpha software, but given the press (and investment) it's received I expected a smoother experience.
Installing MakeMKV took a small bit of gymnastics to install, but once it was installed it worked great. Setting up backups on Mint didn’t behave as I expected at first, but I figured it out.
I didn’t really have any issues, per se, with Mint. It was a breeze. I’m sure the forums are great, but GPT hit enough that it wasn't too terrible when it missed. And it has a lot less latency than searching a forum or posting and waiting for responses.
I was capable enough to be professionally effective with Linux but I stayed on Windows because it was the path of least resistance. I had decades of conditioning and habits built around how Windows worked. Everything was installed and configured and setup and familiar. So I just accepted the nuisance of the injected ads and data harvesting and bloatware because it was the path of least resistance. But despite all that, I finally had enough of Microsoft's shenanigans and resolved I was done.
I used ChatGPT to successfully navigate some of the more esoteric errors, installation headaches, and software setup stumbles I've encountered getting Linux set up. No Wine or VMs either, RhythmBox and LibreOffice and MakeMKV and Steam all work great on Linux. If I need Office I've got the Office web apps. PC game support has gradually improved on Linux. The availability of emulators and Emulation Station means I don't miss my extensive LaunchBox setup that sits on my Windows partition. The end result is a setup that has kept me out of my Windows partition for months at a time.
I don't really care who wins, whatever that means, but Linux is polished and fantastic and performant. I wish I'd made the jump a decade ago.
And the government sat on its hands and our representatives loved all the Prime boxes stacked at their doorstep. It has ensh#ttified entire industries that once depended upon retail as their interface with customers.
The author provides lots of words explaining how everyone has the wrong answers but doesn't do much to provide any right answers.
> You can’t bolt AI onto SaaS. You have to rebuild around outcomes.
To borrow a quote from Blazing Saddles:
Not only was it authentic <consulting> gibberish, it expressed a courage little seen in this day and age.
I use the same ViewModel structure for all renders, a struct called Content. It has a members to help with rendering and whatnot, and the data being rendered in my HTML template is stored in a Data type for the content that will be displayed:
Data any
So whether I'm rendering complex data, a form, or just a snippet of text, that's where it lives. That allows for all sorts of patterns for rendering data and re-using templates if that's what you want to do. Or you can just keep things simple.Hat-tip to the Pagoda framework, which was used sometimes as an inspiration and other times as a guideline for this (and other) patterns that I used. You can find it here: https://github.com/mikestefanello/pagoda
I also have, as part of my ViewModel, a `Notifications` slice that specifies messages to send to the user and their type:
Notifications []messages.Notification
I have a HTML layout for my full page that includes a section that CSS uses to pick up notifications and display them via a toaster message: <div id="user-notifications" class="toaster-container">
{{ range .Notifications }}
<div class="toaster{{ if .IsSuccess }} success{{ else if .IsError }} error{{ end }}">
{{ .Message }}
</div>
{{ end }}
</div>
I managed to get it working without any need for JavaScript (other than what HTMX needs to work).My partial renders use a layout that includes a section for the partially rendered code and my oob Notifications:
{{ block "Content" . }}
Loading content.
{{ end }}
<div id="user-notifications" class="toaster-container" hx-swap-oob="true">
{{ range .Notifications }}
<div class="toaster{{ if .IsSuccess }} success{{ else if .IsError }} error{{ end }}">
{{ .Message }}
</div>
{{ end }}
</div>
So the hx-swap-oob results in my user-notifications <div> being replaced with new notifications content, if there is any. I have a base renderer that handles injecting the layouts and injecting data into `Notifications`. As a result, my handlers can be generally oblivious that this is all happening underneath.This model can work for updating links, updating breadcrumbs, writing messages to the console, or whatever.
I'm still scratching the surface with HTMX, but I'm convinced HTMX is perfectly appropriate and a much simpler alternative for 95% of the web dev being done today.
It sounds like a similar use case to yours.
And when creativity and competence are commodities, companies expect they can replace creativity and competence with another SaaS platform or another vendor who'll do the dirty work. Companies don’t dare hire new graduates and train them. They don't try to educate them on how to build and maintain things while preserving the fresh thinking that comes with youth and inexperience. Those days are gone because the MBA wizards have decided long term investment, investment into an industry or one's community, is bad business.
The pied pipers of modern business thinking openly encourage “minimum viable” as the secret to success. “Minimum viable” is only a a fly’s eyelash from “not viable”. That results in “nearly not viable” schlock filling the shelves anywhere things are sold.
Modern business philosophy is literally that, for years, we’ve made things too good. That thinking infects every level of business, from development to manufacturing to service and support. Companies instruct their teams and vendors to fly as close to the sun as possible. They use words like “agile” and “lean” and “efficient”, when in most cases they are just using those words to wallpaper over shoddy work.
And because the way we used to do things is always wrong, companies hire one “consultant” after another poisoning the well with this garbage. The need for “consultant” help never ends, as the real money in consulting is in prolonging problems.
When all of that outsourcing, outsourcing of thinking and outsourcing of actual production, doesn’t adequately insulate the decision makers from accountability, companies embrace “big data” and decision committees and auditors and anything else that shields the org chart from real scrutiny. Companies refuse to trust anyone who actually has their ear to the ground in favor of some artificial signal discerned from the mountain of white noise collected from inconsistent and uneven sources. Nobody trusts the prophet in their own hometown, but the prophet from the next town is an oracle.
All of that, coupled with a consumer market that is neither educated nor savvy enough to discern quality and unwilling to pay for what quality actually costs, results in the sorry state we are experiencing. This can't sustain.