Weekly roundup – April 28th

Send to Kindle

Topics:  Free MS ebooks, Xamarin podcast, cloud server in 55 sec., squash your PNGs, Heartbleed fallout, RDP from Android.

Tools, etc.

Projects, etc.

  • Less than 30 days left in the FoodStats app fundraiser. We’re at $250 now. Pledge as little as a $1 or as much as you feel like – every little bit helps. Or just help spread the word: Use the share buttons on the campaign site or give this easier-to-remember URL to friends, family and those who might be interested: http://tiny.cc/foodstats
  • Released an initial alpha version of Commit Message Editor – a simple, cross-platform GUI editor for commit messages in Git. The goal is to provide a light-weight editor with key features useful for writing commit messages. (This was a request from my friend and former co-worker Jonathan.)

Weekly roundup – April 21st

Send to Kindle

A short roundup this week; been busy with the funding campaign for the FoodStats mobile app.

Topics: VMWare re-certification, “you want to be a programmer?”, symlinks for WordPress plugins, open source HTML5 widgets, 1-click VM deployment.

  • In an interesting development, VMWare has started expiring their certifications. It actually makes sense to me, but then I’m not the one with a certification that’s going to be outdated in 2 years.
  • When someone who wants to be a programmer asked maymay which language to learn, they offered a response that really resonates with me. (Note: post contains language that some may find offensive.)
  • Maymay also points out that the new 3.9 upgrade of WordPress now supports symlinked folders for plugins. (See the Under The Hood -> General section.)
  • Telerik open-sourced the core elements of their Kendo UI framework – “HTML5 widgets for web and mobile development.
  • A friend and co-worker mentioned Bitnami, which provides turn-key platform stacks in a VM for development and/or testing. In addition to supporting VMWare and VirtualBox they also provide “1-click” deployment to cloud hosting like AWS and Azure.

Announcing funding campaign for ‘FoodStats’ mobile app

Send to Kindle

Do you have diabetes, high blood pressure or another medical condition that means you need to be careful what you eat? Do you have a loved one who does? Or perhaps you just want to keep careful track of your calorie intake? Earlier this year I finally began getting my own Type 2 Diabetes under control by reducing my carbohydrate intake. I’ve gone from a blood sugar of over 340 to a daily average of 120 in the last several months. Now my doctor and I are tackling my high blood pressure, which means I need to also watch how much sodium is in the foods I eat. During this time, I’ve found the NutritionIX website to be a great tool. Not only can I look up the nutrition stats for individual foods, but they also list menu items from over 500 restaurants. Unfortunately, their website is not very mobile friendly and they don’t make a mobile app.

Nutrition Facts: Know what you're eating.Today I am announcing that I have started an Indiegogo crowd-funding campaign to help me build such an app for Android smart phones. Future efforts will include an iOS app, but this first phase will be for Android because that’s what I have. The app will be created with cross-platform support in mind, and will be available under an open source license, so anyone else will also be free to build upon my work – whether it be for Windows, Mac, Linux the web or other phone platforms.

Go to the campaign >>

And that’s why I’m running a crowd-funding campaign. Medical issues like diabetes, high blood pressure and obesity have become a common part of our lives. Nutrition plays a huge part in maintaining our health and modern technology now gives us the ability to get that information no matter where we are. It shouldn’t be limited to just those who can afford to pay for it, provided only by those who can afford to make it available. I want to help NutritionIX, the USDA and other providers get this information into as many hands as possible.

You can help. Even if you can’t afford to make a donation please help me spread the word. Tell everyone you know – especially doctors, dietitians or anybody else concerned with nutritional health. Use the buttons below to share this post on your social networks. And if you are considering donating, thank you. Every little bit helps: I’ve set the minimum donation at $1, with perks for those who donate more. If you’d like even more options you can find them on my Support Shawn’s work page.

This campaign is my first step on the path of the new way to think about “employment”, which I talked about in a previous post. Help me prove that we are no longer locked into the same old cycles. There is a better way.

See the campaign details >>

