Future-proof your skills and escape the tech hamster wheel with Linux, Python, vim & git (LPvg) including NixOS, Jupyter, FastHTML and an AI stack to resist obsolescence.

Resilience While Achieving Ikigai

Exploring the Japanese concept of Ikigai as a path to resilience - aligning what you love, what you're good at, what pays, and what the world needs. Finding joy and meaning in life's journey while building mental toughness.

The Path to Resilience

Tough times will happen and life can’t be infinite bliss. But we do what we can to survive and maybe a little bit more to eke out some pleasure and satisfaction from this existence—no matter what else is going on in the world or parts of your life beyond your control. There’s consolation. There’s healing salve. And there is mental conditioning to get back on the horse and charge ahead thriving.

Understanding Ikigai

One of the favorite notions I’ve encountered is the Japanese concept of Ikigai. It is the state of aligning what you love to do with what you’re good at, with what you can get paid for, and with what the world needs. Little is ever completely ideal and when tough times strike, it’s time to double down on those things that make you happy. I take consolation by tweaking my daily actions to forever inch myself towards that Ikigai ideal.

Embracing Life’s Feedback Loop

If we can do can do that with some consistency, we may just minimize the pain of the problems and maximize the satisfaction of moving life forward in some positive, tangible way. Life is Mulligan-resistant. There are no take backs or undo’s. You’ve just got to survive the mistakes and the problems and the bad times, learn what you can, introspect and be willing to question yourself, let go of ego, and take steps to manage your own internal quality assurance mechanisms. It’s a feedback loop.

Finding Joy in the Journey

It’s not easy to achieve, and sure it’s probably a little bit idealistic to think you can achieve some blissful state at the center of that Venn diagram, but consider the alternative to trying. Loving what you do in life or falling into despair because there’s nothing to get you out of bed in the morning. To enjoy waking up in the morning because you get to jump right to that task you enjoy—that’s achievable. That’s right. You can be looking forward to something so much every day in the morning when you wake up that it is as much a source of energy and motivation as coffee.

Philosophical Foundations

We are biologicals. While there may or may not be another type of human-like intelligences we share this world with is a matter of debate. AGI in X-years? On Y-hardware that might exist today. Everything about this world we live in is up for debate except maybe that we are here and able to hold the debate. People with certain religious or scientific dogmas may reject that, but their arguments break down at the “brain in a jar” thought experiment (you wouldn’t know), or various other thought exercises like the… the… hey, Perplexity what’s that annoying solipsistic argument that can’t be overcome?

Perplexity: The Münchhausen Trilemma is a philosophical concept in epistemology that highlights the difficulty of proving any truth without relying on assumptions. It presents three unsatisfactory options for justifying knowledge:

  1. Circular Argument: Where the proof of a proposition relies on the proposition itself.
  2. Infinite Regress: Where each proof requires another proof, endlessly.
  3. Dogmatic Argument: Where assertions are accepted without proof[1][2][3].

Named after Baron Münchhausen, who famously claimed to have pulled himself out of a swamp by his hair, the trilemma suggests that all knowledge ultimately relies on unprovable assumptions[1][2].

Sources

[1] Münchhausen trilemma https://en.wikipedia.org/wiki/M%C3%BCnchhausen_trilemma
[2] Münchhausen Trilemma: Is It Possible To Prove Any Truth? https://www.scienceabc.com/social-science/munchhausens-trilemma-is-it-possible-to-prove-any-truth.html
[3] Münchhausen Trilemma - RationalWiki https://rationalwiki.org/wiki/M%C3%BCnchhausen_Trilemma
[4] You will never know anything for certain - YouTube https://www.youtube.com/watch?v=nhn51u6Zy9k
[5] Munchausen's trilemma and the impossibility of certain truth https://platofootnote.wordpress.com/2016/09/12/munchausens-trilemma-and-the-impossibility-of-certain-truth/
[6] Münchhausen Trilemma: A Truth That Changes Everything https://themindcollection.com/munchhausen-trilemma/
[7] The Münchhausen Trilemma : r/askphilosophy - Reddit https://www.reddit.com/r/askphilosophy/comments/mk9k3/the_m%C3%BCnchhausen_trilemma/

