The amazing adventures of Doug Hughes

Archive for the ‘Blog’ Category

What is Java?

This is an article I wrote for my Java class at The Iron Yard. It’s being published here with permission.

Writing Software in Java

To write a program is to “speak” in a language a computer can understand. We don’t actually “speak” to a computer, but we can write messages that it can understand. These words aren’t in a natural language, though. Instead, they’re in a programming language.

My class at The Iron Yard is primarily about the programming language Java. Java is just one of hundreds of programming languages, but it has the distinction of being the most popular.

To a fresh eye, programming languages often look like gibberish. For example:

int total =;
return total / scores.size();

This Java code could be translated into english as something like, “Calculate the average score from a set of scores.” This example is intended to illustrate a point: Java isn’t english.


Getting Help

This is an article I wrote for my Java class at The Iron Yard. It’s being published here with permission.

Getting help

Often you will run into problems where your debugging strategies just don’t give you anything useful to work with. In these cases, you have to turn to other resources.

Craft a good question

The first step in getting help is to figure out the correct question to ask. Vague questions don’t lead to specific answers.

Instead of saying “when I click this button, it doesn’t work,” explain what you hoped it would do and what it actually does. To do this, you have to understand what it is you’re actually trying to accomplish. It might be a surprise to realize that sometimes you don’t know this. (more…)

Debugging Tools and Strategies

This is an article I wrote for my Java class at The Iron Yard. It’s being published here with permission.

If debugging is the process of removing bugs from code, then what is programming?

Undoubtably you’ve already run into a few bugs in your code. Figuring out the cause of these problems can be a frustrating and tedious experience. But, it can also be incredibly rewarding. There’s nothing quite like the feeling of finally squashing a particularly challenging bug.

As a professional programmer, you’ll be spending most of your time debugging. It’s virtually impossible to write code that works perfectly the first time. In fact, code that appears to work correctly on the first test will probably start to set off your mental alarm bells. The worry being, “what am I missing?!” (more…)

Today's Office Hours: Setting Up a Local ColdFusion Development Environment

I’m back again this week with another installment of Office Hours. Last week’s Office Hours went well and we all learned a bit about Git. This week Phillip Senn has asked to go over how to setup a local development environment for ColdFusion.

The show starts here at 3:30 pm today, Thursday November 8th. I’ll post a link to the Google+ Hangout and a link to the streaming video in this post around 3:15. I hope to see you this afternoon.

Join the hangoutor watchthe YouTube stream:

Office Hours: Git

I announced on Wednesday that I was going to start holding Office Hours as an open forum where I can help someone work through a problem they’re having. This week I’ll be working with Phillip Cenn to get him started with Git. Our session begins at 3:00PM ET. Up to eight people can join into our Google+ Hangout. Everyone else is welcome to watch the life stream below.

Google+ Hangout:

And this is where the live video stream will be:

Office Hours -or- I'm Unafraid of Making a Fool of Myself in Public

A couple of weeks ago I was honored to speak at the very excellent NCDevCon. While there I had a very interesting conversation with a guy by the name of Phillip Senn. Phillip expressed that he was looking for a mentor, someone who would push him towards better development practices and help him get unstuck when he encountered a problem he couldn’t get past. For example, he needs a bit of a push to get started with Git. He’d like to see how people setup their development environments, etc.

While I don’t really have the time or inclination to be a traditional mentor, the request got me thinking. I certainly don’t know everything there is to know about programming, but over the years I’ve gotten really good at learning new things quickly. I feel comfortable being thrown (or throwing myself) into new technical situations. I recognize patterns and can Google with the best of ’em.

So, Phillip and Iconceivedof what he dubbed “Office Hours”. The plan (at least for now) is for me to have a scheduled time to do a screencast where I help someone get started with or learn something new for free. I will be doing this in a Google+ hangout and streaming it live to my YouTube channel. I also plan to make archived sessions availableonline.

The first Office Hours will be this Friday, November 2nd from 3 to 5pm EST. Right before the office hours is set to begin I’ll publish the Office Hours Google+ Hangout URL, the live stream video, and any other relevant information. Those who are interested (up to 8 additional people) can join in the hangout and help out or follow along. Anyone else will be able to watch the video in real time.

For this first I will beworking with Phillip to help him get started with Git. Truth be told, while I use Git, I’m no Git guru. My intention, however, is to help him get it installed, create a new repo, commit code, branch, merge, etc. Basically, to give him a tour of as much of it as I can. I imagine this will be rather organic with a few false starts and dead ends before we really get anywhere. To me, part of what makes Office Hours interesting is that I’ll be learning while I do it too.

I want to make Office Hours a weekly event. I also want you to feel free to email me with your requests and suggestions. For example, perhaps you want help getting started with Node.js (or anything else). Just send me an email and, if I choose your topic, we’ll schedule a time for your Office Hours. I would request that you not limit your questions to what you expect me to know. If the topic is new to me I’ll work ahead and be ready to hit the ground running in our Office Hours session.

So, do you have any thoughts or suggestions? I’d love your feedback on the concept.



Doug @ NCDevCon – Javascript: things you never knew you didn't know

NCDevCon LogoI was pleased to find out that I’ve been invited to speak at at NCDevCon again this year. NCDevCon is a ColdFusion and web development focused conference event held annually at theCentennial Campus of NC State University in Raleigh, North Carolina. The even is put on by the fine folks at the Triangle ColdFusion User Group, aka. TACFUG.

Here are the details of my session:

Javascript: things you never knew you didn’t know.

So, you think you know JavaScript? I think not! There are a ton of small features hidden under the covers that many developers either don’t know about or don’t know how to use. This topic will go over an ad-hoc list JavaScript related goodies that I’ve picked up over the last year or so, including typed arrays, accessors, array folding, object inheritance, various tips and tricks, and more. Many of the topics relate to newer revisions of JavaScript and may not work in older browsers.

I hope to see you there!

Also, thanks again to TACFUG for inviting me to speak again! You guys are awesome.

Tag Cloud