I've been writing about technology in education since 2006. I include entries below about Linux, Computer Science, Personal Notes, Mindfulness, and Educational Technology. My writing is generally informal and I write for an audience of my peers and friends. My writings started as a blog and now I hope they serve as resource and conversation starters on interesting topics.

Updated November 2022: Recent writing emerges!

Filter by type:

Sort by year:

Redis, message queues and the Producer-Consumer Model

Blogging Personal Text-based gaming published on Sunday, March 23, 2025 (3 months, one week, and one day ago)

I'm in early days of architecting a 3D space system for pennmush. The design documents are here and I'm greatly enjoying simply hacking about.

I've never used redis before, so I'm learning quite a bit about the server, the diagnostic and performance tools and the "gotcha's". The basic idea is pennmush (a server for text-based games) sends a message to redis message queue which is then read by the space engine (written in rust) which then sends a message back to pennmush via redis. The space engine will update position of space objects, manage combat, trading, etc... Pennmush will manage interface and out-of-space story. Really fun stuff

Hacking in space

Computer Science Personal Text-based gaming published on Sunday, February 16, 2025 (4 months, one week, and 5 days ago)

For me, programming has always been an adventure, a way to explore ideas, systems, and new ways of thinking. And right now, my latest obsession is building a 3D space server for a 4X game.

This isn’t just any project; it’s a real labor of love. It’s one of those endeavors where I find myself just hacking away, thinking about how all the pieces fit together, and iterating on the mechanics of space movement, exploration, and simulation. I’ve been fascinated by space games for a long time—especially those that model and simulate 3D space in meaningful ways. There’s a certain beauty in translating real-world physics and strategy into code, creating a universe that feels alive with possibility.

My love for coding and game development started with text-based multiplayer games. Back in the day, I spent countless hours on PennMUSH servers, fascinated by the intricate worlds that could be created with text alone. These games were more than just entertainment—they were interactive systems that rewarded creativity, strategic thinking, and collaborative storytelling. Playing these games shaped the way I approach programming. They taught me to think about data structures, world-building, and the fine balance between rules and player agency.

Now, with my 4X space server, I get to apply those lessons in a whole new dimension—literally. Designing movement in a true 3D space, handling scale, managing player interactions, and ensuring the world remains dynamic and engaging are all challenges I relish. I love the deep systems thinking that comes with game development: balancing resource management, tactical combat, and exploration while keeping everything efficient and scalable.

But more than anything, this project is about learning. I’ve always believed that game programming is one of the best ways to grow as a developer. It forces you to think across multiple domains—physics, AI, databases, networking, UI design—and integrate them into a cohesive whole. Every time I work on this project, I discover something new, whether it’s a better way to handle spatial indexing or a clever trick for optimizing server-side calculations.

For me, coding has never just been about solving problems; it’s about creating worlds. And this 3D space server is one of my most exciting worlds yet. Whether or not this project ever sees the light of day beyond my own development machine, it’s an experience I cherish. Because at the end of the day, I’m here for the journey—the hacking, the problem-solving, and the sheer joy of making something that feels like magic.

Automation Has Made Programming Less Fun.

Computer Science Teaching Diary published on Saturday, October 26, 2024 (8 months, 4 days, and 8 hours ago)

The screen blinked back at me, a silent acknowledgment of the journey I was embarking upon. Over the past 41 years, coding has been more than just a profession; it's been a passion fueled by curiosity, creativity, and the thrill of solving complex problems. But recently, I had an experience that made me question the evolving landscape of programming and its impact on the joy it once brought me.

A few weeks ago, I decided to create a simple ASCII-art 4X space game—a project that, in the past, would have been a delightful challenge filled with hours of brainstorming, debugging, and incremental victories. This time, however, I turned to a Large Language Model (LLM) to assist me. In just about two hours, the game was complete. No hurdles, no late-night problem-solving sessions, no trial-and-error. And yet, instead of feeling accomplished, I was... bored.

Coding has always been akin to solving a intricate puzzle. Each bug fixed and each function optimized brings a sense of achievement that's hard to replicate. The process demands patience, logical thinking, and creativity. It's not just about the end product; it's about the journey—the countless trials and errors that lead to the final result.

When an LLM can generate code in a fraction of the time, it strips away the challenges that make coding rewarding. The automation of problem-solving turns an engaging process into a mechanical one. The excitement of unraveling a complex issue diminishes when the solution is handed to you on a silver platter.

As an educator, I see the same patterns emerging among my students who are learning to code. The allure of quick solutions is tempting, but it deprives them of the fundamental experiences that build proficiency and confidence. Struggling with code isn't a setback; it's a crucial part of the learning curve. It's through debugging and iterative problem-solving that students develop a deeper understanding of programming concepts.

When students rely too heavily on AI-generated code, they miss out on the opportunity to think critically and develop their problem-solving skills. The "eureka" moments that come after hours of hard work are invaluable. They not only reinforce learning but also build resilience and a growth mindset.

This isn't to say that LLMs and AI tools have no place in programming—they undoubtedly increase efficiency and can handle repetitive tasks with ease. However, it's essential to strike a balance. For seasoned programmers like myself, perhaps it's about using these tools to handle mundane aspects while reserving the more challenging problems for manual coding. For students, it might mean using AI as a learning aid rather than a crutch.

Coding is changing rapidly with the advent of AI and automation. While these tools offer incredible benefits, they also pose questions about the future of programming as a fulfilling craft. For those of us who find joy in the challenges of coding, it's important to remember why we started in the first place. And for the new generation of coders, embracing the hard work and the hurdles isn't just beneficial—it's essential.

The next time you sit down to code, consider taking the longer path. Embrace the difficulties, relish in the trial-and-error, and remember that sometimes, the struggle is where the real fun lies.

That musical thing

Writing published on Thursday, October 24, 2024 (8 months, 6 days, and 7 hours ago)

Jaxon's finger hammered lightly and quickly on the drum. His eyes were closed, and he seemed consumed entirely by the music he was playing. A slight smile. The bassist was strumming, the pianist was finding the right note at the right time, and the crowd was with them. Maybe the darkness, perhaps the small space, but at a point during the show, a discernible "togtherness" happened. Jaxon lifted his head up. The cadence of the music flowed, started to become softer and then ended.

Jaxon exhaled softly, the stress his shoulders visibly relaxing, and focused on the crowd. All of them were on their feet applauding and gesturing in appreciation of the music. His band mates all seemed to be coming out from the act of creation and appreciating the appreciation. The lights slowly became brighter.

After some time, Jaxon stood up, waved to the crowd and waled off the stage. He took a glass of water and broke into a laugh "ok, THAT was fine creation, mates!", his fellow band members laughed and nodded in agreement "a fine set" said Silian, matter of factly. A few minutes later some eager members of the audience insisted on continuing their gratitude for an incredible live show.

AI Is a Language Microwave

Blogging Educational Tech Design Gifted Leadership platform Security Smartboards Support published on Tuesday, October 01, 2024 (8 months, 4 weeks, and one day ago)

The article, written by Stephen Marche, addresses a few points about chatGPT in contemporary education. A quote in the article underlined some ideas I appreciated

The existence of AI will change what the world values in language. “The education system’s emphasis on [cumulative grade point average] over actual knowledge and understanding, combined with the lack of live monitoring, increases the likelihood of using ChatGPT,” the study on student use says. Rote linguistic tasks, even at the highest skill level, just won’t be as impressive as they once were. Once upon a time, it might have seemed notable if a student spelled onomatopoeia correctly in a paper; by the 2000s, it just meant they had access to spell-check.

Herein, I think, lay the thing; that we [professional educators] should return to a more basic, foundational practice; that our adaptation to chatGPT, especially as it applies to assessment of student work, must be more basic. How do we know our students know? How do we know our students understand is within the context of varying levels of knowing, so it's not just just drill-and-kill, but rather a more nuanced approach to assessment, Bloom's taxonomy is always a helpful framework to understand how we think about learning. . That chatGPT (and its ilk) requires giving students assignments which tease out what they really think and know.

The article is well put-together and I'd say an important part of the road to our understanding of LLM's and learning.

ASW school use of AI

Blogging Educational Tech Design Gifted Leadership platform Security Smartboards Support Writing published on Sunday, September 08, 2024 (9 months, 3 weeks, and one day ago)

Click here for a PDF guide for use of AI in education. I believe this is an excellent first take on AI in the classroom. I will of course let you know about my school's efforts to better handle this tricky topic.

The changing nature of conflict in an era of drones

Blogging Personal Historical Simulation published on Tuesday, August 27, 2024 (10 months, 3 days, and 18 hours ago)

Here is a local copy of the analysis and here is the external link to Institute for the Study of War

The analysis begins with a comparison of the Spanish Civil War and WW2; that lessons from the first greatly informed the execution of the later. A major thesis is that "the challenge of restoring operational maneuver to war remains the central problem for both sides [Ukranian and Russian] in this conflict".

The problem with positional warfare is that it leads to stalemate and attrition; it often leads to a prolonged stalemate, where neither side can gain a decisive advantage. This can result in a war of attrition, where victory is determined by which side can sustain losses longer. Such warfare is costly in terms of human lives, resources, and morale.

