Saturday, April 14, 2018

Make a science-themed Spot it! game: Done!

This May, I am walking in the National Multiple Sclerosis Society's Walk MS in Newtown, PA in support of my scientist friend, GZC. I met GZC in a cancer class at Yale over 10 years ago. Since then, we've gone camping, played (or attempted to play) ultimate frisbee/softball/basketball/volleyball, and celebrated many Galentine's Days together. She was instrumental--literally--in helping me make my own mittens. As you'll see later, she also indirectly provided inspiration for the Spot it! game I made.

I was with GZC on the day she was diagnosed with MS six years ago, and because she is a scientist, she sought out as much information about the disease as possible. The National MS Society proved to be a valuable resource, which is why I'm walking again this year to raise money for the Society.

Before continuing on, please take a minute to visit my donation page at Walk MS. Your support--whether it's only $10 or $20, or walking with us--will help fund research and provide resources to help people with MS.

... And now, for the fun and games!

Spot it! (apparently also known as Dobble) is an amazingly simple game. It consists of a deck of coaster-shaped cards with pictures on them. The basic premise is that on any two cards, there will be exactly one picture that is on both cards. Find the picture.

Pick any 2 cards. They will have exactly 1 picture in common. So many themed versions! But surprisingly, no science.

While this game is aimed to entertain 3-year-olds, I (not a 3-year-old) was fascinated by the fact that it mathematically works. The deck has 55 cards and there are 8 pictures on each card. And every 👏 single 👏 pair 👏 of cards has exactly 1 match??!! THAT'S AMAZING!

Other people on the internet--mainly engineers and math teachers--also wondered about the inner workings of the game. This person wrote a little about it and included "solution" sheets for making your own:

A sample of the solution sheet for putting 6 pictures on each of 31 cards.

I want to play this game, so I need to find a child for whom I can get this...

GZC has a young, inquisitive daughter, GZCE, who was approaching the age where she could play this game. Naturally, I went looking for a science-themed version of Spot it!, but it didn't seem to exist. Perfect! That means I'll have to create it!

I started brainstorming... my Google history shows these searches:
  • September 6, 2016: "make your own spot it game"
  • September 20, 2016: "spot it diy"
  • November 3, 2016: "spot it"
  • August 10, 2017: "spot-it diy"
Clearly, brainstorming takes me a really long time.

The first step was getting round coasters. You can buy them in bulk at Amazon. Or... In my case, I happened to attend a departmental retreat/conference in October of 2016, where coasters were laid out in front of each seat in long lines of tables. At the end of the conference, I tried to discreetly collect at least 31 coasters. A fellow conference attendee, SH, asked WTH 🤔I was doing. After meekly/awkwardly describing the concept of making a game for a 3-year-old 😳, SH enthusiastically joined in and helped me compile a mass of coasters. Step 1 completed!

Coasters, coasters, coasters everywhere!

This deck of coasters sat in my living room for close to a year before I started up the project again in August of 2017. GZC actually gave birth to a second daughter, GZCV, before I finished this project. 

Finding 31 unique science-related pictures...

Can you guess which day I collected pictures?

What does science look like? I challenge you to come up with more than 10 images. And try to span different branches of science. And don't choose anything that would scare a young child. And the images should have a Creative Commons (CC) license.

