Miscellanea, June 2025

This video made me laugh enough I watched it twice, and then a bunch of others from the series, which were also good but not as funny as How to Fix Grocery Stores from Hank Green.

This made the rounds thoroughly, but this is exactly how I consumed the weather forecast for years and I would absolutely install a widget that ran this on my phone.

Falsehoods Programmers Believe About Aviation is a variation on the falsehood programmers believe about names. While the names piece is great, the aviation variation is interesting because, on its surface, air travel is an entirely manufactured process that seems like it should be controllable and standardizable.

Dragonsweeper: You probably didn’t know that you needed a mashup of minesweeper and a dungeon crawler, but you do. Key to know that you can lose all of your hearts, so long as you don’t lose more than are available, leveling up restores all your health, and you can carry extra diamonds forward from one level to the next. I am not good at this and still have not swept the dragon.

Real life updates: Managed my first 10K run, and no I won’t tell you how very slow it was. Having a good start to the veggie garden including my first foray into growing lettuce, with positive signs for the cucumber crop as well. Good reading from the month included The Dark Forest by Cixin Liu (second book in the Three Body Problem trilogy), The Underground Railroad by Colson Whitehead, and Eligible by Curtis Sittenfeld.

I have an old collection of Byte magazines that I picked up early in my time as a faculty member imagining I would do …. something? …. with them. It occurred to me the other day that a thing would be to include highlights in my miscellanea posts. So, trying that out – here’s the cover of the oldest issue I have from August 1983. Look at how minimal the text is there. Besides the publication info at the top, there’s no chaos of article titles, just “The C Language”. Love the cup of coffee far from the computer on a separate desk. Just a couple of pages in to the magazine, there was this sweet ad for C86, the preferred compiler of bulgy-brained aliens who want tight code that includes all the functions in K&R.

  

Project report: Raglan Pullover

Striped sweater in yellow, teal, and purpleI took a step away from my lace knitting projects and knit up a quick sweater for myself this spring. I managed to finish it while there was enough cool weather to wear it a couple of times and it’s a comfy, slightly oversized fit.

The pattern is Lightweight Raglan Pullover from the Purl Soho yarn site. The yarn is Big Twist Boho in color Lakeside Lodge – it’s a Joann Fabrics brand I had never used before but picked up in one of their store clearance sales. It’s an 80% acrylic, 15% wool, 5% mohair blend listed as “super fine” weight (4 mm needles/3.25 hook as the recommended tools to get a 4’x4′ square) and it took me about two and a half skeins (590 yd/3.5 oz per skein).

I picked the pattern because I wanted something that would have a lot of mindless knitting (as compared to my lace patterns) and that would show off the colors in the yarn. It’s an incredibly easy pattern, knitting the two sleeves and then the body rom the bottom and joining them all together to finish the yolk. If I had been more confident that I would have enough yarn leftover, I could have made that transition a bit cleaner but I think it looks fine when I’m wearing it.

The cuffs, hem, and collar use a neat stitch I’ve never used before for the edging – Cording Stitch. I definitely recommend using the “lifeline” they suggest for identifying the round to pick up. It makes a nice slightly rolled edge but counteracts the overall tendency for stockinette to curl (along with some mild blocking).

If I made the pattern again, I would consider if I could adjust the decrease rounds to make the neck hole a bit smaller. As is, some t-shirts look awkward under this neckline. I’m happy with the length of the sweater, but it would be very easy to make it slightly shorter or longer to your taste.

A big agree that “the homework is the cheat code”

Just the title of this long blog entry caught my eye, because YES!!! The Homework is the Cheat Code indeed!

The content didn’t disappoint. Written by someone teaching CS at the graduate level at U Chicago, I’m not sure if I’m shocked or relieved that they’re seeing similar patterns in their students as we’re seeing at the undergrad level. Maybe the most honest reaction is that if we want to graduate students who are job- and grad school-ready, addressing these tendencies has to be central to undergraduate education (bold mine):

I get a lot more requests now for extensions on the project they’ve known about all quarter (students reading this: lovingly, no ). I get a lot lower compliance on instructions I wrote down twice and then also said twice in class. I get a lot more homework reflection assignments that package considerable insight—they’re still very smart people, after all—into the syntax I’d expect in a group text among friends rather than prose submitted to a graduate school instructor.

I like the observation that overcommitment, or burnout from years of overcommitment is part of the problem. I definitely see students think that the best value will come from packing as much as possible into their college experience and we’ve started having conversations at my institution about how we encourage students to make choices so they can more deeply benefit from the smaller set of things they are doing.

