Random Gripes of The Day

Feeling stuffed?
Feeling stuffed?

I was annoyed by two things today and I have decided to share them with you. ((Photo courtesy of Göran Arvidson)) It’s more about the sharing than actually imparting information, but these are two things I feel kinda strongly about.  The day is young yet, so I reserve the right to add more things to this list.  :)

  1. I was going through my PayPal transactions for the last year and I discovered that providing a full and immediate refund costs me $0.30.  That’s pretty lame.  When they perform the refund, they get their money back.  All they’re out is a few zeros and ones.  And, frankly, it’s enough that I think my next few projects will be Stripe based rather than PayPal based.  PayPal’s API is a pain, I’m convinced requiring PayPal over a credit card (via Stripe) for transaction probably costs me conversions ((Oh, I could go on and on about PayPal versus Stripe and the posts about the relative benefits and conversions)) , and their policies are worse
  2. Online forms that require multiple steps across multiple submission pages.  The first thing this kind of UI tells me is that the people who wrote the page wanted something done quickly and easily (for them) and didn’t spend a lot of time thinking about usability.  Because I have a tendency to overthink things, I sometimes go back and revise an earlier step depending upon what I see in a later step.  When I see an online form that requires multiple steps I will typically feed it bogus information first so I can see the rest of the steps.

Um.  That’s all I’ve got to grumble about today.

Actually, in hindsight, if those are my biggest problems of the day, I’m doing pretty well!

SaaS: the good, the bad, the ugly

Which one was Blondie, anyhow?
Which one was Blondie, anyhow?

I’ve extolled the virtues and pitfalls of running a software as a service business. ((Photo courtesy of Rufus Gefangenen)) This morning I discovered a glitch in my SaaS website that, while it doesn’t cause anything to actually malfunction, creates a very obnoxious problem on a lot of the pages.  The site is written in WordPress1 and the entire SaaS component of the site is built out of plugins.23 Basically, one of the plugins creates a form that is used in one of the pages.  The malfunction is that the form is now included on every page.  Ugh.  This is going to be a really fun bughunt because even when I disabled every single plugin, the problem persisted.  Apparently the glitch started appearing about  a month ago – when I last updated WordPress.

Now, I’ve been meaning to just rewrite the plugin from scratch – but I’m also keenly aware of the pitfalls.  My biggest incentive to rewrite the code is so that it is more future-proof.  Another reason to do it is that the original code was written in such a cludgy manner I’m literally ashamed to tell you how it is implemented.  Let’s just say that I originally wrote the core of the plugin after having learned the basics of PHP programming only a few months prior.45 About nine months later, I shoehorned the same code into a WordPress plugin – when I had only been using WordPress for about two months and knew almost nothing about plugins.  Now, more than five-and-a-half years from the day  I launched the site, I do feel I’m a much more capable PHP programmer and WordPress plugin writer.  Confident in my abilities to do a better job and facing the task of having to go through a potentially big bughunt anyhow, some part of me wonders if it wouldn’t be best to just rewrite the damn thing anyhow.

Default Series Title
  1. My first open source love []
  2. Such as the awesome Simple Series plugin, OCD plugin stats plugin, and EZ Creative Commons license plugin! []
  3. How’s that for a plug about plugins? []
  4. Look… it works, okay. []
  5. Mostly works. []

Best Super BoWl Day Ever

Capslock is NOT persuasive
Capslock is NOT persuasive

ToDAY i’ve tinkerED with my DigiSpark From dIGIsTUMP and run it throUGH A few little programs.1 My experienCE with arDuinos is acTUALLY quite limited.  SincE i’M faMILIar with c-style proGRAMMIng languages, I can teLl what an ARDUINO sketch is Doing if i spend enough time staring at the COde.  I staRted off with “Blink,” then cHAnged it tO blink fASTEr, then FOUnd some COde for FLIppING CapsloCK on and off.2

