On jedis, ninjas, and samurais

January 8th, 2011 § 7 comments § permalink

Geeks of all stripes often like to refers themselves as being the Computer Science equivalents of some warrior society or other that, let’s be honest, have the tons of cool in their day-to-day affairs, imagined or not, that real people don’t. I can’t really fault anyone who does that because I’ve done it as well.

Granted, I never liked Star Wars that much. Being a Star Trek fan, I always considered Star Wars something you grew up from after a while–good for kids but not much else (please, don’t kill me, I’m just kidding–well, not that much). Star Wars is fantasy, Star Trek is science. But, yes, the Jedi are cool. I’d rather yield a light-saber than a phaser, but give me a quantum torpedo any day over any weapon the Empire or the Republic can devise.

And there are also the samurai–that old-school, valiant, often involved in hopeless, honor-bound matches. From Seven Samurai to The Last Samurai–and let’s not forget Eiji Yoshikawa‘s novel–we Westerns have always admired the way those mostly Japanese warriors conducted themselves, considering their Way of the Warrior something at least to aspire to.

Finally, there are always the ninja or shinobi. Sure, their are not very popular nowadays, but there was a time they were the rage of the young population. As with the samurai, theirs was an art grounded in pretty much the same principles of honor and duty–although they were the functional equivalent at their height to a Black Ops team while the samurai could be considered more of Special Forces, sometimes for hire (as ronin) and sometimes bound to a given House.

But one thing all those orders have in common is that they were mostly monastic-like orders, based on an strict code as how to proceed, on a very strict training discipline, and, in many cases, honor-bound not to contract any format relationships beyond those formed with their brothers in arms.

As geeks, we often like to compare ourselves to members of those orders because, as I said, they are cool. Except for Ninjutsu, which preserves many of the training shinobi, you can’t really become one of them but you can aspire to some of the same ideals, try to live by the same codes because as much of them apply to interpersonal relationships as to war and survival itself.

But there’s something we mostly forget about those orders–the fact that they were primarily and above it all, about discipline. Both the real, historical training of the samurai and ninja and the imagined Jedi education required an immense and live-long commitment to discipline that overshadowed anything else the person would do. And, most of the times, required sacrifices.

Which brings me to my point.

In the past four years, I’ve been part of almost ten different teams. I’ve seen teams succeed and fail, to recover and proceed, to bond and become great, to be disbanded and go on with their lives. In short, I’ve been part of a large number of situations in which to participate and observe how teams interact and get things done.

And in all those years, one of most important thing that separated bad and even good teams from great ones was discipline, often the most overlooked part in the examples geeks try to emulate when choosing their heroes.

It’s quite ironic that people often profess to like Agile methodologies because they seemingly create order from chaos through self-managed teams, teams that supposedly don’t need much direction to get going and do great things, teams that don’t need to be told what to do.

But the truth is, Agile will only succeed with teams that are very disciplined and that understand the trade-offs you will need to make in order to make a project happen. Yes, Agile is about embracing change but that only means you will have to make sure you work better with your peers and with the organization as a whole–understanding change, and those trade-offs requires discipline and a down-to-earth approach that most people seem to overlook when becoming enchanted with Scrum and its sister disciplines.

I was talking to a friend a couple days ago and we were discussing how often geeks of the younger generations are using the semi-ADD excuse to go off track on projects and postpone things. Geeks, he was saying, are notorious by their short-attentions spans.

I think–and said that to him–that the opposite is true. The true geeks are those disciplined enough to maintain their focus and keep going in spite of distractions. You need to be pretty focused if you want to debug that heinsenbug that has been plaguing you for the past 40 hours and keeping your server crashing each couple of hours. You need discipline to keep poring over documentation, going back and forth, to find that elusive piece of information that will optimize your routine so that it will really run for large datasets. And you need a strong sense of direction to participate in a team and keep track of everything that’s going on in an ever-changing environment.

In short, discipline is what separates the dilettantes from the craftsmen. It’s what makes thing happen and what really creates great teams. It doesn’t mean you need to be a prick, or that you can’t have fun, or even that you need to follow pre-ordered steps every time you do something. But it means you need to practice and give thought to what you’re doing until it becomes second nature, until you really master your art.

And that’s what ninjas and Jedi and samurai do. They don’t dabble, they don’t run when the going gets weird and the tough turn pro. They just–you know–do it, and do it well.

Living in Code

