Category Archives: Computers

Rubber Duck Writing

The other day, I learned about Rubber Duck Debugging. The idea is a programmer describes a problem to an inanimate object, and upon reaching the problem in the code, they will more easily notice the problem

Photo by Tom Morris, 2011I’ve often noticed that one of the best ways to learn something new is to teach it to someone else. Also, a good way of realizing a detail you’re taking for granted is trying to explain a complex concept to a complete idiot. This sometimes frustrates the idiot, but it affords them a rare opportunity to do something more useful than convert lite beer to urine*.

*My wife tells me that by making this statement, I’m being unkind to complete idiots, therefore if you are an idiot and desire an apology, please send me a stamped self-address envelope along with the customary $15 handling charge. You will receive your apology in four to six weeks.

I often find that discussing my plot lines with my wife helps me sort out which scene to write next. While she is neither a complete idiot nor an inanimate object, I often find the exercise rewarding. Above and beyond the call of duty, she even provides me with valuable insights.

urlSo, the next time you’re stuck in your writing try talking it out with a lamp, or a rock, or your local village idiot. The results may surprise you.

jQuery with date inputs

Sometimes, jQuery just seems like magic.

Recently, I was looking through the new input types in HTML5. Of course, most of these are not supported by IE9, but the author of the article I was reading suggested coders use some of the types anyway, since rendering engines default to type text. Therefore:

<input type="date" name="thedate">

would show up as a text field in browsers that don’t support the date type and they would render as the date type in browsers which implement that feature of HTML5.

This seemed like a great idea, and then I realized that if I was already using jQuery UI, I could add “dateify” all the date-type text fields with the following code.

$('input[type="date"]').datepicker();

Maybe it’s a trival change from the way I used to do things (using a class as the jQuery selector), but I feel like the code is a little tighter, uses less keystrokes, and is just as readable.

One caveat though, the date input type is used by some mobile browsers to invoke their own date widget. In these situations, I don’t know who would win, or if it would just cause a horrible train-wreck.

Google Nexus 10

I buy a lot of gadgets, enough to prompt my financial advisor to ask what I spend all my money on.

One thing that has been bothering me lately is finding a tablet I like. I started out with a 1st gen iPad, but I decided I didn’t like iOS on a tablet for 2 reasons. First, there was the no flash issue. And second, there’s a limit to the amount of customization you can do. I’d have to have to make do with a table without SwiftKey.

Around this time, I had work by my and HP Slate 500 to see if we could use it in-house for light tasks. It was an abomination. Windows 7 did not lend itself well to the tablet. From what I’ve seen of 8, I’m still not optimistic. Seriously, Microsoft, you were the biggest software company in the world. Get your shit together. We shall speak of it no more.

I moved from my iPad to a Motorola Xoom. I liked the Xoom for the first few months I had it, but immediately after I bought it, the Xoom II was announced, and as I downloaded software updates on the device, it seemed to get clunkier instead of smoother. As of this writing, I think the Xoom is something like 18 or 19 months from it’s introduction, and it already shows its age. That’s not necessarily Motorola’s fault. Things have been moving fast in the tablet arena. Still, I was keeping my eyes open for the next big thing.

I have a coworker who let me drool over her Nexus 7. I wanted one badly, but I didn’t want to give up the 10″ screen size. So, when Google announced the Nexus 10, I decided to go for it, sight unseen. Of course, I read every rumor page and speculative blog entry until I thought I had a pretty good picture or what I was getting. And when the tablet went on sale for the first day, I was able to order the 32gb version in the 40 minute window where it was available.

I believe the appropriate term is squee.

A lot of people ask, why do you want a phone that’s bigger than a phone and doesn’t do phone calls. Well, honestly, the tablet has a limited niche, and if I were comfortable with a small screen, I could just use my phone and I wouldn’t need it at all. Primarily, I use my tablet for web surfing, casual gaming, short email replies (my phone is just as good at this, or better) and remote terminal when I’m too lazy to get up and walk to a computer. That being said, when I spent the last week sick, I was happy to have it.

One of the things I find most amazing is the weight and shape of the device. The Xoom was not only shaped like a tank, but the build quality was lower than what I would have expected of Motorola. It  had the big squared of edges of a “rugged” device, but the chassis flexed and popped in a way I didn’t care for–even the solid aluminum iPad was more comfortable to hold. In comparison, the Nexus 10 is a joy to hold, easier to grip and a better shape. Perhaps because of this the device seems significantly lighter despite being only a few ounces different on paper.

