You can learn a lot about how much a man fears something by seeing what he will do to procrastinate instead of doing it. Paul Graham talks about “sneaking” out to get a root canal, feeling like he was getting away with it, to avoid a board meeting of his first startup.
In this series I’m building courseware (teaching software) to let folks go through lessons in a better way than the simple email classes I use now. Last week we figured out how to track progress for a user in a topic using an AJAX call hooked up to a button and selector in the browser. It looks okay...
In this series I’m building courseware (teaching software) to let folks go through lessons in a better way than the simple email classes I use now.
It’s getting close to the point where random users could benefit from it. What’s it’s missing now are email reminders, being deployed (available to use...
I’ve been building a piece of Rails courseware, something to let people work through blog posts, videos and lessons I’ve written at their own speed. First I set up a simple Rails 6 app, then I prettied it up a bit.
Now it’s time to do something interesting with the actual lessons, which I’ve been...
Last time we talked about why I’m building course software in Rails from scratch, and built out a basic skeleton of database tables and a first trivial view.
Today, let’s add a theme, build out the view a little more and generally make it look better. I think “Let’s Build” series look better with...
Here’s a video about threads in Ruby - how do you code them? What are the problems with them?
I’m planning a few more short videos about Ruby concurrency. I don’t think enough people
have a good grasp of the tradeoffs and problems of running more than one chunk of code at
once, in Ruby or in general...
Python is an experiment in how much freedom programmers need.
Too much freedom and nobody can read another’s code; too
little and expressiveness is endangered.
Ruby, on the other hand, is an experiment in
“give every toddler a chainsaw”...
Ruby lets you hook in and see (and change!) a lot of behavior of the core language. Methods, constants, classes, variables… Ruby lets you query them all, and change a lot about them.
These are just hooks – things Ruby calls in response to something happening. That’s different from, say, all the methods you can call to find our what’s defined and how – like instance variables, or method bindings, or…
Here’s summaries and links for all the hooks I could find (thanks to Google and StackOverflow!):
There’s a semi-famous book, The Art of the Metaobject Protocol by Kiczales, des Rivieres and Bobrow. Alan Kay, the guy who invented SmallTalk and the phrase “Object Oriented”, called it the best book in ten years.
But it’s takes some describing.
What is a Metaobject Protocol?
You know how Ruby has a class called “Class”? And how all classes are instances of it? And how Class is a subclass of Module?
The Metaobject protocol asks, “what if there were more subclasses of Class? And you could make classes from them, instead of plain old Class?”
Also, it includes what we’d now call introspection functions – they didn’t usually call it that twenty years ago when this was published.
Subscribe to get free ebook chapters and an emailed coding class now, plus videos and articles a few times a month.
Why this specific newsletter? You want to be an expert. Expertise comes from learning the fundamentals, deeply. And that comes from the best kind of practice.
I write with that in mind. I won't waste your time.
(Yes, I also sell things. They're good, but I'm fine if you don't buy them.)