This, inevitably, gets linked to the issue of students using generative AI for assignments in a way that is not productive for their learning. This particular instructor doesn’t forbid the use of AI. Beyond other good reasons, they point out that we just don’t have data on the impact of these tools on learning yet and allowing some usage lets them collect data on how students are choosing to use AI. They’re coming at it from the perspective of someone who studies how LLM tools affect the development process, so that is interesting.

I love how they break down the academic honesty issue of using generative AI by first defining the issue: “I define “cheating” as something a student does, usually in the interest of time, whose tradeoff is the circumventing of the assignment’s learning objective.” and then walking through reasons students might not invest the needed time or might circumvent learning objectives. The time element certainly circles back to being overcommitted – I think it also connects to a lack of understanding of what time it really takes to be a full time student.

For both the time and learning objectives elements, I think trust in the instructor (and possibly in the institution?) play a large role. Is the student willing to trust that the structure of the course and the assigned work have been thoughtfully designed and will support their learning? How do you build that trust? And, the following paragraph got me to thinking, how do you push past students’ focus on efficiency of learning over effectiveness of learning:

We’re steeped in a tech industry laser-focused on efficiency as a positive quality, but this term often becomes overloaded when we’re talking about capacity-building. I’ve lifted weights for about a decade now. The exercises that build my capacity the most are not the efficient ones. Walking is efficient—humans can walk a very long way without spending a lot of energy. Kettlebell swings are inefficient; they require an enormous amount of energy and muscle activation relative to walking. That’s why weightlifters do them: they produce capacity-building adaptations faster because of that. Learning works the same. The activities that promote learning are, by design, inefficient: they require an enormous amount of attention and active engagement, usually on a thing that the learner feels bad at. They deliberately present the learner with challenge, and sometimes frustration, because those uncomfortable states build cognitive capacity. Avoid this, and you avoid building cognitive capacity. That’s a weird choice to make in a class with the specific value proposition of teaching something.

This leads to the heart of how they connect this back to the use of generative AI in learning, which they break down into whether it is being used as an “outcome accelerant” (thus shortchanging the learning process by just getting to the product faster) or a “learning aid” (where the tool streamlines the time taken to really focus on the activity related to the learning objective).

The article includes tons of examples of syllabus language, assignment information, etc. about how all of this works in practice, including how they set up assignments where the “cheat code” is that doing the work as assigned is more efficient than trying to get gen AI to do the work for you (they like the tool of “instructive visualizations”). This may or may not relate to your particular classroom. But I think there’s good potential for this outcome accelerant versus learning aid contrast to apply across a lot of classroom settings.

Miscellanea, May 2025

April got away from me with the end of the semester (earlier than usual with a new academic calendar for us), so early May has been spent catching up all over the place.

Looming summer means more time to read. In preparation, I browsed the new-to-me Literary Hub on grading breaks.

Ask a Ninja is back!

Long read The Department of Everything: Dispatches from the telephone reference desk – excellent reflections on the importance of knowing how to find information and how to frame answerable questions.

An even longer read on the hidden house in the IBM ascii character set and where it came from/what it means: Why is there a “small house” in IBM’s
Code page 437?

A really interesting discussion of the considerations of alternative grading in a six-week asynchronous course, specifically a Discrete Structures course. The compressed timeframe seems to call for daily work and mechanisms to ensure students aren’t falling more than a day or two behind, at the risk of never catching back up. Perhaps my favorite part of the write-up was footnote 3 on the challenge that asynchronous online courses are marketed as being ideal for “busy working adults” but still require a significant amount of time, which may not always be as clearly marketed or understood.

If you are a substack person, there is a Guide to Pittsburgh Substack Newsletters.

Been playing the demo of Word Play after watching the developer’s video about creating it (which made me wonder if I should try Balatro, which I guess everyone else has played). I like the gimmick of the game of being able to add rewards or change game features after each round. Entirely agree that this would be great on mobile.

Computing education for everyone, and maybe some CS also?

Mark Guzdial has written some blog posts recently about having computing education for everyone that doesn’t have to – and shouldn’t – look like computer science education. He has posts looking at this for both the undergraduate level and the K-12 level.

I’m entirely on board with offering introductory computing and programming education from students with a range of disciplinary interests that doesn’t look like a typical CS1 class or have to cover the typical range of CS1 topics. However, I think a piece missing out of this discussion is whether there is value is teaching those courses in a way that supports students if they realize they want to become computer science students.

