Search This Blog

Thursday, September 22, 2011

The Best Way to Kill Creativity

The Best Way to Kill Creativity: I wonder if the best way to kill creativity is to encourage it. This notion will take some explaining.

Creative people literally can't stop themselves from creating. It's a form of OCD. If you plug one hole, the creativity finds a way out of another. There's no way to stop creativity unless you kill the people who have it. Creators will change jobs, defy the government, move to other countries, and do whatever they need to let the creativity out. That's my first point: Creativity is like a hurricane. You can't stop it from forming and you probably can't change its path.

My second point is that there's no such thing as "stimulating creativity." The people who have the creative gene (figuratively speaking) can't stop themselves from creating, and those who don't have it can't get it.

What about R&D labs? They don't generate creativity per se, but they do allow ideas to be researched, tested, and developed. They allow happy accidents to happen, and they provide a way to fund all of that activity. But there's a reason they aren't called Creativity Labs: Scientists don't know how to make more creativity - at least not the good kind that makes the world a better place.

I've noticed that creativity so often springs from hardship or pain that I wonder if it's a precondition. That would make sense from an evolution perspective. Humans don't need to come up with new ideas when everything is running smoothly. We need creativity when we're threatened and all of the usual defenses are deemed inadequate. In other words, the best way to generate creativity is to induce hardship on humans, which would be unethical. Conversely, the best way to reduce creativity is to - wait for it - make things nice and comfortable for creative people. In other words, any ethical attempt to encourage creativity will have the unintended effect of killing it. Happy creators are not productive.

The media has often noted the correlation between genius and insanity. My hypothesis is that insanity, or insecurity of any sort, puts an individual in a continuous state of feeling threatened. For those folks, the creativity gene - if they are lucky enough to have it - is locked in the ON position as they reflexively search for an escape from discomfort.

I was thinking about this because of the latest MacArthur Foundation "genius grants" that have no strings attached. The foundation gives so-called geniuses in various fields $500,000 to do whatever they want, with the notion that some of them will go on to do great things they couldn't otherwise do. And perhaps it works. I haven't seen any statistics about the success rate of the grants, if such a thing can even be measured. But I wonder if the money has the unexpected effect of reducing creativity in this same bunch of geniuses because it makes their lives easier. That's not a criticism of the grants because they aren't designed to generate creativity.

Devil's Advocates will point out that I've previously said my best ideas come during a relaxing shower. Surely that disproves my idea that hardship is necessary to produce creativity. But I'll bet the relaxing shower only helps creative people who feel threatened or uncomfortable in their lives outside the shower stall. And I'm just neurotic enough to feel threatened most of the time. I started worrying about retirement when I was about six years old. I can't leave the house without worrying if there will be an adequate restroom wherever I'm heading. And I'm fairly certain the world will plunge into darkness any minute now. On the plus side, all of that makes it easier to create comics.  

Systems

Systems: The other day I put on my workout clothes and drove to the gym. But when I arrived I didn't feel like working out. This was not a huge surprise, since I didn't feel peppy before I even laced up my running shoes. Perhaps I hadn't gotten enough sleep that week. I wasn't sure what the problem was. I ate lunch in the snack bar then drove home and took a nap.

Question: Did I fail at my exercise goal?

Your answer will say a lot about you. But I'll warn you that it's a trick question. The trick is that I didn't have an exercise goal in the first place, so I couldn't have failed to reach it. What I do have is an exercise system, and I was completely successful at the system. My philosophy is that losers have goals and winners have systems.

In this case, my system is that I attempt to exercise five times a week around lunchtime. And I always allow myself the option of driving to the gym then turning around and going home. What I've discovered is that the routine of preparing to exercise usually inspires me to go through with it even if I didn't start out in the mood. This particular day, my body wasn't going to cooperate. No problem. The system of attempting to exercise worked as planned. I didn't have a trace of guilt about driving home. I've used this system for my entire adult life. I see exercise as a lifestyle, not an objective.

If I had a goal instead of a system, I would have failed that day. And I would have felt like a loser. That can't be good for motivation. That failure might be enough to prevent me from going to the gym the next time I don't feel 100%, just to avoid the risk of another failure.

