Categories
Uncategorized

On a Short Break

Global Nerdy — which actually refers to me — is on a short vacation with a lovely young lady from now until Tuesday, September 4th, when we — which means I — will be running full bore with tech articles aplenty. See you then!

Categories
Uncategorized

TShirtOS Strikes Again in a New Video

The Video

Earlier this month, I pointed to TshirtOS, the smart t-shirt designed by CuteCircuit and sponsored by Ballantine’s (yup, the whiskey company) and included a video of the shirt in action. They’ve posted a new video which takes a little dramatic licence in order to remind us that in the right hands — or the very, very wrong ones — technology can be a gateway to adventure:

In case you don’t believe that a gadget in the right hands can turn an ordinary night out into an extraordinary one, allow me to present some proof starring Yours Truly in The Best Accordion Picture Ever:

Naturally, with either TshirtOS or an accordion, your mileage will vary.

The T-shirt’s Tech Specs

Here are TshirtOS’ tech specs, straight from the folks at CuteCircuit:

LED Screen resolution

The LED Screen has a resolution of 1024 pixels, spaced 1cm apart, in a 32 by 32 pixel grid embedded into the fabric of the t-shirt. Each pixel is RGB (Red Green Blue) to make a full colour display. The LEDs used are ultra thin (like a sheet of paper), the brightest full colour discreet LEDs in the world at this thinness and only 2 by 2 mm wide. The screen is controlled by 32 ultra thin microprocessors, managing the screen control software “Q” by CuteCircuit.

Camera

The camera is an Omnivision Camera Cube.
 The Camera Cube combines the full functionality of a single chip image sensor, embedded processor and wafer- level optics in one compact, small-profile package. Boasting the industry’s smallest footprint and z-height (2.5 x 2.9 x 2.5 mm), it is ideal for today’s ultra-slim applications, such as wearable technology. Unlike traditional camera module designs that combine image sensors and lenses in a barrel, OmniVision devices are assembled using wafer level alignment tools.
The lens can be placed directly onto chip scale packaged (CSP) image sensors, which eliminates the need for flex cables and interposers. Elimination of image contamination issues such as fixed pattern noise, smearing, and blooming produces a clean, fully stable colour image, which in the case of the tshirtOS is scaled down to 32 by 32 pixels to be displayed.

Accelerometer

This is a small, thin, low power, 3-axis accelerometer with high resolution up to ±16 g. It detects a person’s jumping motion (the momentary absence of gravity or free fall detection) and activates animations on the tshirtOS.
This accelerometer is the latest generation triple-axis, hi resolution digital, micro mechanical inertial sensor.

Headphone Jack

This is a generic 3-poles stereo jack. We have 2 on tshirtOS – one for the headphone and the second for a headset/ microphone option.
The headphone jacks fit all types of headphones.

Circuit board and processors

The Brain circuit is an ultra slim PCB that snaps into the tshirtOS hub to provide it with BlueTooth capability.
The Bluetooth is CE and FCC certified, with an integrated micro-antenna, and it supports both the HFP, SPP, and A2DP profiles for hands-free and serial port use. The Brain is chargeable via USB simply by plugging it into a computer USB port, and the tiny Li-Po battery recharges in about 1 hour. The accelerometer and the micro- controller reside in the Brain. The micro controller controls the LED screen. We have 2 versions of the Brain where at the heart of the system is either an 8-bit processor from ATMEL or a 32-bit ARM Cortex processor, the latest ultra- powerful and energy efficient ARM processor, also from ATMEL.

iPhone and iOS support

The application will only be supported on iPhone4S and iOS5+ in its initial release.

Register Your Interest

I’d love to get my hands on one of these and both hack on it and take it out on the town, and I suspect you might too. If TshirtOS sounds appealing, go ahead and register at tshirtos.com!

Categories
Uncategorized

We’re Looking for iOS, Android and ASP.NET MVC Developers

As I wrote in an earlier post, I’m now the CTO of Comprehensive Technology Solutions, a development shop that’s building mobile applications for medium to large businesses. I have three developer positions that I’d like to fill in September, and they’re listed below.

Where We’re At and What I’m Looking For

Get it? Enterprise? Blueprint?

