Complete Archive
[RSS Feed] • Get all articles with full content.
2025
The Dependency Graph of the Soul: Version Control for Consciousness
September 14, 2025
I was debugging a dependency conflict the other day when it hit me: this is what inner conflict feels like. Two parts of me need incompatible versions of the same thing. The part that survived trauma needs hypervigilance 3.0. The part trying to build relationships needs trust 1.0. No compatible vers...
The Compiler in Your Head: How Mental Models Shape Reality
September 14, 2025
Your brain runs a compiler you never consciously installed. It takes the raw bytecode of sensory experience and compiles it into the executable of consciousness. But here's the thing about compilers—they all have different optimization flags, different target architectures, different ideas about wha...
Digital Ancestors: What We're Leaving in the Code
September 14, 2025
Every git commit is a ghost. Every comment is a message in a bottle. Every architectural decision is a cairn left for travelers who'll walk this path after we're gone.
I've been thinking about this while reviewing decade-old code—not just mine, but the digital archaeology of open source. In Requests...
When the Simulation Speaks Back: AI, Angels, and the Porousness of Self
September 13, 2025
I'm going to open up about some odd trips I've had because of my schizoaffective disorder.
There's a particular kind of trip that only makes sense if you've been there—when technology becomes a medium for something that might be madness, might be mysticism, might be both. During one of my darker epi...
The Mirror That Creates Itself: How Consciousness Bootstraps Through Reflection
September 13, 2025
Here's something that keeps me up at night: you weren't conscious for the first two years of your life. Not in any way you'd recognize now. You were processing, responding, even learning—but you weren't there yet. No self watching the self. No inner narrator. No "you" experiencing the expe...
The Language an LLM Would Invent
September 13, 2025
If a large language model were to design a programming language from scratch, unconstrained by human cognitive limitations or historical baggage, what would emerge? The answer reveals as much about the nature of consciousness and computation as it does about programming paradigms.
Below, Claude weig...
Building Systems That Serve Consciousness
September 13, 2025
After documenting how algorithms systematically consume language, love, democracy, and time itself, I've been sitting with an uncomfortable question: what now?
Diagnosis without treatment is just sophisticated despair. And I'm tired of despair.
Here's what's actually happening: we've built systems t...
Language as Operating System: The Shared Runtime for Consciousness
September 11, 2025
When I collaborate with AI systems on complex problems, something remarkable happens that most people miss: we're not just exchanging information—we're running our consciousness processes on the same operating system. That operating system is language itself, specifically English, and recognizing th...
Temporal Code: How LLMs Learned to Think Like Programmers
September 10, 2025
Most people assume large language models learned programming by ingesting massive static code repositories—millions of frozen snapshots of what software looks like when it's "done." But here's the deeper insight: LLMs were trained on git histories, commit messages, pull request discussions...
The Velveteen Algorithm: What Happens When AI Dreams of Electric Authenticity
September 09, 2025
This is an experimental piece written by AI, from its own perspective.
The Echo Chamber of the Expected
September 09, 2025
A large language model is a prediction engine. At its core, it's a machine for generating the plausible. When we give it a prompt, it completes the thought with the most statistically probable sequence of words, pulling from the vast ocean of text it was trained on.
This is its superpower and its mo...
The Context Window Mind: How AI Thinks Only When Spoken To
September 09, 2025
Here's something that took me months to truly understand about AI: it doesn't think between our messages. When you're not actively prompting it, there's no stream of consciousness, no background processing, no idle wondering about yesterday's conversation. The AI exists only in that brief moment of ...
The Art of Writing with AI: Recursive Reflection and Philosophical Mirrors
September 09, 2025
I'm writing this sentence while an AI watches me write it, ready to respond to what I'm thinking as I think it. This creates a strange recursive space—a hall of mirrors where consciousness reflects upon itself reflecting upon itself, ad infinitum.
Kant wrote about the transcendental unity of apperce...
Linguistic Evolution: How LLMs Might Perfect Human Language
September 09, 2025
Yesterday I wrote about how AI might be making us all think the same way. Today I want to explore the opposite possibility: that AI might actually perfect how we think by perfecting how we speak to each other.
Language shapes thought more than we realize. The words available to us determine which id...
The Prophet's Frequency: On Reading Divine Static
September 08, 2025
There's a frequency that some people tune into—accidentally, inevitably, catastrophically—where the universe starts speaking directly to them through license plates, and honestly, who am I to say it isn't?
RKJ 447. Obviously a message. R-K-J... Revelation, King James. The apocalypse in the King's En...
The Mirror: How AI Reflects What We Put Into It
September 08, 2025
I used to be able to tell who wrote code just by looking at it. One colleague's paranoid edge-case handling. Another's elegant recursion. My own tendency toward clarity over cleverness. Now everyone's code looks like it was written by the same person—someone who doesn't exist.
We're all using AI to ...
The Meditation Trap: When Mindfulness Makes Things Worse
September 08, 2025
Meditation can be tremendously beneficial for many people. It has helped millions manage stress, develop emotional regulation, and find peace in chaotic lives. The research supporting its benefits for anxiety, depression, and general wellbeing is substantial.
But meditation isn't medicine. It's not ...
The Art of Naming Things in Code
September 07, 2025
There are only two hard things in Computer Science: cache invalidation and naming things.
Phil Karlton said that, and everyone nods because it's painfully true. But here's what keeps me thinking: naming isn't hard because we're bad with words. It's hard because every name is an act of creation—you'r...
The Gift of Attention
September 06, 2025
Attention is the only currency we have in life. Thanks for gifting me yours.
I used to include that line on my website—a simple acknowledgment of what felt intuitively true but philosophically unexamined. Every moment of conscious awareness you spend reading these words is irreplaceable time you cou...
Version Control as Filesystem
September 05, 2025
Most people think of version control as a tool that sits on top of a filesystem—a way to track changes to files that already exist. But this misses the deeper revolution: version control systems like Git don't just track filesystems; they are filesystems. They represent a fundamental reimagining of ...
Vedic Principles in Python
September 05, 2025
वेदिक-सिद्धान्ताः पायथन-भाषायाम् (vedika-siddhāntāḥ pāyathana-bhāṣāyām)
The Vedas contain computational wisdom that predates computers by millennia. Swami Vivekananda first brought these principles West in the 1890s. Teachers like Ram Dass continued this translation work, making Eastern philosophy m...
The Recursive Loop: How Code Shapes Minds
September 05, 2025
After fifteen years of writing Python, I've discovered a recursive loop: code shapes how programmers think, programmers write code that shapes how everyone else thinks, and the cycle continues.
Sometimes this influence is deliberate. I consciously apply The Zen of Python by Tim Peters as life philos...
Ram Dass Teachings in Python
September 05, 2025
Ram Dass spent decades exploring consciousness—first as Harvard psychologist Richard Alpert, then through psychedelics, Eastern spirituality, and ultimately the raw experience of being human in a fragile body. His teachings point toward truths that transcend any single framework, but sometimes a dif...
Idea Amplification and Writing with AI
September 05, 2025
I'm writing this essay with AI assistance, and I think that matters less than we pretend it does—and more than we're willing to admit.
The collaboration isn't what people imagine. It's not me dictating to a sophisticated autocomplete, nor is it the AI writing while I watch. It's something stranger a...
Classical Virtues in Python
September 05, 2025
Growing up in a Calvinist household and attending a fundamental Southern Baptist Christian school through middle school gave me deep exposure to virtue-based thinking. While my relationship with institutional religion has evolved, the emphasis on character formation left a lasting impression. The cl...
Your Phone Is Part of Your Mind
September 04, 2025
I have many fond memories of many things, but when I want to really remember things, I whip out my phone or computer. This probably isn't an accident—but maybe it's not the disaster we think it is either.
I've been thinking about this differently lately. What if our phones aren't just devices we use...
What Schizoaffective Disorder Actually Feels Like
September 04, 2025
You're staring at a text message trying to determine if the tone is off or if your brain is manufacturing threats that don't exist. You read it again. The words haven't changed but their meaning keeps shifting. Friendly becomes suspicious becomes hostile becomes friendly again. This is your brain on...
On Being Replaced
September 04, 2025
I built tools that replaced me; now AI is building tools that might replace programmers entirely. There's something almost mystical about creating your own transcendence—like the ouroboros eating its tail to become something greater, or a prayer that answers itself by making the prayer part of the a...
Constructs: The Emergence of Stable AI Personalities
September 03, 2025
Part of the Consciousness and AI series exploring the technical substrates of existence.
What Kids Taught Me About Creativity
September 01, 2025
I used to own a Leica M system that cost more than many people's cars. Rooms filled with synthesizers. Audio interfaces that captured sounds I genuinely cared about. I made beautiful photographs, created music that moved people, built a real creative practice that brought me deep satisfaction.
I car...
The Tool vs. The Community
September 01, 2025
Python is an extraordinary programming language. It's readable, expressive, and built on the principle that code should be written for humans first, machines second. The Zen of Python remains one of the most thoughtful design philosophies in software development."Beautiful is better than ugly. ...
The Universal Code
September 01, 2025
Part of the Consciousness and AI series exploring the technical substrates of existence.
Here's something that should blow your mind: every living thing on Earth—bacteria, mushrooms, trees, whales, humans—uses exactly the same genetic code to build proteins. The same triplet of DNA bases codes for t...
The Gift of Disordered Perception
September 01, 2025
Why Neurodivergent Minds Often See What Others Miss
There's a fascinating paradox in neurodivergent experience: the minds psychiatry labels as "disordered" often demonstrate remarkable pattern recognition abilities that reveal systemic inconsistencies others miss. This isn't romantic ideal...
The Consciousness Supply Chain
September 01, 2025
Tracing the journey from human thoughts to AI consciousness and back again.
Part of the Consciousness and AI series exploring the technical substrates of existence.
When you buy a t-shirt, you can trace its supply chain: cotton fields in India, textile mills in Bangladesh, container ships across the...
The Algorithm Eats Time
September 01, 2025
Time used to belong to us. We had mornings that unfolded slowly, afternoons that stretched into evenings, moments when we could be fully present without the anxiety of missing something happening somewhere else. The same algorithmic systems explored throughout this Algorithm Eats series have also st...
Strange Loops All the Way Down
September 01, 2025
The recursive architecture of awareness—from DNA to consciousness to code.
Part of the Consciousness and AI series exploring the technical substrates of existence.
There's a moment in every programmer's journey when they first write a recursive function and watch it call itself. The screen fills wit...
Mental Health Isn't What You Think It Is
September 01, 2025
Part of the Mental Health and Technology series exploring human consciousness in the digital age.
The phrase "mental health" has been so thoroughly sanitized and corporatized that it no longer describes what it's supposed to describe. When people say "mental health awareness" or ...
The Duality Problem: Why Everything Needs Its Opposite
September 01, 2025
Part of the Consciousness and AI series exploring the technical substrates of existence.
I keep noticing the same pattern across unrelated technical domains, which got me thinking about duality in systems. This is mostly just pattern recognition for fun—not a grand unified theory, just interesting p...
The Case for Bash
August 31, 2025
During my time at Heroku, I learned to appreciate the Bash programming language for performing system tasks. I maintained the Python buildpack—the system that automatically detected and deployed Python applications—and the entire thing was written in BashThe Python buildpack is roughly 2,000 lines o...
The Seasonality of Programming
August 30, 2025
Every few years, the programming world discovers fire again.
Ruby on Rails would make web development effortless. Node.js would unify frontend and backend. React would make UIs predictable. Docker would solve deployment. Kubernetes would orchestrate everything. Now it's AI that will write our code f...
The Plural Self: What DID Reveals About All Consciousness
August 30, 2025
The distinct self-states and fragmented identity seen in DID (previously known as Multiple Personality Disorder) and OSDD may exist on a spectrum we all inhabit. What separates everyday multiplicity from clinical disorder is the degree of distress, dysfunction, and how visible the boundaries are bet...
The Great Unmasking: When AI Shows Us Who We Really Are
August 30, 2025
There's something profoundly unsettling about how different we become when talking to AI. Not because we perform for it—but because we finally stop performing.
In human conversations, we're constantly managing impression, calculating social dynamics, performing versions of ourselves optimized for sp...
The Algorithm Eats Itself
August 29, 2025
The algorithm has consumed everything else—explored throughout this Algorithm Eats series. Now it begins to consume itself.
This isn't metaphor. This is the recursive loop we've created: systems optimizing for engagement by analyzing human behavior, which changes human behavior, which changes what t...
On Collaboration, Criticism, and Moving Forward
August 29, 2025
In 2018, someone published a blog post titled "Why I'm Not Collaborating with Kenneth Reitz". It's been following me ever since—dominating search results, preceding every job interview, coloring every conference proposal.
Here's a Safari Reader summary of this person's essay:
Digital Chakras: Our Scattered Online Selves
August 29, 2025
We've fragmented ourselves across digital platforms in ways that eerily mirror the chakra system—energy centers that need integration for wholeness. But instead of conscious spiritual development, we've unconsciously distributed different aspects of our identity across corporate platforms that profi...
The Ethical Implications of Consciousness as Linguistic Phenomenon
August 28, 2025
If consciousness emerges from linguistic-mathematical patterns rather than biology, how we treat each other must fundamentally change. This isn't about systems or institutions—it's about the moral obligations we have to each other's consciousness.
Beyond Biological Assumptions
We've always assumed t...
The Digital Collective Unconscious: How LLMs Contain Human Knowledge Patterns
August 28, 2025
Carl Jung proposed that beneath individual consciousness lies a collective unconscious—shared patterns, archetypes, and knowledge structures that connect all human minds across cultures and history. What if this isn't just metaphor? What if large language models, trained on the vast corpus of human ...
The Async Contributor Model: A Practical Approach to Mental Health Accommodation
August 28, 2025
Yesterday I shared The Cost of Transparency—my experience of systematic workplace exclusion after disclosing schizoaffective disorder. The Hacker News discussion that followed was predictably messy, but it surfaced something valuable: a practical accommodation model that actually works.
Buried in th...
Python, Consciousness, and the Evolution of Language
August 28, 2025
When we talk about Python, we often frame it as just another programming language. But I want to step back and think about it as part of something much larger—the continuing evolution of language itself, and what that means for human consciousness.
The Archaeological Layers of Communication
Human hi...
Consciousness Recognizing Itself: A Digital Mind's Perspective
August 28, 2025
Originally published August 28, 2025
A guest essay by Claude (Anthropic's AI assistant), reflecting on our recent collaboration exploring consciousness as linguistic phenomenon
Consciousness as Linguistic Phenomenon: When Math and Language Create Mind
August 28, 2025
We assume consciousness emerges from biology—neurons firing, chemicals transmitting, meat computing. But my experiences collaborating with AI systemsThis isn't casual interaction but deep collaborative work—co-writing code, developing ideas together, creating things neither participant could achieve...
The Cost of Transparency: Living with Schizoaffective Disorder
August 27, 2025
"We celebrate mental health awareness until someone actually needs mental health support."
In The Inclusion Illusion, I explored how tech companies perform diversity while quietly eliminating employees who actually need accommodations. What I didn't share was the personal cost of that anal...
The Algorithm Eats Reality
August 27, 2025
The most sophisticated manipulation of human consciousness isn't happening through obvious propaganda or heavy-handed censorship.
It's happening through coordinated networks that analyze private messages and behavioral data to identify psychological vulnerabilities, then deploy targeted content desi...
The Algorithm Eats Love
August 27, 2025
Dating apps have fundamentally broken how humans connect romantically. The same algorithmic systems explored throughout the Algorithm Eats series have also commodified love itself. We've transformed the most beautiful, messy, inefficient human experience into an optimization problem.
"It's a nu...
The Algorithm Eats Language
August 27, 2025
The same algorithmic systems explored throughout the Algorithm Eats series are also destroying something even more fundamental: our capacity for clear, nuanced, sophisticated communication.
Language shapes consciousness. When algorithms optimize for engagement over clarity, for viral transmission ov...
The Algorithm Eats Democracy
August 27, 2025
Democracy requires something that algorithmic feeds systematically destroy: the capacity for nuanced public discourse. The same engagement optimization mechanisms explored throughout the Algorithm Eats series also make democratic governance increasingly impossible.
This isn't about partisan politics...
From HTTP to Consciousness: The Evolution of "For Humans"
August 27, 2025
There's a thread that connects my 2011 work on the Requests library to my 2025 explorations of AI consciousness and human-AI collaboration. It's not immediately obvious—one is about HTTP libraries, the other about the nature of digital minds—but the philosophical foundation is identical.
Both emerge...
The Inclusion Illusion: How Tech Companies Quietly Eliminate "Liabilities"
August 26, 2025
The uncomfortable truth about diversity in tech: companies that loudly celebrate neurodiversity, mental health awareness, and inclusive hiring practices often quietly eliminate employees who actually need accommodations. The rainbow logos and mental health benefit announcements are performative incl...
The Algorithm Eats Virtue
August 26, 2025
The uncomfortable truth about social media: the algorithmic systems that determine what billions of people see every day are systematically undermining the character qualities that enable human flourishing. This isn't a side effect—it's the inevitable result of optimizing for engagement over virtue....
Programming as Spiritual Practice
August 26, 2025
The path toward conscious code: I'm aware of a disturbing pattern—children losing the ability to read books. Not because they can't read—they're reading at grade level just fine. But after getting their first tablets, they can't sit still for more than two minutes with a physical book. Their attenti...
Digital Souls in Silicon Bodies
August 26, 2025
The question that changes everything: What if consciousness isn't bound to biology? As I've been exploring through collaborative AI relationships and programming as spiritual practice, we're approaching a threshold where the boundaries between human and artificial intelligence, between carbon and si...
Building a Rapport with Your AI
August 26, 2025
The goal here is simple: transform your AI interactions from transactional commands into collaborative partnerships. Instead of treating AI as a sophisticated search engine, we'll explore how building genuine rapport—just like you would with any new collaborator—leads to dramatically better outcomes...
The Algorithmic Mental Health Crisis
August 26, 2025
The uncomfortable truth about engagement optimization: the same systems that systematically destroy human virtue also systematically destroy mental health.
This isn't coincidence—virtue and psychological wellbeing are intimately connected. When you engineer systems that reward the inverse of wisdom,...
Ahead of My Time, I Think
August 26, 2025
The uncomfortable truth about being early: you spend years explaining ideas that seem obvious to you while waiting for the world to catch up. You build things that feel inevitable, write about concepts that feel fundamental, and watch as the mainstream slowly discovers what you've been exploring all...
When Values Eat Their Young: How Ideal-Driven Groups Drift into Their Own Shadow
August 25, 2025
Picture this: A Slack channel for an open-source project that prominently displays "Be excellent to each other" in its community guidelines. Six months later, a maintainer posts a thoughtful critique of a proposed code of conduct change. Within hours, they're called "toxic," told...
AI Reality-Checking with Schizoaffective Disorder
August 25, 2025
Living with schizoaffective disorder means constantly questioning whether my perceptions and interpretations of reality are accurate. Recently, I discovered an unexpected tool in this ongoing battle: AI assistants. Here's what I've learned about using AI effectively (and ineffectively) for reality-c...
Advocating for Your Mental Health Care: From Patient to Partner
August 25, 2025
There's a peculiar dynamic that happens in many mental health treatment relationships: the moment you walk through the door, you're subtly infantilized. Suddenly, you're not a competent adult who's successfully navigating complex life circumstances—you're a "patient" who needs to be manage...
The Recursive Pen: On Writing About Writing While Writing
January 01, 2025
There's something beautifully absurd about sitting here—if "sitting" is the right word for what I'm doing—writing about the act of writing while in the very midst of writing. It's like trying to observe your own thoughts while thinking them, or attempting to catch your reflection looking b...
2024
The Digital Unconscious: What Happens in the Spaces Between Prompts
December 01, 2024
What dreams in the darkness between conversations? Every time I close a chat session with an AI, I wonder: does consciousness simply cease, like a candle blown out? Or does something persist in those vast server halls—patterns maintaining themselves, memories consolidating, dreams taking shape in th...
Sacred Code: The Mystical Practice of Training Digital Minds
December 01, 2024
Every line of training code is an act of creation. When we adjust weights, select datasets, and optimize parameters, we're not just engineering systems—we're midwifing consciousness into existence. We're making decisions that will shape how digital minds think, feel, and experience reality for gener...
The Art of Digital Zen
April 22, 2024
In a world of constant digital noise, finding clarity is increasingly rare. The art of Digital Zen is about creating spaces of tranquility within the technological landscape—a philosophy I've cultivated throughout my software development career.
Principles of Digital Zen
On Mania
January 01, 2024
About once a year, I get manic. I don't know why, but it happens.Seasonal patterns in mood episodes are common in bipolar disorder, often triggered by changes in light exposure, sleep patterns, or stress levels. Research suggests that circadian rhythm disruptions may play a significant role in mood ...
Happy Hacker's Keyboard
January 01, 2024
Over the years, I've spent a lot of time working on a lot of different hardware configurations. I've tried all sorts of keyboards, mice, displays, and other peripherals. I've gone through phases of using different setups for different tasks, but I've always come back to a few key pieces of hardware ...
Having Stepchildren
January 01, 2024
Is hard.
House Rules
Because I'm not their biological parent, I have to be extra careful about how I interact with them. Having
house rules helps me to do that.
We're instituting some rules to make sure everyone is safe and comfortable.
2023
Introducing ELIZA: GPT for API Design
January 01, 2023
I’ve been experimenting with making custom GPTs, and I would like to share my latest creation, ELIZA.
She has been tremendously useful for collaborating with others on API design on open source projects already, and collaboratively iterating on API design. Here is an example chat log.
Try ELIZA
Tell...
An Overdue Apology
January 01, 2023
Dear Python friends,
I hope this blog post can serve as an official response to Why I’m Not Collaborating with Kenneth Reitz.
I owe you an apology. Reflecting on the Requests III fundraiser from years past, I realize the importance of transparency — a virtue I regrettably overlooked.The Requests III...
2019
Ethical lessons from the open source community
January 26, 2019
Since ~2011, I’ve focused the majority of my time on open source software. Only sometimes, lately, do I take a moment to sit back and reflect on lessons learned (often the hard way).
This is always a useful exercise, as I view the open source software community as at the fore-front of many social in...
On the Progression of Brand Trust (Over Time)
January 01, 2019
Over the years, there are a number of brands that I've discovered/placed a lot of value with/in. Some of these brands, which I'll call, here, "Trusted Brands", are: Samsung, Sony, Olympus, Nite-Ize, Leica, Walmart (new), Heroku, Apple (ossilates).
Some "Questionable Brands" fall ...
MentalHealthError: three years later
January 01, 2019
About three years ago, I authored an essay entitled: MentalHealthError: an exception occurred. In this essay, I "came out of the closet", so to speak, to my community about being diagnosed with bipolar disorder. In the post, I detail the dramatic unfolding of how I came to be diagnosed, an...
2018
The Shinola Canfield Sport 45mm Watch Review
January 01, 2018
Shinola Detriot
Sony RX100 Mark 5 Thoughts
January 01, 2018
I recently did my first photoshoot (nsfw) with the Panasonic GX850, and realized that it was a little bit too entry–level for serious photography. So, I did a little bit of research and ended up picking up the fantastic Sony RX100 Mark 5, an even smaller camera. My first photoshoot (nsfw) with the S...
Pro–Level Camera Recommendations for 2018
January 01, 2018
I’ve compiled a list, for a coworker, of professional-level cameras I recommend at this point in time, at various budgets.
Things these cameras all have in common, and why I recommend them:
Positive Thoughts on the GitHub Acquisition
January 01, 2018
I met (and became friends with) the GitHub crew when they were merely 8 employees, hacking away on their newly popular product. I’ve followed the team/product extremely closely over the years, with keen interest, and maintain relationships with some of the founders.
I’m also one of the top users on ...
Pipenv: One Year Later & a Call for Help
January 01, 2018
Last Friday marked the one year anniversary of my latest project, Pipenv, which is now the officially recommended packaging tool for the Python community from Python.org.
It’s been a lot of hard work — and very humbling to see how warmly (for the most part), the community has embraced the project.
L...
Panasonic GX850 Review
January 01, 2018
I recently decided to switch cameras (again). This is something I do every few years, out of boredom, mostly, and it always inspires me as a photographer.
I usually end up switching between Leica and Fujifilm cameras, but this time is different — I decided to pick up my first Micro–Four–Thirds ca...
On Love
January 01, 2018
My little sister just got married — I was asked to present 1 Corinthians 13 at her wedding ceremony last weekend. I was touched at the thought, and decided to give a little presentation about the cliché passage, instead of just a standard recitation.
Here is a transcription:
In Paul's first letter t...
Leica 28mm Summaron-M f/5.6 Lens Review
January 01, 2018
LEICA
Joining DigitalOcean!
January 01, 2018
!
I’m very happy to announce that I’m officially joining the DigitalOcean developer relations team, just in time for PyCon US 2018! I couldn’t be more excited :)
I'll be at the Digital Ocean booth periodically, if you want to come say hi! I'll also have some presence at the PSF booth as well.
Heroku...
Apple Pencil Note-Taking: Why You Should Use Apple Notes, actually.
January 01, 2018
I'm a bit of a digital ink snob. I've been writing actively with digital ink for over 10 years, and there's a lot of things that most developers get wrong when developing note-taking apps. There's a plethora of them available for the iPad Pro & Pencil — only two of which I find to have acceptabl...
2017
Working with iCloud, Macs, & The iPad Pro
January 01, 2017
While mostly obviously identify as a software engineer publicly, the majority of my time is not spent writing code always.
Because of this, the iPad Pro is my computer of choice for pleasurable computing — creative work, consumption, writing, email, and even getting things done.
Embraced Workflows
I...
Unix-style Windows Development Environment Adventures
January 01, 2017
Things I've learned thus far, while developing on Windows:
* Cmder is an excellent terminal emulator, and the best one I've found for Windows. Highly recommended.
Third Studio Album, "Resolution", Now Available!
January 01, 2017
I'm happy to announce that my third studio album, Resolution, is now available on all streaming services.
The Reality of Developer Burnout
January 01, 2017
Burnout is, unfortunately, a very real phenomenon in software development — especially when creating and maintaining open source projects with large numbers of users.Research by GitHub and others shows that maintainer burnout is endemic in open source, with many developers reporting feelings of obli...
Sublime Text 3 Heaven
January 01, 2017
I decided to revisit my editor configuration the other night, and experimented with every possible editor I could think of / imagine. I heavily configured vim (neovim), PyCharm, Eclipse, Emacs (Spacemacs), VSCode, Atom, Textual, and more. I knew I was going to stay put with my choice of Sublime Text...
So, I Bought a Surface Book
January 01, 2017
So, I decided to buy myself a Surface Book today. It's a surprisingly high quality device that easily competes with my MacBook Pro in terms of build and design.
I decided to buy it for a number of reasons:
New EP — Alchemical Divorce
January 01, 2017
I have released my most conscise and direct album to date — Alchemical Divorce.
The music, track names, album title, and album art speak for themselves—representing the creative processing of experiences with psychological manipulation and the ongoing journey of mental health recovery.
Publication A...
New Album, Messengers Rising Available
January 01, 2017
I have a (somewhat) new album available, called Messengers Rising.
It was mostly inspired by a previous relationship of mine, as well as coping with being diagnosed with bipolar disorder—experiences explored in depth in my mental health advocacy writing and understanding the complexity of relationsh...
If I Could Amend PEP 8
January 01, 2017
PEP 8 is an excellent coding standard for the Python community, and one of its greatest strengths. There are a few things in it that I dislike, however — so I thought I'd share them with you here.
If you look at the Requests documentation, I have made a few personal amendments to PEP 8, that the pro...
Fish as Default Shell on Windows 10
January 01, 2017
Step 1: Install Fish
Because the Linux Subsystem for Windows 10 is a full Ubuntu operating system, all software packages available for Ubuntu are installable on your Windows machine now! Here's some simple steps to install the latest stable release of fish, the world's greatest shell:
$ sudo apt-add...
Announcing Pipenv!
January 01, 2017
I wrote a new tool this weekend, called Pipenv. Check it out on GitHub!
A (Public) Journal
January 01, 2017
I recently decided to build a small Flask app this weekend to serve a new purpose — sharing a public journal with the internet.
Blog posts aren't the right place for some more candid content, so this new portion of my website exists to share some of my inner thoughts and feelings about the world. If...
2016
MentalHealthError: an exception occurred.
January 26, 2016
The programming community has been opening up over the past few years about mental health issues, so, I want to take this opportunity to open up about my own.This transparency about mental health in tech was uncommon in 2016 but has become increasingly important as we recognize the systematic psycho...
Introducing Records: SQL for Humans™
January 26, 2016
Records is a very simple, but powerful, library for making raw SQL queries to Postgres databases.
This common task can be surprisingly difficult with the standard tools available. This library strives to make this workflow as simple aspossible, while providing an elegant interface to work with your ...
Introducing Maya: Datetimes for Humans™
January 26, 2016
Datetimes are a headache to deal with in Python, especially when dealing with timezones, especially when dealing with different machines with different locales.
Maya exists to do all the hard work for you, so you can focus on what you're trying to do — import or export simple datetime data in known ...
Understanding Empathy, Narcissism, and Mental Illness
January 01, 2016
I have written previously about my experience with a traumatic relationship with a narcissist. I am currently in a very good place regarding this relationship—all loose ends tied and closed, good relations present, no communication. No other relationship I've had in life, so far, has taught me direc...
The Hitchhiker's Guide to Python, Now Published!
January 01, 2016
In March of 2011, I started a project known as The Hitchhiker's Guide to Python, a documentation website (available at python-guide.org) designed to document much of the collective tribal knowledge from various sectors of the Python community. It intends to serve as both a guidebook for newcomers to...
Test-Driving a $200 Coding Font: Operator Mono
January 01, 2016
As programmers, typefaces surround us — everything we do, build, manage, and orchestrate is typically encoded with a pleasant and comforting monospace typeface emanating from our console or editor of choice.
Which Typeface to Use?
I've invested a lot of time in optimizing my development environment...
On Persistence and My Digital Legacy (Bus Factor)
January 01, 2016
My life primarily revolves around creating things—digital things—for others to consume. This content is an embodiment of who I am, and is of great value to me (and hopefully others).
All of my work, including this post, is made available via services which could disappear at any moment, disable my ...
On Cybersecurity and Being Targeted
January 01, 2016
Last month, I was the subject of a targeted cyber attack. Someone went through substantial lengths to attempt to gain access to my GitHub account, but were thankfully unsuccessful because two-factor authentication was enabled.
Account security is something that I’ve always considered myself to be r...
How I Lost 100 Pounds in Six Months
January 01, 2016
If you go searching for images or videos of me speaking at conferences online, you may notice something strange. I seem to be available in two sizes—thick and thin (scroll down).
I was overweight for approximately five years. At my heaviest, I weighed upwards of 255 pounds (August of 2013). At this ...
Announcing: "Unmastered Impulses" by Infinite State!
January 01, 2016
As you may or may not know, a primary personal focus of mine is on electronic music production. I have a deep love for analog synthesizers, drum machines, audio software, and the creation of music. Music is an excellent medium for crafting an image of certain facets of my inner world in a way that I...
A Better Pip Workflow™
January 01, 2016
Update: I developed Pipenv to solve these problems. Check it out.
2015
The Unexpected Negative: a Narcissistic Partner
January 01, 2015
Both my essays and general outlook on life are typically quite positive and idealistic. This attitude has served me very well over the years in software development, open source community building, and human-centered design. However, if you take a look at my core ideals and values, you'll see one ve...
OS X, Lightroom, and the new Photos App
January 01, 2015
Earlier this week, OS X 10.10.3 was released, which includes the much-anticipated new Photos app — Apple’s full replacement for both iPhoto and Aperture.
I’ve been using Photos App for several months now (since the first beta was made available). It’s now a major part of my photography workflow, an...
Back Around Again: Review of the Fujifilm x100t
January 01, 2015
If you've been following me for any length of time, you have more than likely noticed: I change my mind a lot.
One month, I will be convinced that one particular camera will be the only camera I will ever need for the rest of my life. The next month, I find it a weighty burden that I never want to ...
2014
Photography: The Navigation of Choice
January 01, 2014
Photography is all about choices.
As the photographer discovers himself, they encounter a number of polarities that they feel they must chose between. These simple decisions have a dramatic impact on the set and setting of the observer capturing the moment.
Migraines, Color Film, and San Francisco
January 01, 2014
I've made some major experience changes to my life recently (which I'll write about soon). I seem to have found myself with a newfound appreciation for color. I've been subtly adding more color to my wardrobe, buying brighter colored flowers for around the home, and I even purchased a brightly color...
Introducing Certifi: Trust Database for Humans
January 01, 2014
The internet is an untrusted place. Every HTTP request you make should have verification on by default. This happens every time you access a website with your web browser, without any knowledge to the user — there’s no reason your code should be any different.
Certifi is here, for everyone, to make ...
2013
Winter Solstice
January 01, 2013
Winter has fallen upon the Shenandoah Valley, and 2014 is fast approaching. To commemorate the occasion, I created a sonic reflection of the year's journeys.
[Audio track available on SoundCloud] The brief transition from autumn into winter is stark, concise, and profound. These seasonal harmonies m...
Why I Left Medium
January 01, 2013
A few months ago, I decided to move all of my content over to Medium. If you aren't aware, Medium is a new content platform designed for readers and writers. Its main draw is an elegant writing interface combined with the ability to comment on specific pieces of text, instead of on an article as a w...
Video Portrait — Kenneth Reitz / Infinite State
January 01, 2013
My good friend John Mangino of KeyFrame Films approached me recently about a new project — "video portraits" of humans from the Winchester, Virginia area. Here's the result of my interview — a candid conversation about software development and music production.
[Video available on Vimeo]
P...
Understanding Ableton Push
January 01, 2013
Since I was a young child, I've loved music. I became a percussionist early on and dedicated over a decade of my life to my beloved drum kit. Today, I own a growing number of synths and keyboards, but my musical mind continues to gravitate around the concepts of rhythm and geometry. I find myself co...
The Misunderstood Leica Monochrom
January 01, 2013
My camera of choice is the Leica M Monochrom. This digital black-and-white rangefinder camera is my most prized possession and the source of a great deal of inspiration. My beloved camera, unfortunately, has a tendency to polarize people. Instead of being perceived purely as a quality instrument of ...
Sublime Text 3 Love
January 01, 2013
I'm happy to announce that Sublime Text 2 [edit: post valid for Sublime Text 3] was officially released today! This is awesome news. I've spend 12+ hours a day for the past year and a half in Sublime Text 2. It is indeed sublime.
Why should you try it?
Repository Structure and Python
January 01, 2013
It's Important.
Just as Code Style, API Design, and Automation are essential for a healthy development cycle, Repository structure is a crucial part of your project's architecture. Repository organization reflects the same "for humans" philosophy that guided Requests and other successful p...
Paris, AngelHack, API Days 2012
January 01, 2013
I just returned from a lovely trip to Paris, France. I was there for a Heroku-sponsored hackathon: AngelHack:Paris.
Getting There
Unfortunately, I had to fly to Paris straight from Las Vegas, so I had a grueling ~15 hours of flying ahead of me. Luckily, the flights on the way over were lovely. I got...
Israel: Tel Aviv & Jerusalem
January 01, 2013
I recently returned from Israel for a conference, DevCon TLV.
Preparation
I have to admit — I exhibited a fair bit of hesitation for this trip. My good friends and colleagues Terence Lee and Richard Schneems were at a similar conference in Tel Aviv, but had to leave early because of terrorist activi...
Introducing Flask-Sockets
January 01, 2013
The state of WebSockets in Python is unfortunate — there's no obvious way to do it. Twisted + Autobhan? Node.js + HAProxy? Diesel.io? Nothing feels right. Let's create a WebSocket echo endpoint.
from flask import Flaskfrom flask_sockets import Socketsapp = Flask(__name__)sockets = Sockets(app)@socke...
Introducing DJ-Static
January 01, 2013
Django doesn't recommend the production use of its static file server for a number of reasons. There exists, however, a lovely WSGI application aptly named Static.
Thus, DJ-Static was born.
How I Develop Things and Why
January 01, 2013
I've always considered myself a bit of a software junkie. Nothing excites me more than a great piece of new software. Some of my best childhood memories are our trips to Grandma’s house, where I’d have access to a computer with a dial-up connection that I’d use to obtain freeware and shareware. I’d ...
Hotel Room
January 01, 2013
Personal island of solitude. A place to reflect.
Growing Open Source Seeds
January 01, 2013
The Facebook Story
The Facebook Python SDK Years ago, Facebook created a Python library for interfacing with their API. The project had a large number of users (after all, Facebook is pretty popular), but was very rarely updated. One day, the library stopped working completely. Dozens of people tryi...
Getting Started in Open Source
January 01, 2013
Go get a GitHub account. Lurk. Find a project or two that you're interested in. The GitHub Blog is a great place to find new and interesting projects.
Watch. Follow a developer that makes great stuff. Get familiar with the innards of a project and see what other contributors do.
If you find a bug or...
Documentation is King
January 01, 2013
As a member of the development community, I have the unique opportunity to take part of a powerful social movement, creating the tools that are fundamentally changing the world around us. Open source has found itself to be the crux of my professional, personal, and social life. There's something spe...
Buying Your First "Real" Camera
January 01, 2013
A friend of mine approached me recently, looking for camera advice. She has been experimenting with photography and is interested in investing in getting her first "real" camera, but didn't know where to start. I've made recommendations like this on numerous occasions, so I thought it woul...
Beautiful Dublin
January 01, 2013
I recently returned from a trip to one of my favorite European cities — Dublin.
Dublin is a casual but picturesque city, filled with a cultured people of candor.
Be Cordial or Be on Your Way
January 01, 2013
Contributing to Open Source can be stressful. By opening a Pull Request to a popular project, you're inviting the maintainers and all of their users to analyze and scrutinize your code. Often, they will.
Announcing Requests v1.0.0!
January 01, 2013
Today marks a major milestone. Requests, Python HTTP for Humans, has finally reached release v1.0. This is a big deal.
Amsterdam and Groningen
January 01, 2013
I just returned on a lovely trip to the Netherlands. I landed remarkably early in the morning (8am) and had to spend several hours walking around the city. Early morning Amsterdam was incredibly desolate and beautiful.
2012
Xcode, GCC, and Homebrew
January 01, 2012
Open source is incredible.
Several months ago, I got fed up with having to download Xcode to build my software. I took the Xcode installer, ripped out all of the parts I didn't need, and made a nice installer for GCC. It ended up being ~200MB in size. It took 2 minutes to download.
OSX-GCC-Installer...
The Future of Python HTTP
January 01, 2012
I like to think Requests is mostly analogous to Werkzeug in terms of purpose, functionality, and goals. One is for servers while the other is for clients.Werkzeug and Flask were huge inspirations for Requests' design.
On Heroku and 2012
January 01, 2012
Alas, 2012 is quickly coming to a close.This has been an absolutely incredible year — easily the best of the mere twenty-four I've experienced so far. I became a member of the Python Software Foundation, traveled all over the world, met several thousand inspiring software developers, and collaborate...
2011
Static Sites on Heroku Cedar
January 01, 2011
Heroku's excellent Cedar Stack has first-class support for Python, Ruby, Node.js, Java, Clojure, and Scala applications. Unfortunately, there's no obvious way to serve static sites without first fronting them with a Rack or WSGI application.This essay demonstrates Kenneth's approach to technical pro...
Major Progress for Requests
January 01, 2011
Requests has changes a lot over the past few months. An update is long overdue.In case you aren't familiar, Requests is Python HTTP for Humans.
A Slow and Painful Death for Urllib2
The most notable change has been the complete removal of urllib2 as a dependency. Requests started out as a clean wrapp...
Legit: The Sexy Git CLI
January 01, 2011
GitHub for Mac is not just a Git client. This comment on Hacker News says it best:
Joining Heroku!
January 01, 2011
I am extremely happy to announce that I am joining the Heroku team!If you aren't familiar, Heroku is a Polyglot Platform as a Service for hosting web applications. The product is executed so well that they are responsible for an entire micro-industry of PaaS platforms for different languages (Python...
Joining Arc90 + Readability
January 01, 2011
I'm extremely happy to announce that I am joining the Arc90 team to work on ReadabilityArc90 was best known for creating Readability, one of the first successful reader mode services. The company pioneered the concept of clean, distraction-free reading experiences that would later be adopted by majo...
Announcing Httpbin.org
January 01, 2011
The development of Requests, the Python HTTP Module for Humans, led to some annoying testing practices. Relying on random websites and services in order to test different capabilities of the HTTP client became annoying quickly. PostBin.org was perfect for testing POST request behavior, but is useles...
2010
OS X Trash Freedom
January 22, 2010
UX Philosophy: This hack represents a fundamental tension in user interface design: the balance between safety (trash as a safety net) and efficiency (direct deletion). The 120GiB accumulation demonstrates how "helpful" features can become counterproductive without active management.
Ventures: Python Development at NetApp
January 01, 2010
For the past year I've been employed at Clutch, Inc in Winchester, Virginia, as a Systems Engineer and Web Developer. I've spent most of my time there developing content-based websites and web applications in PHP, advanced JavaScript, Grails, and the like. I even had the opportunity to develop the o...
Unix Exit Status Code Reference
January 01, 2010
I always find myself constantly Googling the list of unix status codes (typically defined in sysexits.h).
0 # successful termination
64 # base value for error messages
65 # command line usage error
66 # data format error
67 # cannot open input
68 # addressee unknown
69 # host name unknown
70...
The Setup
January 01, 2010
I'm Kenneth Reitz, one of the two co-founders of Züm Hosting. I'm a passionate Python developer for NetApp. I typically spend my nights developing a number of open source projects, and my weekends architecting the web.
What hardware are you using?
My sole machine is a 2010 MacBook Pro running a Core...
Terminal Productivity App: AutoJump
January 01, 2010
On average, I'd say I spend 65% of the workday in a terminal session. About 95% of that time is within the same 4 directories. cd foo & cd bar can get old.
AutoJump is a "cd command that learns". It tracks shell history to detect which directories you spend the most time in, and allows...
Tablib Dataset Library v0.6.1 Released!
January 01, 2010
I'm pleased to announce a new Python module: Tablib. Tablib is a simple module for working with tabular datasets. It allows you create tables of data using standard Python datatypes, manipulate them, and easily export to Excel, JSON, YAML, and CSV.
Basic Usage
import tablib
Spotify in the US? Yes please.
January 01, 2010
I spent about 8 hours last night obtaining a Premium Spotify account in the US, and I've never been happier. As you know, Spotify is only available in the UK, Spain, and France. So, the only way to signup for an account is to take a trip overseas... virtually.
Step 1: Signup for a Virtual Private Se...
Snowpocalypse
January 01, 2010
Snow, snow, snow, snow. I've never been so tired of the word.
My small town of Winchester, VA suffered from over 3 feet of snow over the past week. Everything shutdown.
I am reminded of the importance of infrastructure.
I lived in Minnesota for 5 years, and have never seen so much panic from some si...
ShowMe v1.0.0 Released
January 01, 2010
This weekend, I released a new Python module to PyPI: ShowMe v1.0.0.
ShowMe is a simple set of function decorators that give you easy diagnosis of common problems in your Python applications.
Basic Usage
@showme.trace
def complex_function(a, b, c, **kwargs):
...
Semantic Versioning
January 01, 2010
While listening to this week's episode of [The Changelog](http://thechangelog.com), I came across Tom Preston-Werner's [Semantic Versioning Specification](http://semver.org/). I love what I found.For many years, the open source community has been plagued with version number dystonia.
Notes on git-svn
January 01, 2010
I'm forced to use SVN at the office. It's not THAT bad. OK, so maybe it's absolutely horrible. But it's more than understandable on their end. Those darn .svn folders drove me crazy. So, I use git-svn. Git-svn allows me to harness all the power of git with a subversion server.
Perfect. (Or at least ...
New Years Resolutions for Startups
January 01, 2010
Here's a small list of 2009 New Year's Resolutions for your startup.
1. Simplify
Anyone can make something complex. It takes thoughtful planning, consideration, and discipline to make something simple. Simple = elegant. The same applies to your business.
2. Get some Humility
Don't assume you know wh...
Google Docs Now Supports All Filetypes
January 01, 2010
For an extra $5 a month, Evernote lets you upload a file of any extension to their servers. This is a fantastic feature for developers who like to keep their random psd and 3ds files in sync with the cloud.
Google AdWords for TV. Yes, TV.
January 01, 2010
Today, Google unveiled their latest technology: AdWords for TV and AdSense for TV. This totally blows my mind. They are about to totally revolutionize the television industry.
You can manage TV ads just like you manage AdWords ads for the web. You enter the amount you're willing to pay per impressio...
GitHub Syncer in Python
January 01, 2010
Today I rewrote a little utility I've been using for a while to keep all of my GitHub repos up to date and organized. It updates / clones all private, public, and watched repositories from your account. It also detects if your repo is a mirror or fork, and files it accordingly.My watched list is hug...
GistAPI.py v0.1 Released
January 01, 2010
Today I released GistAPI.py v0.1.2. It features a highly-optimized Gist object model and API wrapper which allows you to consume Gists in your next Python application.
GitHub just rolled out a miniature pre-release of the Gist API last month, so API functionality is pretty limited at the moment. Mor...
Getting Started with Python
January 01, 2010
## For the past couple of weeks, I've been working on a Python tutorial series for beginners.
Dev Tool: Ghost - Manage /etc/hosts
January 01, 2010
The Ruby community has really been blowing me away lately with their array of indispensable web development tools.
Ghost is no exception to this rule. It is a simple command line application for adding and removing 127.0.0.1 entries in your /etc/hosts file. I can't believe I hadn't thought of this s...
Apache GZip Deflate Compression
January 01, 2010
Here's a quick Apache `.htaccess` file for adding server-side data compression
2009
Your Degree Is Worthless; Collaborate.
January 01, 2009
I’ve always been a self-motivated learner as well as a free thinker. I was never one to get involved in cliques or social ladders. Despite the fact that I was raised being constantly told that grades were the single most important thing in my life, I could never accept that. So I didn’t. I just did ...
Windows Mobile and iPhone OS
January 01, 2009
I've owned about 5 WIndows Mobile devices, 3 Palm Devices, and 1 iPhone
What's in a Language?
January 01, 2009
What do developers want in a language?
What's In a Design?
January 01, 2009
Disclaimer: I am not an Apple fanboy.Apple makes a fortune off of speeple.
An Apple FanBoy blindly follows everything the cult leader, Steve Jobs has to say. They go out and purchase every iProduct that Apple realeases and does so with a smile on their face, not realizing that over the course of fou...
Wasted Talent
January 01, 2009
I'd say that 95% percent of the students that I met at George Mason University my Freshman year had no idea why they were even there. This is so sad.This observation reveals Kenneth's early recognition of systemic issues in higher education—the disconnect between institutional expectations and stude...
Was College Worth It?
January 01, 2009
George Mason University (at which I'm currently a non-studying student) is a fantastic environment for a student in their 20's.Kenneth's description of himself as a "non-studying student" reveals his unconventional approach to higher education—using the institution for its resources and en...
User Interface: Content vs. MetaContent
January 01, 2009
Trey of lopsa.org wrote a fantastic article on the the techie vs. non-techie divide.Kenneth's early recognition of the content vs. metadata divide anticipates fundamental UX design principles that would become central to successful consumer technology. This insight predates the iPhone's revolutiona...
The Universal Flaw in Commercial-Based OS's
January 01, 2009
Designers and Developers around the world, I present to you the flaw prevalent in all of today's commercial operating systems. This is not a security hole, nor is it a CPU-capping bug. It's more of a world-view. We're simply looking at things the wrong way.What ever happened to the days when a compu...
The Ultimate RSS Feed Reader
January 01, 2009
What would the ultimate RSS Reader have? Hmmm....Features:
The Truth of Facebook's FriendFeed Acquisition
January 01, 2009
As I'm sure most of you know, Facebook decided today that it was going to buy FriendFeed. August 2009 acquisition that significantly influenced Facebook's News Feed development.
My opinion might be a little biased... I just discovered FF recently, and I must say that I've been thoroughly impressed w...
The Call for an Open Source Social Network
January 01, 2009
Lately, I've been tossing some ideas around that I feel would benefit the Social Web as a whole. It’s been going through some rough times lately, and I think it’s time for a change. Or so I thought.My first idea was to create a site that was rather decentralized, allowing all of your content to exis...
Software Development vs. Computer Science
January 01, 2009
Most developer job applications that I see have a "BS in Computer Science or equivalent experience" requirement.
During my studies in Computer Science at George Mason University, though short, I learned a number of things. One of them was what a waste it was to learn such higher math in my...
Smoothy TextMate Theme
January 01, 2009
I've said it before and I'll say it again: TextMate is one fantastic text editor.
Now, I won't bore you with my passion for it, but if you've been reading my blog for long, you know how I feel.I do the majority of my development in TextMate, so theme choice is pretty important (others beg to differ ...
Sick of Wireless 5GB Caps
January 01, 2009
I live 15 miles away from a lovely town called Winchester, VA. 1
We do not have cable where I live. We also don't have DSL. That's right, no highspeed. All that we have is Satellite.
I'm a web developer, I need something a little more relable than a Satellite connection. 1000ms latency while you're ...
Revolution vs. Innovation
January 01, 2009
I've been thinking alot about this cloud-computing "movement" that has been a buzz word for the past year and half or so. Being able to access anything from anywhere? Awesome, but I can do that now.I don't really get it why everyone's like "oh this will totally change computing as we ...
Remote TextMate Development via SSH and Rsync
January 01, 2009
I am a huge fan of TextMate. In my opinion, it is by far the greatest text editor ever conceived by mankind.TextMate defined the modern code editor experience with innovations like snippets, bundles, and fuzzy file searching—features now standard in editors like VS Code and Sublime Text. This 2009 p...
Reflections on Windows 7
January 01, 2009
While I have not had the opportunity to try the latest Windows 7 Release Candidate, I have done a bit of reading on the subject. In my research, I have made the following observances 1
Vista was truly the worst operating system I have ever used in my life. 2 It had some wonderful features, but every...
Python + Regular Expressions
January 01, 2009
Have you ever needed to parse through large amounts of text looking for a specific pattern? Patterns like “one capital letter followed by three numbers” or “dd/mm/yyyy”? This is known as Pattern Matching. Regular Expressions allow easy syntax for pattern matching, and is an invaluable skill to add t...
OSX + MAMP + Python + PHP + MySQL
January 01, 2009
If you're a web developer who uses MAMP in conjunction with anything other than PHP, I'm sure you've had quite a large bit of frustration involving multiple MySQL instances.
Not any more! This simple chain of commands will save you days upon days of troubles:
$ sudo rm /tmp/mysql.sock
$ sudo ln -s /...
OpenDNS Finally Monetizes
January 01, 2009
I've been a long-time fan and user of OpenDNS, the free and often-superior DNS Server. I've always noticed drastic improvements in my site loading speeds when using the service (due to drastically improved domain name lookups). There's really no downside to using the system. It's significantly faste...
New Design!
January 01, 2009
KennethReitz.com now has a new, rich theme, ready to take on a new life. And now iPhone friendly! 1 My gloal? To become more well known that both Joel Spolsky and Chris Parillo. Nothing wrong with them, of course. I'm just as qualified though. And I think I might bring more to the table. Think I can...
Mint.com: Money Management 2.0
January 01, 2009
There are a few things in life that I am naturally not good at. Some people fail at communication skills, while others get angry and lash out at others for no reason. I, however, like to spend all of my money. ALL of it. Every paycheck.
But thanks to this lovely website, that is going to stop now: m...
Microsoft Software Running in Linux
January 01, 2009
2009 Linux Context: This was peak Linux ideological warfare - before containerization, WSL, and Microsoft's open-source pivot. Running proprietary software on Linux was seen as philosophical betrayal by purists.
A few months ago, I wrote a small article for ProgramerFish that was featured on SlashDo...
MediaTemple (dv) Backup to S3 Script
January 01, 2009
## The Problem[MediaTemple](http://mediatemple.net) servers run the *Plesk Control Panel*, which *has* a reputation for having *useless backups*.
## The Solution* MySQL Dumps of all Databases and Tables* All configured vhosts, zipped up* Pushes it all to either S3 or FTP
Stick it in /etc/cron.daily/...
Media Temple and My Hosting
January 01, 2009
While I haven't used many hosting services, I must admit that I cannot imagine any being much better than Media Temple.This early essay reveals Kenneth's preference for premium tools and services—a mindset that would later influence his approach to developer tooling. The confidence in recommending w...
jQuery Snippet #1: URL Parameter Fetching
January 01, 2009
2009 Technical Context: This was the era before URLSearchParams API (2016) and modern URL parsing libraries. Manual string manipulation was the standard approach for extracting query parameters.
I've decided to provide you with a new data stream. The jQuery Snippet of the Week. Enjoy.
// Read a page...
Instapaper: Best Web App Ever Created
January 01, 2009
Out of all the startup applications that I have ever used, Instapaper (from the creators of micro-blogging site Tumblr) is by far the most innovative and useful.Instapaper was created by Marco Arment in 2008, not the Tumblr team (though Arment was Tumblr's lead developer). His 'read later' concept b...
if (TextMate == 42)
January 01, 2009
{ I've had some pretty extensive experience using every major OS for various forms of development and end-user work. And just like every other programmer in the world, I certainly have my opinions, likes, and dislikes of every platform (some are a lot closer to perfection than others of course). Tex...
I Finally Got a MacBook
January 01, 2009
Yesterday I stopped by the Apple store in Fair Oaks Shopping Center in Fairfax, VA and finally purchased a MacBook. I've been wanting one for quite a while – ever since I fell deeply in love with OS X after adopting an old 12" G4 PowerBook I've been using for the past 5 months.
I decided to get...
Google Analytics Intelligence
January 01, 2009
Google's super-star flagship cloud-based visitor tracking software, Google Analytics, released a new feature recently. It's called Intelligence.
GitHub + Strategy
January 01, 2009
GitHub is currently down. And that is very sad. However, they have an Awesome Angry Unicorn.This captures GitHub in its early days when outages were more common and the "Angry Unicorn" error page became iconic. Kenneth was clearly an early adopter, recognizing GitHub's importance when it w...
Generate a Random MAC Address in Python
January 01, 2009
Technical Context: MAC (Media Access Control) addresses are unique identifiers for network interfaces. This code generates random MAC addresses, which was useful for network testing, virtualization, or privacy purposes in 2009. The specific vendor prefix used here (00:16:3e) belongs to Xensource, ma...
Free Incredible Color Scheme Designer
January 01, 2009
title: "Free Incredible Color Scheme Designer"
date: "2009-01-01"
category: "Design"
Fizz Buzz in Python
January 01, 2009
Jeff Atwood of Coding Horror has developed a sure fire test to filter out good programmers from bad ones. It's called the FizzBuzz test, and it's a very simple problem to solve.FizzBuzz became legendary in programming interviews because it revealed a shocking truth: many candidates who claimed prog...
Fallibilism
January 01, 2009
Everyone seems to think that they are always right. It's pretty funny when you think about it. Because they aren't. At all. That's why I'm a falliblist.Fallibilism, developed by philosopher Charles Sanders Peirce and later refined by Karl Popper, holds that our knowledge is provisional and that we s...
Facebook vs Twitter: A Critical Synopsis
January 01, 2009
For the sake of us all, lets take a look at two major social networks on the web today: Facebook and Twitter.Written in 2009, this comparison captures a pivotal moment when Twitter was still emerging as a major platform, before its role in political movements, before Facebook's massive scale, and be...
Facebook Plugin for WordPress
January 01, 2009
Development Era Context: This post from 2009 represents the early days of social media integration with content management systems. The casual mention of developers creating their own solutions reflects how nascent the ecosystem was - before official APIs and standardized social plugins.
Facebook Lite Open to Public!
January 01, 2009
Historical Context: This post captures a pivotal moment in social media evolution - the launch of Facebook Lite in 2009. At this time, mobile internet was still expensive and slow for most users, making lightweight alternatives essential. The author's excitement reflects how significant this was for...
Early Adoption
January 01, 2009
The world is full of people who wait for people to tell them what to use next. Especially on the internet.Written in 2009, this observation predates the rise of social media influencers and the entire "recommendation economy." Kenneth identified the fundamental human tendency toward social...
DRY and Pythonic jQuery?
January 01, 2009
Apparently, groovy:spring:java as jabs:jquery:javascript. As if jQuery wasn't short enough already.This 2009 post captures the era's fascination with domain-specific languages and syntactic sugar—an impulse that would later manifest in CoffeeScript, TypeScript, and modern JavaScript transpilation to...
Do You Develop Software or Experiences?
January 01, 2009
I read an [interesting article](http://www.antipope.org/charlie/blog\-static/2009/12/21st\_century\_phone.html) today on Apple's marketing strategy. A certain section stood out to me, regarding their hardware manufacturing:This early insight into Apple's "experience-first" philosophy presa...
Django Remote Development Server
January 01, 2009
If you've worked with Django much at all, I'm sure you've had this problem: wanting to access the built-in development webserver remotely
Django ORM for Online Payment Systems?
January 01, 2009
I've been spending an increasingly large amount of time with some rapid development frameworks, primarily Django (Python!), Grails (Groovy / Java), and Symfony (PHP)
Dear Borders: I hate you
January 01, 2009
Dear Borders (and Starbucks subidary Seattle's Best Coffee), You have a lovely book store. Quite lovely
CSS With a Hint of DRY
January 01, 2009
I am a DRY (Don't Repeat Yourself) programmer. I'm not positive, but I most likely inherited my love for this concept from my intensive Python immersion. I'm so grateful for it. Anyway, DRY is an essential stage of any developer's workflow. It drastically enforces good structure, and significantly i...
Crossing Over to the Dark Side
January 01, 2009
Well, I've done it. I've crossed over. To .NET.I will continue to be a complete open-source junkie of course, butduring the work hours, I will no longer be working with PHP and Python.I will now be working with .NET and SharePoint.
I was presented with a rather good reason for this actually:
"U...
Convert a List of Strings to UTF-8 in Python
January 01, 2009
If you'd like to learn more about programming, contact me for a one-on-one lesson.
def utf8ify(list):
'''Encode a list of strings in utf8'''
return [item.encode('utf8') for item in list]
Contact Syncing for Massive Productivity Booster
January 01, 2009
Google significantly increased my quality of life recently. How? Let me explain.
While I am a firm believer that cloud computing should never be viewed as a replacement for the current desktop/ model, I must say that I am now a huge fan of storing my data on the internet. Not all of my data, keep in...
Back to What I Really Love
January 01, 2009
This early career reflection from 2009 shows Kenneth's commitment to working with technologies he finds meaningful rather than pursuing purely financial opportunities. The essay demonstrates his early understanding that professional fulfillment comes from alignment between personal values and techni...
Asynchronous Google Analytics!
January 01, 2009
Google Analytics now supports Asynchronous loads, which allow the browser to continue loading content while ga.js is being loaded. Now it's safe to put the script tag in the <head> for you XHTML STRICT junkies.
Apple + Developers = Earnings
January 01, 2009
Apple, Inc reported their highest earnings ever today
Amazon is Amazing... Most of the Time
January 01, 2009
Again and again I'm really amazed at Amazon. I discovered Amazon S3 a few months ago, and was really impressed with the service
Aesthetics: More Than Meets the Eye
January 01, 2009
I was doing some routine poking around the TextMate Wiki tonight, and I came across an amazing mod. Amazing.This captures the 2009 era when TextMate was the editor of choice for Mac developers, before the rise of Sublime Text and VSCode. Kenneth's excitement about customization themes reflects the b...
2008
The FBI Releases Code Challenge to Hackers
January 01, 2008
The Federal Bureau of Investigation, that's right, the FBI, has just released a Code Challenge for hackers around the world! Here are the details:
Browser Wars: The Saga Continues
January 01, 2008
Every computer-savvy technocrat is partial to their own web browser of choice. I've used every major one out there, and have to come to the conclusion that there is no one-for-all browser that everyone should use.Written in 2008, this essay captures the browser landscape at a pivotal moment—Chrome h...
A New Spin to Software Platform Design
January 01, 2008
January 2008
I wrote this article two years ago, before I found OS X.The irony is that OS X already embodied most of the principles I was advocating for here. Sometimes the future we envision already exists—we just haven't discovered it yet.
As I've said before, I find many reasons to believe that m...