Friday, April 20, 2012

Passion for activities, not ideas

I heard Steve Wozniak, the founder of Apple alongside Steve Jobs, speak today.

Something interesting happened when I returned to my college room: I was explaining something about ideas, passion, and creation to two suitemates and realized I was really trying to speak to myself. I proposed the idea that perhaps it isn't good to go from the idea to the desire to create and learn the tools, like programming. Maybe it isn't good to (1) have an idea and then because of that idea, (2) be inspired to learn programming languages and tools and whatever technical things. (These words were perhaps directed at myself.) Yet this is why I took up engineering. Because I cared more about the realization of ideas... but maybe that's not conducive to good growth.

It might be better to care about the activity. So many of the truly great builders, like Steve Wozniak, this kid on my floor - they're passionate about building, not necessarily any specific idea. They're enthralled by many ideas, and they go from one to the next, building things because they love building. I bet Mark Zuckerberg is similar - he just loves building things. It wasn't a pursuit for that one idea, a social network, that drove him; he had been building things for ages, and he had probably run through tons of ideas. That floormate, Steve, and Mark are all similar in this way, perhaps.

But me? I cared about specific ideas, and that has driven me to learn all these tools.

What do I learn from this? It goes to the passion of what. You get all this advice about "you have to be passionate about something" but you don't hear what category that something should fall into.

I've become passionate about understanding life's mysterious sequence of events, but this is a noun, a specific idea. Building, creation, playing piano - these are verbs, and they seem to be much more fulfilling. They provide avenues to do things, and you can create a lot from them.

*Is it better to have a passion about a platform (which can be used to create and express in many ways) - such as writing, programming, building, or playing music - than to have a passion about a specific dream, like being able to experience anyone else's life, a computer program that does X, or a device that allows teleportation?

Maybe so. A platform, which allows expression all the time, means you can feel the joy of your passion all the time, regardless of what you're actually creating with it or how skilled you are at it. Maybe this is a key idea I've been missing for so long.

Maybe I should not be so lost in a pursuit for a specific dream, but instead embrace a platform - an activity, a verb - that I can wholly enjoy all the time.

(This isn't to say that we shouldn't have passion for an idea. Passion for an activity just provides so much more happiness and fulfillment.)

...

Sunday, April 8, 2012

Making connections: piano octaves

It's interesting how the mind works - particularly how difficult it can be for people of different ages to make connections.

Example: a five-year-old who (on the piano) can play the C-scale up and down one octave if she starts on middle C, but who cannot if her hands simply start one octave higher.

Saturday, April 7, 2012

Debugging a Qt app with gdb

(On Mac OS X Lion)

How do you debug a Qt app with gdb?

A little advice from http://doc.qt.nokia.com/4.7-snapshot/debug.html#command-line-options-recognized-by-qt...

Without Frameworks:
When you tell qmake to generate a Makefile with the debug config, it will link against the _debug version of the libraries and generate debug symbols for the app. Running this program in GDB will then work like running GDB on other platforms, and you will be able to trace inside Qt.

...and http://stackoverflow.com/questions/8949956/build-qt-project-in-debug-mode-from-command-line-aka-bash-script-in-linux helped bring me to this solution:

First pass CONFIG+=debug to your typical qmake -project command.
qmake -project CONFIG+=debug

Then:
qmake -spec macx-g++
(This is the proper qmake command on mac. It might just be "qmake" for other systems.)

Next:
make

Now let's say your app is called "Game":
gdb ./Game.app/Contents/MacOS/Game
(For Mac, the executable is here for whatever reason. Also, note the . in ./)

If you're not on Mac, then just do
gdb ./yourGameExecutable
or wherever your game executable is.