Uncategorized
Breadboard and Opal
Just over two years ago, I landed the first commit in a fresh Github repo and started the Breadboard project. The innocuous “Here is a graph” title of that commit already pointed to where I wanted to go – a…
Recipes for Thought
I’d like to present to you a distinction: two different approaches I take when using large language models (LLMs). I’ll call these two approaches “chat” and “recipe”.
The third option
I facilitated a workshop on systems thinking recently (or “lensical thinking” as I’ve come to call it). The purpose of the lensical thinking workshop is to provide a coherent set of tools for approaching problems of particularly unsolvable kind, using…
Flexibility of the medium
I did this fun little experiment recently. I took my two last posts (Thinking to Write and The Bootstrapping Phase) and asked an LLM to turn them into lyrics. Then, after massaging the lyrics a bit, to better fit with…
Placing and wiring nodes in Breadboard
This one is also a bit on the more technical side. It’s also reflective of where most of my thinking is these days. If you enjoy geeking out on syntaxes and grammars of opinionated Javascript APIs, this will be a…
AI Developer Experience Asymptotes
To make the asymptote and value niches framing a bit more concrete, let’s apply it to the most fun (at least for me) emergent new area of developer experience: the various developer tools and services that are cropping up around…
Asymptotes and Value Niches
I have been thinking lately about a framing that would help clarify where to invest one’s energy while exploring a problem space. I realized that my previous writing about layering might come in handy.
Porcelains
My friend Dion asked me to write this down. It’s a neat little pattern that I just recently uncovered, and it’s been delighting me for the last couple of days. I named it “porcelains”, partially as an homage to spiritually…
The developer funnel
If I ever chatted with you about developer experience in person, I’ve probably drawn the developer funnel for you on the whiteboard. For some reason, I always draw it as a funnel — but any power-law visualization can suffice. As…
The Relationship Polarity
I’ve been feeling a little stuck in my progress with the Four Needs Framework, and one thing I am trying now is reframing my assumptions about the very basics of the framework. Here’s one such exploration. It comes from the…
Adult Development Primer
Over Thanksgiving break, I wrote another one of those flip-through decks. It’s been a labor of love and I hope you find it useful in your journey. This one attempts to tell one coherent story about Adult Development Theory, based…
The Tree of Self
Diving into the Internal Family Systems (IFS) concepts and methodology led to these four insights at the intersection of the Four Needs Framework (4NF), IFS, and Adult Development Theory (ADT).
Transformational Learning
Building on the ideas in The Suffering of Expectations, I want to look more closely at the expectation gradients. These are predictions of future experiences, and they can have negative or positive values. Negative values indicate that I expect a…
Decoherence
There is no past or future. There are only stories of the past and stories of the future, and both kinds are mutable. We resolve the pervasive ontological uncertainty by matching the story we know (beginning, middle, end) and placing…
Somatic Signals: How I use the Four Needs Framework
This post marks a second anniversary of my self-work journey. Wow. 2020 has been kind of impossible, and I am grateful to have held on to my self-work routine and even to have made more progress.
The Suffering of Expectations
I have been thinking about the relationship between expectations and suffering, and this framing popped out recently.
The Existential Anxieties
So far, I’ve talked about the general framework and the tensions between the needs. To explore how the character moves across the Four Needs coordinate space, let’s study how the character might experience the tensions between the needs. In this…
Tension between Purpose and Safety
Now that I described the tension between agency and belonging, I’d like to look at how the tension between Purpose and Safety plays out.
Total Customer Satisfaction
Imagine that I am asked to design an organization whose mission is total customer satisfaction. What does it mean to totally satisfy a customer? If I give them exactly what they want right now, is it total? If my business…
The Fall of the Carapace
Let’s imagine that I am presented with a problem: I need to help people be more capable physically. They need to be able to lift heavier objects than they currently can. And I am asked to use technology to make…
The tension between Agency and Belonging
In the Four Needs framework, I identified a tension between two opposing forces: the need for Agency and the need for Belonging. Here, I want to focus on the nature of this tension.
The Four Needs Framework
The stories we tell ourselves shape how we see the world around us. Sometimes, these stories are incomplete, lopsided in ways that aren’t obvious to us. A world viewed through the lens of such stories contains the suffering of inescapable…
If I don’t wake up, I stay asleep
I had a beautiful experience early this morning. I was in the middle of a nightmare about our family network being actively attacked and all of my devices becoming compromised as I fruitlessly tried to fight back. The attacker was…
Of Love and Fear
I am struck by the line I see between two kinds of stories. On one side of the line are the stories of love. On the other, the stories of fear. Interwoven, they are the fabric of our collective humanity,…
I don’t have to feel like crap
I’ve been experimenting with both a self-paced slide deck style of narration and scoping down the vast idea of self-development into something simple. The outcome is this deck:
The Upper Limit Of Understanding
Walking down the yellow-brick road of everything being storytelling, I stumbled into a handy metaphor of system models. If my Self is a complex adaptive system and the reality outside is also such a system, my lifelong process of meaning-making…
Everything is storytelling
Everything is storytelling. It’s all a little bit of a lie, a little bit of truth, all in the quest for meaning. It’s all storytelling. This post is storytelling. History is storytelling. Governments and money are storytelling. Leadership is storytelling.…
The System of Self
Here’s a checkpoint for Archeology of Self, a marker of where I’ve been, and a sense of where I am going.
My Self-work Routine
I started intentionally working on myself a year ago today, writing my first journal entry. Since then, I’ve iterated to the point where I am settling down into a bit of a routine.
Letting My Purpose Find Me
In my own clock, I spoke metaphorically about learning to listen to my own Self, learning to discern what I want from what I believe I am supposed to want. As this process continues, I am becoming more aware of…
A Classroom for Humanity
Why is it that some people are unable to see a different perspective? Why is it that when I try to introduce them to that perspective, I get an angry, hateful response, and often, trigger them holding more firmly onto…
Fear of the abyss
I’ve been thinking about how I experience the fear of the unknown in the context of constructive-developmental theory, this fear of what’s beyond the edge of my current capacity to make meaning, the fear of the abyss.
On the Riverbank
I am on the riverbank. In front of me, a river of my thoughts, feelings, emotions. Not a peaceful river. It’s loud and turbulent, twisting in its bed, mesmerizing. A moment later — and I am caught by the current.…
Archaeology of Self
Every experience I have is a new lesson in life, a new addition to things that I’ve already learned. This process of learning happens whether I am aware of it or not. With every lesson, I also learn how to…
Puzzle Me
Where do I end? Where does the “outside of me” begin? These questions seem simple at first and evoke answers involving epidermis, but I am discovering that my boundary has little to do with molecular structures. Rather, I perceive my…
The Illusion of Injured Identity
Throughout my live, I accumulate identities: a father, a husband, a software engineer, an occasional blogger. These identities are curious constructs, because they link me to other objects or concepts. Each turns two separate things–me and something else–into one, fusing…
My Own Clock
Most of my life I lived unaware of My Own Clock. I am not sure how, but I never seemed to see it. As a kid, I was somewhat bothered by the odd pulsing sense coming from some invisible thing…
Going Forward Is Leaving Past Behind
Greetings, hypothetical Web app developer. So I wrote this thing. It’s for your eyes only. Your non-Web developer buddy will find my ramblings mostly trivial and nonsensical. But you… you are in for a trip. I think. Ready?
What the Heck is Shadow DOM?
If you build Web sites, you probably use Javascript libraries. If so, you are probably grateful to the nameless heroes who make these libraries not suck.
From HTML5 to Gibson’s Matrix?
I shouldn’t admit it, but — what the heck. I haven’t read the Sprawl Trilogy. Until this weekend. After falling prey to another round of the seasonal crud, and with the long Memorial Day weekend in sight, I dove in.
Lucky Chrome
How can you explain this sheer amount of luck? Are there any special terms for it? I have no clue.
Information Architecture Presentation at IPSA
Today, I gave a small presentation on a large topic, “Information Architecture on a Large Scale” at IPSA (that’s Information Professionals Society of Alabama). Here are the slides:
Thank You, Birmingham
It’s been a long time. I remember driving down I-59 for the first time and suddenly seeing you, lit up, silent and magical in the damp summer heat of 1995. I remember the shock of first encountering the true Southern…
Wrap Your Head Around Gears Workers
Google I/O was a continuous, three-thousand-person mind meld, so I talked and listened to a lot of people last week. And more often than not I discovered that Gears is still mostly perceived as some wand that you can somehow…
.NET on Gears: A Tutorial
The google-gears group gets a lot of questions from .NET developers. So I decided to help out. In this tutorial, we will build a simple ASP.NET timesheet entry application (because, you know, everybody loooves timesheet entry). Then, we’ll bolt on…
Back into the Future of Web: HTML5 SQL Player
Like a Three Stooges carpet-pull slapstick stunt, the HTML5 client-side storage spec changed drastically the night I released my Gears wrapper. Thump. Ow!
Jumping Off Audience Navigation Bandwagon
Future Endeavor has another insightful post, followed by an interesting UX example of the University of Virginia front door. I am a big fan of this blog and would highly recommend it to anyone involved in higher education Web development.…
Chewing on Open Social
So, the cat is out of the bag, in case you haven’t heard (and if you haven’t, what remote island are you living on?). I spent a bit of time this weekend, playing with the new toys, trying to analyze…
Slides from my IPSA presentation on HTML5 and Google Gears
Today, at the monthly IPSA meeting, I gave a presentation on Google Gears and HTML5 client-side storage part of the spec. As promised, I uploaded the slides to this blog.
HTML5 Wrapper for Gears
This is possibly the lowest-hanging fruit ever. After WebKit folks released their implementation of the HTML5 SQL storage specification, Gears immediately became the odd man out, the non-standards-compliant implementation. Never you mind that this part of the spec is still…
My iPhone SDK
So, my good friend Steve spills the beans about the upcoming SDK. The crowd screams like girls at the Beatles concert. Even ever-curmudgeonly Dave eeks a “hooray”. And that’s a big deal, my reading acquaintance. Now, I don’t own an…
HighEdWebDev 2007
The HighEdWebDev 2007 conference begins tomorrow and I am all ready to go. This is my second year to attend this gathering. Last year, I was sitting at the vendor table (“Hello, I would you like to buy a pound…
Call Me Gearhead
So, I am playing with Google Gears and I’ve got to tell ya, Gears are brilliant. And the farther you look, the shinier it gets. Why? Because Gears fulfill the ultimate fantasy of any Web developer in a very radical…
Margin Marks UI Concept
Margin marks is a user interface concept that aims to expose microformats on a web page in a way that’s intuitive, useful, and positionally relevant, yet has minimal interaction with the page presentation. This concept can be also extended to…
The Horrific Markup of Live Spaces and Possible Explanation of Dare not Getting Microformats
It’s a Friday surprise! After reading this post by Dare Obasanjo, I dutifully followed the links in the article. Upon stumbling on his Live Spaces friends page, I instinctively hit Ctrl+U to peek at the source code. Ow! Ow! My…
Framework for Tomorrow’s Web
I am trying something new here. Instead of blabbering and shaking wrinkled fists like a cranky old man, I’ll turn my lemon into something with a bit more kinetic oomph. Like a two-by-four. Kidding! Kidding…
Javascript Makes Me Giddy
I must be a simple man, ‘cuz things like this in Javascript make me slap my sides, and go Hot damn!
ECMAScript 4 on the Server
Let’s imagine there is a viable, publicly available ECMAScript4 (that’s Javascript 2.0, y’all) implementation that runs on the server (is there, by the way?), that can be used instead of Ruby, Python, PHP, C# etc. Wouldn’t it be great?
Client-side Performance Tip
I wanted to mention this for a while, but only now found a bit of time. This is very important.
Goodbye, Subtext
They say: “all good things must come to an end”. What a load of crap! It’s like saying: “only bad things last forever”. Perhaps a more accurate statement would be: “some good things occasionally come to an end”. But that’s…
BarCampAustin
I am sitting here at BarCampAustin, the precursor to the SXSW 2007 conference. This one is really a bar camp. It’s at Bourbon Rocks bar, and the atmosphere follows suit. There is actually a bartender behind us, and even a…
Clairvoyant Software Engineering
While ripping out old code and refactoring late last night, I muttered out something that I just had to write down: one of the most profound skills of a software engineer is the ability to foresee the moment when the…
Attention Google: License ActiveSync!
If any of the Googlers-in-charge are listening, here’s my pure-gold tip of the day:
Fighting Email Spam, Part N+1
As a follow up to my GMail laments, I wanted to share a very simple spam-fighting trick with the world. See, I have two email addresses. Whooptee-do, you say — you’ve got a gadzillon of them. Well, the trick is…
BarCampBirmingham Sessions in a Podcast
If you missed BarCampBirmingham, here’s your chance to catch up on the topics discussed: most of the sessions are now available on Odeo.com. Session topics include:
GMail Overrun by Spam
It seems that the GMail is no longer doing an excellent job of filtering spam. Or is it just me getting particularly nasty spam?
Micforormats: Yay or Nay?
This is a repost of my response to a question on UWebD list, but since the list doesn’t have publicly available archives, I thought it would be valuable to post this here.
BarCamp Birmingham: Unconferencing the Magic City
Today we had our first meeting, dedicated to planning a Barcamp in Birmingham. What’a Barcamp? Noo, it’s not camping out in a bar, although that seems like an intriguing idea in itself. Barcamp is a conference, powered by participants, rather…
Microformats in Alabama
Did a talk at IPSA today on Microformats (slides are online for those interested). I think it went well. It was a bit odd that people didn’t ask many questions, but maybe this was due to the fact that I…
Off To Netsquared
Early Monday morning, I’ll be flying to San Jose, to join the Netsquared Conference, the coolest conference at which I ever had an honor to speak. Together with my co-host at Fuzzycontent.com, Bob Robertson-Boyd, as well as Youthnoise‘s Ginger Thomson,…
GWT And Now Script#: The Agony of a Thousand Puppies
Uh oh. Another reactive rant. Am I turning into a grumpy old man? This time it’s about layers of abstraction. And Javascript. And the meaning of life. No? Maybe not the meaning of life.
Want to Be in a Movie?
poster for high expectations movie Have you ever dreamed to be in a real movie? You know, pointing out the tiny speck that is your head in a great sea of other hapless extras during a classic flick to your…
One-liners: How To Explain Tags to a SQL Guy
Tags are foregin keys with no corresponding primary key structure. Using a foreign key implies creation of a primary key, if it didn’t exist before. The resulting nebulous collection of keys is often visualized as a tag cloud.
My Notebook
picture of the notebook Those who worked with me have seen it — my trusty ol’ notebook. Now you, the reader, can also peek in on the latest ideas brewing. Experience tells me that about 60% of these will be…
REST Unrest
Gee, we will never run out of clever name permutations with this one, will we? Anyways…
Mapendar Me!
Chris has the right idea with the Mapendar. Relevant content is always location- and time- based. Organizing event-driven information into a continuous time stream and supplanting it with illustrated geography is a pretty intuitive way to put it together. Me…
Latent Patent Disasters
Over at fuzzy, Bob dug up some more ridiculous patent claims. The more you browse the patent database, the more you realize the impossibility of enforcing and navigating (or should I say litigating?) through this tangled mess.
CNN.com Redesigns
Just a quick heads-up: it looks like the CNN.com came out with fresh, new look for their front page. I think I like it. But please don’t pull up the covers: the markup is still a mess, and inner pages…
Lo-REST: This is your REST on Crack
Okay, this one is probably going to sting a bit. But here it goes. Don Box, my hero of adventures long gone, has coined (or as much as that) a new term: Lo-rest. He provides a list of bullet points…
Microformats Abuzz
As you may have heard, Bill Gates ushered in a new era by saying: “We need microformats” from stage at Mix’06. It was a long time coming. Slowly but surely the purists in us are realizing that this might be…
Back? By Popular? Demand?
Yes, ’tis a post of many questions. “What happened, dude?” Lots and lots of stuff. Here’s a brief summary: worked like crazy, lost lots of sleep trying to get the little one to sleep, started back on drinking coffee, replaced…
Growing Feet on Valuable Equipment: Bad People Are Out There
I was coming back from a long meeting. The day was almost over. I didn’t expect to find anybody back at the office, and I was right: the last person locked the doors and left about 10 minutes prior to…
The Big Idea
Technology and programming are always secondary. What’s primary is The Big Idea. Implementational challenges are only unsurmountable when the implementor does not get the idea.
Motorola HS850: Now Machine Washable (and Dryable)
The weekend was drawing to a close. My son was carrying a shoe around the house with such determination and intensity that I couldn’t help but follow him around and wonder if there really was a mystic purpose behind his…
What a Nice Birthday Present!
I knew it! You guys were waiting for my birthday!
Semantics of Comments
Hey, what happened to June? You tell me.
Beware of the Ubiquitous Baton
Last night, somewhere in North London, a hollow object was launched from the secret base of the Web Forms 2.0 for Internet Explorer project. In a perfect parabola, the object crossed the ocean, entered the airspace of the United States,…
TILT: How to Stop Feeling Bad About Using Tables for Layout and Start Enjoying Your Markup
You must be really living out in the sticks if you haven’t heard by now that using HTML tables for layout is bad. Markup is for content, CSS is for presentation, we learned.
Graphics and Structural Markup: Keeping “pretties” out of content
Pet peeve time! Let's talk graphics. You know, the catchy visual dujibobs that have been part of the Internet since the Gopher went south. As far as I know, there are only two types of graphics on the Web: content…
Party Like it’s 1997: The Curse of the Back Button
Haven’t you heard? DHTML is cool again. Now, before y’all run out scriptin’ your own little cans of Asynchronous JavaScript + XML , let’s pause for a second and consider these observations:
Social Content Management
So, you’ve revolutionized the way people access information. Again. Just after the novelty of a search engine wore off, the ingeniously simple magic of content aggregation is taking the world by storm. Now, you don’t look for the information —…
Feelin’ all AJAXy: How Prince of Salamis Became the Moniker for Stuff Done Before
Developers of the MSDN Library site, I feel your pain. You’ve perfected technology years ago (and I am not talking dog or Internet years!), quietly enjoying its success, only to have all of its coolness taken away by Google. Then,…
Progressive Enhancement: Couldn’t have said it better myself
Jeremy Keith has a very nice and complete summary of pitfalls of using augmented client-server interaction on a page (the term Ajax seems to be catching on).
Complete Credentials Screening
Here’s the latest iteration of the Credentials Screening module (for more information see this and this posts). It further improves the way credentials screening operates, introducing things like Windows authentication cookie reminder (because sometimes Explorer “forgets” that it had already…
Of Men with the Brain on Both Sides and a Utopian Cult
Has it really been that long since my last post?
Better Credentials Screening
In my first post about credentials screening, I’ve offered sample code, which implements the solution. Being the quickly thrown together piece of code that it was, the sample had a couple of quirks. Oh, nothing big — just things like…
Implementing Piped List in CSS
In my one of my previous posts, I offered a couple of suggestions to my colleagues over at Microsoft.com. One of them had to do with rendering lists of links, separated by a vertical bar (pipe), also known as piped…
PHTML: Dumbing It Down For Sanity’s Sake
If you have built large sites, you have faced a familiar maintenance problem: content authors, either unwittingly or in their creative genius adding horrific boogers of markup to the site. Over a year of such maintenance, the site is no…
Microsoft.com Redesign
Oh, well, count me in into the critics’ crowd. Microsoft.com had redesigned its home page. As Douglas Bowman at Stopdesign notes, this is a step in the right direction. It looks like a lot of work has been done in…
Coblogging: Spontaneous aggregation
In my fairly short experience with blogging, I’ve noticed one thing about these new creatures of the Web: they are both connecting and isolating. The are connecting in the sense that anyone can read your stuff and attach their opinions…
Coding For Multithreading
Between the two, Ian Griffiths and Phil Haack have some good info on coding for multithreading. Developing multithreaded applications is hard. It takes experience, which comes in most painful forms of debugging and learning from engineering mistakes — unless you…
The Bogeyman of ASP.NET
Let me first start by saying that ASP.NET is an awesome framework. It is now my primary development platform and it is a joy to work with. It brings to the table something that is not built-in in most of…
Glazkov.Family.Count++;
On July 11, 2004, a 9-month old project had finally come to fruition. We now have a baby boy in the house! 🙂
My workplace
Since Cyrus is talking about his multi-monitor set up, I guess I want to brag, too. As many of my co-workers and friends know it, I take my workplace very seriously. I like everything running just right, positioned at the…
Credentials Screening: Windows Authentication without a Login Dialog Box
It is easy to turn on Windows (also known as NT) authentication on IIS:
Html-XPath project created on SourceForge.net
For those of you interested in using the DOM Level 3 XPath implementation for Microsoft Internet Explorer 5+ in your Web applications, I created a project on SourceForge.net:
The Objective of Information Architecture
I have recently stubmled upon a very interesting discussion, initiated by a fairly controversial article by Mark Hurst of Creative Good. In his piece, titled “The Page Paradigm”, Mark provides some radical reasoning regarding fundamental principles of Information Architecture process…
Excited about XInclude
Once again, Oleg‘s article was published on MSDN. This time he talks about XInclude. Like any great article, his offers not only a good conceptual overview with examples and “what-if” scenarios, but also provides a very solid implementation of the…
XPath, unleashed — coming to Internet Explorer 5+ HTML DOM near you
While coding away in JavaScript, reshaping/augmenting your HTML code using DOM, have you ever wondered why there is no support for XPath built-in? Actually, there is — Mozilla has a pretty solid support of DOM Level 3 XPath right at…
Dare’s Holy Grail vs. Rory’s “Huh?”
Dare and Rory and others have been conversing on a subject very close to my heart (and my work) — mapping XML code to objects.
DevDays 2004, Atlanta
Sittin’ in the hotel room, looking through the freshly acquired DevDays materials… Although the folks who organized it managed to put together a good collection of information and links to more information, I can’t shake off a feeling that I’ve…
Crashing Through Deadlocks
Although concurrency management is somewhat represented in C# with the lock statement, there’s plenty more to be found in System.Threading namespace. Starting from Monitor class, which is what the lock statement is based on, to the ReaderWriterLock and the Mutex…
Regrettable Software, Tossed Salad, and Web Development
I’ve done some reading (and posting) on the excellent ASP.NET forum and, by far it seems, the most frequent cause of the issues that people have with their code is making the distinction between server side and client side of…
Representing xsd:choice element in C#
The issue of correctly representing semantics of an xsd:choice element seemed like a good challenge, so I decided to tackle it.
Generating C# code from XSD
Steve Saxon had posted a few times on the XSD -> C# code generator that he’s building. Looks pretty cool. He also mentions that ideally some of the code should be generated as nested classes. It is true, some constructs…
HTML, CSS and Other Curious Stuff That You May Find Hard-coded In Your Web Application
Design View Dude is asking interesting questions about composing HTML/CSS mark-up in the process of building a .NET Web application.
Antarctica.uab.edu or why cobbler’s kids go barefoot
One of my more recent projects was the Antarctica.uab.edu Web site. Basically, it hosts online journals of a close-knit group of scientists at University of Alabama at Birmingham (UAB), who are currently pursuing biological research in Antarctica. Twice a week…
The Cruelty of Unattainable Perfection
First, there was pristine perfection: a vision of a mark up language that was simple, intuitive, and made your online documents look reasonably pretty. Then… well, then everything went to hell in a hand basket. In a little over a…
First, Inaugural
Greetings!