Mark gives the example of the insistence of teaching loops in introductory programming, despite the fact that many students will not need loops for their problem solving and can rely on vector-based operations. For students getting started with programming in a data science context, this is certainly the case.

However, particularly when thinking about the K-12 level, how do we know which students “only” need computational exposure or conversational programming skills and which will develop an interest in deeper CS study? Is there merit to introducing some of these foundational CS concepts in these courses, even if just to familiarize students with the fact they exist and give them a taste?

Based on conversations in my department, I think the answer is yes. To build on the example of loops, perhaps an introductory data science course doesn’t have to use loops extensively or test students on them. But, loops are useful! And, if a student does decide to move into CS, they’ll find themselves well served with some minimal prior exposure to the concept.

Again, I am glad that Mark is calling for computing classes that meet the real needs of students who do not plan to study computer science but have the need to be literate in computation. But I hope that some portion of those students may, through those computing classes, realize that they want to change their plans to include computer science. I fear curricula that would tell students “you can’t study CS because you didn’t start out in the right courses/on the right track.” What, then, might we minimally include into those courses to give students the potential to shift tracks?

Miscellanea, March 2025

The hardest working font in Manhattan: Excellent long read about a near-invisible font that appears everywhere, and the investigation into where it came from and why it is ubiquitous. Ultimately its a story of the analog versus the digital. Beautiful collection of illustrative photos throughout.

Ran into this interesting research from last year about reconstructing protolanguages and developing models that can move from a protolanguage to the modern variants and backwards from a modern language to its ancestor.

As for gaming this month….

Hooked on Bracket City as part of my morning word-game routine. The site started up on January 30th if you want to go back and play all the puzzles from the beginning. I definitely recommend the tutorial (the question mark button) to get started.

Very pleased to have played a round of botsbotsbots and successfully evaded detection as a human.

Also pleased to have puzzled my way through this cute little online puzzle box made with HTML and CSS.

Try to match 368 chickens. You will probably fail.

Miscellanea, January 2025

Going up a couple of days late, here’s some things I came across in the past month….

A new favorite comic from SMBC

There is a variety of content at the ELIZA Archaeology Project site including the complete code of the text generation system with a description of the MAD language it was written in, a blog on the software archaeology process of recovering it, and a running version you can try out.

The Calm Tech Certification (IEEE Spectrum article, project site, book) is a really appealing idea, both for consumers and as a tool for encouraging developers to think about making our technology less intrusive and stressful.

Stimulation Clicker is in the idle clicker genre but with a definitive end after not too much gameplay that walks you through the exact opposite of “calm tech”. Interesting to notice your personal point of “too much”.

The point of this article recounting a conversation with the Replit CEO on their shift to AI-driven software development seems to be to argue that developing software should not require an understanding of code, but rather the skill of recognizing problems that software can solve. I’ve seen good writing elsewhere about how to include more instruction on identifying software-appropriate problems earlier into CS curricula, though these conversations can get stuck when you start to get into the weeds of what each of us mean by “developing software” (are we producing a product for sale with assurances to a customer base about reliability, or are we building a tool for ourselves to solve a local problem?). I’d have liked to see some comment on the decision to embed AI-generation of code into Replit mid-semester with no advance warning or ability to disable it in student accounts after years of presenting themselves as educator-friendly.

The data analysis you didn’t know you needed of the Most Mario Colors.

Miscellanea, October 2024

The Merchants of Venice – In Code: A nice little review of early cryptology in 1400s/1500s Venice within both trade and politics

Typing Bowl is only barely a game but it’s good for a five minute break to see if you can type faster than strangers on the internet.

I’m not a big discussion forum person, but this massive list of topic-specific forums probably has some great content in here. I wish there was an index of the topic areas at the top of the page to help skim for what’s available.

The recent post Of trashcans and thimbles by Math with Bad Drawings is not only a nice review of an unintuitive statistical phenomenon but makes a connection to a larger life lesson about taking bold chances while also attending to the day to day essentials that will let you be successful if your bold chance comes through. Thematic for a month of talking to students about their education and their goals.

A little bit of navel gazing about the history of the blogosphere as Scripting News turns 30 which pairs well with The Verge’s retrospective on 2004 (a somewhat frightening flashback to internet culture the year I started working at my college)

Thinking about having my AI students read GSM-Symbolic: Understanding the Limitations of Mathematical Reasoning in Large Language Models which got a burst of attention. I find myself talking to students about fragility in systems in all my courses these days.

