Thursday, January 19, 2012

2011 Was a Wonderful Year

Hello! If you’re reading this, I hope you find it encouraging to see all that one person can accomplish in a year. I wrote this for me: it’s important for goal-oriented people to take time during important intervals to see how they measured up to their goals. However, if you are reading this and don’t really have any plans for yourself next year, I hope that you would find this inspiring as anyone can just as easily accomplish what I did in just 12-month's time.

2011 was great year. There were a lot of great things I was able to do and a lot of things I did. In fact, looking back and quantifying it, I can’t believe how much I did in areas of relationships, health, personal development, business, and finances.

First of all, it’s important to know that this year was an uphill climb, but a great one. I hit 40 this year, and that was not a great milestone for me. I did not end where I wanted to be at 40, and I definitely did not want my kids to be separated by 1000 miles. But you take life as it is, not as you want it to be. I have made some severe wrong turns in my life, but have been working harder each year to become the best that I can be and to make a difference in the life of my kids and in the world at large.

Time with My Wonderful Boys
Despite the distance, my priority in life is my kids, so last year I did everything I knew to make life as wonderful as I could for them and be a big part of their life. In fact, despite the fact that Joseph, my 12-year old lives near Chattanooga, Tennessee, and Tristan, 9, and Evan, 6, live near Albany, New York, I made sure I saw all of them at least 3 days a month. Additionally, I brought all of them together 3 times this year.

I spent almost all my time off traveling to them or spending time with them. Over the course of the year, I spent 100 days with my boys, which is something for which I am immensely thankful.

And since I moved from the Chattanooga area to New York in July, I was able to spend time with each of my boys one on one. Until then, my traveling to New York was all based on time that I would be with 2 or all 3 of them at a time. Even still, it requires a lot of travel to see all of them: over 20,000 miles this year alone!

And I sent them all letters every week (except for weeks I was with them the entire week and such). Additionally, we all went to Disney together with Tristan and Evan’s mother at the end of June.

Tristan and Evan and I went on the Polar Express with their mother.

What’s more, I taught them all several firsts: Joseph wrote his first program and made his first Arduino project, played his first racquetball game, and flied solo on a commercial flight for the first time.

Tristan also played racquetball and wrote a program, as well as roller skated and skied for the first time.

Evan too learned roller skating for the first time was well as racquetball, and he soldered his first connection.

But the best part of all of it is just the countless hours we sat down and played with LEGOs and laughed and played.

My Health
But getting to that point was quite tumultuous. I found through all the turmoil in my life many places where my thinking was wrong. Back then even when I was with my boys, I wasn’t giving them the priority and focus they deserved. Being able to put so much time and effort toward the boys helped me better align my priorities. Besides doing that, I also realized I wasn’t putting my health as a key priority. That has changed.

I joined the local Y and have been able to have many wonderful bike rides and runs in the beautiful city of Glens Falls on my lunch break. In fact, I surpassed my goals for both biking and running. I biked over 500 miles this year and ran over 350 miles, a goal I had to increase because I had already surpassed it earlier in the year.

Additionally, the last quarter of the year I was lifting weights twice a week. As much as I realize this number is ridiculous as it means nothing, I still like saying it: I lifted over 600,000 pounds this year!

Unfortunately, I did not meet my weight goal. I was striving to make 180 this year, but I am a stress eater, sweets in particular, and this year was stressful. I ended the year at 193. I have plans already in place to get to my ideal weight at an appropriate pace this year.

Other Activities
But I also had a lot of fun this year. I tried a lot of things I hadn’t done before and dove deeper into things I had.

I joined the company bowling team and received recognition for bowling both a 150 game and a 400 series. I know that is not that impressive, but it was great for my skill level. Additionally, our team won the entire season! I know I wasn’t the best bowler, but I believe I improved a great deal, so it was nice that I at least was a steady force that helped while our strong bowlers brought us to victory.

