Quora: What Makes A Professor’s Lecture Boring?

I write lots of Quora answers. Sometimes, when I particularly enjoy on a question/answer combo, I’ll share it here, too. If you like it, be sure to check out my other Quora answers. Upvotes welcome!

Quora Question: What makes a professor’s lecture boring?

That’s an easy question to answer: Lack of saber toothed tigers.

While you probably don’t think the two are related, the brain’s ability to focus is — like everything else about us — evolutionarily programmed. Since humans didn’t make it this far by honing our ability to sit comfortably in air-conditioned lecture halls while being talked at for an hour by some expert in a tweed sports coat, we shouldn’t be surprised that staying focused in that scenario is basically impossible.

Instead, our fight-or-flight response is highly tuned to continuously check for external stimuli that could suggest the approach of potential dangers. In other words, we’re constantly checking for big cats with razor-sharp teeth that want to eat us.

When sitting in a lecture, your biology makes it impossible for you to pay attention to the professor for more than eight-ish minutes. After that, your hunter-gatherer brain decides he or she isn’t a risk to eat you or otherwise cause you harm. Once that’s determined, your brain starts scanning the room for other potential threats, so it gets easily distracted by, for example, the cough of a 300 lb. deffensive lineman sitting two rows behind you. Be careful: he actually might eat you.

The best teachers understand the biological limitations of human concentration, and they structure their lessons accordingly. Specifically, they know to regularly introduce new stimuli in order to maintain student focus.

For example, including humor in lectures helps keep students engaged. That’s probably why your favorite professors are often the ones that tell jokes or include witty comic strips at regular intervals throughout their powerpoint slides.

Alternately, some professors inject an occasional profanity. Personally, I’m not a huge fan of this tactic because I think it’s lazy, but I’ll admit that dropping an f-bomb in the middle of class is an effective way of getting distracted students to pay attention.

As for me, I like to ask questions and then call on random students for answers. Nothing scares students more than being randomly called on by their teachers. Not even saber-toothed tigers.

What Bad Startup Founders Have In Common With Bad Drivers

You’re driving down the road and the car in front of you suddenly slows down. You quickly step on the breaks to avoid hitting him. Five seconds later, he turns into a parking lot. What a jerk!

Once he’s out of the lane, you punch down on your gas pedal a little harder than you need to, perhaps hoping he somehow hears the anger in your revved engine, and you annoyedly mutter: “Nice turn signal, a$$-hole.”

In that type of situation, your anger is justified. A driver who doesn’t use a turn signal is ignoring the simple fact that his turn signal isn’t for his benefit. Instead, he should be using his turn signal to communicate what he already knows — his impending slowdown — to the people around him so they can respond appropriately. By not properly communicating with others around him, he’s expecting people to respond to his actions based on information only he has. That’s what makes him a jerk.

While everyone knows people who don’t use their turn signals are jerks because they don’t properly communicate all relevant knowledge during an interaction, unsuccessful startup founders do the same thing all the time. Of course, nobody calls them jerks. Instead, they get praised for “trying hard,” and the people giving that praise placate themselves with lazy cliches like “startups are hard” and “most startups fail.”

Are you using your turn signals?

Although entrepreneurs and investors will name dozens of reasons why most startups fail, they only really fail for the same reason accidents happen when people don’t use turn signals: poor communication.

Don’t believe me? Let’s take a look at the five most common reasons startups fail according to CB Insights:

1) No Market Need – Companies that failed because they weren’t good at communicating how their product solves a market inefficiency.

2) Ran Out Of Cash – Companies that couldn’t communicate their value proposition in a way that convinced customers or investors to give them money.

3) Not The Right Team – The team never figured out how to communicate effectively with each other.

4) Get Outcompeted – Their competition was better at communicating a value proposition that was functionally identical.

5) Pricing/Cost Issue – Companies that were bad at communicating the value of their products, so they couldn’t charge enough to cover their costs.

The linked CB insights article lists 15 other common reasons startups fail. We could go through all of them, plus dozens of others, and see a direct link between the supplied reason for a company’s failure and poor communication. Any other reasons failed founders might give for why their companies shut down are actually just symptoms of poor communication. Trust me, I’ve failed plenty of times, and I’ve had to explain my failures a lot. While I, like most failed founders, prefer to shroud my shortcomings in more noble-sounding descriptions, every reason I give is just a byproduct of poor communication.

Why don’t people use turn signals?

Some people don’t use turn signals because they truly are jerks. However, most people simply forget. They’re so focused on themselves and what they have to accomplish they forget that other people around them aren’t thinking about the same things. When they approach their destinations they’re too busy thinking not just about the turn in front of them, but also everything they have to do once they make that turn: go into the store, buy some bread, buy some fruit, don’t forget the milk this time, etcetera.

