Microsoft revokes digital media. Again.

In 2010, I joked “I don’t think any child born in 2010 will get the chance to hear the music of their parent’s youth”, as DRM encumbered media would be unplayable.

Even in 2010, we’d seen Microsoft’s “PlaysForSure” music (launched 2004, RIP 2008) not play on Microsoft Zune (launched 2006, RIP 2015).

Today, Microsoft announced that it is revoking the ability to read books purchased on its book store. It is refunding its customers.

I didn’t foresee the rise of streaming music services – I think this model is better, as there is no illusion of a purchase.

Fixing ink blobs on epson xp-830 prints

Black ink blobs dropped randomly on pages

My Epson XP-830 started dropping black ink globs on my prints, which would smudge and wreck photos. As I had recently installed $150 worth of ink, I didn’t want to just go out and get a new printer. I also liked the compact format of this printer, and wouldn’t just buy the same one, as this was starting to look like a doorstop after its 2nd set of cartridges. I wasn’t concerned about breaking the printer at this point, because I was ready to throw it out.

I managed to resolve the issue – I’ve decided to write about what I did, and perhaps some will find this article and I’ll save a few printers from an early trip to the landfill. I expect this will work for any Epson XP printer.

First, I ordered a print head cleaning kit from Amazon (kit, Amazon link). In hindsight, I don’t actually think this was an issue with my print heads, but I did a number of things all at once, so I don’t know exactly which step resolved my issue. I recommend watching their video before ordering the kit.

The first step was getting the print head out of its right-side dock. Go to the menu, click maintenance, and then click Ink Cartridge Replacement.

Click proceed.

At this point, the print head will have moved to its change cartridge position. Disconnect the power.

I used card stock and paper towels to clean all of the ink I saw in the areas identified by red arrows

At this point, I took out the cartridges, and I wrapped them in plastic wrap, following the guidance of the Print Head Hospital.

I did clean the heads, as instructed in the Print Head Hospital video, but I think what really made the difference for the black ink globs was the following: using cheap papertowels and cardstock, I cleaned up all the ink in the areas highlighted by arrows in the above image. I cleaned under the print head by cutting a ~1″ piece of cardstock, wrapping it with a paper towel, and running it underneath the assembly as shown at the 3:40 mark in the Print Head Hospital video, and repeated until the paper towel would come out clean.

I plugged the printer back in, re-installed the cartridges, ran the regular print head cleaning cycle 3 times (until the test page came out fine), and am now getting perfect prints.

Good luck – hope this helps.

Fix a worn out Toronto Public Library card

I’m on a roll this week – a record number of posts (3 in 7 days…).

The bar code on my library card has been worn out for a while.  My last few trips, its probably taken about a minute for me to play around with the positioning of the card on the library’s scanner to get it to read correctly.

Years ago, I’d read how my friend Chris created a custom library card with all of his family’s card numbers on it.  Although I’m sure the instructions he provided would work (I suspect the library’s barcode readers handle many formats), the bar codes his method created didn’t match the one on the card.

Here’s how to get one that matches:

  • The format is Codabar
  • The Start and Stop character is ‘A’
  • The Toronto Public Library’s account number already has a check digit, you don’t have to add one
  • Many online generators exist.  I used abarcode.net

I printed mine and stuck it to my old card with packing tape.

Reverse engineering a recipe

The Hispanic Fiesta Latin-American festival descends on Mel Lastman square in North York every labour day weekend.  The festival has lots of live music, a beer tent, and food vendors.  And every year, I buy a coconut ice pops (“Paletas”/popsicles) from Polar Real Tropical Fruit.  They’re awesome, and I never see them sold anywhere else.  Perhaps its the ambience of the festival, but I prefer them to other coconut ice pops I’ve tried.

So, I decided to try to make my own.  I took a picture of the ingredients and the nutritional information.

Coconut Paleta Ingredients and Nutritional Information

Then, looking at the protein, carbohydrate, and fat content of each key ingredients against the nutritional facts of the ice pop, I estimated the proportions of a 150 g serving as follows:

  • 15 g of shredded, sweetened coconut
  • 70 g of 2% milk
  • 2 g of tapioca starch
  • 13 g of sugar
  • 50 g of water

Here’s how mine turned out:

Homemade Coconut Paleta

It looks very much like the ones from Polar Real Tropical, but the texture was a little more ice-crystal-y, and it was less sweet.  For my next batch, I’ll cook the mixture before freezing it.  This should help the sugar dissolve evenly, and allow the tapioca starch to thicken the mixture a bit and improve texture.

Fish Feeder Project – Part 2 – Completed!

After seeing the simple Automatic Fish Feeder on Thingiverse, I immediately ordered the required parts and set about modifying the design for my purposes.

Fish Feeder - Original Model
Fish Feeder – Original Model

I liked this particular design, as we only have a 2 bettas in 2 bowls, and we need to ensure only a couple of very tiny pellets drop with each feeding.  I did want to make a few changes.  It was not clear how the motor was controlled in the original design – I wanted to use an optical slot sensor to detect when to start and stop the rotating disc.

With OpenSCAD and Inkscape, I modified the original design.  I added slots to the rotating disc, which could be detected by the slot sensor, and modified the support to suit my fish bowl.

Completed Fish Feeder
Completed Fish Feeder

Parts and Assembly Notes
  • Arduino Nano
  • 9V DC power supply
  • Optical Slot Sensor (I used an Omron EESX1002-W3A – I just picked one at random from my local electronics store)
  • Geared motor, DealExtreme SKU 214121
  • TIP120 transistor
  • 1N4001 diode
  • Wires, resistors as per schematics
  • Prints of Support-RichardMod.stl, discwslots.stl, Lid_for_motor.stl (files below)