My job is to give you some of the most awesome specs to work from, and I do mean awesome. Nobody can describe an application using words, diagrams, statecharts, wireframes, prototypes, balloon animals or whatever else is necessary quite the way I do, so you’ll have a very clear idea of what we’re trying to implement. Yes, I’m aware of the dangers of Big Design Up Front, but you’ve got to have some kind of roadmap to follow. I prefer to call what I do “Just Enough Design”.

I’ll also be doing any necessary background research, which you’ll need, as the apps we’re writing will likely be covering stuff that you haven’t dealt with before. In return, I’ll need you to turn the specs and research into living, breathing apps.

The fact that you’ll be working from thoroughly-written specs doesn’t mean that you’re absolved from having to think. I want your input on the design of the application. I don’t want assembly line workers who’ll simply take a spec and implement it, I want software builders who’ll look at “the big picture” of the application and help out with the design. Software evolves as you build it, and I’ll need you to help with that evolutionary process.

If you’re looking to build consumer apps, such as games, social networking software, or something that will let you share pictures of your cat or lunch (or if your cat is lunch, both) with your friends, these jobs won’t be for you. We build apps for corporate customers in order to help them get work done. These apps will have a lifespan beyond your typical throwaway amusement app, and there will be security and privacy requirements, because money and sensitive information will be on the line.

Speaking of “on the line”, you’d better be comfortable with putting yourself on the line. We need developers who get stuff done. Unlike a large organization, there’s no room for people who are content to merely coast.

(You’ll note that so far, I’ve avoided saying that I’m looking for a “rock star” or a “ninja”. I think it should suffice to say that I’m looking for someone who’s ambitious and competent.)

I’d really prefer it if you either lived in or spent the majority of your time in the Toronto area. If you don’t live in the Toronto area but really want this job, give me some reasons and I’ll consider — I’m a very reasonable guy.

If you think you fit the bill and would like to work for a really smart and cool boss — namely, me — drop me a line at jdevilla@ctstech.net and let’s talk!

For the Back End, an ASP.NET MVC Developer

You heard me right, I said ASP.NET MVC. You might be able to talk me into ASP.NET if you have a really convincing argument, but I’m an ex-Microsoftie, and I have my reasons for going with MVC.

As for why we’re going with Microsoft-based server technologies rather than something Unix-based, it’s simple: our customers are using Microsoft technologies such as Windows Server, IIS, SQL Server, Active Directory and so on. We need our software to play very well with theirs.

Hence our search for an ASP.NET MVC developer, whose job will be to write the back end applications for our mobile apps for business. The mobile apps will be making calls to an API, which you’ll implement. These apps will also have some kind of administrative control panel to manage all the people using our mobile apps, and you’ll have to implement that too.

You should have experience with the following:

  • ASP.NET MVC
  • The C# programming language / .NET framework
  • Entity Framework
  • SQL Server
  • HTML5 / CSS3 / JavaScript
  • jQuery / jQuery mobile
  • Test-driven development
  • Implementing APIs
  • Writing secure applications for business
  • Contributing to the design of applications
  • Researching new and rapidly-changing technologies and then implementing features to take advantage of them
  • Making judgement calls and being able to explain them
  • Venturing into unfamiliar territory and getting stuff done

For iPhones and iPads, an iOS Developer

We’re also looking for an iOS developer to build native iPhone and iPad clients for our mobile apps for business. Yes, we do mean native iOS apps and not HTML5-based ones, because some of the functionality we’re going to need will require the kind of low-level access that you can’t get with an HTML5 app.

You should have experience with the following:

  • iOS 4 and 5 development
  • The Objective-C programming language / core iOS frameworks
  • Test-driven development
  • Making calls to various APIs
  • Writing secure applications for business
  • Contributing to the design of applications
  • Researching new and rapidly-changing technologies and then implementing features to take advantage of them
  • Making judgement calls and being able to explain them
  • Venturing into unfamiliar territory and getting stuff done

For Android Phones and Tablets, an Android Developer

We’re also looking for an Android developer to build native Android phone and tablet clients for our mobile apps for business. As with the iOS developer, we do mean native Android apps and not HTML5-based ones, because some of the functionality we’re going to need will require the kind of low-level access that you can’t get with an HTML5 app.

  • Android 2 / 3 / 4 development
  • The Java programming language / core Android frameworks
  • Test-driven development
  • Making calls to various APIs
  • Writing secure applications for business
  • Contributing to the design of applications
  • Researching new and rapidly-changing technologies and then implementing features to take advantage of them
  • Making judgement calls and being able to explain them
  • Venturing into unfamiliar territory and getting stuff done