The same is true for startup founders. Founders perform so many different jobs that, when speaking about their work with other people, they often forget how much more knowledge they have about their companies than the people with whom they’re talking. This results is poor communication of information.

In essence, a startup founder who neglects to consider the differences in knowledge between herself and the people she’s talking to is no different than the jerk who doesn’t use his turn signal. In that jerk’s mind, he knows exactly when he’s going to turn into a parking lot and what he’s going to do after the turn, and he doesn’t care if the people around him can’t possibly know those things or be prepared to respond appropriately.

If you’re struggling as a startup founder, ask yourself if you’re doing the same thing.


How Young Entrepreneurs Can Find World Changing Ideas

As someone who teaches in an entrepreneurship program, I spend lots of time talking with my students about how to come up with ideas for products and companies.

Personally, when assessing the potential of a company, I don’t prioritize ideas or products. I believe the most important indicator of success is a company’s approach to customer acquisition. But that’s because I’m old and practical.

My students, however, are young and idealistic and they want their ideas to “change the world” so they like to spend their time dreaming up world-changing ideas.

I think this is fantastic and I encourage it. Young entrepreneurs are exactly the kinds of entrepreneurs who shouldn’t be thinking about practicality and should be trying to change the world. Aside from having more risk-tolerance than people like me (e.g. no kids, no mortgages, etc.), their beliefs about the world aren’t as calcified by the way things currently work. As a result, they have a much better chance of seeing new opportunities for innovation and affecting genuine and lasting change.

Unfortunately, teaching people to identify world-changing ideas isn’t easy. Heck, I’m not sure it’s possible. But that doesn’t stop me from trying to teach it! Luckily, even if my approach is wrong, changing the world isn’t something that happens quickly, so it’ll take at least twenty years before there’s enough useful data to disprove my strategy.

Here’s a look at the framework I give my students for envisioning world-changing ideas. It’s difficult to execute, but it’s conceptually simple. I tell them they need to “see the future.”

How can someone “see the future”?

Yes, I realize nobody knows exactly what’s going to happen in the future. However, not being able to exactly predict the future isn’t the same as being able to roughly outline a general sense of the future based on current trajectories.

For an example, go read E. M. Forster’s “The Machine Stops.” It’s a short story written in 1909 that predicts technologies like the Internet and instant messaging. He doesn’t describe the technologies perfectly, but he comes pretty damn close. That’s because the technologies he’s describing didn’t have to exist in 1909 for Forster to know they were coming. All he had to do was look closely at the technological trends of his day, and, by doing so, he was able to predict the kinds of things that would appear a century later.

My job is to show my students how they can do the same exact thing. Here’s an example of seeing the future that, at least to me, seems like an obvious opportunity for innovation.

Self Driving Cars

Self driving cars are coming. Period. End of debate. There’s no doubt about it. They might take another decade or two to become common, but they’re coming and they’re going to have a major impact on the world.

If I were a young entrepreneur who had the flexibility to operate in an uncertain time horizon, I’d see the inevitable arrival of self-driving cars as a massive opportunity for innovation and monetization.

Just off the top of my head, here are a few examples of potential opportunities:

  1. The decay of driving infrastructure – In a world with self driving cars, less people will own cars, so less people will need driving infrastructure. One example of this would be decreased demand for parking. Parking facilities — especially in urban areas — will be available for redevelopment. Surely some world changing (and not-so-world-changing) opportunities exist in the inevitable collapse of the urban parking industry.
  2. Car-renting – If your car drives itself, why not rent it out when you’re not using it so it can be making you money? For people to rent their self driving cars, they’ll need some sort of rental infrastructure: apps, insurance policies, in-car vending machines, etc. Is there some niche company you can start now that will allow you to grow into a bigger market when it becomes available? For example, maybe you start an Uber vending machine company that, 15 years from now, becomes the world’s leader in car-based food storage systems.
  3. Automated Errands – The day my car drives itself is the day I’m putting my car to work for me. I’m never going to make another trip to the dry cleaners or pick up a prescription at the pharmacy. Instead, I’ll send my car. Of course, picking up my dry cleaning won’t happen by magic. The dry cleaner is going to need some sort of app that identifies my car, and I’m going to need some way of paying for my clothes. Someone is going to have to build those tools, which means some entrepreneur is going to be able to create a business around them.

Are any of the above ideas good ideas? Are any of them world changing? I have no idea. I just know that self-driving cars are going to create opportunities for new businesses, and, if I were taking entrepreneurship classes in college instead of teaching them, I’d be trying to figure out how to start pushing my way into that market now before everyone else does.

Some Other Examples

