Opening the Gates to the Tech World

One of the great myths of the startup world is the belief that the recent proliferation of internet technology means that anyone can start a business.  While it is true that in recent years the cost of starting a tech-based business has dropped sharply and many of the barriers to entry have disappeared, there are still many people without the opportunity to get in on the “tech revolution”.  Don’t worry, this is not another article blasting the technology industry for a lack of diversity.  Instead, I want to discuss an idea for a new type of productive philanthropy organization about which I have been thinking for the past few weeks.

Continue reading

The Biggest Problem with WordPress, in One Image

Today I tried to make a new post on this blog, and this is the page with which I was presented:

This page is entirely about writing a post.  Yet the part of the page in which I can compose the post is only 6.12% of the total page area!  The other 93.88% of the page is devoted to blank space,  useless links, website nav, and generally anything but what I need.   This is like writing an essay through the mail slot in my front door.  Am I the only one with this complaint?

Edit:

It appears the text box is resizable, and I am an idiot.  However, I still think it’s bad web design to have it so small by default.  If I didn’t realize, a lot of less technical people definitely won’t.

Why Facebook (and everyone else) should sell your data.

In today’s age of free apps and an open web, many of the products essential to the daily life of a connected citizen are supported by advertisements.   The meaning of an ad supported website has changed a lot over the past 10 years.  In 2000, most websites would throw 3-4 popup ads and a banner ad at each customer, hoping to get a click by accident, frustration, or luck.  Today, most ad supported websites and apps will instead show a single, targeted ad.   This improvement was facilitated by the aggregation of user data that allows advertisers to target customers by demographic.

When signing up for any free service today, it is par for the course to click “Accept” on a 10+ page EULA or TOS that gives the company the right to collect and/or distribute your personal data.   Most people are fine with simple data collection, but the sale of personal data from one company to another makes many uncomfortable or angry.   However, one must look at the information market from a more rational perspective in order to understand why any web service with your data would be wise to sell it as fast as possible.

Continue reading

The Open Source Beach

How many times have you heard this:

I need to lose weight for the summer.   I’m on a beach diet.

I’m guessing your answer is “a lot”.   That person wants to lose weight not because it will make him/her feel good or because it will increase his/her lifespan, but because other people are watching.

The more you think about it, the eyes of others are a very powerful motivational tool.  Sure, everyone does a little self-improvement because it feels good, but most improvement is a result of outside pressure/scrutiny.

I’m sure at this point you are thinking “what the hell does this have to do with programming”?  And the answer is: writing for open source is like going on a beach diet.   When you contribute code to an open source project, or just open source a project of your own, I’m sure you spend extra time cleaning up the code and making sure it’s not “hackish”.   Even the most accomplished programmers refactor their code before they release it to open source, even if the functionality doesn’t change.   The sense that others are watching motivates us, and it’s part of what makes open source code so great.   Nobody wants to show up to the open source beach with fat, heavy code, and that is, in my opinion, the real power of the open source movement.

What’s the lesson here?  It should be obvious: write code that is open sourced.   It doesn’t matter what the project is, you will only do a better job if you have to show other people your code.  It does not depend on the intelligence or ability of the people reading your code, but only on their presence.   I am starting to learn this lesson now, and in the future I plan to release every piece of code that can.