Once Again…

…if you think you’re up to one of these tasks, or if you have any questions, contact me at jdevilla@ctstech.net.

Categories
Uncategorized

The Easiest Way to Get Ubuntu Linux on Your Windows Computer (So You Can Learn C the Hard Way)

Read reviews of Top 3 Best Hosting Companies and get the best web hosting
deals!

Learn C the Hard Way is Missing Windows Setup Instructions

A couple of readers who were inspired by my previous post, C, the Programming Language: Still Popular After All These Years, decided to give Zed Shaw’s free book Learn C the Hard Way a try. They ran into this roadblock in Exercise 0, which covers setting up your machine to do C programming:

1.3 Windows

For Windows users I’ll show you how to get a basic Ubuntu Linux system up and running in a virtual machine so that you can still do all of my exercises, but avoid all the painful Windows installation problems.

… have to figure this one out.

Learn C the Hard Way is a a work in progress, so it’s not surprising that parts of it are incomplete. That being said, it’s an amazing working in progress spanning 55 chapters, 49 of which appear to be complete. It starts your C programming journey with “Hello, world!” and then takes you to all sorts of places, including pointers, rolling your own simple prototype-based object system, Zed’s handy-dandy debug macros, Duff’s device, grand tours of data structures and debugging tools and more. Given the amount of ground that the book covers, it’s very likely that Zed put a higher priority on those parts that covered C programming in general rather than dealing with platform-specific issues. Luckily, I can help.

For those of you who are Windows users who’d like to do the exercises in Learn C the Hard Way, this walkthrough is for you. In it, I’ll cover the process of using the Windows Installer for Ubuntu Desktop, also known as Wubi (short for “Windows UBuntu Installer”). With it, you can install Ubuntu Linux on your Windows Vista, Windows 7 or Windows 8 machine and easily switch between Windows and Linux, without having to fool around with disk partitioning software or doing anything more complicated than making a couple of selections in an installer program.

Using Windows Installer for Ubuntu Desktop

You can get the installer from the Windows Installer for Ubuntu Desktop page, pictured below:

When you run the installer, you’ll be presented with the window below:

All the installer really needs to proceed is for you to provide a username and password for an administrator-level account which you’ll use to log in.

The installer automatically chooses the amount of disk space to allocate to Ubuntu, but you can change this value. I decided to be generous and give Ubuntu the most space that the installer will set aside for Ubuntu, 30GB. This may seem tiny, but the resulting Ubuntu installation will be able to access not only its files, but the files in Windows’ filesystem. Unfortunately, the reverse does not apply: you won’t be able to access files in Ubuntu’s filesystem while running Windows.

You also have the choice of desktop environment. The options are:

  • Ubuntu (the default): This flavour of Ubuntu uses the Gnome desktop environment with the Unity shell interface. If you’re new to Linux (or haven’t used it in a while), start with this.
  • Kubuntu: This flavour of Ubuntu uses the KDE desktop environment.
  • Xubuntu: This flavour of Ubuntu uses the Xfce desktop environment.
  • Mythbuntu: This flavour of Ubuntu is meant for setting up a standalone MythTV-based PVR system.

Once you’ve provided a username and password and you’re satisfied with your choices (or the defaults), click the Install button. The installation process will begin and you’ll see a window showing the installer’s progress as it downloads files, as shown below:

Once the installer has downloaded all the files it needs, it will start expanding them. The installer window should look something like this:

Once the installer has finished expanding the files it downloaded, you’ll see the Completing the Ubuntu Setup message (pictured below), which notifies you that you need to reboot your computer to complete the installation process. You’ll be given the option of rebooting immediately or doing it manually later:

When you reboot your computer, the Ubuntu installer will go through its final steps. You’ll see a screen that looks like this:

Once the installation is complete, you’ll be taken to the login screen. The username you provided should be automatically selected, so all you have to do is enter the corresponding password, which you also provided on the installer’s first screen.

Once you log in, you’ll be in your new Linux environment.

You’ll have one more step before you can start the exercises in Learn C the Hard Way: installing the required development tools. You can do this by firing up a command line and installing them with apt-get.

If you’re new to Ubuntu or have been using an older version, it may not be obvious how to start an application that isn’t in the Launcher (the taskbar/dock-like collection of icons on the left side of the window). The Dash Home icon is similar to the Start menu in Windows 7 and earlier, and you can use it to open a terminal window as shown in the diagram below:

Once you open a window, enter this at the command line:

sudo apt-get install build-essential

You’ll be prompted to enter your password, after which the required developer tools will be installed. You can now start the exercises in Learn C the Hard Way.

When You Restart Your Computer

The next time you restart your computer, you’ll be presented with a menu giving you the option of booting into Windows or Linux. If your OS is Windows 7 or earlier, the menu will look like this:

If you’re running Windows 8, the look will be more like the interface formerly known as Metro:

Have fun learning C the hard way!

Categories
Uncategorized

C, the Programming Language: Still On Top After All These Years

Dennis Ritchie, creator of C, with Ken Thompson, creator of B, C’s precursor.

If you’ve ever been with me at a gathering of programmers, chances are that you’ve heard me play The Beatles’ Let It Be on my accordion while singing these lyrics:

When I find myself in hacking trouble
Dennis Ritchie comes to me
Speaking words of wisdom:
“Code in C.”

And right there on my hard drive
gcc is there for me
Speaking words of wisdom:
“Code in C.”

Code in C, code in C,
Code in C, oh, code in C
[insert high-level scripting language here] is for lightweights
Code in C.

C’s got staying power: even though it first appeared in 1972, it’s still popular today, sitting pretty at the very top of the August 2012 TIOBE Programming Community Index:

TIOBE Programming Community Index
“Top 11” for August 2012
Position Programming Language Appeared in
1 C 1972
2 Java 1995
3 Objective-C 1983
4 C++ 1983
5 C# 2001
6 PHP 1995
7 Visual Basic 1991
8 Python 1991
9 Perl 1987
10 Ruby 1995
11 JavaScript 1995

Note the top five languages immediately after C: they all have C’s syntax, as do Perl and JavaScript. Java, C#, PHP, Perl and JavaScript programmers should be able to look at some C code and get the general idea, at least until it gets into more complex work with pointers. C++ is almost a superset of C; a C++ programmer should not only comprehend C code as easily as C++, s/he should also say “Not confusing enough”.

Objective-C is a strict superset of C, which means that any C code that compiles will also compile if fed to an Objective-C compiler. If you’re developing for iOS or MacOS, you’re pretty much a C programmer, albeit a very souped-up one.

C and Me

When I was a computer science student at Crazy Go Nuts University, I chose to do my programming assignments in C (the other language option was Turing, which made the choice rather simple). Since graduating, I’ve only used C for little hobby projects; I’ve never been paid to do any C coding. Still, it’s paid off in many important ways, from having a better understanding of the underlying machinery to being very comfortable with the syntaxes of languages like Java, JavaScript and C# to being of great help as I’m teach myself iOS programming.

Being comfortable with C paid off quite recently when I was interviewing at a startup in the San Francisco Bay area. They asked me to download and install an Ubuntu virtual environment and write a quick little program for the inPulse smartwatch emulator in order to demonstrate my programming chops. Their API documentation was barely that: a straight-up copy of the .h files for their API function library. Because I had the C practice, those header files and a quick look at some of their example code was all I needed to cobble together a quick app. The app became the basis for my inPulse programming tutorial.

Head First C

It’s unusual to see a new C book these days. Take a look at the C programming book listings on Amazon; most of them are at least five years old, and a good number of them have publishing dates in the ’90s. C’s old enough and small enough — even in the latest version, C11, approved only last December, it’s still under four dozen keywords — that most authors haven’t seen fit to write a new C book in some time.

Head First C is one of those rare new C books. Published in April 2012, it’s one of the newest in O’Reilly’s fun-to-read “Head First” series of books, which uses humour and whimsical graphic design to engage the reader. O’Reilly Radar recently conducted an interview with one of its authors, David Griffiths, about the book, the continued popularity of C and what it offers to readers.

When asked “Why write Head First C?”, especially when people still point to Kernighan and Ritchie’s classic book, The C Programming Language, as the go-to book, he Griffiths answered:

Kernighan and Richie’s The C Programming Language is one of most popular, if not the most popular, programming books, and it defined the ANSI standard. That book is still the standard, but through the language hasn’t changed, the audience has, and many learners are coming to the language from a different perspective and set of knowledge.

