Kevin Smith on pursuing ideas

Found some really good advice by Kevin Smith on how to fix life if it gets screwed up. Unfortunately, I visited his twitter page and came across another slurry of tweets which also seems to be some nice motivating words. F*, it isn't joy to read from downwards in twitter and thats exactly what I had to do. This guy tweets essays in 140-char parts and I just can't skip it because it's nice. I compiled it into a top-down readable piece (with some formatting) for everyone else to read.

When you read a story about this deal happening or this film being announced, the wheels of whatever it is tend to turn v-e-r-y s-l-o-w-l-y. And that's fair: we ARE talking about millions of dollars being spent on some dopey, make-pretend bullshit. Point is, when you read the story about it online, that's our information-currency culture feeding on theoretical news. The ink's not dry on that deal yet. It's all ideas at this point - the absolute BEST state of being in the movie biz. Ideas cost NOTHING & require ZERO risk. And yet, oddly, the LEAST amount of time's usually spent in the idea stage before a small fortune is dumped on a whimsy that's still half-baked.

Case in point: CopOut[1]. When I was brought in, there was talk of spending $70mil on a Will Ferrell/MarkyMark version of A COUPLE OF DICKS (the pre-COP title). Then WB didn't wanna pay the actors' full quotes, so off go they go to do the over-$70mil+ OTHER GUYS. WB then made WAY less expensive deals with Bruce & Tracy, I cut my salary by over 80%, and we were off to the races with what became a $32mil flick. Which is why, hate on it all you must, but (as per 2 high-level studio sources & 1 of our producers) turned a profit already. It did what it was designed to do. All of that came from Jeff Robinov's idea stage. The idea that the movie could go on without Will & Mark resulted in . And while some may harp about whether the flick was their cup of tea or not, the people who paid to have it made were content we all hadn't wasted money. The idea stage of the process has always been a years-out kinda thing. I'll talk about a project that'll sometimes take years to happen. That's because the idea itself is WILLING the film into existence. RedState was like that: I first talked to @ about it in London, over three years back. I knew then that it wasn't gonna happen easily, so I "threw my hat over the wall", so to speak, and FORCED myself to make it happen. Over 3 years to get to the point where the cheapest movie I've ever made since CHASING AMY became more than just chatter; it became a reality.

Sometimes, you gotta believe FOR everybody else - and sometimes, you do it by yourself for a long time. Then, if you're lucky, someone like @ starts believing with you - first theoretically, then in practice. And two people believing is the start of a congregation. You build a congregation of believers and you try to build a cathedral. Sometimes, it's just a church. Sometimes, it's a chapel. Folks who don't build churches will try to tell you how you're doing it wrong, even as your steeple breaks the clouds. Don't listen. But before all of that, you gotta start with the idea - and not just the idea for the story/movie/novel/installation/song/podcast/whatever. You gotta start with the idea that you can do this - something that's not normally done by everybody else. Since it's not second nature to take leaps of faith, you have to SMotivate yourself. Even invent language, if you have to. Embrace a reasonable amount of unreasonability. But nobody else can believe in you if you don't believe in what you're doing.

I've willed almost all of stuff I've done into existence, and if I can do that, ANYBODY can do that. So start your chatter: talk about what you're going to do. Don't pursue a role, LIVE that role. Like my sister told me, back when I confessed I wanted to be a filmmaker. "Then BE a filmmaker," she said. "That's what I'm saying: I wanna be.". And that's when she gave me the million dollar advice: "No - BE a filmmaker. You say you wanna be; just BE a filmmaker. Think every thought AS a filmmaker. Don't pine for it or pursue it; BE it. You ARE a filmmaker; you just haven't made a film yet." And it sounded artsy-fartsy as fuck, but it was CRAZY useful advice.

A slacker hit the sheets that night, but the CLERKS-guy got out of bed the following morning. So plant the seeds early & take as much time as it requires to will your goals into existence. Keep a few going, you'll never get bored. Expect moments of discouragement, but don't wallow in them.