One thing I didn’t care for (which the Xoom did have) was the lack of an memory port. Having to pay an extra $100 for the 32GB version seems a bitter pill to swallow when I was able to buy a 64GB SanDisk microSDXC Ultra card for $39 last weekend (the 16MB goes for $15). Still, not all tablets have expansion, and it was still $100 less the the iPad,

Overall, I’ve been quite pleased with the device. The Nexus 10 is everything I wanted a tablet to be. It has a sharp screen, it’s easy to hold, and it’s fast. And if you’re like me and actually want a 10″ tablet, you could do much worse.

The New Toaster

Many years ago, I bought a new toaster. It looked really cool in the store. It was round. You put the bread in diagonally. The bread was “caught” by an internal mechanism in the toaster and glided gracefully into the warming position without the need for unsightly levers. When I got in home, despite a good deal experimentation and my high hopes, I had to come to a conclusion:

My new toaster made crappy toast. It was always burned in one corner and not toasted at all on the opposite corner. Eventually, we threw it away.

The toaster we have now looks pretty much like the one I grew up with, only slightly larger to accomodate bagel halves. The controls are exactly the same, with the exception of a “bagel” button. Maybe toasters just don’t need that much improvement.

This is why I was intrigued by Apple’s decision to call its new iPad “The New iPad.” I feel like they’re admitting, given what people use tablets for right now, The New iPad won’t need much improvement. This kind of makes sense to me, as tablets are hermaphrodites–they aren’t phones, and they’re not laptops. They’re great for web-surfing and playing games, but I don’t see them moving out of that niche. Sure, new models will have a faster CPU or more storage, but there’s only so much you want to do with a 10″ tablet.

I believe we are seeing the same trend in laptop screens. For a while it seemed like 17″ or even 19″ would be typical sizes, but as the rest of laptop hardware is getting smaller and lighter, screens seem to be settling in at around 11″ to 15″. Sure, there are some outliers, like the HP HDx 20, with its 20″ display, and hardcore gamers want bigger screens, but it seems most consumers are looking for sleeker models.

My current laptop is solid state, except for two cooling fans and has pixels smaller than I can see. Writing this article takes 4% of the CPU and even though I’m lazy about closing windows, I am only using 1/2 of the RAM. Sure, a few terabytes of storage might be nice, but until we move beyond the paradigm of a windowing operating system, I don’t think I’ll really need more. Oh, and I wouldn’t mind a week or two of battery life and batteries which would last a decade.

I really hope that someday soon, the computer fulfills its destiny and joins the ranks of the toaster–an appliance you buy once, does everything you need, and it pretty much just works.

Robert J. Sawyer really likes me, or Social Media Weirdness

If you’re like me, you’ve been getting a few notices from SchoolFeed, a Facebook app that makes a yearbook for everyone you went to school with. To me, this is a great example of an app that goes too far. From what I’ve read on the Internet–the most accurate source there is–as soon as you sign up for this app, it immediately sends requests to all your Facebook friends without telling you.

This seems to be confirmed by the fact Hugo Award Winning author Robert J. Sawyer just sent me a request.

Now, I’m a big fan of Robert J. Sawyer, and I’ve liked and commented on a few of his posts, and being a guy who’s very good to his fans, he’s liked and commented on a couple of mine. I hope that someday I will hit it big, and we’ll beta read for each other. But I have no illusions that if someone asked him how Shannon was doing, he’d either say, “Shannon who?” or think they were talking about some other Shannon he knew. I’m pretty sure he wasn’t sitting around thinking about classmates to add and landed on me, especially since we went to high school 15 years apart and in different countries.

So no, Robert, I won’t be signing up for SchoolFeed. It’s nothing personal. I hope we can still be friends.

Pardon the dust

I recently moved my WordPress.com account to DreamHost. There are some advantages and disadvantages to this switch, but overall, I think it’s going to be a good move.

Personally, I found WordPress.com restraining, but it is still a great service which I would recommend to anyone who didn’t want to tweak their site, install custom plugins, or pay monthly hosting fees.

I eventually went to Dreamhost because Dylan Moonfire recommended them. I have used three different hosts over the years, and so far, Dreamhost beats them all. I especially like their custom control panel It is much easier to use than cPanel.

Scrivener: Take Two

Back when I wrote my first impressions of Scrivener, I have to admit, I wasn’t overjoyed with the program. I found a couple bugs, and the environment does have a learning curve. However, as a more thorough test, I wrote a 1700 word periodical article in Scrivener. When that went okay, I started a re-write of a work-in-progress.