January 27th, 2008 § 0 comments § permalink

God said, “Cancel Program GENESIS.” The universe ceased to exist.

Arthur C. Clarke

The Universe as a virtual machine or a simulation is a very old idea. Even outside of science, many culture have thought of the material existence as the dream of a god.

Christianity has always dealt introspectively with questions about the relationship of God and the Universe. For example, if only God existed before time and space, where is the Universe in relation to God, and whether the Divinity had to limit Himself when He created the Universe.

More recently, with the rise of favorable conditions, many people have started to devote more time to this kind of exploration–which is a very natural curiosity I may add, considering we all want to know how and why we are here, in this particular time and state.

So it’s no surprise that a recent article, The Physical World as a Virtual Reality, attempts to frame the virtual reality question in light of modern physics. The article is the result of a scientist’s exploration about the implications of a virtual Universe within our current physics framework.

It’s a fascinating reading although no conclusion is given, and no attempt is made to create any mathematical models around the questions present–something I doubt is possible now, and which, in fact, may not be ever possible. Of course, if we were able to prove that the Universe is a simulation, the implications would be civilization-changing (Simulacron-3 / The 13th Floor are very good fictional explorations of those themes).

But more interesting than that would be attempts to hack the code of the Universe, changing and introducing new laws. One could imagine an infinite series of Universes, each running their own giant simulations and experiments.

Of course, that begs the ultimate questions: if we are in a simulation, which form do take blue screens of death?

A few notes on Twitter

January 9th, 2008 § 0 comments § permalink

[1] talk in a light, high-pitched voice
[2] idle or ignorant talk

The Oxford Pocket Dictionary, 2007 edition

In light of those definitions, one could wonder why Twitter chose such a name. Then again, maybe the joke is one us.

I’ve been using Twitter intermittently for a few of months now. I started using it in a BarCamp for which I provided live coverage for my Portuguese blog readers, and decide to experiment with both formats simultaneously: I would write a more elaborate entry after a particular discussions, and would try to post tidbits of the conversation on Twitter while people were talking.

The experience ultimately left me dissatisfied with Twitter. Maybe I’m not a multi-tasking person, but trying to post to Twitter, while listening to people talk, and also trying to keep with replies to the Twitter entries proved too distracting to me.

After a couple months of usage, I can’t say I have any special insights about Twitter. Twitter seems to be IRC done socially. IRC has long been a popular application among a certain kind of Internet user, but it depends on a very specific application and clear choice about what channels one should follow. Twitter changes the equation by allowing a user to subscribe to people instead of channels. Obviously, its lacks the focus of a dedicated IRC channel, although it provides a way for its users to reach across followers and follow specific subjects.

This mechanism can be used efficiently by people trying to keep or meetings and conferences, although some users will be uncomfortable with the flood of information tracking can unleash. But considering that neither IRC nor IM can provide such immediacy across people not linked by personal contacts, Twitter has a definitive advantage here.

The ability to follow people and occasionally track specific channels may prove the only advantage of Twitter to me. Using it, I’m able to keep updated about the notational Zeitgeist of the people I’m following–and, indirectly, of the people they are in turn following. Also, if the people I follow belong to my market, I may be able to glimpse trends by seeing what it’s calling their attention during the day. Of course, this can be quite misleading and people seeking insight may not find what they are looking for.

Twitter is a noisy tool. Keeping it continuously on is a sure way to lower productivity. More than IM, because most people still respect status messages, while Twitter gives an implicit permission to call your attention–if you are following somebody, it’s quite obvious you want to see what he or she is posting. This stream of consciousness can be very distracting.

Ultimately, Twitter has outsourced office talk, and the same restrictions apply. You may think people are not paying attention only to find your boss listening over your shoulder.

I will probably keep using Twitter by applying the same logic I apply to IM. I follow status conventions, and I rarely allow people to bother me when I’m signaling I’m busy. With Twitter, this mean turning it off whenever I need to focus on a problem. What Twitter itself may gain with my participation remains to be seem.


December 6th, 2007 § 0 comments § permalink

The first programming tool I ever used was Turbo Pascal 5.0, in 1994. A 5 1/4 disk, passed around by a professor, was the gate to a world that had interested me since my first readings about computers and their capacity to be told what to do. From release 5.0, I quickly jumped to 5.5, which offered rudimentar OOP support, and soon was using 6.0, which allowed programmers to use much more interesting OOP features and had excellent graphic support. I started programming my own graphical window manager until I realized it would be too hard to compete with Windows.

