Blog
-
A Review of "Professor Fisby's Mostly Adequate Guide to Functional Programming"
"Professor Fisby's Mostly Adequate Guide to Functional Programming" by Brian Lonsdorf is a popular introduction to FP with code examples written in JavaScript. From the perspective of one who has mostly worked in OOP, here is my review of the book along with some thoughts on FP in general.
-
How to Set up FaunaDB for local development
[FaunaDB](https://docs.fauna.com/fauna/current/introduction) is a serverless database that is an ideal choice for serverless applications, because it has the same benefits as the latter: auto-scaling, pay-for-what-you-use billing, not requiring server configuration or maintenance. FaunaDB accomplishes this by executing database operations via calls to its HTTP API rather than maintaining a connection to a database server.
-
Machine Learning Outside the Kaggle Lines
Slides from my talk for PyCon JP 2020
-
Footy Tipping with Machine Learning: 2019 Season Review
The good, the bad, and the buggy from predicting AFL match results with a machine-learning model.
-
Highlights from PyCon AU 2019
My favourite talks from PyCon AU 2019, with plenty of personal commentary.
-
Docker, Django, React: Building Assets and Deploying to Heroku
Now that we have our app humming like a '69 Mustang Shelby GT500 in our local environment, doing hot-reloading donuts all over the parking lot, it's time to deploy that bad boy, so the whole world can find out how many characters there are in all their favourite phrases. In order to deploy this app to production, we'll need to do the following:
-
Creating an app with Docker Compose, Django, and Create React App
Inspired by sports data sites like [Squiggle](https://squiggle.com.au/) and [Matter of Stats](http://www.matterofstats.com/), in building the app that houses [Tipresias](https://github.com/cfranklin11/tipresias) (my footy-tipping machine-learning model), I wanted to include a proper front-end with metrics, charts, and round-by-round tips. I already knew that I would have to dockerize the thing, because I was working with multiple packages across Python and R, and such complex dependencies are incredibly difficult to manage in a remote-server context (and impossible to run on an out-of-the-box service like Heroku) without using Docker.
- Footy Tipping with Machine Learning: Models, Assemble!
- Footy Tipping with Machine Learning: Adding Player Data
-
Toward a Better Footy Tipping Model: The First Model
Now that I’ve done some exploratory analysis of AFL data, I’m ready to create the first tipping model for my Campaign for Glory 2019. I’ve already mentioned some of the [mistakes](https://medium.com/@craigjfranklin/toward-a-better-footy-tipping-model-mistakes-were-made-ee5a6738741f) that I made in developing Footy Tipper, one of the biggest being reaching for the RNN right away. So, this time I’ll start with linear models for a faster test-and-revise cycle and properly verify whether my previous assumptions are correct or not.
-
Writing like a Developer
Having spent a fair bit of time both writing and coding, I’ve noticed that these two seemingly disparate crafts have a lot in common. They share some vocabulary: we *read* and *write* code; a coding *language* has a particular *syntax*; Python even has *dictionaries*. More importantly, however, both disciplines have best practices, communal knowledge gained over years that we must learn in order to consider ourselves skilled practitioners. These best practices have the common objective of more-effectively communicating one’s ideas to other people
-
Toward a Better Footy Tipping Model: The Folly of Memory
I concluded the previous post with a promise to consider AFL match data as a series of events occurring in time, because that is what they are. Though aggregations can reveal patterns across non-temporal dimensions (e.g. home vs away, ladder position, team), they obscure the sport as participants and spectators experience it. In this post I will look at two competing forces in the realm of sports narratives: the long-term perceptions of individual team’s quality (are they good or bad?) and short-term perceptions of a team’s chances of winning their next match (are they hot or cold?).
-
Toward a Better Footy Tipping Model: An Analysis of Basic Heuristics
Footy tipping is the popular Australian past-time of picking which Australian Rules Football (AFL) teams will win their matches every week (like filling out a March Madness bracket, except it’s done a round at a time, and the umpires make their fingers into pistols when a team scores). Each tipper gets a point for correctly picking the winner and a point in the case of a draw. At the end of the season, the winner is the one with the most points, with predicting the margin of the first match of each round serving as a tie-breaker.
-
Toward a Better Footy Tipping Model: Mistakes Were Made
The meaning of ‘footy’, like ‘curry’, is heavily dependent on context. Sure, there may be a shared essence, the consistency of the sauce, the rice, the contact of foot against ball, but the details are so varied and so specific, going beyond nationality down to the level of regional cultures, local histories, so as to make one version strange, foreign to those who enjoy another, meanings divided by borders, not of nations, but of practices, ingredients, movements.