GZC's PhD is in immunobiology, so I made sure to include an antibody (which is sadly the extent of my knowledge of the field). Another obvious choice was DNA because GZCE's middle name is Rosalind, after Rosalind Franklin. (Unfortunately, the photo most associated with Franklin's work is not under CC license.) Here are the rest of the images I ended up using:
A is for Antibody (and Astronaut and Atom)
I wrote up more specifics on the process further down, but the here is the final product being playtested by GZCE and RC (aka GZCC). GZCE caught on very quickly and often beat the grown-ups at finding matching pictures. It's a bit premature to explain a lot of these concepts to a very young child (props to RC for his patience in trying, though), but luckily children don't need to understand what pictures represent to be able to match them. My hope is that one day, when GZCE is a junior in high school, she'll see the Mandelbrot set and have a "Wait! I've seen that before!" moment. It'll also be interesting to see how science will be updated/outdated in 10 years.

How do you explain Pavlov's dog to a 3-year-old?

Methods section 

Every good project write-up needs a detailed methods section, to ensure reproducibility. Hopefully I've provided enough detail, tips I learned the way, and inspiration for you to want to make your own, either for yourself or your own budding scientist.

The process and materials below assume that you are putting 6 pictures on each of the 31 cards. I found that number to be manageable in terms of finding enough pictures, fitting pictures on the card, and the amount of cutting without feeling overwhelmed. This link provides pdf sheets for other options:
  • 2 pictures per card, 3 cards, 3 unique pictures (Order 1)
  • 3 pictures per card, 7 cards, 7 unique pictures (Order 2)
  • 4 pictures per card, 13 cards, 13 unique pictures (Order 3)
  • 6 pictures per card, 31 cards, 31 unique pictures (Order 5)
  • 8 pictures per card, 57 cards, 57 unique pictures (Order 7)
  • 12 pictures per card, 133 cards, 133 unique pictures (Order 11)

Finding pictures

Google's image search tool has additional filters that allow you narrow down the type of picture you're looking for, including the usage rights associated with the image. Here is an example image search for "science", filtered to only show images that can be modified for noncommercial use.

Click on "Tools" on the right side to access additional image search filters.

Making stickers

After finding 31 suitable pictures, I put 6 copies of each picture onto a label template. I used 3M's 2"x4" labels (10 labels per 8.5"x"11 sheet), but Avery's version is also compatible with the template that I posted at my GitHub page. If you want just stick with the pictures that I used, I included the four label sheets at that link as well.


Use scissors. Put on a brainless TV show in the background. Cut the label sheet into smaller sections first, rather than trying to maneuver the entire sheet all the time. Oh, you were looking for real pro-tips? Read on...

So much cutting...
*Pro-tip* Pre-cut the label backing
Before cutting out a set of pictures, partially peel the label and make a couple longs cuts in the backing paper where the middle of the pictures will be once you replace the label. This way, once you cut out the picture, you can simply "crack" the backing paper and the label will come right off, instead of trying to pry the label from its backing along the edge.
By making "pre-cuts" in the label backing, peeling the sticker is a breeze. 

*Pro-tip* Create a grid of pictures
I took a sheet of paper and created a 4-by-8 grid to organize and number the pictures. I can't imagine how to keep track of them otherwise.
All organized and ready to go!

Sticking the pictures onto the coasters

This step should be pretty intuitive. I went through the list of which pictures belong on each card, and crossed each one off as I went along. I generally arranged the six pictures on each card before sticking them on, to make sure they all fit and were placed semi-randomly.

*Pro-tip* Make cards in batches and look for patterns
Here's an example of the first 10 cards:
Card 1 [0, 1, 2, 3, 4, 25]
Card 2 [5, 6, 7, 8, 9, 25]
Card 3 [10, 11, 12, 13, 14, 25]
Card 4 [15, 16, 17, 18, 19, 25]
Card 5 [20, 21, 22, 23, 24, 25] 
Card 6 [0, 5, 10, 15, 20, 26]
Card 7 [1, 6, 11, 16, 21, 26]
Card 8 [2, 7, 12, 17, 22, 26]
Card 9 [3, 8, 13, 18, 23, 26]
Card 10 [4, 9, 14, 19, 24, 26] 
Each of first five cards uses picture #25, so lay out five cards and put sticker #25 on each. You'll also notice that pictures #0-24 each appear once, so you can just slap each one of those across the five cards. The second batch of five cards also has its own unique pattern, but I'll leave that for you to figure out as a brain exercise.

Cards are all done!

Packing it all up

I found a box that happened to fit these coasters. (Hooray for hoarding boxes!) I also included instructions for variations of the game, and a reference sheet naming all the pictures so that GZCE can google them once she learns how to type ask Alexa to google things.

Tada! Finished product in its box, with instructions

Closing notes

This will be the 4th year that I will be walking with GZC and her family in Walk MS, and I hope you'll support us through your (tax-free!) contribution and/or by walking with us. The National Multiple Sclerosis Society does excellent work and is a great resource. I know this because GZC said so, and she's a scientist, so she definitely knows.

Thanks to SH for helping me collecting coasters at the retreat, to JM for proofreading, to ML for her social media expertise (hashtags can be overwhelming!), and to GZC for proofreading and allowing me to share her story.

Wednesday, November 27, 2013

Play fantasy football: In progress

 Happy Waiver Wednesday!

While a common Thanksgiving tradition is to have football on in the background while prepping for the massive feast, my family didn't partake in such traditions. In fact, excluding the occasional Super Bowl (for social purposes only) I had never watched a full football game until this season. A few months ago, on a whim, I agreed to participate in a fantasy football league. I figured I would learn a bit here and there (my first goal was to learn what wide receivers and running backs are), casually set my line-up once a week on Sunday mornings, catch a game every once in a while... real chillax stuff. It would take, what, an hour a week? But then... numbers.

Some background for the folks who are unfamiliar with fantasy football... 

Before the beginning of the football season, you get together with some friends and create a fantasy football league. A draft takes place, in which everyone takes turns picking football players for his/her fantasy football team. Each week, your team is pitted against the team of another friend in the league in a head-to-head match-up. You score points based on how well the individuals on your team performed in their real games. For example, you get a fraction of points for every yard that your player ran, and you get points for every touchdown he scores. You compare the total points of each team to determine the winner of that week's match-up. Eventually, you build up a record of wins and losses (as well as a gaggle of arch enemies) and establish a rank in your league. Towards the end of the regular NFL season, the highest-ranked teams face each other in the single elimination playoffs. The last team remaining is crowned the winner and gets to prance around in a field full of rainbows and unicorns.

So... back to numbers... 

Football is full of stats, and I found myself perusing weekly projections and "expert" rankings and weather reports and injury reports and depth charts and red zone targets and on and on and on... Naturally, I started looking for my own questions that could be answered within football stats.

Here is what I wanted to explore: How often do league-specific settings change the outcome of a head-to-head match-up, in comparison to standard settings?

More background for the folks who are unfamiliar with fantasy football... 

There are standard, default point settings for every fantasy football provider (e.g. Yahoo, ESPN, NFL, CBS), but each individual league can adjust its own point settings. For example, in standard scoring, a quarterback would be credited 4 points for every touchdown he throws. In our league, however, our league commissioner set it so that the quarterback would receive 6 points instead.

In a more extreme example, our league awards 5 bonus points for each of 40+ yard completions, 40+ yard passing touchdowns, 40+ yard rushing attempts, 40+ yard rushing touchdowns, 40+ yard receptions, and 40+ yard reception touchdowns. This means that if Aaron Rodgers throws to Jordy Nelson for a 50- yard touchdown, Jordy will get points for his yards (50*0.1),
plus 6 points for getting the touchdown,
plus 5 points for the 40+ yard reception,
plus 5 points for the 40+ yard receiving touchdown, or a total of 21 points.

Considering that nearly all of the top 20 wide receivers average between 10 and 20 points per week (and the next top 40 wide receivers average 8 to 10 points), the bonus points can cause huge fluctuations in scoring. How often would scoring adjustments affect the outcome of a match-up? Would these changes in head-to-head outcomes affect who gets a playoff berth?

Let's find out!

Coming from academia, this paragraph is the obligatory Methods section. I downloaded 12 weeks worth of league rosters and player statistics from Yahoo fantasy sports using the Yahoo query language (thanks for the tip, LN!). I parsed the XML data and did all subsequent data munging in Python. Finally, I imported the data into Tableau Public.

After some finagling (which, I believe, is the technical term for what I did), I ended up with this visualization of all our league's games thus far. Also, here are our league settings compared to standard settings. Differences are highlighted in blue.

Out of 60 games analyzed, there were 4 instances in which using standard scoring would have changed the outcome of a match-up. Team #8 (TR) seemed to be most affected by this, so in the visualization, I set the default view to her team. Note that league scoring is always in blue, and standard scoring is always in orange. In weeks 10 and 11, the dark blue bar (Team #8's score) is lower than the light blue bar (her opponent's score) whereas the dark orange bar is higher than the light orange bar. This means that she lost her league match-ups even though she would have won those match-ups had we used standard scoring.

Team #8 had 2 games (weeks 10 and 11) that were affected by our league-specific scoring system.
2 of her recorded losses would have been counted as wins had we been using standard scoring.

A breakdown of team rosters for week 11 in the lower half of the visualization window gives a better idea of what happened:

  • For Team #8 (TR): LeSean McCoy, Harry Douglas, and the formidable Cincinnati defense profited from our league settings. However, her quarterbacks, Christian Ponder and Eli Manning, were heavily docked for their sacks, fumbles, and interceptions.
  • For Team #5 (OF): While the quarterbacks, Big Ben and RG3, also struggled with sacks, fumbles, and interceptions, they combined for 7 40+ yard bonuses, which converted into 35 additional points.
On Team #8, Christian Ponder and Eli Manning were continually penalized for their multiple sacks, fumbles, and interceptions.
On Team #5, despite also having sacks, fumbles, and interceptions, Ben Roethlisberger and Robert Griffin III heavily benefited from the 40+ yard bonuses.

It seems as though sacks and the 40+ yard bonuses make the most difference in the outcome of the head-to-head match-ups. I thought that the defensive teams' "Tackle for Loss" statistics would make more of a difference because they greatly increase a defensive team's total points. However, it seems to affect all defenses in the same way, so it's pretty much a wash. On the other hand, certain quarterbacks are more prone to being sacked, while elite quarterbacks throw 40+ yard passes at least every other week.

Ultimately, does it make a difference? 

There have been 60 match-ups in our league so far, with 4 changes in outcome. Here is how it would affect our standings:

Our league happens to only send the top 4 teams to the playoffs at the end of the season, so as it stands, the same teams would be in the playoffs. However, given that we still have 3 regular season match-ups left (in our particular league), and that other leagues might send the top 8 teams to the playoffs, the scoring settings can indeed change the course of a team and its chances of an appearance in the playoffs. It might be worthwhile to deviate from standard rankings, and target players that are more likely to benefit from league-specific bonuses and devalue players that are more prone to league-specific penalties. Just some food for thought.

Speaking of food... I might just end up participating in the football-on-Thanksgiving tradition this year for the first time. Happy Thanksgiving everybody!

P.S. I'm team #3 if you want to do some fantasy football roster stalking and evaluate my waiver wire pick-ups or make recommendations (unless it's to suggest that I drop Roddy White, which I finally did this morning after much deliberation).