My interest in Borland products didn’t dwindle soon. After a brief fling with Turbo C++ 3.0, I went on to program in Delphi from 1997 to 2003, with sporadic uses until 2006. When the company I worked for changed its entire product platform to .NET, I had no choice but to follow. Borland’s frequent strategic mistakes didn’t help as well. Soon, one of my favorite tools was just a memory. I still have a copy of Borland Delphi 6, which I purchased with my own money, but the CD has probably stopped working by now.

After so much time away from the community–I used to be very active in the Borland newsgroups, specially those related to Web programming–I was surprised to hear that Borland restored and modernized their Turbo line of tools. There is now both Turbo Delphi and Turbo C++, new versions of Turbo Pascal and Turbo C++. For those into Microsoft tools, there is also a Turbo Delphi for .NET and Turbo C#.

Obviously, those are basic versions, stripped from any professional or enterprise features. Nonetheless, it’s nice to see Borland returning to its roots, even though those tools won’t sell enought to justify their existence. Then again, who knows, names can be powerful. Since there a free version of Turbo Delphi, I guess I’ll be programming in Delphi soon again.

Better than Turbo Delphi would be a new version of Turbo Pascal. I still have a disk around with lots of interesting programs to run.

Ion3 and Conkeror

January 7th, 2007 § 4 comments § permalink

After I permanently moved to Emacs as my primary text editor, I got so used to the ease of running multiple actions by the mere use of a few keystrokes that I’m trying to do the same thing all the time in other applications. Unfortunately, and quite obviously indeed, any such attempts failed with the exception of a few coincidences.

Recently, I decided to try a few alternatives I found to maximize the Emacs “experience” in my daily use of computers.

The first alternative was to use Ion3 as my primary window manager under Ubuntu. Ion3 is a minimalist window manager, with a strong emphasis on the use of the keystrokes to access both the interface and application. It uses frames, easily accessible via simple key combinations, as a way to partition screen space. The convenience of such setup can only be really seen trying it. One of the most interesting advantages of Ion3 so far is the ability to use a kind of full screen mode for applications, without menus, window borders or any other additional baggage. Very productive, indeed. Obviously, given Ion3 relative immaturity, a few glitches are still present in some tasks.

The second alternative was Conkeror, a Mozilla extension that completely modifies its interface to resemble Emacs, with familiar key bindings and concepts.

The experience has been positive so far, although I could do way with a few details in both applications. Fortunately, both are strongly customizable and I’m experimenting with different approaches to really find out how viable both Ion3 and Conkeror are for daily use. It may turn out that I should not keep using them. Muscle memory may get me addicted to them, and since I’m still required to use Windows as part of my daily work, I may get so used to a very different desktop that I’ll not work quite as well on any other setup.

Anyway, if anybody knows of other similar options, I’d like to hear about them.

Abuse of power

March 27th, 2006 § Comments Off on Abuse of power § permalink

We hadn’t even reached half of the way till our destination when the MP3 player batteries drained. Despair ensued. Until we thought about a solution: plugging the MP3 player on the USB port of the laptop. Copying the files wouldn’t have solved the problem, since the player earphones could not be dettached from its body. Anyway, bliss.

RSS as a platform

March 18th, 2006 § Comments Off on RSS as a platform § permalink

With the recent developments in the RSS world, including the launching of Windows RSS Plataform, the discussions about the use of the format as real platform is undergoing a change. Now, there is a lot of talk about how developers can maximize the potential of the format e how they can solve the existing infrastructure problems.

In all that I have read, I didn’t see much discussion about mutable RSS feeds, that is, interactive feeds that allows users to pass data through the aggregator itself, changing the future behavior of the feed based on their choices.

Obviously, support for such interactivity isn’t present in the current crop of aggregators — at least, in none of the many I know and/or tried. In fact, a persistent fear of security problems that could be caused by such interactivity pervades the entire area. XSS and similar exploits caused most aggregators developers to completly eliminate the use of objects, forms and JavaScript inside RSS feeds.

Such an approach puts extreme limits on what you can do with RSS, of course. More than an year ago, answering a question posed by a friend of mine, I wrote here about interactive RSS feeds. The application I designed to test the concept at the time (a very simple prototype) is still running and can be accessed in the test area of this site. It’s a RS feeds that instead of simply presenting content, allows users to act on its entries. Given the limitations present in the current generation of feed readers, you will probably need to open each entry in the browser to see the feed in action.

