Notionovus Lean Canvas

I am studying the following books: The Lean Startup by Eric Ries, Running Lean by Ash Maurya and Business Model Generation by Alexander Osterwalder and Yves Pigneur. While I tend to think of myself as traditional, I am always open to studying new techniques, especially if they help me to eliminate waste.

A seemingly recurring theme with these books is the non-traditional approach to the business plan. I have a traditional business plan. I started on it one year ago with some help from SCORE Peoria. I show it to people occasionally, to give them an idea that this Notionovus thing isn’t just a whim and that I’ve put some thought into how I would approach investors.

The problem is, I am not ready to approach investors. I am not confident in the applicability of my technical skills to today’s IT challenges. I want to give my business some time for study and ideation. I have to draw up a vision for how we will do business. In short, “Pay no attention to the man behind the curtain.”.

The problem with a traditional business plan is its purpose. It is intended to show investors and bankers that you are ready for some form of financing to take your business to “the next level”. Without that exercise, a business plan seems a poor fit as I am using it. The business plan is not dynamic. Changing one assumption forces you to revisit many other assumptions. You find yourself needing to edit several sections at once, and the sections aren’t linked together like a spreadsheet. Each part of a business plan requires deep thought.

It’s not that I don’t think business plans are valuable. I just think that if all you are going to do is show your business plan to others as a means of discussing your business ideas, there are more efficient ways to layout your talking points. I am referring to the Lean Canvas. My guideline for developing Notionovus’ Lean Canvas was the Business Model Generation book. This book lays the instruction for building a Lean Canvas out for any venture in an easy to understand format. Plenty of examples, lots of pictures, my kind of book.

Lean Canvas
The Notionovus Lean Canvas

In a future blog entry, I’ll navigate the Notionovus Lean Canvas with you and explain the abbreviated notions. I think the Lean Canvas is easier to work with and helps me speak to others about my business. I highly recommend the books mentioned at the beginning of this article if you are working on your own startup.
Until next time,

Weblog 2.0?

Hello. This is Brian Anderson again. I gave a brief introduction to myself in July of 2012. If you are curious, the best way to get to know more about me is through my LinkedIn page.

I have not been updating this site as frequently as I would have liked. This is partially because I have had too much to write about and partially because I have not been confident that this weblog is the ideal venue. I recently took a fantastic class on Content Management Systems taught by Mark DuBois for Working Connections and it really opened my eyes to some of the interesting things I could do with this website, so I am newly committing myself to keeping this site more up-to-date.

The site will be restructured as follows:

Website MindMap

New Website Map

I will be adding stubs to locations where there will be future articles and discussion. In the interim, the second phase of the barcode articles needs to be written, because I have the code written that will replace the brute force method to Code 128 barcodes. This is still browser-based, and while I lack the resources and inclination to test the software on all sorts of different versions of every browser imaginable, I do know that it works on any Internet Explorer, Chrome, Firefox or Opera browser that supports scripting. By the way, the Javascript is of a rudimentary and benign nature and requires no interaction with your local file system. The source files are extremely small and in the interest of keeping things open and comprehensible I will be combining them for each symbology in the examples. Remember, the initial constraint for this software is the user must be able to generate barcodes independent of any network. We are using the browser merely as a tool to display HTML. That means no jQuery, no PHP, no server-side calculations and no files external to the source.

Away we go. If you remember the first series of articles, they were focused on getting an HTML browser to represent barcodes that, when printed, would scan. I started with the Code 128 symbology and indicated that the technique would work with almost any flavor of barcode up to and including QR Code. As proof of that, I am including some examples of barcodes that are printed from browsers using the new Javascript technique. So far I have created Code 128, Code 39, Interleaved 2 of 5 and QR Code symbols with the new method.

Barcode Collage
These are examples taken from HTML pages created with the Javascript barcode generator.

I have found some quirks with the browsers and some other technical challenges I am working on before I can get this code “production ready”, but in the coming weeks I will be posting my progress. Until next time, thank you for tuning in.

Barcode Tools & Techniques (Part 3)

The final weblog entry in the current Code 128 Barcode series is about the finishing touches that had to be put on the Code 128 Barcodes to get them to be client-sided. This is useful if you want to generate HTML files that stand alone and can be placed on a memory stick or other media without having the browser rush back to the web server to pick up a bunch of graphics files. The real data behind each barcode is the PNG graphic that is represented by its Base 64 encoding.

Base 64 conversion is a very old technique for mapping the contents of a binary file into a subset of ASCII. This allows us to move binary information back and forth over communication channels without inadvertently triggering unwanted behavior on either side of the interface. You can assume that binary data contains bytes and words in all bit combinations under the sun. Some of these combinations can be reserved to invoke functions within the sending or receiving program.

Because we want to transfer the raw data back and forth without invoking functions we have to “mask” all of the special combinations behind data that is highly unlikely to be used by any but the most extreme programmers to trigger functions.

So the Base 64 encoding scheme utilizes characters that are fairly innocuous in byte streams and are not likely to be altered in transit by the sending or receiving application. Namely, it uses upper and lower case letters found in the English alphabet, numbers and a few characters used in mathematics (+, / and =). Base 64 encases binary data in a stream of these characters meant for human consumption by laying a message’s bits out end to end and having a CPU look up 6 bits at a time out of a table of 64 characters. On the receiving side, the computer looks the characters up in a table and builds three bytes (24 bits) out of the bits that it finds. This technique allows a lossless transfer of binary information between two systems at a relatively small (33.3%) amount of overhead.

Base 64 is important for our barcodes because it is what enables them to be client-side barcodes. In other words, we can create barcodes in a web browser without having any connection to the internet. You might think that’s not important, but when your computer is considered “down” because its connection to the internet is “down” then I would say that you are underutilizing your processing power. The enabling technique is to have the barcode “font” embedded in the webpage without having to download auxilliary files from a server which may or may not be operational onto a client platform which may or may not think these auxilliary files are a secure thing.

If you take a close look at the Code 128 Barcode page, you’ll find that each symbol has its binary data (the PNG files generated with the technique illustrated in the last installment) represented in Base 64. We explain this to the browser by the codewords in the ‘src’ field “data:image/png;base64,”. The rest of the data is the binary information of each code symbol represented in Base 64.

I suppose I could have rifled through old hard drives and tape backups to find the source code for a utility that I wrote in the C programming language many years ago to encode/decode Base 64. Instead, I spent about an hour and a half online with a Base 64 encoding website and individually encoded each of the 107 symbols.

After I had all the Base 64 encoded data, I spent another two hours or so prettying up the HTML encoding for all the images and adding the fly-over text, etc. In all, it probably took me ten hours to create and test these barcodes over the course of a week. I hope that you find them fun, amusing and/or useful. Feel free to try this technique in your own application.

In our next installment we’ll introduce an idea that will make all this ultimately more useful by supporting many more symbologies as well as 2D barcoding schemes. Until next time, thank you for tuning in.