A week after graduating college, I took my first flight in an airplane. I got in a conversation with a businessman in the seat next to me. He was CEO of a company that made aircraft screws. He told me that his career system involved a continuous search for a better job. No matter how much he liked his current job, he always interviewed for better ones. I assume he failed to get most of the jobs he interviewed for, but over time his system worked, and he became a CEO. My own system at the time involved listening carefully to the advice of anyone who was successful. I adopted the CEO's system in my own career, moving to higher paying jobs about once per year until I started drawing Dilbert (while continuing my day job).

If I were to summarize the CEO's advice, it went something like this: Your job isn't to do your job. Your job is to get a better job. That's a system, not a goal.

Useful Node.js Tools, Tutorials And Resources

Useful Node.js Tools, Tutorials And Resources:







  


Created by Ryan Dahl in 2009, Node.js is a relatively new technology which has gained a lot of popularity among Web developers recently. However, not everyone knows what it really is. Node.js is essentially a server-side JavaScript environment that uses an asynchronous event-driven model. What this means is simple: it’s an environment which is intended for writing scalable, high performance network applications. It’s like Ruby’s Event Machine or Python’s Twisted, but it takes the event model a bit further—it presents the event loop as a language construct instead of as a library.


And that’s not all: what’s really great about Node.js is the thousands of modules available for any purpose, as well as the vibrant community behind this young project. In this round-up, you will find the most useful resources for Node.js, from handy tools to detailed tutorials, not to mention in-depth articles and resources on this promising technology. Do you use Node.js already? Let us know in the comments to this post!


Useful Node.js Tools


Node Express Boilerplate

Node Express Boilerplate gives the developer a clean slate, while bundling enough useful features to remove all of those redundant tasks that can derail a project before it even gets started.


Node Express Boilerplate


Socket.IO

Socket.IO is a cross-browser Web socket that aims to make real-time apps possible in every browser and mobile device, blurring the distinctions between the various transport mechanisms. It’s care-free real time, in JavaScript.


Socket.IO: Cross-browser WebSocket for realtime apps.


Mastering Node

With Mastering Node, you can write high-concurrency Web servers, using the CommonJS module system, Node.js’s core libraries, third-party modules, high-level Web development and more.


Mastering Node


Log.io

Your infrastructure may have hundreds of log files spread across dozens of machines. To help you monitor deployments and troubleshoot, Log.io lets you instantly see composite streams of log messages in a single user interface.


Log.io


Formaline

Formaline is a low-level, full-featured (Node.js) module for handling form requests (HTTP POSTs and PUTs) and for parsing uploaded files quickly. It is also ready to use with, for example, middleware such as Connect.


Formaline


LDAPjs

LDAPjs is a pure-JavaScript, from-scratch framework for implementing LDAP clients and servers in Node.js. It is intended for developers who are used to interacting with HTTP services in Node.js and Express.


ldapjs


Node Supervisor

This is a little supervisor script for Node.js. It runs your program and watches for code changes, so you can have hot-code reloading-ish behavior without worrying about memory leaks or having to clean up all of the inter-module references, and without a whole new require system.


Node Supervisor


Jade – Template Engine
Jade is a template engine for Node.js applications. It combines great power and flexibility with a nice and clean syntax.


Jade - Template Engine


Express

This is a Sinatra-inspired Web development framework for Node.js: fast, flexible and sexy.


Express - Node web framework


Hook.io
hook.io creates a distributed node.js EventEmitter that works cross-process / cross-platform / cross-browser. Think of it like a real-time event bus that works anywhere JavaScript is supported.


Hook.io


Node Package Manager
NPM is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff.


Node Package Manager


Node-QRcode

Despite being quite young, Node.js already has a huge number of libraries for every possible application. This one is a QR code generator.


Node QRCode Generator


NWM

NWM is a dynamic window manager for X that was written at NodeKO 2011. It uses libev to interface with X11, and it allows you to lay out windows in Node.js.


NWM - Node Window Manager


Bricks.js

Bricks.js is an advanced modular Web framework built on Node.js. It is highly flexible. Bricks.js can be used as a standalone static Web server, a basic routing framework or a multi-level Apache-like routing system; and it is modular enough to have the capability to completely switch out its routing engine.


Bricks.js


Node.js Modules
A list of almost all the Node.js most famous modules organized by category. This list definitively is worth a look.


Node.js Modules


90 open-source Node.js modules

Recently, Browserling released over 90 Node.js modules to the open-source community. Some of them are small and strange modules, others might be pretty useful for your next Node.js project.


