Goodnik is an organization that supports social entrepreneurship by offering workshops, online resources and professional referrals, among other things. On Tuesday I was one of five presenters at Goodnik Demo Day, a showcase for existing businesses and side projects. Other presentations include an IoT platform for climate change, a non-profit travel booking website and a crowd-funding meets food drives initiative. My presentation starts at 4:30 in the above video and I am featured again in the Q&A at the end.
My presentation was a demo of a prototype iPhone app that I have been working on as a side project since last year. The currently unnamed educational app generates a reading list of Wikipedia articles based on any subject. The app keeps track of which articles have been read, has text-to-voice support and can even be controlled the same way as a music playlist. Finally, the app generates test questions based on these same articles. The goal of this project is to facilitate learning via smart algorithms, ease of use and a bit of gamification. I hope to finish the app and release it in the app store at some point but it will probably be quite a while because of my other duties. If you are interested in getting involved with the project feel free to get in touch.
Last night I gave a presentation to the NJ Mobile Developers meetup group titled “3 Specific Actions You Can Use to Improve Your App.” This presentation is short but packed with useful insights for mobile app developers, designers and product people. Here is the presentation:
There has been a lot of news lately about new technological advances being developed for cars. First up is the electric car. Major car manufacturers started out with gas/electric hybrids like the Toyota Prius and begun to move to all electric vehicles such as the Nissan Leaf. A lot of this innovation by the big manufacturers has been prodded by Tesla, the now widely known electric car company. Adding more fuel to the fire, the rumor this week is that Apple has hundreds of people working on an electric car.
If electric and driverless car projects were being developed exclusively by the major car manufacturers and small startups I would be mildly excited. Now that giant technology companies like Google, Apple and Uber (Uber is already huge if their rumored financial results are to be believed), innovation will be fast and furious. The major car manufacturers are terrified with the possibility of competing directly with the brand and money of Apple. Uber is terrified with being leapfrogged by Google in a market they created. What all this means is that there are a lot of companies that are highly motivated to innovate quickly and that electric and driverless cars are going to develop much faster than people expect. I think we could see electric cars go truly mass market by 2017 and driverless taxis being publicly introduced in 2017 and mass market by 2019.
On Sundays I enjoy blogging about the history of technology. As my 9th entry, here is a brief discussion of the greatest PCs of all time.
While doing some research I stumbled upon this interesting article titled The 25 Greatest PCs of All Time. I thought it would be fun to go through the list from that and give my thoughts on each choice. At the bottom I will list my own personal top 5.
1977 Apple II – The Apple II was a genius product of engineering created almost exclusively by Steve Wozniak. The software development community generally likes to talk about 10x’ers – software developers that are as productive as 10 average developers. I think Wozniak an incredible 100x’er in this case, developing both the hardware and the software that was not only years ahead of the competition but also fairly inexpensive thanks to smart design which lead to less components and thus a lower price. I remember briefly using some later version of the Apple II at my elementary school and local library in the 1980s.
1986 Compaq Deskpro 386 – Compaq was the first company to legally backwards engineer and then clone the IBM PC standard
1981 Xerox 8010 Information System – The first PC with a bitmapped display, windows style GUI, ethernet and other amazing innovations. This was Xerox’s attempt to capitalize on these amazing innovations but because of its high price and intended use to be part of a network of computers it never gained significant market share. Apple and then in turn Microsoft famously incorporated these ideas for their own hardware and software products.
1986 Apple Macintosh Plus – The original Macintosh famously launched in 1984 but this is the third versions launched two years later. Because of the original’s hardware limitations, high price and limited software this model was probably chosen for this list because it finally hit the right value proposition and had a more mature software lineup. My first computer was one of the mid 80s Apple Macintosh computers with the 9″ black and white built in monitor so I have fond memories. I remember writing papers and making simple bitmap images back in first grade on my Macintosh.
1992 IBM ThinkPad 700C – The IBM ThinkPad was the professional business laptop of the 1990s
1981 IBM Personal Computer, Model 5150 – The original line of IBM PCs was famously designed in about a year based on off-the-shelf parts, a modified version of CP/M / QDOS soon to be known as MS-DOS. This computer wasn’t very impressive at the time but because of its IBM brand and the soon to be widespread ecosystem of clones, it became the standard for the entire industry (besides Apple of course).
1985 Commodore Amiga 1000 – Commodore computers were huge sellers throughout Europe in the 1980s. The Amiga line was known as a very powerful gaming platform.
Tandy TRS-80 Model 100 - The Tandy brand in the US is known as the Radio Shack brand of computers that were popular in the 1980s. They were not exactly known for their quality but this model was particularly popular, having sold more than 6 million units.
1982 Columbia Data Products MPC 1600-1 – One of the early IBM clones
1991 Apple PowerBook 100 – A successful early 90s laptop from Apple. Perhaps the last truly successful Apple product before Steve Jobs’s return and the launch of the iMac much later in the decade?
1998 Sony VAIO 505GX – A popular ultraportable laptop
1975 MITS Altair 8800 – The true first PC. It had no keyboard, no mouse and no monitor but it kicked off the entire PC industry so it deserves its place in history.
1984 IBM Personal Computer/AT Model 5170 – The second generation of IBM branded PCs
1979 Atari 800 – Atari, primarily known for its arcade games and home video game consoles, also produced a line of PCs. This was one of the original models.
2001 Shuttle SV24 Barebone System – Chinese manufactured small form factor PC
1977 Tandy TRS-80 Model I – See #8 above
1987 Toshiba T1000 – Semi-portable computer that had a laptop style form factor and battery powered option
2002 Apple iMac, second generation – Even though my first computer was an Apple Macintosh, once I received my first PC in 1995 I never considered Apple a serious computing platform for a long time. I remember the writing department of my University had a line of iMacs in the early 2000′s and I thought they looked stupid and plain sucked. Looking back, I still think the early iMacs sucked but they saved the company so there’s that.
1996 Gateway 2000 Destination – Gateway was a popular discount PC manufacturer that came in tacky cow print boxes. My first PC was a Packard Bell so I can’t trash Gateway too much.
1998 Alienware Area-51 – Alienware (now owned by Dell) is a gaming centered line of PCs. The mid to late 90s was an amazing time of growth for 3D accelerator cards and awesome PC games.
1993 Hewlett-Packard 100LX – Tiny black and white computer. I’m sure it had it’s fans at the time but it hardly seems useful even by 1993 standards.
1997 Apple eMate 300 – Low cost laptop that ran the Newton operating system. It was thankfully discontinued a year later.
2006 Toshiba Qosmio G35-AV650 – Large high end laptop
1982 Non-Linear Systems Kaypro II – CP/M based computer that got swept away when the IBM PC standard was introduced
OK so here’s my personal top 5 PCs list:
Apple II (1977) – the first mass market PC
MITS Altair (1975) – the beginning of the PC market
Apple Macintosh (1984) – the first mass market GUI based PC
Compaq Portable (1983) – first 100% compatible IBM PC clone and was also somewhat portable to boot
Macbook Pro (2006) – an odd choice considering the others, but for the last decade these have been the development platform of choice for software developers. This dominance should not be overlooked as one of the primary drivers that have helped Apple become the most profitable company in the world.
I grew up a Sega kid. Not only did I have a Sega Genesis but I also had a Master System, Sega CD, Saturn and well… pretty much everything besides the infamous 32x. Heck, I even won a free vacation for winning a Sonic 3 competition. Most of my friends growing up had Nintendo and Super Nintendo so I got a chance to play the best stuff from both companies. I liked both Sega and Nintendo but when it came down to it I stuck with Sega.
For people who grew up gamers in the 80s and 90s, and especially fans of Sega, then Console Wars (2014, Blake J. Harris) is for you. Console Wars covers the epic battle between Sega of America and Nintendo of America during the 16-bit console era. This book doesn’t cover the details of game development but rather provides an inside look at the American operations of both firms.
Console Wars starts off on the wrong foot with the laziest, stupidest foreword of all time by Seth Rogen and Evan Goldberg. The duo is working on a movie adaptation of the book which hopefully involves a bit more effort. Thankfully, following the foreword the rest of the book is fantastic.
Tom Kalinske - Alan Levenson/Time Life Pictures, via Getty Images
Right away we are introduced to the main protagonist, Tom Kalinske. Kalinske is one of the most interesting figures in American business history, having been responsible for defending Flintstones chewable vitamins in front of Congress, the revival of Barbie and Hot Wheels at Mattel, launching the He-Man series and more recently CEO of children’s educational company Leapfrog. If you are a marketing professional then Kalinske should be on your list of heroes. The book mostly chronicles Kalinske’s perspective as a video game industry outsider asked to come in as CEO of Sega of America from 1990 through 1996.
Back in college I remember reading boring business case studies and I always thought the Sega Genesis marketing strategy should be a required reading. If nothing else, this book goes into amazing detail on every facet of Sega of America’s incredible marketing job spearheaded by Kalinske, Al Nilsen and other Sega executives from 1991-1994. In a few short years, Sega’s American home console market share went from 5% to 50%, even slightly edging out Nintendo for a brief period of time. Considering Sega had about 10% of the marketing budget of Nintendo and little name recognition it was an incredible accomplishment. Many of us remember “Genesis Does What Nintendon’t”, the Sega Scream and “blast processing” but the more in depth details covered in this book are particularly fascinating. For example, I had no idea that Sonic 2uesday (the release date of Sonic 2) was the first global launch of a game in history. I particularly liked the details covering the national Sega Genesis promotional mall tour since I remember playing Sonic for the first time at Raceway Mall tour stop. I ended up getting a Genesis soon after so it worked for me.
Here’s a look at how Sega’s commercials evolved throughout the 16-bit era, featuring ads from 1989, 1991 and 1993:
As you would expect, Nintendo is covered in detail as well. Nintendo is portrayed as the rich, arrogant but wholesome antagonist to the scrappy, crass Sega. One of the more interesting angles that the book dives into is Nintendo’s successful but albeit questionable business practices. It’s been known that Nintendo had underhanded business practices in the NES era (such as the exclusivity contract that prevented third party publishers from also releasing games on rival platforms) but the book really drives home the point of how poorly Nintendo treated all of its business partners and the rest of the industry. From retailers to third parties to gaming magazines to parts suppliers, Nintendo’s business practices opened the door for Sega to come in and gain support from everyone that was tired of Nintendo’s antics. When Sega stumbled in the 32-bit era, Sony came in to take their place as the favored console maker partner.
It took Nintendo a few years but they finally responded to Sega’s aggressive advertising techniques. Here is an example from 1993 promoting the game Donkey Kong Country:
As we now know, Sega’s rise was short lived and they soon fell from grace and eventually out of the home console business entirely. Console Wars covers that in detail as well and displays how quickly jealously and egos can destroy even the most talent rich and successful organizations. Between the fall of their console business and the decline of the arcade industry in general Sega never really had a chance to recover and was acquired by Japanese Pachinko maker Sammy years later. A further reminder of how times have changed happened this week as Sega Sammy announced that they are laying off 300 workers and closing their San Francisco office. Nintendo has faired much better, having had great success with their Wii home console and Nintendo DS portable. More recently though, Nintendo has started to struggle in both their home and portable console markets and seems to be at their own personal crossroads as a business. It will be interesting to see how they respond in the coming years.
Here are some additional tidbits of the book that I found particularly fascinating:
Sega turned down both Sony and Silicon Graphics as part of their 32-bit console partner development process. Sega of America attempted to set up both relationships and was turned down both times by Sega of Japan in favor of Japanese chipmaker Hitachi. The Sega Saturn was crippled by a confusing architecture and high price thanks to it’s Hitachi architecture and allowed Sony to come in and take over the industry with their Playstation. I always thought the 32x was the biggest mistake Sega ever made but now I think they could have recovered if either their Sony or Silicon Graphics partnership were allowed to go through.
Yuji Naka (lead programmer and later producer of the Sonic series) actually quit Sega after Sonic 1 and was only brought over to the US to work on Sonic 2 after the fact. According to the book he was being paid a paltry $30,000. I could possibly understand if Sonic was his first game but he had already proven himself as an incredible talent having worked on Phantasy Star and several other successful games. Sega executives also complained that it took the Sonic 2 development team fourteen months instead of the usual ten to create the game. It’s amazing how much times have changed as some games now take up to five years to complete!
The story of how Donkey Kong Country was funded is truly amazing. I won’t spoil the details so read the book.
In general I love the insider stories detailing the hatred between Sega and Nintendo executives. Whether it’s in-person confrontations, confrontational phone calls or nasty letters I get the warm and fuzzies inside just thinking about it. In the end though it was nice to read that Nintendo of America’s Howard Lincoln wrote Tom Kalinske a nice send off letter when Kalinske left Sega.
Console Wars is a great read and I highly recommend it.
I’ve spent part of my development schedule over the last few months rebuilding the iPhone app for NYC based startup Clean Plates. The Clean Plates iPhone app v2 is now available on the app store so check it out. Clean Plates offers professional restaurant reviews and a series of email newsletters with a healthy eating focus. The app allows users to search nearby or by neighborhood to find restaurants (think Yelp’s app but with more advanced filtering options and only professional reviews).
From a development perspective it was an interesting project in one way in particular: it was a brand new re-write of an existing app. Why re-write instead of extending the existing code base? Read on…
The old app was originally built several years ago and consisted of 475 classes and 79,889 lines of code. If that sounds like a lot of code that’s probably because it is. Because of it’s age there was no use of Storyboards and art assets were fixed in size (no Auto Layout). Combine this with poor performance, frequent crashes and heavy usage of an old un-upgradable version of RestKit and you have a perfect case for a brand new build.
The new app uses Storyboards and Auto Layout so it is compatible with the newer, larger iPhone models. It has been redesigned to be more in line with iOS 7+ style guides and even has more advanced features, including better restaurant filtering and the ability to save favorite restaurants. It is also only has 52 classes and 6,910 lines of code. With the new updates I tried to not to leave any existing users behind so it is still compatible with iOS 7.1+ devices, including hardware compatibility with the iPhone 4 and it’s shorter form factor. Finally, there are no major dependencies on third party libraries such as RestKit so future upgrades should be relatively smooth. The app is not perfect and at least one update will be needed for minor improvements but I consider everything here a big win.
After taking a two month break, Teach History Sunday is back. On Sundays I enjoy blogging about the history of technology. As my seventh entry, here are some excerpts from the 1985 Playboy interview of Steve Jobs.
The year was 1985. Steve Jobs was not yet 30, was reporting to new Apple CEO John Sculley and just came off of launching the Macintosh. The trajectory of both Apple and Jobs would change course soon as Steve Jobs would find himself fired by the company he founded. Because of this critical period of time it is particularly insightful to read the 1985 Playboy interview of Steve Jobs. My favorite quote is the following:
You know, Dr. Edwin Land was a troublemaker. He dropped out of Harvard and founded Polaroid. Not only was he one of the great inventors of our time but, more important, he saw the intersection of art and science and business and built an organization to reflect that. Polaroid did that for some years, but eventually Dr. Land, one of those brilliant troublemakers, was asked to leave his own company—which is one of the dumbest things I’ve ever heard of. So Land, at 75, went off to spend the remainder of his life doing pure science, trying to crack the code of color vision. The man is a national treasure. I don’t understand why people like that can’t be held up as models: This is the most incredible thing to be—not an astronaut, not a football player—but this.
Steve Jobs was very prescient of recognizing the coming Internet revolution even back in 1985 as expressed in this quote:
The most compelling reason for most people to buy a computer for the home will be to link it into a nationwide communications network. We’re just in the beginning stages of what will be a truly remarkable breakthrough for most people—as remarkable as the telephone.
Jobs wasn’t right about everything though. His view that IBM would crush the clone makers had it backwards – it was actually IBM that would get beat:
A lot of people thought we were nuts for not being IBM-compatible, for not living under IBM’s umbrella. There were two key reasons we chose to bet our company on not doing that: The first was that we thought—and I think as history is unfolding, we’re being proved correct—that IBM would fold its umbrella on the companies making compatible computers and absolutely crush them.
When I first started messing around with WordPress many years ago it was simply known as a powerful blogging platform. Today, WordPress is a highly configurable content management system that can handle almost any type of web based platform (though not necessarily the best choice for everything!). One of the best aspects of WordPress is the unbelievable number and variety of plugins. For a client project I was tasked with build a custom Content Management System (CMS) utilizing the WordPress plugin Pods.
Pods utilizes the existing WordPress admin interface and supporting MySQL database to allow for the creation and management of custom objects. Objects can be very complex in nature and can take the form of many fields with customizable data structures. Complex relationships can also be defined between objects, such as many-to-many. Pods can also reinforce simple object creation and editing validation, such as required fields.
In general I like Pods but I did find a few negatives. First, performance can be rather slow so make sure you have a respectable WordPress hosting provider. Second, object customization is not always straight forward and some of the settings can be rather arcane and without much in the way of documentation. Third, I found a number of bugs such as cases where objects were not updating properly and the data export / import process plain broke. Finally, the underlying database objects created by Pods is somewhat non-standard and not exactly how you would personally build a well designed normalized database.
One final thing to note: development on a WordPress JSON restful APIs has been ongoing for several years and is set to become a default component soon. Leveraging upon this work, there is a Pods JSON API plugin. I made an attempt to configure the Pods JSON API plugin but I had several issues. Couple this with the fact that the Pods database structure is not ideal at all for fast queries that are needed to support an efficient API and I decided to handle my API by leveraging the Slim PHP Micro Framework.
In the end, I think Pods is an interesting choice for those wishing to leverage their existing WordPress infrastructure and expertise to build a highly customizable and powerful content management system. With it’s bugs and quirks, however, be prepared to spend at least a minimal amount of time getting setup and running.
As an independent software consultant I get contacted by companies and individuals from all walks of life looking for technical help. Everyone has their own skills and experiences and thus different methods for evaluating candidates. If you are looking to hire a consultant, follow these steps and you are sure to land your dream consultant from Hell. All of these are based on actual experiences.
Upon first contact, fail to address the consultant by name, introduce yourself or explain your needs in any way. Bonus points for requesting an in person meeting at your office to begin discussions.
Ask the consultant to sign an NDA before even discussing the basics of the project
Have no budget and be unable to provide one when asked
Ask the consultant to take a “coding test” that is actual code that you want to use for your production website. Clarify that it should only take an hour so it’s “no big deal.”
Meet your consultant in person for a requirements discussion without a laptop or writing materials. Ask to borrow a pen and paper.
Provide requirements specifications on wrinkled up notebook paper that you pulled from your pocket. Bonus points for offering to scan the papers.
Describe yourself as “brilliant” without a whiff of sarcasm
Heavy usage of the following terms: “paradigm”, “disrupt”, “billion dollar idea”, ”the next Facebook”
Trash multiple consultants that you worked with in the past. Bonus points for trashing a consultant that you are still currently working with but are looking to replace.
In the work contract’s indemnification clause ask the consultant to protect you against any and all ill consequences of your business, related to the consultant’s work or not
I recently had to build an API for a client. The client is a content based business that prefers to utilize WordPress related technologies whenever possible. Since WordPress is built on top of PHP and I think it’s a good idea to limit the number of disparate technologies in any tech stack, I decided to stick to PHP solutions for the API development. After researching several different PHP micro frameworks I chose Slim.
So far my experiences with Slim have been great. It is easy to install and configure and performance is excellent. To get started, install PHP, install Composer, create a Composer config file and then run the Composer install command. This will create a directory structure with the main definition file index.php. This file is where you define your URLs and include external files such as the definition for your database connection and code relevant for specific URLs. This structure should be familiar to anyone who has used modern web development frameworks such as Rails or Django but I would like to stress how unbelievably easy it is to get up and running on Slim.
To finish your Slim configuration you will need to configure your web server of choice to work with Slim. I chose nginx as it seems best suited for an API application but Apache is also a popular choice.
Slim is a great choice for PHP developers that want a super simple and lightweight framework to host an API.