1. Upcoming Socket.IO Talks on the East Coast

    Exciting news! Over the next month, I’ll be speaking at a number of Javascript user groups on the East Coast about Socket.IO. If I’m in your town, tweet at me and I’ll see you there! We can grab drinks and hang out afterwards.

    Why am I doing this? Just like Rails did with agile development and MVC, it’s my honest opinion that Javascript and asynchronous frameworks like Node.js will drive the future of web development. I was 13 when Rails came out in 2004, so I couldn’t really participate in the action back then. But I’m 21 now and it’s a distinct pleasure to be in the thick of it all this time around.

    The Talk Itself: I’ll be talking about Socket.IO - a great library that makes it absurdly easy to implement the new and evolving HTML5 web sockets standard in your Node app. I had the distinct pleasure of first using Socket.IO at the 48 hour AngelHack Boston Hackathon with Justin Meltzer back in March before hopping on the Startup Bus in Boston and hacking for 72 hours on the way to SXSW in Austin, TX.

    I’m really excited about the talk so I hope to see you there!

    May 30 (Wed) - NYC.JS Usergroup

    NYTimes Building

    620 8th Ave, New York, NY

    June 21 (Thu) - NoVA.js Usergroup (35 attending as of 5/24)

    Washington, D.C.

    Final location currently TBD

    June 28 (Thu) -  Boston.js Usergroup

    373 Washington Street, 4th Floor

    Boston, MA 02108

  2. What is Value?

    We can conserve money but we cannot conserve time. Time is the one finite asset that leaks out of our lives every second of every day. We will eventually run out. The nature of life is that we are inexorably marching towards death.

    Understanding value and the relationship between money and time helps me sustainably create valuable new business ideas. Understanding my thinking on this subject will take a bit of setup so you’ll have to bear with me. The relationship between the two is rigorous enough to be worth your time.

    Money is simply time spent for another person in a structured fashion. Money is a function of time.

    People get caught up in the act of “making money” but what they forget is that the physical currency isn’t even remotely valuable. This isn’t idle philosophizing. As any economics student will tell you, money simply solves two problems: (1) coincidence of wants (2) store of value. While this is true, to the businessman this is about as useless as getting the dictionary definition of construction when you need engineering guidance on how to build a skyscraper.

    An economist would respond by telling us that the way to acquire money is simple: do something that people find valuable. In the barter economy on the cold frontier, this is the pelt hunter. He goes into the wild to return with pelts and trade them with the townsfolk. It doesn’t matter if you pay him chicken eggs or cornflower so long as he finds your trade valuable. So what is value? Having removed currency from the equation, we’re clearly getting a little closer to the issue.

    Well, replies the economist, there are three ways to create value: be creative and develop something new, add complexity to an existing system, or peacefully exchange goods with another person. Again, this is simply a description of the phenomenon, not an explanation of it. The question still remains: what do I create? What complexity is valuable? What goods should I offer to trade? Knowing that I want to eat chicken doesn’t tell me if I should be producing steak or steel girders. We all learned in grade school that no matter what you do, bags of broccoli and celery sticks will not translate into bags of Cheetoes. Knowing that people trade things doesn’t tell you anything about what you need to bring in order to participate.

    Here is where economic textbooks delegate the act of discovering the lunchroom’s next hot snack to a select few “visionaries” who somehow understand the needs and wants of people. If you are one of these people, you know it from birth. If you aren’t, well sorry Charlie. We mortals can never hope to be like these people. The best you can hope for is a job adding complexity to one of their great systems.

    Fair enough, you say. So what do these jobs look like? Well, you can look forward to an exciting career helping our so-called visionaries lower the entropy of their own systems. You can look forward to the riveting task of adding marginal complexity. Such jobs entail: producing folded socks from disordered laundry, producing clean dishes from un-bussed tables, producing complex computer programs from simple ones. Good luck starting that great new restaurant. Good luck producing great software ideas like Facebook or Microsoft. It can’t be done. You’re just not one of them. Like the shamans or mystic men of old, these wizards rule the earth from above, zooming about in private jets and secluded spacecrafts. It just isn’t possible to join them. They’re in a league of their own. You’ve got a better chance of winning the lotto than you do of creating the next great idea. In fact, around half of them did win the lotto. Bill Gates and Mark Zuckerberg didn’t have any real talent. Right?

    Take a pause. Stand up. Grab a coffee and come back in five minutes. Tell me this isn’t exactly the kind of hysteria our culture promulgates.

    Ah, you’re back. Great! Guess what? I am officially announcing that this myth is bullshit.

    Mystique and “genius” be gone! The reality of the situation is that our visionaries are human and there are far too many chances for them to make mistakes for their success to be all vision or all good luck. This is great news, by the way. This means that everybody stands a fighting chance.

    We’ve all heard the stories about how Edison tried thousands of times to get the right filament for the incandescent light bulb.  The guy tried thousands of times. That must have taken him forever. His hands must have been sore; his research assistants probably got pissed off and quit; his friends must have gotten tired of hearing about the latest trials. If he had the superpowers necessitated by the structure of modern economics, Edison would have simply divined the answer the first time around, conjured up a cold one, teleported straight to the beach, and then told everybody how hard it was for him.

    But he didn’t. Instead it took actual hard work. So if that’s the case, if it takes hard work to create valuable new things, we need to shine the bright light of reason on the cobwebs of economic mysticism and answer the freaking question. What is value?

    Value is anything that returns time to people’s lives.

    That’s it.

    From this axiom, I assert that there are two types of value that follow:

    (1) Value from Cost Savings

    • This means enabling people to save time by giving them a better way to do what they’re doing. Colloquially, this means making obviously inefficient things efficient.
    • Common examples of efficiency gains include better shipping, better factories, faster production, lower energy usage, decreased waste, increased output, smaller bureaucracies, etc.

    (2) Value from Revenue Platforms

    • This means giving people new ways to use their time more productively than previous alternatives. Colloquially, this means making it so people can work fewer hours for more money.
    • Common examples of this type of revenue include any development that happens on a platform product like Microsoft Windows, Facebook’s Graph API, Apple’ s iPhone, Google’s Android, etc.

    We are all running out of time. We are all going to die. What could be possibly be more valuable than giving people back a second of their lives? If money is just time wrapped up in a bundle, by extension, the same thing can be said about saving people money. Time returned is the driver of all value.

    I maintain that revolutionary ideas are ones that simultaneously shock legacy cost structures while introducing new revenue platforms. This is electricity over firewood, electronics over analog devices, the Internet over local networks, quantum computing over silicon. If an invention leads to a dramatic fall in costs AND introduces a revolutionary new platform upon which new, valuable inventions can be created for people, this is an inflection point in human development.

    These inflection points legitimately qualify as “genius.” But when you think about it, they’re really more like broad sweeping concepts or major field advances that happen over a period spanning decades. These giant leaps typically involve huge bodies of research, both scientific and commercial, in conjunction with a swath of independently developed inventions.

    Almost everything else falls in either the cost savings or revenue platform bucket. For these inventions, let it be known far and wide from now until the end of time that the field is wide open. Anybody can play. As of today, there is a clear approach to discovering precisely what to bring to the lunchroom. Begin by figuring out where people are spending their time. I suggest starting here. Then I suggest visiting legacy, unsexy businesses and asking the managers: what wastes your time? Then fix it. Think construction, woodcutting, steel mills, industrial trash disposal, fertilizer plants, retail car sales, etc.

    A little closer to home, Dan Shipper, Justin Meltzer and I just wrote software that decreases call time for call centers. We’re in the process of selling it right now and our potential customers may be more excited abut the product than we are! How is this possible? Let’s imagine for a second that our software saves 10% off of every call. How much life gets returned to people? Every hour, customers get back six minutes of their life and businesses can reinvest six minutes worth of wages into new product development. What does this mean over a week? Over a year? Over ten years? Great user experiences return time. It doesn’t matter if the software is consumer-facing or business-facing.

    Regarding revenue platforms. These are a little trickier to develop because it’s hard to demonstrate a prioi that people are more productive if they live their lives on your social network or operating system. But there are ways to approach the problem. Check out SocialCam or Instagram. If a beginner can make in a sepia photograph in under ten minutes using Instagram versus spending twenty hours learning Photoshop, Instagram has saved them a tremendous amount of time. Think about the other social networks: Twitter sure saves me time: I follow the smartest tech guys I can find; no longer do I need to curate content. Facebook saves me time: I don’t need to go over to my friend’s houses to see their photo albums anymore. Platforms can be blockbusters.

    As you tweak your products, ask yourself. Did I return time to my customer’s lives? Did I make it easier for them to make money for themselves in less time? Did I give them more time with their families? Did I help bring them closer to retirement? Did I give them their lives back?

    If you’ve liked what you’ve read so far, please consider following me on Twitter or check out my startup, Airtime for Email.

  3. Run Your Startup Like a 1940s Hardware Store

    I run my startup exactly like a classic hardware store. What do I mean by that?

    Imagine a small town hardware store run by a guy named Al. Al is married and has kids. He knows every customer, goes to every high school football game, and throws a charity BBQ every Fourth of July. He lives a block or two away from his store and always has a clever solution for your problems: oil for a rusty garage door, a new handle for that broken shed, a jigsaw for your home restoration project. On the weekends, he isn’t above driving out to your house to help paint the new baby’s room or taking a moment to carry your grandma’s bags to her car. You know you could leave town, come back in forty years and Al will still be there – running the store, taking a those few extra seconds to learn about his customers, going that extra mile to solve their problems. 

    So how does this apply to startups? What can we all learn from Al?

    Love Your Customers. Deeply.

    I’ve spent the past seven months with my buddies Dan Shipper and Justin Meltzer building Airtime for Email. In practice, this has translated to seven months of 5AM mornings, seven months of showing up exhausted to class and seven months of doing hard work that nobody sees. At Christmas, I explained my startup to my grandmother and she couldn’t have been less interested. I understand. She’s 83 years old. :)

    But when I talk to one of my customers, it’s the complete opposite. They get excited about what we’ve done. Keeping email messaging consistent across a sales team is expensive and difficult. Airtime solves this problem and our customers love the solution. Since I loved solving the problem, I guess you could say that by extension, we love each other. I can’t tell you how nice it feels to hear deep gratitude on the other line after spending seven silent months solving their problem. It’s so awesome.

    Back in January, I turned down my investment banking offer to launch Airtime. By providing a valuable service, my customers permit me to write great software, build an awesome business, and do what I love every day. I owe every moment of my new life to them.

    So yes. I love my customers.

    Call Every New Customer Personally

    The United States is a great place to live for many reasons but one reason I’ve come to appreciate recently is the enormous U.S. Sales Window. That is, for eleven hours a day from 9AM Eastern to 8PM Eastern (i.e. 5PM Pacific), people are at work, answering the phone and replying to emails. Here’s where I get on the phone and call every one of our new customer’s personally. I also email every one of them personally (on principle, I send the emails manually). After the sales window closes, I start writing code, adding features and fixing bugs until about 4 or 5AM every night. 

    Is this crazy? Can this scale? No it’s not crazy. I’ve up-sold a significant percentage of our accounts with just a simple call. I’ve discovered corner-case bugs customers have encountered simply by asking them. I’ve learned what our software needs most by speaking with our customers (it needs a Guides and Templates section by the way). Measure it by CLV, measure it by increased conversions, measure it however you want but there is absolutely no excuse to not know your customers.

    Can it scale? I don’t see why not. I refuse to believe that great support can’t scale. It just requires smart solutions. We just started integrating Salesforce with Airtime so we can pipe our leads into a high-quality CRM. This will tremendously reduce our logistical overhead. We also hired two great interns from Penn and Babson respectively to help us make these calls too.

    Love Scathing Criticism

    Nothing makes me happier than honest, scathing criticism. At Airtime, we get it every now and again. Every time it happens, swallow my pride and I get out my moleskine. It’s like being handed a brick of gold. As much as it sucks, I can’t think of anything that makes my day better than somebody telling me exactly how I suck. It helps me fix problems and make the service that much better. 

    Offer Zero Hassle Cancellation

    Anybody who doesn’t like our software doesn’t have to fight us. Making cancellation easy is the right thing to do. Really early on, we had somebody decide the service wasn’t right for him. That’s not a problem in my mind. We parted on good terms and he’s still on the mailing list. If you treat people well and you offer them something good, they’ll come back when they need it. 

    Grandfather Prices

    People love getting a great deal. People also hate when great deals aren’t so great anymore. We’re still figuring out our pricing model. There will always be tweaks so we decided that all old customers get grandfathered in at their old rates. Period. Any increases in prices make the deal that much sweeter on their end. Any cuts in prices get returned to them. We cut our Basic plan from $14.99/month to $9.99/month back in March. All of our old customers got their prices cut. And guess what? They’re still with us. CLV. Sweet!

    Make House Calls

    Maybe a month ago, one of our customers here in Philadelphia had to go to New York early next morning to give a speech and anticipated sending a lot of emails. Unfortunately, he was using an old version of Windows and something went wrong with his Airtime integration. It was around 10:30PM at night and he didn’t have much time. So I personally went over to his apartment, fixed the integration, and got him up and running. 

    Put Your Face on Every External Communication

    Al stands behind his products. I stand behind mine. There is no anonymous About Us page at Airtime for Email. Our photos are right up there. Every one of my customers has my phone number. If there’s a problem, they know exactly who to redial. 

    My Dad is an old-school software sales guy. One of the tricks he picked up over the years to get past customer support lines is to dial the corporate number and ask for the CEO. At big companies, that typically gets an admin, who forwards Dad to the senior VP of customer service. Problems get solved instantly. But you never get a follow-up email or meeting from the CEO and that underlines an important point. Nine out of ten CEOs won’t and don’t talk to customers on a daily basis. Not cool.

    I don’t want to run one of those companies. I’m benefiting from my customers and they are benefiting from me. If that relationship breaks for any reason, I want to make sure it gets fixed immediately. That means an open door policy and no hiding behind secretaries. They’re the reason I have a job in the first place. No CEO is too good for his or her own customers. 

    I’m Here For the Long Run

    I’m not going anywhere. I am 21 years old and I already know I am one of those people with no desire to retire. I love it too much. That means I’m going to be in tech for the next 60 years at least. This fact informs my philosophy. I am not a quick buck artist. I am not here for a quick payday. I’m here to make great stuff for people as long as I live. I want to learn how to survive under all capital scenarios and in all macroeconomic climates. Economic cycles are inevitable but great products and great service never go out of style. 

    Conclusion

    Run your company like a 1940s hardware store and you can’t go wrong. Love your customers and they will love you back. Personally, I relish the feeling so it’s not a hassle.

    If you’ve liked what you’ve read so far, please consider following me on Twitter or check out my startup, Airtime for Email.

  4. The Poker Entrepreneur: How My Best Friend Mastered Execution

    The following is an excerpt from our Airtime for Email company manifesto. Dan Shipper and I wrote down our principles up front to make sure we understood each others’ thinking, agreed on everything and were on the same page.

    A close friend of mine is one of the best poker players in the world. As you can imagine, knowing someone like him is a huge privilege. I spent all of last semester trying to understand why he is the best. He regularly plays ten games of poker simultaneously on three thirty-inch monitors and is ranked in the 99.99th percentile online. After school, he will be making his living playing poker professionally. On three separate occasions last semester, we worked together on quantitative group projects for class. Many a late night over those months, we reasoned (or perhaps discovered) that among smart people, we both have relatively average mathematical faculties. So why am I not one of the best poker players in the world? Why aren’t our classmates? Why aren’t more people? What makes him different? 

    First, some background on a key point: at his level, everyone has internalized poker probabilities. Knowing this means that the end of every round reveals a wealth of data. Another aside: there is no doubt the sport of poker is complex. Mastery of undeniably difficult skills – managing bankroll, reading people, handling double-think, maintaining emotional discipline and doing speedy mental math – makes you good but certainly lends you no advantage over any other strong poker player. Something else has to explain his astronomical performance. And something else does. 

    Immediately after the cards show down, he replays the entire hand in his head, whether he won or lost. Given the known outcomes, he looks for any errors he made. Say he missed the tell from a bluffer who got lucky on the next card. He adds that error to his list of things to look for going forward. At the start of each hand, he runs through, in computer science terms, a database of hundreds if not thousands of edge cases to avoid potholes. This is a man who has played millions of hands online and now competes on a level where mistakes are painfully expensive. 

    I have long held that great ideas are elegantly simple. No surprise, his edge is incredibly easy to understand. He is the only person I have ever met who systematically learns from his mistakes. He has developed such an extensive edge-case test suite that it would be ridiculous for him to not play poker to earn a living. He has made “experience” quantifiably scientific. 

    I am convinced lists like these are the essence of great execution. 

    ***

    So what does this mean to us hacker/entrepreneurs? It means this: whatever you’ve screwed up in past ventures, make a list. Every time you make new screw ups, add to the list of things to get right next time. Then never make that mistake again.

    Here’s my list of stuff I’ve screwed up. Yes, I have consistently not done some of these painfully obvious things in the past. Yes, it is possible to launch a product and do none of these things. Yes, these things are the icing on the cake. And yes, if we do each of these things with Airtime for Email and keep building this list, we’ll be rockin’ and rollin’. We’ll be building iPods, not MP3 players. 

    And now, in no particular order…

    1. Make “Product Listserves” that are public, available on our blogs, and anyone can subscribe to. Publish weekly emails of updates with these.

    2. Nightly customer status emails so we’re always top-of-mind

    3. Monthly letters to our customers summarizing new & upcoming additions

    4. Easy referral links via email, Twitter, Facebook from the Dashboard

    5. Constant PRNewswire releases. It’s how oldschool media gets their information. For my business in high school, I got onto PBS, was interviewed by Newsweek and was invited to the Postal Regulatory Commission with just one of these press releases. Why I didn’t do one a week, I’ll never know.

    6. Backlinking from the company & personal blog. Blogging about the subject matter you’re selling so you become a “local expert” and reference

    7. Making quick changes to the software based on customer request (Iteration). Stripe has mastered this with their “How can we improve this page” jQuery bar at the bottom of each page.

    8. A “Getting Started” tutorial when customers sign up

    9. Easy, no-questions-asked, refunds

    10. “Thanks for Signing Up, here’s our contact info, we really think you’ll love our product, call us any time of day and we’ll make it right” email upon registration. Pictures attached to our names. Our customers should know who we are

    11. Holiday emails. People love this. Yet another excuse to be top-of-mind

    12. Thank you emails. No reason not to randomly thank people out of the blue for giving us their business. Again, helping to stay top-of-mind.

    13. 24 hour average email response time. Hard but awesome.

    14. A tiered service with a free tier

    15. Strong test suite

    16. Strong error handling, especially around any external dependencies

    17. A failure notification system that emails us when errors are thrown (instead of logging and forgetting about them)

    18. Uptime monitoring

    19. A wireframe layout (Foundation, Twitter Bootstrap 2, et. al.)

    20. A broad, sweeping vision and rallying cause (e.g. AirBnB: unlocking spaces; Stripe: payments make the world smaller and helps people; Google: search makes the world smaller and helps people)

    21. Philanthropic & corporate partnerships

    22. Testimonials from existing customers

    23. Links to feature articles on the front page

    24. Customer education on why what they currently have doesn’t work (“You are overpaying for ineffective advertisements. Use Airtime for Email.”)

    25. A company Facebook page and Twitter account. A Like Us button.

    26. Notifications before we bill someone. Receipts after. Especially for subscription products. (Feb 2012)

    27. “Thank you video” when people sign up (Feb 2012)

    28. Look at the numbers daily. Both (1) the hard financials and (2) an administrative screen showing the number customers signed up, upgraded, downgraded, or canceled a product. Check these numbers throughout the day & have everything update in real time. (Feb 2012)

    29. Never schedule a meeting the day after a new product release. You’ll need the whole day for debugging (Feb 2012)

    30. Don’t optimize prematurely but instead focus on functionality THEN performance. Build software that first and foremost works. (Feb 2012)

    31. Help pages and video help tutorials should be in both a knowledge database and easily accessible via a help button on the relevant page (i.e. the banners page has a different help button than the dashboard) (Feb 2012)

    32. Never choose a name without checking both website domains and the relevant trademark classes first (Feb 2012)

    33. Don’t set up more shares than you absolutely need in Delaware. This minimizes tax liability (Feb 2012)

    34. Respond to every Hacker News post and blog comment (Feb 2012)

    35. Always grandfather in old prices for existing customers (Feb 2012)

    36. Trust but verify. Check sources when somebody makes a claim against you, externally verify everything (Feb 2012)

    If you’ve read this far, please consider following me on Twitter.

  5. Why I Turned Down My Investment Banking Offer to Launch a Startup

    Last semester at 6:00AM, forty hours into studying for my asset accounting final, I realized I had completely lost control of my life. I was bleary-eyed and breaking myself to perform well in a class I was taking only to fill the “Relevant Coursework” component of my resume. Barely twenty years old, I had structured my entire life to impress a future boss I hadn’t met. Freshman summer at Wharton I worked at Citigroup. Sophomore summer I worked in investment banking at Credit Suisse. These are opportunities most students at school only get in the spring of their junior year. Resume building was a strategy that had undoubtedly served me well to date. And at the end of last summer, offer in hand, I was lined up for a rigorous and rewarding career on Wall Street.

    But last week I did the unthinkable. I declined my bulge bracket investment banking offer to launch a tech startup. Here at school, it is inconceivable that a level-minded Wharton student would ever turn down such an opportunity. But for me, this was the right choice and one that was a long time coming.

    My entire summer at Credit Suisse, I would come home most nights around 3AM and code until 4:30AM, before finally falling asleep from exhaustion, laptop on my pillow, only to wake up a few hours later and repeat the cycle. In retrospect, it’s obvious that my subconscious was trying to tell me something. You cannot escape what you love. 

    I am a self-taught programmer. I was born in New York City but I moved to Seattle after eleven months because of Dad’s job at Microsoft. Both of my parents are immigrants who came to America with nothing – Dad is from Ireland and Mom is from Barbados. I admire their work ethic more than anything. Just like how HP seeded an entire generation of Valley technologists, there is no doubt in my mind that my early years around Microsoft did the same for me. I started coding in 5th grade and I’ve loved technology my whole life.

    I started working on Airtime for Email with Dan Shipper in November 2011*, but intellectually, I had been straddling the fence between those two worlds for months, exactly as I had in the depths of those early summer mornings. Last week, as on-campus recruiting went into full swing and all of my friends started putting on suits and ties for banking interviews, I turned my theories about love into practice. I quit finance and decided to build businesses for the rest of my life. 

    I made the decision with complete confidence. When you do what you love, I know you can not go wrong. I have committed myself fully to something and every day, I experience the most satisfying feeling in the world. I love every moment of my new life. It’s like I’ve discovered a wellspring of pure happiness. A salary is nothing more than time you spend in a structured fashion for somebody else. When you don’t own your own time, no matter what the paycheck, you are not free and you will not be happy.

    The consequences of this decision will be especially arduous for me. I have paid for every cent of my college education. My parents made the best parenting decision of their lives by making me do this. It taught me independence and dispelled any and all sense of entitlement. I live on an especially thin budget. I am not financially free as yet but I am wealthy in that I craft every moment of my new future. I have complete and full ownership of my life. Nobody else does.

    I am a member of the one industry in the world where the boundaries between imagination and reality are utterly nonexistent. I actualize my thoughts on a daily basis. I can barely describe the satisfaction that gives me every second of every day. I could not be happier.

    * We launched Airtime for Email last Monday (Jan 30) and had a great first week, going from 19 customers pre-beta to over 70 this morning. More information in my post “We Just Launched Airtime for Email!

    If you’ve read this far, please consider following me on Twitter.

  6. We Just Launched Airtime for Email!

    The following is an excerpt from the Airtime for Email product listserve. If you would like more information, please get in touch @leahy16.

    Hey Everyone!

    After 5 months of development we’re extremely proud to announce that Airtime is finally open to the public! We’re going to take some time to tell you about some of our awesome new features, but first we’d like to give you some pre-launch company statistics.

    Prelaunch free users: 19
    Prelaunch paying customers: 1
    Total Impressions Served: 106,650
    Click-Through Rate (CTR) on all banners: 0.45%

    We log an impression every time someone composes an email, which means that around half of our impressions served are actually impressions served to the people sending the email out. If we adjust our impression count to remove those “false-positives” our
    CTR is 0.91%.

    That’s nearly 5 times higher than the average banner online. (source)

    Now let’s talk about our new features.

    Airtime Rules - This is one is a monster. You can now give Airtime instructions about how, when and why your banners are shown. Want to show a specific banner on emails opened on iPhones in New York? Airtime has you covered. Want to show a specific banner on emails opened on Macs in San Francisco at 1 PM? Airtime has you covered. We couldn’t be more excited about this because of the amount of control it gives you over who sees your marketing messages. This feature is available in basic form right now, and will be rolled out completely over the next one or two weeks.

    And remember that Airtime banners update retroactively, so these new rules will apply to emails you sent 4 months ago back when Airtime was just a glint in our eyes. Whoa.

    Banner Creator - No more messing around in Photoshop to create a banner. Our banner creator will take your desired banner message, and generate an image for you automatically. It takes less than 30 seconds.

    All New Dashboard Design - the new dashboard is cleaner, faster, and more powerful than ever before.

    Thank you so much for being our customers and for believing in us from the start. We have a long way to go but we’re excited and ready for the challenge!

    If you have comments, questions, or suggestions we would love to hear from you. Our emails are dan@airtimehq.com and patrick@airtimehq.com. You can also reach us by phone at (213) 784-0273.

    Thanks again. You’ll be hearing from us soon.

    Best,
    Dan and Patrick
    Co-Founders of Airtime for Email

  7. Blacking out for SOPA / PIPA

    Today, on Wednesday January 18th, Wikipedia, Google, and others have blacked out their websites in protest of the SOPA / PIPA bill. I’ve followed suit and done the same because I will not acquiesce and accept a reality where the United States actively supports censorship. The Daily Pennsylvanian reached out to me yesterday afternoon and asked my opinion. That article is on their cover and is available here. Here’s the full version of what I sent to them:

    In this country, it should always go without saying that any censorship of free speech as egregious as SOPA / PIPA shreds both our constitutional rights and our most fundamental sensibilities as a free people. Do not be misled: SOPA /PIPA is legacy media companies paying off our government to pick winners and losers under the guise of “copyright protection.” This bill illustrates the clear difference between promises made by government and promises delivered. Tim O’Reilly said it best in his article Why I’m Fighting SOPA: “The people who are pirating are most likely the people who would never give you a nickel to begin with.” And they are in the minority. The majority of the population is law-abiding because it makes sense – we prefer the fair prices on iTunes to the free viruses on torrent sites. SOPA / PIPA only serves to make all of us law-abiding citizens collateral damage and this cannot be tolerated.

    Coming Up Next Time: I’ll give my review of last weekend’s PennApps hackathon, where Justin Meltzer and I got invited to Startup Weekend after we produced PhoneSpot!

  8. 365 Days of Ruby

    I’ve been a lover of Ruby on Rails since 2008 but it took me until 2011 to begin appreciating the Ruby part. I know, it’s shameful. You must be wondering the obvious: How could it possibly have taken you so long? Rails is written in Ruby.

    The honest answer is that I started using Ruby on Rails as part of a desperate effort to replace the horrifically ugly PHP applications I was building with anything (anything!) else. At the time, I had no idea exactly how beautiful Ruby itself was. It took me until August 2011 to watch Dave Thomas’s The Ruby Object Model and Metaprogramming before I started to gain an appreciation. But I was still a total idiot.

    During the 2011 PennApps Hackathon, Marc Weil at CloudMine generously walked me through the Omniauth source for a little over two hours. As I clumsily asked about eigenclasses and instance_eval, he taught me, largely, how not to suck. His sweeping suggestion? Read other people’s source on Github and learn the idioms.

    Since that’s what Marc did to learn and since I was a chump by comparison, I figured I’d follow his lead. So I tried his advice and still I was a complete idiot. class « obj notion was still confusing. I still didn’t understand metaclasses. And I had (still) no idea how classes could possibly be objects. With hope, I began reading Paolo Perrotta’s Metaprogramming Ruby over winter break. Finally on January 5 it clicked. Ruby is beautiful, perhaps somewhere on the order of Maxwell’s equations beautiful. I’m so happy with it that I’m going to condense my learnings into a blog post exploring the Object Model. I’ll do that after the 2012 PennApps Hackathon (which starts today and goes to Sunday).

    But before that, I wanted you to know about a new diet I’ve been on since the Object Model made sense to me a few days into January. I think it’s about 200 calories better than Atkins (and about 2000 calories better than vegan).

    I’m calling it “365 Days of Ruby (and Javascript)”.

    The premise is simple: read one chapter of Ruby (or Javascript) a day for 365 days. I say Javascript parenthetically because for this year’s PennApps, our team is hacking with Rails, Javascript & WebSockets. So in fairness, I kind of brought Javascript back into the fold ex-post on this one. That being said, I tried Node.js back in November and it was pretty cool so we’ll see where that leads me.

    Anyway, I know this 365 Day Diet works because not only have I lost zero pounds, I’ve been metaprogramming like a disciplined ninja since the Object Model all made sense to me on January 5! I say disciplined because the word on the street, and by the street I mean Paolo Perrotta’s book and a few blogs on the subject, is that unless you want to look like a noob, you only use metaprogramming when it helps to clarify, not to complicate. I’ve been keeping tracking my readings on iDoneThis, the world’s most painfully rigorous daily-email disciplinarian. Here goes…

    - Wed, Jan 4: Chapter 4: Blocks, Procs, Lambdas (Metaprogramming Ruby)

    - Thur, Jan 5: Chapter 5: Class Definitions (Metaprogramming Ruby)

    - Fri, Jan 6: Chapter 6: Code that Writes Code (Metaprogramming Ruby)

    - Sat, Jan 7: Chapter 7: The Design of ActiveRecord (Metaprogramming Ruby)

    - Sun, Jan 8: Fail.

    - Mon, Jan 9: started rereading Chapter 4: Blocks, Procs, Lambdas (Metaprogramming Ruby)

    - Tues, Jan 10: Fail (in fairness, I flew Seattle-Dallas-Philly that day and I coded on the plane)

    - Wed, Jan 11: finished rereading Chapter 4: Blocks, Procs, Lambdas (Metaprogramming Ruby)

    - Thurs, Jan 12: Chapters 1-4 (Javascript: the Good Parts)

    - Fri, Jan 13: Chapter 5 (Javascript: the Good Parts)

  9. Pre-Production Thoughts

    Back in November, I joined a new cool project with my buddy Dan Shipper that’s in pre-release with a little under 20 customers and a little over 82,000 hits. Get in touch if you’d like to learn more at @leahy16.

    We’re coding some pretty cool new features over the next thirty days so I figured, what with the New Year and all, if there was ever a time to start blogging, it was now. I’ll be hacking late into the night for all of January, so a moment or two of introspection here and there can’t hurt, right?

    What’s more, coming this Wednesday, January 11th, I’m also starting my TA job in CIS 196, Penn’s first Ruby on Rails course with coding all-star Mat Schaffer. In that spirit, I’ll be keeping notes on our product’s January development and Githubbing the good generic bits to share without blowing the surprise.

    Of course, I also try to read only the good stuff. Another New Year’s resolution I suppose. ;) Here’s what’s keeping me going through the month of January:

    Pickaxe

    Metaprogramming Ruby

    The Republic

    Right. It’s past 5AM Seattle time and I’ve been cranking out code all night so it’s time for me to head off to bed.

    Coming Up Next Time: I’ll talk about my flexible linked list solution to routing constraints I wrote with the Class Macros pattern in Ruby.