Coming soon: Know what you’re eating

Send to Kindle

If you have or know somebody with diabetes, high blood pressure or dietary restrictions – and a smart phone – watch for a major announcement from me tomorrow (4/15/2014) morning.

Weekly roundup – April 14, 2014

Send to Kindle

Topics: Telecommuting tips, Heartbleed tools, the end of crapware?, Git tutorials, free education, ideas into products, humanize numbers, better Datetimes, a Git GUI.

Tools, etc.

  • Wow. Humanizer is a .NET library that provides a mind-boggling array of ways to convert “strings, enums, dates, times, timespans, numbers and quantities” into more human-friendly text. (via Scott Hanselman)
  • Scott also recommends Noda Time as a better library than what’s provided with the .NET Framework.
  • Looking for a GUI for Git and/or Mercurial? Source Tree is a free download from Atlassian.

Projects, etc.

  • Working on something, which I hope to announce the next day or two. Stay tuned….

Project announcement coming & new donation options

Send to Kindle

I’ll soon be announcing a project I’m very excited about: a portable library and Android app for the wonderful data provided by the folks at NutritionIX. NutritionIX provides comprehensive nutrition information for individual food items as well as popular restaurants – something that has been extremely useful in managing my diabetes (type 2). Watch this space for the official project announcement in the coming days.

Also, I’ve added a new option for donating to support my work: There are now PayPal buttons both here on my blog and at http://tiny.cc/support-cms which allow you to make a donation of any amount you wish using only a credit card. There is no need to sign up for an account. Thanks for your support; every little bit helps.

A new way to think about employment

Send to Kindle

Years ago I came up with an idea I call distributed micro-income. Businesses have been doing this for decades (as have artists such as authors and musicians) but it’s only in recent years that it has become practical for small groups and individuals on a large scale.

Distributed micro-income

The idea is simple: Rather than having a single, monolithic source of income, a company will often serve several markets. Sony, for example, makes movies, household electronics and game systems. If any one of these industries were to crash, the others could keep the company afloat until they find a new source of income to replace it. In contrast, if an average employee loses their one full-time job they have nothing until they can find a new one.


Back in the mid-90s my employer, a small business owner, explained to me that the reason their company was an Internet Service Provider (ISP), provided web hosting, ran a gaming auction site AND hired out programmers for contract work was to provide a safety net. If the bottom fell out of any of those businesses the other two could keep the company going until they found something to replace it. I remember thinking that made perfect sense, but didn’t think much more about it at the time. That was just before the (first) Dot-com bubble burst. I managed to hang on through a couple more employers, but those were scary times. When all your eggs are in one basket – all your income coming from one employer – losing that basket can be devastating.

Modern, personal technology has brought us to a brave new era of possibilities for the independent creator. Long- and short-form videos are no longer the sole purview of major corporations. Podcasts have all but completely replaced talk radio. More and more authors are self-publishing every day. And now, with the growing popularity of crowd-funding and the ability to crowd-source for any number of needs, the average individual finally has all the pieces. I think back to that company, with their diversified stable of services (yes, they’re still around), and I ask myself “why can’t we all do that?”

The Maker Revolution

For hundreds of years now our economy, our very way of life, has been based on the changes brought about by the Industrial Revolution. The very concept of employment – having a job – is predicated on needing to pay for goods and services produced by companies which employed others, who in turn needed to pay for goods and services themselves. Et cetera, et cetera. This model made a certain amount of sense at first. It allowed more people to have greater access to more options, and provided a way for those who did the work of producing to be rewarded without having to worry about the logistics of acquiring a larger client base. In theory, anyway. Unfortunately it is also a system that was ripe for abuse. Today we have corporate entities who enjoy the same legal rights as individuals but contribute very little (if anything) to the greater good – seeking only to increase their financial power, even if only in tiny increments at a time.

Enter a new era: The Maker Revolution.

The Internet has often been lauded as the great equalizer throughout its history. Its power rests in providing knowledge and capabilities to everyone who has access, not just a privileged few. While this promise has sometimes been strained – as when the Internet was opened to commercial traffic in the 1990s – it has so far stubbornly persisted in that promise.

