Posts from February 2011

February 2011
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1 📝
2 📝
3 📝
4 📝
5 📝
6 📝
7 📝
8 📝
9 📝
10 📝
11 📝
12 📝
13 📝
14 📝
15 📝
16 📝
17 📝
18 📝
19 📝
20 📝
21 📝
22 📝
23 📝
24 📝
25 📝
26 📝
27
28 📝

Thing-a-Day #28 - Finished an audiobook

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

After a long lazy Sunday spent catching up with old friends, I found myself in bed at 11:30pm realizing I had not done anything for thing-a-day.

And that this is okay. :)

Today I spent my bus ride from Baltimore to NYC, and a bit more time this evening, finishing the audiobook for Cory Doctorow’s For the Win.

For the unfamiliar, For the Win is a story about gold farmers (players who exploit in-game resources to sell them for real-world money) around the world coming together to fight for reasonable working conditions and pay.

I enjoyed both of the other Doctorow books I’ve read - Little Brother, Down and Out in the Magic Kingdom, and Makers - but the synopsis put me off of this one a bit at first.  My actual knowledge of gold farming extends only about as far as World of Warcraft music videos, so I just wasn’t that excited about it.

However, the story definitely grew on me. As usual, Doctorow does a really nice job of blending technology that’s “not quite here yet” and putting it to work in his stories. I’m a sucker for the near-future scifi. I’m also a sucker for obscure familiarity, so the odd coincidence I know someone who once worked at Coca-Cola games, the megacorp behind these towering virtual economies in the novel, was another good hook for me as well.  Story arc wise, there are compelling good guys and they encounter harrowing challenges at the hands of a colorful host of bad guys, from the misguided to the downright cruel, and I always enjoy the suspense.

Beyond these hooks, I also enjoyed being made to think about a great many more things that I expected to.  From stories of factory girls in China, to union organizers forced to live outside the system under a stream of false identities, to confidence scams and how they are played out on the small scale and the global scale alike.

So, my thing for today is the review you have (hopefully) just read. I hope that you enjoyed it.


I must say that, despite missing a day, I am quite pleased that I have managed to stick so well to thing-a-day this February.  I definitely learned a lot!

I went in with a lot of grand ideas about being able to knock out one little piece of a bigger project every day, but quickly found that little pieces are a lot bigger than I expected. I often found myself without a plan for a given day, and would (grumpily) have to both come up with something to do and then do it.  Still, this approach worked well in the beginning.  A bit more time spent refining my larger projects into little deliverables over the month could have gone a long way towards making it easier to stick to the commitment and towards the completion of a bigger project.

Complications aside, I made some awesome stuff that I might have never found the time for otherwise!  It is always easy at the end of a day to say “Meh, I’ll do those things later.” Having the thing-a-day structure meant that I was almost always making progress on something, even if it was frivolous, and it is nice to recognize little accomplishments, sometimes.

Anyway, thanks to those who followed along.  Let’s keep making stuff!

–Marty

Thing-a-Day 2011 #26 - "Improved" scribbling in JavaScript

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I played with the mouse coordinate handling a bit to try and compensate for the rotation, but it's still not great. For some reason, up-and-down movements seem to track well, but left-right movement causes the drawing point to move up and down relative to the cursor.

My guess is that I am just being bad at "the maths" and that I'll get it figured out later. :)

Derp

Play here: http://schmarty.net/hershey_js_demo/

Thing-a-Day 2011 #25 - Scribbling in SVG (+Hershey font typing)

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Added some scribbling to my little JavaScript app, which also gets saved to the SVG.

It's not great (my insistence on making these things map to the sticky note image means they don't line up right with the mouse), but it works!

Scribbs

As before, you can play with it here: http://schmarty.net/hershey_js_demo/

Thing-a-Day 2011 #24 - Hershey Fonts in JS, now sized for Unicorn Plotting!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I tweaked my little Hershey Fonts in JavaScript toy a bit. Now, the SVG data that it produces is at the right size and scale to plot on a sticky note on a MakerBot Unicorn.  Save the SVG content, load it in Inkscape, and save it as .gcode using my Inkscape extension for Unicorn.

At long last, after a bunch of little thing-a-days, I can write out a sticky-note:

Belaird

Save the SVG data and open it in Inkscape:

Belaird-inkscape