WhAT i like about the dIGIspARK IS that IT IS so small I can keep IT IN THE coffee Table drawer nearesT MY Laptop to tiNKER with WHenever I THINK OF something to TRY.  TherE ARE SOMe interesting littLE FEATURes to the DiGISpark from the arduino i’LL cover IN another posT THAT doesn’t look liKE it was typeD BY A chimp.

The MOST FUnctional pARTS of TODAY have BEEN devoted to PLAYing, MAKING tangram dESIGNS, bloggiNG ABOUt robot pART design, fiddling with a tiny miCROcontROLLER, and, of course, A NAP.  HOW Did you spenD Your super bowl sunday?

  1. Photo courtesy of Adam Fagen []
  2. SEE! []

A watched DigiSpark never boils

Itty bitty microcontroller
Itty bitty microcontroller

I’ve been refreshing my DigiSpark Kickstarter backer/order page for days now watching my spot in the queue go from #3800 to just now under #200. ((Photo courtesy of Clarence Risher))

Since I have such limited experience with Arduinos, I am hoping that this project is a good place to start.  To date my experience with Arduinos had to do with the minor modifications/updates with the Arduino powered motherboard and extruder board for the Cupcake CNC and my DrawBot.

One of the benefits of the DigiSpark that interested me the most was it’s extremely small form factor.  It’s so tiny that I can pop it into a USB port and try out a small Arduino sketch1 without tangling with a USB cable.  And, when not in use I can drop the whole thing into the coffee table drawer.  An Arduino plus USB cable, while still small, are just a little too bulky to toss into the same drawer.  ((Mostly because of all of the other little projects I already have tossed in the same drawer!))

  1. Blink, you say? []

Oh the places you’ll go!

Something like six months ago I checked in on the Piccolo by Diatom and watched the cute little video that goes along with it.  That video led me to the video for their Antler lasercut chair featured above which, in turn, lead me to the album for Wet Wings and their song Keep It Together.

I mention this only because a new tiny CNC on Thingiverse reminded me of the Piccolo, which lead me back to the video for their Antler lasercut chair and to the song all over again, and it is a song I happen to like a lot.

Maze Code + Polargraph?

My RSS feed for Slashdot brought my attention to an article on Slate.  The Slashdot summary stated:

This Slate article talks about a single line of code — 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10 — and how it manages to create a complicated maze without the use of a loop, variables and without very complicated syntax.

Even though that “one line” of code really is two lines and it really does use a loop, that short string of code is still very interesting.  While the way the code generates a maze isn’t immediately intuitive, it becomes obvious once you watch a bit of the video above.  All that code does is randomly kick out a forward slash or backward slash.  Once they wrap around to the next line, they start to form what looks like a maze.

As a little exercise I created something similar using PHP.  To make that work I had to use a fair bit of CSS to make it look decent.  In any case, it occurred to me that this would be a wonderful project for a Polargraph! Draw a random forward slash or backslash, get to the end of the line and make a bunch more on the return line.  How awesome would a huge paper roll of nothing but a giant maze look?

I think I may have found a project cool enough to show off at Maker Faire.  :)

Default Series Title

Sailfish + Print-O-Matic = Wow

dutchmogul's Keep
dutchmogul’s Keep

Last night and tonight I have been tinkering with Flexo, my Thing-O-Matic, to install Jetty’s Sailfish firmware update.  The setup text is very helpful, but not particularly optimized for a Thing-O-Matic with a MK6 extruder.  I also found that I had to heavily modify the “start.gcode” and “end.gcode” to keep my bot from shaking itself to pieces. 1

However, the results of combining Sailfish with ReplicatorG’s Print-O-Matic are impressive.  Dutchmogul’s Keep, pictured above, was printed with a layer height of 0.15mm, 10% infill, all with a stock 0.5mm nozzle.  That’s the very best resolution I’ve managed with my Thing-O-Matic, ever.  At 0.15mm thick layers, I have a difficult time seeing the layers if the model is more than 6 inches from my face and the ridges on the vertical parts is difficult to discern with a fingertip.

