Monday, November 28, 2011

You are the 1%!

According to Wolfram Alpha, the average US household income is $43,460/year. Global Rich List indicates this income is in the top 2.17% of the world's richest people. Anyone making over $50,000/year is quite literally part of the top 1% worldwide.

I agree that corruption in corporations and government has resulted in an unfair distribution of wealth here in the United States, but it still seems pretty self-centered not to consider that much of the rest of the world is suffering true poverty.

We just had a Thanksgiving holiday where we gave thanks for what we have, followed by Black Friday where shoppers clamor to buy more. As we enter the Christmas season lets remember that there are some things every person should have, like clean drinking water, food in their stomach and a roof over their head.

Here's a list of some non-profit organizations that can help make this happen with your help:

  • Toys for Tots - deliver, through a new toy at Christmas, a message of hope to less fortunate youngsters
  • charity: water - bringing clean and safe drinking water to people in developing nations
  • Heifer International (giving available via Heifer Foundation)- gives out gifts of livestock, seeds and trees and extensive training to those in need
Personally, I'm making a sustainable donation to the Heifer Foundation General Endowment in the name of my niece and nephew so they can be part of helping to end hunger by giving people the means to feed themselves.

Friday, November 11, 2011

5 Steps to the Six Figure Developer

What makes someone a six figure developer? Of course you need to have skills, but beyond the technical what can you do to become a rock star?

5. Attending user group and conferences sets you apart. The majority of developers aren't willing to invest their free time in their career. The more you attend user group meetings and regional conferences the more you'll find the same people and get to know each other. By surrounding yourself with other developers who are passionate about their craft and excited about new technologies you'll find yourself rising to a new level.

4. Blogging is a great resume. Anyone can list a bunch of companies and dates on a document, but years of blog posts showing technologies you've tried, techniques you've developed and solutions you've found are worth their weight in gold. Don't over think it. If you find a solution to a problem, blog it. So what if someone else posted the same solution. Their post might not be there in six months or yours might come up in a search theirs didn't. If it has value to you then it will probably be of value to someone else.

3. Speakers are given respect. As soon as you stand up in front of a group and present a topic you're given a tremendous amount of respect as an authority. Not only are you showing confidence in yourself but you're able to communicate ideas and teach others. Speaking isn't easy. It takes a lot of preparation and practice. Make sure to run through your presentation in front of a mirror and for family/friends before giving it in public. Be careful with live demos, because even the most experienced presenter can get tripped up during a demo.

2. Getting published shows off skills. Whether you write an article for a magazine, create an open source solution or develop a mobile app on the market place, having published and publicly visible work shows you can get the job done. Many developers have side projects that they've been "working on", but the best ones have finished products available to the public or articles showcasing their experience.

1. If you don't know your own value, who will? Confidence is key and it's crucial to recognize your strengths, showcase them and be willing to promote yourself. If you're a modest person and uncomfortable bragging, just couple a strength with something you're trying to improve. For example, "I have over ten years of experience developing websites for large corporations, but I haven't had an opportunity to work with some of the newer standard yet and am looking forward to using them soon." This not only shows your strengths and talent, but also conveys that you recognize areas of weakness and work to improve them.

Thursday, November 10, 2011

Occupy Nashville First Impressions

Occupy Nashville hasn't had a ton of media coverage like some of the other cities, and even if it was you really can't be sure you're getting the full picture without seeing it for yourself, so I drove downtown this afternoon to see what it's all about.

The last big story I saw was from last month when Gov. Bill Haslam enacted a new curfew and sent the police in at 3am that very night to arrest the protesters. The night court commissioner surprised police by refusing to sign the warrants for arrest. Since then, a federal judge has ruled that the state could not enforce the new curfew and Haslam has asked to drop the charges.

So where does this leave the protest? When I drove up I saw many tents set up, but few people. By the time I got parked an made my way to Legislative Plaza, I saw a small group with signs posing for photos. One of the protesters who was not in the group informed me that they were on their way to picket bank offices and excitedly explained that yesterday they forced Bank of America to close down.

Rather than walk around a mostly empty camp I followed the group and caught up with them as they marched in front of the Regions Bank building chanting, "Hey hey, ho ho, corporate greed has got to go." It's not every day you see a protest so I snapped some photos. I guess I just figured they would ignore me or possibly pose since protests thrive on attention, however I did not expect the stares of suspicion and one college age protester to stand in front of me with his camera phone taking my photo.