Remember that if an ass-hat like KevinSmith can succeed at something like film or life, then what the fuck is stopping YOU from doing the same. I was not 'to the manor born'. This shit was not manifest, nor was it ever offered. And just remember that, when you read about some deal or project, sometimes, that's just some bluffy motherfucker trying to change his or her game by willing some shit into existence.

Only guy I ever heard of who got an amazing life literally handed to him was Hal Jordan[2]. Don't wait for a dying alien to give you a magic ring: just do it yourself, Slappy. We can't all be Superman, but we sure as shit can train hard, and with loads of practice, we can elevate our simple, non-Kryptonian selves to be the Batman. And who the fuck doesn't wanna be Batman? Batman has an impeccable moral compass. He's clever & mysterious. And when fucktards get sassy, he punches them in the face. Plus, that car. Ideas cost nothing yet have the potential to yield inexplicably long careers & happy lives. So go ahead: dream a l'il dream

[1] - CopOut (2010) movie

[2] - Hal Jordan is a comic book super hero who became the Green Latern.

And you can easily make out that Kevin Smith is a film maker (director, writer, producer). His "twessay" starts from starts here and ends here.

P.S: I never understood on what SMotivate means. Guess that's a typo or does that stand for SuperMotivate?

Posted
 

Directions for the lost

I’ve noticed recently, that new engineers are lost when it comes to choosing which technology or tools to learn. Most of the skills being taught to them at schools and colleges are either not good enough for the real world or too old, to use them to develop decent software. So here’s a little random list of things to learn.

And there’s something about this, you might not get a job at a bigshot services company. Nevertheless, this will surely make you better than the crap most enterprise developers are. End of chapter.

First, read the essay Hackers and Painters by Paul Graham.

I haven’t linked to any sites below when I mention tools. I expect you to use your searchFu. I hate spoon-feeding. I like people who can work with the shortest amount of help and love to try things out.

Now here’s the free gold.

  • Learn to use IRC. Find a tutorial and connect to the Freenode server. Ask for help when you need it. Oh and before you ask for help on any channel, ask your friend Google for an answer. She knows a lot. Use a pastebin to share code snippets on chat.
  • version control system - git, mercurial. And for online repo hosting try Github, BitBucket, Fogcreek Klin or Assembla. Watch out for what version control systems they support. If you’ve heard of subversion and suprised as to why I’m not mentioning it: Subversion gets a honorable mention in Hall of Crap with leading points.
  • Use a cool text editor. When I say cool, i mean it. Vim or Emacs. Vi is available on every linux distribution in some form or the other. Knowing the basic Vi commands will help when you aren’t on your comp. Emacs is what I use. It’s got a pretty steep learning curve, but it does a lot of stuff and unlike other editors, it does all of it well :) Tell me… how many people get to say this: “IRC, browsing, do ASCII art, playing some old-school games… my editor can do anything I want it to do”. If you choose emacs, check the resources link on my site for a couple emacs related links, especially the emacs starter-kit. Learning emacs helps. A friend pushed me to learn it and I owe him something huge for that. Caution: it’s got scary commands. I've tried Sublime Text too. and it's a good place to start since it's cross platform and you can use it for free.
  • Attend developer events in your city. There’s no better place to meet geeks. Find events that focus on your interests. Most cities these days have their Barcamps. Bonus points if you meet female geeks. They are rare like relics. I’ve seen them but never met one (I’m not looking for them anymore).
  • Find where the coolest guys at the events read tech news. Make that your news source :)
  • Watch the Wargames movie.
  • Get out of your cradle. Goku’s hit points increases everytime he fights with an opponent better than himself. Likewise, you get better only when you get out of your comfort zone and try things that you aren’t comfortable with. And code often.
  • Web developers, this is where you start - html, css and javascript. There's Mark Pilgrim's Dive into HTML5 free book.
  • php - Ya I know you’ll think I’m retarded. php is nice to start with if you’ve just started learning programming. I’m am a ruby fan. There’s nothing like php for starters. There’s no such thing as ‘deployment’ when it comes to php. Just drop the files in your server and it works. It’s stupid-simple. Don’t be surprised if your 10yr old neighbour writes a cool ToDo app with it. Moreover, you can find half-a-million cheap hosts for your first web app. Explore MVC frameworks like CakePHP, Kohana, CodeIgniter, etc (I mean check them out and pick one).
  • Javascript - Honorable second mention. There’s a lot to this two-faceted language. Can be used on server-side(checkout CommonJS frameworks like Node.js and Ringo.js) as well as client-side (in the browser). Just keep writing javascript often to learn more :) There’s a lot of cool stuff you can do with this, like writing a 3D engine.
  • Python and Ruby - Now you get the real deal. When you see how tough it is to even get a login system working in php, you look for greener pastures. Revisit MVC frameworks: Django, Flask, Rails, Webpy, Sinatra and the like.
  • HTML5 & CSS3 - heard that already huh? Ya that’s the buzz these days. The features that impress me the most are improved SVG support, WebGL and WebSockets.
  • Learn a Lisp: Common Lisp, Scheme, Clojure, Racket or just about anything that you think has a good name. Read “Structure And Interpretation of Computer Programs (SICP)”. It’s available free online.
  • Databases: PostgreSql and Sqlite (the SQL breed). And MongoDb or CouchDB or just build your own key-value store for fun. (NoSql databases).
  • You need UI toolkits? Alternatives to Visual Basic? Try Qt. You get a drag-drop UI builder better than the one Visual Basic has and it works with C++ and every language on earth that has bindings for it. Also WxPython & GTK are worth mentioning when it comes to UI toolkits.
  • TDD and BDD. Heard of testing as a seperate career? No you are wrong. Learn to write tests for your code.

 