There is so much more in this article, as a historian, I appreciate the parallels drawn between past conflicts (the section about the battle of the bulge was especially interesting) and this current one. I recommend the study of this analysis.

Another substantiative treatment of AI in education

Educational Tech Design Teaching Diary published on Tuesday, July 16, 2024 (11 months, 2 weeks, and one day ago)

The future of NATO

Blogging Update published on Sunday, July 07, 2024 (11 months, 3 weeks, and 3 days ago)

Article here (PDF / protection against linkrot here)

NATO should be more like a decentralized system, and Europe should be more capable militarily. I wonder if the advantages of a hegemonic power no longer work in today's world; that the interdependence of outside states, and smaller interdependent economies are better, or more advantageous systems.

Farah writes:

The United States simply can’t do everything everywhere all at once, by itself. The future requires well-armed, capable allies. The indispensable nation has to be a bit less indispensable.

I suspect the upcoming war of authoritarian vs democratic states will require regional power centers, capable of projecting force and deterring those who would take freedom away.

Some questions and answers

Personal Update published on Thursday, July 04, 2024 (11 months, 3 weeks, and 6 days ago)

How much is a place?

Blogging Writing published on Saturday, June 22, 2024 (about one year, one week, and 2 days ago)

Waves of energy gently lap at the edge of the Nexus, creating a soothing rhythmic sound. The first sun-like star moves quickly across the sky, changing colors and hues as it does. The edge of the Nexus fades and unbecomes and becomes. Light is an especially precarious situation, as it bends, fades, brightens and dims, all at the same time.

Further away from the edge a certain stability manifests. Hundreds of different energies which push and pull at each other seem to lock and freeze in a ephemeral stasis. In this stability, surrounded by a maelstrom of energies, lay the Quantara Nexus.

Denziens of the Quantara Nexus move with a specific, careful cadence. Steps are measured and often involve intricate patterns For some, this movement might be interpreted as a dance but each to their own music, and some to none. . Master Elara Tahn slowly walks along a major street; every 3rd step she taps the road with her right toe. She is about to enter one of the many archives when she glances up, an unexpected movement catching her eye. She gasps sharply.

Above the Nexus, a starship becomes visible. The dark black hull shifts and moves, as if alive. Aside from the normal ebb and flux of energies the ship silently, slowly rotates in a circle. Elara adjusts her gaze and shifts her feet, and adjusts her shoulders; grounding herself. She traces an intricate pattern with her hands and as she does feels the ether move around her (much faster here than other places, she thinks).

In an instant four heavily armed and armoured solders materalize around her, holding weapons at the ready. One of the solders, with evidence of rank, says in a commanding voice "Elara Tahn, you will come with us." He moves his finger onto the trigger of his weapon.

Elara relaxes her shoulders and very slowly spreads her hands away from her chest, maintaining a ball-like shape with her fingers. "And who orders, and under what authority do such commands come?" she asks in a steady voice.

In an instant the solders fire their weapons. Arcs of light from two of the weapons and kinetic projectiles from the other two weapons hit Elara squarely in the chest. She gasps, falls to her knees and clutches a pendant around her neck. Her last action before losing consciousness was to touch both her thumbs to her middle fingers. A flash of ether burst around her and streaks into the sky.

Exciting changes in IB computer science

Computer Science Educational Tech Design Gifted Leadership platform Security Smartboards Support News Teaching Diary published on Monday, June 17, 2024 (about one year, one week, and 7 days ago)

The making…

Blogging Writing published on Sunday, May 19, 2024 (one year, one month, and one week ago)

Nova Lumina is a prominent industrial shipyard located in the outer sectors of the Galactic Core. Known for its large-scale shipbuilding capabilities, extensive mineral extraction from asteroids, and a network of massive space elevators linking the shipyard to its planetary base, Nova Lumina stands as a key infrastructure hub.

The shipyard is a bustling hive of activity. Three massive ship hulls and a dozens smaller hulls are in various stages of construction. Massive scaffolding surrounds each hull, industrial works and manufacturing works are visible from tens of kilometers away. There are hundreds of ships moving around the shipyard.

Close to the power stations, within one of the many machine shops sits a branch of the gearwright guild. It hums with a busy cacophony and at the current moment, gearwrights are carefully assembling an especially complex part of a propulsion system. Large machines and robots work in an intricate and coordinated dance. Always working in pairs, the gearwrights work with careful precision and efficiency of movement.

Not far away from the gearwrights, in a differently lit area stands Sila Maren. She is staring at the propulsion system occasionally glancing at at a floating glowing ember-colored interface. "There!" she says and at once the activity near the propulsion system stops. The gearwrights hold their gaze towards her and the leader of them nods slightly. Sila walks towards the system and begins to move her hands in an intricate pattern and as she does a visible line of energy begins to weave around parts of the system. the energy flares brightly for a moments and then settles into the system. The gearwrights start to measure, with great care, aspects of the system. After some time Sila looks at the system and simply says "this is true", and the gearwrights resume their work.

Sila shifts her feet a bit, bends her knees slightly and adjusts her hips moving very slowly she begins to raise her hands from her waist to her shoulders, and then back again. She repeats this motion a few times and then goes back to more carefully studying the floating interface in front of her.

As things go….

Blogging Writing published on Friday, May 17, 2024 (one year, one month, and 2 weeks ago)

Liora Kael couldn't be bothered to devote any attention to her phones nagging. Awash in paints and colors, she was immersed in a project to explore the relationship of self and other. "The only way to really see this, is with color", she thought to herself as her phone chimed again. She was paying careful attention to where the different colors intersected and met. She was looking at exploring how our sense of self meets and encounters the other. How they combine at the periphery.

She painted with etheric energies; a hue of blue and teal, and then a hue of something else. She often stopped, breathed and became very still. The smell of paint floated in the air, and the sound of birds singing could be heard through an open window. She watched the colors shift and change; she paid attention to the textures. She waited until there was something to tell her about the next part of what she had to make. This was, of course, part of the process, and part of the creation...the waiting and tension of decision.

Liora cursed under her breath and asked herself if all of this was worth it; her last three pieces barely registered with people she cared about most. Of course it was easy to sell to those who she didn't respect, but for those she looked up to, those she respected? this was her challenge.

Still, though, she continued to create...a connection and touching which made her feel oddly whole; a togethering within her that made her art....possible.

The awards on her wall spoke to her success and impact. Her ability to create.

"Sarah, can you please add a smidgen of holographic nanites to this teal mixture" she said quietly. Her assistant, a young woman responded "are you sure just a smidgen? Maybe a splash, or perhaps a bit"? Liora smiled. "Stop being a pain in my ass" she said with a smirk. Her assistant reached over to the teal paint and gently moved a vial around the paint. Although invisible to the naked eye, the nanites would begin to reproduce in the paint and react to specific energy frequencies, changing subtle aspects of the colors. "I've added the nanites - these are the same ones you used in your last exhibition." Liora gently stirred and poked the paint. "Thank you." she said, and continued her work.

She looked outside her window and it was dark, the birds stopped singing long ago. Her canvas comprised of two shifting figures, each reaching out for the other. The figures were incandescent, and their hands slowly moved in an opposite symmetry to each other. Liora felt her shoulders relax and she put down her brush. "Sarah, some tea please.". "No problem boss!". Not long thereafter the lovely smell of rooibos vanilla tea wafted through her studio. It was late, and Sarah looked down briefly at the floor. "I really need to rest, boss" she said. "of course, of course, sorry for keeping you so late, and thank you again for your help.". Sarah smiled and started gathering her bag, coat, and shoes.

Primitive us, God-like tech. Part 3

Blogging Writing published on Wednesday, May 15, 2024 (one year, one month, and 2 weeks ago)

The Rise of God-Like Technology includes tools which significantly enhance or surpass our scope. So far beyond our human capabilities that they can be described as "god-like." These include artificial intelligence (AI), robotics, and genetic engineering. Each represents a leap forward in our ability to manipulate and control complex systems, be they digital, mechanical, or biological. AI systems that perform complex tasks such as driving cars, trading stocks, or even diagnosing diseases, which were traditionally thought to require human intelligence. Machines that can execute tasks requiring dexterity and endurance far beyond human limits, from assembling intricate electronic components to exploring hazardous environments like deep-sea or space. The main point here is that the tools enhance our scope way beyond anything we've been capable of realizing prior.Techniques like CRISPR that allow scientists to edit genes with precision, potentially eliminating genetic diseases or creating organisms with entirely new traits.

These technologies promise to overcome fundamental human constraints, offering enhancements in longevity, intelligence, and physical abilities. For example, genetic modifications could one day increase human lifespan or cognitive capacities. As these technologies progress, they provoke profound questions about identity and ethics. What does it mean to be human if our biological makeup can be fundamentally altered? How do we define rights and responsibilities when intelligence and agency are no longer uniquely human attributes? What does it mean to teach and learn if an AI can arguably do it better? We are 100% not ready for this...