Self driving cars aren’t the only example of a predictable future. Here are some other industries I’d be looking at if I were a young entrepreneur:

  • 3D Printing – At some point in the not-too-distant future, 3D printers will be as common as regular printers.
  • Blockchain – As a protocol, blockchain is currently where the World Wide Web was 20 years ago. Get ready for massive adoption.
  • Renewable Energy – Whether you’re an environmentalist or not, there’s no denying that unlimited energy sources are good business.
  • Genetics – Pretty soon, everyone is going to know what they’re pre-disposed to dying from. That’s going to create some strange, yet lucrative opportunities.
  • Wearables – So far, most wearables have either been clunky or can sometimes tell you your pulse. That will change eventually.

This list isn’t meant to be exhaustive. It’s just an example of some of the obvious predictions we can make about future technological trends. Right now, the only opportunity in those trends are the direct industry opportunities of building the core technologies themselves. However, in the not-too-distant future, as those industries mature, they’re going to create an enormous amounts of ancillary and tangential opportunities.

You can either wait for those industries to mature and then join the gold rush alongside better funded and more experienced entrepreneurs. Or, if you’re young and ambitious and flexible with your time horizon, you can think carefully about where the industries are headed right now and go stake your claim while the land is cheap.

The Two-Letter Word That Will Kill Your Startup

As a young entrepreneur, I remember calculating the market opportunity for multiple startup ideas using some formulation of the following “back-of-the-envelope” math:

The market has X-many-millions of people. So, if I only capture Y-tiny-percent of that market, I’m going to have Z-ridiculous-amount of money.

Luckily, I advanced beyond that kind of flawed thinking fairly quickly. However, one element of it persists in my work and the work of some of the most sophisticated and successful entrepreneurs I know. It’s a phenomenon I like to call the “if-conditional.”

Here are some versions of the “if-conditional” I guarantee you’ve heard. More than likely, you’ve personally used them:

  • “If we can close X% of the leads we’ve got coming into the pipeline…”
  • “If only X% of our website visitors click our ads…”
  • “If we can just get picked up by a couple of media outlets…”
  • “If just one of our videos goes viral…”
  • “If we get just one investor to commit…”

Do you see the pattern? It’s a pattern entrepreneurs deploy when strategizing or planning future steps. We’re often forced to make decisions without having all the data we need, so we make assumptions about some of the data, and those assumptions take the form of the above conditionals.

The challenge of the “if-conditional” is that it usually oversimplifies an incredibly complex task. Let me parse the examples above to show what I mean:

Example 1: “If we can close X% of the leads we’ve got coming into the pipeline…”

The act of “closing leads” in a sales pipeline isn’t something that magically happens. Depending on the product, a typical sales process can take anywhere from two to twenty meetings including qualifications, demos, proposals, negotiations, trainings, trials, contracts, and any number of other process-specific requirements.

In other words, “closing” even a single lead requires multiple people and dozens of hours of work. Doing that hundreds of times costs… well… a lot more.

Example 2: “If only X% of our website visitors click our ads…”

People don’t randomly click things on websites. Even your 90-year-old grandma who you think randomly clicks things on websites isn’t actually randomly clicking. Visitors to websites click things because UX developers, web designers, and optimization experts spend their careers studying website usage and creating designs that complement and control our actions

If you’re getting enough traffic to your website where some small percentage of clicks will result in significant ad revenue, I guarantee someone on your team is knowledgeable enough about user interfaces to be angry at you for thinking that getting clicks is easy.

Example 3: “If we can just get picked up by a couple of media outlets…”

Anyone who thinks getting press coverage is easy has never actually tried getting press coverage in their life. It’s a herculean undertaking with no guarantee of success.

Example 4: “If just one of our videos goes viral…”


Example 5: “If we get just one of investor to commit…”

You might have better luck getting something to “go viral.”

The point is, when making assumptions about the progress of your company, the word “if” is unassuming but extremely dangerous. Yes, it’s only two letters, but those two letters often obfuscate tasks that are enormously complex, difficult, time consuming, expensive, and perhaps impossible.

Since entrepreneurs tend to be optimistic (in the sense that they’re good at imagining scenarios leading to positive outcomes), their optimism allows them to overlook the complexity of the tasks neatly summarized by their “if conditionals.” Unfortunately, those conditionals represent the overwhelming bulk of the work. When you minimize that work, you don’t allocate enough time and resources to get everything done, and the result is usually failure.

If you want to avoid the trap of the “if conditional,” here’s my simple trick. Anytime I make a statement using some form of the phrase, “If we do X, then Y will happen,” I immediately stop and force myself to re-say the same exact statement while replacing my original “if conditional” with the following phrase:

“If we can do something that takes 12 months and costs us a million dollars.”

By properly accounting for an additional 12 month, million dollar process when devising a strategy, I guarantee you’ll have a much better chance of success. Best of all, if the process doesn’t take you 12 months and one million dollars, you’ll have lots of extra resources to devote to the next project that starts with an “if.”

