Adam Tuttle

Apparently I'm Crazy

There was a period in my life, mostly in late high school and early college years, where I changed things around in my life constantly. I probably rearranged my bedroom / dorm room 4 times a semester. I completely reorganized my bookshelves and the contents of my computers often.

On September 1st of this year I gave up drinking soda, cold turkey, on a whim, from a more-than-two-liters per day habit. And habit it definitely was: I suffered massive headaches for about a week after that whim. But I've held strong and haven't had a drop of soda since the day I poured the last half-glass in a 2L bottle down the drain.

And now I'm at it again. Last Friday I decided to stop putting off the idea of finding a way to experiment with a Standing Desk setup. I already had a TV mounted to the wall above my desk, so all that I needed to do was move it to an appropriate height and find something to hold my keyboard and mouse up at their appropriate height, too.

I've been wanting to try a standing desk for a long time, for the alleged health benefits. I recognize that I'm a pretty sedentary person, most of the time, if allowed to be; and it does make a certain amount of sense that standing (more) would be good for my overall health. I've also been on a mission to lose some weight, and I'm pretty sure that Adrian mentioned in his cf.Objective() 2013 lightning talk that he lost a bunch of weight when he started using a standing desk. Anecdotal, I know, but standing certainly isn't going to hurt my mission, and if it helps a little bit, then great.

Standing desks are all the rage right now, with more and more of my friends stepping up. (See what I did there?)

So here's my setup, for this experiment:

My Standing Desk

Note that I don't yet have an anti-fatigue mat, which I'm told is pretty key in any standing desk setup; so I see a trip to Home Depot or Bed, Bath, & Beyond in my future to pick one of those up.

If you're wondering what I'm using to prop stuff up, that's a printer box on my desk, with an old soda crate (irony?) on top of it, to get (close to) the correct keyboard height. Behind the keyboard I have my Nexus 7, for various reasons. I also ended up pulling my desk about 4 more inches away from the wall so that I could stand comfortably close to the keyboard without being super close to the screen: It's a 32" TV so standing too close would give me eye strain and poor picture quality.

If my experiment goes well —If I survive— I'll probably buy a converter to make it easier to switch between sitting and standing without moving a bunch of stuff around.


One of the reasons that my tablet features so prominently in my Standing Desk setup is that I've decided to be very methodical about my standing and sitting time. I'm using a pomodoro timer app to remind me to stand up and sit down at regular intervals. For Friday afternoon I was doing 50 minute stands followed by 10 minute sits, but that might have been too aggressive for a beginner. I think this week I'll cut it back to half standing and half sitting and see where that takes me.

Have you tried a standing desk? What are your experiences? Any tips for a beginner like myself?

Published 2014-09-29 @ 09:00 in Meta Standing Desk


I mostly love Markdown. It's getting pretty pervasive. I write documentation on GitHub and elsewhere with it. I ask and answer questions on StackOverflow with it. I even write my blog posts with it.

Recently there has been much ado about Markdown, as the markdown-using and -coding community at large tries to wrestle it from the opinionated, arrogant, and statuesque (which is to say, "unwilling to budge") fingers of John Gruber (its creator) to standardize the expected output and provide a reference implementation.

All of this coming to a head made me ask myself, "Is this going to be our opportunity to fix the terrible things about Markdown?"

What's terrible about Markdown, you ask? For starters, there are too many ways to do the most common jobs.

You can create a list with either a hyphen, a plus, or an asterisk:

 - a
 - b
 - c

 + a
 + b
 + c

 * a
 * b
 * c

All three of these produce the same unordered list. But why is this a bad thing? Because —as much as I want to prefer them for lists— asterisks are also used to signify bold text (**bold text**) and I kind of like that. Except that I'm not a fan of having to use double-asterisks. Why not just one?

Why not just one? Because one asterisk signifies italic text (*italic text*). But so do underscores: _italic text_. And just like double asterisks indicate bold text, so do double underscores (__so do double underscores__).