Technologies like social media exploit and magnify primal instincts such as tribalism and the need for social dominance, often leading to polarization and heightened inter-group conflicts. Conversely, AI applications in decision-making aim to minimize human biases, promoting more equitable outcomes in areas like hiring practices or legal judgments. There is growing evidence that sustained interaction with technology is altering the way our brains function, potentially dampening some instinctual responses while enhancing others. As technology becomes more embedded in our lives, striking a balance between leveraging these tools and maintaining core human values like empathy and compassion becomes critical. This balance; this nuance, this deep thinking...is absolutely required if we are going to coexist with tools that are better than us in some ways.

It is plausible that continued technological integration may further evolve or alter our brain's structure, potentially diminishing the influence of our reptilian brain or creating new neural pathways. Future interfaces, particularly those involving direct brain-computer interfaces, might lead to the development of new 'instincts' based on our interaction with technology.

Primitive us, God-like tech. Part 2

Blogging Writing published on Tuesday, May 14, 2024 (one year, one month, and 2 weeks ago)

In today’s context, the reptilian brain's influence can be observed in our automatic responses to threats (fight or flight reactions), competitive instincts in social and professional environments, and the subconscious adherence to established routines and rituals. This part of the brain drives our most deep-seated survival behavior, which can manifest in modern settings as aggressive behavior in traffic, assertiveness in boardroom negotiations, or the territoriality sometimes displayed in communal or shared spaces.

While the reptilian brain responds with primitive, survival-oriented instincts, the more recently evolved parts of the brain—the limbic system and the neocortex—handle complex emotions and higher order thinking. These layers of the brain enable humans to engage in reasoned decision-making, empathy, and moral reasoning, which can often be in conflict with the more rudimentary impulses driven by the reptilian complex. For instance, while our reptilian brain might urge us to react aggressively to a perceived threat, our higher brain functions allow us to assess the situation rationally, often leading to more measured and considered responses.

Primitive us, God-like tech. Part 1

Blogging Writing published on Monday, May 13, 2024 (one year, one month, and 2 weeks ago)

The reptilian brain is structurally simple and focused on primal urges, it governs vital functions necessary for survival such as heart rate, breathing, and body temperature. Beyond these physiological roles, the reptilian brain is responsible for more instinctual behaviors linked to aggression, dominance, territoriality, and ritualistic displays, which were critical for the survival and reproduction So much behavior can be attributes to sexual / reproductive mating rituals.... of early vertebrates.

In modern humans, the influence of the reptilian brain is evident in our automatic and subconscious reactions to stimuli. It plays a crucial role in scenarios that call for immediate, impulsive reactions, such as the fight-or-flight response when faced with danger. Despite the evolution of more sophisticated brain structures like the limbic system and the neocortex, which handle emotions and higher reasoning respectively, the reptilian brain's fundamental instincts still underpin much of human behavior, subtly influencing our decisions and actions in ways we are often unaware of.

Despite the meteoric rise of technology that grants us seemingly god-like powers—from reshaping genetics to creating artificial intelligence—the primal aspects of our nature, as embodied by the reptilian brain, continue to exert a significant influence on our behavior and development. These ancient impulses, etched deeply into our neural architecture, persist amidst the waves of digital and genetic transformations, reminding us that our evolutionary past remains a cornerstone of our identity. This is part 1 of an essay which argues that understanding this interplay between our primitive instincts and our advanced technological capabilities is essential for navigating the future, as it shapes not only individual choices but also the trajectory of society as a whole.

Genres of science fiction

Writing published on Thursday, May 09, 2024 (one year, one month, and 3 weeks ago)

...Essentially that science fiction must have plausible science! He eviscerates most science fiction as fantasy, and includes a disdain for the latter in no uncertain terms!

I think this book is a love letter to science fiction. That it is so unforgivingly harsh I think speaks to a desire for writers and publishers to seek out and create good science fiction - a genre that can uniquely explore what it means to be human in incredible ways. I think what Lem is asking us to do is treat the genre with respect and gravitas; not to be lazy or to write fantasy and call it science fiction. In this book, we are treated to a literati who has glimpsed what science fiction can be and points to the trash heap (his words) of current science fiction which is churned out for mass profit and mass consumption.

Each of these genres deserves depth:

  • Hard Science Fiction
  • Soft Science Fiction
  • Space Opera
  • Cyberpunk
  • Steampunk
  • Biopunk
  • Military Science Fiction
  • Time Travel
  • Alternate History
  • Apocalyptic and Post-Apocalyptic
  • Space Western
  • Superhero Fiction
  • Dystopian
  • Utopian
  • Cli-fi (Climate Fiction)

Lem might say: Speculative science fiction, though often liberated from the stringent requirements of hard science, should not be dismissed as mere fantasy. It offers a canvas to explore the more abstract, often philosophical questions that hard science may skirt around. This genre allows us to ponder 'what if' without the tether of current scientific limitations, exploring the vast potential of human imagination. However, it requires a delicate balance—to wield unreality with care, ensuring that it serves as a tool to reveal deeper truths about our reality, rather than an escape from it. For in these narratives, the focus shifts from how things happen to why they might happen, and what that means for humanity.

Archetypes

Writing published on Tuesday, May 07, 2024 (one year, one month, and 3 weeks ago)

  • The Hero - Often the protagonist, who seeks to fulfill a necessary quest and typically exhibits bravery and self-sacrifice.
  • The Mentor - Provides guidance, training, and magical gifts to the hero. Represents wisdom and helps the hero to start their journey.
  • The Threshold Guardian - Tests the hero before they face great challenges. Can be a literal or metaphorical barrier to progress.
  • The Herald - Appears to announce the need for change or the onset of a quest. They push the hero towards the adventure.
  • The Shadow - Represents the darker force within or outside the hero that they must overcome. It often embodies their inner conflicts or the main antagonist.
  • The Trickster - Uses wit more than strength; challenges the status quo; often comedic, bringing lightness to a narrative but may have profound insights.
  • The Shapeshifter - Blurs the line between ally and enemy. Often keeps the hero guessing about their true intentions and loyalties.
  • The Ally - A companion who travels with the hero, supporting and aiding them in their quest.
  • The Orphan - Begins from a position of social or familial exclusion, seeking to belong or form connections. Often drives the narrative through empathy.
  • The Ruler - Symbolizes power and control; can be a leader or antagonist, shaping the direction and structure of the society within the story.
  • The Caregiver - Altruistic and nurturing, this archetype is often seen as the protector or the one who sacrifices for others. They provide physical or emotional support and healing.
  • The Rebel - Challenges authority or the status quo, often embodying revolution or transformation. This archetype is driven by a desire for change.
  • The Lover - Focuses on intimacy, romance, and passion. They seek harmony in relationships and are often driven by the desire for sensory pleasure or emotional fulfillment.
  • The Creator - Imaginative and visionary, this archetype is driven to create something enduring and meaningful, often an artist, writer, or inventor.
  • The Jester - Lives in the moment with full enjoyment, making others laugh, and often helps to see the absurdity of life's situations.
  • The Sage - Seeks truth and shares knowledge, often acting as a guide or advisor. This archetype values wisdom and insight.
  • The Innocent - Embodies purity, goodness, and optimism. Often naive, they seek happiness and do their best to avoid wrong.
  • The Explorer - Never happy with the status quo, always seeking to discover new things, places, or ideas. They are driven by a quest for a new experience.
  • The Magician - Wields significant power, often through knowledge of the universe's fundamental laws. They seek to transform or transcend ordinary experiences.
  • The Outlaw - A rebel archetype on the fringe of society. They don't just challenge authority but actively work against it, often living by their own moral code.
  • The Everyman - This archetype is relatable and reflects the normal person. They represent the common virtues and the collective normality of everyday life.
  • The Warrior - A champion, soldier, or fighter who represents strength, perseverance, and honor. They are focused on winning battles and overcoming obstacles.
  • The Martyr - Someone who suffers or sacrifices for a cause, often holding onto their beliefs or values in extreme conditions.
  • The Femme Fatale - A mysterious and seductive woman whose charms ensnare her lovers, often leading them into compromising, dangerous, and deadly situations.
  • The Orphan/Regular Person - Seeks to fit in or join others on the journey; they represent the normal person thrown into extraordinary circumstances.
  • The Damsel - A character who is placed in distress and requires rescue. While often criticized for promoting a passive role for women, modern reinterpretations can show complexity and strength.
  • The Monster/Villain - Represents our darkest desires and can be a force of evil or simply misunderstood. They oppose the hero and reflect societal fears.
  • The Wise Fool - Exhibits wisdom and insight through what appears to be foolish or bizarre behavior, often seeing the truth when others do not.
  • The Seducer - Uses power through charisma and manipulation, drawing others into their web with charm and leading them astray.
  • The Patriarch/Matriarch - A family or group leader who exerts control and protection over a family or community, sometimes to the point of being oppressive.

A lot of writing lately

Blogging Computer Science Personal Writing published on Thursday, May 02, 2024 (one year, one month, and 4 weeks ago)

So. Much. Writing. I can't wait to share a project I'm working on. It should be ready by next February, and I am very hopeful it will be impactful and important.

