(Jun 24, 2022)
TCP. I think I know what I did wrong yesterday. If I can make this work, it'll help me TDD the server's main loop. Bonus: Kitty!
(Jun 22, 2022)
Something in last night's Friday Coding Zoom struck me. I need to think about this and try it.
(Jun 16, 2022)
Rotation Matrices? Why not, might be better. Let's spike. Warning, this is gonna get a tiny bit mathematical.
(Jun 14, 2022)
I think we're ready to draw something. How can we make the drawing more testable? I have a p-baked idea, for small p.
(Jun 8, 2022)
Tuesday night's Friday Night Coding Zoom has hooked me. This is the beginning of the result of that hook.
(May 27, 2022)
I was asked what I tell people to do that I don't do myself. The answer may surprise you.
(May 24, 2022)
We should have it. What should we do when we haven't?.
(Apr 13, 2022)
The experiment i did yesterday deserves a bit of commentary. Something to think about.
(Mar 14, 2022)
You'd think that software developers would realize that they are prone to error. Yet we are often more opinionated than we probably should be. Here's my opinion on that.
(Feb 27, 2022)
In which: Our intrepid author attempts to find some use for the FP library he has been toiling on for over four hours.
(Feb 26, 2022)
Today, for your delectation, I offer: the Library Trap! (Update: I looked at XSet2.)
(Feb 25, 2022)
Let's see if we can find a decent way to provide filter, map, reduce functions in Codea Lua.
(Feb 24, 2022)
Yesterday's search for strawberries in the XST patch discovered problems. I want to at least double check what we did. TL;DR: It all works. Odd morning.
(Feb 23, 2022)
We're taught to 'make it work; make it right; make it fast'. We're taught that if it's hard to test, it's not right. Let's explore. TL;DR: No strawberry here?
(Feb 15, 2022)
One 'reason' why folx don't want to learn technical practices seems to be that they expect no benefit. Sometimes that's more about futility than actual benefit.
(Feb 12, 2022)
Some developers show little or no interest in learning practices that could make their lives better. I'd like to understand that.
(Jan 29, 2022)
Agile Software Development is about people working together. For that to happen, it helps to be kind, respectful, and helpful. Let's talk about that.
(Jan 28, 2022)
I'm pressing forward with the Lispy thing, but I have some concerns. I find it difficult to think about but I think I have an angle. (Spoiler: It's a wrap!)
(Jan 17, 2022)
GeePaw Hill is workin on an idea. I urged him to publish his thoughts because I knew it would help him to make things concrete. Also I wanted to comment here.
(Jan 17, 2022)
I wasn't really planning to write about Sudoku again, but here we are.
(Jan 11, 2022)
Just a bit more playing with the Lispy Calculator to while away a few minutes in the afternoon.
(Jan 11, 2022)
Thoughts and observations. Stuff and nonsense.
(Jan 10, 2022)
I'm going to push forward with this LISP / Scheme dialect. I'll begin by explaining why, and why not.
(Jan 9, 2022)
It's still the weekend, so I'm going to follow Peter Norvig's Python LISP Implementation a while and see where it takes me.
(Jan 8, 2022)
It's my weekend and I'll try if I want to. You could try too if it happened to you. Spoiler: This takes a very weird turn. Final line: Your move, Bill!
(Jan 7, 2022)
I guess there's nothing for it but to figure out how to rewrite, i.e. refactor, a set operation based on the existence of helper structures. But how? I have ideas but are any of them any good?
(Jan 6, 2022)
Bill Wake is trying to get me to think in terms of trees. I don't want to, but he does have some good ideas. Thanks, Bill!
(Jan 5, 2022)
Today I plan to experiment with creating some form of expressions that might be optimized. I expect to stumble a lot. Come along, point, and laugh.
(Jan 4, 2022)
No, not smiles and frowns. Algebra. At this moment I don't think much code will be done today. Feel cute, might delete later.
(Jan 3, 2022)
It's 6 AM and I have an idea. This could be very good or very bad.
(Jan 2, 2022)
I don't love the interface for adding functions into an XSet. And I want to add them 'one level in'. Will hilarity ensue? Probably not, but something will happen.
(Jan 1, 2022)
Some HNY thoughts, and more on the function as an element idea. Joy, philosophy, code. What's not to like?
(Dec 31, 2021)
I was thinking before I got up about median and mode. Then I had a truly marvelous idea.
(Dec 30, 2021)
I want Lua tables to be more useful as XSets. There's a hard way. But the current design also offers an easy way. (The answer will surprise you. It surprised me.)
(Dec 29, 2021)
I'm on a path to make ordinary tables behave like XSets. But first, I have to figure out how this thing actually works! Much musing, then some code.
(Dec 28, 2021)
I have in mind small things for today, starting with an interesting and confusing mistake left over from yesterday.
(Dec 27, 2021)
No, I'm not hearing voices. But the code does tell us things, just like any working material. We need to learn to listen. Today, we listen and the result is good.
(Dec 26, 2021)
A look at the code. Maybe a bit more on stats. P.S. I learn something and ditch almost all the code I wrote this morning.
(Dec 25, 2021)
It's Christmas, I'm waiting for the household to wake up, and I enjoy what I'm doing. Perfect holiday so far!
(Dec 24, 2021)
Today I plan to get grouping and summing working. Who knows, it might happen. If not, there's always tomorrow or my birthday.
(Dec 23, 2021)
Let's think about what the current drafts of summing and grouping tell us about our system. Then code (anyway).
(Dec 22, 2021)
Today, rather than make any deep progress, I plan to work on something I consider interesting, sums, averages, and grouping. I promise to publish this even if it explodes. (It doesn't, quite.)
(Dec 21, 2021)
Transformations, optimizations, and the relationship between OO and XST. Got some thinking to do. You get to watch, if you're tough enough. At least a tiny bit of code.
(Dec 20, 2021)
Step by step, inch by inch, slowly we turn long searches into more direct accesses.
(Dec 18, 2021)
I don't want to get stuck in a never-ending series of new setops: there won't be much learning there. Where's the beef?
(Dec 17, 2021)
I'm sure a lot of you have been saying 'Yes, but what about tuples?', or 'Why XST anyway?'. Today, we address those fascinating concerns.
(Dec 16, 2021)
Let's work on those new operations a bit.
(Dec 16, 2021)
Short morning today. I have a tentative plan for indexes. I'll scribble some sets. Might code.
(Dec 15, 2021)
Last night's Zoom Ensemble netted me a few ideas. I'll start exploring those today. Hilarity or perhaps something good will ensue. I can't wait to find out.
(Dec 14, 2021)
Further reading leads me to think about design, and design motivation. Castles in the air. Or underground. Good stuff happens.
(Dec 13, 2021)
In conversation with Bill Wake and with the Internet, I have an idea for something to try. And I'm just about ready to assess where we are and where we should go.
(Dec 12, 2021)
I'm not sure whether this will be useful, but Bill Wake gets the credit if it is.
(Dec 11, 2021)
Bill Wake was trying to hammer an idea into my head. I must think about that. And I have a small idea of my own.
(Dec 10, 2021)
Time to work on the actual restrict operator for CSV, since the pattern-maker experiment was a success.
(Dec 9, 2021)
There's no way around it, I've got to work on the fast restrict today. Might not finish. We'll see.
(Dec 8, 2021)
Getting started with CSV data. And reporting a conversation.
(Dec 7, 2021)
Reflection leads me to focus a bit more on set operations, and less on internal methods. Does this call for a new layer? Also: real technical debt! Updated with idea from Carl Manaster!
(Dec 6, 2021)
I'm going to try to create pipelines using coroutines. I think they may make for a more expressive interface. I turn out to be partially right.
(Dec 6, 2021)
How do you design a thing like this, Brain? Same as everything else? Or not?
(Dec 5, 2021)
I was puzzling over an issue with 'union' and gained an insight that either I've never had, or that I had lost. Whee!
(Dec 3, 2021)
I found the easy way to build an iterator in Lua, so we'll do that and see whether it improves the code as much as I think it will.
(Dec 2, 2021)
I think I'm going to start on restrict today. There are some issues around atoms.
(Dec 1, 2021)
Last night I understood how to do something with XST that I've not in the past been able to do. So let's talk about why XST is interesting and what one might do with it.
(Nov 30, 2021)
I have a random idea about the data structure for sets, so thought I'd give it a try.
(Nov 30, 2021)
Save me, I'm thinking about Extended Set Theory again.
(Nov 12, 2021)
Just because I think I should do SOMETHING, I think I'll improve how CodeaUnit displays results on the screen.
(Nov 10, 2021)
I'm going to try to build a 'fluid interface' feature for Codea's graphical style capability. Why? I don't know.
(Nov 9, 2021)
Let's improve CodeaUnit a bit. But first, what's the deal with iOS shortcuts? An odd report on an odd morning.
(Nov 8, 2021)
Driven by some Slack chatter, I've been thinking about feedback. How does that fit into life, and into this little program?
(Nov 4, 2021)
Some refactoring, and some thoughts on a Twitter thread. And an odd surprise: the code says No.
(Nov 3, 2021)
Rules, rules. TDD rules, Beck Rules, OK. And a cat.
(Nov 2, 2021)
I'm just not up for going back into the Dung mines. Gonna put plain function detection into the stats instead. Also, random subtweeting. Also bear bites man.
(Nov 1, 2021)
At last, I get to apply Dave's scrolling thing. It's simple, and obvious, and I never thought of it. And a couple of stories of a great programmer.
(Oct 31, 2021)
This morning, I plan to add detailed method reporting to the full report. I am expecting no real trouble but have recognized a mismatch.
(Oct 30, 2021)
Let's get some output up in this baby. I plan to steal two good ideas while I do this.
(Oct 28, 2021)
I wonder what we could do about comments. They're tricky.
(Oct 27, 2021)
"If this is his idea of fun, he must be a laugh riot at parties." -- A Reader
(Oct 25, 2021)
Backward? Or forward? Which was it?
(Oct 24, 2021)
We continue working on our little 'Making App', because it's kind of fun. Today, I foresee a 'major refactoring'.
(Oct 23, 2021)
Let's do methods, and try to drive out some objects.
(Oct 21, 2021)
In the interest of variety, let's do some work for the makers here. Let's see how we can collect some interesting statistics from Codea programs.
(Oct 13, 2021)
We were thinking about words for code. Let's consider these. New! Improved! Now with more words!
(Jul 23, 2021)
I mentioned that the dungeon program is boring me on Twitter and asked for ideas. Andreas asked about software design. Practice, folks, practice!
(Jul 5, 2021)
Herewith, some remarks pro-Scrum, and a reminder that Scrum is not as good for developers as it might be. Even some advice to developers.
(Jul 5, 2021)
On June 19th, I sent this email to the CPO of the Scrum Alliance. I have had no reply. In a second article today I will offer some related ideas.
(Jun 24, 2021)
Scrum asks for an Increment every Sprint. Of all the Scrum rules, this one is most important for developer success and survival.
(Jun 11, 2021)
Some odds and ends, a nice feature, and a bit of trouble. And the most distracting thing ever!
(Jun 10, 2021)
Let's pretend we care about that inefficiency in drawingOrder. Also a momentary loss of momentum.
(Jun 9, 2021)
I don't usually predict an outcome but today I think something good is going to happen. Let's find out.
(Jun 8, 2021)
Today, more refactoring to remove connections between dungeon objects and their tiles. And, as always, some thinking.
(Jun 5, 2021)
Maybe some wind for my sails. A need for better notes. An idea from Bryan's experiment with Unity. A thought about apps without programming. Everything is hopeless. Not necessarily in that order.
(Jun 3, 2021)
Doors, or I'll know the reason why! Just in: Ron bites bear!
(Jun 1, 2021)
What are you doing, Ron, how do you do it, and most of all, WHY?
(May 31, 2021)
Let's set some direction. I'm concerned that I'm off track on what is of value to work on. Possibly it's residual fear from decades ago.
(May 29, 2021)
I think we'll do a bit more on our 'Making App', the part of our code that helps us make the 'Shipping App', the product we ship. (We decide to bless this effort.)
(May 28, 2021)
One more challenge in the class/method finder, then maybe we'll think about what we actually need in our Making App.
(May 27, 2021)
I've had an idea about a change--perhaps an improvement--to the class/method reporter. As I write this, even I don't know what happens next.
(May 26, 2021)
More work on our nascent Making App. Dave1707 has some interesting tricks in his programs. And we have a fine small example of refactoring 'legacy' code.
(May 25, 2021)
Dave1707 from the Codea forum provided an interesting program. I would like to bring it under control.
(May 6, 2021)
I was going to move back into the dungeon today, but realized I wanted to talk about what I learned doing the ominoes exercise. Here goes ...
(May 5, 2021)
It is of course necessary to display yesterday's polyominoes, for our viewing pleasure.
(May 4, 2021)
The Zoom Ensemble folks have been playing with polyominoes. I can't resist embarrassing myself by trying them.
(Mar 19, 2021)
I really want to make some progress on the creatures that hang around the WayDown. But first, I am going to write a Coda on CodeaUnit and my simple toolset.
(Jan 28, 2021)
Let's try a more conventional approach to our deferred collection. First, some words on why it's a good idea.
(Oct 14, 2020)
A Slack conversation brought up the question of why I do ... the things that I do.
(Oct 13, 2020)
The Agile Manifesto says that working software is the primary measure of progress. What does that mean?
(Sep 24, 2020)
This isn't Houston, but we definitely have a problem. And it's not a new one. And I'm tired of it.
(Sep 18, 2020)
A couple of interesting articles crossed my virtual desk yesterday. Links and some reflection within.
(Sep 14, 2020)
In which our intrepid author makes a grievous error: disagreeing with Kent Beck. Or does he?
(Sep 11, 2020)
A couple of small changes to CodeaUnit and my CUBase template. Then let's see what we can improve about Space Invaders. (Saturday: Arrgh, a defect!)
(Aug 6, 2020)
A friendly demo of shield damage techniques leads to an examination of an interesting coding approach. I need to figure out what I think about it.
(May 13, 2020)
I needed to test some floats the other day. Let's improve CodeaUnit to help with that.
(May 5, 2020)
The Gilded Rose 'kata' exists in many languages, but I've not seen Codea Lua. Maybe I should fix that bug. This is pretty boring. Skim, don't read. Needed for the record.
(May 2, 2020)
Some final thoughts on the Gilded Rose exercise. Well, final for now ...
(Apr 30, 2020)
To round out a dozen, we simplify things a lot. Too much? What do you think?
(Apr 28, 2020)
Today I think I'll double-check that double-decrement issue. Then I want to see if we can combine those two parallel if nests.
(Apr 27, 2020)
Some really nice progress today ... and one open question.
(Apr 25, 2020)
Dave Nicolette mentioned on Twitter that he was wondering whether a Mob Programming Gilded Rose kata, using Arlo Belshee's 'Read by Refactoring' would make a good video. That gave me an idea.
(Apr 24, 2020)
We're on a path more like re-implementing the program than refactoring it. That's a concern. Can we do better?
(Apr 22, 2020)
Today I plan to move the Conjured item code to the new scheme, and see what that tells me. Something will probably go wrong.
(Apr 21, 2020)
It's noon on Tuesday. I've whiled away the morning. Let's try to make a bit more progress on this code.
(Apr 18, 2020)
Are we doing it right? Are we in trouble already?
(Apr 17, 2020)
It's April 17th. It's snowing. We're on lockdown. Let's look at Gilded Rose and see what we might do that would be interesting.
(Apr 16, 2020)
Chet, Amitai Schleier, and I played with the Gilded Rose exercise the other day. I think I'll write about it a bit, starting from scratch. [edited]
(Feb 10, 2020)
Despite its great value in the hands of experienced TDDers, the uptake is slow and the practice is often hard to sustain. What's up with that?
(Jan 20, 2020)
>Alex Bunardzic has been part of a rambling Twitter thread about TDD and people who object to it. One of his concerns is that TDD proponents agree that TDD isn't always appropriate but don't say when. Let's explore that.
(Jan 18, 2020)
I tweeted this on the 18th, in response to something left frustratingly vague by one of my dear colleagues, which caused me to think more deeply about what they said.
(Jan 8, 2020)
Some folks who don't know TDD, and some folks who should know better, have been describing TDD in ways that don't match what I experience. Herewith, some thoughts.
(Jan 8, 2020)
In a Twitter conversation a week or so ago, I was asked to do a TDD video, to show how I do it. A video isn't within scope just now, but here's an article with real TDDed code in it.
(Nov 25, 2019)
Despite my concerns about experienced coaches advocating against practices that are often quite useful, there are a few things where I'd at least advise great caution.
(Nov 24, 2019)
Some thoughts from Twitter on 'technical debt', what it is, what it isn't, and why we avoid it.
(Sep 10, 2019)
When I was blurting about the Increment as the most important thing, just the other day, GeePaw Hill mused about collaboration as the most important thing. Today, I'll muse on that and his notion of makers-making-made.
(Sep 5, 2019)
If you are not producing working, running, tested usable software in every single Sprint or iteration, you are not [yet] 'doing' Agile, you are not [yet] 'doing' Scrum.
(Aug 29, 2019)
A question on AgileMentoring.com triggered this little article. Perhaps repetition is the mother of something ...
(Aug 24, 2019)
Kate chats with people at the KALE Society meetup. They discuss some small issues and then one big one. Test Doubles come up. Darts are thrown.
(Aug 5, 2019)
A bit of a screed about naming, triggered by a super idea from Dan Terhorst-North.
(Apr 13, 2019)
A couple of people asked me to list all the technical skills required in order to do Agile Software Development. I can't do that, but I can do this.
(Mar 25, 2019)
Probably not a good thing to say. Possibly a good thing to think about.
(Mar 13, 2019)
A lovely post by GeePawHill led to a Twitter conversation about up front design, inspiring this article.
(Mar 4, 2019)
First some refactoring - then some behavior.
(Mar 4, 2019)
I decide to follow Braitenberg's approach a bit more closely, driving the wheels at different speeds rather than rotating the vehicle.
(Mar 4, 2019)
Let's Turn - making our little guy turn. And see the comments on Gross Hackery at the end of the article.
(Mar 4, 2019)
I'm playing in Codea with 'Braitenberg Vehicles', just for fun. I'll be sharing what I do with you all.
(Sep 21, 2017)
Just a bit of reflection after two weeks off. Next week, I hope we'll actually do something. Today I remember the Boy Scout Refactoring Rule.
(Sep 8, 2017)
Responding to a mistaken TDD flowchart.
(Sep 7, 2017)
It has been a week since Tozier and I last worked, and I spent most of the time under repair. I'm thinking we'll work on the date-sensitive stuff. I'm mostly wrong.
(Aug 29, 2017)
Chet has me nearly convinced to move my site base to Dropbox. Today we'll talk further about that and about moving the product forward.
(Aug 25, 2017)
I decide to spike a bit on folder and file manipulation.
(Aug 24, 2017)
When this article appears, it will have been processed by our new (MVP) iPad Transfer Mechanism. 'Thank you for pressing the self-destruct button.'
(Aug 23, 2017)
Tozier and I learned something about habitable code yesterday. Topics may include bits of Confirmation Bias and fragments of Coding Morality.
(Aug 15, 2017)
I thought today we'd work on the triggering mechanism for the iPad build. Instead something important happened! (Clickbait)
(Aug 4, 2017)
I'm wondering, today, whether the Increment could be the driver for all 'Agile' software development.
(Aug 3, 2017)
If I were a REAL product owner, I'd be pressuring the hell out of my team right now. So I will. How did that work out, Ron?
(Aug 1, 2017)
We'll try to focus on building features today, but there are lurking issues in those magical incantations we do about Dir and FTP classes.
(Jul 31, 2017)
Today, let's talk about cadence. Iterations, Sprints, to have them or not, that is the question.
(Jul 28, 2017)
Thoughts about Technical Debt
(Jul 28, 2017)
Time to do some work after the heavy refactorings involving quantum mechanics. Let's see if we remember how.
(Jul 26, 2017)
I was asked a question about one of today's modern approaches to Agile software development. Here are some general thoughts.
(Jul 25, 2017)
In this short session, we inch forward and wind up in a better place. Not THAT better place. I just mean the code is better.
(Jul 20, 2017)
What's next for the iPad project? Refactoring, it turns out.
(Jul 13, 2017)
We knew last Thursday that we had an issue with folders and folder names. A week later, we dig back in.
(Jul 6, 2017)
We really hope to get from end to end today. You won't believe what happens next. Unless you're paying attention.
(Jul 4, 2017)
Tozier and I shoot again for end to end on the iPad project. What happens next? As I write these words, I don't know either.
(Jun 30, 2017)
We're clearly closer than we were, and it feels very close. But not as close as we thought.
(Jun 28, 2017)
Bill and I decided to do a bit more on the iPad publication project. You won't believe what happened next. Unless you expect trouble.
(Jun 26, 2017)
What if I were to create a new software development framework? I'd never do that, but if I did, what might I do? Let's find out. Let's talk today about Whole Team.
(Jun 25, 2017)
Terms seem important to me today. (Revised 2017-07-05: Techniques)
(Jun 25, 2017)
Some Notes on the theme "If I were going to create a new framework, what would it be?".
(Jun 20, 2017)
Today Tozier and I will do a Quick Design Session and start TDDing something that will, I hope, turn into the actual app.
(Jun 16, 2017)
In which we suddenly realize something about Tozier.
(Jun 15, 2017)
Tozier and I start with some Ruby code for FTP or something.
(Jun 14, 2017)
Tozier and I try some things.
(Jun 10, 2017)
I'm told the iPad is the new Mac, or something. Anyway, it'd be nice to be able to write articles on the iPad and get them on my web site without lugging around my Macbook.
(Jun 24, 2016)
A foray into Google App Engine turns into a Tibetan adventure with Bos grunniens. No real lesson is learned.
(Apr 21, 2016)
I found this picture of a roulette wheel. I wonder how hard it would be to make my little game use it.
(Apr 20, 2016)
Let's finish wiring up our second pass at Jim Jeffries' roulette example, and see what we can see.
(Apr 19, 2016)
I felt I owed it to myself to do Jim Jeffries' roulette exercise, this time with more tests. You won't believe what happened next. (Sorry, I have a click-bait virus.)
(Apr 18, 2016)
Jim Jeffries (no relation) proposed a TDD exercise / challenge. I took it on. The results may surprise you. (Sorry.)
(Nov 27, 2015)
Going too far is quite difficult to do.
(Nov 12, 2015)
It's common to tweet things objecting to high automated test coverage as if it's irrelevant, incompetent, or stupid. I suggest otherwise with a thought experiment.
(Nov 9, 2015)
In which we discuss the technical debt metaphor, bright code, and the inevitable decline of civilization.
(Nov 3, 2015)
A Twitter thread gets me thinking about Mock objects and whether they're more than just a matter of personal taste.
(Apr 11, 2015)
Kate Oneal chats about testing with the Ann Arbor KALe Society.
(Mar 12, 2015)
Jonathan Rasmusson wrote an interesting article. I agree. It's not about unit tests. It's about skill and understanding.
(Feb 13, 2015)
Content from XProgramming has been moved to this site. Some brief retrospective thoughts.
(Jan 24, 2015)
As Tozier and I work on Scraper, I find the pairing to be quite difficult, though not unrewarding.
(Dec 22, 2014)
It's good to have people watching over me. Already got some feedback on this morning's article.
(Dec 22, 2014)
True to my word, for once, I'm learning RSpec. Follow along and laugh at my ignorance.
(Dec 6, 2014)
Channeling ELO. Also a Codea Diamond that you might find interesting.
(Dec 5, 2014)
A number of people have tried the Diamond Problem now. Let's look at their work and see what we learn.
(Nov 30, 2014)
The trouble with thinking is, you keep getting new ideas. I wanted to try this one. Turned out quite oddly.