Is it better to be intelligent or diligent? Put differently, should you wish that you had a higher IQ, or should you make sure you spend your time in a productive way?
I’ve spent some time thinking through this and found a simple metaphor to financial investments. IQ is your principal investment and your ability to work hard is the investment’s growth rate.
Let’s compare two simple scenarios, both done over a 20 year time horizon:
Scenario 1: Intelligent – invest $10,000 at a 5% growth rate. You’re born with a high IQ and learn at a normal pace, growing intellectually 5% each year.
Scenario 2: Diligent – invest $2,500 at a 20% growth rate. You’re born with an average IQ (1/4 of that in Scenario 1) but are focused on self-growth so you spend your spare time doing things that enhance your abilities.
At the end of 20 years in scenario 1, your investment will be worth $26,533. At the end of 20 years in scenario 2, you end up with $95,844, which is $69,311 more than the final value of scenario 1.
Obviously the two are not zero sum so it would be optimal to have high IQ and high productivity, but in absence of both I think working hard regardless of where you start is the winning strategy.
I’m starting to use tornado as my go-to framework for python web projects. After being a django user for 5+ years this is a pretty big change for me. I like that it’s simple and gets in your way as little as possible. There’s something nice to be able to run a whole web application in a single file. Also being able to use python functions in the template layer saves so much time (bye bye templatetags!).
Django is a great framework for larger projects that require certain features like an ORM, user auth, email. Anything that it doesn’t come with out of the box is available as a plugin ..
➜ ~ pip search django | wc -l
I imagine there are plenty of useful Tornado plugins that I’ll start using as the need arises. For example, I still haven’t found a nice way to handle forms. I’m pretty used to using django’s is_clean() and ModelForm patterns. WTForms seems like a good option that I’ll look into soon enough. Elixir looks like a cool ORM (thanks for the tip, Bob).
Do you have any favorite open source tornado projects?
It’ll probably be a while before (if) we switch Priceonomics over to Tornado, but the temptation to do a full re-write sure is tempting .
Came across an interesting post this morning that related to some thoughts I’ve been having about my own personal work ethic. It takes from a piece written by William James Dawson, called The Gains of Drudgery. I’ll paste the first paragraph here, the rest is after the fold.
By drudgery, I mean work that in itself is not pleasant, that has no immediate effect in stimulating our best powers, and that only remotely serves the purpose of our general advancement. Such a definition may not be perfect, but it expresses with reasonable accuracy what we usually understand by the term.
[...] The rise of microtargeting is a function of new logarithms—and computers fast enough to process them—that are able to capture all this trash and turn it into gold. Over the years, the data-mining industry has become adept at recycling information about the websites we visit and the products we buy. Rumor has it that some high-end companies, including Omaha Steaks, can now make more money by selling their customer pedigrees to data-mining firms than they can from selling their product
Interesting read. It’s a bit higher-level than I would have hoped, but it does a great job introducing some of the many ways that organizations are leveraging seemingly minute, uncorrelated data in ways that will add values to organizations.
""" A thin middleware that caches based on function name and arguments. """def _inner(*args, **kwargs):
a_str = "&".join([str(a)orNonefor a in args])
kw_str = "&".join(["%s=%s"for key, val in kwargs.iteritems()])
key_name = slugify("%s:%s:%s"%(func.__name__, a_str, kw_str))
cached = cache.get(key_name)ifnot cached:
cached = func(*args, **kwargs)
cache.set(key_name, cached)return cached
This is designed with django in mind, but you can replace cache.set and cache.get with any cache cache framework of your choice. Also, I use slugify because many cache frameworks don’t like spaces in cache key names. Slugify replaces them with dashes.
Third, meditation can help a man “be his own man” and feel comfortable in his own skin. That constant stream of input we face each day often carries messages of what we’re supposed to think or feel. Talking-heads spout off opinions as if they were facts. Advertisers try to convince us that buying such-and-such product will make us feel more virile and manly. Meditation allows us to be alone with our own thoughts and discover what we really think about the world and ourselves.