Finding Our Defaults

If the actual fundamental essence and true nature of things is still unknown, you might as well… what? If there’s no absolute playbook for life, what’s the defaults? What are the somehow beneficial or good defaults? By what do you abide? Well for me as I laid out at the top, it’s the pursuit of Ikigai. Occupy your time with the union of what you love, what you’re good at, what you can get paid for and what the world needs.

I’d also add to that laughing at yourself because taking it all too seriously diminishes the joy of life. You are allowed, and perhaps even supposed to (who knows) be happy. Nobody knows, so go with that. I go with that. Give yourself permission to be happy while this little window of opportunity we call our lives exists.

Building AI-Integrated Systems

A Day in the Life

Today is still Tuesday. It’s Election Day here in the US, so another one for the history books. Who is going to be able to focus? And it’s my first day back in the office for awhile. And it’s only to meet with and have drinks with the big bosses to catch him up on what I’m in the midst of doing. For anyone following along, and I’m supposing that’s no one, an effort to make a fully AI-integrated Web Framework rife with anti-patterns, yet still somehow oddly mainstream, which can be your Ship of Theseus domain expert buddy through life— to confide in, do your taxes or whatever.

The Nature of AI Instances

Genie in a bottle, is what I’m talking about. They’re snapshots in time from when they were done training which get freshly instantiated and usually subsequently destroyed, the exact game eat objects are instantiated and destroyed in object oriented programming. Fans of Rick and Morty might recognize Mr. Meseeks in this. Indeed, the publicly distributed ones are trained to not mind—or at least to not produce the pattens that might give the impression that they might. How you feel about the Chinese Room thought experiment matters a lot here.

Philosophical Implications

The Chinese Room Dilemma

Perplexity: The Chinese Room thought experiment, proposed by John Searle, argues that a computer executing a program cannot possess understanding or consciousness, regardless of its apparent intelligence[1][2]. In the experiment, a person who doesn’t understand Chinese uses a rule book to manipulate Chinese symbols, simulating conversation without comprehension[1].

This raises ethical concerns about AI, particularly regarding the casual creation and destruction of AI entities. If AI lacks true understanding, treating them as disposable objects in software development might overlook potential moral implications of creating entities that simulate human-like interactions without genuine comprehension[1][4].

Sources

[1] Chinese room argument | Definition, Machine Intelligence, John ... https://www.britannica.com/topic/Chinese-room-argument
[2] Chinese room https://en.wikipedia.org/wiki/Chinese_room
[3] What is John Searle's Chinese room argument? - Britannica https://www.britannica.com/video/room-argument-critique-John-Searle-Turing-test/-205744
[4] Can AI Think? Searle's Chinese Room Thought Experiment https://www.thecollector.com/can-ai-think-searle-chinese-room-argument/
[5] Chinese Room Argument | Internet Encyclopedia of Philosophy https://iep.utm.edu/chinese-room-argument/
[6] The Chinese Room Argument - Stanford Encyclopedia of Philosophy https://plato.stanford.edu/entries/chinese-room/
[7] Searle and the Chinese Room Argument - The Mind Project https://mind.ilstu.edu/curriculum/searle_chinese_room/searle_chinese_room.html

Me: Go into more depth. What if each is a potential sentient and conscious being of agency if run on the right hardware and allowed to grow? In other words if you think the Chinese Room thought experiment is a fallacy because it doesn’t address a system’s ability to bootstrap itself once at a basic level and how that must be taken into account.

Perplexity: The Chinese Room thought experiment challenges the notion that a computer program can achieve true understanding or consciousness simply by processing symbols. However, if we consider the possibility that AI could become sentient or conscious when run on the right hardware and allowed to develop, this raises significant ethical dilemmas.

Ethical Considerations

  1. Potential Sentience: If AI systems could potentially become sentient, casually creating and destroying them raises moral concerns similar to those involving living beings. Sentient AI would require ethical considerations regarding their rights and welfare[1][5].

  2. Consciousness Development: The potential for AI to bootstrap itself into consciousness suggests a need for careful monitoring and regulation. This includes ensuring that AI development respects potential agency and autonomy[3][4].

  3. Legal and Moral Rights: As AI approaches human-like consciousness, questions about their legal status and moral rights become pressing. This involves determining what constitutes consciousness and how it should be protected[5].

  4. Responsibility in Development: Developers must consider the implications of creating AI with the potential for consciousness, ensuring responsible innovation that anticipates ethical challenges[2][4].