Need a job? Make a resume. Link to your opensource code (github/gitorious/bitbucket profiles) or the apps/websites you made. Emphasize on those and nothing else. Clearly state the languages you are comfortable with and be ready to learn new tech stacks if required. Find startups in your city or that accept remote workers/interns. Work for them. (But never work for free)

When you are finished with list, you’ll feel like HotShot (Transformers). That’s both good and bad. HotShot is an excellent soldier and a respectable leader. Like him, you’ll know enough to understand what you are about to do, but… like him, you would be led into thinking that anything thrown at you would be easy and within your knowledge/skill to perform. Beware!

Finally, for any task, choose your tools carefully. You can multiply matrices in C or Ruby or Lua or insert-your-favourite-language-here, but it’s simpler to do it in R, than any of those. Or probably use a library available in your langage. Some tools are created with certain use-cases in mind. Check if the ones you choose would help in completing the task at hand in a way that increases productivity and helps you deliver quality software.

You now know enough. Learn the rest as you go. Now shut up and start writing code.

P.S: Don't try to learn everything above at once. Take it slow and easy. Start with an editor and a language and read a few pages of SICP everyday.

Posted
 

Getting back to Sellopy

Guess every once in a while a guy like me needs an ego-hit to know where he stands. I could never get my simple-but-super-cool SMS dashboard idea for my college day working on the big screen. Kicking myself for not testing if the damn-old projector was compatible with my netbook running Ubuntu. A whole week of work went waste. I felt let down since the beginning of that day, when all those who were supposed to be responsible for the event never thought of the projector’s placement. Made me look like a fool when I reached early to set things up and didn’t find my tech setup. And then when it comes to the part where I was supposed to hook up my app to the screen, it’s screws up by not detecting my netbook and nobody there gives a shit as to why or what happened. Now I’m hell-sure, that The Joker must’ve been a master at making the most of situations… “if you are good at something, never do it for free”

Shit happens! I’m getting back to Sellopy. I’ll finish it this time. I started developing it wayback in July 2009, began a rewrite sometime in November 2009, and now after a few lessons learnt from having burnt my fingers, I know my audience, ah! and also myself pretty well. I know Sellopy can be done real fast – from scratch, once again. MVP is coming soon. Brothers, my fellow h4ck3rs, here I come…

P.S: Thanks to Nick and Isc at Prgmr hosting for giving me an upgrade during their pre-order period. I still owe them my wiki article on setting up a light-weight Rails production environment on their VPS pkgs. I promise, I’ll do it this weekend

Posted