P.P.S. Special thanks to JM and SS for watching games with me and fielding all my newbie football questions.

P.P.P.S. To Aaron Rodgers: Please be healthy soon, OK?



Our regular, 15-week-long season ended this past weekend so playoff berths are locked in! While Teams #9 (CL) and #3 (me!) had already clinched 2 of the 4 playoff spots, it came down to the last exciting week of match-ups to determine the last 2 teams for the 3rd and 4th spots. Ultimately, Team #6 (JS) held on to 3rd seed, and Team #4 (BK) secured 4th seed.
We go back to the original question of this post, which is whether league scoring settings altered the destiny of any teams, and it turns out that it makes an incredible difference:

Notice the 4 teams with the same 8-7 record hovering around the playoffs cut-off! A win or a loss for any of those teams would have changed the outcome of the standings. Both Teams #6 (JS) and #4 (BK) would have dropped a full 3 spots and out of the league championship running had we been using standard scoring.

What I believe to be the clutch match-up was week 13, when Team #4 (BK) edged out Team #2 (CB--the same CB from my mittens post!), as seen in the blue bars on the left. However, had our league used standard scoring, Team #4 would have lost. Once again, the discrepancies came down to quarterback woots and woes, as seen on the right side of the figure.
The result is that the dream was kept alive for Team #4 (BK), while Team #2 (CB) struggled and eventually had to settle for 6th place.
In any case, I'm heading into the league playoffs, where anything can happen. Keeping my fingers crossed for an epic Aaron Rodgers return!