I also tried indoor rock climbing and ballroom dancing, which I enjoyed but could not continue as I moved. I especially enjoyed the dancing and can’t wait to tango more!

I also was able to get back into racquetball in the last 2 months of the year and played 20 games.

Additionally, I did some swimming with the boys, a rafting trip on the Ocoee, roller blading, skiing, miniature golf, continuing in Toastmasters, and learning the guitar.

Finally I was able to participate in Rotary and contribute to the community. I applied for membership and was inducted January of this year.

Personal Development
I think where I did the most and had some great fun was in personal development. Last year I read 74 books, over 300 articles and blog posts, watched scores of training videos, and delivered 32 public addresses. In all, I had over 780 learning hours last year.

In that time I spent time learning and building projects with Arduino, electronics, XBee/ZigBee, and Final Cut Pro. I learned various technologies by writing over 35 Processing sketches including several for the XBox Kinect, over 45 Arduino sketches, and over 60 iOS apps including one that I put in the App Store and 2 built as prototypes for a fortune 250 company.

I also learned jQuery, SQLite.

This year was also an incredible year from a work perspective. I was asked to join the Innovation Center at Unum in a exclusive role at 50% allocation to provide consulting on mobile technology. In fact, my presentations on the current state of mobile have been presented to groups in several states, to hundreds of people, to various levels of management.

For my work in the Innovation Center, I was able to work events and visit two states, bringing the total number of states to which I have traveled to 43.

I also created 2 key iOS prototypes and was instrumental in securing the iOS Enterprise development setup for the company.

Finally, I finished my work assisting my father’s online business, Bishop Art Works, for his world-renowned artwork. Few artists can say that their art hangs in houses in countries the world over, and I am proud to be able to help him with his marketing and online sales efforts.

Everything Else
Additionally I was able to get a photo shoot together and update my image and my website, corporate website, Linked In profile, personal and corporate Twitter accounts, and blog.

I was able to attend a Salesforce training event in New York City (my first real visit to the city), provide a keynote for Unum, and enjoy several fun and exciting events in downtown Glens Falls. Additionally, I was able to make it back to my hometown in Yakima, Washington for the first time in 20 years.

And I won a few awards of which I’m quite proud. In addition to the first place bowling award, I received the “Exceptional New Member” award in Toastmasters and received an OPTIM award at Unum for my work on iOS prototypes in my spare time.

But I also did other things of which I was proud. I started sending out birthday cards to all my close friends and family, something I always relied on my spouse for, but finally needed to do myself. I also reached my 10 year anniversary at Unum, and, as stated previously, visited two other states that I hadn’t visited yet, both for work: Maine and Massachusetts.

One other huge thing: I paid of all my non-mortgage debt below 5 digits, down under $10,000 with a mini emergency fund in place. It’s a wonderful milestone that is so close to my 2013 goal of having no non-mortgage debt.

This year, I want to make the most of the time that I am given. I want to better myself and my community. I want to make a difference. I want to provide a stronger, more encouraging presence to my boys. I want to be closer to all that I should be.

I want to read a ton and learn a lot. I want to spend loads of time with my boys and grow my relationships. I always leave my plans flexible and solidify them as the year goes on, but there are things I want to do this year and have already done.

And it’s already been a great year. In just 20 days, I have already skied in Killington, Vermont as well as in my home of Glens Falls and have plans to go to Okemo or Sunappe at the end of the month (for the record, the run I took in the pic was Cascade. It was a blast). In fact, I’ve already done over 55 runs this year.

And I was inducted into Rotary. I’ve also been invited to two 5K runs and hope to also do the Tour de Cure this year.

I made it to Times Square for the first time ever and attended an exclusive Apple developer event there held in only 9 cities the world over. In fact, my learning hours over all including the 10 for that event have already topped 40 for the year; I'm just 3 chapters away from finishing my 5th book this year.

