Download Issue of MagPi with python from Raspberry Pi 3 Model B+

# MagPi Issue Downloader

## Import 
import urllib.request
import shutil
import requests
import os
from bs4 import BeautifulSoup

# Identify URL to parse
url = ''

# soup it
Link = requests.get(url)
soup = BeautifulSoup(Link.content,"html5lib")

# get all link tags
tags = soup('a')

# loop tags
for hlink in tags:
	# create variable for full url
	issue = hlink.get('href', None)
	# only follow hlinks with PDF in the url
	if 'pdf' in issue:
		# download files with wget to current directory
		print("Downloading: " + issue)
		issue_link = url + issue
		os.system('wget %s'%issue_link)

Can’t decide…

I’ve been playing around with other blogging platforms for a while now… Ghost, Hugo, Django, and others. Is WordPress what I continue to use? Something else? I wish this wasn’t such a struggle, but I’m keenly aware of what drives this indecision.

1. Nostalgia

I am, first and foremost, driven by a nostalgia for a time I remember more than participated in, where websites were closer to, devoid of most types of styling and thus:

  • uncomplicated
  • fast
  • easily understood (from a technical perspective)
  • and thus… hackable.

It’s not particularly mysterious why these things appeal. However, they’re simultaneously conflicting with the following.

2. Design

I’m a sucker for good design. You’ll note that this is mostly in direct opposition to the simple, text-based, monospaced font aesthetic in #1. Yes, I have a couple advanced degrees in art. Yes, I’ve worked in marketing and design for a number of years. Yes, I care about how things look and my eyes are drawn toward minimalistic, but chic, so-called content.

*le sigh*

3. Fun

I actually find it great fun to play around with other platforms and I find myself doing this frequently. It’s honestly one of the reasons I ended up finally getting a domain and a shared hosting server. I like messing about with things to learn new things.

The Slow Learn — running Ghost 2.0
Little — running Hugo

Devlog — running Bludit

A selection of some of the many site platforms I’ve setup and used to write on in the interest of good-old-fashioned curiosity and general interest.

New WordPress

And so, wordpress just updated it’s blogging platform and this somewhat older site got upgraded is well. It’s substantially more pleasant to write in than the previous iteration―but it lacks the simplicity of something like Hugo (especially if I were to set it up to use emacs’ org-mode as the base as I’ve been planning). We’re not there yet.

For the moment I’m going to ignore this inner conflict about what to use as a platform. Perhaps that will allow me to focus on the projects themselves. At any rate, if you’re interested in checking out what I’ve written at those other projects do click the images above to visit wholly different pages.

Mike Godwin’s First Essay On Encryption And The Constitution

In in 1993, when Mike Goodwin originally wrote this essay, I was a very young boy and I find it startling how similar the arguments are for encryption with respect to constitutional considerations 25 years later. My thanks to the people who fought the first crypto Wars.

Roll One – Version 0.0.2

I’ve added some complexities this time around. There’s a new shape (the triangle) and a strong implication that this is a multiplayer game. There’s also the concept of overshooting the target (i.e. the goal―square|box). This results in immediate loss for the player.

In the first version of the game the player was rewarded for rolling a 1, in this game, the player is rewarded for rolling a 2 (or two 1’s in a row). There is no concept of restarting the game by implication in the rules (i.e. roll until you roll a 1), so we’ve created a sense of failure that the other game didn’t have.

It’s still purely a game of chance (no skill), but the game has changed.

Sidenote: I find it odd that I’m most fascinated by the philosophical changes the game. The idea that the game went from one of self-determination and meaningful effort in the face of loss, to one where loss means losing decisively and failing forever. Not only that, undershooting has a penalty (i.e. skip one turn), while overshooting is an immediate loss. This game requires perfection via luck.

I hesitate to say this game is designed yet, but there are clearly elements emerging. The key being the most interesting. Also, the quick use of unicode for the shapes in the rulebook is quite lovely. I’ve added version numbering (per the first post) to keep track of progress as we move along. I also sort of like the void―the space outside the gameboard―that results in automatic death. Stripes, in this game, are evil. Players must stay inside the lines.

