Building a computer with my daughter and Hello Ruby

I bought the Hello Ruby books for my daughter a couple months ago. She was interested in learning to code, and I had recently watched Linda Liukas’ wonderful TED talk about how she came to write her books.

So I bought both of the Hello Ruby books: one about programming, and the other about computer hardware. I read the stories in both books to my daughter, and then we paused for a time.

I realised that Liukas also made available PDFs of the computers that school kids could download and print to make little cardboard computers. I downloaded the PDFs, and had them printed on 300 gram paper the other day.

Our daughter cut out the various pieces, read about components like RAM, ROM, the CPU, and GPU, and then we sat together this afternoon and built her computer.

Having done this, it may be time to return to the books, and start exploring some of the exercises in the books. It’s a great way to introduce kids to what is otherwise a pretty technical field. Our daughter loves the Hello Ruby approach. I’m a fan too.

Scientific papers shouldn’t be published as PDFs

Read a post

Jupyter notebook examples
Examples of Jupyter notebooks

I enjoyed James Somers’ article in the Atlantic titled “The Scientific Paper Is Obsolete” about how the standard format for scientific papers, namely PDF, is no longer the appropriate format for such data-intensive work.

This is, of course, the whole problem of scientific communication in a nutshell: Scientific results today are as often as not found with the help of computers. That’s because the ideas are complex, dynamic, hard to grab ahold of in your mind’s eye. And yet by far the most popular tool we have for communicating these results is the PDF—literally a simulation of a piece of paper. Maybe we can do better.

The article recounts the history of Wolfram’s Wolfram Mathematica notebook model, and the rise of Jupyter notebooks as an open source alternative that’s also rising to prominence in the space.

I love the idea of more open, more dynamic formats for sharing knowledge, capturing ideas, and promoting access to knowledge.

Learning Flask with Corey Schafer

My Summer project is to finish an initial version of my Practice Math site for our kids. I’ve hit a bit of a snag with fractions, but the functionality for whole numbers is almost ready.

The next step is to create a web site for the project so our kids can use the app through their browsers, rather than using the command line (somehow, I don’t think a CLI interface will grab our kids).

My plan was to learn Django, and use that to create a front-end for my Python back-end. I decided to follow along with Brad Traversy to help me learn how to create a basic Django app. It was a little trickier than I expected, and I hit a snag with my database configuration.

I then thought I’d take a look at Flask, and see if that would be a little easier for me to grok. I noticed that Corey Schafer has a Flask tutorial series where you build a basic blog with Python and Flask, so I decided to work through Schafer’s tutorial videos.

This has proven to be a terrific idea. Schafer’s tutorials are detailed, and really clear. There are times when he speeds up a little but, for the most part, I can follow along pretty comfortably, and understand what he’s doing.

Even though the goal of Schafer’s series is to build a blog, it covers a range of topics that I can incorporate into Practice Math down the line. It’s really an awesome introduction to building web sites with Flask, and well worth the time.

Not only does Schafer take you through the process, step-by-step, but he also provides links to snapshots of his code at each step of the process, along with useful code snippets in his GitHub repos.

You probably need about an hour for each episode. I binged for most of today (I’m on vacation this week), and worked through about four or five videos.

If you’re interested in Corey Schafer, listen to this TalkPython interview with him:

On a related, side note, working through this tutorial series just reinforces how glad I am that I returned to Python to start learning it (again). I still have a long way to go, but it feels like I’m picking up bits of it easier than I did with JavaScript.

I’ll return to JavaScript, for sure (you can’t really ignore JavaScript these days). For now, though, I love all the things I’m learning to do with Python.

Featured image by Sharon McCutcheon

An alternative to Israel’s expensive Microsoft licensing dilemma

Interesting article on OnMSFT: Israel, scared off by Microsoft subscription deals, won’t renew Office licensing agreements:

Under the current deal with Microsoft, Israel pays about $27 million a year for Office on the desktop, Windows, and server software being used across the government. The ministry issued a bold statement, saying “This will also encourage government ministries to re-examine their needs of using Microsoft technology or switch to other technology alternatives.”

Open source solutions are worth exploring. I’d love to see Israel adopt something like
LibreOffice, especially for schools where PowerPoint slides have become the default choice for notices.

I think Linux also makes a lot of sense for most people who just default to Windows because their computers come with it (albeit at a cost).

Schools, in particular, shouldn’t be sitting with PCs running Windows 2000. They can probably revitalise their old PCs with a lightweight Linux distro, and give kids an opportunity to use them for more than just gaming.

Certainly a switch like this is only possible with an investment, but the longer term benefits must outweigh the initial costs.

Making sense of JavaScript array methods with Array Explorer

Sarah Drasner shared her awesome Array Explorer tool on Twitter the other day. It’s design is pretty simple, and yet a powerful way to learn JavaScript arrays. What you do is pick a couple options from drop-down lists to find the right array method you need for a project.

I still find arrays challenging and yet learning how to work with them in JavaScript is so important. If you’re still figuring this stuff out, definitely take a look at Array Explorer, bookmark it, and use it.

Sarah even made the code for Array Explorer available on GitHub so you can see how she put it together too.

Parenting moments with shell scripting

I’m both fascinated by and borderline besotted with shell scripting (you know, all that command line stuff). It turns out my son is intrigued by what you can do from the command line, and it opens the door to some pretty cool parenting moments.