90 Opensource Node.js modules


Calipso

Calipso is a content management system (CMS) based on the NodeJS server.


Calipso - A NodeJS CMS


PDFKit

PDFKit is a PDF document-generation library for Node.js that makes it easy to create complex, multi-page, printable documents. It is written in pure CoffeeScript, but you can use the API in plain ’ol JavaScript if you like. The API embraces chain-ability, and it includes both low-level functions as well as abstractions for higher-level functionality.


PDFKit - A PDF Generation Library for Node


Forever

A simple CLI tool to ensure that a given script runs continuously (i.e. forever).


Forever - Make Scripts run Forever


Introducing Node.js


Node.js Step by Step

Node.js is an amazing new technology, but unless you’re a JavaScript developer, the process of becoming acquainted with it can quickly become a bit overwhelming. If you want to learn how to use Node.js, this set of articles and screencasts might do the trick.


Node.js Step by Step


What Is Node.js?

Another interesting discussion on StackOverflow about what Node.js is and is not. Recommended for those who are approaching Node.js for the first time.


What is node.js? - Stack Overflow


Learning Server-Side JavaScript

Node.js is all the buzz at the moment, and it makes creating high-performance, real-time Web applications easy. It allows JavaScript to be used end to end, on both the server and client. This tutorial walks you through from installing Node.js and writing your first “Hello World” program to building a scalable streaming Twitter server.


Learning Server-Side JavaScript


Node.js Is Important: An Introduction

“Once in a while, you come across a technology and are blown away by it. You feel that something like this should have been around much earlier and that it will be a significant milestone, not just in your own life as a developer but in general.


Node.js is Important. An Introduction


The Secrets of Node’s Success

In the short time since its initial release in late 2009, Node.js has captured the interest of thousands of experienced developers, grown a package manager and a corpus of interesting modules and applications, and even spawned a number of start-ups. What is it about this technology that makes it interesting to developers? And why has it succeeded while other server-side JavaScript implementations linger in obscurity or fail altogether?


The secrets of Node’s success


Asynchronous Code Design with Node.js
The asynchronous event-driven I/O of Node.js is currently evaluated by many enterprises as a high-performance alternative to the traditional synchronous I/O of multi-threaded enterprise application server. The asynchronous nature means that enterprise developers have to learn new programming patterns, and unlearn old ones


Asynchronous Code Design with Node.js


A Giant Step Backwards?

In this article, Fenn Bailey expresses his opinion of Node.js and why he sometimes thinks Node.js is a step backward compared to other solutions.


A giant step backwards?


Node.js Is Backwards

A hot topic in computing is parallel programming in languages such as Erlang. Will JavaScript join the party?


Node.js is backwards


Videos And Screencasts On Node.js


Node.js Meetup: Distributed Web Architectures

A series of videos from the Node.js Meetup at Joyent headquarters, discussing how to build distributed Web architectures with Node.js.


Node.js Meetup: Distributed Web Architectures


Introduction to Node.js with Ryan Dahl
In this presentation Ryan Dahl, the man behind Node.js will introduce you to this event-driven I/O framework with a few examples showing Node.js in action.


Introduction to Node.js with Ryan Dahl


SenchaCon 2010: Server-side JavaScript with Node, Connect & Express on Vimeo
Node.js has unleashed a new wave of interest in server side Javascript. In this session, you’ll learn how to get productive with node.js by leveraging Connect and Express node middleware.


SenchaCon 2010: Server-side JavaScript with Node, Connect & Express on Vimeo


Technical Articles And Tutorials On Node.js


Proxying HTTP and Web Sockets in Node

This guide is geared to beginners and people who are unfamiliar with reverse HTTP proxying, Web socket proxying, load balancing, virtual host configuration, request forwarding and other Web proxying concepts.


Proxying HTTP and Websockets in Node


Bulletproof Node.js Coding

“Right around the time that I started the third refactoring/rewrite of the code, I felt like I had gotten a feel for how to write bulletproof code, and I thought it would be worth sharing some of the style and conventions I came to adopt.”


Bulletproof Node.js Coding


How to Write a Native Node.js Extension

In this tutorial, you will learn how to write a native Node.js extension the right way, from the very basics to packaging the extension for NPM.


How to write a native Node.js extension


Let’s Make a Web App: Nodepad