I’m wanting to dig deeper into iOS, but also look into programming for Android as well as programming for Bluetooth. I’ve dug deeply into Core Data and plan to look into other similar feature sets.

I hope to visit Connecticut and Rhode Island to bring my state count to 45, and visit Ontario and Quebec to have visited all the lower Canadian provinces. I hope to also make it back to Yakima this year.

Lastly, I want to focus on guitar and meditation and get myself down to 180 pounds.

But most importantly, I want to make a difference in this world, and do all I can to help my boys feel fulfilled and do the same. In the end, that is my true life goal.

Wednesday, November 2, 2011

O'Reilly's 2011 best technical books from someone who reads a book a week

I've enjoyed a large collection of O'Reilly books. In fact I've been reading on average one book a week from O'Reilly and others and have gone through many fantastic books, covering topics like Arduino, iOS, TCP-IP/HTTP, and the goings on at Apple and Google

So, what are the best ones? Well, that is such a subjective question. What is of interest to one may not be of interest to others; the learning style of one may differ from others.

But I will go over my personal 3 favorite that I have read so far this year and why. For some it may be the writing, for some perhaps the material or topic, and for some it may simply be the presentation.

Here they are starting with #3:

Revolution In the Valley
A fantastic book on what it was like to build the Mac by one of the main developers of the Mac, Andy HertzFeld. The book is a collection of stories in chronological order dealing with all the aspects of making the Macintosh from the point of view of the development team.

The prose is enjoyable, the pace is perfect, and the subject matter engaging. If you like Apple, computers, history, or just want a deeper understanding of one of the major technological shifts in our lifetime, this is the book for you.

The #2 book...

iOS Sensor Apps with Arduino
Alasdair Allan has several books out on iOS and also some videos. All have been high quality books, such as Learning iPhone Programming. His pacing is superb, the content detailed, and his examples spot on.

But this new book brought me into the world of the Internet of Things and into the playland of Arduino. It's amazing to write an iOS program that interfaces with a small computer on a chip that can sense distance and that can be caused to activate LED's. This of course is simply a jumping off point as Arduino is unlimited in its application.

Additionally, Al's new book iOS 5 Sensor Programming will be coming out next year encompassing his four sensor books (including Basic iOS Sensors, Augmented Reality in iOS, and Geolocation in iOS) with additional material.

And the #1 O'Reilly book this year:

Gamification by Design

This book took me completely by surprise. I had seen it a few times and thought it was about writing games. Instead the book delves into the psychology of games and why people are geared for games in most everything they do. It details how to write programs and processes in a way that is engaging and motivates people in the same way that games engage people and get them excited about continuing.

The biggest reason this book is #1 because of the content. This book brought me to a new, important understanding that is critical for the success of my personal vision. Reading this book was one of those "Aha!" moments were I learned something I didn't know was there and realized it was important to have in my continued success.

Everything Else
Honestly all three of these books were great and it was really hard to rank them all separately. They pretty much all tied in their own way for first place.

In addition, all these books were great and some were phenomenal. Here is a list of the books I have been reading or have read in the past 12 months from O'Reilly. They are all high-quality books.

Programming the Mobile Web
HTTP Pocket Reference
iPhone App Development: The Missing Manual
Learning iPhone Programming
The Twitter Book
The Google Way
The Facebook Marketing Guide
Graphics and Animation in iOS
Basic Sensors in iOS
Getting Started with Arduino
Using SQLite
Mac OS-X Snow Leopard: The Missing Manual
Gamification by Design
Revolution in the Valley
iOS Sensor Apps with Arduino
Arduino Cookbook
Core Network Protocols
Make: Electronics

Monday, October 31, 2011

NKC Electronics Arduino Motor Shield

Last week I was lucky enough to get the NKC Electronics Arduino Motor Shield put together correctly on my first shot. This is a big feat for me as most of my experience with a soldering iron has been in my younger years and has had more to do with melting plastic than making electronics.

