How Open With Your Ideas Should You Be?

Most of Silicon Valley (and all other sensible startup communnities) now really find NDA's to be taboo. I can't place where I saw it, but I'm sure there have been several blog posts by very notable VC's and angels that say if you make them sign an NDA they already know they won't fund you. As far as I know, this is somewhat of a new trend.

The principle behind this is that successfull startups are about execution, not ideas. And if you're so caught up in thinking the only reason why your startup is going to have an advantage is the idea, than you must be delusional and not really understand how startups work. 

I have to say that I pretty much agree with this. And in addition, being open is not only not-hurtful-to-you but it can actually be helpful - to both you and the world.

Being open allows you to discuss your ideas with smart people, talking transparently about the potential opportunity and pitfalls. This will help you see problems that you wouldn't normally be able to see yourself, and possibly open you up to new ways of looking at things. And maybe your discussions will inspire someone else to look at your industry and think of solutions they can provide themselves. Either way, it will allow you (or someone else) to create something that will ultimately provide more value for the world than if you had kept it all to yourself.

The only thing is... even knowing this, I feel it is only natural to be hesitant in talking transparently with competitors or potential competitors. But the ironic thing is that they are probably the ones that can help you the most. They have done just as much, or more, research in the space and should know it as well, or better, than you do. So why not openly talk through problems with the people who are trying to solve the same problems? Here are just a few potential reasons.

We are naturally competitive creatures. I think instinctly, it doens't make sense to hand over ideas to competitors (big or small). We all want to win.

Sometimes it could be suicide. When dealing with bigger companies with more resources, if the idea you have really is that innovative, they could just either out-execute or out-last year. Either way, sometimes it's signing our own death certificate. Though most likely, if they're that big they're probably too slow and also your idea probably isn't that special.

So there are definitely reasons why someone would not want to be that open. But overall, being open and transparent will only help you more than it will hurt. Though sometimes I guess it can still be hard. And maybe I'm just being naiive. 

Why Should Halloween Only Be For Kids?

I didn't go trick-or-treating this year, and that's a shame. 

Fortunately though, the reason I didn't go was because I was just busy with other things and not because "I'm too old."

Maybe it was around age 16 or 17 that I started getting weird, judgmental looks from parents who saw me out and about on All Hallow's Eve (sp?). I can't help it though - I love my candy.

I guess I just don't really understand the reason why people my age shouldn't get to enjoy this awesome holiday like all the younger kids. Is there a law somewhere? Is there an unspoken age limit we should follow? Is it like a reverse-drinking rule thing, where instead of having to be X years old to do it, you must stop after Z years old?

I feel like if 10 year old Wesley can go out and get some free candy, then so should 19 year old Wesley. What's really the difference? Am I supposed to be going to Halloween parties instead or something? I guess that's the expectation, and the reason why candy-givers decide to glance at me like I'm not just dressing up as a monster.

TBH I would much rather prefer getting free candy than going to a party. I'm not really a party person as I don't drink and am inherently introverted. I love people and I love my friends, but in most circumstances I would prefer a sugar high over another high.

I can see though why adults may not like kids (er I guess I'm an adult now... don't feel like one though) like me taking their candy. 

A few bad apples ruined the bunch. Young adults/adults get a bad rap on Halloween for either causing a lot of trouble (e.g. TPing) or for taking/needing more candy than the kids. Well for me, I'm not into the whole chaos-ensuing scene and I'm OK if you just give me one piece like everybody else. Also I won't take 3 if your bowl says "Please take 2."

The candy is supposed to be for the kids? Ok maybe. But why? I should be able to enjoy the holiday just as much as anybody else. At least that's how I feel. So if you're going to give some free ish to 9 year old Julie, you best be ready to give some free ish to 19 year old me. I prefer my America's equal and fair. 

 

Now that's out of my system.

No-Blog-Sloth November: The 30 Blog Posts in 30 Days Challenge

Dan Shipper (danshipper.com) and I have decided that for the month of November, we are challenging/policing ourselves to write a blog post every single day for 30 days. And we're inviting anyone to join us!

As developers, we know that after a late night of coding the last thing we really want to do is write a blog post. But we figure that blogging is a great habit to get into for tech entrepreneurs and here are just a few reasons why:

1. You learn how to communicate better.

We find that through the exercise of writing, we become better writers. And not only does that allow us to always communicate our thoughts and ideas better in writing, but we believe that it will help us do it verbally as well.

2. It forces you to think.

Coming up with creative, new, and interesting topics is not easy. But the ability to do so, is a skill we value.

3. You gain more web presence.