This series will walk you through building a Web app with Node.js, covering all of the major areas you’ll face when building your own applications.


Let’s Make a Web App: Nodepad


HTML5 Canvas Drawing with Web Sockets, Node.JS and Socket.io

Web sockets and canvas are two really cool features that are currently being implemented in browsers. This tutorial gives you a quick rundown of how they both work, and you’ll create a real-time drawing canvas that is powered by Node.js and Web sockets.


HTML5 Canvas Drawing with WebSockets, Node.JS & Socket.io


Developing Multiplayer HTML5 Games with Node.js

Inspired by the famous iOS game Osmos, developer Boris Smus has created an alternative version of the game using HTML5 canvas and Node.js. This article explains the main phases of the project.


Developing Multiplayer HTML5 Games with Node.js


Deploying Node.js on Amazon EC2

Amazon’s EC2 is a popular choice for cloud applications. This tutorial shows how Node.js can be deployed on an EC2 instance.


Deploying node.js on Amazon EC2


A Simple Node.js + CouchDB Calendar

In this tutorial by Chris Storm, you will learn how to build a Web calendar with Node.js and CouchDB.


A Simple Node.js + CouchDB Calendar


IIS7

The IISnode project provides a native IIS 7.x module that enables hosting of Node.js applications on IIS. The project uses the Windows build of node.exe, which has recently seen major improvements.


Hosting node.js applications on IIS


Node.js + Phone to Control a Browser Game

Someone wondered how easily a smart phone – specifically using its gyroscopes and accelerometers – could be used as a controller for a multi-player game on a larger screen. With a bit of Node.js and HTML5 magic, it turned out to be pretty simple.


Node.js + Phone to Control a Browser Game


Is There a Template Engine for Node.js?

An engaging discussion appeared on StackOverflow about the template engines that are available for Node.js. Really useful arguments came out of this discussion.


Blogs, Podcasts, Resources On Node.js


How to Node

How to Node is a community-supported blog created by Tim Caswell. Its purpose is to teach how to do various tasks in Node.js and the fundamental concepts needed to write effective code.


How To Node


Nodejitsu

A really interesting blog about scaling Node.js apps in the cloud and about the Node.js events in general.


Nodejitsu Blog


Node Up

A podcast that reviews Node.js, explains its philosophy and goes over many of its popular libraries.


Node Up: Node.js Podcast


Node Tuts

Free screencast tutorials.


Node Tuts - Node.js Free screencast tutorials


Minute With Node.js

Node.js is constantly changing and growing with each new version. New libraries and frameworks are coming out daily that allow you to write JavaScript for new and exciting projects that were previously impossible. This is a one-stop shop for news updates on the entire Node.js eco-system, with a heavy slant on hardcore nerdery.


Minute With Node.js


Felix’s Node.js Guide

Over the past few months, Felix have given a lot of talks and done a lot of consulting on Node.js. He found himself repeating a lot of things over and over, so he used some of his recent vacation to start this opinionated and unofficial guide to help people getting started in Node.js.


Felix’s Node.js Guide


Node.js Knockout

Node.js Knockout is a 48-hour hackathon for Node.js. It’s an online virtual competition, with contestants worldwide.


Node.js Knockout


References And Books


Node.JS Help Sheet

“Node.JS is an evented I/O framework for the V8 JavaScript engine. It’s ideal for writing scalable network programs, such as Web servers. We’ve been working on some exciting things with Node.js, and we felt it was only fair to share our knowledge in the form of an easy-to-read Help Sheet.”


Node.JS Help Sheet


The Node Beginner Book

The aim of this document is to get you started with developing applications for Node.js. It teaches you everything you need to know about advanced JavaScript along the way. It goes way beyond your typical “Hello World” tutorial.


The Node Beginner Book


Up and Running With Node.js

“Many people use the JavaScript programming languages extensively for programming the interfaces of websites. Node.js allows this popular programming language to be applied in many more contexts, in particular on Web servers. There are several notable features about Node.js that make it worthy of interest.”


Up and Running with Node.js


Poll: Do You Use Node.js In Your Projects?


How often have you used Node.js in your projects? Have you found some particular tools or articles useful? Share your experience in the comments to this post. Thank you.




Have you used Node.js in your projects?


Related Posts


You might be interested in the following related posts:



(al)




© Luca Degasperi for Smashing Magazine, 2011.