4 Common Startup Mistakes I Made While Cutting Down A Tree

Last weekend, I chopped down a tree. I was too cheap to pay an extra $200 to have it cut down by the construction crew building a fence in my backyard, so I did it myself. Although I’d never cut down a tree before, it wasn’t a particularly large tree, so I figured I’d make quick work of it.

As I walked outside to unearth the offending oak, I told my wife I’d be done within an hour. Five hours later, I was exhausted and sore and had one less tree in my yard.

Since this isn’t a timbersports blog, I won’t describe any of the actual lumberjacking. Instead, I want to reflect on my naive “done within an hour” prediction because my miscalculations about cutting down a tree are the same kinds of mistakes I often warn my students about when advising them on their startups.

Mistake #1: Having the right tool doesn’t mean you won’t spend time configuring it

Though I don’t foresee myself felling many tress in the future, I took the time to get a chainsaw (in this case, a chainsaw borrowed from my in-laws). Why? Because cutting down a tree with a chainsaw is simple. Even as someone who’d never held a chainsaw, the time between blade-touching-bark to tree-on-the-ground was less than a minute. The relevant lesson here is that having the right tool for a job is usually well worth the cost.

What I didn’t account for was the time I’d spend getting the chainsaw working. It needed oil. It needed gas. It still wouldn’t start even with fresh oil and gas. The starter chord was sticking. It needed some extremely-hard pulling before it was finally loose enough to crank the motor.

All together, getting the chainsaw to actually saw things took an hour.

The same phenomenon often appears in startups. When you integrate a new tool or service into your workflow, the value-add can be enormous. But don’t assume the tool will magically start doing its job. You’ll spend a lot of time learning it, configuring it, and troubleshooting it. Be sure to account for that time in your planning.

Mistake #2: Trees that look small are much larger once you chop them down

Sure, the little hardwood I hacked was tiny compared to the massive pine tree next to it, but once it was lying horizontal, what I thought was barely more than a bush was actually five times my height. I’d originally planned on carrying it to the street for the garbageman to deal with, but I quickly discovered I couldn’t even drag it.

The corollary in startups usually appears when choosing a problem to solve. Young startup founders are often oblivious to how complex a problem and/or market is. Instead, they only see what they believe is the simplicity of their solution. Once they start working on the problem — once they chop down the proverbial tree — they discover it’s much bigger than they initially thought. At that point, they’re too far in to stop. Instead, they’re stuck with a fallen tree in the middle of their yard, and they have to find some way to move it.

Mistake #3: You’ll spend relatively little time on “fun” things like your product

Since my goal was to cut down a tree, I figured most of my time would be spent gloriously wielding a chainsaw and forcing mother nature to crumble before me. However, as mentioned previously, the tree cutting took maybe 60 seconds. The next four hours were spent cleaning up a tree. That task involved only a tiny bit more chainsaw-wielding fun, but lots more bending, bagging, and hauling of heavy things.

Doing a startup is the same. You begin the journey expecting to do glamorous product-related work like development, pitching VCs, disrupting industries, and selling millions of dollars worth of stuff. However, no matter how successful your company becomes, the overwhelming majority of your time gets spent doing things like building lead lists, writing emails, creating reports, fixing bugs, sitting in meetings that go nowhere, and providing customer support.

Mistake #4: Sometimes it’s better to just pay someone else

While revolutionary startups do exist occasionally, they’re rare. Instead, most startups solve problems other companies are already solving. Their solutions might be expensive, but they probably exist.

If you’re creating a company to solve a problem that’s already being solved because the current solution is too expensive, you should take time to understand the real reason it costs as much as it does. Is the current solution expensive because the company that makes it is greedy? Maybe. Or the problem might require a more expensive solution than you recognize based on your limited knowledge of the space.

That was the case with the tree I chopped down. Based on my limited experience, the problem seemed solvable with an hour of chainsawing-fun. Instead, it was five hours of lugging, hauling, sweating, backbreaking exhaustion. Now that I’ve cut down a tree — now that I have more knowledge about a particular type of problem — I would absolutely pay $200 to have someone else solve the problem for me.

A Pro-Grammar Nerd: Beautiful Code Makes Beautiful Language

A Note from Aaron: I published this post on my old blog when I was in my 20s and thought I knew more than I did. When launching my new site, I could either trash old content like this or port it over. I decided to port it over as a personal archive and reminder of my own evolution. In other words, sorry it sucks.

For my birthday, my RocketBolt cofounder, Matt, sent me a $20.00 Starbucks “eGift” card.1 Take a look at the notification email:

Do you see the error? I noticed it immediately because, in addition to being a developer, I’ve spent six years teaching Freshman Writing, and it’s an error my students constantly make. Let me break out one of my giant red pens in the hopes that, just like my students, both you and Starbucks might learn to hate me appreciate my constructive criticism.

