Saturday, April 13, 2013

My Bitcoin Obsession

I didn't sign up to be the Nashville Bitcoin wacko. But here I am.

My journey started a couple months ago, and who knows where it will end. I've spent so much time researching Bitcoin, you'd be completely justified in calling it an obsession. It's probably safe to say that 80% of my tweets lately have been about this crypto currency. I've even taken a position with my business to support it.

So what's the big deal?

Well, if you read my last post, you'll know I have some strong opinions about our central banking system. Those opinions line up with men like Andrew Jackson. Debt, fractional reserve lending, fiat currency, and central banking create a petri dish for greed and power spun out of control.

Can Bitcoin help?

Maybe.

That's the big question. The most intelligent arguments against Bitcoin I've seen so far have more to do with Keynesian vs. Austrian economics than with the actual protocol. One argues currencies have to be controlled, deflation will never work, and debt is a good thing. The other wants to be free from central bankers, encourage savings, and invest from those savings.

But how can this be a currency? It's so volatile!

The recent loss of over 80% in value ($266 down to as low as $50) would certainly suggest it's failing in that category. That said, it would also be silly to criticize a toddler for not being able to drive a stick shift. Many disruptive technologies (email, blogging, mp3s, etc) took ten years to obtain widespread adoption.

This technology is barely 4 years old. Where will it be in 2019?

While the market cap remains below trillions of dollars, it will probably remain volatile. It might even stay volatile after that. Only time will tell. My hunch is fractions of a coin will have great value because they meet real needs not currently met by our financial tools. One of the current hurdles to overcome is the reliance on MtGox (the primary exchange) which (among many other Bitcoin sites) has been getting completely hammered by DDoS attacks. Their trade engine lags, people panic and sell, the price drops, and the hackers buy up cheap coins.

I'm constantly reading through the forums, the subreddit, and listening in IRC (#bitcoin). My friends and family are sending me every article they find about Bitcoin. Chances are I've already read them, but I do enjoy a refresher. Please, continue to send them to me (yes, the negative ones too). I really want to have intelligent discussions about this thing.

Now let me give you some advice.

If you're just interested in making a quick buck, please, leave Bitcoin alone. Your involvement will only increase volatility and delay adoption. If you understand how money works, open source technology, p2p networks, and encryption, I'd love to know why you haven't bought some already.