The C Programming Language was written in a time when it was very unusual to see a computer in someone’s home, well before the era of easily-accessible internet, never mind smartphones and tablets. Back then, C might likely be the reader’s first programming language, while these days, readers are likely to have had some experience with JavaScript, PHP, Ruby, Python or some other programming language, and they’re most likely not doing systems programming. Head First C has some interesting examples and even more interesting labs, featuring an Arduino-powered plant-watering alarm, a webcam-powered computer vision system and an “Asteroids”-like videogame.

Head First C is a pretty good book, and it’s worthwhile read. To find out more about it, check out the interview in the video above.

Learn C the Hard Way

Yours Truly and Zed Shaw

Also worthwhile is Learn C the Hard Way, a book written by the notoriously opinionated Zed Shaw. Based on his earlier book, Learn Python the Hard Way, a book written out of anger and frustration with Mark Pilgrim’s Dive Into Python (a book I rather liked, but hey, Zed’s got a right to his opinion). It’s also a worthwhile read, and unlike Head First C, it’s free-as-in-beer and online!

Categories
Uncategorized

Updated on My GitHub: “inPulse Magic 8-Ball: A Beginner’s Tutorial for Programming inPulse Smartwatch Apps”

On my GitHub, I’ve updated my tutorial, inPulse Magic 8-Ball: A Beginner’s Tutorial for Programming inPulse Smartwatch Apps to include new sections covering the following:

  • Timers and pulse_register_timer
  • Using multiple timers
  • Cancelling timers and pulse_cancel_timer
  • The “Magic 8-Ball” app, written using timers instead of the main app loop

In case you were wondering, the inPulse smartwatch is the predecessor to the new hotness and Kickstarter darling, the Pebble smartwatch.

As I said in my earlier posting on the tutorial, if you’ve done at least a little programming and aren’t afraid to do a little coding in C, I think you’ll find this a fun exercise. If you’re new to C or just a little rusty, you should check out Stanford’s Essential C page.

Categories
Uncategorized

Why You Should Hire Me

Writer Paul Constant went to Startup Riot in Seattle and the end result is his wonderfully caustic article titled Yesterday, I Went to the American Idol for Startups. It Made Me Want to Die. It’s a deliciously nasty diatribe against the vapid jargon that’s become the lingua franca at gatherings where people from software, web and mobile startups come to do show-and-tell.

An outsider to startup culture, Constant didn’t write the sort of breathless paean that often graces the pages of business magazines or tech news web sites, in which brash software peddlers are praised for their technical mastery or business acumen (or in some rare cases, their dashing good looks). Instead, he told a horror story of Stepford software-mongers parading inconsequential ideas in an orgy of self-congratulation, all the while doing “brutal violence to the English language, to leave the spoken and written word bloodied and victimized on a cold cement floor, wishing for the sweet relief of death.”

It would be Visual Basic-easy to dismiss Paul Constant’s critique by characterizing him, as one commenter on Hacker News put it, as “basically one type of hipster raging against the hipsterisms of a different type of hipster.” His bio page provides more than enough ammunition for that task, starting with the (presumably) ironically-self aware photo, which I’ve included on the left. It says that he’s the book editor for The Stranger, Seattle’s alternative weekly newspaper, and that his career comprises either writing for various U.S. alt-weeklies or working at book stores, namely the evil chain store Borders (which rates a parenthetical “ugh”) and Seattle’s wonder independent Elliott Bay Book Company. Simply put, he’s the stereotypically snobbish graduate of a liberal arts program, the sort of person for whom concepts like talent, work and ambition are anathema, and  for whom the combination is the anti-Trinity; an unholy menage a trois starring Satan, the Anti-Christ and Barney the Purple Dinosaur. His disgust seems akin to the low regard in which wealthy Victorians held the ascendant merchant class (the word “career” has its roots in the rich of that era comparing people who worked for a living to rats careering — as in “running about — to and fro).

To dismiss Constant’s screed would be wrong for a number of reasons. To begin, it’s a petty argumentum ad hominem kind of retort, the last resort of someone who’s losing the argument. There’s also the fact that he writes so damned well. Armed only with the English language, he does more than merely report what happened — he paints a picture of the event, complete with too-seldom mots justes (when’s the last time you read the word “gossamer”?), memorable turns of phrase and apt metaphors.

Most importantly: he makes a couple of good points.

He writes (the emphasis is mine):

I don’t mean to say that these Startup Rioters are bad people, or that people like this have never existed before. Nostalgia is a cunning trap. These are men and women who want to make a living, and they have ideas they believe are valuable, and they want to communicate those ideas, just like everyone else who has ever lived.

