On Adding Executables to PATH and Becoming All-Powerful
For the past few months you’ve been learning C and writing toy programs. But you’re getting sick of having to include their relative paths when you want to e...
For the past few months you’ve been learning C and writing toy programs. But you’re getting sick of having to include their relative paths when you want to e...
Here are 32 bits, or 4 bytes. Seems like a pretty big number. And it is . . . sorta. Depends on how you look at it. 0 1 0 0 0 ...
We need to talk about strings. I’m working on porting my Python assembler to C, and I’m getting to the harder stuff. As I wrote about in my last post I sett...
I’ve been keeping that good Impossible Stuff Day energy going today and made excellent progress on my assembler project. It can’t handle labels or symbols ...
A few weeks back I built an assembler in Python as a project for Nand2Tetris. When I was first plotting my approach and feeling ambitious, I thought, hey, ...
Last time on stumbling through building a DNS resolver in C, I messed around with the nifty function inet_pton(), which takes IPv4 and IPv6 addresses and con...
In the last installment of Building a DNS Resolver in C, I talked about writing a component of a conversion function that will eventually translate a valid I...
A few weeks back, a few recurser friends and I implemented a DNS resolver in Python using this excellent guide put together by a legendary RC alum. Knowing n...
I’ve been curious to do a little tinkering with the OpenAI API since early on in batch, when a fellow recurser casually demo’ed a GPT pipeline and suddenly...
I’m scared of pointers, okay?
Yesterday and today I worked on my n2t assembler. It ended up being about 300 lines of Python, but may well have been the largest and project I’ve tackled th...
I’ve reached the halfway point of my RC batch, which means . . . it’s time to have another look at the data! Q2 at a glance Here’s what weeks 4-6 at RC loo...
Today I started thinking about a plan for implementing an assembler. Here are a few notes and musings I had for the lexer component, which will be responsibl...
This short post has nothing to do with chars or pointers (I couldn’t resist). It does, however, have to do with walruses – walrus operators, to be exact. ...
The main thing I worked on today was building (okay “building,” in .hdl) the CPU for my simulated nand2tetris machine using components previously featured ...
Clearly I’m a sucker for pain, because today one of the things I did was work through more brain-bending lambda calculus. This is a short one, though, since ...
I thought I’d regained my balance and overcome my recent bout of Lisp-induced vertigo, but after today’s meeting of Group SICP I’m about ready to puke. Back...
Today was a day where I had some important, unplanned conversations, which prompted reflection and introspection about what I’ve been doing these past 5 week...
“Let me do something that I think is really going to terrify you.” Well, Professor Abelson, you weren’t wrong. Elementary Data Structures in Lisp Okay, so,...
Dear journal, I’ve had a number of excellent days in my 4+ weeks at RC so far – productive, social, brimming with learnings and challenges and insights. In ...
As much as I’m enjoying getting thrown into the deep end of C with Build Your Own Lisp, I’m finding it gratifying and delightful all around to be learning th...
Today while meeting with my SICP group mates I learned about piecewise functions. Some background Some background before getting to the problem at hand. The...
Today was slightly abridged since my boy is sick, but did manage to get a few things done: paired a bit on C for BYOL. We focused on implementing exponent...
I was stumped on implementing a procedure that computes a given element in Pascal’s triangle using Lisp but finally figured it out thanks to a little help fr...
Next step on the road to a DIY computer is a program counter. This is an important component of our CPU since each consecutive output specifies a memory addr...
This week my simulated computer is starting to take shape thanks to some RAM units and a Program Counter. Here’s a quick run-through of building a RAM of ...
RC10. Quantifying my first 25% of RC For damn near the last decade I’ve been tracking my time spent on various work-related activities using an app called A...
A few days ago I posted the following schematic for a full adder, which I derived algebraically with a fellow recurser: The HDL for that looks like this: ...
Here’s an ALU. Looks confusing. And, well, it sort of is, at least at first. The ALU is the arithmetic logic unit, and it does all sorts of cool things. T...
Today we’re going to bring our adder across the finish line. Last time we derived a full adder that required six gates in the end: 2 XOR gates 2 OR gat...
A while back I built a 4-bit adder on a breadboard and managed to reduce each full adder component to five logic gates. In truth I’m not sure how I managed i...
Currently musing about learning style. I’ve been making my way through in BYOL (Build Your Own Lisp), but something about it isn’t working for me. I think th...
Something that intrigues me about Lisp so far is the way in which it lends itself, almost automatically and as a first principle, to recursion. In my experie...
Today I have this to show for myself: In Creative Coding my group was working on generating weird fractals in response to the day’s prompt about organic...
I spent a lot of time today drawing out various logic gates schematics. Too much time. I hadn’t known that NAND logic is so magical and that it’s possible to...
Just kidding, I love logic gates. I love logic gates, and I even like the simulated version, which I finally started messing around with today as part of the...
What an amazing five days. Don’t pity me when I say this, but this week was easily the most social week I’ve had in years. Years. Wish I could say it’s just ...
I’ve been writing here that my immediate path at RC has presented itself, and that path is something like a rogue CS education consisting of C and compilers ...
Today is my third day at RC, and it feels like the (my) fog is starting to lift. I’m getting a lay of the land and am enjoying a new sense of clarity about m...
I’m tired, man, tell you what. So impressed with all the recursers around me who are finding the time to write actual, thoughtful blog entries and check-ins,...
Well, that’s day 0, then.
Here’s an interesting puzzle I encountered. I’m working with a dataset with two features of interest: naive datetimes (naive meaning without any timezone in...
I faced some challenges on a recent project, which I solved by implementing the Observer design pattern. Or a version of it, anyway. Here’s how I did it.
Just finished a prototype of this friendly bit manipulator to help others develop better intuition for bits, bytes, and bitwise operations.
Binary search is a simple and efficient (and surprisingly intuitive!) way of searching a sorted array for a certain item that runs in O(log n) time.
Tap along with the beat, baby! We’ll take care of the rest.
Push COUNT, increment the counter. Push RESET, reset it to zero.
I recently coded up a quick’n dirty command line tic-tac-toe game as part of a coding exercise.
Case Study of Andy Warhol, Part II: Adding NLP Features In my previous notebook I developed some good intuition for Warhol’s market and for some of the featu...
K-Means 101 I’ve been working a lot with the Museum of Modern Art’s collection dataset recently and thought it would be useful to cluster paintings based on ...
How do you perform element-wise operations on a DataFrame and another element data structure?
MoMA’s Acquisition Practices, Part II: Progressive or Conservative? So MoMA’s acquisition practices are trending towards older artworks by older, deader arti...
MoMA’s Acquisition Practices: Progressive or Conservative? There are a few proxies for assessing an acquisition program that tends towards progressive or con...
Art Auction Data: Exploratory Data Analysis, Andy Warhol Case Study Now that I have a better sense of how the various features in this dataset relate to real...
Art Auction Data: Exploratory Data Analysis I’m working towards an ML project that models painting prices in the secondary art market based on a variety of a...
I’m working on a machine learning project that involves modeling art auction prices. The data that I’ve collected includes auction results from nearly 40 yea...
I’m working on a machine learning project that will model auction prices for paintings. Based on some domain knowledge, I have a solid intuition that certain...
What’s Variability? The various measures of central tendency that I reviewed last time give us a sense of a “typical” value for a set of numbers (although, a...
I’ve been working on cleaning and parsing a large dataset in preparation for building a predictive model, and I encountered an interesting issue with simulta...
I’m working on a script for scraping a particularly complicated site, which makes targeting specific HTML elements especially tricky. Dev tools to the rescue!
The other day I was installing a new WordPress theme for a client’s site that I inherited from another developer. It can be a bit, well, daunting to confront...
What’s a Central Tendency? One of the fundamental things we can do using statistics is summarize a whole bunch of values with a single number. What we’re int...
The Question As an Angeleno, I’ve always wondered: How frequently do accidents occur anyway? When do they tend to occur?
Mapping Artwork Destinations in the U.S. Since re-confirming the fact that the vast, vast majority of Knoedler’s sales occurred with US buyers, I thought it ...
Visualizing Buyer and Seller Locations Another inquiry that might be fruitful is looking for patters in where artworks originated geographically and where th...
Assessing Activity by Sales Volume I’ve been curious to explore some art history-related datasets, so I thought I’d start with the Getty Research Institute’s...