Not only is keeping an updated blog/site better for SEO, but if your blog is interesting and updated often, you encourage old readers to be engaged and new readers to get engaged. And the more readers you get, the more impact your posts have.

We know that "forcing" yourself to write too frequently can lead to poor content that nobody cares about, and thus doesn't actually help you at all, but we'll do our best to make sure we always stay fresh and interesting. And since there are no rewards for winning or staying on track, we hope that whoever cares to join us will also share the same mindset. After all, we are only doing this to get better. So with that in mind, if anybody would like to join us, please do!

We are keeping a list of blogs committed to this No-Blog-Sloth November Challenge here (post a link to your blog as a comment, or message us if you want to be included): http://bit.ly/30posts30daychallenge

 

Link to the original Hacker News Post: http://news.ycombinator.com/item?id=3176412

Tutorial wrap-up

This is partially for my own sanity (as are most of my posts) and partially for the sanity of you readers (thank you to the two or three of you out there *smiley face*). Instead of having to traverse my blog to find all the neat how-to's I figure I'll compile a list here to make it easy.

I will be separating this into three categories:

  1. Hardy hand-holding tutorials - ones where I do my best to go step by step through the process with you.
  2. Read-between-the-lines tutorials - ones where I am still pretty detailed but may rely a little more on outside links/tutorials.
  3. Wesley-approved external tutorials - ones where I may just throw a link out there with a little description but I have followed the tutorials successfully.

I use tutorials I find on blogs all the time so I know how hard it can be to follow them, let alone find one that actually results in what you want. So believe you me that I do my best to make mine readable and fool-proof. In addition, any tutorials I link to I am confident that they work and are easy-to-follow (and if not then I will usually clarify where they go wrong or what details they may be missing). If you find any of these things to be untrue, then please let me know so I can correct them.

Now let's begin.

 

Hard hand-holding tutorials

A slick way to SSH into your AWS EC2 instance [Ubuntu/Cygwin] (July 2011)

How to Set Up Dedicated MySQL Databse Server Using Amazon EC2 (July 2011)

Tutorial: Setting Up Apache/SSL to Serve HTTPS (July 2011)

Python Web-page Scraping - Installing lxml and Beautiful Soup (June 2011)

How to automate slugs (and other fields) in Django Models (June 2011)

 

Read-between-the-lines tutorials

Generating Python documentation from comments using Sphinx, Epydocs, or Pydocs (October 2011)

Get client IP addresses using Nginx and Django (July 2011)

Posting code snippets on blogs, use Github/Gist (June 2011)

 

Wesley-approved external tutorials

"Write failed: Broken pipe" fix for AWS ec2 SSH (September 2011)

Fix: Python MySQLdb Insert Statements Not Saving (September 2011)

Dealing with the hassles of 'syncdb' in Django - how to use South (September 2011)

Facebook OAuth in PHP and PHP with Nginx (September 2011)

Getting Python to work with Facebook's OAuth 2.0 auth system (August 2011)

Deploying Django on Nginx (July 2011)

Nginx configuration solutions for Comodo SSL and serving static files (July 2010)

The Irony of "A Gentleman Doesn't Kiss and Tell" & Why Geeks Are the True Gentlemen


It occured to me in the shower (we all do our best thinking there) that many a self-proclaimed "gentleman" is an utter liar.**

It turns out that there's a lot of irony when someone says "a gentleman doesn't kiss and tell."

You see, when a guy is with his friends after a date, he'll often be pestered with details about the night. And you'll see a lot of guys (faux-)coyly respond, "A gentleman doesn't kiss and tell." And almost 100% of the time, his friends will infer from this that he really did kiss the girl. So this reveals one of two things about the guy:

  1. Either he honestly kissed the girl, then later implied that he did, and therefore is not a gentleman by his own definition of a "gentleman doesn't tell"
  2. Or he didn't kiss the girl, then later implied the he did, and therefore is not a gentleman by the rule that gentlemen should live up to their failures and are not sleezebags.

Whichever of these two is true about the guy who claims "a gentleman doesn't kiss and tell," one thing remains constant - the guy saying it is not a gentleman.

 

BUT... there is a way around this. The answer is to be a geek. Here's why:

You can respond to your friends asking you about your date simply by saying something like, "A geek never gets any." By doing so, you (my friend) are a true gentleman. Because by saying something like that, you are also revealing one of two things about yourself:

  1. Either you honestly didn't kiss the girl, and therefore are a gentleman because you were honest about "failure" and lived up to it
  2. Or you actually kissed the girl, and by saying that you didn't, you didn't "kiss and tell" and protected the girl. Well done sir, you are the gentleman.

