Back to Machine Learning

In 2012 I spent a lot of my rare free time working thru both Sebastian Thrun and Peter Norvig’s Intro to Artificial Intelligence (which I can’t find anymore) and Andrew Ng’s Machine Learning course. Andrew’s was the better of the two.

One thing that blew me away was how he used k-means clustering on our homework submissions to discover where there were a large number of students that had a common misconception, and make a clarification video.

At the time I was working in R&D at Rosetta Stone, and we wanted to bring data science and machine learning to bear on how to improve our language learning offerings. It was a linear course, and we dreamed of building a model of what our learners knew, and then challenging them on what they didn’t know. Duolingo had a much better vision and execution for this.

With the breakthroughs in the last few years: Stable Diffusion, LLaMA, LLaVA (yes, I’m ignoring things I can’t run on my own computer), I wanted to dive back in and learn more. To that end I’m taking Jeremy Howard’s Practical Deep Learning for Coders.

I have a lot of data on comic books. I’m hoping to build some practical applications for this. One idea is to feed each panel into something like LLaVA and have it describe what’s going on in it, then have it summarize the story.


Hands On Rust

I’ve been working thru Hands On Rust. You learn rust and make a game. Play my game. See it on github.

#rust #video-games #wasm #bevy

HotWire's Turbo with Django Bootstrap 5

If you use turbo and django-bootstrap5 drop downs will not work once you load another page. You can fix this by adding the data-turbolinks-eval=false attribute to bootstrap’s <script>.

from django_bootstrap5.core import BOOTSTRAP5_DEFAULTS

    "javascript_in_head": False,
    "javascript_url": BOOTSTRAP5_DEFAULTS["javascript_url"].copy()
BOOTSTRAP5["javascript_url"]["data-turbolinks-eval"] = "false"
#django #hotwired #turbo

Higher level protocols for websockets

I ran across WAMP recently. When I built my DC++ client who’s primary GUI is a jquery/jquery ui web app connected to the twisted python backend via websocket I had to create something just like this. Later reading over the JSON RPC 2.0 spec I realized you could just use their format and leverage json rpc libs already written.

Small note: you might want to remove the “jsonrpc” key from the request and response to save some bytes.

There is also this: Cutting Down Bandwidth with JSON Alternatives


Google Glass App Idea: Am I talking to my kids enough?

The Power of Talking to Your Baby

If you haven’t heard of Hart and Risley’s work, you are not alone — and you may be wondering why. These findings should have created a policy whirlwind: Here was a revolutionary way to reduce inequities in school achievement that seemed actually possible. How hard could it be to persuade poor parents to talk to their children more?

Very hard, it turned out — because there was no practical way to measure how much parents talk. Each hour of recording took many hours to transcribe and classify: to count the words uttered near a child and attribute them to a parent, the main child, a sibling, someone else or a TV. The cost was prohibitive.

With Google Glass you could monitor everything you say, you could track if your kids are around you.