In addition to mega-secret project alpha, I've also been developing a far-future science fiction setting lately. Most of the content is here. The idea is to create a universe in the year 7019 - far enough in the future to think and imagine and play with ideas related to who we might become. I'm folding in a space trading game I started working on a while ago (link here) but I haven't started to assign values or abstracted the ideas yet. I am hoping for a book, a computer role playing game, and a table top role playing game.

I start with vague ideas about who we are and cycle out to think about 100 years, 300 years, 1000 years. It's a really fun exercise. I have been thinking about history, and how we have changed (and haven't changed). It's helpful to extrapolate our past into our future.

Of course I have species, planets, events, factions, etc... What I really want to capture is the variety within a setting. It's challenging because the broader the scope, that harder it is to understand what that scope means. I think most science fiction is rather one dimensional - star trek focuses tightly on a bridge and a top-down command structure. Although star trek references a big universe, it only portrays a narrow window of it most of the time. My favorite types of stories are when there is a switching between micro and macro. Tom Clancy's book, Red Storm Rising did this beautifully.

Lots more to say, but I'm thinking a lot about the future these days.

The volume of the fringe…more science fiction

Blogging Writing published on Monday, March 04, 2024 (about one year, 3 months, and 4 weeks ago)

More thinking about the future, and science fiction.

The United States has about 330 million people and about 231 million social media users (about 311 million people are connected to the internet). To the extent people use social media and the internet, they can be known. They can be observed in an intimate, private, and near-total manner. They can be tracked, followed, and influenced. There is probably a relationship between amount of screen time and amount of potential influence

Much of this nudging, influencing, sequestering, and controlling is in service for the free market. But there is enough political and social nudging to raise a wondering.

100 years from now, if the free market is still free marketing, what might the visibility into our lives look like? Might there be a backlash where people disconnect and delete everything? Might social engineering divorce us so much from our nature that we decide not to be socially engineered?

Or perhaps, might the consequence of control be so high that a shadow war is fought for attention. That activists, social workers, and radicals do everything they can to subvert a message of "more and buy". Might monk-like religious / spiritual pull us away from devices and into actual communion and connection with each other.

Science fiction shouldn't ignore trajectory. And in our current world, the trajectory of personal, technological, and privacy is profoundly impactful.

I end with a quote from which I mostly agree with:

The real problem of humanity is the following: We have Paleolithic emotions, medieval institutions and godlike technology. And it is terrifically dangerous, and it is now approaching a point of crisis overall.

Edward Wilson

Transcend and Include - the future will have part of the past in it….

Blogging Writing published on Saturday, March 02, 2024 (one year, 3 months, and 4 weeks ago)

Science fiction asks us to imagine a possible future, often fantastic (sometimes quite dark) and live amongst the people who take it as normal.

So the good and the bad that accompany us now will most likely accompany us in the future - but it will be different. This is why I think many science fiction writers use a cataclysm as a device to purge the past. But we are still who we are - and moving humans through a crucible of change will not erase our fundamental nature. Aldous Huxley's book Brave New World addresses this through the London Hatchery and Conditioning Center - where this inconvenient human nature is purged and genetically altered. A terrifying future. The point here is science fiction should consider the way humans might evolve in the future.

Ken Wilber's integral theory, which posits that each stage of evolution transcends yet includes aspects of previous stages, provides a compelling lens through which to examine the trajectory of human progress as depicted in science fiction narratives. This philosophical framework suggests that as humanity evolves, it does not simply cast aside its former self but rather integrates and builds upon it, leading to increasingly complex and inclusive forms of existence. Science fiction, in its exploration of future possibilities, inherently grapples with this concept, presenting visions of humanity that are at once radically transformed and deeply familiar.

In considering how science fiction can incorporate Wilber's ideas, it's useful to explore the notion of developmental stages within human societies and individuals that are depicted in these stories. For instance, the genre often portrays technological advancements not just as tools but as catalysts for new forms of consciousness and social organization. This mirrors Wilber's assertion that each new stage of evolution brings about a greater capacity for complexity and empathy, suggesting a future where humanity's technological growth is matched by its moral and spiritual development.

However, science fiction also serves as a cautionary tale, warning against the potential pitfalls of neglecting the "include" aspect of Wilber's principle. Stories like H.G. Wells' "The Time Machine" illustrate a future where humanity has split into two distinct species, the Eloi and the Morlocks, representing a failure to integrate the spectrum of human capabilities and impulses. This bifurcation is a direct consequence of societal choices that favor technological advancement at the expense of holistic development, underscoring the importance of integrating all aspects of human nature as we move forward.

Moreover, science fiction challenges us to consider not only how we might evolve but also how we ought to evolve. Octavia Butler's "Parable" series, for instance, delves into the concept of adaptability as a form of evolution, positing that the future of humanity lies not just in our physical or technological augmentation but in our ability to empathize, cooperate, and coexist with each other and with our environment. This reflects Wilber's idea of integral evolution, where the transcendence of previous stages of development includes a moral and ethical dimension, suggesting that our future evolution will be as much about who we choose to become as it is about the external forces shaping us.

In essence, science fiction, through its speculative lens, provides a rich milieu for examining the trajectory of human evolution in light of Ken Wilber's integral theory. By envisioning futures that both transcend and include our current state, the genre offers insight into the potential paths humanity might take, highlighting the importance of holistic development that encompasses not just technological prowess but also moral and spiritual growth.Spiritual may not directly equate to religious here... As we stand on the cusp of significant societal transformations, perhaps accelerated by technological advancements, the reflective mirror held up by science fiction becomes an invaluable tool for navigating the complexities of human evolution, urging us to consider not just what we can become, but what we should aspire to become.

This essay is my ideas and my thoughts. I used a LLM to help me edit and form parts of it

What about the future, what about science fiction?

Blogging Writing published on Friday, March 01, 2024 (one year, 4 months, and one hour ago)

I'm not sure of course, but it is really fun to think about it.

I am a voracious reader and consumer of science fictionEven early we encounter a problem! The definition of science fiction, science fantasy, and fantasy is pretty nebulous. There are sub-genre's of science fiction. More on that in a bit.. Books, movies, TV shows, video games and RPG's all shape and inform my view of science fiction. I note a few common themes in science fiction:

  • a near-future dystopian hell-scape (fallout)
  • a dystopian far-future empire (warhammer, maybe Starfield)
  • a cyberpunk, hyper-modern world (William Gibson, and Cyberpunk 2077)
  • an idealized clean-future federation (star trek)
  • a dark dystopian steampunk-like setting (China Miéville and Perdido Street Station)
  • a feudal / science-fictiony setting like Star Wars
  • a science fantasy - where magic / multiple races are present (starfinder)
  • a near-future apocalyptic / hard science fiction (Seveneves by Neal Stephenson)
  • a far future, fantastical world (Stanislaw Lem)

We could almost say for every piece of science fiction work, there is a different vision / idea about what the future will be like. This is very interesting because thinking about the future, imagining the future, putting ourselves into a future can start us building towards it.

Of course in all science fiction we explore what it means to be human in a very different culture, place and context. Science fiction is a unique genre allowing this sort of placement-of-self.

In the next few posts, I will be exploring ideas around science fiction, and ask for your thoughts and ideas as I do so.

Sabbatical update 2

Blogging Personal Teaching Diary Update published on Friday, December 01, 2023 (one year, 7 months, and 3 hours ago)

Deep Dive into AI and Machine Learning

My fascination with AI and machine learning has only grown during this period. I've been thoroughly engaged in understanding complex concepts such as Manhattan distance, greedy algorithms, and the minimax strategy. My sabbatical has also been an opportunity to learn about knowledge graphs, uncertainty in data, optimization techniques, and neural networks. These areas are fundamental to understanding how AI and machine learning systems learn and make decisions. This knowledge will be invaluable in my teaching and ongoing professional development. It's been refreshing to delve into these areas, and I'm always eager to discuss and exchange ideas with anyone interested.

I'm starting to design an ASW-exclusive Local Large Language Model (LLM) designed specifically for our students' needs. This initiative aims to harness the power of AI in education, offering a revolutionary approach to learning support. The idea is to develop a local LLM that is fine-tuned and optimized to understand and cater to the unique educational requirements of our students at ASW. This model will not be a generic AI tool, but a specialized, school-specific system that comprehends the nuances of our curriculum and the common challenges faced by our students. It will be a local system (not internet connected) and meet all the current legal guidelines being proposed in the EU for using AI in education. The diagram has been helpful to guide my thinking about what an educational LLM should consider:

Work with the IB and Travel to The Hague

Part of my sabbatical has been dedicated to contributing to the International Baccalaureate (IB) organization. Recently, I returned from a productive visit to The Hague, where I collaborated on several initiatives related to the new IB computer science curriculum. This opportunity has allowed me to apply my expertise in an international context and contribute to shaping global education standards. I learn so much about the IB in these visits, and they always enrich my understanding of computer science.

Personal Time with My Chocolate Labrador

On a personal note, my chocolate labrador (Obi-Wan MackObi) , who is now 5 months and a healthy 23 kilograms, has been a constant and joyful companion. Taking care of him has brought much-needed balance and happiness to my days. He is just starting his teenage years now, and that's ...pretty...cool...most...of...the...time... He likes to eat things.