Circling back for a moment, hyphens also pull double duty in Gruber's Markdown: By underlining a line of text in equal signs or hyphens, that line of text becomes an <h1> or <h2> heading, respectively. Of course, there's another way to accomplish this: The infinitely more robust option, the octothorpe (#). # is better because it supports any level of headings you might like, and because it compresses the document: no need to waste another line to underline something. Need to use <h3>? ### Here's your heading. Want an <h12> for some reason? ############ Here you go.

Did I say double duty? I meant triple. You can put 3 hyphens, asterisks, or underscores on a line by themselves to indicate an <hr>.

I wanted to point the finger at Gruber and call him out as a meddler whose non-technical background caused him to embed these terrible mistakes into an otherwise brilliant idea, but I looked him up and it turns out he has a degree in Computer Science. I don't know if that makes it better or worse, honestly. Not that all technical people are always right (or even nearly so), but he took a stab at making an original implementation of the language syntax he designed, as a perl script — and somehow these glaring overlaps and things that make writing a markdown parser harder didn't occur to him.

If I Were the King of Markdown

If I could reinvent markdown, I would only make a few small changes from what we have now. _underscores_ would be the only way to indicate italics. *single asterisks* would be the only way to indicate bold. You could only create lists using hyphens -. The only way to make a horizontal rule (<hr>) would be with pluses +, and headings would only be done with octothorpes #.

But that will never happen.

Markdown has been around for a long time and there are a lot of documents written in it. Backwards compatibility has become a necessity. So we're stuck with a bunch of bad ideas embedded like a nail in our tire. Fortunately, the CommonMark project is trying to take a more methodical and deliberate approach to its future, but I'm afraid that these scars are here for the duration.

Published 2014-09-25 @ 09:00 in Off Topic

Taffy 3.0.0-RC1

Today I created the first Release Candidate for version 3 of Taffy: Version 3.0.0-RC1

Not much has changed since the alpha. There were a few bug fixes, and I've gotten a few pull requests that seemed like a good fit for this release, so they have been added as well. All of the additions have been added to the "What's New" section of the documentation.

While this is not officially a "stable" release, it is my estimate that it could be. I'm using it in production without any issues; but I'm also sure my code doesn't make use of every single code-path through the framework. If you have some spare cycles it would be greatly appreciated if you could try upgrading your install and make sure everything still works.

Don't forget that there are a few things that are going to require some code changes on your part, but they are relatively minor.

If all goes well with the RC, we could be looking at Taffy 3.0.0 stable in as little as a week! As always, thank you for your help testing and for your pull requests.

Published 2014-09-19 @ 02:44 in Taffy

REALLY?! CFSpreadsheet Throws Exception When Column Name Contains a Comma

I don't even know where to start with this one. So let's just look at some code, shall we?

<cfspreadsheet action="read" src="someFile.xlsx" headerrow="1" />

Pretty simple, innocuous code, right?

Now, in your spreadsheet, create a column name with at least 1 comma in it. In my case: "Committees, Chapters, & Networks Selected"

If you're getting data from non-technical people, you're likely to get stuff like this — and really, there's no good reason not to support this behavior.

What does CF do with this?

[Table (rows 3 columns Username, Password, <snip>, Committees, Chapters, & Networks Selected, Education, <snip> ] is not indexable by COMMITTEES

It's pretty obvious what's going on here. Someone had the bright idea to use a comma-delimited list of column names when converting the imported spreadsheet file into a Query object; and my single column name "Committees, Chapters, & Networks Selected" now appears to be 3 distinct columns, and it can't find the data for them.

I am simultaneously gobsmacked and awestruck.

Raised 3825042.

This also happens to remind me of a bug I filed back when CFSpreadsheet was in beta before the release of CF8 (785,511 bug reports ago), that the header row should not be included in the resulting data. At the time the answer I got from the engineering team was that it was "functioning as designed." But if there's anything I think we should have learned from (the late) Adam Cameron, it would be not to take crappy responses like that lying down. So I think it's time to put the spotlight back on that one.

I found it in the bug database (3039531) but it's marked as "withdrawn" as a duplicate of ... something. The bug number of the supposed original is provided, but it's not found. I'm going to try to draw attention to this existing bug instead of submitting a new one.

Update: Rupesh was kind enough to point out, on that older bug, that an attribute named "excludeHeaderRow" was added to resolve this second bug. I seem to recall hearing about this before, now that it's mentioned, but I obviously had long forgotten it. So at least that one's resolved.

Please vote accordingly, if you agree.

Published 2014-09-16 @ 08:20 in ColdFusion