However, I want to throw out a couple links here in the hopes this blog post will make it a little easier for people who come after me and have a hard time, as I did, to know exactly how to put this thing together and know what pins to use in their sketches.

The NKC Electronics Arduino Motor Shield instructions include pictures and schematics and detail everything you need to know including a basic sketch, except for one key piece: the location of the second set of pins. Instead, the NKC Electronics Arduino Motor Shield page on has this information.

I hope this saves someone time and a little frustration. Feel free to post comments to ask for help or send me a note at blog at davidsbishop dot com.

Wednesday, February 2, 2011

Is Object Oriented Programming Too Complicated?

Recently a co-worker passed on a link to me where someone was "ranting" about OOP.
"OK, so here's the deal: I've been programming for many years now. In the beginning was sequential code execution. Then, with the introduction of Windows we got event driven code execution. So far so good. Then some day some jackass thought to himself: "This is too simple, let's complicate it further and invent Object Orientation. And just as a bonus, let's get everybody to divide their code in a huge amount of layers so that noone will be able to get the full view of everything."

I had to respond, wishing it could have been to the original author of the post. The rest is my response sprinkled with slides from an old PowerPoint presentation I used to demonstrate my points. Many of these slides were demonstrating the code behind the Locura Media Server: the best-selling media server for the PSP and other platforms before the iPhone was ever heard of.
That is so not the concept here. The concept is so that you are system/interface/technology agnostic as best as you can be. It keeps you from having to gut out a system as technology changes.

Object Oriented - Technology Agnostic
For instance, you can write a dll to write exceptions to a file. Then more programs use that dll calling the FileExceptionWriter. Then someone wants to write to a database. Uh-oh. This was “object-oriented” but not technology agnostic as it should have been. Plumbing will have to be changed to use the new DatabaseExceptionWriter.

Instead, the code should have either an IExceptionWriter or ExceptionWriterBase (abstract) that are what are declared. Then the system can have a FileExceptionWriter, DatabaseExceptionWriter, CloudExceptionWriter, etc. More can be added as time goes on and choosing which one is used can be easily changed without changing existing plumbing as the code should all be referencing an IExceptionWriter or ExceptionWriterBase.

If you look at [in-house system] you will see the exception handling is setup to be completely defined in the config. It logs exceptions to e-mail, files, the database, etc. all depending on what the config says (which, of course, must correspond with pre-defined objects), some defined as fallbacks to the others. The config even defines the format (HTML/Plain Text) with the correct formatting object created appropriately.
“I have a task for you: Can anyone give me ONE example where layered code has proved to be a major advantage?”

The first easy answer is that with Object-Oriented programming you can many times define a lot of shared functionality in a base class that would otherwise be duplicated in inherited classes.

Object Oriented Base
And secondly, when I wrote my media server with custom extensions for building ISAPI filters “on the fly”, I made an extensible base object. When you wanted to create a custom extension, you created a new Dll, inherited off the base object and put the reflection data in the config file. No original plumbing needed to change.

Object Oriented Dynamic Invocation
So when a client machine requested an RSS feed or a M3U playlist dynamically, a media extension dll took care of that. Later on, someone requested that zip files could be created on the fly to zip folders and send them. I found a freeware zipfile dll and 15 lines of code later without changing any existing plumbing new dynamic zip file creation was in the media server.

Object Oriented Dynamic Invocation
I think that is the biggest thing people miss: technically, when you change the existing plumbing you have to regression test as you could be introducing new bugs. Unfortunately that doesn't always happen. But if you write code that doesn't change the existing system, you simply test the additions.

As to the rant, in the end I have to agree with the commenter Oakman: "The OP wasn't a rant, it was a confession."

Friday, January 28, 2011

It's Windows Vista, Stupid

Windows Vista
Microsoft was touting just a few months ago how much money they were making with Windows 7. It was record breaking revenue. Everyone was happy.