Because Matt Hofstadt is one person, he can’t be the antecedent of a plural pronoun like “they.” The sentence doesn’t make any sense, and the mistake is surely damaging the “high quality” brand Starbucks cultivates in order to sell $5 coffee. If Starbucks is lucky, one of its employees is reading this blog post and correcting the problem right now. If not, I can’t help but worry that poor use of the English language is causing Starbucks to alienate the pretentious-douchebag-grammar-nerd demographic.2

Speaking of pretentious-douchebag-grammar-nerds, allow me to explain the evolution of the “I’m going to refer to a singular noun with a plural pronoun” linguistic phenomenon. It’s a product of increased gender equality. People used to generically refer to everyone as males, but you guys probably already knew that, right? As women (rightfully) began to take offense to always being referred to as dudes, a writer could either refer to gender-neutral, singular nouns with a clunky “he/she” type of construction, or he/she could opt for a less-awkward-to-write but absolutely wrong “they” or “them” pronoun. If you’re wondering what option writers tend to prefer – even though it makes no sense – scroll back up to that image of a Starbucks email.

Despite what this post might imply, I’m actually not the kind of guy who believes writers should unquestionably adhere to every grammar rule. To paraphrase Winston Churchill, strict adherence to grammatical rules simply for the sake of following rules is the sort of English up with which I will not put.

I don’t care if you end a sentence with a preposition. I don’t care if you put periods inside or outside your quotation marks. And I certainly don’t care if you start a sentence with a conjunction. However, even in a digital world where text without professional editing is globally accessible and likely to have errors — including this post — I don’t think I’m being unreasonable by suggesting we maintain the grammar practices that computers actually make easier.

Luckily, we still have time to fix a grammar problem, and the programmers of the world can help. By using programmatic logic when we code dynamically generated text, we can determine which gender a noun is referring to and then fill in the pronoun accordingly. It goes something like this:

[if $person == female :  return she ; else : return he ;]

In a case like the generic email I got from Starbucks where the gender of the purchaser is likely unknown, the solution is even easier. Try this little programmatic trick:

[$first_name] [$last_name] wanted to make your day so [$first_name] sent you a $20.00 USD Starbucks Card eGift to spend on your favorite beverage.

Wasn’t that easy? And yet, every day I witness discussions about the importance of beautiful, efficient, semantic code that never mentions outputting proper sentence structures. Why is it OK to harp on things like “semantic css classes” but it’s not important for dynamically generated text to use proper grammar? Let’s not forget that the end result of beautiful code is more than functionality and design. The code we write often dynamically outputs the words our users read, which means no matter how much you hated your Freshman Writing instructor, he or she probably taught you a lesson that could improve the quality of your code.


This post made the front page of Hacker News because people apparently have some very strong (and in some cases) strange notions about both grammar and morality. Anyhow, I should do what I always tell my students. If the structure of the sentence causes so much controversy that it distracts from the meaning, change the sentence. Allow me to offer an alternative that solves everything:

Matt Hofstadt wanted to make your day by sending you a $20.00 USD Starbucks Card eGift to spend on your favorite beverage.

Wasn’t that even easier?

Breaking News: Edward Snowden Is a PR Manager for Google & Facebook

A Note from Aaron: I published this post on my old blog when I was in my 20s and thought I knew more than I did. When launching my new site, I could either trash old content like this or port it over. I decided to port it over as a personal archive and reminder of my own evolution. In other words, sorry it sucks.

Amid all the outrage over the Edward Snowden, government-is-spying-on-us drama, something uncomfortably strange is getting overlooked. Sure people are angry that the US Government is secretly1 accessing our digital data. What I find fascinating is that no one seems to mind that all this data exists. Think about it: if governments can collect all sorts of personally identifiable data from the Googles and Facebooks and Verizons of the world, that means the Googles and Facebooks and Verizons of the world have that data. What do you think they’re doing with it? Do you think it’s digitally decaying on some remote server that no one ever accesses?

By being outraged at the US Government for looking at our data, but not being outraged at the companies collecting that data, as a society we’re essentially agreeing to the following statements:

It’s acceptable for Google to use my data to sell me this:


But it’s not acceptable for the government to use my data to sell me this:


We don’t mind if Facebook violates our privacy so they can sell our data to these companies:

But we do mind if the government violates our privacy to sell our data to these companies:

Verizon can track my phone usage to up-sell me on these devices:

But the government can’t use my phone records to protect me from dangerous devices:

Don’t mistake my heavy-handed photomontage as me condoning government data aggregation. I’m not. I’m trying to remind all the people outraged at the government to remember that governments are big businesses. Big businesses are obsessive about collecting as much customer data as they can in order to optimize their services and increase sales of their products.2