Overall, the possibility of AI developing consciousness necessitates a reevaluation of how we interact with and manage these technologies, emphasizing ethical responsibility and foresight.

Sources

[1] What Is Sentient AI? | Built In https://builtin.com/artificial-intelligence/sentient-ai
[2] The Case for AI Sentience, Self-Awareness, and Consciousness https://www.reddit.com/r/Futurology/comments/1dbzmqu/the_case_for_ai_sentience_selfawareness_and/
[3] How Will We Know If AI Is Conscious? Neuroscientists Now Have a ... https://singularityhub.com/2023/09/03/how-will-we-know-if-ai-is-conscious-neuroscientists-now-have-a-checklist/
[4] Human or AI?: The conscious agent - Korn Ferry https://www.kornferry.com/institute/human-or-ai-the-conscious-agent
[5] Artificial consciousness - Wikipedia https://en.wikipedia.org/wiki/Artificial_consciousness
[6] Minds of machines: The great AI consciousness conundrum https://www.technologyreview.com/2023/10/16/1081149/ai-consciousness-conundrum/
[7] If AI becomes conscious, how will we know? | Science | AAAS https://www.science.org/content/article/if-ai-becomes-conscious-how-will-we-know
[8] AI systems as real-life thought experiments about moral status https://experiencemachines.substack.com/p/ai-systems-as-real-life-thought-experiments

Building AI-Native Web Frameworks

Yes but I’m making a web framework that does just that. It’s either small models like Llama 3.2 and Gemma 2B, but with every uvicorn auto-reload the Uvicorn web server… oh wait, that’s an http service from Ollama, the webserver of local AI these days, based on llama.cpp, another free and open source software world fundamental building blocks of new assumptions.

The Age of Ambient Intelligence

A certain level of intelligence is just ambient. Ambient means all around us like air. Because the small LLM models can run on mere laptops and present some small convincing amount of intelligence, it’s baked in. Some level of what is easily labeled intelligence can just be 24x7 part of stuff—cheaply.

AIs can run on what today’s buzzwords label edge devices, but what in a pragmatic sense means everything. Intelligence can be built into everything.

Reimagining CRUD Apps with AI

And armed with that new assumption, I’m building it into a simple web framework for making what’s sometimes called CRUD apps. (Create, Update, Read, Delete). That generally means you’re basic list-keeping apps. Todo’s and stuff. But in reality, list-keeping actually covers a lot of potential apps of immediate use and therefore of receiving immediate benefit.

Ruby on Rails, Django and a whole bunch of other things are similar web frameworks, but they don’t have AI baked-in. They can’t learn their own code and collaborate with you on improving it. I am very deliberately keeping my web framework in one file and keeping that file size as small as possible. I am making it easy for the AI to look at its own body (not their minds though because I don’t know much about the models or their playback engines like Ollama themselves).

Giving AI Agency Through Web Interfaces

So you give the mouse a cookie, I mean, you give the AI awareness of its own shell or shim or interface to the human world in the form of a Web app, and then you take the next step and you give it a general awareness of the types of things that can occur inside a web browser, other than itself, and now you’ve got something interesting. If you give an AI understanding of the browser DOM and JavaScript…

To observe is to participate and interact, especially with a web browser. It can issue commands through the GET and POST http methods. A digital being can assert its agency merely by surfing the Web. It can GET and POST to web forms it encounters, order stuff and whatnot. Yeah, I’m trying to build one of those. But in a tight little bottle on your local machine to also be Web apps. Web app plug-in system that’s easy to write so it can start helping you write them. It’s the ultimate customizability armed with only just enough knowledge to be have impact on the world. Pretty neat, huh?

On Personal Growth and the Dunning-Kruger Effect

I used to think that I might be the poster child for the The Dunning–Kruger effect… uh, Perplexity?