Tuesday, May 7, 2013

Win a Lifehacker MacGyver Challenge: Boom. Done!

Well, my work here is done.

I submitted a project from an earlier post to Lifehacker's MacGyver Challenge: Hack Something With LEDs. Lo and behold...
I won!

As a longtime Lifehacker reader (as evidenced by half of my sporadic blog posts) and a lifetime MacGyver fan (as evidenced by continual wearing of this t-shirt despite my attempts to purge my closet of t-shirts), winning a Lifehacker MacGyver Challenge is an incredibly high honor in my book and will probably be the apex of my hacking career.
And probably the apex of my blog traffic
Thanks Lifehacker!

Thursday, July 12, 2012

Read a book: Done! (Part 1 of 2)

During college and almost all of grad school (a total of more than 10 years), I finished exactly two books: Freakonomics and Walter Cronkite's autobiography. (And then he died a week later at the age of 92.) 
It's not that I'm anti-reading... I generally read magazines cover-to-cover (including letters to the editor and the yearly sidebar that tells you the magazine's readership), and I keep up with a lot of blogs. There were a few books I started reading, but never finished, including Stephen Fry's autobiography. Based on my most previous experience with completing an autobiography, maybe it's a good thing for Stephen Fry's health that I never finished his book. For some reason, I used to find it hard to commit to reading a full-length book. Even if I did try to read, I felt that only non-fiction, where I might learn facts that are potentially useful for trivia night, was worthy of my time.

I kept up this avoidance of books all throughout grad school, until the very end. My lease was up, and I only needed two more months to finish my thesis, so instead of renewing my lease for another year, JM kindly let me crash at her apartment. It's important to note that aside from being a biology major in college, JM was also an English major, so she had hundreds of books along her shelves.
As everyone knows, when you have to do something that you don't want to do, you'll find anything else to do to procrastinate. (For example: The internet is an excellent vehicle for procrastination, but unfortunately, JM didn't have internet at her apartment. And her TV has no channels. And her apartment was clean enough. And her cat sleeps all day. I spent one afternoon arranging the plastic containers in her cupboard to make sure they all had matching lids. (But you can really only do that once.) I spent another afternoon organizing her receipts, bills, and letters from her grandfather. (And once they're in their separate boxes, you just keep following that system.) But I digress....

At one point, I was so bored of working that I picked up a short fictional book ("Eat When You Feel Sad") that one of JM's friends had lent her, and starting reading. The story and the style of writing was so strange that I kept reading just to get to the ending. I didn't like the book, but I finished it. When JM got home from lab, she was obviously disappointed that I didn't make progress with my writing, but at the same time a bit incredulous that I voluntarily finished an entire book.
From that day on, I would pull books from JM's shelf that seemed interesting:
You might notice that these are all non-fiction books. Shortly after finishing my thesis (which I did eventually finish despite discovering this new time-consuming hobby), I decided to give fiction a try and chose to start with the Harry Potter series. Enough of my friends were fans (Pottheads?) of the books and the movies, and they all seemed to be in the loop about Muggles, and the rules of Quidditch, and who killed Dumbledore. (Incidentally, I was of no help to my trivia team when we encountered a round based solely on Harry Potter.) My understanding of the stories was something like this.  My friend MU had all the books, so as I finished one book, he would supply the next. 
Before finishing off Harry Potter, I took a short hiatus to read the Hunger Games trilogy, provided by CB. I realized that this was the first time I read a book before the movie came out. (But I still cried like a baby when that girl died in the movie.)

About two months ago, I bought myself a Kindle, on which I've read five books:
So in the span of less than a year, I've essentially converted from a non-reader to a legitimate Kindle toter. For all the readers and especially non-readers out there, ES shared this wonderful reading-related song with me several years ago. The language is NSFW, but it contains a lot of important life lessons. R-E-A-D a B-O-Ohhhkayyy!

Read a book: Done! (Part 2 of 2)

The early Harry Potter books were only a couple hundred pages each, so I was able to stick them in my bag and read them while I waited for the shuttle. However, the later books were insanely thick, and I could no longer easily transport them. Eventually, I decided to get a Kindle.
Obviously, every Kindle needs its own case. I visited the Salvation Army and bought two books that might be able to fit the Kindle inside. Eric Carle's "My Very First Book of Words" would be the ironic option, and the Harry Potter book would have significance in that it got me into reading fiction. 

Based on my experience in cutting secret compartments into books (this would be my third), I ultimately decided on the Eric Carle book because it was a board book and would hold its structure more easily. I was in a bit of a rush at the time, so I used clear tape to temporarily hold it all together. I have since replaced all the visible tape with double-sided tape (which everyone should have... it's magical!). I also stuck magnets on each side of the case (right below the surface pages) to keep the book from drifting open.

Because the Kindle uses E-ink instead of an LCD screen, it minimizes glare, but is useless in the dark. I wanted to see if I could make a simple gadget to supply a light source. After a bit of finagling with basic supplies I had lying around, I came up with a design that uses a small binder clip, a medium binder clip, 2 LEDs, 1 cell battery, and a small strip of paper. The medium binder clip is used to attach the contraption to the custom Kindle case.

Surprisingly, binder clips conduct electricity decently well. I used one of the arms of the binder clip to be the on/off switch. In the first picture below, the arm pointing off to the left side of the picture leaves the circuit open, so the LEDs stay off. In the picture on the right, I have flipped the arm so that it rests on the battery, thus completing the circuit and turning the LEDs on.

Here is what it looks like in the dark.

Some people have asked what the point of all this is. Yes, I know there are all sorts of cases and lights made for the Kindle, but by ThaiBinh standards, that would just be too easy. There wouldn't be anything to blog about and share with all 1 of my followers.

Wednesday, March 28, 2012

Donate (a full bag of) blood: Done!

Over the past 10 years, I have tried to donate blood 3 times, but failed each time.

  • In high school, I never got past the initial eligibility questionnaire.
  • In college, I got to the point where I had a needle in my arm and the blood was flowing into the bag... until it was about a third full. The person collecting my blood noticed that my blood flow was slowing down. They have a tool that looks like a dull pair of scissors that they clamp and glide over the tubing to clear away blood inside the tubing to determine how fast the blood is flowing. After a swift glide with those "scissors", it was apparent that my blood was moving at 0 mph. A supervisor was called over. Then a number of other phlebotomists took turns nudging and wiggling the needle in my arm, to no avail. So that was failure #2.  
  • In grad school, there was a Yale vs. Harvard blood drive, and I was determined to do better. I drank loads of water for days in advance. (I will spare you details of how awesomely clear my bodily fluids were.) I was excited and pumped up. My friend PS came to donate too. I was thinking, "Ima forreal donate blood this time, and we're going to beat Harvard in this competition!"
    This time, I got to the point where they stuck a needle was in my arm.
    And that was as far as I got. Again, a supervisor was called over. Then a number of other phlebotomists took turns nudging and wiggling the needle in my arm, to no avail. No blood ever even passed through the needle. The dull scissor thingy was never necessary, because the tubing was as clear and see-through as my bodily fluids. I felt really bad that I wasted an entire blood bag kit. So that was failure #3.
    But that's not the end of that story... A couple weeks later, I got an email:

    Hi Thaibinh,
    Thanks for donating blood at the Harvard-Yale Challenge! Just wanted to let you know that you've won an iPod shuffle!

    Apparently by signing up to donate blood, I was entered into a contest for an iPod shuffle. My friend PS (who had legitimately donated a full pint of blood) was not amused.

At this point, I had pretty much given up on ever donating blood and saving lives. However, an opportunity came up a few weeks ago when ES (a regular donor) was about to call the Red Cross to make an appointment for his bi-monthly donation. I happened to be there and decided on a whim to give it one last try.
In preparation, I again drank bottles and bottles of water like a boss. The eligibility questionnaire went without a hitch, and soon my arm was being cleaned with an iodine swab. A slight pinch later, my blood was flowing into a bag. I checked with my phlebotomist every couple minutes to make sure blood was still flowing, because I was still skeptical about my ability to fill an entire bag. In the meantime, ES had finished donating his pint and took a picture of me in action:
Thumbs up everybody!

Eventually, I passed the threshold and became an official (full bag of) blood donor!!

Afterwards, while eating snacks and drinking apple juice, ES and I had a conversation with one of the organizers of the blood drive. I was really surprised to learn that our blood would most likely be used within 3-4 days; I had donated late afternoon on a Monday, and by Tuesday morning, my blood would already be tested, and registered in the blood bank. By Thursday or Friday, it would be used up. I guess I should take this opportunity to encourage everybody (who is able) to donate blood. You can't possibly fail more times than I did.
When I returned home later that day, I found out that despite all my failed attempts at donating blood, I have an online account with the American Red Cross. Although I have supposedly donated 3 times (not counting my most recent success), I still don't know my blood type:

I've been told to expect my donor card in the mail in the next several weeks, and I'm excited to finally find out what blood type I am! I'll update this once I find out!

[Edit:] I'm O+!

Wednesday, February 15, 2012

Make mittens: Done!

I had a nice red sweater, but there was a hole on the side that kept growing every time I wore it, and unless I decided to follow a drastic calorie-reducing diet, there was no realistic way I would ever fit into this sweater again. Luckily, I found this article online, and making mittens seemed like a perfect project for a sweater I didn't want to throw out.
The video tutorial suggested using fleece as the inner lining, but around the same time that I started planning this project, my flannel pajama pants ripped. Naturally, I decided to substitute my torn PJ pants for the fleece to line my mittens. (People have asked whether I grew up during the Depression, considering the amount of scrap materials I am so hesitant to throw out.)

The "before" picture.

The first step was to cut out the pattern. I realized that I didn't have any pins to hold the pattern in place. But... within arms reach, I had some LEDs from another project that I'm working on.

Then I realized that it's even easier to just use double-sided tape to hold the pattern in place:

Here are the all the pieces that I cut out:

I had just enough sweater material to make two sets of mittens. Here are the leftover scraps...

I had just enough left over to make Juju's superhero outfit...
Serious business-cat by day...
... Super J by night!

GZC kindly lent me her sewing machine, and after careful reading of the manual with JM, I was on my way to sewing like a pro! Keep in mind that I had never used a sewing machine before, and had no concept of a bobbin or a presser foot. The instruction manual proved to be effective even for complete beginners.
I didn't even pose for this picture... This was the level of intensity the entire time.

Going around curves was my main source of frustration, but after some helpful tips from CB, I was able to sew each mitten layer with increasing agility and confidence.

A mitten begins to take shape!

Before sewing the cuffs on (which would permanently finalize my mittens), I took them out for a "test drive". It turns out that flannel is miserable as a mitten liner; the material did nothing against the wind that day, and its thinness left a lot of empty space inside the red shell. I ultimately decided to buy some fleece to replace the flannel.
Here, you can see the outer shell, the gray fleece, and the cuff. After sewing the three layers together, I would flip the cuff to the outside.

Tada! The finished product!

I had a lot of gray fleece left over, so I made some formal attire for Super J:

Thanks again to GZC, JM, and CB for all their help!!