Innovative Educational Endeavors

One of my key projects has been the development of virtual mini-courses for students. These courses are designed to empower students by offering them the flexibility to choose what and when they learn within the course structure. This initiative aims to enhance the learning experience and adapt to the evolving educational landscape. Students will be able to choose how they want to proceed in the course, and multiple pathways will help facilitate interest in different areas of computing. I'm currently offering 4 languages (PHP, Python, Javascript and Rust) and 4 pathways (business, biology/science, computer science and software engineering). At some point I may ask to split these into different courses, but I am quite excited to design, develop and trial these pathways.

"Date Night with Your Mac" Presentation

Looking ahead, I am preparing for the "Date Night with Your Mac" presentation in January. This event will focus on the practical, nuanced and discerning use of Large Language Models (LLMs) in education. Additionally, I plan to explore some practical legal aspects related to technology use in the classroom. One of the main points I will be making is the way we can use LLM's to reduce the amount of time we spend doing administrative tasks.

As I continue on this sabbatical journey, I am grateful for the time to grow, learn, and contribute to the field of education and AI. I look forward to bringing back a wealth of knowledge and experiences to share with my colleagues and students. I miss you all very much.

Sabbatical update 1

Personal Teaching Diary published on Thursday, August 31, 2023 (one year, 10 months, and 14 hours ago)

Connections and collaborations

The ACM is the Association of Computing Machinery. It’s the world's largest educational and scientific computing society.

I’ve been reading, parsing and communicating with members of SIGCSE - the ACM’s special interest group for computer science education. This learning has been deeply satisfying. I look forward to summarizing and presenting “best practices of K-12 computing education”. Needless to say, ChatGPT, AI, and large language models have captured the attention of this community.

Core learning tools

Moving on to the classroom tools, I've been focusing on making Git and Visual Studio Code (VSCode) more accessible for our students. VScode is a code editor and Git is the industry standard version control system that helps keep track of changes in code amongst many people. With the new materials I’ve developed, I'm confident our students will be committing and pushing code like they were born to do it - and be better prepared to work with modern tools in University and the real-world. I should also mention Git is a superb platform to use as a portfolio of student work and learning.

Modernizing PHP

In my continued quest for modernization, I've dived into the world of PHP Object-Oriented Programming (OOP), MVC (model-view-controller) architecture, and strictly typed PHP. This will enable our students to be more industry-ready and familiar with modern development practices ( all of which are transferable between languages). PHP has been in the top 10 of all programming languages for more than a decade, and is still used by about 78% of all websites in the world. I first learned PHP 20 years ago, so this is a welcome and refreshing upskill. Next up: javascript, rust, and python.

Working with the IB

As for my collaboration with the International Baccalaureate (IB), I'm still deeply involved in fine-tuning the new computer science curriculum. While I can't spill all the beans just yet, I'm eagerly awaiting the day I can share these substantial updates with you.

Obi-Wan MacKobi

A personal update. We’ve added a new member to our household: Obi-Wan, a 9-week-old chocolate Labrador. He’s both a delight and a handful, keeping me active when I’m not buried in research or code. He’s snoring at my feet as I write this; a little bundle of love.

The future

The next big chunk of learning for me is machine learning, artificial intelligence, and building a large language model that can run locally at my school (does not need an internet connection to work). The discussions I’ve seen at every level of the IB, ACM, and in the popular press has reinforced in me the need to capture and use this technology effectively for our benefit. Lot’s more to say about this.

The future of high school computing

Computer Science Teaching Diary Writing published on Monday, July 03, 2023 (one year, 11 months, and 4 weeks ago)

This article will discuss the importance of differentiation between software engineering and computer science in secondary (high school) educational settings and the impact of large language models on the former. Without correct understanding of computing, we can't fully appreciate how LLM's change it.

In the 2020 Computing Curricula recommendation, the Association for Computing Machinery (ACM) states that within the domain of computing, there are five primary disciplines. The reason it is important to understand this is because while there are some shared characteristics between these disciplines, they are different enough to be taught as distinct disciplines.


  1. Computer Engineering (CE)
  2. Computer Science (CS)
  3. Information Systems (IS)
  4. Information Technology (IT)
  5. Software Engineering (SE)

To acquire a deeper comprehension and appreciation of these disciplines' distinctions and interconnections, please refer to the following documents:


  1. Overview of Computing Fields
  2. Field Characteristics
  3. ACM 2020 Computing Curricula Recommendations

For some more serious approachesThere is a lot of noise and hype around AI in education - I tried to find respected institutional research to help frame LLM's within education. to AI in education research, please refer to the articles below:

  1. Artificial Intelligence and the Future of Teaching and Learning
  2. Artificial intelligence and the Futures of Learning
  3. The Position of Artificial Intelligence in the Future of Education: An Overview

High schools (and even some universities) often blur the lines between software engineering and computer science, using these terms interchangeably and without recognizing their essential distinctions When your students are applying to university please - I'm begging you - insist they read the actual courses they will be taking. . This conflation creates an ambiguous academic journey for students entering the computing field. While there is some overlap between the disciplines, clearly defined tracks are important in guiding students along the right trajectory.

In numerous educational institutions, students are exposed to programming (akin to software engineering), robotics (related to computer engineering), and occasionally resource management and abstract data structures (pertaining to computer science). Often, the overarching terms used for this education are "computer science", "technology" or "computers".

To make the distinction clearer and prepare students for the evolving world of computing, it is essential to design two distinct tracks within high school computing:

Track 1: Software Engineering

The significance of this track stems from the transformative impact large language models (LLMs) like ChatGPT have on problem-solving through programming. Students should be taught the fundamental coding concepts such as variables, control structures, and data structures. However, they must also learn to harness the power of LLMs in solving problems. By integrating LLMs, students can explore innovative ways to create solutions. Essentially, software engineering should focus on basic programming, computational thinking, and the astute utilization of LLMs. I include tools like co-pilot, tabnine, and YouCompleteMe, which use LLM-like technology to vastly improve programming output.

Track 2: Computer Science

The second track should concentrate on the foundational aspects of computer science. This encompasses theoretical data structures, advanced mathematics, and computing theories. The core areas of study within Computer Science include artificial intelligence, computer systems and networks, security, database systems, human-computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics, and the theory of computing.

Conclusion

With the advent of LLMs, it is imperative for the education system to adapt and prepare students for the dynamic computing landscape. While LLMs present extensive possibilities for problem-solving, it is also crucial to nurture the next generation of computer scientists who will forge cutting-edge tools. Equipping students with the right skills and knowledge will be an important differentiator for students entering college and universities.

This article was supported with the use of chatGPT. I used the prompt "please provide your opinion on this article" and then I pasted in the article.

Project management tools

Blogging Personal Teaching Diary Writing published on Monday, April 10, 2023 (2 years, 2 months, and 3 weeks ago)

The best advice I've heard about project management tools is they should help you manage your projects, and stay out of the way for everything else. I'm sure there is some witty corollary here...That is, the extent to which a project management system is useful is directly linked to how well it does that one job it should do.

I investigated several project management tools, first opting for locally hosted, open-source projects (my preferred solutions for most problems). I got open project working, but the UI felt sludgy / kludgy. I then joined monday.com and love the UI / ease-of-use but their pricing model doesn't accommodate 1 single user. There is a minimum for three person teams - which is expensive.

I settled on Trello. Which has everything I want and a pricing model I like.

My project management plan for my sabbatical is on Trello.

Customers will only buy your product if they believe that the value they’re receiving is greater than the price they’re paying; otherwise, why would they pay?

Warren Buffett

Sabbatical planning

Blogging Teaching Diary Writing published on Monday, April 03, 2023 (2 years, 2 months, and 4 weeks ago)

Next year (school year 2023 - 2024) I will taking a sabbatical (proposal here). 14 years at my current school (American School of Warsaw), 22 years in education = time for some reflection and a recharge. Many of the technical skills I use and teach every day I first learned more than 20 years ago. Technical languages, software development practices, and development tooling has changed quite a bit in the last 20 years! With the rise of large language models and their ilk, it looks like the next 20 years will be even more interesting. I don't think the practice of teaching has changed as rapidly as technology but it also has benefited from years of researchI wonder how much has changed about imparting knoweldge, skills, and lessons in the last 20 years....

Other than technical upskill / refresh I am also looking for some time for deep reflection. I am a fan of a book by Daniel Kahneman, Thinking Fast & Slow. Taking the time to consider and thoughtfully and deliberately act is wise. I still feel quite full of motivation, ambition and drive. But at 53 years old, I'd like to move deliberately and maximize meaningful impact.

By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest.

Confucius

A mostly terrible time

Blogging Writing published on Sunday, March 26, 2023 (2 years, 3 months, and 6 days ago)

Being a parent brings the greatest joys and deepest pain. Recently our teenager has been struggling with things many teenagers struggle with On a good day being a teenager is hard... and it's just painful to see someone you love struggle. At the same time I appreciate and value struggle; some things you just need to learn the hard way. I suppose at that moment, just showing up and loving you kid is the best you can do. My instinct is to protect, prevent, and cover my daughter from pain and painful experiences. But in that difficulty arises strength and courage; and it is something each of us must find ourselves.