There are a variety of sites and services where anyone – not just companies – can create and sell products and/or services. T-shirts, mugs, posters, crafts, books, etc. have all been available for decades directly from individuals with only an idea and the willingness to put it out there. The last several years have seen the growth of popular crowd-funding sites like Kickstarter for larger efforts and now Patreon for producers creating ongoing content (such as podcasts, comics, etc.)

The Do It Yourself (DIY), or Maker, movement is in full-swing. Individuals and groups now have the ability to create things that were once only the purvue of large corporations – and thanks to the Internet we have the ability to fund them directly. We no longer have to wait for some business to decide that a product is financially viable at scale; we can create things that need to exist. Our dreams are no longer limited by The Market.

There’s been a lot of talk lately about how the United States has lost its edge – how we are losing our lead in innovations and growth. I believe that passion is still there. We just need to recognize and support it. It’s a brave new world. The Industrial Revolution has served us reasonably well, but it has run it’s course. It’s time for a new era. The Maker Revolution is here.

Be part of the revolution

I’ve been thinking about all of this and planning for the last decade. A few weeks ago I took the first steps in my own efforts to transition to this new model of “employment”. What I find so exciting is the variety of opportunities that exist. Some that I am working on include:

  • Self-publishing: There are a variety of services out there that allow you to submit written content and will produce it as an e-book or print it for others to purchase. Or, if writing isn’t your thing, there are services that will help you self-publish coffee table photo books.
  • Video: Everything from regular video casts (I’m thinking about doing reviews of open source software) to one-on-one webcasts are possible.
  • Clothing: I mentioned T-shirts earlier, and that’s what I’d focus on, but I’ve seen all manner of shirts, pants, jewelery, etc. being offered by those with the skill and interest in producing it.
  • Training/mentoring: Instructional webcasts are an option, but also consider teaching part-time at a local community or technical college. (I was a part-time instructor for 3 years.)

The options listed above don’t even necessarily take into account the crowd-funding possibilities. And there are so many more opportunities. Do you enjoy baking? Working with wood? Are you good with electronics? Whatever you do, I guarantee you there is a way to make a bit of money doing it by using the Internet. Probably not enough to live on alone, but combine several income sources together and viola! You have distributed income.

There are also opportunities that don’t involve exchanging money. It’s a movement most often referred to as The Sharing Economy or Collaborative Consumption. This model de-emphasizes ownership and encourages bartering as well as direct payments for renting, borrowing or exchanging goods and services.

The point is there are new models available to us; we don’t have to keep living the same lives just because it’s the way things have been done up to now. Go out there and be the change you want to see in the world :-)

See also:

Weekly roundup – April 7, 2014

Send to Kindle

The Weekly roundup is my regular post of interesting and useful things I’ve found or done over the last week.

Topics: Diversity in tech, crypto, online verification, Windows pkg management, .NET Foundation, a better RSS reader, tutorials, taking credit cards, debugging mod_rewrite.

From the //Build/ developer’s conference

  • OneGet is a new effort at package management on Windows that builds off and extends the work Chocolatey started. It sounds like they’ve got the right ideas for moving in the direction we need to go.
  • Microsoft announced new .NET Foundation to oversee(?) all the parts of .NET that have and will be open sourced.I think this approach is the right way to do this.

Tools, etc.

  • Signed up with Keybase – a new service that facilitates public/private key-pair (e.g. PGP, GnuPG) encryption and verification. You can find my public key at https://keybase.io/shawns. And if you’re interested in signing up I have some invites – just give me the e-mail address you want me to send them to.
  • If you’re still consuming RSS like me InoReader is a wonderful new online feed reader. The free tier gives you unlimited feeds and one filter rule along with folders that have their own feed, light & dark themes and an API.
  • Looking at using Stripe – simple online payments for developers – to accept credit cards directly for supporting my work.
  • Thanks to Dan for passing along this handy tool for debugging your Apache mod_rewrite rules.