Perhaps in the next version they’ll find a way to break out…

Roll One

This is the start of a new game.

Applying game constraints in collaborative activities often generates more creative ideas―breaking people outside of the pre-confined boxes. This different context and ruleset allows for an exploration of why the walls of the box were there in the first place, whether or not they still serve a purpose, or even if a box is appropriate at all.

I’ve been growing in my certainty that games are an appropriate medium for telling certain types of narratives. I’ve been on-and-off working on a boardgame about the healthcare system for the past two years. Having never produced a boardgame before it’s a process of fits and starts, uncertainties, whiteboarding, planning, complexification, distraction, and not enough real-world testing. Who knew healthcare was so complicated?

Earlier this week my son showed me a mass-produced book that he was excited about. It contained a great number of very basic, simplistic, and heavily-branded single-page board games. None of these, it seemed to me, would win awards or capture attention for too long, but there was at least one virtue: they existed. Someone, somewhere, had played them.

Later I had a thought that stuck with me: what if I make a game out of creating games? What if I start by creating a very simple game and then add complexity and modify it in different ways until it grows to become something much more interesting than it started? Is that a good way to create good games?

Well, I don’t know if that’s a good way to create good games―but it is a good way to make creating games a game itself. I’ve gamified game creation for myself. I couldn’t be prouder of this theoretical process. The actual product may leave something to be desired though (feedback welcome).

I must admit that it gives me joy to allow the player to choose the di they use for the game. All sorts of fascinating thoughts arise from this one point of amusement:

  • What if the player piece is actually the di itself (and the value of the player’s di actually directly influences gameplay)?
  • What if the di is a choice on each turn (and increases or decreases the odds on each roll depending on desired outcome)?
  • What if chosen dice can be combined somehow to choose paths, or branches, or even directions?
  • Does the color of the di matter?
  • Would the game come with dice (if sold) or would users always supply their own?

These thoughts make me confident I can produce version 0.1.1 (or whatever odd version numbering I choose for tracking this odd journey). I kind of like the idea of the eventual game being called “Roll One” (as in Roll 1.0). That the version numbers (let’s pretend this is 0.0.1) increase over time, always moving toward 1.0.

One last thought: what if the actual 1.0 game doesn’t just allow for the selection of dice, but also for the selection of the version of the gameboard (or ruleset) you play upon/under? What if you roll dice to determine what version of the rulesets and gamebard you use?

Perhaps I’ve been overly influenced by Merce Cunningham. Perhaps it’s for the best that I stop blathering on about what I might do and start doing. Perhaps that’s the point of releasing something simple. Perhaps this really is the start of a fun game (for me, at least). Wanna play?


Rolling Dice in Python

The below rolls dice in python.  I’ve long loved python for dice-rolling―having created a now defunct twitterbot and a mastodon bot―it was nice to write this up briefly as I’m working on re-re-re-learning python.

from random import randint 
total_dice = int(input('How many dice? ')) 
dice_val = int(input("How many sides? ")) 
rolls = [] 
high_roll = 0 
low_roll = 0 
for i in range(total_dice): 
 roll = randint(1, dice_val) 
nums = len(rolls) 
print("Roll #\tRoll") 
for i in range(nums): 
 print("#" + str(i+1) + ":\t" + str(rolls[i])) 
print("Highest: " + str(max(rolls))) 
print("Lowest: " + str(min(rolls))) 
print("TOTAL: " + str(sum(rolls)))

Output looks like the below:

How many dice? 20 
How many sides? 20

Roll # Roll 
#1: 8 
#2: 6 
#3: 18 
#4: 7 
#5: 14 
#6: 7 
#7: 6 
#8: 12 
#9: 2 
#10: 10 
#11: 2 
#12: 13 
#13: 3 
#14: 10 
#15: 20 
#16: 5 
#17: 6 
#18: 19 
#19: 1 
#20: 15 
Highest: 20 
Lowest: 1 
TOTAL: 184