If your goal is to avoid pain and escape suffering, I would not advise you to seek higher levels of consciousness or spiritual evolution. First, you cannot achieve them without suffering, and second, insofar as you do achieve them, you are likely to be called on to serve in ways more painful to you, or at least demanding of you, than you can now imagine. Then why desire to evolve at all, you may ask. If you ask this question, perhaps you do not know enough of joy.

M. Scott Peck

Regular Update

Update published on Sunday, March 12, 2023 (about 2 years, 3 months, and 3 weeks ago)

  • Laravel - I'm writing a crm-type-app for small business folksThis is really about learning Laravel and that ecosystem.
  • Wargaming for better decision making - I'm finding a group
  • I moved all web stuff to a dedicated web server, sill loving Linode pretty hard
  • Getting sabbatical plans finalized
  • Changed CSS of my site using Edward tufte-inspired CSS. That man is one of my heroes.
  • Grading and marking papers - my students hand-write most of their stuff, and it takes a long time to process this
  • Secret Projects A, B and C
  • Helping mom get organized to move to a new place
  • Desigining a "tank-identification party" with my friends

Success usually comes to those who are too busy to be looking for it.

Henry David Thoreau

on postfix…

Blogging Personal published on Friday, February 24, 2023 (2 years, 4 months, and 6 days ago)

I've been wrestling with postifx, MX records, DMARC and other such nonsense lately. Oh, the pull to simply pay someone to do the work for me is great! However I am determined to setup a dedicated email server for all my various domains. This learning is not easy and requires effort. I meet failure often, in fact we are becoming rather good friends over this whole thing.You know, THAT kind of friend.

However, in each unsuccessful attempt I learn something new, and my goal of owning the system remains clear. I really understand how main.cf works, I really see how messages are routed. I learn the guts of /var/log/mail.log I'm learning, and if you don't mind me saying, I love it. 

The English language . . . becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.

George Orwell, “Politics and the English Language”

The faltering

Writing published on Monday, February 20, 2023 (2 years, 4 months, and one week ago)

Being brave and being brave. Doing the right thing. The whole nonsense of "the greater good" for the greater good - which, to be honest, is for the greater good.  A sisyphean task; should we surrender to the wants of others or live in the self-centeredness of our own ego?

The answer lay in the wise words of Ken Wilber I think he's wise. who posited the truth of things is in both the ascendent and the descendant. That is; to shun the descendent in the name of godly virtue is an error. But also, to practice gaia Sex Magik without abandon is also an error. That balance seems a prescription best filled regularly.

Dedicated servers for dedicated things

News published on Saturday, February 18, 2023 (2 years, 4 months, and one week ago)

I run a web server and an email server (MTA, MUA and MSA) on one virtual machine. I have learned this is probably a mistake. I'm slowly changing my setup so I have one server do one thing; an email server should just do email. A web server should just do web stuff. The problem is the more services running on a server, there seems to be a disproportionate rise in complexity when an issue emerges. I would imagine for an experienced and seasoned system administrator, this is obvious. But I am learning, and curious, and always exploring things. Today that's what I've learned. 

Entity-Component-System 〈ECS〉

Computer Science Teaching Diary published on Thursday, February 02, 2023 (about 2 years, 4 months, and 4 weeks ago)

I've learned about the Entity-Component-System (ECS)


Obligatory chatGPT / wikipedia definition: ECS is a pattern for game development that provides a way to organize and structure game logic. It is a way of designing games that separates the data (components) and behavior (systems) of entities.

In an ECS, entities are objects in the game, such as characters or enemies. Components are data structures that define the properties and attributes of an entity, such as its position, health, or sprite. Systems are responsible for updating and manipulating the components of entities.

The separation of data and behavior in an ECS allows for more flexible and modular game development, as it is easier to add or change components and systems without affecting the rest of the code. It also allows for better performance and scalability, as systems can be optimized for processing specific types of components.

Overall, the ECS pattern provides a clean and efficient way to structure game logic, making it a popular choice for game development, especially for large and complex games.

Entity Component System (ECS) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components.

ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy, but by the components that are associated with it. Systems act globally over all entities which have the required components.


Entity: An entity represents a general-purpose object. In a game engine context, for example, every coarse game object is represented as an entity. Usually, it only consists of a unique id. Implementations typically use a plain integer for this.

Component: A component labels an entity as possessing a particular aspect, and holds the data needed to model that aspect. For example, every game object that can take damage might have a Health component associated with its entity. Implementations typically use structs, classes, or associative arrays.

System: A system is a process which acts on all entities with the desired components. For example, a physics system may query for entities having mass, velocity and position components, and iterate over the results doing physics calculations on the sets of components for each entity.

The behavior of an entity can be changed at runtime by systems that add, remove or modify components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies often found in Object Oriented Programming techniques that are difficult to understand, maintain, and extend. Common ECS approaches are highly compatible with, and are often combined with, data-oriented design techniques. Data for all instances of a component are commonly stored together in physical memory, enabling efficient memory access for systems which operate over many entities.


Need a procedurally generated country?

Computer Science Teaching Diary published on Sunday, January 29, 2023 (2 years, 5 months, and one day ago)

Not much sure how much better you could do than this: 

https://github.com/bmackenty/s...

DEIJ - part one

Personal published on Wednesday, January 25, 2023 (2 years, 5 months, and 5 days ago)

Obligatory chatGPT reference: 

Diversity refers to the variety of differences among individuals within a group or population. This can include differences in race, ethnicity, gender, sexual orientation, socioeconomic status, age, physical abilities, religious beliefs, political beliefs, or other ideologies. Diversity can also include differences in personal experiences, values, and perspectives. The goal of diversity is to create an inclusive environment that recognizes, respects, and leverages these differences to create a more equitable and equitable society.

Within this lay extraordinary scope. I've always thought to measure & evaluate each person equally, irregardless of their gender, sexuxal orientation, race, SES, age, etc... The truth is I've met truly beautiful human beings from every corner of life, and the obverse is also true. 

I believe to know someone, that is, who someone is takes time. That careful measure and often conversation and time are required to know someone. That the enemy of truth is haste. That a glimpse does give us perspective. That when I rush to judgement, when I hurry to act I often err. This is why the slow work movement appeals to me so; as a seeker of truth, it takes time.

There can be parts of someone I love and parts I don't care for. That nuance, discernment and careful thinking can find a person.

What could be more diverse than all of us?

Current thinking about chatGPT

Computer Science Teaching Diary published on Sunday, January 22, 2023 (2 years, 5 months, and one week ago)

  1. Ensure students understand the technical boundaries
  2. Teach students to ask precise questions (with follow-up questions if necessary)
  3. Teach students to evaluate answers

  4. As teachers we should encourage students to ask all questions via a text interface (so we can capture questions) and fine-tune the model to reply. The goal is to have a "reasonably good" assistant that can support students as they work through content required by the syllabus. The input for questions should be textual / copy-paste / and spoken word. 

Writing a report card comment generator

Computer Science Teaching Diary published on Friday, January 20, 2023 (2 years, 5 months, and one week ago)

I wrote a report card generator. The GitHub repo is here. It's version 0.1 but I used it and it saved me some time. There are many things to add and edit, but perfection is the enemy of good (I'm not sure I got that quote right). 

I'm hoping to eventually offer it as a web service for students and parents to use so we can co-create a story about student learning. 

Multiple versions of PHP on the same web server

Linux Personal published on Wednesday, January 18, 2023 (2 years, 5 months, and one week ago)

For better or worse I administer my own web server / web-services. I actually quite enjoy this, but I'm not a professional, which means sometimes I learn things the hard way, and sometimes I make mistakes. I recently installed an invoicing system, which needed PHP 8.1+. Most of my web applications run on 7.4, specifically mediawiki. I would prefer it if everything was on 8.1 and I'm slowly getting there. 

I learned about a nifty new tech PHP-FPM, which enables (among other things) multiple versions of PHP on a per-site basis. Which is cool. The end goal is to (of course) use only one version of PHP but for now I am enjoying the tinkering. 

#dungeon23

Personal Twitter published on Sunday, January 08, 2023 (2 years, 5 months, and 3 weeks ago)

As I am a fan of procedurally generated content (and making procedurally generated content), I've decided to build different systems and eventually combine them so people can have rich, varied and different dungeons and settings. The link to the github repository is here. I'm following a basic schedule here:

• Sunday — Settlement description, a village or a town. Could also be a bandit camp if that strikes your fancy

• Monday — Environment description. Think the local weather, geology, flora and fauna

• Tuesday — More in-depth settlement description

• Wednesday — Culture description of something fun or interesting about the local people. Something to make them stand out

• Thursday — NPC description, someone important or interesting on the island

• Friday — Faction description of either a new or existing faction. Be sure to make ties between factions and peoples

• Saturday — A rumour about something from the past week

Mastering uncertainty: A predictive processing

Games in education Practical Advice published on Friday, January 06, 2023 (2 years, 5 months, and 3 weeks ago)