I had my photos and, as no police were showing up, I didn't expect anything to happen worth shooting so I put my camera away and followed them as they marched around the corner. One of the protestors had a laptop rigged in a harness with a webcam and cell phone. I can only assume he was broadcasting a live stream of the protest and he kept reminding everyone that they needed to stay on the sidewalk. While I stood by and watched the picketing he walked over and pointed the laptop rig in my direction. I thought this might be where he introduced himself, shared some information about the cause, or started asking me questions, but after a moment he turned and went back to the group.

In fact, during my entire time watching the protest nobody said a thing to me or gave me a second glance unless it was one of suspicion. Between this and the fact that many of the protesters were wearing bandannas over their faces I felt very little kinship or solidarity with a group I thought would share many of my views. I agree with most of the points made by the occupy Wall Street movement and would most likely be very sympathetic to the cause of occupy Nashville...if I were able to figure out exactly what that cause was. What is this group demanding? I heard a lot of complaints about corporate greed and bailouts, but what do they expect our local government do about it? I don't often agree with the mainstream media, but it does seem that the "occupy" movement lacks a coherent message when you can spend thirty minutes watching them and still don't know what they want.

Please, if you are involved in this movement, take this opportunity to comment and enlighten me. If you are afraid to reveal your identity to the public then send me a private email and I'll amend this post with your response. I certainly don't want to take away from your efforts and I applaud those who are willing to put themselves on the line for what they believe. We just need a bit more clarification or else all we'll see is a bunch of angsty college students wearing bandannas, carrying skateboards and flags, chanting rhymes about how unfair things are.

Tuesday, November 8, 2011

Senior Developer Training on a Budget

So you've been in the business for over ten years and the technologies continue to change. Now everyone is talking about HTML5 and JavaScript isn't just a way to validate data or show dialog boxes. You're expected to use CSS to style your website instead of those trusty tables and this stuff is complicated. You could probably go to a local user group meeting or a conference to see a one hour presentation on the topic, but lets face it, you're not going to become a web ninja in an hour. What you need is a college level class that will take you from intro to advanced.
I'm sure I'm not the only one who's felt this way. Software developers have to be self taught, to some extent, but many things can only be learned through experience or taught by someone who has that experience. This got me thinking that maybe we need an opportunity for continued education that's more affordable than auditing a college class and taught by someone who actually does it for a living.

We're still working on sponsorship to pay for the laptops, lining up professors and scheduling the facility, but if all goes we may be holding the first classes in January 2012. What topics/technologies would you like to attend?

Friday, October 21, 2011

Knockout.js, AmplifyJS, FubuMVC and RavenDB

Working on a project for Street Theatre Company at Nashville Give Camp with Chris MeadowsJim Cowart and Alex Robson. I get to play with lots of nifty frameworks. We're using Knockout.js to bind the html view to the JavaScript object model. The AmplifyJS publish and subscribe (Pub/Sub) library allows us to wire up client-side model events to the Request layer. FubuMVC is a front controller pattern that we're using to serve up the model through RESTful endpoints.

Alex was the primary resource for data access and spent many hours working with RavenDB and FubuMVC. "Raven was huge", Alex said. "It made storage trivial. I loved how Fubu enabled us to build something that was test-able. I also think that Amplify and KO made it possible to deliver a UI that the customer (and a few devs) liked." We did encounter problems with FubuMVC handling REST and AmplifyJS receiving 500 response codes, but overall it worked well.

Of course, there was more to this project than technology. Jaime Janiszewski and Cathy Street from Street Theatre Company made themselves available all weekend and did a great job at working with us on what features were most important to them and could be accomplished during the weekend. "I was delighted with how easy it was to talk through things with Cathy and Jaime and would honestly request the opportunity to do more work for them in the future if given the chance," said Alex. Jim commented, "I loved interacting with a knowledgeable, appreciative and exciting end user."
"I loved GiveCamp, it was a great experience and we learned so much through the experience that we can't wait until the next one."
-Alex Robson

In the end, Give Camp was a great success. The charities got some great websites and the developers/designers had a blast. Many thanks to the organizers and sponsors who made it possible.


Monday, September 19, 2011

Board and Card Games on the Go