There will be a Binder

The Binder is center of Scrivener. It allows you to keep scenes and chapters separated into logical units, which can later be compiled into a single document.

In addition to chapters and scenes, you can keep notes outside the manuscript. The Novel Format sets up folders for Characters, Places, Research, and whatever other custom folders you want to add. You can have this as a persistant left column to the program, or you can hide it by clicking on the picture of the binder above it.

Memory Issues

One of the biggest problems I have when writing a novel is remembering what I was doing 20 days ago. The names of minor characters or even the full names on major characters sometimes alludes me. I frantically try to search old files for the scene where–I think–I used their name. To alleviate this problem, I had started awkwardly taking some notes in an excel file, but that meant switching to a different document and I’d sometimes forget to do it.

Scrivener makes this much easier. By letting me keep a folder of character information at the bottom of the binder. Also, when it’s right where I can see it, I actually remember to make a note of things.

What time is it?

Another thing I have trouble doing is remembering what day it is. Scrivener helps with this too, but allowing me to take notes on every scene.


How long is it?

That’s a rather personal question, don’t you think?

No, the novel, how long is the novel?

This might seem rather trivial, but I never really knew how long my novels used to be. I had an estimate based on the general length of my chapters and the number of chapters I’d completed, but if I wanted the real number, I had to open up each chapter, put the wordcount into excel and total them.

And done: 

It’s not all coming up roses.

Not everything is coming up roses. For instance, I want to export chapters six and seven for editing or critique. I can “compile” these into a word document to distribute, but they will always come up as “Chapter One” and “Chapter Two.” Because they are the first two chapters in a compile.

The Conclusion:

After getting over my initial bumps, my conversion to Scrivener has been a positive experience. If nothing else, I believe it is worth the $40 to find out if it fits your work flows.

The Perils of Manual Version Control

I done screwed up, y’all

Colloquialisms aside, I just made a horrible mistake.

Generally, I do my own version control. When I’m working on Fangs Again, Chapter 4, I number my revisions FA04r1, FA04r2, and so on. So, yesterday, I took a ton of notes on FA04r2, applied them to FA04r1, and then threw them away. After forty minutes with Word’s document compare function, I think I got everything sorted out, but if there are still horrible errors, I won’t be surprised.

My first mistake was throwing away my notes, which I could have re-applied to FA04r2 in less time, but the reason for that is a story for anther time.

Scrivener for Windows – First Impressions

I am usually not one for using writing tools. I have learned to do really well in Microsoft Word. I have a system for revision and backup that I’m happy with, and I’ve seen some “revolutionary” writing tools really mess up other people’s manuscripts.

However, I’ve heard really good things about Scrivener, and since an introductory price of $36 would not break the bank. I decided to give it a shot. Just for the record, this isn’t a full review, this is just a collection of thoughts I had after downloading the program.

Windows installation went smoothly. I was able to activate the software on my laptop and desktop machine with no problem–Scrivener is licensed per user, not per machine.

The first thing you see when opening Scrivener is the option to create a project from a template. I created a “tutorial” project, and was greeted by a Scrivener document telling me how to make Scrivener documents. I looked at this for five minutes before getting bored.

It turns your writing into tasty little meatballs

I decided to start by importing a small project, an article I’m doing on Electronic Voice Phenomena I’m doing for ParABnormal magazine. Scrivener parsed my Word document perfectly. Then, I used Scrivener to break down the article into logical sections.

After that was done, I wanted to see how Scrivener put things back together again. First, I tried “Export” off the file menu. I don’t know what it does, because it consistently errors out on my three page composition. Next, I tried a custom compile. I was much happier with this feature. You can tell scrivener how to transition between your sections–everything from a like break to a page break with a new header, and includes several options for manuscript formatting, such a straitening quotation marks, and replacing the ellipses character with three periods. After a little finagling, I was able to re-compile the document to its original appearance.

I decided to move on to research. The research section allows you to create a type of note called “website.” So, I excitedly typed in one of my sources, expecting A) the web page would cache locally with all the graphics and formatting, or B) a link that would launch the local web browser. I got C) a paged of text rendered from the homepage of the website, which was mostly legal disclaimer and credits, with no pictures or formatting. Then I created a generic text note, named it “websites”, and pasted in the site address.

This pretty much covers my first hour with scrivener. I don’t know if I’ll keep at it or not, but after getting my feet wet, I think I’m ready to try some of the video tutorials on their site. Then, I actually have an article to finish. Maybe I’ll do a follow-up if I find anything interesting.