And save it as G-Code for plotting on the Unicorn!

Belaird-gcode

Matt Griffin was kind enough to plot it for me on one of the Thing-O-Matics at the BotCave:

Belairicorn

... sorry for the Bel-Air... :)

You can play with it here: http://schmarty.net/hershey_js_demo/

Thing-a-Day 2011 #23 - SVG Output for Hershey fonts in JavaScript

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I really wanted to get SVG manipulation going in this demo, so I have ported the rendering (once again), this time using the jQuery SVG lib, which is really nice and easy to use: http://keith-wood.name/svg.html

Hershey-js-svg-output

You can play with it here: http://schmarty.net/hershey_js_demo/index.html

Thing-a-Day 2011 #22 - Hershey Fonts in JS - on a Sticky Note!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Ok, this is more a kind of clever image arrangement than anything else, but it looks nice, I think.

Writing_on_a_sticky_note

You can play with it here: http://schmarty.net/hershey_js_demo/index.html

Until I change it again!

Thing-a-Day 2011 #21 - Auto-scaling Hershey fonts in JavaScript

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Ok, this is kind of fun, even though the code is very naive.

I've added a height-check at the end of my line-breaking code. If there are too many lines of text to fit within the allowed space, the algorithm will rescale everything and try again:

Auto_scale_hershey_js

This isn’t great for real-time text flow, but it is fine for fitting text, I think.

Thing-a-Day 2011 #20 - Hershey fonts in JavaScript on the canvas

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I haven't been making as much progress on my "draw things in the browser so a robot can draw them on the Unicorn" project, so I decided to take a stab at cleaning things up a little to make that easier.

Today I rewrote my little demo to use canvas 2D instead of Raphael.js.  It looks the same, for the most part:

Hershey_js_canvas

But being in canvas land instead of Raphael land means I can do real stacked transforms easily, without having to keep track of them myself. For instance: ROTATION!

Canvas_rotated

Thing-a-Day #19 - Cube Gears!!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Today I finished and assembled the awesome Cube Gears by Emmett from Thingiverse!

They are so much fun to turn. Printable working gears for the win!

http://www.thingiverse.com/thing:6073

Photo

Thing-a-Day #18 - Tweaking the Stepstruder MK6 on a Cupcake CNC

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Today I spent some time configuring my MakerBot to work well with the new (awesome!) stepper based plastruder from MakerBot.

The pieces shown here are from the Cube Gears on Thingiverse: http://www.thingiverse.com/thing:6073

Photo

Thing-a-Day 2011 #17 - Simple line-wrapping for Hershey JS demo

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I've decided to slowly expand this drawing-stuff-in-the-browser demo, and added some simple line-wrapping to the code on my demo page:

http://schmarty.net/hershey_js_demo/

Word wrapping is an interesting topic, and I hope to get this cleaned up a bit with features like breaking up words if they are too long, improving the algorithm to make nicer "squared" paragraphs, etc.

Line_wrapping_hershey_js

Thing-a-Day 2011 #16 - Live demo of Hershey Fonts in Javascript

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I made this demo a while ago to test out my ability to render Hershey text with JavaScript, but it is kind of a fun toy, so today I put it online for you folks to play with.

It's a simple HTML and JS page powered by jQuery (for awesomeness) and Raphael,js (for SVG drawing). As always Hershey fonts are interesting.

You can find the demo here: http://schmarty.net/hershey_js_demo/

Hershey_js_demo

Thing-a-Day 2011 #15 - How-To docs for Inkscape Unicorn extension

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

It's about time this stuff was documented for other people to use easily!

So, I made this page on the MakerBot wiki:

http://wiki.makerbot.com/unicorn-output-for-inkscape

Unicorn_g-code_output_extension_for_inkscape_-_makerbot_industries

Thing-a-Day 2011 #14 - Sticky Note Tweet template for Unicorn

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I've been toying with the idea of cool automatically generated plots for the Unicorn pen plotter. This one is an experiment in laying out a tweet for plotting on a sticky note.

It should be possible, layer, to use this as a template for creating new plots! Could be kind of fun.

Feel free to grab the file on Thingiverse.

http://www.thingiverse.com/thing:6425

Tweet