Wonderful fun.

Bluetooth Keyboard Pairing on Kano OS

Our Logitech K380 keyboard wouldn’t pair to our Raspberry Pi 3 running Kano OS today (I know, very specific). I couldn’t quickly find an answer to this on the greater web, in part because I figured that the Kano folks would have had a helpful guide somewhere―but that turned out to be a faulty assumption. The following will, I hope, assist others querying the great search gods.

So, I recently had an issue with our Raspberry Pi 3 running Kano OS. The issue was that our Logitech K380 bluetooth keyboard was failing to connect. This keyboard has the unique ability to switch between being paired (differently) with up to three different devices. These are paired (and selected) by using the F1, F2, and F3 keys respectively. Hold down to enter pairing mode and―once paired―briefly depress to select that particular pair to interact with the specified device. Very cool!

I’m not certain if holding down the dual pairing/F[1|2|3] key resets whatever pair there was on that key, but that’s what appeared to have happened. Kids press things, it happens, and now they couldn’t type because the pair was broken. Not cool! But it gets even worse.

After trying to re-pair the device to the computer it became clear to me that Kano OS was preserving the device itself (I believe by MAC address) as an already-paired device. So it smartly was not allowing that same device to pair with a new key because, well, it already had agreed upon a key to pair with this specific device and that sounds like a potentially troubling security issue.

The Kano OS GUI interface offered no way to delete the device. Luckily this is Linux, so I knew there was certainly a way once I understood the problem well enough to seek a particular solution. The sad reality was that I needed to borrow a usb keyboard from another machine to type the commands (if anyone can walk me through text-input on a Raspberry Pi 3, Kano OS, with a mouse via command live I’m interested), but a post on “Ask Ubuntu” gave me the commands I was looking for:

Open terminal and type:


then you will see the list of devices you have paired with and their corresponding MAC address. To un-pair a device type:

remove aa:bb:cc:dd:ee:ff

replace aa:bb:cc:dd:ee:ff with the MAC address of the device to un-pair.

So after entering that command―which removed the device and previous key pair form the machine―I was able to go back through the GUI of Kano OS and “find” and then pair the keyboard anew with the OS. This was a successful experiment with wonderful results: kids using their computer once more.

Related note: If you have been considering a computer for your kids and have some peripherals and a monitor around, it would be hard to beat a $35 Raspberry Pi3 (and a ~$10 plug and ~$10 case). It’s truly a beautiful learning OS. You’ll need to help them out of course, but there’s a lot there for them to explore on their own. Easily the best purchase of any type I’ve made in years.

new art project: Kyle&

time off

One of the things I’ve been doing this past week is creating art, initially with Kyle& … nobody. I’d been working on some things for the Fedora project on and off, but nothing was really sticking until I started working with my kids.

My children are very good motivators with respect to artistic output because they’re constantly creating artworks―comic books, sculptures, sketches, oral stories, small performances , and elaborate board games. It’s inspiring to watch them create without burden.

They have helped me come to a realization about myself―I’m happier when I’m collaborating. It could be my background in theatre, my penchant for teaching, or my constant questioning of my own ideas (and appreciation of other voices to move forward). Collaboration is something I’ve always found valuable because it’s been a valuable part of of the art I’m most proud of.


So I’ve decided to call a new project into being. I’m calling it Kyle&. It will be a place (and, mentally, a namespace) where I will collaborate with different people to create something new. I’m hoping it’ll be interesting.

Perhaps these artworks will be accompanied by a brief interview with my collaborator? Maybe they will be available for patronage in one form or another? Perhaps there will be other interesting opportunities. I don’t exactly know―it’s an experiment.

this burning heart

The first of these experiments is with my 5 year old and is called This Burning Heart. She had seen me share things with the internet before and wanted to do so herself. I suggested we work together to create something and this is what we ended up with. She’s proud to have shared something with the internet and I’m happy to have found a new outlet to excite the kids.