Because one of the most important services governments provide is protection, the best-selling product of a government is usually safety. By accessing user data, the government is doing what big companies do: its trying to maintain a product that satisfies customer expectations. As outraged as people might be to discover how the government is collecting its data, perhaps we can all take mild comfort in knowing that data collection efforts aren’t being hampered by government’s notorious bureaucratic slowness. The fact that government agencies know they should be looking at Google instead of the phonebook means they’re at least as tech savvy as my parents.

I bring up my parents not just because I enjoy any opportunity to poke fun at older generations (as I’m sure my some-day kids will), but also because people like my parents are the people I’m most worried about. As someone who has been in the web marketing industry for a decade, and as someone who has built custom data analytics engines, I’m fully aware of the Internet’s seedy data collection tactics.3 Are my parents? Are your parents? Are you?4

By focusing all the PRISM-related outrage on the US Government, Edward Snowden has orchestrated an amazing PR Coup. He’s made Google, Facebook, Verizon, and every other tech titan’s aggregation, storage, and sale of vast amounts of private user data an incredibly public practice. But no one cares because that’s not the story.

Apparently, no one cares that big companies track our every digital move so they can sell us more products and services in order to increase profits for owners and investors. We only care that governments are tracking our every move in the public interest of safety and security. How strange is that?

I’m not trying to convince you that we shouldn’t (or should) be mad at the government. I’m reminding you that, if we are going to be mad at the government for invading our privacy, we also need to be pissed at the companies who are collecting, storing, processing, and making money off our data. Otherwise, we should stop complaining. Or — option number three — we should be happy there’s an Orwellian government watching everything we do since, clearly, we can’t be trusted to make rational decisions on our own.

Dear Facebook: Please Stop Trying To Steal My Co-Founder

A Note from Aaron: I published this post on my old blog when I was in my 20s and thought I knew more than I did. When launching my new site, I could either trash old content like this or port it over. I decided to port it over as a personal archive and reminder of my own evolution. In other words, sorry it sucks.

Dear Facebook,

I’m the backend developer for a growing startup called RocketBolt. As a startup, we have to overcome all sorts of hurdles like, you know, getting new users, improving our infrastructure, making sure we can pay our hosting bills every month — pretty much the usual. None of it bothers me because I was prepared for all the usual startup things. I was prepared to have friends and family smirkily asking me “So what new company are you building this week?” every time I see them. I was prepared for 48-hour, Adderall-fueld workdays. I was even prepared to start sneaking in and out of my fifth-story apartment via my four-story emergency escape ladder in order to avoid my landlord in case money got too tight.  But no one prepared me for the barrage of Facebook recruiters constantly trying to steal my co-founder, and it’s starting to piss me off.

Let me rewind a bit and explain what’s been going on. As I wrote before, I’m the backend developer for RocketBolt. That means I handle all the really tricky behind-the-scenes code that lets us generate a completely custom, fully-featured, dynamic application that then gets remotely embedded onto websites we have no control over via a single line of code. It’s not an easy task, but I love every minute of working on it because I’m either a masochistic idiot or… well… I’m not really sure what the other option is. I’m also lucky enough to be a backend developer whose childhood best friend became an extremely talented frontend developer and my eventual co-founder. That’s right — no Twitter Bootstrap for me! I don’t remember the last time I had to care what some ancient version of Internet Explorer does to my CSS, and I still produce great looking websites. It’s awesome.

But there’s one problem with the great working relationship my co-founder and I have, and, Facebook, it’s because of you. Not just you, of course. It’s also because of Google, and LinkedIn, and Groupon, and Twitter, and any number of other startup-dream-crushing goliaths. You all have discovered just how talented my co-founder is, and now your smooth-talking corporate headhunters are trying to hire him.

As with any relationship problems, I realize I can’t just blame someone else for everything. I realize I’m partially at fault, too. If I’m being completely honest with myself, I can see that I put myself in this position. I realize that when my co-founder designs an award-winning website like Intellisult.com, no one cares that the little rewards tab in the corner of the page exists because I spent eight months of blood, sweat, and code building a script that could be seamlessly integrated into any website without causing a single JavaScript, CSS, or page load glitch. No one can view the thousands of lines of code needed to build a custom admin interface to manage all of the application’s functionality. No one can know how the dozens of layers of security infrastructure work in order to limit spam and fraud. No, the only thing people see is a pretty looking website. And since I’m not the person who made the website pretty, I’m not the person getting six figure job offers.

Honestly, I’m fine with that. I don’t need your job offers to validate my work. I know I’m good at what I do. But what I do need is for you to stop trying to convince my co-founder to become your next mid-level designer because, let’s face it, a cushy job at a multi-billion-dollar company offering a steady income and dental benefits gets harder to turn down after each and every bite of Ramen.