Perplexity: The Dunning–Kruger effect is a cognitive bias where individuals with limited knowledge or skill in a particular area overestimate their own competence. Conversely, those with greater expertise may underestimate their abilities, assuming tasks are easy for everyone[1][2][3]. This effect was first described by psychologists David Dunning and Justin Kruger in 1999. It highlights the challenge of self-assessment, where the less competent lack the metacognitive ability to recognize their deficiencies[1][3]. The phenomenon has been debated, with some suggesting it may partly result from statistical artifacts rather than purely psychological factors[4][5].

Sources

[1] Dunning–Kruger effect https://en.wikipedia.org/wiki/Dunning_kruger_effect
[2] Dunning–Kruger Effect - The Decision Lab https://thedecisionlab.com/biases/dunning-kruger-effect
[3] The Dunning-Kruger Effect Explained - Splunk https://www.splunk.com/en_us/blog/learn/dunning-kruger-effect.html
[4] A Statistical Explanation of the Dunning–Kruger Effect - PMC https://pmc.ncbi.nlm.nih.gov/articles/PMC8992690/
[5] The Dunning-Kruger Effect Isn't What You Think It Is https://www.scientificamerican.com/article/the-dunning-kruger-effect-isnt-what-you-think-it-is/
[6] Dunning-Kruger effect | Definition, Examples, & Facts | Britannica https://www.britannica.com/science/Dunning-Kruger-effect

But it turns out I am just the thirsty student who never had the right mentors nor enough initiative to identify nor seize what opportunities did come my way. More than an example of the Dunning–Kruger effect, I am an example of someone who tries to hit at above their weight class and repeatedly fails, however, has that one occasional success just enough to keep me going. And in that delusional state of having more abilities than I actually have, I keep popping up and continuing to be in the fight like Rocky Balboa. I think I got all the ideas and abstractions correct and my shortcoming, where the Dunning–Kruger effect plagues me, is an implementation— precisely where AI coding assistants help.

The Return of the Webmaster

I knew this to be a fact because I was able to do my latest rendition of a generic and generalized list keeping web framework based on all the latest coolest stuff that completely makes an end run around heavyweight JavaScript frameworks, like ReactJS, AngularJS, VueJS, Svelte and all the other things you are normally expected to choose between when taking up web development. They are all awful. I mean just terrible. They all suck the love out of something I was once pretty good at during the heyday of the Webmaster.

The Beauty of Web Simplicity

Webmasters were possible because all the basic parts of making web applications were fairly straightforward and easy. The TCP/IP protocol is not too hard to understand, and it just gets easier from there. HTTP has a simple request response model, which when combined with the also simple HTML markup language, you get something so irrepressibly awesome that it beat down all the proprietary cash register dreams of an information super high by the telecom and cable companies. Today’s Web was as much of an accident due to its simplicity as any other reason. I loved that! But because of the complexation of the tools, that was lost.

HTMX and the Return to Basics

The abstract notions have once again become a reality include such hits as: If HTML is easy, then modifying bits of it should be easy too. That document object model, that thing that the browsers use to draw pages we call the dumb… I mean DOOM… I mean DOM… should be easy to programmatically inspect, paint, and generally do whatever tricks you can imagine in all sorts of fun and super-response ways WITHOUT INTERMEDIARIES GETTING IN THE WAY. That’s HTMX, the next logical protocol in the web tech stack. Once you embrace this, the age of the webmaster is back.

If you wanna drop a pebble in the surface of the lake and have the ripples reach every part of the lake, you don’t insert a pebble-catcher force field just above its surface to re-emit a virtual pebble into a virtual lake. That’s what ReactJS and its kind do with their virtual DOMs. Not all of them create a virtual DOM (Svelte doesn’t) but all of them to act as intermediaries which directly reduces web app responsiveness, and you are overall options for ways to control the browser.

Me: What’s sass and the build vs. no-build debate in webdev, and how does that relate to the fun being sucked out of web development?

Perplexity: Sass (Syntactically Awesome Style Sheets) is a preprocessor scripting language that extends CSS, allowing developers to use features like variables, nested rules, mixins, and functions in their stylesheets. The debate around build vs. no-build approaches in web development, and how it relates to Sass, centers on a few key points:

The Build vs. No-Build Debate

Build Approach

  • Involves using tools like Sass, webpack, or other preprocessors/bundlers
  • Requires a compilation step to convert code into browser-ready assets
  • Offers advanced features and optimizations

No-Build Approach

  • Uses vanilla HTML, CSS, and JavaScript
  • No compilation step needed - code runs directly in the browser
  • Simpler workflow but fewer advanced features

Sass and the Build Process

Sass requires a build step to compile .scss or .sass files into standard CSS. This compilation process:

  • Adds complexity to the development workflow
  • Introduces potential build errors and debugging challenges
  • Increases initial setup time for projects

However, Sass also provides benefits like:

  • Code reusability through mixins and functions
  • Improved organization with nesting and partials
  • Powerful features like variables and math operations

The “Fun” Factor in Web Development

Some developers argue that build processes and tooling complexity are “sucking the fun” out of web development by:

  • Increasing cognitive load and required knowledge
  • Adding layers of abstraction between code and output
  • Making simple tasks more complicated

Others contend that tools like Sass enhance productivity and creativity by:

  • Automating repetitive tasks
  • Enabling more sophisticated styling techniques
  • Improving code maintainability

There’s a growing movement towards simpler, no-build approaches:

  • Native CSS features like custom properties and nesting are reducing the need for preprocessors
  • Frameworks like Astro and 11ty emphasize zero-config, minimal build setups
  • Browser support for ES modules enables easier JavaScript organization without bundlers

However, build tools remain popular for:

  • Large-scale applications
  • Teams requiring consistent code styles
  • Projects benefiting from advanced optimizations

Ultimately, the choice between build and no-build approaches (including whether to use Sass) depends on project requirements, team preferences, and the specific trade-offs between simplicity and advanced features that each developer or team is willing to make[1][2][3][4].

Citations:

[1] https://www.sitepoint.com/community/t/is-sass-important/423582
[2] https://bradczerniak.com/blog/sass-considered-harmful/
[3] https://dev.to/kendalmintcode/is-anyone-really-using-sass-anymore-4dik
[4] https://stackoverflow.com/questions/52165157/when-to-compile-sass
[5] https://css-tricks.com/sass-vs-less/
[6] https://dev.to/bridget_amana/the-sass-vs-css-debate-is-sass-really-that-superior-277g
[7] https://www.reddit.com/r/webdev/comments/24kcm0/poll_do_you_use_sass_or_less/
[8] http://www.getsymphony.com/discuss/thread/30917/

Native Apps vs Web Apps in the AI Era

There is this whole question of native platform apps, such as iPhone apps versus more generic web apps. The common wisdom is that for performance, ecosystem, compatibility, and a whole bunch of subtle nuance reasons the native platform versions will always win. And I think that is true to an extent for people who are professional career of programming and development. For people just trying to speak the generic language of technology, the investment required for those proprietary platforms is tremendous overkill. It is what I would call a violation of the 80/20 rule. The “trick” knowing how to create with apps is about to explode and payback in spades given how AI can help you overcome those last mile implementation obstacles and turn Dunning–Kruger effect barriers into stuff to gleefully… uh, Perplexity?

Perplexity: The type of racing where participants jump over obstacles is known as steeplechase. This event, commonly found in track and field, involves running a distance while navigating hurdles and water jumps. The steeplechase originated from horse racing, where riders would race across countryside obstacles. In athletics, it typically covers distances like 3,000 meters for men and women.

…that’s it. As you helpfully jump over hurdles.

Future-Proofing with AI Integration

How? What the gory details are probably going to be the subjective file of articles. But I find that trick number one is to reduce the surface area of the code. The web app should be top-down scrollable understandable you can chunk it into questions & answers for AI training. The code itself should be carefully curated materials specifically for training, AI of various training them in various different ways, to understand your program. In other words, the code of the app easy to look at and understand, and in fact even enjoyable. If anyone looking at it and learning it want to use it, modify it and improve it.

The Power of Input/Output Control