We’ve already done some things with my other kids (they were jealous). Will post about those later. Hope you enjoy This Burning Heart.





Saying No and Yes―Bill Murray Interview

SR: A lot of folks worry that if they aren’t available or don’t say yes, they’ll stop getting asked.

BM: If you keep saying yes, they’ll stop asking you, too. That’s a much more likely event. I think we’re all sort of imprisoned by — or at least bound to — the choices we make, and I think everyone in the acting business wants to make the right choices. You want to say no at the right time and you want to say yes more sparingly. I came out of the old Second City in Chicago. Chicago actors are more hard-nosed. They’re tough on themselves and their fellow actors. They’re self-demanding. Saying no was very important. Integrity is probably too grand a word, but if you’re not the voice of Mr. Kool-Aid, then you’re still free. You’re not roped in.

This reminds me a little bit of a book called essentialism which talks about saying no to things. It doesn’t quite match up, as Murray sways into type casting, but the impetus is similar.


The project preview

I’ve been working on a project. I believe it’s a good one.

I have arranged some asterisks―


―and also borrowed and modified a line―


―then I borrowed some cruft (dusted off from something pretty good, if a little old)―


―at the end of it all I have some words.

Cryptic Outro―apologies

So really, its just a long-time project that began over two years ago that I think still has a place in the conversation about rights, dignity, and human values. I’m hoping to have this out by years’ end, but I’m also wanting to ensure that I’m not missing an opportunity to incorporate some other elements into the work from recent events.

Perfect is the enemy of good enough.



I contributed to the most recent Fedora Linux release’s wallpaper. It’s interesting to have seen it pop up everywhere I normally read about Linux as a featured image touting the new releases arrival.

At any rate, this is a squeak from me. It’s been a while since I’ve posted here (I was off playing with static site generators and custom Emacs scripts), but I’m quite happy to be back. I may migrate the writing I did elsewhere to this blog in time.

At the moment I’m working to add some portfolio content to this site. My 3×5 artwork series for a local coffee shop finally gave way to heavily manipulated photography series I’m currently in the middle of completing. This return to pixels from vectors is a long time coming. We’ll see how long it lasts.

Excited to share with you all.

Squeak! — A-Hem


I’m thinking about doing some tutorial-type things revolving around some of the free-software tools I use to create visual art. Predominantly I’d focus on inkscape (at least at the moment) since I’ve been enamored with vector graphics on that program for a while. I’m also interested in doing something for inkscape as it was a program I avoided for a long time and there was no reason for the delay. If I can assist anyone out there in picking it up faster the world would truly be a better place.

I’d have to talk about other tools I tend to use like gpick, GIMP, digikam, darktable, and others I’m likely forgetting. Looking back and trying to think about writing out my process for any of these things becomes daunting quickly―I forget how many little processes I’ve enacted over the years that otherwise complicate the explanation of what I’m doing.

For instance, I’ll often prepare images in GIMP (using the G’MIC plugin) prior to vectorizing in inkscape. That single step for me is just a given, but in the context of a tutorial it would require explaining a whole other program and a separate plugin for that program. *Alas!*


But I think others could learn… so I’ll probably do it.

White keyboard layout

This is a pretty amazing use of programming and personal data to create a custom keyboard layout for yourself. Great read.

This scoring method is then evaluated on a collection of text that is representative of all text I’ve typed in the last five years, which produces a number representing the objective function. Specifically, I take all of my code, IMs, emails, and articles over that time period, remove any non-ASCII characters, and create a long word frequency list to be used in scoring layouts. Lastly I throw out any words that were not used more than 20 times over 5 years, for the sake of efficiency.


Your Personal Archiving Project: Where Do You Start?

Pretty great, low-key article about not losing your mind organizing things. I suspect this is easier when it’s not your stuff. Never really thought about how archivists archive and it’s interesting. Wish they’d addressed long-term digital storage formats. Would assume you’d use free software if possible.