Projects, etc.

Understanding Binary and Hex numbers

Send to Kindle

The following tutorial was first published on my website and is
Copyright © Shawn South 2002. All rights reserved.

Creative Commons License

Computers only understand numbers

The first thing to understand about computers is that they are nothing more than a powerful, glorified calculator. The only thing they know – the only thing they understand – is numbers. You may see words on the screen when you’re chatting with your friend via Facebook, or breathtaking graphics while playing your favorite game, but all the computer sees are numbers. Millions and millions of numbers. That is the magic of computers – they can calculate numbers – lots of numbers. Really fast.

But why is this? Why do computers only understand numbers? To understand that we need to go deep into the heart of a computer; break it down to its most basic functionality. When you strip away all the layers of fancy software and hardware what you will find is nothing but a collection of switches. You know the kind, you have them all over your house – light switches. They only have two positions: On or Off. It’s the same for computers, only they have millions and millions of the little buggers. Everything a computer does comes down to keeping track of and flipping these millions of switches back and forth between on and off. Everything you type, download, save, listen to or read eventually gets converted to a series of switches in a particular on/off pattern that represents your data.

What does this have to do with Binary and Hexadecimal numbers?

Let’s back up for a minute and look at how human beings deal with numbers first. Most people today use the Arabic numbering system – more commonly known as the decimal, or Base-10, numbering system (dec means ten). What this means is that we have ten digits in our numbering system:

0 1 2 3 4 5 6 7 8 9

We use these ten digits in various combinations to represent any number that we might need. How we combine these numbers follows a very specific set of rules. If you think back to grade school, you can probably remember learning about the ones, tens, hundreds and thousands places:

Display of decimal place columns

When counting, you increase each digit in the right-most place column until you reach 9, then you return to zero and increment the next column to the left.

I know this all probably seems very remedial and unimportant, but going back to these basic, simplistic rules is very important when learning to deal with other number formats. Would it surprise you to learn that there other numbering systems that have a different base? Somebody, somewhere, a long time ago decided that having ten digits would work best for us. But there really is no reason why our numbering scheme couldn’t have had seven, or eight, or even twelve digits. The number of digits really makes no difference (except for our familiarity with them). The same basic rules apply.

As it turns out, computers have a numbering system with only two digits. Remember all those switches, each of which can only be on or off? Such an arrangement lends itself very nicely to a Base-2 numbering system. Each switch can represent a place-column with two possible digits:

0 1

0 = off, 1 = on. We call such numbers binary numbers (bin means two), and they follow the same basic rules that decimal numbers do: Start with 0, increment to 1, then go back to 0 and increment the next column to the left:

binary decimal
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9


Binary numbers are well and good for computers but having only two digits to work with means that your place-columns get very large very fast. As it turns out, there is another numbering scheme that is very common when dealing with computers: Hexadecimal. Hex means six, and recall that dec means ten, so hexadecimal numbers are part of a Base-16 numbering scheme.

Years ago, when computers were still a pretty new-fangled contraption, the people designing them realized that they needed to create a standard for storing information. Since computers can only think in binary numbers letters, text and other symbols have to be stored as numbers. Not only that, but they had to make sure that the number that represented ‘A’ was the same number on every computer. To facilitate this the ASCII standard was born. The ASCII Chart listed 128 letters (both upper- and lower-case), punctuation and symbols that could be used and recognized by any computer that conformed to the ASCII standard. It also included non-printable values that aren’t displayed but perform some other function, such as a tab placeholder (09), an audible bell (07) or an end-of-line marker (13). The various combinations of only eight binary digits, or bits, could be used to represent any character on the ASCII Chart (28 = 128). (There were also other competing standards at the time, some of which used a different number of bits and defined different charts, but in the end ASCII became the dominant standard.)1