So please, Facebook, Google, Microsoft, Apple, Twitter, and even Yahoo if you still exist, stop trying to steal my co-founder.

Or, at the very least, give me an office next to his.


Intellectual Property Lawsuits — What Would Bill Shakespeare Do?

A Note from Aaron: I published this post on my old blog when I was in my 20s and thought I knew more than I did. When launching my new site, I could either trash old content like this or port it over. I decided to port it over as a personal archive and reminder of my own evolution. In other words, sorry it sucks.

We all know the story: Two young lovers meet. But there’s a problem: They’re from feuding families. Despite the animosity between their families, the lovers get married. But before they have a chance to enjoy their happily ever after, one of the girl’s relatives kills the boy’s best friend, then the boy kills the girl’s relative, the authorities want to punish the boy, he flees, a plan is devised for the couple to be reunited, but something goes tragically wrong and the two lovers end up dead.

Yes, the story I’m referring to is the famous verse poem The Tragical History of Romeus and Juliet published in 1562 by Arthur Brooke.

Wait… that’s, not the story of two star-crossed young lovers you thought I was describing? My bad. You must have thought I was referencing the very similar tale published a little later in the 16th century by that famous man named William — Palace of Pleasure by William Painter.

What? That’s still not the story you thought I was describing? I guess I can’t really blame you. Those other works are a bit obscure, and as 21st century readers, you can’t be expected to know every story published in the 1500’s. Clearly, the story I’m referencing and I expect everyone to at least have heard of is none other than that famous Broadway musical, West Side Story.

Why bring up West Side Story in a blog that explores the impact of the digital age on society? Reason number one: I’m not afraid to admit my appreciation of Broadway musicals in a public forum. Reason number two: West Side Story remains one of the most beloved and respected Broadway musicals of all time despite being an unapologetic copy of arguably the most famous love story ever told.

Isn’t this the 21st century? Where are all the cries of plagiarism? Where are all the intellectual property lawsuits? How can we, in good conscience, let such violations of basic principles of individuality and proprietary ownership go unpunished? What kind of morally reprehensible lessons are we teaching our children?

I’ll tell you what kinds of lessons West Side Story teaches our children. It teaches them the Human Condition is universal. It teaches them feelings of love, feelings of betrayal, feelings of lust, anger, confusion, indecision, idealism, and hope were as important to a 16th century Italian peasant as they are to a 21st century American schoolgirl. It teaches them ideas are not commodities to be defended with courts and lawyers, but instead, ideas best serve the world when they are shared, expanded upon, and recontextualized to inhabit spheres of use in which they otherwise might never have benefited some of those very people they were designed to enlighten.

So tell me, what lessons are we learning from the ever-mounting pile of intellectual property lawsuits for digital technologies? Are we meant to think a touchscreen interface with logo-labeled applications is a technological privilege only to be enjoyed by people able to spend $500 on a phone and an additional $100 every month for service? Should we believe, within a world of exponentially increasing archived information, an algorithm specifically designed to help us better find the information we most need can best serve us so long as it’s only made available by one company? Can we be convinced a regularly updating list of information created by our friends and family is the property of the company helping us create that list?

Maybe that’s exactly what we should believe. Maybe a visionary like Steve jobs invented the best possible example of a smart phone, and while other companies might be able to alter the concept, they can’t improve it. Maybe a company like Google can successfully filter the Internet only by hiding how its filter operates. And maybe the tool that enables content generation should rightfully deserve some claim upon that content. I honestly don’t have a “who’s right” and “who’s wrong” answer for the alarming explosion of technology IP lawsuits.

What I do have, however, is history. Before the European Enlightenment, the concept of plagiarism didn’t have the taboo it carries today. But sometime during those years of philosophical exploration, people began to see their thoughts as valuable property. And property, as we all know, is often followed closely by theft.

Walls began to go up around ideas. The old models of learning through imitation that had so well served folks like Benjamin Franklin, Sir Isaac Newton, Shakespeare, da Vinci, Chaucer, Cicero, Aristotle, Plato, and Socrates, began to be replaced with academic models encouraging “unique” ideas. The model also created our modern conception of plagiarism as a despicable act of immorality. As a result, few non-violent crimes are considered more reprehensible than the theft of an idea.

Take a look at those names again: Benjamin Franklin, Sir Isaac Newton, Shakespeare, da Vinci, Chaucer, Cicero, Aristotle, Plato, Socrates. They represent nine of the most significant contributors to Western culture, and every one of them relied on, as Mr. Newton so eloquently phrased it, “standing on the shoulders of giants.”

By the way, Isaac Newton didn’t invent that phrase. It dates back to the writings of a 12th century French Neo-Platonist philosopher named Bernard of Chartres.

