Category Archives: Free Ideas

Punk Rock Band Names April 2020

I’ve had a few of these queued up for a while now, so time to release them into the wild:

  • Antagonizing the Soup – On the beach with friends, it came up in conversation that a one of us was not being as nice as they could their kid’s Superintendent
  • Placental Revival – from this awesome Radio Lab
  • Shawarma on the Brain – Ordering Mediterranean with a bunch of friends and the person behind the counter kept on mistakenly hearing “shawarma”
  • Asprin Death – ??? I can’t remember. Maybe related to this older This American Life?

For those new readers wondering what this all about, see the first post on this and the series.


Dog Poop Reminder

This is a truly free idea idea, like my other one, but not like the category at large which has a lot of open source stuff (also free!).

Often when I’m out for a trail run or for a hike with the fam, I see bags of dog poop. Like, right there on the side of the trail, some one saw their dog poop, they pulled a bag out of their pocket, and then they put the stinky poop in the bag. Super nice of them! Then, for some reason, they put the bag of poop on the side of the trail. (Now that I’ve mentioned this to you, I’m sure you’ll see a lot of these.)

But why leave it trailside?!? Why not take it to a trash can and throw it away? Presumably, this is because they don’t want to hike for 2 hours holding a bag of poop. So they think, “I’ll just leave it here and then remember to pick it up on the way back”. Then they forget.

So, what they need is a reminder! This would start out as super simple app for you phone. You launch the app and it immediately opens your camera. You take a pic of yer dog’s poop, and off you go. When you took that picture, the app also noted your GPS coordinates. Then, when you get with in say 100ft of the poop an alarm goes of, “PICK UP YOUR DOG’S POOP!” and shows you the picture you took to help you remember where/which poop it is.

Subsequent versions could implement:

  • Time out reminder – This will to go off N minutes after you leave the poop. Say 4 hours, which assumes that you didn’t go back and pick it up. This alert could also be tied to the fact that you didn’t go back to the GPS poop spot.
  • Multi-dog poop awareness – When the app launches it shows you a picture of all your dogs. You pick the dog which just pooped and then take a pic. This way you can have multiple poops in one trip and know which dog did what.
  • Poop Analysis – The app could alert you if your dog hasn’t pooped on your walks or something. And, you know, if you wanna be like all the cool kids you could do real time poop analysis using Tensor Flow. As well, if you do the same walk every day, you could heat map where your dog is most likely to go.
  • Poop Pickup Up-sell – Now that you have GPS coordinates of your pet’s poop, just go pay some one to pick it up for you with a click!
  • Poop Points – I’m not sure what they’d be worth, but you could social network this bad boy and people could get poop points for picking up other people’s dog’s poop. Certainly the gamification might draw people, but otherwise, I dunno what you’d redeem these points for

Go forth and make this app! The idea is on me, for free.

Otherwise, if you’re a dog owner, please, please pick up that poop.


Happy Histogram

The other day I was working on redoing our old Internet governance meeting page. On it, there was a simple histogram of the meetings across a year. It looked like this:

Seeing this server side generated, non-responsive, raster based image, I thought, “We can make this waaaaay better”. So, I went about looking for a drop in replacement that would fix all that, much like MapTable fixed our server side, raster based non-responsive maps.

I tried a number of full blown graphing libraries (jqPlot, Flot and jQuery sparkline, all awesome in their own right) as well, I looked at the top available JS solutions. They all failed me in one way or another. Some of them didn’t like having hundreds of data points being rendered on them. Some of them added unwanted anti-aliasing on 1 pixel wide elements (I’m looking at you Canvas!). Many of them were going to take a lot of effort to look good on mobile devices at the horizontal scaled I was looking for.

So, decided roll our own. And, of course, I decided to open source it ;) Had I drawn it before I made it, I would have drawn something like this:


The idea is that the whole thing would just be made of DIVs styled by CSS. Since CSS is insanely precise, even allowing for negative margins, you can skooch things like x and y axes labels just where you want them.

Thus, Happy Histogram was born:


What you see there is the exact same graph as above, rendered with a whopping 900 byte JavaScript Library. Check it out on Github!

If you want to customize it, just throw a little CSS at it and make it your own:

#year2 .yearHistogram .emptyTop { background-color: yellow; }
#year2  .yearHistogram .filledBottom:hover {background-color: #ddd;}
HappyHistogram('year2', Months, 'orange');