But now, Windows sales are down 29%. What gives?

It's Windows Vista, Stupid. Windows XP came out 9 and a half years ago. Many large corporations and businesses were still on it. There were only two choices for those that didn't like Windows Vista: stay on a nine year-old operating system, or upgrade to Windows 7. I'm not saying anything disparaging about Windows 7 here. I'm simply saying you are going to have record sales, when 90% of the world runs your OS and no one wanted your last iteration. In the world of computers, running a 9-year old OS is like driving a Model-T.

And, unfortunately, people aren't going to see the truth until it's too late: Microsoft is not heading in the greatest direction. They have amazing tools for developers and killer back-end software, but they are slow on innovation*. They've dropped to 3% global market share on smartphones and are "bragging" about selling 2 million licenses to their new phone OS. The problem is this doesn't say how many phones end users have purchased or activated. Even if it was sold to end users, both Apple and Android activate 2 million a week.

It wasn't that long ago that Jason Fried did a piece on Steve Ballmer pointing to the lack of vision at Microsoft.

Microsoft is undoubtedly full of very smart people, but as long as they are being run by Steve Ballmer, they’re going to be shackled by his ineptitude.

I think if you look at the lack of innovation at Microsoft, the major misses such as with Tablets and smartphones, it's hard to argue Jason's point.

* I seriously have to put a Kinect disclaimer here. Microsoft really kicked ass on this one. Fantastic job, Microsoft.

Wednesday, January 26, 2011

Rejection Therapy, iPhone Programming, and Irrationality

Learn iPhone Programming Upside of Irrationality

I have to say, I am quite pleased with the results so far of a recent "experiment". After reading about Rejection Therapy* and having similar inspiration from books such as The 4-Hour Work Week I decided to start contacting people that I normally wouldn't.

The first was for Alasdair Allan (evidently he likes to be called "Al"), the author of Learn iPhone Programming, a thorough book that tells you everything from setting up a store, to programming, to marketing. And the programming isn't just instructional: it's hands on, a-to-z coding, clearly explained, and diving into everything including sensors, etc.

I asked Al if there was anything I should remember to do before I submitted my app. He responded within a day and told me marketing was the thing most people forget.

The second was Dan Ariely, Author of Predictably Irrational and The Upside of Irrationality. His books provide extensive insights on human behavior with experiments he conducts himself or has others conduct on his behalf. He came to a conclusion on one experiment about people's rationale for their actions. I had another theory, which I e-mailed to Dan last night. He responded this morning with a rationale for his position.

All in all, I would say 100% return on time investment is quite good. The response has been quite empowering. I may have a harder time being rejected than I thought, not that I'm complaining.

* The concept with Rejection Therapy is to try to push yourself out of your comfort zone to the point you get rejected at least once a day. The person who came up with the idea actually says it's harder than you think; most of the time, it is only our fear of rejection that holds us back.

Tuesday, January 25, 2011

Books and Books and Books and Books

Book List

Well, I've had a major change of focus lately. Originally I had big plans to change the look and feel of about 5 blogs, several properties, and various other ventures. But my voracious appetite for reading on personal development and business acumen lead me down a path of focus and cleansing. In fact in my most recent read, The 4-Hour Work Week by Tim Ferriss, really showed the value of focus and minimalism.

So now I have changed focus and am now honed in on my business and providing direction and marketing advice to my parent's art business. The end of 2010 really helped me clean up the projects I have and even narrow down some big plans I had for my personal site.

But one of the nice things I have wanted to do as a fun "take a break" project is add my book list to my personal site. So, here it is, on my personal page with links to books, e-books, and audio books. This includes books from the greats like Zig Ziglar and Jack Welch. It includes technical books on C# and iPhone development. It includes books on personal development and business saavy.

If you want to take a look at some of the best books on making yourself more productive, you should check out this list. I hope you will find these books as useful as I have.