Yet, current models struggle to explain why such balanced challenges best afford these experiences and do not straightforwardly account for the appeal of high- and low-challenge game genres like Idle and Soulslike games. In this article, we show that Predictive Processing (PP) provides a coherent formal cognitive framework which can explain the fun in tackling game challenges with uncertain success as the dynamic process of reducing uncertainty surprisingly efficiently. In gameplay as elsewhere, people enjoy doing better than expected, which can track learning progress. In different forms, balanced, Idle, and Soulslike games alike afford regular accelerations of uncertainty reduction. We argue that this model also aligns with a popular practitioner model, Raph Koster’s Theory of Fun for Game Design, and can unify currently differentially modelled gameplay motives around competence and curiosity.

Full article (locally hosted) here.

Linked article here.

Our Wisla

Bushcraft published on Sunday, January 01, 2023 (2 years, 5 months, and 4 weeks ago)

Walking along the embankment of the Wisla; unseasonably warm weather and yet the unmistakable signs of winter. In the distance you can see the Wistula river. 

The bear

Writing published on Friday, December 30, 2022 (2 years, 6 months, and one day ago)

The bear had verifiable reports of Great Deeds. The bear had big muscles, and was physically huge. At one point, the bear's territory was massive; entire nations lived under his rule. He had untold and unimaginable riches. His music, song, and dance were elevated to the highest places. His science and industry were potent. 

All of this led to great pride for the bear. He would rightly walk with his head high and his chest out. He could exercise influence. He could will something and make it happen. Smart, strong, and competent minions worked hard to actualize the bear's goals. People feared the bear, and this was his source of power and control over many people. Some people respected the bear, some people (comfortable and warm) ignored the bear. 

But somewhere, along the way, perhaps as he became old, the bear became sick. So enamored with his power and past, he didn't support and make ready young leaders to replace him. He didn't adapt or change. He fought wars that had no business being fought. He fell into his cave; afraid of losing his power? 


He could be great, of course, but he isn't, anymore. 


setting up a podcast

Personal published on Tuesday, December 27, 2022 (2 years, 6 months, and 4 days ago)

In the myriad choices and sea of information we are forced to clarify greatly our goals, objectives and ideas. This process of clarification is truly wonderful. 

Merry Christmas!

Personal published on Sunday, December 25, 2022 (2 years, 6 months, and 6 days ago)

Celebrating Christmas, giving and getting gifts, connecting with family, listening to music, eating food, and appreciating the holiday season. The best I can do is to describe the area around Christmas; the outline of a shape that has none. The coming together. 

Building an LMS (or virtual learning experience) - part 3 of 3

Teaching Diary published on Wednesday, December 21, 2022 (2 years, 6 months, and one week ago)

My first moodle course is almost complete, introduction to programming languages. This has been a long process, but in the daily editing and revision I am pleased with the overall outcome. I'm sure more activities and resources will be added as students provide feedback, but now this course is "ready enough" for learning. I set up a badge for students to earn when they are done, and I have three assessments students must complete to demonstrate they understand this material at the right level.

I continually read how important building community is for online courses. I want this course to be as self-directed as possible, but I get how automated assessment misses subtle and nuanced points about the topic. Building this course has helped me focus on what I want the learning experience to be like; I suspect I will use this course in conjunction with my day-to-day teaching - but I want it structured so virtual students can derive maximum value from it. 

The good news is the first course is the most difficult (time intensive). But once created, I can re-use elements in other courses. And of course, once I create a digital asset, I can reuse (embed) it in other courses and other digital spaces.

Building an LMS (or virtual learning experience) - part 2 of 3

Teaching Diary published on Tuesday, December 20, 2022 (2 years, 6 months, and one week ago)

H5P is a plugin for existing publishing systems that enables the system to create interactive content like Interactive Videos, Presentations, Games, Quizzes and more. The problem with formal and structured learning on the internet is that it remains mostly read-only (or watch-only, or listen-only). H5P helps to solve this by enabling interactive assessment for almost any content. Please click here for many interactive examples.

This is a huge deal, but it wasn't until moodle and other LMS's incorporated H5P that teachers could track assessment for digital learning. This means the kind of learning students can experience and the kind of assessment data a teacher can have are exceptional. No longer do we just "watch a youtube and discuss" but we can add assessment and track that assessment for different topics. 

H5P helps us help students evaluate their understanding of a topic. 

Building an LMS (or virtual learning experience) - part 1 of 3

Teaching Diary published on Monday, December 19, 2022 (2 years, 6 months, and one week ago)

This is an entreatment I have oft repeated; focus on the verbs around learning rather than the nouns of technology. As I rebuild a virtual learning experience I am asking myself "How can I make this best for my students"

I'm building out some moodle courses - my hope is my students will be use this resource to independently learn about different topics within high school computing. I curate material for them and ask them to learn it. But the key differentiator here is assessment.  Anyone can watch a video, but to what extent do they understand it? By using forums, H5P assessment, and built-in moodle quizzes I can evaluate student understanding (and students can evaluate their understandings).  I'm still looking for a way to embed jupyter notebooks and auto-graders for code. 

...but whatever plugins and features I include all need to direct learning toward encouraging student interaction and collaboration, providing support and resources, and organizing content and activities.

The key points here are:

  1. Have clear learning goals: It's important to have a clear understanding of the learning goals and objectives for the virtual learning experience, and to design the experience around those goals. This might involve creating a lesson plan or course outline that outlines the topics and activities for each unit or module.
  2. Use a variety of teaching methods: Virtual learning requires a different approach than in-person teaching, so it's important to use a variety of teaching methods to keep students engaged. This might involve using video lectures, interactive activities, and small group discussions.

I have to think "to what extent will this course be an independent learning experience"? 

Giving students as much of a choice as possible is important, freeing me to focus on helping my students to solve problems - where there is the biggest bang for the buck for my students. 

Displaying courses in grid format on moodle homepage

Computer Science HOWTO Teaching Diary published on Friday, December 16, 2022 (2 years, 6 months, and 2 weeks ago)

On the front page of moodle when using the boost theme, there is a linear list of courses. If you want a grid of courses, you can use the suggestion from here, a plugin named filter codes. I tested this on moodle version 4.1 and it works perfectly. 

just trying to make it to vacation…

Blogging Personal published on Thursday, December 15, 2022 (2 years, 6 months, and 2 weeks ago)

Sadly, I have little of all of it. Many of my students are sick, and my energy levels are quite low. Ugh. 

Procedural fantasy weapon generator

Games in education Practical Advice Teaching Diary published on Tuesday, December 13, 2022 (2 years, 6 months, and 2 weeks ago)

Here is the file on github, enjoy. I had quite bit of fun making this. Here's some sample output: 

Long ago, during the age of Destruction, Gnomish smiths forged Yosyur Wargebas's exquisite crossbow. The wood on this weapon is constructed in a spiral-shaped combination of dark wood and exotic wood, it is clear careful and extraordinary craftmanship went into the creation. This weapon is a masterpiece of craftsmanship, and is a veritable work of art. You have +2 on any rolls to pick up romantic partners while holding this weapon. This weapon is sentient. Moving your hand near it, you can feel a vague sense of neutral uncertainty. For 30 years, this weapon was used as a table ornament in the modest home of Prince Fumbledick, who was unaware of its importance.

Long ago, during the age of Light, Dwarven smiths forged Vosgrolin Bloodshield's flaming scimitar. Elegantly crafted in a spiral-shaped combination of semi-precious gems and rare metals, it is clear careful and extraordinary craftmanship went into the creation. This weapon is aflame, and does 4d6 fire damage. This weapon is sentient. Moving your hand near it, you can feel a vague sense of neutral pessimisticness. This weapon was once stolen by a goblin. When the litch who owned the weapon found the goblin, he punished the goblin severely, which is why goblin soup is now a popular dish amongst evil wizards and litches.

Long ago, during the age of Doom, Dwarven smiths forged Erirnoick Orehead's exquisite whip. Elegantly crafted in a helix-shaped combination of rare stone and semi-precious gems, it is clear careful and extraordinary craftmanship went into the creation. This weapon is a masterpiece of craftsmanship, and is a veritable work of art. You have +2 on any rolls to pick up romantic partners while holding this weapon. This weapon is sentient. Moving your hand near it, you can feel a vague sense of unaligned uncertainty. This weapon was once wielded by a young Kawian apprentice, who later became a fearsome warrior.

As far as dinners go,

Writing published on Monday, December 12, 2022 (2 years, 6 months, and 2 weeks ago)

We enjoyed a wonderful social connection with friends last evening; a warm home - good food and soup on a cold night. There was much to discuss, and we covered many topics. Ostensibly we were there for the 5th birthday party of one of the boys but really, just to see friends. 

After the soup and food, after the fire outside in the snow, after the conversation - with our daughter asleep in the back seat of our car, I just felt...so filled...

Good company does a body good, indeed. 

chatGPT part 3: how do I know you know?

Computer Science Teaching Diary published on Saturday, December 10, 2022 (2 years, 6 months, and 3 weeks ago)

As a computing teacher I use standard written assessments with my students. Questions include different assessment objectives such as "state", "describe" and "explain". I also use small code problems where students must solve a problem and write an answer in pseudocode. There is an internal assessment that students write; worth 25% of their final grade students must solve a problem for a real client. This is mostly independent, and a place where students could use outside tutors to solve a problem. 