Or maybe you just want to show one value per month? Easy Peasy:



Likely I won’t do too much more development on this unless as it is fully formed and already deployed. However, part of my job satisfaction right now stems from the fact that all new features always get pushed upstream, so y’all might see more work on this soon!


Laser Cut Acrylic SYN Shop Dice

Back in May for this past Las Vegas Science and Technology Festival, the SYN Shop hosted an open house. It was awesome!

first.draftI volunteered to show folks our Laser Cutter. This is by far one of, if not *the*, most popular tool at the SYN Shop. In preparation of showing folks how it worked, I made a bunch of cubes. Not just any cubes though! I started with a 1.6″ cube at Maker Case with finger joints. I then added our logo. I did a test run and quickly saw that the translucent side of the acrylic I was using looked much better when viewing it from through the oppisite clear side, instead of viewing it directly. close.upI reversed our logo and as well added a very small mark in the upper left. This mark would allow me to run two discrete jobs: an engrave job and then a cut job. If you do them as one the laser cutter will engrave all your cuts and then cut them – a huge waste of time. The mark in the upper left allows me to keep the registration the same as long as I don’t move the bed or the piece on the bed. After feeling confident I had a good prototype design and size, I embellished it a bit by adding the 5 dice sides 1-5, the sixth would be our logo. I then laid it out as many up on the design as our laser cutter would handle, 4 x 3. Each sheet took over an hour to engrave the logos and dice faces and cut. I think I ended up making 48.

IMG_20160429_142319I learned after doing one sheet later on that though you get a bit less burn marks when you leave the protective sheets of paper on – it takes WAAAAAAY longer to peel when it has a logo engraving into it one side and then the cube face cutting it too. I pre-peeled both faces to save time. However, my son was totally into the production of peeling, stacking, and rubber banding the whole thing. I didn’t even need to tell him that he and his sister would get one to share after we ere done. We had fun!

IMG_20160504_231512During the event it self, I wanted to keep the laser cutter running to show how it works. As well, we quickly ran out of acrylic dice, so I needed another design to cut. I found a good, butterfly image that I traced in Ink Scape to create a nice looking SVG. From that, I made a bunch of test cuts and then just left it running during the day. As soon as the job was done I could pop open the lid and hand out hot, freshly cut butterflies. of the SVGs in this post are free to use for what ever purpose you want. It’d be great to hear of any uses though! I actually have a huge backlog of SVGs I’ve created over the past 1+ year that I should share…

Finally, here’s a video of my kids very much enjoying two octopi 3D printed with heat sensitive filament (also free handouts that day ;)


Punk Rock Band Names

For some time now, I’ve been thinking that I need to add a category to this blog that is for cataloging and giving away for use punk rock band names. I guess I should really call them just “band names”, as they’re not all categorically for punk or punk rock bands. However, for even longer, I’d say back in school when I was hanging out with Scott at the old location of the Bike Doctor, we’d say something funny and say, “man, that’d be a great punk rock band name!” So, this is the first in a series of names that I think some one should use as their, possibly punk rock, band name. Any names in this category are free to use with no reservations and what not. But maybe you’d like to give me a t-shirt of your band? A couple of tickets when you come to town?

For each post in this category I’ll give the name and any background on how I came up with it. Enjoy!

Punk Rock Band Name:Promiscuous Profusion of State

Background: I was reading up on Fathom and came across this passage (emphasis mine):

A study of existing projects like Readability and Distiller suggests that purely imperative approaches to semantic extraction get bogged down in the mechanics of DOM traversal and state accumulation, obscuring the operative parts of the extractors and making new ones long and tedious to write. They are also brittle due to the promiscuous profusion of state. Fathom is an exploration of whether we can make extractors simpler and more extensible by providing a declarative framework around these weak points. In short, Fathom handles tree-walking, execution order, and annotation bookkeeping so you don’t have to.


MapTable.js for all your table and map needs!

I’m proud to announce that I played a small role in releasing a great new JavaScript library called MapTable. This is an open source JavaScript library that accepts longitude and latitude data (CSV or JSON) as input, and outputs beautiful maps in native SVG with table of the data used to generate the map.  I said I played a small role in this release because Mohammed “Simo” Elalj did 99% of the coding of the library and I just swooped in for testing, PCH specific feature requests and pushing out new builds to GitHub. Version 1.0 of MapTable was technically released way back in December of 2014, but it has been greatly improved since then (again, almost entirely by Simo :).