The big problem is the cliches and extraneous words. This world of business, these job creators, have specialized to the point where they have developed their own language. This is normal, but the problem is that their language is as tepid and lifeless and dumb as any language that ever existed.

There’s no excuse for this. The startup culture largely comprises people from the right side of the bell curve, many of whom have had the benefit of higher education or its equivalent. If you argue that those of us who opted for the algorithms course over creative or essay writing have earned a pass, I will counter that we are equally fussy about language, just in a different way. We’ve all argued about the merits over language A over language B and readable code. Our code doesn’t work if it doesn’t clearly and intelligently communicate our intent to the computer, and it isn’t maintainable if it doesn’t clearly and intelligently communicate our intent to other programmers.

Here’s another complaint of his with which I agree wholeheartedly:

There are no words, no photographs, no graphic design. It’s all “content,” which is “consumed.”

I hate this use of the word “content”. I don’t know what’s to blame: the business view in which everything is simply a generic widget to be either bought or sold, the developer view in which everything is just data to be stored, transferred or crunched, or some toxic Reese’s Peanut Butter Cup of the two. Referring to writing, illustrations, spreadsheets, photographs, music, videos, blueprints and so on — the very reason we use our wonderful computing gadgets — as “content” put them in second place, reversing the natural order. People don’t get things done in order to use software, they use software to get things done.

I hate this use of the word “consume” even more. Jerry Michalski hit the nail on the head when he said the word makes us sound like “living gullets whose only purpose is to gulp down products and crap out cash.”

For extra credit: Watch the keynotes where Steve Jobs introduces the iPad and Steve Ballmer and company introduce the Surface tablet. Count the number of times the word “content” and “consume” or “consumer” appear in each. Note the difference.

Here’s the conclusion of the article:

You can do anything you want with an idea. It can be as big as you want. It doesn’t have to solve a minor problem that nobody ever really realized was a problem. It doesn’t have to fit into something the size of a button crammed into a “folder” the size of a button on a screen the size of a playing card. But everywhere I look, I see tiny little ideas, ideas that are almost petty in their inconsequentiality. And I come back to those cliches, and I think the real problem is in how little thought goes into the language these people use. When the language you employ to communicate your ideas is small and boring, your ideas are going to be small and boring. And when all your ideas are small and boring, your future gets dimmer and dimmer and more claustrophobic until it’s finally just a pinpoint of light on a dark screen, in danger of going out at any time.

If you’ve read 1984, you should be reminded of the Newspeak language, whose purpose was to reduce the scope of thought by reducing the scope of the language to express it. “It’s a beautiful thing, the destruction of words” is a line uttered in the book by a Newspeak dictionary editor, and it’s meant to be appalling. We, as people for whom ideas are building material, should be just as appalled when we practice “linguistic nihilism” in our work.

Here’s the reason you should hire me: I’m a techie who can communicate very well. I don’t sound like the people who made Constant want to die.

Go ahead, re-read the paragraphs above if you need proof of my ability to string words and pictures together into an enjoyable, cogent essay. Read the back catalogues of articles in my personal blog, The Adventures of Accordion Guy in the 21st Century, and in my tech blog, Global Nerdy. Take a look at my latest project on GitHub: inPulse Magic 8-Ball, a tutorial on developing apps for the inPulse smartwatch.

I also give great presentations, in which I make my explanations clear and lively, with a minimum of jargon. Here’s HTML5 and RIAs: Friends with Benefits, in which I talk about HTML5 and rich internet application plug-ins such as Flash and Silverlight:

Yes, that’s my velvety-smooth voice.

Here’s one of my most popular live presentations, Squeezeboxes, Startups and Selling Out, a “pep talk” I gave at CUSEC 2009, a conference for computer science and engineering students:

And finally, as proof that I can do presentations with any competent and cooperative co-presenter, here’s an episode of the children’s web show Developer Jr., where my co-host is a puppet:

If that’s not enough, I can also rock out. On the accordion.

I understand technology and I know how to communicate ideas to other people. Simply put, I’m a tech evangelist. If you have a software company, whether it’s a one-person startup or a Fortune 500 company, you just might need someone like me. I’ll augment your good ideas with mine, and I’ll tell the story of what your software can do, in a way that no one else can.

Here’s my LinkedIn profile; here’s my resume [107KB PDF].