For any work outside of class, I will add oral component to the assessment.

According to chatGPT, 

Some key steps for structuring an oral exam for computer science include:

  1. Determine the goals and objectives of the exam: The first step in structuring an oral exam for computer science is to clearly define the goals and objectives of the exam. This will help to ensure that the exam is focused and that it effectively evaluates the student's knowledge and understanding of the material.
  2. Identify the key topics and concepts to be covered: Once you have determined the goals of the exam, you can identify the key topics and concepts that will be covered. This could include specific programming languages, algorithms, data structures, or key theories or ideas in computer science.
  3. Create a structured format for the exam: To ensure that the exam is well-organized and focused, it's important to create a structured format for the exam. This could involve dividing the exam into different sections, each focused on a specific topic or concept, or using a specific format (e.g. Q&A, presentation, problem-solving) to evaluate the student's knowledge.
  4. Develop a list of questions: The next step is to develop a list of questions that will be used during the exam. These should be focused on the key topics and concepts covered in the exam, and should be designed to evaluate the student's knowledge and understanding of the material.
  5. Plan for student evaluation and feedback: Finally, it's important to plan for student evaluation and feedback. This could involve using a grading rubric to evaluate the student's performance, providing written or verbal feedback to the student, or allowing the student to ask questions or provide feedback on their own performance.

Overall, the best way to structure an oral exam for computer science is to carefully plan and organize the exam, focusing on the goals and objectives of the exam and the key topics and concepts that will be covered. By following these steps, you can create an effective oral exam that effectively evaluates the student's knowledge and understanding of the material.

chatGPT part 2: how we change our teaching and student learning

Teaching Diary Writing published on Wednesday, December 07, 2022 (2 years, 6 months, and 3 weeks ago)

My seniors students have discovered chatGPT. They (like me) were stunned when they saw it. One student asked me why they should study software engineering when there is a tool like this. 

I agree, this tool changes things, but while it can provide snippets of code, I don't think it can write whole systems with various input, processing and output. Much like visual studio code copiliot, I see systems like chatGPT offering support for experienced programmers.

The key thing is evaluation. How will we know the answers we get from chatGPT (and copilot) are correct? I spoke with our school director, always intellectually curious, who suggested teachers ask students to evaluate a reply given by chatGPT. I think this is where we need to be in relation to chatGPT: a smart assistant who needs to be watched carefully. 

That being said, it looks like intelligent agents are going to become better (much better) at being assistants. This seems to be a plausible near-term future

Our job is to teach our students well enough so they can evaluate / analyze the output to determine if the solution is correct / best fit for the problem they are trying to solve. 

chatGPT: teaching computing

Computer Science Teaching Diary published on Sunday, December 04, 2022 (about 2 years, 6 months, and 4 weeks ago)

ChatGPT answers: 

There is no one-size-fits-all answer to this question, as the most effective teaching methods will depend on the specific goals and objectives of your course, the abilities and needs of your students, and the resources and materials available to you. However, there are some general principles and best practices that can help you create an effective and engaging learning environment for your students.

First, it's important to create a clear and organized syllabus that outlines the goals and objectives of your course, as well as the specific topics and concepts that your students will be learning. This will help your students understand what they can expect from the course and how they can prepare for success.

Next, it's important to use a variety of teaching methods to engage and motivate your students. This can include interactive lectures, discussions, hands-on activities, and group work. Using a variety of teaching methods can help keep your students engaged and interested in the material, and can also help students with different learning styles to succeed.

It's also important to incorporate real-world examples and applications into your teaching, to help students understand how the concepts and skills they are learning can be applied in the real world. This can help make the material more relevant and meaningful to your students, and can also help to motivate and inspire them.

Finally, it's important to provide regular feedback and support to your students, to help them understand where they are succeeding and where they may need to improve. This can include providing individualized feedback on assignments and exams, as well as offering extra help and support outside of class. Providing this kind of support can help your students feel confident and supported in their learning, which can in turn help them to succeed in your course.

Overall, the most effective techniques and methods for teaching high school computer science will depend on your specific goals and objectives, as well as the abilities and needs of your students. By using a variety of teaching methods, incorporating real-world examples and applications, and providing regular feedback and support, you can create an effective and engaging learning environment for your students.

Bill comments: 

Yea, about that.

Sabbatical learning - part 2

Blogging Personal Writing published on Saturday, December 03, 2022 (2 years, 6 months, and 4 weeks ago)

Part 1 here. With a sabbatical scheduled for next year, I am excited and anticipating some good work to be completed. Being able to coalesce many years of experience to renew learning engagements and refresh my understanding strikes me as a golden time. 

I am not only going to work on "professional Bill" but I will also attend to "personal Bill", where I intend to:

  1. focus on exercise, diet and mindfulness
  2. focus on my garden and backyard - long neglected
  3. focus on hobbies 
  4. focus on friends

I will be reaching out to friends who have taken sabbaticals to learn from them; what they did well, what they didn't do well. I don't intend my learning to stop, but this might be the last time I have for long-term break until I retire.

I can't wait!

As I prepare for my sabbatical I am building mountains of curiosities and interests. "I wonder how XYZ" works. Why is XYZ like that". These types of wonderings prime the pump for engagement and interest in the work ahead. 

Coming together and eating

Personal published on Sunday, November 27, 2022 (2 years, 7 months, and 4 days ago)

When I was earning my superintendents license in NYC my supervising administrator instilled a simple truth:  feed your people. This resonated and resonates with me as a highly effective means of creating bonds, trust and connection. We just had Thanksgiving yesterday and I was struck how simple it is; good food, relaxed atmosphere, and people ...just connect... There is quite a bit more to leadership, but feeding people carries with it a physical and metaphorical benefit I really love. 

I think there is a certain vulnerability and assurance when we eat - something so basic - I don't know why food doesn't figure more prominently in our day-to-day meetings.  

Enjoying the moment

published on Saturday, November 26, 2022 (2 years, 7 months, and 5 days ago)

Nothing especially tricky here. We've 14 people coming over for a slightly delayed thanksgiving, and today is the big day!

  1. We spent time to carefully plan what, when and how of the meal prep
  2. We pre-cooked the creamed spinach yesterday
  3. We got some things ordered via caterer (pies and a green salad)
  4.  We've already started setting the table a day prior

Other than that, honestly engaging with "what's the worst thing that could happen" is a fun way to manage anxiety around large meals, and I find myself relaxing through meal preparation and enjoying the process of cooking (and preparing food for people I love). 

A quote from the Joy of Cooking:

We can offer reasoned counsels and repeat the lessons of experience and tradition, but the truth is that if the table is attractive and clean, the food and drink honest and good, the company amiable and interesting, and the host generous and calm, an affair can be a resounding success no matter where the glasses go or who is sitting where. And that is our last word on entertaining. 

Sabbatical learning - part 1

Blogging published on Wednesday, November 23, 2022 (2 years, 7 months, and one week ago)

If a good replacement can be found, I'm approved for sabbatical leave next year. My plan for learning includes: 

  1. Design and construct curriculum to substantially improve student usage of git (a version control system) and the IDE visual studio code
  2. Design and construct curriculum for OOP Python
  3. Design and construct curriculum for advanced Python
  4. Design and construct curriculum using Jupyter notebook
  5. Design and construct curriculum for artificial intelligence / machine learning / advanced topics
  6. Rebuild every learning engagement and assessment in the two year IB computer science course (this is hundreds of learning engagements and 30+ assessments)
  7. Design and construct curriculum for Rust
  8. Design and construct curriculum in node.js, javascript, mongo DB, Linux

I'm already doing some of this stuff, but this sabbatical will help me by granting me the time to invest deeply in learning and reflection. Exciting stuff. 

Robotics

Teaching Diary published on Saturday, November 19, 2022 (2 years, 7 months, and one week ago)

This weekend, we are immersed in a Lego robotics competition. Students and coaches have come from other international schools to compete in a robotics challenge. The nature of the challenge is to program a robot to perform different manipulative tasks of various difficulties (within 2 minutes and 30 seconds). For example student robots need to push the red section of the windmill.

This will then trigger a different piece to fall, which must be collected for different points. The cool thing about this project is how many different times student-groups can attempt these challenges. It's ultimate design in my opinion, where a student will try / fail / try / fail many different times. This constant cycle of iteration is really at the heart of learning, construction and design - and is just such good stuff. 

Cultivating admiration in brands: Warmth, competence, and landing in the “golden quadrant”

Jennifer Doe, Emily N. Garbinsky, Kathleen D. Vohs
Conference Papers Journal of Consumer Psychology, Volume 22, Issue 2, April 2012, Pages 191-194

Abstract

Although a substantial amount of research has examined the constructs of warmth and competence, far less has examined how these constructs develop and what benefits may accrue when warmth and competence are cultivated. Yet there are positive consequences, both emotional and behavioral, that are likely to occur when brands hold perceptions of both. In this paper, we shed light on when and how warmth and competence are jointly promoted in brands, and why these reputations matter.