pch.ixpdir.maptableVersion 1.1.1, the current version, was developed specifically so it could be used on PCH’s next generation Internet Exchange Point directory (IXP Dir). PCH’s IXP Dir was also the original use that MapTable was conceived for, so it has been a long journey until just now (as of Monday, July 25, 2016) that it has been pushed live!  My main role as an employee of PCH was to complete the nascent integration done a while ago and ensure that all feature requests were made on GitHub so that the improvements would be made upstream of us for all to benefit from. It was great fun to do a deep dive into a well though out and highly function JS library.

pch.homepageWhile I was in the IXP Dir, I also replaced the code on our home page which used an outdated version of MapTable. Fortunately, Simo had done PCH the huge favor of making one of the MapTable demo pages be based almost entirely on our home page. The ability to set an entirely custom color palette topped with icing on the cake of being able to specify an arbitrary SVG shape to use as markers on the map was just delightful!

While I’m wildly biased, MapTable is quite easy to use. Here’s the simplest incantation, taken directly from our docs:

<div id='vizContainer'></div>
<script src="d3.min.js"></script> <!-- You can import it from or bower-->
<script src="topojson.min.js"></script> <!-- You can remove this line if you're not using the map --> <!-- You can import it from or bower -->
<script src="maptable.min.js"></script> <!-- You can import it from or bower -->
var viz = d3.maptable('#vizContainer')
   .map({ path: '/examples/maps/world-110m.json' }) // You can remove this line if you want to disable the map
   .filters() // You can remove this line if you want to disable filters
   .table() // You can remove this line if you want to disable the table
   .render(); // This is important to render the visualization

Looking at the two examples I cited above, our home page and our IXP Dir, you can see that this simple snippet can be greatly extended to show either a stand alone map or an interactive, zoomable, filterable, printable, map downloadable, tooltipable and sortable map and table. The library is super awesome, and I recommend you start using it today! And yes, I just add “able” to tooltip. Try that in some other JS lib. I think not!

And, before I end this post, if you’re a JS developer and have some spare time, we’d love some help! I’m looking at you Issue #25!


Diceware in a box

I’m really happy with my most recent project I did at the shop. For some time now I’ve been wanting to upgrade from a mostly secure password to a phenomenally secure passphrase. For some down home good entropy, you should use the Diceware method to generate a passphrase. In order to achieve this, I made a “Diceware in a box”.  The ingredients for this recipe are:

Here’s what the final product looks like (click to see larger version):


The only changes from my original design I would do is instead of scrounging up some rubber feet to put on the side so the dice bounce instead of slide, is that I’d just lay down long strips of hot glue on the inside. This would achieve the same affect and be a lot easier.

Here’s the product in action:

And here’s the result (please do not post your passphrase to the internet ;)

range herr vq fr kirby dad pp!!!


Free Idea: Abstracted Facebook Anonymizer

Welcome to my first post in the oft thought of, but rarely written, category of free ideas. These are ideas that if I had more time I might execute on. However, being a full time employee, husband and father of two, I don’t have time to build, create or code them. Instead, I shall give them away for free here in hopes that some one else will at least get a kick out of them, if not actual do something with ’em!

Y’all remember I wrote the 404er plugin for wordpress, right? This plugin was created out of the desire to give people the ability to publish a blog only for human consumption. Search engines would see the 404 header on every page of your blog and not index a lick of information. While not entirely practical, you could publish a blog that wouldn’t exist (if a tree falls and google hasn’t indexed it…) unless some one sent you a link directly.

In that same vein, I’ve never been on Facebook as I don’t trust their privacy policy and intentions. I’m not alone. However, everyone and their mother (OMG! almost a billion people) is on Facebook. This means you miss out on photos, invites and such your friends are sharing.

Enter the Abstracted Facebook Anonymizer, first up in the free idea category. An SDK would be written against the Facebook API. The SDK would somehow create one Facebook account per friend. It would then re-assemble all the posts from your many accounts with one friend each into a single wall, as if you had a single account. The net result would be that you could use Facebook via this SDK proxy and Facebook wouldn’t ever have the full data picture of who you were friends with and what you were sharing.

I await the creation of, though I’m sure Facebook’s TOS wouldn’t stand for it!