Friday, October 22, 2010

t(good_idea) = bad_idea?

Sometimes you think something is such a good idea, and think, when you make a product out of this idea, it will be a big hit. (You don't? Well, I do...)

One of them was something like the 3D Timeline, a product of BEEDOCS.



I was thinking "managing my timeline in nice representable 3D form will be great!"
Then I noticed that there is a commercial product out there already, and I tried it.
Well, it was less then what I expected.
Or probably, there needs to be a lot of work, to make it really easy and intuitive to use.

Then I happened to use the MS Project.













Man, it's so much easier and intuitiver to use, and is so much more helpful and useful to me!
Don't really care about 3D representation of my timeline, when it's nice, easy and intuitive to use like this!

So now, after a while of time (with the function of time t(x)), my idea about 3D representation of timeline found out to be, it was not so much a good idea after all, I think.

Logging is your friend

Matt Welsh (a Harvard professor, working in Goolge for some months) posted this nice blog post about his experience working in Google.
Computing at scale, or, how Google has warped my brain

(Well, also a Berkeley professor Randy Katz did interview about his experience in Google, which was also very inspiring.
I guess working in Google is very inspiring isn't it?! I want to be inspired as well!!! >.< )

Anyway, apart from all those nice technologies he mentioned that he could use in Google (that we have no access to), the thing about having a cloud computing infrastructure and "Log first, ask questions later" is a really nice insight, I think.

Yeah, logging really is your friend, when you develop anything on cloud computing, even if you do on a small cloud computing infrastructure you've built (like me!).
I haven't quite realised until now the importance of loggin everything and also that of the unit testing.

They really are important because you have limited possibilities and options for debugging.
From now on, I'll insert logging code everywhere in my code, and keep doing unit testing...

Next step of pop music & pop culture era?

When you now listen to the music of The Beatles or Deep Purple, oh man! The sound!
It sounds so old!


Well, people say it's the sound of nostalgia.
(By the way, in my opinion, the Led Zeppelin sounds still not bad.)

Then there was a MIT graduated electrical engineer who formed the Boston, where they kind of revolutionised the sound of pop recording.


So far the 60's and 70's rock musics.

Then came the Michael Jackson and Madonna with some visuals, dancings and music videos.


Now there's someone like Lady Gaga and Black Eyed Peas (I love them!),


but, I don't think it's the next step of pop music and pop culture era.

Then what will be the next era of pop music and pop culture?
Of course, I believe in software. And the power of imagination.
I think the next step will be with strong introduction of interactive form of software.
Of course I'm not talking about any softwares that needs to be installed.
It will be with something like the HTML5!

As like this amazing HTML5 music video!



With the introduction of the Google TV, those form of new era of interactive pop music consumption and pop culture is right in front of us coming as the main era of pop culture consumption, I think.
Or maybe some cool whole new 3D sound device will be invented and the music will change according to that.

About whole this idea of the next step of the music evolution, David Byrne has made a nice presentation at TED talk, relating the evolution of music to the sound of birds, that they both tend to match to their surrounding circumstances and environments:









Sunday, October 3, 2010

Java or Python?

Python is a great programming language.

(Image from xkcd web-comic.)

































It is so simple, powerful, dynamic, and easy.
It has very good support of interacting with other C/C++ based libraries like OpenCV, VTK/ITK, R, etc.
It has a very good support for mathematical/scientific programming with its very nice Numpy and Scipy packages.

Though when it comes to developing enterprise application, how good is it?
In developing enterprise applications, we want to package the whole application as a single package.
Does Python have any good support for something like that?
It might be useful for Unix-like systems as an open-source distribution, in that the developers make a Make-script and included the other dependencies to auto-compile all of them.
But when we want to just distribute a single, ready-to-use package, how good is Python in that aspect?

And, about Cloud Computing,
and using one of the most used Cloud Computing infrastructure: Google App Engine,
we can only use pure Python or Java code to program our application for it.
Then the advantages of Python about Numpy, Scipy and all the other good support for nice interface for the other C/C++ based libraries, just go away.

Java is in contrast, pretty much self-contained.
But it's not as easy and intuitive as Python.

Now, some people say Jython might be a good option for developing for the Google App Engine, when we want to take the advantage of the both worlds: here.

So, what is the answer?
May be we're still waiting for a perfect programming language to come.
Waiting for Godot...

(Image from here.)


















But I'll update here about my decision, experience and so on about the dilema - Java or Python, especially for scientific programming and cloud computing.