The big question is: what can we really do with RSS? Is a read-only platform enough? I don’t think so. Considering the context in which I created the application mentioned above, that of a course served through RSS, a read-only plataform is not that interesting. A typical course has an activity tree that’s completely dependent on the students’ choices. A read-only format would not provide a complete experience in such a scenario.

As mentioned before, there are real security concerns involved in allowing users to interact with a feed. Allowing any kind of content can lead to episodes like the one caused by Mark Pilgrim a couple years ago, whose RSS feed “took control” of hosting computer with a clever use of HTML. The text he wrote later about the subject impacted the development of an entire generation of aggregators. Yet, browsers handle the same issues today and — despite some problems — they do just fine.

Before I start repeating what I already said in the other article, I believe RSS can evolve a lot beyond what it is today. New applications — especially in the much hyped Web 2.0 style — depend on a bigger possibility of interaction than that offered by aggregators today. Since the competition in the area seems to be big, I guess it won’t take long until we see changes.

Star Trek: The Original Series

March 18th, 2006 § 2 comments § permalink

For the past fews days, I’ve been watching Star Trek: The Original Series in DVD. I bought the boxes as soon as they became available here in Brazil, but had not seen many of the episodes until now. I guess I was a bit afraid I would be disappointed if I saw all episodes — after all, the series is very dated now.

I remember staying awake, when I was a teenager, until much past midnight waiting for some random episode to air in a local TV station. I had to wash my face constantly to keep myself from falling asleep, always anxious because of the station’s tendency to scrap Star Trek everytime another program run late. Most of the times, I would sleep frustrated, because that had happened again. But when I managed to see an episode, oh, the glory of it.

I still marvel at how much sense of wonder the series evoked in me. Today, seeing those old episodes, it’s funny and fascinating to see how much the producers accomplished with so few resources. I can’t help but laugh at the poor techniques used in some episodes. Science on the series is mostly technobabble, a heavy mixture of reality and pseudo-theories, but it works, because it’s not the most important thing.

What really mattered, and what really made me crave for another episode, was the way the series managed to break conventions and perceptions — sometimes contradicting itself, but breaking them anyway. Robert J. Saywer, in the introdution of his recent book, Boarding the Enterprise, writes:

“As William Marshall, who played cyberneticist Dr. Richard Daystrom in the episode ‘The Ultimate Computer’ (Season 2, Episode 24), said in an interview shortly before he passed away, it’s impossible to overstate the impact it had in the 1960s when white Captain Kirk referred to the black Daystrom as ‘Sir.’ Was it any surprise, two decades later, that NASA hired Nichelle Nichols, who played Lt. Uhura, to help recruit the first minority astronauts? Star Trek gave us an appealing vision of a tolerant future that included everyone.”
Without doubt, this is the great merit of the series. That’s what make it interesting enough to be seen forty years after its creation, despite the poor makeup, the bad scenarios, and the comically exaggerated acting: the fact that it spoke, and still does, of the human condition, something that will never be dated and will always be needed.

Murphy Week

March 15th, 2006 § Comments Off on Murphy Week § permalink

Murphy decided to camp in my office this week. Considering he was an engineer, I’m not surprised he always prefers to wreak havoc on areas were machines and humans collide.

To begin with, I managed to delete root’s home directory on my server. You know how. Not surprisingly, it was the only home directory not in the daily backup — ironic, considering the daily multi-level backup of the home partiation where all other users are. To make things worse, the directory contained three very important scripts which I had to recode promptly. At least, I took some time to optmize them. At three o’clock in the morning. Next, I upgraded MySQL from release 4.0 to release 4.1. Everything fine, except that I forgot to restart the most important service using MySQL: the e-mail server. It took me three days to realize no e-mail was being sent or received by the system. Fortunately, it was a weekend, and only one customer called to (kind of) complain. Restarting the e-mail server fixed the problem.

At last, today, after working on a project for almost six hours, I overwrite everything I had done with a single command. On the only of my projects which is not under version control. It figures.

Murphy is decidedly hanging around.

James Doohan, RIP

July 20th, 2005 § Comments Off on James Doohan, RIP § permalink

Scotty’s gone… Thanks for the wonderful times.

Where Am I?

You are currently browsing the Geek Stuff category at Reflective Surface.