Thing-a-Day 2011 #13 - Cardboard spool for MakerBot plastic

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Inspired by Charles Pax’s design, but painstakingly faked with a ruler, pencil, string, and scissors. I also picked up a lazy susan for it to ride on, so I just need to get a plastic drawer to mount it all to.

http://www.thingiverse.com/thing:1550

Photo

Thing-a-Day 2011 #12 - Blackout dinner

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

This is a bit silly, but sometimes thing-a-days can be silly, right?

The power in our apartment building went out while I was making dinner. The rice managed to mostly finish, so I decided I’d heat up this pouch of kidney bean curry over a candle. The aluminum pouch spreads the heat nicely, I just need to pick it up and squish the contents around every couple of minutes to make sure everything is heated evenly.

Photo

Thing-a-Day 2011 #11 - *sta (a.k.a. "Starsta")

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Thingiverse has recently caught mashup fever, and our current LOLcat/exploitable seems to be this awesome Gangsta by yzorg.

When I saw Allan's "*sta" post on the Thingiverse blog, I got the mash-up bug and had to make this:

Starsta

Want to make your own *sta? Just grab the model from Thingiverse.

Thing-a-Day 2011 #10 - A lot more Baltimore Node ping-pong balls

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Because... it's fun!

Node_ballz

I took my EggBot to the Baltimore Node this evening and plotted out a bunch of ping pong balls with our logo in 2-colors.

EggBotting is kind of zen.

Thing-a-Day 2011 #9 - Plots of the 2-color Baltimore Node logo!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I made this version of the Baltimore Node logo the other day in Inkscape, but wasn't at home to test it. Here are the resulting plots on both EggBot and Unicorn!

The Unicorn version came out a little messed up due to my sizing the file wrong - the pen went off the edge of my sticky note pad and mussed everything up. I resized the plot to fit the sticky note fine, but had some pen registration issues with the now-crumpled sticky note pad. I'll probably try this again later with some nicer stock.

New files and more detailed description over on Thingiverse.

Node-2-color-eggbot
Node-2-color-unicorn

Thing-a-Day 2011 #8 - Hershey font rendering in JavaScript with Raphaël

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

After exporting a bunch of Hershey vector fonts to SVG the other day, I was concerned that the next step in using them in a program would be painful. Specifically, I expected to have to create a mapping from each ASCII character I care about to the individual glyphs that represent them.

Halfway through a couple of different strategies for making the mapping easy, I realized that these fonts are, for the most part, already aligned with ASCII.  So, the "space" character (ASCII 32) is the first glyph in most of the Hershey fonts, and the other characters follow thereafter. So to get the glyph for a given ASCII, I just have to pull it out of the array at glyph[character - 32].

My code for this is starting to take shape, but it's not useful (or clean) enough to share, yet. Still, it is worth a nice picture:

Hershey_fonts_in_js

I'm having a really good time doing Thing-a-Day. It's been very challenging to find the time to keep going, but each time I do I am quite happy with what I'm able to produce. The undeniably awesome part is that these things are all adding up to bigger projects I would have never had time to tackle, otherwise!

Update: I could not resist adding a text field and going crazy with live rendering:

Hershey_font_js_lulz

 

Thing-a-Day 2011 #7 - 2-Color Baltimore Node Logo Plot

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I'm on the road and away from my MakerBot, etc., but I've created a version of the Baltimore Node logo that should be plottable in 2 colors using either the MakerBot Unicorn or the EggBot! I also replaced the outline text we were using with a Hershey Font version using the SVGs I posted yesterday.

Another tweak - I played around with Inkscape's XML editor to get these things into layers. It's a neat trick, but kind of a pain. I also reordered several of the paths for better and/or more interesting drawing order. I'll see how it turns out when I get back to my bot.

You can find it on Thingiverse: http://www.thingiverse.com/thing:6204

And here's what Posterous does with the SVG when I upload it. No promises that it will be useful for anything.

Node-logo

Thing-a-Day 2011 #6 - Hershey Fonts in SVG

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I just posted these guys over on Thingiverse!

Making text for Unicorn plots isn't always a fun process. Most tools (even my Inkscape plugin) require you to convert text into paths, and even then you get the outlines of shapes, which can often turn messy at small sizes.

mifga pointed me towards the Hershey fonts. They’re a set of fonts for vector plotters named after creator Dr. A. V. Hershey who made them for the U.S. National Bureau of Standards.

