November 14, 2020 • Reading time: 3 minutes
Today is the last day of my first week at Recurse Center. To avoid overloading the feeds of anyone who may be listening, I'm aiming for a weekly release schedule.
Meet people! Get inspired by what they're working on! Get over beating myself up for not building stuff, and skip straight to building stuff.
Yes! Sort of. I did get some fun pair programming sessions done, met cool people, and added some new ideas to my backlog. So that part is a win. I did end up "cheating" and working on a feature request for PHPUnit, but I did intend for this to be a bridge to getting some code written, so the "cheating" is all part of the plan.
Working on PHPUnit was a breath of stale air, though. I can tell that the
evolution of the code base has been hampered by how closely it cohabitates with
the test cases people are writing. It's a solid case for composition over
inheritance.
Case in point: the TestCase
class serves four purposes:
$this->assertEquals(...)
)There's this weird circular thing where TestCase::run()
creates a
TestResult
, uses TestResult::run()
to invoke its own TestCase::runBare()
,
and all of this is somehow handled with state changes on the TestCase
.
Trying to reason about all of that is a pain. I have a bit of code written, but
with so many unnecessary and poorly-defined layers, it's hard to figure out
where the separation of concerns should lie.
So, I'm pretty happy with my new self-enforced rule of setting a project aside at the end of each week and starting on something completely new (and as different as possible) the following week.
Frontend web stuff, specifically an in-browser command prompt. I've seen a few libraries that are designed to sit on top of actual tty terminals, for web-based ssh and so forth, but I want to be able to present a web interface with all of its discoverability while not losing the efficiency of a command prompt. An example of this in action is try.redis.io.
Roadmap: