Coder Interviews at the Code Project

I’ve been working with software developers for a long time now, and one thing I learned along the way is that coders are a diverse bunch. That’s one reason why it has been fun and entertaining to launch our A Coder Interview With… series of interviews at the Code Project. We started the series in August 2011 and have been posting a new interview more or less weekly since then.

The big idea behind these interviews is share the stories of working developers who are actively involved in larger coding community — whether that’s the Code Project in particular, open-source projects, or just folks who actively share their knowledge and enthusiasm about programming.

I’d like to acknowledge that The Setup provided much inspiration for this project. I really enjoy the consistent, concise format of these interviews. For Code Project we chose to use a similar set question format, but expand the topic to discuss topics like languages and frameworks of interest, how they learned to program, what advice they’d give to up-and-coming programmers and what they really despise in a codebase.

I heartily recommend reading through these interviews to get a good idea of what tools and techniques working developers are actively using today and the new technologies they’re embracing for tomorrow.

By the way, here are some of our most popular interviews so far:

Chris Maunder, co-founder of The Code Project.

Dave Ward, better known to many of his readers and followers as Encosia.

Sacha Barber, one of The Code Project’s most famous and most prolific members.

John D. Cook of the fascinating blog, The Endeavour.

Phil Haack, former ASP.NET team member, now a Githubber.

There are many other interesting interviews, and we keep adding more. For a taste of the fascinating folks we talk to check out:

Iris Classon, whose 18-month journey from newbie to pro-coder is a true inspiration.

Khaled S. Ali, an actual rocket scientist: he writes the code that controls the Mars rovers.

More are on the way. Stay tuned.

Reading List

Tl;dr version: I started keeping a reading list and decided to post it here for your edification.

Longer version: For most of my life I’ve been a voracious reader. And it’s been great making a career out of three things I really enjoy: reading, writing and computers.

However, when I became a full-time editor, my reading habits changed significantly. I can’t say that I stopped reading because, let’s face it, an editor reads all day as part of the job description. And that’s fine. Even now, I spend much of my day scouring the news and RSS feeds and Twitter for great stories about technology, programmers and the magic they do (plus hippie politics and a few other esoteric topics).

But all that reading during the day (and often into the evening) meant I had little enthusiasm left for pleasure reading in the evening. Though I hadn’t given up altogether. My daughter, wife and I read the Harry Potter series together during 2010 and the beginning of 2011. That got the fire burning again…

When we moved earlier this year, we gave up cable TV and gained a working fireplace. On top of that, my current work involves a bit more writing — excellent alternative exercise for the mind. We have a fantastic independent book store just a few blocks away, too. All that lends itself to more time and interest in evening (and lunchtime, and…) reading.

If figured at least one book a month would be a good target and decided that keeping a journal of my reading would be a good idea track my progress. So far I’ve achieved a bit better than that book-a-month goal. Better yet, I’ve read some great books so far and have a nice queue of books on the shelf for the winter.

So if you’d like to follow along with my reading, check out the reading list page from time to time. I’ll do my best to keep it up to date.

CSS3 Color and Opacity

The CSS3 Color Module much more solid than the other CSS3 proposals and experimental features. In fact, as of June 2011, it’s an official W3C Recommendation. New CSS3 Color features include HSL color specifications in addition to traditional hex and RGB values, as well as the ability to use opacity and gradients.

As a primer for using these new color features, I wrote an article over at The Code Project called CSS3 for Beginners: Color and Opacity. This should get you started. If you find the article helpful, please vote it up and share your thoughts in the article comments.

10 Westerns

Because all the cool kids are doing it, here’s my list of great Westerns:

  • High Noon
  • Little Big Man
  • The Outlaw Josie Wales
  • The Long Riders
  • Unforgiven
  • Butch Cassidy and the Sundance Kid
  • The Searchers
  • Bad Day at Black Rock
  • Bronco Billy
  • Jeremiah Johnson

Apparently I like movies about loners. Not terribly surprising.

I also now have a great, new list of movies to check out thanks to the top-ten lists from Jim Coudal, John Gruber and Gary Hustwit.

CSS Box Model Basics

A basic - but often misunderstood - feature of CSS styling is something called the box model, which defines the rectangular space around an element by means of border, margin and padding settings. It’s really very simple, but a combination of poor nomenclature and some subtle rendering rules confuse folks who are new to CSS.

To help you get up to speed with the box model, I wrote an article over at The Code Project called CSS Basics: The Box Model, Margin and Padding. Please check it out and, if you find it helpful, vote it up. I hope you learn something useful.

Cross-platform Note Sync with Dropbox

Update: The information here is still valid, and I’ve added some updates to keep it current. For the latest developments, see Crossplatform Text Editing in 2013.

Say you regularly use several different computers and want to make sure any notes or simple documents are always saved and synced between all your systems — between work at home, a desktop and a notebook, a Mac and a PC and even on your iPhone or iPad. Turns out it’s pretty simple to sync notes between platforms. And if you choose note-taking apps with a bit of forethought, it’s pretty simple to have an always up-to-date store of your notes wherever you go.

That you can sync textual notes — or any documents for that matter — between computers is no secret. There are quite a few apps that let you do this including Dropbox, Live Sync, SugarSync and no doubt others. There are also a few applications that specialize in syncing notes and other specific document types across platforms. I’ll get to that in more detail later.

I’ve used all of the above-named sync solutions over the years with generally good results. Beyond the broader sync tool, though, what I specifically wanted was a platform-agnostic set of tools for taking notes and creating simple documents in such a way that the files would be accessible and editable at any of my current computing devices, which include a desktop running Windows 7, a MacBook Pro, an iPad and an iPhone.

Here’s the simple solution I’m using.

I should start out with the disclaimer that this method applies only to plain ASCII text notes. It’s great for platform-agnostic writing, light coding, and basic HTML markup. If you need to sync bookmarks, images, documents and so on you might be better off with something like Evernote, Goodreader or SugarSync. I’m personally more interested in lightweight, single-purpose apps, though, and find Dropbox sync between dedicated apps more useful.

Having decided that I just want to sync notes, the next step is deciding whether to use Simplenote or Dropbox as your sync platform. They don’t play all that well together, apparently, but choosing on or the other is not a forever decision. Most of the note-taking apps support both methods and you can switch if necessary. There’s no lock-in.

I chose the Dropbox route because I am already using it to sync other files. I didn’t want to add a separate sync platform to the mix, nor did I want to limit my note-taking app choices to those that use Simplenote sync.

The note-taking apps are open source for the most part so you have several choices. The defining and common element of these apps is that they can save your notes as individual text files in a shared folder.

Mac: Notational Velocity or one of its forks. I’m using nvALT 2.0.

Windows: I’m using ResophNotes, another fork of the NV code.

iOS: As noted, you can sync with Simplenote, and NV also supports Dropbox sync with PlainText, Elements, iA Writer, and other iOS apps. I’m using both PlainText and Elements.

Setup is simple:

  1. Install Dropbox on all your devices, ResophNotes on Windows, and NV fork of choice on your Mac.

  2. Create a folder in Dropbox that will hold all the text files for your notes. I think most apps will allow any root-level folder, but Elements currently requires an Elements folder. If you’re considering Elements as an editor (it’s pretty nice for the price), you may want to go with that as a default. Elements creates this itself when you run it the first time, so that was my first step. check the documentation. As of version 2.0.1, Elements now lets you set the folder.

  3. In ResophNotes, click Options, then go to the Storage tab. Select “Plain Text File (.txt)” as your storage type. Point it at your Elements folder (or equivalent) for the file directory. In my case it was C:UserstpdorseyDocumentsMy DropboxElements.

  4. In NV, open Preferences and go to the Notes tab. Under Storage, set it to store and read notes as plain text files. Set “Read notes from folder:” to the appropriate folder in Dropbox, in my case Elements.

Done! Now any notes you create on any of your devices will be saved to DropboxElements and will be sync’d in real time to all other devices. (Technically the iOS apps seem to access the web store on demand, but that detail in transparent in execution.

To get some additional formatting and the ability to create HTML markup from your notes, check out John Gruber’s Markdown formatting. There’s a great introduction to using Markdown on the Practically Efficient blog. These are Mac demos, but it works the same in any Markdown-enabled editor, including ResophNotes.

In practice, using a sync’d note-taking system like this is simple to set up, simple to use and you never need to commit to a particular application, platform or workflow. If you decide this just doesn’t work for you, any text files you’ve created will still be saved in Dropbox, ready to use in another application. And if you switch machines — or platforms — the files are all there as soon as you’ve set up Dropbox.

Full disclosure: some of the links on this page are Apple affiliate links and I could receive a payment from Apple for any purchases you make during a shopping session initiated via these links.

10 Great Features in 10 Different OSes

If you were making the ultimate operating system, what features would you choose? I’ve been fortunate to use a pretty wide range of OSes over the years — some by choice, others by necessity. Each OS has some nugget that we can enjoy, learn from and build on.

So here, in no particular order, are 10 different features I love in 10 different OSes (

View all of the posts in the archive, browse the tags, or subscribe to the feed for All Posts.