These files are in a weird, weird, format. But after some normalizing, wailing, and gnashing of teeth, I was able to write some code to parse them and spit them back out as SVG! Now you can use these fonts in your Unicorn drawings.


Hooray-math Music


To use these in Unicorn plots, you’ll want to grab my Unicorn G-Code extension for Inkscape.

Instructions

To use these fonts in your Unicorn plots:

  1. Download the SVG file containing the font of your choice, or grab the whole hershey_svg.zip to get them all.
  2. In your Inkscape drawing, use File | Import to load the font you want
  3. Drag around and duplicate the characters that you want to use.
  4. Delete the ones that you don’t.
  5. Save your file and Save a Copy to get your .gcode!

Thing-a-Day 2011 #5 - Graffiti Markup Language (GML) to Unicorn!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

When I first heard of Graffiti Markup Language (GML) I was like "An XML format for graffiti? Pfft!" Then yesterday I was like "Wait, I have a pen plotter."

gml2unicorn is a Python script that will take GML files and convert them into G-Code compatible with the MakerBot Unicorn pen plotter.

Gml Gml-orig

Learn more on Thingiverse, or grab the code on GitHub.

Thing-a-Day 2011 #4 - Pen-Changing!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Once again, I'm work on the MakerBot Unicorn G-Code Output extension for Inkscape.

Today's update is kind of a simple-but-clever hack, inspired by the code for EggBot.

It lets you create multi-color plots by putting paths of different colors on different layers. For example to create this image:

Thing-a-day-unicorn-2-color

I put the text on a layer named “text” and the unicorn logo on a layer named “unicorn”.

Inkscape-unicorn-layer-pause

And selected the new “Pause on layer change?” option!

When plotting, everything pauses before starting a new layer and I get the message "Plotting layer '[LAYERNAME]'". I can use that pause as an opportunity to change out the pen, as I did in this example, using a black pen for the text layer and a blue pen for the unicorn layer.

Thing-a-Day 2011 #3 - Copies and continuous plotting for inkscape-unicorn

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

The the MakerBot Unicorn G-Code Output extension to Inkscape I've been working on so far for Thing-a-Day now has a new feature - support for copies and continuous plotting!

I've incorporated mifga's multi-sheet print-to-pad hack to prompt for changing sheets between copies. I've also added support for plotting sheet-after-sheet, continuously, using the "M30" G-Code, which causes ReplicatorG to start the program over from the beginning, effectively running until you stop it yourself.

For the curious: have some diffs on GitHub! Also, pictures:

Thing-a-day-unicorns Inkscape-unicorn-copies

Thing-a-Day 2011 #2 - New features for inkscape-unicorn: pen registration and homing support

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

Today I made some improvements to the inkscape-unicorn plotter extension that I released yesterday.

Inkscape-unicorn-reg-and-homing

Specifically, I've added two things:

  • The option to do a pen-registration check at the beginning of each plot, taken from mifga's original.
  • The option to set where "home" is, for people who like to start their plots with the platform anywhere other than in the center.

This should help make some nice plots!

Thing-a-Day 2011 #1 - Unicorn Pen Plotter extension for Inkscape!

This post used to be on Posterous. I rescued my posts before Posterous shut down and am now sharing them here.

I spent some time this weekend making this plugin and today went through the process of releasing it via GitHub and posting it to Thingiverse: http://www.thingiverse.com/thing:5986

Inkscape-unicorn

One problem that has often plagued users of the MakerBot Unicorn is the long and confusing chain of tools required to go from a nice vector drawing to a G-Code file that can be plotted from ReplicatorG.

mifga did an awesome tutorial that made it possible to understand the steps needed to work all of these tools, but it was obvious that something better was needed.

So, I made a mashup of scribbles.py and the Egg-Bot Driver for Inkscape to bring you the inkscape-unicorn extension for Inkscape!

Once installed, this extension allows you to save files in “MakerBot Unicorn G-Code (*.gcode)” format!

Learn more, download, and contribute at the GitHub page for this project:

https://github.com/martymcguire/inkscape-unicorn

If you’re desperate, you can also download the zip file attached to this thing, but please consider getting the latest version from GitHub. :)

Thanks to langfordw for the original Unicorn Logo used as an example on this Thing.