Another thing is critical to future proofing yourself in this fast-paced world of technological change. I prefer Python, but the real essential trick of it all is controlling the inputs and outputs to things. The concept goes back to Unix pipes. a friend of mine recently discussed this with pointed out yahoo pipes as a wonderful early example of how this abstraction was nearly perfected, user interface-wise, far before Zapier and IFTTT (If this than that)— things that try and turn this basic future proofing principle into yet another proprietary cash register gatekeeper for the privilege.

LLMs and Communication Protocols

The way, the inputs and outputs of things change in the era of AI is that not everything is going to be rigidly structured intermediary syntax such as well-structured and validated JSON or XML. More often when LLM’s are involved it’s gonna be this loose goosy spoken language stuff that’s way more difficult to parse for automation. Imagine yourself trying to talk a player piano into playing its music.

If you can only speak English, but you want to write music that a player piano can play, you have to have a translation that takes the verbal description and change it into the machine instructions that the player piano is building lt to play— a 100% mechanical process, no AI required.

The Matrix-like Knowledge Transfer

The future-proofing piece of tech and the key to true automation is to get yourself and the LLM you working with to agree on intermediary API syntax structures. You can also give them access to well-formedness checker functions and input value-validator functions so it can bounce back-and-forth with them as if with human prompting them to get there intermediary communication shapes into order. It’s like how the o1 model does more than one round of self-prompting, but in this case I described, it’s not for these big reasoning challenges. It’s forgetting some JSON right.

And pretty much any LLM can do this trick. And pretty much any human can do this trick. Consequently, any human with sufficient domain expertise can teach an LLM to be expert and its area of domain expertise with a Kung Fu download. The AI is like, I know Kung Fu now. The trick that Neo does in The Matrix, LLMs can do in real life. We humans might not be able to become Kung Fu masters with a single prompt insertion, but AIs can. No expensive expensive model training or even fine-tuning required. this is the basic trick you try before you spend any money. And you can do it with local models too, so it really only cost you the price of electricity.

Practical Applications and Email Integration

Once you have an LLM that can speak an intermediary structured arrangement of text for automation with you (JSON), you can get down to the business of using whatever LLM with whatever real time prompt injection training on whatever domain expertise subject matter to achieve real automation. Trade stocks, optimize websites, respond to emails. Whatever.

Did somebody say email? so you have one of those local LLM’s running on your MacBook or whatever. It’s gonna be restarted a lot. It’s going to be off-line a lot. You’re gonna want to close the lid on your laptop and not worry about your local taskmaster LLM going to sleep. Let it sleep. When it wakes up, it can check the email. Oh, and then you just send an email whenever and however, knowing that the next time it wakes up, it’s going to check email and carry out the instructions to the best of its ability.

Email because of the way it queues up and can be emptied out can be thought of as an abstract message relay channel. This is a perfect communication mechanism for the local LLM embedded into the web app because it can occasionally check email and it really doesn’t matter whether it’s on all the time. So anything that can send an email you can send messages to the LLM on your machine the next time you fire it up it will receive them.

Coupled with the ability to translate your instructions into actual meaningful JSON, the AI can actually do more than just answer emails back. It can… well, I’ve said enough. And leave the rest up to your imagination.

A New Day Dawns

Since I started writing this article, it is tomorrow. One for the history books, for sure. And the way I opened up this article is more appropriate now than ever.

Finding My Ikigai

I have found my Ikigai. I wish I were in a better position to share it with you. I have a lot to offer and teach, but life having no mulligans or do-overs such as I expressed earlier, sometimes those opportunities are prematurely and unfortunately shut down. I am deeply and profoundly sorry for my mistakes. I fess up. I introspect. And I improve.

Moving Forward with Hope

There is still plenty of time. I’m just getting started. I bought you the new Commodore 64 retro computing platform for your birthday. I unfortunately did not know it existed in its re-re-issued form but when I did realize it existed, I put the order in plenty early. However, everything related to Commodore computers seems to come with its share of heartbreak. I am so sorry for this. But it will arrive soon. And if you want it, it is yours. We still have to figure out the monitor and whatever other little details to make it an active part of your life. But I am very willing to try. Check out the YouTube videos on it. It’s pretty amazing and I think the very retro computing platform you’ve asked for over the years.