Technology is great, but I'm a huge fan of old fashioned card and board games. I'm often invited to gaming pot lucks and meetup groups and always seem to bring an arm load of games so we'll have plenty of choices. Unfortunately, lugging around boxes of board games is a pain so I always ended leaving something behind, often the very game someone was looking forward to playing.

Recently I noticed the contents of most of the games were much smaller than the boxes they came in so I came up with a system that allows me to take a virtual library of board and card games pretty much anywhere.

Here's a photo of just some of the games I've included:

...and here are those same games (plus many more) condensed into a few bins and bags:


It doesn't take a rocket surgeon to figure out you can put cards and board game pieces into a few boxes to save space, but the types of containers make a world of difference.

Cards
Cards were probably the easiest part once I found the right containers. Plano Molding Company makes a wide variety of plastic containers, but one in particular seems to be just about perfect for card games. It's model number is 5325 and is described as a "Jumbo Card case 11.25 x 8.5 x 3.75". I tried model 5305, but while it's a perfect fit for euro cards such as Dominion, once I sleeved them they no longer fit. This jumbo card case gives a bit more room to allow for card sleeves as well as a wide range of card sizes.
This box contains the basic Dominion set plus the Intrigue and Prosperity expansions with room to spare:

For smaller decks of cards I store them sideways so height isn't an issue and they are all easily accessible:


Pieces
As you can see from the photo above, I make use of extra space by bagging game pieces and placing them along side the cards. I've made sure to store all the pieces and cards for a game in the same box to avoid confusion. If you have games that did not come with small bags for the pieces, most stores with a craft section sell small zip-lock baggies that are perfect for dice and wooden markers. Baggies also work well for small decks as they keep the cards together without damaging them like rubber bands.


Boards
If you've tried this before you're probably saying that this is all fine for cards and small pieces, but many games have big boards that wont fit in these boxes. I measured my boards and most modern games are in packages no larger than 11.5" x 15". My original idea was to pick up an artwork portfolio (zippered folder) as it would be perfect for carrying around a bunch of cardboard, however I had trouble finding one the right size at a decent price. I soon realized that the size of my boards were about the same as a notebook computer. I ended up using an old laptop bag to carry my boards as the computer compartment is not only the perfect size, but it's padded for protection and has a strap to hold everything in place. The flat sections gave me a perfect place to stash rules where they won't get damaged.

I also had a spare netbook bag which was the perfect size for some of the smaller boards in the event that they wont all fit in the big bag. I still think a portfolio might be a better solution, so if you can find one for cheap that will fit A3 paper (11.69" × 16.54") let me know.

Eliminating Overlap (aka. Currency)
There's one final area where you can eliminate components from various games and end up with a better play experience and that's money. Some games call it gold and in others they're just called chips, but many games use some sort of currency and keeping track of a bunch of paper money isn't my idea of fun. My solution is a set of mini poker chips from MeepleSource. They're very reasonably priced and will provide you with enough chips and denominations that you should be able to leave the paper money at home. You can also purchase additional chips in various colors to customize your set. As you can see, I purchased many different color chips with the denominations printed on them so everyone knows what they're worth.

Note: Some games require that you keep your resources secret and provide paper currency with the same backing on all denominations. In this case poker chips will not work since your opponents will be able to tell how much you have.

Conclusion
I hope some of this overview of my board and card game packing system has been helpful. I welcome any questions, comments or suggestions you might have.

Tuesday, March 8, 2011

Code PaLOUsa Speaking Experience

I ended up driving up to Louisville on Saturday morning, giving my talk on HTML5 for Mobile Development, catching a bit of Open Spaces, then heading back to Nashville. It was a lot of time on the road that I used to listen to podcasts such as Scott Hanselman's "Hanselminutes" and I felt surprisingly alert and ready to present for having been on the road all morning.

Unfortunately, my lack of experience speaking at regional conferences became obvious as I blew through my slides and demos far faster than I anticipated. Most of my experience has been with speaking to user groups and development teams, and I believe those environments tend to encourage discussion and questions throughout the session. Even though the room wasn't any larger than our regular user group meetings, it was soon clear that the attendees were strictly there to observe.

I did receive a number of positive comments about my presentation and hopefully everyone walked away having learned something about HTML5 and how to implement it's features. Next time, though, I'll be prepared with more content to fill a full session without audience participation. Lesson learned.

The slides for this presentation can be found at SlideShare.