The motor is connected to pin D9, and wired as per https://www.arduino.cc/en/Tutorial/TransistorMotorControl

The slot sensor is connected to pin A0, and wired as per http://www.martyncurrey.com/connecting-an-photo-interrupter-to-an-arduino/
I glued the slot sensor to the side of the support

It took some code tweaking to get the disc to stop at every hole.  I couldn’t control the speed of the motor with pulse width modulation – perhaps because it’s geared, or there was too much friction, it just didn’t move unless I gave it the top speed.  I settled moving the disc in small increments, checking the measurement from the slot sensor, repeating until it sensed it was in the right position.

Demo

Once built, send a ‘1’ over the serial port to the Arduino, and it will advance the rotating disc to the hole.

Source files: http://www.hotelexistence.ca/projects/FishFeederFiles.zip

Primary School Reading Log

My kids are both avid readers, but neither have been good with maintaining a reading log, sometimes requested by their teachers.

I thought if I reduced the effort required to maintain the reading log, they’d be more likely to track the books they read.  I created a website where, using a smart phone, they could just take a picture of the bar code on a given book.  The website would read the bar code, and make a call to the Google Books API to retrieve the book title and author, and add it to the reading log.

Reading Log Website
Reading Log Website

It was used for a month or two, and then the novelty wore off.  We’re back to just reading books, as opposed to tracking what we read, which I guess is the important thing anyway.

In the past, I’ve worked with AWS, but I thought I would use the Google Cloud platform for this project to try something different, and now my free trial has expired, so the site is no longer up.

I wanted to use the QuaggaJS in-browser (Javascript) bar code reader, which would save sending the bar code picture to the server, but, in testing, the Java based Zxing was much better at consistently reading the bar codes, so the website gets the user to take the picture of the bar code, sends the picture to the server, and the bar code is converted to an ISBN server-side.

I haven’t documented it, but source can be found here: https://github.com/raudette/readinglog

How to play the Willowdale game

Belle and Megan
Belle and Megan, characters in the game

Willowdale is a game I made with my kids where you can explore our neighbourhood.  You can read more about how we created it in  Creating A Game.

The Game

You can access the game at
http://willowdale.s3-website-us-east-1.amazonaws.com/

Controls

  • Arrow keys to navigate
  • Enter key to advance dialog
  • Move your character to the ladders to move from one map to the next

Ladder to move to another screen

Hints and Things to See

We’re not gameplay experts – if you want to explore, disregard the following.  However, if you just want to see what we’ve implemented, you can check out the following:

  • Walking into the kitchen at 55 Ellerslie will trigger dialog
  • Walking into the patio stones in the middle room of 55 Ellerslie will take you to Candyland
  • From Candyland, you can walk into Belle the fairy’s home.  Walking near Belle in her home will trigger dialog

Creating a game

The kids are always drawing characters and writing, and I was wondering – could we use this to make a game together?

It turns out, we can.

Scene from Willowdale
Scene from Willowdale

I’d guess in about 30 hours, we’ve put together a small world where:

  • The player can wander around our world
  • The kids have both drawn characters that appear in the game
  • My 7 year old has designed a couple of maps
  • Together with my 7 year old, we have written some dialogue
  • I figured out how to build out some simple logic, connecting scenes

First, I looked into various game making tools.  I ended up using Stencyl, the first one I tried.  I checked it out first because the free version is limited only in that it only allows you to publish your game to the web (as opposed to desktop or mobile versions), and, for me, a big bonus was that it runs in Linux.

I was really impressed, and would recommend it to anyone thinking of doing something similar.  There is a small library of assets you can use in your game, adding logic is similar to logic blocks in Scratch.

I did get stuck in a couple of places:

  • The recommended system for character dialog is not built-in, and instructions for installing it were hard for me to find.  I posted a question to the Stencyl forum, and the extension’s author sent me a link to the Stencyl Dialog Extension installation instructions within a couple of hours
  • I struggled adding the extension to my game – someone has put together a Dialog Extension Youtube Tutorial which helped out
  • Other small things – usually when I create something, with a little searching, I can usually find answers pretty easily on Stack Exchange.  I found it harder to find answers my issues with Stencyl, and spent more time trying different things – I think, largely due to a smaller development community

It wasn’t until we started that I realized how much effort is required to put together the artwork for a game.  It is one thing to scan in a drawing of a character, but another to create drawings of the character from every perspective, such that it is animated as it walks across the screen.

At this time, it’s not much of a game – just a small world to explore.  But it was fun to put together – you can check it out here: http://willowdale.s3-website-us-east-1.amazonaws.com/

 

Fish Feeder Project – Part 1

My 7 year old recently acquired a fish bowl with a betta fish.

Apparently, the PLA plastic used in 3D printers doesn’t degrade significantly in a fish tank, so I started looking for aquarium decorations we could print.  And I came across a design for a fish feeder: https://www.thingiverse.com/thing:1257953

I started modifying it to accommodate our fish bowls.  She asked to help out, so I suggested she do a sketch of her design.

Rachel Fish Feeder Sketch
Rachel Fish Feeder Sketch

Her design has a timer, and uses a suction cup to attach the feeder to the bowl.  I was skeptical, but she found a suction cup and demonstrated it would stick to the curved wall of the bowl.

I then set her up with Tinkercad.  Here’s the 3D model she made of her design:

Rachel Fish Feeder - 3D Model
Rachel Fish Feeder – 3D Model

Our fish feeder is still a work in progress, we’ll post pictures of our project when it is complete.