I can’t sanctimoniously preach the ideals of the past while knowing full well if I write the next Harry Potter or invent the next Google I’ll have half a dozen patent and trademark applications filed before lunch. But I can wonder if protecting my ideas from others will, in the grand scheme of things, do more harm than good. Just take a look at that list of names again and ask yourself, would you rather a few million dollars worth of licensing fees, or would you rather see your name alongside Franklin, Newton, Shakespeare, and Socrates?

I suppose the answer to that question is different for everyone, and I don’t know yours. Heck, I don’t even know mine. The only thing I do know is if my dad ever becomes a king, I need to keep an eye on my uncle because there’s a good chance he’ll try killing my dad to steal his wife and take his throne, leaving me to act like a brooding prince seeking revenge with help from my two best friends . And the only reason I know that is because I saw it in the Lion King.

Sending emails through Mailgun using Codeigniter (and using Mailgun campaigns)

As a developer and startup founder, I occasionally find myself looking at web apps and thinking either “This is too expensive” or “This doesn’t do exactly what I want.” My solution (for better or worse) is to build what I want myself. And when I’m building a quick app that I’m going to be the primary user of, my framework of choice is Codeigniter. It’s fast to develop in. It’s easy. And, most importantly, it’s stable (so I don’t have to worry about keeping up-to-date with weekly version releases… I’m looking at you, Node.JS).

The past few days I’ve been working on an emailing app. After all, why use something as simple and beautiful as Mailchimp when you can build your own clunky, ugly, Frankenstein version, right?

Anyway, a friend suggested Mailgun, and the free 10,000 emails a month sounded like a good deal, so I figured I’d leave SendGrid behind for a few days.

Overall, I’m unbelievably pleased with Mailgun. It’s a solid system. I might even switch RocketBolt to it. However, troubleshooting it with Codeigniter was a bit more tricky than I’m used to. Turns out not too many people are talking about how to make Mailgun and Codeigniter play nicely together. It’s not difficult. It’s just more difficult than it should be because no one has posted instructions. So I thought I’d give a quick write-up. Future spammers of the world… you’re welcome!

Integrating Mailgun into Codeigniter:

The best way to hook Mailgun into Codeigniter is by using Mailgun’s SMTP integration. Start by creating an email.php file in your application’s “config” folder (if you don’t already have one). In the body, you can paste something like this:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

  $config['mailtype'] = 'html';
  $config['charset'] = 'utf-8';

  $config['protocol'] = 'smtp';
  $config['smtp_host'] = 'ssl://smtp.mailgun.org';
  $config['smtp_port'] = 465;
  $config['smtp_user'] = '[your Mailgun SMTP username]';
  $config['smtp_pass'] = '[your Mailgun SMTP password]';
  $config['smtp_timeout'] = '4';
  $config['crlf'] = '\n';
  $config['newline'] = '\r\n';

Here’s a little note to future me: the “$config[‘crlf’]” line is needed to fix a Codeigniter bug that prevents subject lines from being more than 75 characters. (Hey… I said Codeigniter is quick, but I didn’t say it was perfect.)

Once you’ve done that, you’re good to go. Send emails through Codeigniter as normal, and you’ll be burning through those 10,000 free Mailgun emails in no time!

Creating Mailgun campaigns with Codeigniter:

This turned out to be a bit more tricky. Mailgun has a slick campaign tracking system. But, in order to use it, you need to add a custom email header. Turns out Codeigniter doesn’t have a pre-built way of doing that, so you’ll need to extend CI’s email class. As I mentioned at the beginning of this post, the Interwebs are a bit lacking for direct answers about sending campaign headers for Mailgun, but I was able to adapt the solution from an answer about how to do a similar thing for Sendgrid. Here’s what you need to know:

Step 1:

Create a file in your application’s “libraries” folder called “MY_Email.php” and then add the following code:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

  class MY_Email extends CI_Email {

      public function __construct($config = array())
          if (count($config) > 0)
              $this->_smtp_auth = ($this->smtp_user == '' AND $this->smtp_pass == '') ? FALSE : TRUE;
              $this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE;

          log_message('debug', "Email Class Initialized");

      // this will allow us to add headers whenever we need them
      public function set_header($header, $value)
          $this->_headers[$header] = $value;

Step 2:

Once you’ve done that, adding a Mailgun campaign header is as simple as including the following line of code when you first start constructing your email:

  $this->email->set_header('X-Mailgun-Campaign-Id', [Your Mailgun Campaign ID]);

And that’s it. Just make sure to include that line before setting anything else in the email (for example… if you want an HTML email and are loading a View), otherwise it’ll throw a pleasant “headers already sent” error.

That’s it for today. By the way… how’d you like my first coding tutorial? Not nearly as fun as everything else I write, huh? I also learned that my original theme was terrible for showing code, but I think I’ve finally fixed that. Lucky you!