This afternoon I showed my son a little script I wrote that opens Firefox Developer Edition, VS Code, Remember the Milk, and displays the weather forecast for my city just by running an aliased script from my command line. The weather service is a very cool command line script that Jessie Frazelle wrote.

My son was astounded when he saw all these apps open after typing a single command in iTerm2. He immediately asked me to create something for him.

So I wrote a similar script for him for his Ubuntu PC. It doesn’t work quite the same as mine does on my Mac (Linux has an interesting way of opening some apps that tethers them to the terminal session) but he now has a little command he can use to open VS Code and give him a weather update from his terminal.

I love that he’s also into these things. He asked me to introduce him to something he can use to learn all these shell commands. He wants to write them down in a sort of cheatsheet. I have a couple of resources (the Linux Documentation Project is an awesome one I only recently came across) I’ll share with him, I think he’ll get a kick out of learning this stuff.

Photo by Lewis Ngugi on Unsplash

Learning to code and the argument for bribing our kids to read

My wife and I are avid readers and I suspect our daughter will also be one. She loves it when we read to her and she has started reading library books to herself. Our son, on the other hand, doesn’t seem to be that keen on reading most of the books I find for me. On the other hand, he seems to be very interested in learning to code.

Our son’s introduction to coding

I’ve been teaching myself Python (2.7.x if you are curious). I picked Python because it is one of two languages that people seem to recommend for coding newbies. The other is PHP. It may not be the easiest language to learn but I thought I have to start somewhere and it seems to be a good language to know.

I don’t remember who recommended it but I bought the book, “Learn Python the Hard Way“, and I’ve been working through it. I scheduled time to learn using Google Calendar’s Goals feature and did another exercise this morning involving prompts.

Learning to code in Python
Learning to code in Python

The exercise involved creating a pretty basic script and I showed what I had done to my son. He loved it and immediately wanted to know if he could also start working through the book.

The book is a bit too complex for him so I got him started with tutorials on his PC. He has already completed a few basic exercises using a visual, block-based interface for learning Javascript.

Like many kids, he is a Minecraft nut and I have a feeling the Minecraft mod classes on Tynker might be great for him.

Persuading him to read too

My challenge, though, is that he needs to spend time reading books too, particularly in Hebrew. He is in a Hebrew language school and while he is largely bilingual, his Hebrew is weaker than the kids in his class because he has only been speaking Hebrew for just over 2 years.

He enjoys reading Hebrew graphic novels and often re-reads his favourites. He just isn’t that interested in novels and gives up soon after starting a book. On the one hand, I’m happy for him to read graphic novels because he is at least reading something. On the other hand, he needs more variety in what he’s reading or he won’t learn new words and different writing styles.

Another option is to find different books. He is interested in the Second World War so I’ll look for age appropriate books about WW2 when I am next at the library.

It also doesn’t help that his Hebrew is stronger than mine because I can’t help him all that much when he encounters new words. He is also probably reluctant to ask me about words he doesn’t understand because he doesn’t think I’ll understand them either (he’s probably correct although I look up words I don’t understand).
The thing is, reading is as important as ever.

It’s all very well that kids can access much of human knowledge with whichever device they happen to have in their pockets at the time. Unfortunately, they typically use those connected, pocket computers to play Clash Royale and go hunt Pokemons (is that the correct term?) instead of expanding their knowledge of the world around them.

If kids don’t read, they won’t expand their language skills as much and be able to express themselves more effectively. Reading also stimulates their imaginations and that fuels their creativity.

Bribery and extortion as parenting skills

The things kids do on their devices is fun, sure. I certainly spent as much time as I could playing with the distant ancestors of our kids’ devices but they weren’t as pervasive back in the 1980s.

These days we have to limit the time our kids spend on their devices or we just don’t see them over the weekend. They spend their time watching superficial YouTube videos (even on YouTube Kids which our daughter uses).

Thankfully, the devices they use tend to run out of charge after a couple hours and that ends their device time for the day. After that they tend to play with each other or, as the weather improves, head out to the park to play now and then.

I have a feeling that linking his new interest in learning to code with encouraging him to read more may be the way to go. In the time-honoured tradition of parents bribing and extorting their kids to do things that are good for them, I may resort to requiring reading time in exchange for more coding time. Sometimes you have to do what you have to do.

Speaking of which, what do you do? How do you get your kids to read more in this digital age we’re living in?

Featured image credit: Andrew Branch

The Periodic Table of Elements in pictures for your kids


Keith Enevoldsen‘s “Periodic Table of the Elements, in Pictures and Words” is a must for parents and one of the many reasons I love the open Web. He has created an interactive version of the Periodic Table as well as downloadable/printable versions of the image-based Periodic Table and a text-based version.

Keith Enevoldsen's Periodic Table of the Elements

Keith Enevoldsen’s Periodic Table of the Elements

I hadn’t heard of Keith before I saw Laura Milmeister’s tweet this morning but I’m really glad I did. My son is interested in science and while he is still too young to have started learning chemistry at school, I have a feeling this will really come in handy when he does.

Enevoldsen’s resources don’t stop there. He has a collection of great resources on a range of topics on his Think Zone site which are worth checking out. I can’t comment on their veracity but I’m pretty excited that they exist.

Thanks Keith!

Image credit: chemistry by usehung, licensed CC BY 2.0