128 characters may have seemed like a lot but it didn’t take long to notice that the ASCII Chart lacked many of the special vowels used by Latin-based languages other than English, such as ä, é, û and Æ. Also lacking were common mathematical symbols (e.g. ±, µ, °, ¼) and monetary symbols other than the dollar sign ($) for United States currency (e.g. £, ¥, ¢). To make up for this oversight these symbols and a series of simple graphical shapes, mostly for drawing borders, were assembled as an extension to the original ASCII Chart. These additional 128 characters brought the new total to 256 (216), with the pair of charts being referred to collectively as the Extended ASCII Chart.

Did you notice that the value 256 can be represented as 2 (the base of a binary numbering system) to the 16th power? This brings us back to hexadecimal (Base-16) numbers. It turns out, through the magic of mathematical relationships, that every character on the Extended ASCII Chart can be represented by a two-digit hexadecimal number: 00 – FF (0 – 255 decimal).

Whoa! What’s up with this FF stuff?

Hexadecimal is a Base-16 numbering system, which means that every places column counts up to sixteen individual digits. The decimal system that we humans are familiar with only has a total of ten unique digits, however, so we needed to come up with something to represent each of the remaining six digits. We do this by using the first six letters of the alphabet.2  This means the digits for the hexadecimal numbering system are:

0 1 2 3 4 5 6 7 8 9 A B C D E F

And, of course, hexadecimal numbers follow the same basic rules that decimal and binary numbers do. Count up to the last digit, then return to zero and increment the next column to the left:

hexadecimal decimal
0 0
1 1
2 2
9 9
A 10
B 11
E 14
F 15
10 16
11 17
19 25
1A 26
1F 31
20 32

As you can see, the hexadecimal numbering system doesn’t advance through the place-columns as quickly as decimal numbers do – and certainly not at the rate of growth experienced by binary numbers! This, coupled with its relationship to the Extended ASCII Chart and subsequent relationship to various other computer concepts, has made the hexadecimal numbering system, or hex, a standard for computer programmers and engineers the world over. It is common when viewing a raw data dump to use a Hex Viewer – software that displays the hex values of each character. This allows one to see every character in the Extended ASCII Chart, even the ones that are not normally printed or visible.

If you are a programmer, or aspiring to be one, it is also worth noting that the variable type Byte is, depending on the programming language, 8 bits in size. This means that it can be represented by a single digit hexadecimal number (0-F). If you are programming for the Windows platform in C or C++ you have probably noticed the commonly used variable type DWORD (Double-WORD). A WORD is 16 bits (0-FF) in size, which makes a DWORD 32 bits (0-FFFF). If you are an HTML programmer you have probably seen color values that are composed of hex numbers. Colors are represented as a mixture of Red, Green and Blue values (RGB). Each of these three primary colors can have a value from 0-255 (decimal), which translates into three sets of two-digit hexadecimal numbers: 00 1A FF.

This tutorial just touches on the basics of the hexadecimal and binary numbering systems and their importance when working with computers, but I hope that it has provided a good base of understanding from which to start. If you found this article useful please consider supporting my work and/or letting others know.


  1. While ASCII was the standard of its time, it doesn’t even come close to representing the international needs for sharing data. There are many competing standards today which provide support for the various letters and characters of other cultures and countries but Unicode is by far the most common. [return]
  2. Whether the letters are upper- or lower-case makes no difference. It is common to see them represented either way. [return]


Send to Kindle
UPDATE: All my crowd-funding profile links have changed. Please see the updated support page for the new links. (The services were irrevocably linked to what will soon by my old Github account.)


I resisted saying anything yesterday because I didn’t want people to think it was a prank, but Bellevue College has decided not to renew my annual contract and let me go. By happenstance this development coincides with my launching of Life 3.0 – a new concept of employment. I’ll be looking at a number of options going forward, but I’d like to ask everybody to please take a moment to read my Support Shawn’s Work page and consider contributing as little or as much as you feel comfortable with.

Even if you can’t or don’t want to donate, please help me spread the word by sharing this link: http://tiny.cc/support-cms

In the coming weeks you should see more posts on this blog, contributions to the open source projects I work on and other efforts that will be directly supported by your donations.

Thank you and be well.