Whichever of these two is true about this geek, he is the real gentleman here.

 

Now obviously there are some holes in what I'm saying. For instance I'm slightly hypocritical when I talk about gentlemen lying/being-honest. In the first example, I mention that the guy should be honest about failures, and in the second example I mention that the guy should lie to protect the girl's privacy. The key here, I think, is that certain lies are OK if there is a good purpose behind it (this debate calls for a whole other blog post). The other possible holes are mainly just what I claim to be the values of a true gentlman. Also debatable. Let me know what you think in the comments.

 

**I didn't know this before (and it still sounds a bit awkward), but "many a" is singular...
http://www.llrx.com/columns/grammar1.htm
http://www.towson.edu/ows/sub-verb.htm

A Python Yipit API Wrapper - my first real contribution to open source

So I've been playing around with this idea to mashup a daily deals API with Yelp to get emails only for deals at good restaurants and I knew I wanted to use Yipit. I looked at their API and realized they didn't have libraries/wrapper for anything and so I decided to create one for Python.

I figured a) it would be useful to me to use in the project, b) it would be useful to other python guys using Yipit, and c) it would be useful to me to just do it and learn on the way.

So I finished it and here it is: https://github.com/wesleyzhao/python-yipit-wrapper

AW YEAHHH.

I was able to even do some cool abstract class stuff with Python, learn how the whole **kwargs argument works in python, generated two awesome sets of documentation, and some other stuff. I structured it very similarly to the python-twitter wrapper, so thanks to those guys.

You can easily install the python-yipit wrapper by downloading the tar, unzipping it and...

 $ cd python-yipit-wrapper 
$ python setup.py install 
$  >>import yipit  
 

Generating Python Documentation from comments using Sphinx or Epydoc or Pydocs [UPDATED]

So I recently created a Python wrapper for the Yipit API and wanted to create some legit looking docs. To do so, I found some free things to help out from StackOverflow.

The things I ended up trying out were Sphinx (beautiful, but the quick generation is not super detailed), and Epydoc (not as beautiful, but very detailed and well-structured...so my favorite out of the two).

The Sphinx tutorial on the site is slightly confusing (or at least it was to me) so I used this better Sphinx tutorial. I followed it to the 't' and it worked out. Actually it is a little old so there are TWO things that are slightly different but not a big deal.

The Epydoc tutorial on their site is VERY easy to follow. It's super easy and this is basically all you have to do (after installing - which I did from source - of course).

 $ epydoc --html the_name_of_your_module -o the_folder_you_want_the_docs_in 

Boom. Simple as that. Just comment your code super well, and it will be AWSome :). 

************
UPDATE
************

Just realized python has something built in that lets you generate just one html file that is pretty sufficient (and I would say potentially even better than Sphinx's quick generation).

Here's how


$ pydoc -w package_name

And that should generate a file in the directory you called it called 'package_name.html''. You just need to make sure that package_name is in your PATH.

How 'Load Testing' Saved Me From Walking 10 Miles Home...

Today I learned how to jump start a car... while watching someone else do it.

We have an old 1983 BMW 320i that a family friend had given us before he moved to China and we were just planning on donating it. Recently, a friend of mine found himself in a situation where now he needed an extra car badly. So I thought we could just sell it to him.

I knew the battery was dead, but he came by and we tried to jump it. I learned, from watching him do (what he learned on YouTube), you put the Red to Red, then the Black on the good (battery) Black, and the other Black on part of the engine of the bad car. 

We did that, turned his car own, then a little later started the BMW up. There were several failed attempts and several hours that went by before we finally got enough juice to get the BMW to reverse out of the driveway and drive forward down the street.

Here's where some load testing came in to play. We drove the car down the street, successfully, then back home. Then we went a little farther in the neighborhood, and back home. Then a little farther, and back, etc etc. All the while keeping the car on so that it would charge itself.

At one point though... we drove about 0.5 or so miles away from home (not far at all) and in the middle of pulling out of a school's parking lot, the car just died on us. 

We spent a little time just getting the steering wheel to turn again, and then had to push the car manually back into a parking spot. 

We walked back to my house, got my friend's car, and drove it to the school, where we jumped the BMW again.

By this time, we realized we should have just had one person driving the beamer and the other with a good car/good battery following right behind. Well we did do that all the way home, ended up parking it, and waiting for another day to get the beamer to a day-to-day-working-condition.

We figured we just need to try charging the battery with a charger for a couple hours, then open up some caps to figure out if the battery is salvageable, and also figured out we need to change the oil

 

This is not the usual thing you'd find on this blog, but it was a memoriable experience for me and I wanted to document it.