Miscellanea, September 2024

Cool photos and breakdown of a Navajo weaving of an Intel Pentium chip from a display in the National Gallery of Art (sadly the exhibit now seems to be closed). The breakdown is able to map out the chip to determine specifically which chip it is based on. The blog post also closes with an interesting story of the Fairchild work on the Shiprock chip and the relationship to the Navajo.

Calculating Empires: A Genealogy of Technology and Power Since 1500: Scrollable visualization of computing, communication, and control from the 1500s to the present categorized by things like communication devices, interfaces, algorithms, education, human bodies, biometrics, medical, policing, energy and resources, etc. Lots of ways to browse this; one interesting option is to zoom in on the era you were born (if it was long enough ago to be referred to as an era) and scroll your way across horizontally.

The headline “Secret calculator hack brings ChatGPT to the TI-84, enabling easy cheating” hides the amount of hardware modification required to get this to work. The pitch on the video that this is the “Ultimate Cheating Device” may oversell how helpful it is to query ChatGPT during an exam through your calculator keyboard and screen (better prompt engineer some shorter responses than usual!). But it is a pretty impressive hardware hack.

A couple of cool looking paper-and-pencil, single-player sims of a dungeon crawler and a space shooter: Paper Apps Dungeon and Paper Apps Galaxy. Both procedurally generated so each game notebook is unique.

Rear Adm. Grace Hopper and Future Possibilities

I’ve been slowly listening my way through the recently released “lost” lecture from then-Capt. Grace Hopper entitled “Future Possibilities: Data, Hardware, Software, and People” from 1982. I didn’t read much in advance about the content of the lecture, just decided to watch it as an interesting piece of history. It’s a very engaging and funny talk – about 8 minutes in I had to pause and go back and start listening again more closely.

Her main opening premise:

“I’m afraid we will continue to buy pieces of hardware and then put programs on them, when what we should be doing is looking at the underlying thing, which is the total flow of information to any organization, activity, company, or what have you. We should be looking at the information flow and then selecting the computers to implement that information flow. Now, of course, if we do that one of the first things we’ll need to know is something about the value of the information we’re processing.”

“No work, no research, has been done on the value of information. We’ve completely failed to look at it. And yet it’s going to make a tremendous difference in how we run our computer systems of the future. Because if there are two things that are dead sure, I don’t even have to call them predictions, one is that the amount of data and the amount of information will continue to increase. And it’s more than linear. And the other is the demand for instance access to that information will increase. And those two are in conflict. We’ve got to know something about the value of the information being processed.”

Many of the examples are dated to older, slower technology with lower bandwidth, where the main question is what information to keep on-line or not. But the bigger picture theme that organizations need to understand the the value of their information is still relevant, as is the associated theme that organizational needs and usage need to be understood to create useful systems.

From there, she also makes the case that we need to continue advancing the speed of our computers in order to solve vital problems like predicting the weather to improve agriculture or managing water supplies to support a growing population. She has a lovely physical illustration of the limitations on how far we can continue to speed up our computers and a common sense argument for distributed computing based on the observation that long ago, if you wanted to move a log that was to heavy for your ox, you “didn’t try to grow a bigger ox. [You use] two oxen.” In the second half of the talk, she does a similarly clear, common sense job presenting some still fundamental security ideas, like modularity, to protect that information that we need to be understanding the value of.

A favorite bit, as someone who likes to think I sometimes haunt my graduated students:

“I think the saddest phrase I ever hear in a computer installation is that horrible one “but we’ve always done it that way.” That’s a forbidden phrase in my office. To emphasize the fact, I keep a clock that operates entirely counterclockwise. Now the first day people meet it they can’t tell time. By the second they discover what used to be ten of is now ten after, they can tell time again. Normally it’s not until the third day that they recognize that there was never any reason why clocks should run clockwise. They could just as well have run counterclockwise. […] Hopefully I’ll give you each one of you a very small gift. I will promise you something. If during the next twelve months any one of you says “but we’ve always done it that way” I will instantly materialize beside you and I will haunt you for 24 hours and see if I can get you to think again. And I know it works – I’ve already had over 70 letters thanking me for haunting people.”

The length of the two parts together is daunting but I definitely recommend checking it out. She’s a phenomenal storyteller and its worth it to get to the end of the second half where she talks about being called out of retirement to get the entire Navy standardized around the same version of COBOL and her pirate flag.