Now that I’ve finished that print I think I can push my ‘bot’s print resolution farther.  I’m willing to bet I can print down to 0.10mm layer height if I re-applied the Kapton tape and did a better job of leveling the print bed.  Also, one of the acknowledged challenges with 3mm filament based extruders is the pressure buildup that can lead to imprecise plastic deposits when dealing with non-contiguous parts. 2  Dialing in the Skeinforge “Retraction” or the Sailfish “Deprime” settings dialed in would really help with complex prints.

  1. The default “start.gcode” tried to home to the XY maximums and Z minimum – where there are no endstops.  The default “end.gcode” did the same thing for some reason.  I also had to modify the “start.gcode” so that the print head was better positioned for starting a print. []
  2. By this, I mean that when you’re printing two or more features that are not connected, say for example a table that is legs-side-up, an extruder will naturally ooze a little bit of plastic as it travels between legs, leaving a thin spider web like strand.  The “retraction” setting in Skeinforge is used to combat this, and does so fairly effectively in the case of a stepper based extruder.  That setting reverses the extruder motor quickly just after the print head leaves a leg and then quickly moves extra fast forward as it gets to the next leg, which prevents the spider web effect. []

Was This Made on a MakerBot?!

Doctor Who Christmas Special 2010: A Christmas Carol
Doctor Who Christmas Special 2010: A Christmas Carol

Netflix has nearly all of the “new series” Doctor Who episodes available for online streaming.  As a guy who grew up watching the show, having it on tap is just plain awesome.  Unfortunately, Netflix does not carry one my favorite episodes ever – the Doctor Who Christmas Special from 2010 entitled, “A Christmas Carol.”  You can’t get the DVD from Netflix and you can’t watch it online.

Thankfully, Empire State Building.  The screenshot appears above.

So, what do you think?  Does that Empires State Building look as if it was printed on a 3D printer?

The worst part about SaaS

And... that's why you don't hack the core
And… that’s why you don’t hack the core

Since I recently gushed on about how wonderful it is to run a SasS business, it’s only fair to share with you a downside.1

This morning I quickly checked my small-side-business SaaS site before heading off to work, only to find the thing that people actually pay to use was not working.  Dropping everything, I quickly started hunting through code.  I haven’t changed a single word of core logic on the site in about six months, so there’s no reason this problem should be occurring.

Except that whenever WordPress asks me if I want to update, I immediately do so.  Sometimes really minor changes to WordPress functionality create huge tangles of CSS and HTML, as it did in this case.  Once I tracked down the problem I quickly hacked together a solution and uploaded it back to the site. 2  Thankfully it’s now working as well as it did before I found this problem.

Because my site has been working so well for so long3 I’ve been loathe to build a better design for the logic.  In the very long run, it will save me time, but in near future/short run of a few months all it will do is suck up time without demonstrating a tangible benefit.  I suppose being less prone to breakage is a tangible benefit, but I spend less than 2 hours a year dealing with minor problems like this.  The prospect of spending two months rewriting and then rechecking code to save 2 hours a year doesn’t seem like a worthwhile investment.

Frankly, what I need to do is come up with some other tangible benefits that when added with the existing fixes I need to perform will have a more tangible4 benefit, and then jump into building them all.
Default Series Title

  1. I don’t know where the original picture comes from, but I got it from this website. []
  2. And, really, it’s a nearly unforgivable hack.  Rather than figuring out how to fix the problem in the plugin, I commented out the newly-bad code and hacked that same code directly into the website’s theme.  I know, I know…  nearly unforgivable.  At least I didn’t try to hack the core.  []
  3. The core logic of the site has been essentially unchanged since about 2008. []
  4. Read: immediate monetary []

Pantsless

Is it just me or it a bit breezy here?
Is it just me or it a bit breezy here?

Ever have one of those days when nothing goes right and you can’t find your pants? 1 Yeah.  Me too.

On the plus side, I’m working to make a cool new printable model.  :)

Also, word of advice.  Never search Flickr for the word “Pantsless.”  Ever.

  1. Photo courtesy of Klara []