If you think the whole thing is interesting and you'd like to put in a little money you're willing to lose, go ahead and buy a portion of a coin for $50 or so (you don't have to buy a "whole" coin, there are 100,000,000 divisions within each coin). Percentage wise, if there's even a slight chance it gets adopted globally you could not only do well, but you could help with that adoption.

(Here's the obvious "don't take investment advice from anyone" section. Buy something because you want to, not because someone else convinces you it's a good idea.)

So how do you buy some Bitcoin?

You can start with howdoyoubuybitcoins.com. I think Coinbase (connect directly to your bank account) will be the easiest to use, once they increase their daily buy limits. I've also used Bitfloor (deposit cash at a Bank of America via LocalTill), Bitinstant (send cash via Money Gram through ZipZap) and MtGox (send from Dwolla connected directly to your bank account).

Not sure where to get started?

First set up an online wallet at blockchain.info. You now have your own Bitcoin address!

Though I started with the Dwolla -> MtGox method, their system is currently hopelessly backlogged with new account signup verifications. They are the primary exchange (they do about 80%), one of the cheapest (only 0.6% in fees plus $0.25 from Dwolla), but they are also one of the most hated due to their inability to handle DDoS attacks and API lag.

My next suggestion would be to use Bitfloor. It's really easy. You just bring cash to a Bank of America branch, ask for an out of state deposit slip, fill it out with the information you get from LocalTill, and you're good to go. The fees are between 1%-4%. UPDATE: as of 4-17-2013 6pm EST, bitfloor suspended all trading and shut down their site. Their homepage says their bank account was closed.

If you want to buy when the banks are closed, use Bitinstant. You'll pay 3.99% + 0.6% (they use the MtGox api under the hood) + $3.95 ZipZap fee. When you fill out the form, select Wallmart or CVS (they are everywhere) to make your deposit (btw, this method lets you use a debit card), and have them send the coins to your blockchain.info wallet address.

You could also try the localbitcoins.com route, but I have yet to venture into that territory.

I don't know what will happen to Bitcoin.

My hunch is it won't be ignored and won't go away. If something better comes along which is easier to adopt, Bitcoin might suffer. I see that as unlikely, given the adoption it already has. The government has a FinCEN ruling on Bitcoin, so I don't think they will outlaw it (yet). I do see the network vulnerable to denial of service attacks. Many Bitcoin related sites have been attacked lately, and it appears to be getting worse.

There are a lot of risks.

There's also a potentially huge reward. And no, I'm not talking about the price per coin. I'm talking about a system completely outside of central banking control. A system that allows individuals to control their own money. A system that promotes freedom.

That's worth taking some risk. Some might say, it's worth fighting for.

Saturday, March 02, 2013

Bitcoin: DO YOU SPEAK IT???



Bitcoin is something you should learn about.

Think it's just for nerds? Keep in mind, nerds created that thing called Facebook you probably use every day. Oh, and email. And the Internet.

Getting Started


www.weusecoins.com is a a great place to start. Go ahead and click through to the Questions & Answers section and read a few of those, such as "What is a good way to concisely explain Bitcoin?" As for getting started, I installed the original Bitcoin client mentioned there, but honestly, it's probably easier to create an online wallet at blockchain.info.

Once you have a wallet, what next? Well, I actually got started by looking at some of the "free Bitcoins!" sites. They are a huge waste of time, though bitvisitor.com did actually work (I think I got 0.00008 BTC by spending 5 minutes on a website). From there, I started doing more research about Bitcoin.

The Bitcoin wikipedia page is probably a good place to start and if you want to go deeper, dig into the Bitcoin wiki. If you're really, really brave, you can venture into #bitcoin on IRC, the bitcointalk.org forums or Bitcoin on Reddit. I'm actually really impressed with the community. They are primarily developers, cryptographers, hackers, day traders, and those interested in economic theory. Understanding Bitcoin can be tricky (try explaining mining in plain English... not easy to do).

You may be thinking, "This is some silly thing for hackers, thieves and black market users and will never turn into something I need to be concerned with." Well, a Wall Street Journey search returns a couple results and a Forbes search shows 80 articles on Bitcoin. There are already some real sites accepting it as payment (Reddit and Wordpress are two notable examples.) There are also quite a few stores accepting Bitcoin. There will be more in the future.

Recent Growth


So why did I get into it? Well... partly because of this:



I started looking at it when it was $17 per BTC and as of this posting, it's up over $34 per BTC. This all happened in about a month.

Could it be a big bubble? Sure. If you look back at the history, you'll see a HUGE dip in 2011.



(See http://bitcoincharts.com/charts/ for more awesome charts)

During that time, you can make a good argument for a bubble if you take a look at Google trends for "bitcoin":


But... that's not the whole story. The whole story includes a major hack of the primary exchange, mtgox.com which caused the price to drop from $17.50 to $0.01 on June 20th, 2011. They do about 80% of all exchange transactions, so the hack really hurt trust in the entire system. (Edit: it was pointed out to me that nothing actually traded at $0.01 as the hacked transactions were rolled back by Mt. Gox)

Scary to think your money could be hacked? Sure. But it didn't even need to happen. Bitcoin is a completely distributed system. There's no reason to leave your coins on an exchange. The Bitcoin system itself is strong and (apparently) robust. It survived.

This past month, I tested things out with a small purchase of coins at around $20 per BTC. Then another larger one around $27 per BTC. Then again at $34 per BTC. I did this by first putting money in my Dwolla account (5-7 business days) and then transferring to my mtgox.com account (1 day and I had to verify the account with a photo of a government ID). Could I lose my money if the price tanks? Sure. I wouldn't put more into it than I was willing to lose. That said, if I cashed out today, I could make some nice USD. Right now, I'd rather have the BTC. In the future, you might also.

How Does Money Actually Work?


Why could you want some BTC? Well, let's start with your local bank. Let's assume you're not the average American with $15k in credit card debt. Let's assume you actually have an emergency fund "safely" tucked away in your bank account.

Guess what? It's not actually IN your bank account.

Welcome to the world of fractional reserve lending. Banks create new fiat currency with the stroke of the pen as loans are created, and they use your deposits to do it. The bank only keeps a tiny fraction of what you deposit in their vault.

But that's OK, right? You're trusting the FDIC to protect your deposit. Sure. But with Uncle Ben Bernanke buying debt at $40B a month, how long before the USD has some more serious issues? The debt is spiraling out of control and the government can't do a thing about it.

I'm not saying anything new here. A lot of people I've talked to recently dumped their investments back in 2007 and moved to precious metals. I'm happy for them and somewhat sad I didn't do the same. Having worked at Dave Ramsey's for almost 4 years, the idea of buying gold hasn't really been in my thought process. Dave continually rips on those who buy gold. If you bought it in 1980 ($850, much higher if you adjust for inflation) and sold around July of 1999 (around $250), you'd probably agree with him. Over the past 100 years, gold appears extremely volatile compared to the stock market.

Some say it only looks that way because the USD is volatile and the actual buying power of gold has been quite steady for hundreds or even thousands of years. I'm not sure about all that, but one thing I do like about BTC is that I can buy a stick of gum with it. A single Bitcoin can be divided into 100 million Satoshis. For diversifying some of my savings, I like having a completely liquid and useful format.

Another interesting thing about gold is it can be faked with Tungsten. Private key encryption can't be faked.

So where will this go? Who knows. Some in the Bitcoin forums seem to believe it will go up quite a bit more. Others thought it was way overpriced at $10. If you believe the USD is headed for hyperinflation and the debt treadmill is about to breakdown... it might not be a bad idea to look into BTC.

Bonus: Learn About Fractional Reserve Lending and the Federal Reserve System


If you're curious about how I've come to my current thoughts on the USD, the Federal Reserve, and Fractional Reserve Lending, check out some of these videos.

These ones are actually cartoons, but they are easy to understand. I first found out about them a year or two ago.
Money as Debt 1 (0:46 hours)
Money as Debt 2 (1:17 hours)
Money as Debt 3 (1:02 hours)

A new friend turned me on to a book by G. Edward Griffin so I found this:
The Creature from Jekyll Island (1:47 hours)

This next one is long and rather poor production quality. I listened to it in the background while working. I liked how much it focused on the history of money.
The Money Masters (3:29 hours)
They also did a sequel which discusses some interesting symbolism in the Wizard of Oz:
The Secret of OZ (1:57 hours)

The part I really found interesting was on the Jewish Shekel. It was the only currency allowed to be used to buy animals for required Jewish sacrifices (all other currencies had pictures of pagan gods on them). The Shekel market got cornered and exploited. That's bad. So bad, in fact, Jesus got violently opposed to it and overturned the tables of the money changers.

I also thought it was interesting how TN's own Andrew Jackson fought hard to kill the central bank in America. Someone tried to assassinate him, but failed. Some say there are connections between the assassinations of Lincoln, Garfield, and Kennedy and their opposition of the central bank. Either way, those who control the money supply have a lot of dangerous power.

In addition to these and other videos, I've been turned on to some books and other resources. Interesting stuff indeed. It could all be a bunch of alarmist hogwash. Or, it could be yet another historical example of a fiat currency eventually coming to an end.

If we are in for a change, as with every other one in history, technology will play a role. BTC may be part of the story.

Please, don't make any investment decisions based on what you've read here. Do your own research and make up your own mind.

If you have any questions, please leave a comment below, and we can start a nice discussion.


Edit 2013-03-10: To keep this post fresh, I'll be adding some links to interesting articles I'm reading about Bitcoin. Also, since the prices mentioned here will undoubtedly grow stale, here's an image of the current price:
Recent Mainstream Articles of Interest:
March 4th The Guardian: Bitcoin: more than just the currency of digital vice
March 6th Business Insider: Suddenly, Everyone's Talking About Bitcoin...
March 6th CNN Money: Why cyber currency Bitcoin is trading at an all-time high
March 7th Business Insider: The Rise Of Bitcoin Teaches A Tremendous Lesson About Global Economics
March 8th Forbes: First Bitcoin Hedge Fund Launches From Malta
March 13th Bloomberg: Bob's Daily Buzzword: 'Bitcoin'
March 14th Huffington Post: Is Bitcoin Money?
March 18th Wired: Ring of Bitcoins: Why Your Digital Wallet Belongs On Your Finger
March 19th Forbes: New Money Laundering Guidelines Are A Positive Sign For Bitcoin
March 19th The Daily Dot: Venture capitalists take a chance on the "Bitcoin revolution"
March 21st Bloomberg: Bitcoin Fever: The World's Largest Online Currency
March 21st The Wall Street Jounral: Web Money Gets Laundering Rule
March 22nd Salon: A libertarian nightmare: Bitcoin meets Big Government
March 22nd Fox Business: As Cyprus Implodes, Bitcoin Interest Explodes
March 23rd ABC News: Cyprus Crisis Boosting Unique Currency, the Bitcoin
March 24th New York Post: Coin of the Net realm
March 24th Forbes: Cyprus Goes Cashless The Hard Way
March 25th CNN Money: 'Funny money' has officially entered the real world
March 26th Washington Post: Why reports of Bitcoin’s death may have been greatly exaggerated
March 26th Life Hacker: What Is Bitcoin and What Can I Do With It?
March 26th BBC Newsnight (video): Bitcoin on BBC Newsnight
March 26th The Motley Fool: A Short Guide to Understanding Bitcoins
March 27th International Business Times: Bitcoin Digital Currency Booming In Cyprus Amid Banking Crisis, Virtual Money Surging In Popularity
March 27th CNBC: Bitcoin Bonanza: Cyprus Crisis Boosts Digital Dollars
March 28th Business Week: Bitcoin May Be the Global Economy's Last Safe Haven
March 29th Fox News: Digital 'bitcoin' currency surpasses 20 national currencies in value
March 29th Huffington Post: Does the Internet Depend on the Survival of Bitcoin?
March 30th The Spectator: How Bitcoin could destroy the state (and perhaps make me a bit of money)

EDIT: Great new articles are coming out daily and it takes up too much time for me to add them here. If you want a good list of articles as they come out, check the Bitcoin forum press section.

Other "Fringe" Articles of Interest:
March 6th Falkvinge.net: The Target Value for Bitcoin is not Some $50 or $100. It is $100,000 to $1,000,000

Friday, February 22, 2013

Humbled at Spark Nashville

Last night I had the pleasure of attending Southern Alpha's Spark Nashville event. We had some great food, drank some good beer, and heard some fun stories of early tech days in Nashville from Marcus Whitney and Nicholas Holland. In addition, there were some fun pitches for various company ideas.

My primary reason for attending was to support my friends Jacques Woodcock and Jason Myers and hear their pitch for Sucratrend (which won the viewer's choice award, btw. I like to think my tweets and RTs helped).

Earlier in the day, when I mentioned I was going, I was amused at Jacques' reply:

Jacques (and those who have read my blog and my thoughts on business and profit), knows that I'm not a huge fan of VC money when it comes to "startups". The main reason being, I like what I'm familiar with, and I've only ever bootstrapped. I'm also not a fan of debt (having worked for Dave Ramsey for almost four years). Giving away equity may not be the same thing as debt, but on the other hand it might be worse. But I won't get into that here. Different strokes for different folks.

For me, the event was a great success. I'm about to get vulnerable here, so cut me some slack. At times, I can be a little scatter brained (just ask my wife). Months ago, I distinctly remember asking my business partner about buying a ticket for Spark. He was totally on board and (in my mind), I bought a ticket with the company card.

As I was driving to the event last night, I started to second guess myself. "Why didn't I receive a reminder email from Eventbrite? I... did buy the ticket... RIGHT?" I'm ashamed to admit, I started using my phone while driving in the rain to check my email.

Nothing.

Now I'm starting to feel like an ass. I happened to see this tweet earlier in the day and started to hope:

Guess who greeted me at the door? Before I could even finish my sob story of stupidity, Tara was already pulling out a ticket for me. How awesome is that? Big shout out to Aaron Sanders Law Firm for hooking me up. If you're doing anything in the tech space, please give them a call. They are extremely helpful, friendly, and awesome. They just might change your opinion of lawyers and best of all, they LOVE the technology space.

The night just kept getting better. Everywhere I looked I saw friends and smiling faces. I even got some compliments and words of encouragement about my involvement in building cool stuff and being part of the community. Someone even recognized me from a Barcamp and wanted to say hello. It was kind of surreal.

After the event, I had a great time hanging out with some friends old and new and talking everything from Agile development methodologies (Brendan Wovchko is amazing) to women in tech to RV living.

Another topic that came up (and seems to come up a lot in Nashville for some reason) had to do with the difference between those who are doing great things and those who just seem to be talking a lot. Need an example?

John Wark. Now there's a doer. He stopped complaining about not enough tech talent in Nashville but instead created the Nashville Software School to build some.

I won't give examples of talkers because everyone seems to have a different opinion of who those people are in the community and those judgements are probably unfair anyway. Let's take a different approach. Instead of talking a big game (or ridiculing those who do), let's humble ourselves, help those around us, and get stuff done.

Don't seek out recognition. If what you're doing matters, that will come when it's due.
But when you are invited, go and recline at the last place, so that when the one who has invited you comes, he may say to you, 'Friend, move up higher'; then you will have honor in the sight of all who are at the table with you.
- Luke 14:10
Whoever exalts himself shall be humbled; and whoever humbles himself shall be exalted.
- Matthew 23:12

Monday, February 11, 2013

I'm Not One of the Cool Kids; We All Are

This past weekend I had the privilege of attending (and sponsoring) the first ever SunshinePHP Conference in Miami, FL. I must say, Adam Culp did an amazing job organizing and executing this event. Every moment I saw him, he had on is his regular friendly, beaming smile. I've never seen a conference coordinator so relaxed! On top of that, from what I understand, his only staff was the ever moving Pablo Godel.

Great job, Adam! You certainly made it look easy (and we all know it was anything but). Among everything you had to coordinate, you somehow found time to drive Paul, Matthew and I to dinner the first night. You even let me borrow your laptop for my talk! Your willingness to serve those around you is phenomenal.

I loved hanging out with great friends and making some new ones. I also finally took advantage of the "hallway track." I didn't attend a session during every single slot. Instead, I slowed down a bit and hung out with guys like Keith, Cal and Joe. I met the creators of the tools I use every day including Sebastian Bergmann (PHPUnit), Jordi Boggiano (Composer), Fabien Potencier (Twig, Silex... if you don't know all the things he's done, you probably don't use PHP)... I could go on and on. It was amazing.

Oh, and did I mention the guy who started this whole PHP thing (Rasmus Lerdorf) gave the opening keynote? That was epic. I really enjoyed the history lesson and the "why" behind the decisions he made (which actually made sense at the time in 1993).


(If you're wondering where that stat comes from, you can look into it yourself at w3techs.com)

So on to the point of my post... as I was meeting and listening to these giants of the industry, schmoozing with the "cool kids" during the hallway track... I began to realize something.

There are no individual cool kids.


We're all the cool kids.


I got some really encouraging feedback on my Hypermedia API talk from people I previously thought were on another level. As I was meeting speakers in the hallways, I realized many of them do "the conference thing" quite a bit. They are conference regulars and are sought out to speak all over the world. They are what I had always thought of as "the cool people" when I was simply a "regular" conference attendee.

For a half second, I began to wonder if someone might think of me as "one of those" now that I've given this talk a few times. It was a humbling thought. I don't think of myself as someone special in the programming community. Other than helping start an ecommerce company, I haven't contributed much (yet).

It was then I realized a speaker isn't more or less special or cool than anyone else. We're all building and doing amazing things, and we're all on different stages in our journey. Whether you're just learning to code, or you've been doing it for years and contribute to the tools thousands of people around the world use every day: You are what makes the PHP community great.

As Cal said so well in his keynote, you are awesome.


Even if you don't feel like an expert and just started using PHP last week, guess what? You're probably an expert on what it feels like to use PHP for a week. Everyone has something to offer, and everyone contributes to the awesome PHP community.

So go build something awesome! As Keith so eloquently put in his keynote (I'm still thinking about the ideas he put out there), don't build a copy of something crappy thinking you'll hit the next gold mine. The next dating site? The next photo sharing app? The next Facebook? That's about as practical and as likely as a unicorn farting rainbows and pooping lucky charms.


Related note: When a friend like Keith looks at you with that "I'm up to no good" smile and says "I updated my slides", be afraid. Be very afraid. (If you missed his reference, we included this sticker in the sponsor bag which is from an image we built out for our 404 page)



In summary, the conference was amazing. The people in the PHP community are amazing. And as Larry Garfield quoted in the OOP panel discussion, "You are not a beautiful or unique snowflake." Whether you're a speaker or not isn't as important as being part of the community and helping make it better. Attend your local PHP group this month and help them out. If you didn't make it out to SunshinePHP this year, plan on it next year. While you're there, come find me and say hello.

Sunday, December 30, 2012

The $0 Startup

I haven't posted in a couple months because I've been busy tinkering with something. And no, it's not another crappy startup that can't raise any more money. (BTW, have you read that article? I think it's fabulous. Seriously, go read it. I'll wait.)

It started with a hackday courtesy of CoderFaire. The night before, I was thinking how great it would be to to build something I would actually use and somehow involve FoxyCart and Twilio in the process. I woke up at 5am that morning with an idea and couldn't get back to sleep.

The idea is pretty simple. We all have things we want to change in our lives, and most agree creating new habits (or breaking old ones) is the best way to do it. There are plenty of reminder apps out there, but we're too busy (or too lazy) to set up spreadsheets and track our progress as a form of accountability.

So how about a system that sends you a text message, asks you a simple question you define, and then graphs your replies?

That's the basic idea behind Track and Remind Me:



It's not pretty. Heck, I don't even have a logo yet. But here's the important part:

It cost me nothing to launch this site.

I literally spent $0 getting this hobby site off the ground (and yes, it's a hobby right now, not a startup). Here are the tools I used:
  • FoxyCart (free during development)
  • Twilio (also free during development)
  • PHP (free)
  • MySQL (free)
  • AppFog (first 2 gigs of application memory are free)
  • GoDaddy domain ($10, but I didn't really need this, as AppFog provides a nice, small domain for testing)
  • phpMyAdmin (free)
  • DNS (went with a free solution at http://freedns.afraid.org)
  • Google Apps (free, used for setting up email accounts, though they may be charging $5 a user now)
  • Bitbucket (a free provider of git)
  • Eclipse (a free integrated development environment)
  • Highcharts (I haven't made any money yet, so I still consider this testing a personal project. I'll buy a license and/or use something else when appropriate.)
Of course, nothing is truly "free" when you include the man hours (and I've put in a lot for this). Still, this is a fully functional "idea" that didn't require a penny of funding. As you may know, I've spent the last 5 and half years of my life bootstrapping FoxyCart. There is a place for funding (though I have no personal experience with it), but I also believe many of the "web" ideas floating out there right now should stay as hobbies. There's little point in raising a bunch of money, hiring a bunch of people, and spending 18 months or so to see if anyone cares.

You have nights and weekends just like everyone else. Try putting in some time first to see if your idea sucks. If you're worried someone can copy you and "beat you to the market," then you're probably not solving a very original (or difficult) problem in the first place.

Here's my advice for someone with a web-based idea:
  • Be the guy who can actually work on it (i.e. a developer). Don't expect someone to work on your idea for free unless that someone is you.
  • Solve a real problem you personally need solved (I need a reminder to run at least twice a week).
  • Think long term. If the problem you're solving won't be around in the future, is it really worth solving? If you're willing to go slow and steady, making many small improvements over time, you're on the right track.
  • Don't call it a "startup." You have a hobby. Until you see profit, you still have a hobby.
While we're on the topic, what do you think of my idea?

If you like it, hit http://trackandremind.me, set up some questions, and give me some feedback. For a limited time, I've got it adding a 2013 New Year's resolutions coupon to make the whole system free. Check it out! I still have some bugs to fix, but that's all part of the process.

Thursday, October 18, 2012

An Autobiography Worth Reading: Benjamin Franklin

I was recently intrigued by an interview with Elon Musk, one of the most interesting entrepreneurs of our time (more on that some other day). When asked what books inspired him, he mentioned Ben Franklin's Autobiography.

My ears perked up immediately. I had just been researching Ben's Junto club but never really studied the man himself. Which is strange, considering he founded the very first university in America, one I was privileged to attend.

I loved this book!

I highlighted so many sections, it's kind of funny. I could relate to Mr. Franklin because of the faults he had (he basically ran away from Boston after steam rolling some people), but I was inspired by what he did to change himself. He was a man full of wisdom, inspiration, diligence, and virtue.

I'll add some of my favorite quotes below. Hopefully they will inspire you to give the book a read. If you're an entrepreneur, I highly recommend it.

On Communication and Persuasion

...retaining only the habit of expressing myself in terms of modest diffidence; never using, when I advanced any thing that may possibly be disputed, the words certainly, undoubtedly, or any others that give the air of positiveness to an opinion; but rather say, I conceive or apprehend a thing to be so and so; it appears to me, or I should think it so or so, for such and such reasons; or I imagine it to be so; or it is so, if I am not mistaken. This habit, I believe, has been of great advantage to me when I have had occasion to inculcate my opinions, and persuade men 
My wife often berates me about communicating my opinion as fact. I really suck at controlling the words I use. I forget how powerful they are. To completely remove words from one's vocabulary is inspiring. I say "good" when I mean "well" at least 10 times a day. Yes, I need to learn the art of thinking before I speak.
When another asserted something that I thought an error, I deny'd myself the pleasure of contradicting him abruptly, and of showing immediately some absurdity in his proposition; and in answering I began by observing that in certain cases or circumstances his opinion would be right, but in the present case there appear'd or seem'd to me some difference, etc.
Speaking of those who love to be contrary:
...these disputing, contradicting, and confuting people are generally unfortunate in their affairs. They get victory sometimes, but they never get good will, which would be of more use to them.
The chief ends of conversation are to inform or to be informed, to please or to persuade.
If you wish information and improvement from the knowledge of others, and yet at the same time express yourself as firmly fix'd in your present opinions, modest, sensible men, who do not love disputation, will probably leave you undisturbed in the possession of your error.
Men should be taught as if you taught them not, And things unknown propos'd as things forgot;

On Virtues and Self Improvement


This quote actually made me LOL:
It was about this time I conceiv'd the bold and arduous project of arriving at moral perfection.
What blew me away further was the systematic process he went through over a period of decades to achieve this goal. The dude made his own spreadsheets on paper! The virtues he pursued were:

  1. Temperance. Eat not to dullness; drink not to elevation.
  2. Silence. Speak not but what may benefit others or yourself; avoid trifling conversation.
  3. Order. Let all your things have their places; let each part of your business have its time.
  4. Resolution. Resolve to perform what you ought; perform without fail what you resolve.
  5. Frugality. Make no expense but to do good to others or yourself; i.e., waste nothing.
  6. Industry. Lose no time; be always employ'd in something useful; cut off all unnecessary actions.
  7. Sincerity. Use no hurtful deceit; think innocently and justly, and, if you speak, speak accordingly.
  8. Justice. Wrong none by doing injuries, or omitting the benefits that are your duty.
  9. Moderation. Avoid extremes; forbear resenting injuries so much as you think they deserve.
  10. Cleanliness. Tolerate no uncleanliness in body, clothes, or habitation.
  11. Tranquility. Be not disturbed at trifles, or at accidents common or unavoidable.
  12. Chastity. Rarely use venery but for health or offspring, never to dulness, weakness, or the injury of your own or another's peace or reputation.
  13. Humility. Imitate Jesus and Socrates. 

 It's safe to say Ben Franklin helped change the world. Those 13 virtues may explain why.

Throughout the book, he mentions many vices, but I found it interesting he specifically called out debt:
...which exposes a man to confinement, and a species of slavery to his creditors.
Dave Ramsey and Proverbs 22:7 would agree.

On Pride and Humility

In reality, there is, perhaps, no one of our natural passions so hard to subdue as pride. Disguise it, struggle with it, beat it down, stifle it, mortify it as much as one pleases, it is still alive, and will every now and then peep out and show itself; you will see it, perhaps, often in this history; for, even if I could conceive that I had completely overcome it, I should probably be proud of my humility.
Battling my pride (which goes hand-in-hand with my man-pleasing and insecurities) is a constant activity. Glad to know I'm not the only one.

On Reverence to God

And now I speak of thanking God, I desire with all humility to acknowledge that I owe the mentioned happiness of my past life to His kind providence, which lead me to the means I used and gave them success.
"O powerful Goodness! bountiful Father! merciful Guide! increase in me that wisdom which discovers my truest interest. strengthen my resolutions to perform what that wisdom dictates. Accept my kind offices to thy other children as the only return in my power for thy continual favors to me."
That there is one God, who made all things. "That he governs the world by his providence. "That he ought to be worshiped by adoration, prayer, and thanksgiving. "But that the most acceptable service of God is doing good to man. "That the soul is immortal. "And that God will certainly reward virtue and punish vice either here or hereafter."

On Entrepreneurship

I have always thought that one man of tolerable abilities may work great changes, and accomplish great affairs among mankind, if he first forms a good plan, and, cutting off all amusements or other employments that would divert his attention, makes the execution of that same plan his sole study and business.
He'd probably agree with Dave Ramsey who often says the only ship that doesn't sail is a partnership, though Ben does give me hope that it can be done when communicating expectations is made a priority.
Partnerships often finish in quarrels; but I was happy in this, that mine were all carried on and ended amicably, owing, I think, a good deal to the precaution of having very explicitly settled, in our articles, every thing to be done by or expected from each partner, so that there was nothing to dispute, which precaution I would therefore recommend to all who enter into partnerships; for, whatever esteem partners may have for, and confidence in each other at the time of the contract, little jealousies and disgusts may arise, with ideas of inequality in the care and burden of the business, etc., which are attended often with breach of friendship and of the connection, perhaps with lawsuits and other disagreeable consequences.
Oh, and he had an opinion on patents too:
That, as we enjoy great advantages from the inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously.
I could probably go on and on... but you get the idea. It's a good book by an incredible man.

I'm amazed at how many areas of our daily life Ben Franklin influenced. Like him, I also want to make a difference in the world and be significant. Learning what worked for him seems like a good place to start.

What have you read recently that has inspired you?


What other autobiographies would you recommend?

Saturday, October 13, 2012

My Friend, the Politician

If you're like me, you might agree politics is not the answer for much of anything. On any given day, the decisions I make impact myself and my family more than any politician or government program.

In fact, mostly I just want them to stay out of my way and let me run my business.

A few years ago, I got really frustrated with politics in general and urged people to take our country back from the corruption in Washington. I still believe neighbors helping neighbors through churches and non-profits will always be more effective than any bureaucratic government plan.

To be honest, at one point I probably lost hope in the political system as a valid means of bringing about positive change or making an actual difference in people's lives. I have friends that are political, and I've cheered them on at a distance, but, more recently in fact, I've become more aware of just how difficult a job it is to get elected or be a public servant.

My friend Ben Claybaker has helped me realize that. He's running for State Representative for district 53 here in Tennessee. My wife and I have known Ben and his wife Elizabeth for a long time. We actually knew Elizabeth back when we lived in California and she attended UCLA. Ben's the real deal. A small business owner who believes in limited government, cutting taxes, and improving education (which, by the way, makes an area more attractive for business owners, their employees and their families).

Ben won his party's nomination. He and his wife have worked hard. I mean, really hard. I know something about hard work having built my own business over the past 5 years, 4 of which while working a full-time job. He's been working a marathon of making phone calls, attending events, and knocking on doors.

Unlike all of the opponents he's faced in this election, he's lived here for 6 years. I hear the other dude owns a house somewhere else and is renting here just for this election.

Last week I helped knock on doors for Ben and let the swing voters know why I support him. I got to see first hand just how hard he's been working day after day for months. He's doing it because he has a passion to serve his community, and he believes it's part of his calling and responsibility. I'm inspired by my friend who is living his life on purpose.

He's given me hope for politics. He's helped me believe, at least on the local level, that one man with a passion can make a difference.

Today, my family had the privilege of attending one of Ben's events in Lenox Village which is just down the street from our house. The kids had a blast (bounce house, cookies, and gelato), but I also enjoyed meeting Governor Bill Haslam who was there to support Ben (that's him in the picture). Gov. Haslam told some funny stories but also reminded me how close of a race this is. He recommended we each get a list of 10 people in our minds and make sure they vote for Ben this election. I'm hoping this blog post will help us do that.

If you're in district 53, and you want to be proud of your representative, please vote for Ben and ask your friends and neighbors to do the same. Share this post with them or have them contact me if they want someone to vouch for his character.

Not all politicians are evil. I had to see one of my friends first hand working his tail off to realize that. If you're like me, fed up with politicians and politics (especially on the national and presidential levels), try getting to know your local representatives. If you can't find anyone with integrity in your local office, consider running yourself. It's a lot harder to complain about a problem when you're the one willing to fix it.

I hope this post encourages Ben and lets him know how proud his friends are of what he's doing. I hope on November 6th, more people will be introduced to him as our new representative and maybe, just maybe, find hope in the system again.

Tuesday, September 25, 2012

The Hypermedia Debate at FoxyCart

All I want are sharks with frickin laser beams on their heads!

Many of my geek friends know I've been working for most of this year on a new REST API for FoxyCart. It's been a long, sometimes painful process but I'm learning a TON. It's really challenged me to grow as a developer and that's a Really Good Thing (tm).

Just last night I put up a post over at FoxyCart.com opening up the discussion we're having concerning media types for our new API. If you're into that sort of thing or you've enjoyed my previous post about RESTful Resources Required Reading, come join the discussion. We'd love to have your input.

The Hypermedia Debate

Friday, August 31, 2012

The Other Side of the Booth

This past weekend, I had the pleasure of attending CoderFaire Nashville. I've been to a lot of great conferences, but this one was different for me on a few levels:
  1. My good friends Cal Evans and Jacques Woodcock organized the event which made me feel like an "insider." 
  2. I got to see my friends speak, and they were all really good! Tim Moses, Ben Ramsey, Jason Myers, Eli Tapolcsanyi (say that name 10 times fast!), Jim Siegienski ("Jimski"), Jon Shearer... loved them all. I missed Kevin Powell and other friends, but I heard they did great as well. 
  3. My business partner, Brett Florio, flew in from California so we got to enjoy the conference together.
  4. My company, FoxyCart, was a lab sponsor.
Let me start off by saying the conference was a huge success. The Nashville development community has been growing like crazy and desperately needed their own conference event. There's been a lot of back and forth on social media about BarCamp, PodCamp, and other conferences some argue have been "taken over" by marketing professionals. Regardless of that debate, there was no denying what CoderFaire was all about.

For a first year conference, I was amazed at the turnout, the quality, and the smoothness with which everything was done. The result was a testimony to Cal's many years of conference experience combined with Jacques, Kathy and the volunteer team's pursuit of excellence.

Well done!

But that's not really what this blog post is about. I wanted to highlight #4 above. I've been to a few conferences now (JavaOne, AdobeMax, Shop.org, PHP Tek, BarCamp, PodCamp, etc), and I usually follow the unspoken rule when it comes to vendor tables: Get in, get your free swag, get out, and, no matter what, do not make eye contact!

No one likes to be poorly marketed to. It makes you feel like a roast pig on a spit.

For the first time ever, I was on the other side of the vendor booth. FoxyCart was a proud sponsor of CoderFaire. Look, we bought a banner and everything! We're a real company now! (after only 5 short years). The genius of the setup was we weren't allowed to "sell." We were lab partners, there to answer questions about our service and equip others to build awesome.

This is the way it should be done. Vendors should think of their conference presence as an opportunity to serve their community in person. To put a human face on the awesome support they already give, day in and day out.

I think we've all been trained by bad vendor booths. People hawking their products and services to anyone and everyone: bribing you with a t-shirt and shaming you for not signing up for the newsletter.

Cal and Jacques: Thank you.

Thank you for showing us all something different. It's hard being on the other side of the booth. It's hard to get past that unspoken rule and let coders know, "We're here to help. Really." But you made it possible.

We had some great conversations and hopefully sparked the beginnings of some new partnerships. The feedback I got at Tuesday night's NashCocktail and last night's CentreSource Interactive Mixer from CoderFaire attendees was incredible.

They loved that we, as a vendor, were there for them. We participated in the hackthon (more about that later... I'm going to turn that thing into a business). We attended sessions and asked questions. We, as developers, were part of the community, not a parasite feeding on it.

The next time you attend a conference, look for the vendors that genuinely want to serve you. Thank them for being there. Tell them you enjoy doing business with real people who care about their customers.

I know it will mean a lot to them because the feedback we've gotten has meant a lot to us.

(Note: All of these pictures were blatantly stolen from Cal and Jacques. They both know where I live, so they can come beat me up if they don't like me using them).

Did you attend CoderFaire? If so, what did you think?

Got an interesting conference story involving vendors? Please share it in the comments!

Tuesday, August 21, 2012

Does Your Business Care About Profit?

Q: Why do companies fail?
A: Because they don't have any money.

Q: Why not?
A: They spent it all. There was a bucket they pulled from to do their business, and that bucket is empty.

Q: How do you keep the bucket from going empty?
A: Profit

Profit is an ancient, seemingly forgotten equation that many Internet startups have never known. Centuries, even millennia, of business wisdom have followed this simple idea:

Profit = Revenue - Expenses

(Sure, you can get more complicated by calculating your break even point, analyzing fixed costs, variable costs, marginal revenue, equilibrium price, supply and demand, etc... but let's just keep things simple).

If you don't have profit, you might just have a hobby.

If you convince others to invest in your hobby or buy it completely, it may be a ponzi scheme.


I'm concerned for my industry. For some reason, it seems we didn't learn from the dot-com bubble. We somehow think if we get enough people "interested" it will make up for not delivering real value. The service provided to the customers should have real value. Someone should be willing to be pay for it (customers, preferably, but advertisers get in the game as well).

If "going public" or "selling the company" is your company's only strategy for making money, it might be worth asking, "Are we bringing real value to our customers?" If you're pouring your heart and soul into building something, make sure it's something that will last. Make it something people are willing to pay for. Work hard to keep it that way.

Don't pull money out of a bucket to run your business. Instead, do something awesome your customers will tell their friends about. Meet real needs in the marketplace and continue to evolve as the needs change.

Rabbi Daniel Lapin calls a dollar bill a "certificate of appreciation."

Your doors are kept open by the appreciation of your customers.

Do something worth appreciating.

It won't be easy, and it won't happen overnight. In fact, it will probably take years of trial and error.

Dave Ramsey talks often about losing it all. After becoming a young millionaire, he went completely broke. He then spent years meeting with and learning from millionaires, decamillionaires and a few billionaires about how to do things right. The recurring theme he saw over and over again can be explained in a children's book.

The tortoise always beats the hare.

Warren Buffet (quoting Fred Brooks from the Mythical Man Month) said it well: "You can't produce a baby in one month by getting nine women pregnant."

Spend the time to grow your business the right way. Meet needs, deliver value, and profit.

This post may rub some people the wrong way. It's just my opinion. I welcome yours in the comments below.


P.S. I can't tell you how thankful I am for our FoxyCart customers. They have given us their appreciation and referrals since 2007. Serving them is the reason our company exists. I'm glad we spent our time in the hobby stage because we focused on the needs first. We're now a sustainable business meeting real needs for thousands of people, and I feel like we're just getting started.

Monday, August 06, 2012

Curious About Curiosity

When shuttles tragically fail, Hubble can't take pictures, or missions don't go to plan, I hear friends talking about how we should redirect NASA funding to feed the hungry.

With the success of Curiosity's landing last night, now I hear calls to increase their funding.

I guess we Americans just want to celebrate success.

Don't forget, failures always line the path to great accomplishments.

As for my opinion, I don't think we would have been given such a big backyard if we weren't meant to explore it. I believe these moments will mark the timeline of humanity while many other things will be long forgotten.

What's your opinion?

Tuesday, July 31, 2012

A Test Story for Those Who Don't Like Writing Tests

Without tests, eventually you'll fall down.
My first experience with unit tests sucked. It involved a Java ecommerce bohemoth with good "test coverage" along with more bugs than should be ethically allowed in a commercial product. The company admitted it was one of the worst versions they had ever released (and supposedly some people lost their jobs over it), but the net result was me thinking unit tests were useless. If the same team who wrote the crappy code also wrote the tests, how helpful could they be?

So I decided to just write production code and leave the tests to people with too much time on their hands and no customers to serve.

Yes, that was me being arrogant, ignorant, and stupid. The tests weren't the problem. They just didn't have tests to cover the issues we were finding.
With tests, you have a chance to stay standing.

Years went by, and I got along fairly well. But then I started building something complex. Really complex. A fully RESTful API. It quickly got out of hand. I needed the ability to refactor a major controller for the whole system and know with confidence a change in one place wasn't breaking something else.

Going with Silex and their Symphony WebTestCase pushed me over the edge. Their createClient method helped me quickly test my whole API from end to end. I had no excuses not to write tests. 803 tests and 2,289 assertions later, I'm completely sold on testing.

The story I'm about to tell would have helped the earlier version of me get on board faster and may help you or a colleague finally write those neglected tests.

During what had to be a "Gee, I wonder if this quick hack will work" coding session, I added an attributes table to our system for transactions, customers and subscriptions. I was lazy, so I made a dumb decision and created a name/value table with transaction_id, subscription_id and customer_id fields. Why would we ever need more attributes, right? ;-)

I usually make long-lasting database design decisions, but this was admittedly pretty lame.

So the time came to add more attributes to products, shipments, users, clients, and stores. I knew to do things "right" would involve a database schema change, and it could impact live stores if I screwed up. Most everything we do is versioned in FoxyCart, so what you get today is what you'll have tomorrow. The catch is, all of the versions we support use the same data model.

Testing to the rescue!

The updated table was going to use foreign_key_id and type fields to keep track of the various attributes. The existing versions expect attribute data to be organized in a very specific way. Here's how I went about making the changes without screwing anyone up:

Step 1: Write tests for how it works today.

Ideally you're all hard-core with test driven development, and you wrote your tests before you even started building anything. But if that's you, this isn't your story. You're the guy who is "too busy" to write tests and would rather write code that "meets real needs" in the marketplace.

Am I right?

So I wrote 27 tests with 35 assertions on everything the current class object handled. This included outputting to XML for our API, updating and saving objects, and the like. Keep in mind, this was a real time investment.

Step 2: Break it all.

Once I had everything working, I went ahead and made my database changes in development and refactored all the code. Now almost all of my wonderful new tests failed. Some methods had been renamed or completely removed, others were slightly re-purposed or adjusted. I made a copy of the test file and went to work on it.

Step 3: Mindless coding for speed and profit.

It wasn't exactly test driven development, but this approach made my job so easy. The tests literally told me which line to fix next. Going through and tweaking the code was almost mindless. I can't tell you how many times I said, "Oh, yeah. That doesn't work that way anymore. That's a quick fix."

Soon I had things green across the board again with my new tests against the new class with a new table structure. I was stoked.

Things clicked for me. I got a greater understanding for the power of proper test coverage. I could now confidently roll out a significant change (with a required data migration step) and know our users wouldn't be impacted because the inputs and outputs of the class were verified to be exactly the same as they were prior to the change.

So here's my challenge to you, like the me-of-old, who isn't writing test code:

Start today.

Start with the very next thing you have to code. At first it will be painful, and you'll think you're "wasting time." Trust me, you aren't. Ask anyone who's worked on a lot of real code for more than a few years, and they will most likely back me up on this. You may have gotten by this long because you haven't been faced with a real challenge or you haven't had to fully realize the extent of your current technical debt.

Once you get a taste of the confidence you can have in your system and future changes to it, you'll wonder (as I have) how you got by for so long without writing tests.

Do you write tests (unit, functional, PHPUnit, Selenium, etc)? Why or why not?

P. S.: I know the pictures in the post really have nothing to do with it, but I needed excuse to post them somewhere. :) I got a bunch of cool shots from surfing last week. Check 'em out.