Updated Avatar

Yesterday I've updated my public avatar.

It had passed quite some time since the last time I had a good reason to do so, and I finally found a good picture that would illustrate my state of mind at this moment.

The new avatar features my baby child Miguel and myself during the baptism party of a cousin's newborn baptism that occurred this past weekend. It's also one of those rare situations were I get to wear a tie so the photo itself reminds me that sometimes one needs to set loose from the work ties and give some attention to the family.

This kid has been a blessing in my life and I can't avoid making a smile whenever I look on the pictures to remind me of how lucky I am for having this kid and the respective mother on my life.

:)

Step 1 for a new life.

Well.. today I've got the confirmation of what I've been waiting for a long time.

My current employer authorized a prolonged absence from work that will last the next 6 months until the end of January 2010.

This means the first 6 months of my life without a single salary for the first time in a decade but at the same time I simply couldn't feel happier at this moment as this change also means 6 months living a very desired goal in my life and fight for a chance to improve my work quality as the results are already visible.

On a financial level, things are sort of stabilized for the moment. I've reached my income saving objectives and gathered enough resources to sponsor my own education costs which will be substantial during the next 2 years.

Still missing to figure how to provide my own subsistence in the U.S. without spending these savings, guess that a bank loan is in order but I'm leaving this option as the last resort since life after the studies won't be easy either and each saved coin will count to balance the monthly expenses.

But so far so good.

It's kind of scary to see everything falling into the correct position as if this is ordered like a huge puzzle. A lot of things are in motion and a lot of things can still go wrong in the future but I'm trying to live with all doors open in order to face any possible obstacles as they come along.

The last and perhaps most ubiquous decision will be the penalty imposed by my employer in case I decide to move away after the 6 months. But if things really go well (crossing my fingers here) then I won't certainly regret my decision.

As always, time is short for everything but somehow things get balanced.

Life is fun again.

:)

My first LOC counter

Yesterday I've completed my first LOC counter.

LOC stands for "Lines Of Code" and the basic purpose is to count the number of valid lines of code that were written for a specific program.

First of all, in order to be able to count anything - you will need to specify a coding standard template.

This template is a small paper with all the rules regarding the way how code should be written for a given task. For example, avoid excessive capitalization, split each logical statement onto it's own line, assign meaningful titles to variables and so on and on.

My first attempt at designing a LOC was fairly simplistic. It simply stripped away the comments or empty lines be done with it.

But this wasn't a very realistic view of the true LOC.

As mentioned by the teacher, adding tags to the code would be more productive (even thought not mentioned in the task requirements) and so I did.

The results couldn't have been better.

I simply add "//TAG:X" (where X is replaced by the code of the category where the code belongs) and it will count all valid lines until the "//finished" tag is found.

Very simple but also very effective. This way I'm capable of truly counting the lines of quality code between what has been added, modified or recycled.

The PSP also requires to count deleted lines so I've made another tag "//DELETED,15", where 15 is the number of deleted lines.


This sort of software is really interesting, in the past I'd simply count all lines from top to bottom, most admit that this is a substantial improvement.

Unfortunately, all these modifications and all the troubles of moving away from the Azores made my fall behind schedule to deliver the assignments. I better start working to get back on track..

Living in Coimbra


For the first time in a decade I can say that I've moved back to my homeland.

I'm living back at Coimbra, place where I've spent most of my youth days.

This was at the time a city with a superb quality of life, still is today.

At the first days it was all a bit too confusing, many small things changed, family got older, shops closed, new buildings rised and all the usual things you'd expect to change over the years.

I've spent my free time over the last days to go outside and drink coffee at my favorite places. First debuted the "Cartola", placed at the "Praça da República". A somewhat peaceful place during the morning where a person can drink the coffee while studying.

Yesterday, I've went to "Celas", very close to where I used to study. Amazing to see the difference. I can still remember how things looked without being urbanized.

And today I've been at the "Santa Cruz" coffee house, another emblematic place to drink coffee placed right at the middle of the old city. Expensive coffee btw, it costs 80 cents..

It's been a very entertaining week. Coimbra has good quality of life and plenty of history to walk around. Will certainly be nice to stay here for some time.

:)

The MSE begins

And so begins one new step in my life.

No doubts about the magnitude of this step that is changing my life at so many different levels, let alone even wonder about the way how life will continue from here forward.

It's a mix of many differences for my life and I'm still feeling a bit outside the crowd thought the other students are all extremely polite and bright. Nevertheles, I should already be used to changes but I guess that leaving the Azores definitively is still tough to accept as a reality for the future.

I should probably enjoy the course and flavor the things that we are about to experience but in my mind remain all the doubts and uncertainty about my professional future.

---

A life without thinking about MSE in the horizon doesn't seem so challenging while the other available courses are nowhere interesting enough to push your own capacities, but now I'm actually living this experience in first hand - where should things go from here?

Well.. the first thing before thinking on anything else is study. And I mean really STUDY!

The instructors passed a very clear message that no student will be forgiven if their average grade drops below 3.0 GPA and if any test achieves a B- grade you're immediately signaled with a yellow card and need to work even harder to seriously improve the grades.

No joking around - study!

The former MSE student presentation revealed a concept popularized as "Good enough", and this is something that might seem revolting for most perfectionist developers but when you're working under a very tight time-frame then I think "good enough" is all you can do.

The overall presentation and care demonstrated throughout this process is impressive. This is indeed one course that is regarded as important to the image of the university and they are available to help at any given moment but it is also required to your commitemment and energies focused on the degree are total.

I liked the instructor presentations, they're all extremelly humble and polite even thought their CV's express a lifetime of work in software/hardware development and research.

Coming from a military world where discipline is sometimes forced upon people in so many repressive ways to achieve some established results, it's actually fun to work in a environment where no such methods exist and all work is purely motivated by your own struggle to achieve optimum results.

Between all these talks I couldn't accurately evaluate what my performance will be during the course. I've never coded anything in Java, .NET or Visual Basic - never needed anyways - but now they will become the working tool as other students only seem productive using them and my performance will surely degrade (especially if the time frame is very tight to present results).

Guess I'll need to adapt in order to survive amongst the other fellows in this tribe - thought my opinion for the moment remains solid that these languages are nowhere near my coding preferences.

-------------

For the moment we will begin the PSP (Personal Software Process), this is a remote lecture-style class that will occur during July.

Excellent opportunity because I'll probably get a lot of time to go outside in the middle of the day to drink coffee while working at the class assignments - no better way to get things done.

As things move forward, the difficulty bar will surely increase and I won't be having so much tranquility (or quality time) to get these objectives completed.

Also, the army only grants permission to remain absent for six months. After this time period I will have to decide wether to remain or not inside the organization or otherwise be forced to request my removal from the permanent board in case I decide to go forward with the MSE all the way until the end.

I'm up for the challenge, let's begin!

:)

Publicity, MSE and life


This week has been hard.

Why?

Because ever since the beginning of my online adventures that I've always took good pride in staying far from annoying google ads but this time I'll need to swallow my own pride and use them to survive.

My life took a very unexpected turn around. I'm leaving the place where I live, the work that provided such good quality of life and also stray away from some of the projects that I care about.

My goal to justify these measures is also well worthy of my efforts - the MSE from Carneggie Mellon.

This course is no joke for those that are faint of the heart and for those who have that crazy dream of achieving a somewhat incredible state of nirvana in terms of computer programming (if they manage to survive during 18 months of intensive stress).

I'm no exception on this group of dreamers and I'm aiming high but will this goal justify the used means?

On the case of publicity, just wish there was a better solution but I see no other source of income available during the next couple of years since.

My wife will try to find a job but she'll surely be paid the minimum wage and our child's daycare center will cost half of her earnings.

It's too much in my conscience to bear the predictable guilt of being such a weight on her shoulders at the expenses of my own goals that will surely prejudice her peaceful tranquility.

Maybe this way I'll get enough resources to leverage my contribution to the family and afford the internet and transportation costs.

My apologies to those who I disapoint with this measure, this was not an easy decision.

Flat file web software


Is mySQL really necessary?

It has all sort of advantages and performance advantages that people so quickly advocate but is a SQL database really needed to power up small websites or web applications?

My preference goes to fully portable websites that require no external database and keep everything tidy and organized inside the same folder. This makes the task of creating a new site fairly simple and even simpler to move everything onto another server.

For bigger sites, mySQL is still a tool of the trade but I've learned to look onto smaller alternatives as better option to power up those small sites that don't require a heavy CMS but still need to stretch a bit further than static HTML codings.

On this blog post I'd like to refer two developments that I've been using for some time.

The first, is a forum software that runs solely on a flatfile (no SQL needed), the name of this project is "Ultimate PHP board", very small sized, free and very easy to customize. This is the forum software that I'm also using to power up the ninja forum.

The second project is called "Razor CMS" (freeware) - a name easy to remember and also the type of software that is meant to be easy to work with from the start. This is a good option is you need to start a new website and only require to showcase a few pages.

It comes with a WYSIWYG editor and you can find additional plugins (called blade packs) to add more features and themes.

I'm using this software to create a standalone PHP powered website that runs from DVD's and USB media to be distributed as gift to guests at a meeting.

This standalone website is possible using another software that I've made some time ago called litePHP (freeware).

Have fun!

;)

A few reasons why you should or shouldn't use Windows 7

In the previous blog post we've covered the basics to get a Windows 7 install going, but what are the possible advantages from this situation?

Also, with the competition installed for the desktop OS market, what good reasons would keep you away from a Windows machine?


Pros

1 - Free until June 2010
2 - Fast (or perhaps Vista was too much of a slug anyways)
3 - XP mode - it can run software/drivers meant for older OS versions
4 - Less annoying UAC
5 - Full support for IPv6 - you'll likely understand why this is important within some time
6 - Renewed set of UI controls - those old style menus and graphics with 10 years of existence were all updated
7 - Very cool explorer and orb menu to work with
8 - No more USB/DVD autorun as before
9 - Large hardware support (really huge with the possibility to get online for fetch missing files)
10 - More flexible to install - let it be from USB/Network or whatever, it's easier to deploy.



Cons

1 - Free until June 2010 - so after this that you'll have to dump it altogether, buy a license or tamper the install with some piracy method to workaround the timebomb - not nice.
2 - It's fast but still slugs behind XP in terms of performance and any other current desktop OS.
3 - XP mode is not perfect, some drivers will crash
4 - Memory consumption is still huge when compared to other OS
5 - Viruses, Viruses. Be prepared because all the malware that hammered previous releases will soon catch up.


One of the things that I like the most is the stability of the UI, a bit like OSX this just "feels" solid to work with. They've really smoothed the edges to bring a work OS into life.

The UI redesign was a very nice touch and the default look is very pleasant to work with.

But should MS be praised?

No, it shouldn't.

These improvements derived from flaws that have been criticized heavily - and even the competition has been ahead of the game for some time while MS keeps playing catch up.

This is a desktop OS for the masses but I'm a bit disappointed to see such slow rate on exploring new ways of interaction with the desktop like compiz provides for x-window.

Would be nice to see some of this innovation going mainstream.

:)

Installing Windows 7 on Acer One


Installing Windows 7 inside an Acer One is fun and probably not a waste of your time.






Why?

For two reasons in specific: It's free and it's fast.

- Free because Microsoft allows you to use Windows 7 until June 2010.
- Fast when compared to it's predecessor Windows Vista.

Still not as fast as XP and a lot of memory is consumed but we might consider the pros vs cons in a later blog post.

How?

My short tutorial is just an example so that people have a better notion about a possible way to install.

The first step is downloading the Windows 7 ISO, it's available from MS here:
http://www.microsoft.com/Windows/windows-7/download.aspx

Then, using a separate partition to keep both XP and Win7 working is a good idea in case you need to go back some day. There are plenty of tools to split the Acer One partion, I used the one I trusted the most.

Since I use Ubuntu, there is a USB install tool that creates USB pendisks, one advantage of these pendisks is that they come builtin with a partition editor that resizes NTFS partitions safely (and as simple as it gets) - http://www.ubuntu.com/

After the partition is made available, it's time to launch Windows 7 install setup from the original XP. I created a 40Gb partition thought after installed this new Windows it took about 9Gb worth of used space.


-------------------------

Installing

Since there is no incorporated DVD reader, we can fake a drive using a virtual DVD drive to mount the ISO image.

My favorite tool for this task on Windows is ImDisk (open source) - http://www.ltr-data.se/opencode.html#ImDisk

LinkJust install and reboot the machine. Aftwerwards you can right-click on any ISO image and make it available as a fake drive.

Mounting the Windows 7 ISO image we get the install started.

Don't forget to choose a new instalation and select the secondary partition that you have just created and the installation begins.

The install process is a bit lengthy (one hour perhaps) and reboots several times without need for human interaction.

------------------------

I was a bit afraid that some drivers wouldn't recognize the Acer One hardware. But there is one good thing about this Windows version - it supports drivers that were created for XP. This is a big plus without doubt.

All that was left to be done was visiting the Acer download site and grab the latest drivers for the Mouse synaptic software that allowed double tapping to be recognized as left-click.

Also, the software to control the fan noise also seemed to work only for XP/Vista - it was nice to see Win7 also asking to run the program in "XP mode" so that it work as expected (and it did).

----------


In overall

I have very nice words to say about Windows 7 indeed.

This OS is serious and less cluttered than it's precedent. The visual style is good and they have really made enough improvements to convince me as a worthy replacement for XP.

In a time that both OSX and Ubuntu are enjoying from a popularity boost given by the awfull performance demonstrated by Windows Vista, it should be no surprise to see Windows rising back into better days within 2010 if all goes well for them.

It's nice to see some competition.. :)

Got coffee?

A few weeks ago I've discontinued working at some of my favorite software projects. The next couple of years will likely be very busy and time always passes too quickly when you're having fun.

One of these projects was Ninja Pendisk. In contrast to other projects as WinBuilder or the Boot Land community that are well kept by other developers, the ninja was suddenly made orphan.

It is growing popular but development stagnated.

To lift up some motivation in order to continue support and improvement, I've placed a small donation box powered by Pledgie.

This is probably the first time that I've ever placed a donation box anywhere but the pledgie service is very nice and given the current state of Ninja, this sounded like a good experience.

Results arrived today.

A friendly ninja supporter named Wilson has contributed with 1 euro.

A small token to some but a meaningful contribution to me.

After paypal deducted 0,35 cents + 5% of the contribution value, I was left with little over 63 cents on my account - still good to sponsor a coffee.

Since I drink about 2~3 cups of coffee per day, this is enough to power one half of the morning or even perhaps a whole afternoon working on ninja to update it's functionality.


Let there be coffee!

:)

NoMachine NX - remote network control


Guess everyone heard about VNC to control a computer over the network but what about NX?

In the past I always thought that there were only two good ways to control a computer remotely.

The first would be using VNC and the second would be Windows Remote connection.

Thought these two options work fairly well for a LAN or possibly an intranet WAN, the truth is that both are a serious pain to use over the Internet due to their slug performance.

Meet NX.



This is a freeware server/client remote control software strictly for linux/solaris machines.

The client itself can also be used from Windows or MacOSX environments and this works fast!

I'm not joking about being fast. Their compression algorithm is extremelly efficient. I suspect that both client and server work together to save as much bandwidth as possible and only sending the bare minimal changes to update the client's display in contrast to VNC or RDP that output the full screen.

So impressive that it still works incredibly quick over the 3G modem dialup connection from my laptop.

Not that I complain from working remotely using a remote ssh session but it's always nice to work with a desktop to get some things done right.

Here's the link:
http://www.nomachine.com

:)

Starting a VirtualBox image on boot up

Recently with current hardware, it has become feasible to run windows 2003 machines from within VirtualBox PC emulators (opensource - http://virtualbox.org).

One strong point for using an emulated windows server is the relative ease to move this emulated machine onto another physical computer without needing to reinstall everything up.

VirtualBox is handy because it runs fairly well and is very easy to configure, but one of the missing features is the option to select a virtual machine to start when computer boots up.

The lack of this feature forces an administrator to manually start the virtual machine everytime a reboot is necessary.

Looking around the web I've stumbled on this solution: http://farfewertoes.com/stories/2008-03-09-start-virtualbox-virtual-machines-on-boot/

But I required something a bit simpler and decided to make a smaller version from the mentioned script that is easier for anyone else to customize as needed.

One thing I should mention is that this script will first attempt to send an ACPI shutdown to the virtual machine so that it can close by itself and if this machine is not closed within a specified time frame (12 seconds), the script will force the shutdown without further delay.

Enough talk for today, here's the code:
# Simple script to start virtual box on boot up
# Credits - http://farfewertoes.com/code/vboxcontrol

# How is this virtual box called?
emulatedbox="Windows XP"

# The script will send a soft reset when shutting down,
# how long should it wait before sending a power off? (0 to disable)
until_shutdown=12

## Start the program ##

if [ "$1" == "start" ]; then
echo "Starting VirtualBox Image.. ("$emulatedbox")";
VBoxManage startvm "$emulatedbox"
exit 0
fi


if [ "$1" == "stop" ]; then
echo "Stopping VirtualBox Image.. ("$emulatedbox")";
counter=0;
RUNNING_MACHINES=`VBoxManage list runningvms | wc -l`
if [ $RUNNING_MACHINES != 0 ]; then
VBoxManage controlvm "$emulatedbox" acpipowerbutton
if [ $until_shutdown != 0 ];
then sleep $until_shutdown; fi;
RUNNING_MACHINES=`VBoxManage list runningvms | wc -l`
if [ $RUNNING_MACHINES != 0 ]; then
VBoxManage controlvm "$emulatedbox" poweroff; exit 0; fi
fi
exit 0
fi

echo "No parameters specified, exiting."
exit 1
I hope you know how to use this script, if you don't then I'd suggest reading up the suggestions from the link I've suggested on the top of this blog post as it gives some instructions regarding how this should be applied on your server machine.


Good luck, hope this helps you.

:)

Moving out.

For the past five years one thing remained constant in my life - living in the azores.

Now, I will unfortunately retire from my current work location and move back into mainland Portugal.

I would say that this is great since I'll be living in the same city where the rest of my family lives, but at the same time it's with sadness that I depart from these islands.

Living here is a surreal experience, after a few years you kind of assume some things to be normal but they're nowhere to be found anywhere else for sure.

The fact of living stranded in the middle of Atlantic ocean, seeing the green fields that are greener that anything else you'd ever seen and the marvelous chance of breathing such clean air are just a few of the things that I'll surely miss.

It's also the place where you can go out and take a coffee knowing that you'll stumble on some familiar face to exchange a few words while enjoying the seaside view or attend small rock concerts promoted by your friends at places where everyone knows everybody.

Really amazing stuff.

But it's also in the nature of people to move forward and time has come to get back on track and move along to the next challenge.

Moving out is not easy.

Life and Death

Today I've received a sad call on my cellphone.

It was my mother washed in tears saying that one of our very best friends had committed suicide.

This is a sad day for me, his name was Pedro Simão.

He was the sort of person that always seemed disconnected from the traditional way of living. I was lucky to meet him when I was little above 8 years old.

At the time, he was the chief of the scouts organization where my mother placed me and my younger brother Edgar to learn how to live in the outdoors and also spend more time with other kids.

Those years were a truly valuable life experience.

Simão was around 23 years old but treated kids a bit like adults and taught us very early in life the reason why discipline, hard work and a good taste for adventure allow to achieve good results.

It's probably because of him that I first joined the army. The scout experience really prepared me to face without fear the human limits of exposing myself to stress conditions. He used to say: "Anything is possible if your mind is set on a goal" and I believe him.


At this last decade after 2000, I just wish that the younger Simão could have talked some sense into the older Simão.

Things started to collapse after Simão returned from his army mission at Mozambique when he quickly wasted his saved money on all the wrong things. A mix of naive personality with the desire to fulfill some his dreams have lead to the quick depletion of his saved resources and I think this was the turning point that somehow demotivated this once inspiring soul.

Over the last years, he got himself into an awful amount of debts to pay the car, the house and so many other things that simply couldn't be afforded by his monthly salary.

He'd frequently drink in excess, most of the times all alone at his home.

It was sad to see Simão going down like this. Also didn't helped the fact that I was never around Coimbra anymore just like most of our mutual friends that also went to somewhere else and he was left all alone by himself to linger on these sad things of life.

Now thinking clearer, I feel awful for not spending more time with him after my last visit to Coimbra last month. I saw him so briefly. He was always available to help others and I asked him a lift to the bus station where I could pick the bus that would leave for Lisbon.

We only talked for less than 10 minutes at the bus coffee house. Then I went for the bus and waived goodbye. Just wish he hadn't gone or at the very least drop a call to talk with me or someone else. Even worse because in a couple of months I'll be living again at Coimbra and would have a chance to talk with him much more often.

I'm simply too disappointed on myself because I could have done better.

Things weren't well and I fell that I've disappointed a good friend in this mad pursuit for my own selfish goals in life. Didn't even took some quality time to look closer at what was happening and ignored all the warning signs.


He had a bad life in the last years but he also had a very kind heart. Was the sort of person that I would trust wholyhearted knowing that he'd never break this trust.

Pedro, if you're listening. I'll miss you.

We, the people.

My wife went back to her parent's house in early January this year.

This has become a sort of habit at each year so that she gets an opportunity to spend some quality time with her family. We usually prefer to spend the summer vacations in the Azores where the weather is nicer and we have more fun exploring the other nearby islands.

This means that during these months I'm left home alone just like in my single days.

One of the things that bothers me the most is having to stay alone in the house - a silent house is nowhere pleasant so I spend most of my free time going outside to the street and work at the laptop over a nice cup of coffee and dinner in most cases.

Spending a lot of time at the same places has got me starting to recognize the faces from people that I don't know from anywhere.

It's a strange feeling to see the years pass and look how people change. Worser yet to notice the behavior patterns for some people and starting to guess what they'll be doing.

It's a small closed environment where all faces become familiar but yet none of them is your acquaintance.

There is a folk in particular that grabs my attention, it's a homeless person which notoriously spends even more time than myself wandering around the several city locations where people usually gather.

He's always alone, never talking to anyone else but always enjoying the somewhat warmth from being close to other people.

In big cities at mainland it's easy to do exactly like everyone else does - just ignore and move away. Around here it's different.

You go drink a coffee by the seaside and you'll see him, you go to the mall grab some dinner and he'll probably be there too. You even go out at night and you'll see the same person wandering at the most active parties. It's a small city indeed but you get far more aware of these sort of situations that you'd ever see in a metropolitan city.

And this bothers me a lot.

Not the homeless, but rather the exclusion to which we, the people of the society have silently voted to outcast them so subtly.

Yet, he fights to keep his dignity - to do the things that many of us take as granted on their daily routines.

Something is wrong but what can we do?

It's not a matter of money, it's not even a matter of doing community service. It's a question of thinking on solutions for truly integrating people in this unfortunate situation instead of leaving them on the outside.

Otherwise how can we say that things have evolved for humankind if our kind is not human enough to take of each others?

No, something really needs to change.

CCNA 4/4

This is it.

The last module before the full CCNA certification. I sure would like to think that each module gets easier as time passes but there is no such thing an easy certification and I wouldn't like it any other way.

This time we've moved outside the LAN world and dived into the WAN galaxy. I never cease to stay completely amazed with the dimension of this big networked universe.

The technology of this chapter is approaching a lot of history regarding the solutions that were developed during the 60's and 70's. Strangely enough is how one can notice that these concepts are still current when applied to today's standards with the obvious exceptions for bandwidth differences and a few other improvements. A good engineered solution can really last a long time.

We've just started last week but I've already learned to value the use of a good serial connection and started understanding with some depth the WAN protocols that are used inside frame relays and long distance networking.

These classes gave me a glimpse of old memories. When I was a small kid, I've once visited a small office where it was possible to start a video-conference with the room next to us.

The presenter of the tour mentioned that one day it this feature would become an affordable technology for everyone. I just thought "amazing" and look how right he was indeed.

This CCNA module is certainly not so easy to grasp, it deals with a lot of new concepts that I've never heard about but at the same time I'm really curious to see and learn how people solved some of the issues raised at the time. Funny because I think that nowadays people are getting lazy (including myself).

When there was no Internet (for everyone), most people would need to think the solutions by themselves or perhaps try, try and try all over again until it's done right. How disappointing it is to google and to find a solution that we consider 100 times better than ours and quit even before engaging into action.

A lot of competition is demoralized this way - this is good for popular community guided developments but at the same time promotes the stagnation of technology. If a monopoly is raised by any given product then we might be sure to expect that it's evolution will be far slower than it would occur if a competing product presented better features, but I digress and I'd better get back on topic..

This is the last module and probably the last time that I get a chance to study in the Azores, it's been a very interesting year without doubt - I'll miss it here.

Is life a game?

Well.. I've been on vacations for two weeks.

Went back to the town where I spent most of childhood days and saw a lot of people that I didn't even remembered for half a decade.

They've changed, I've changed, but the same strange feeling of those memories that passed years ago still remain in the eyes of the persons with whom I crossed.

One of the things that I "forced" myself to respect was the idea of leaving the laptop and internet back home in the azores. Try to live for two weeks without being online and live only with real people, it's not that I'm not sociable or anything because I usually do spend more time on the street on coffee houses with friends than closed somewhere but the computer always grabs my attention back to work and the point of vacations is to relax for a while.

Nevertheless, I took my latest cellphone which also doubles as a PDA equipped with a Pocket PC OS (an HTC Pharos).

On this PDA, I've installed one of my all time favorite game for pocket pc - "Slay".

The name may mislead people to think that it is as a game filled with action and blood but it's not the case. I'd describe it more as a pure strategy game.

Basically, it consists on a small map subdivided in tiny hexagons with different colors. You get a color for yourself and you control a few of the available villages that are found inside the map.

The point of the game is to join together all villages (those that survive) to form a bigger and stronger group as the days pass.



As opposing groups get bigger, the used weaponry also gets stronger and more resource hungry (each hexagon is worth a unit of money).

----------------

So, the logic of this game is very simple yet disturbing.

Maybe it's because I've been playing this simple game all week long but it surely made me wonder a lot about the logic of life itself.

We all start the same way (more or less of course) but basicaly born with limited resources and the need to connect with other people as time passes to increase the odds of survival.

A careful evaluation of the opponents and succesfull prediction of their actions will give you an advantage and allow to move forward faster than everyone else but slacking off the guard may also cost you greatly.

The worst difference between a game and real life is perhaps that in a game we can always count on repeating everything from the start to do things right over the next time, but of course that in real life this is not the case and destiny (or fate?) will take an important role in the way how the action occurs.

---------------------

So, life itself can indeed be considered as a sort of game where you, me and many others play on a very big board. We all get some time to play and have fun with it.

If you're alive then you're lucky. Don't forget to enjoy your life, today!

:)

Why I develop software

A few days ago I received a message which started like this:

Hello Nuno,

First of all THANK YOU for the Ninja!

In this email I'd like to report a bug and make few suggestions. I hope you don't mind that I'm writing directly to you instead of posting my comments and suggestions on the forum, but I do not have any direct access to internet (see the explanation at the end of this email).


And the message was very complete regarding the reported bug and proposed features, ending with the explanation of why he had no direct access to the internet:

I do not have any direct access to internet. I'm living in Himalayan Heights (23000 feet. altitude) in Northern India at an ashram. To send/receive emails or to get some files/webpages downloaded from the nearest internet cafe a courier from the ashram has to travel 2 hours (1 hour by foot and 1 hour by car).
Here in India at the internet cafes viruses abound - people do not take care of virus prevention, so proper antivirus and programmes like Ninja are a must.

Please let me know when you'll fix the bug I've mentioned and/or implement the above suggestions.

With best wishes,

Marek

This message hit me like a slap in the face for several reasons. Can you imagine how life is for someone living at 23 000 feet (~7000 meters) of altitude and need to worry about viruses that run around on pendisks?

Or using a collective email box to where all messages need to have the name of the person at the title so that someone can collect and deliver them by hand just like paper mail?

These and many other questions filled my mind and sparkled a deep introspective questioning of the reasons why I first began developing software.

-------------

When I was young, internet was no option. To solve some trouble with a program you would have to think hard about a programming solution if none was available. Things were not easy but they were "doable" and I always succeeded in finding a way sooner or later (while learning a lot).

Nowadays, one takes everything for granted. It became too easy to google and find whatever someone might have done.

This way you save your time and intelectual effort. Marek is against all odds making an effort to improve the tools at his reach and made an effort to contact the author with very valuable feedback instead of resignating to these limitations like many others do.

Funny, but reading the whole context of his message I somehow remembered a bit like I was some years ago. Working in really difficult conditions to get online using dial up modems connected on top of other VPN's just to see the internet page working.

And I was happy this way.

So happy that I finally had a chance to publish my software in the open field, so happy that my goal wasn't money nor personal recognition. It was all about giving back a little of so much knowledge that had been given to me for free by a multitude of other folks in the internet.

Grattitude was the reason why I began developing software for the internet audience.

And the idea of making available a software title, carried with me the notion that I should be responsible to improve and make it as adjusted as possible to real life usage.

Deeply commited to the intention of making software that would somehow help other people without expecting anything in return.

----------

These last few years made me proud. Many projects with success, many happy users, many new developments, but, along this way I somehow forgot my own roots and removed from memory the reasons that made me choose this path in the first place.

This "proud" feeling turned me into a person who barely listens with attention what others have to say (like jaclaz's opinion about the boot land's visual or PSC's request of a forum for NativeEx) and quickly forgets things like working on the new site for Kare. Or even letting the Ninja users stuck with a 1.5 version that isn't updated over a year now along many other things.

I'm nowhere proud of this.

---------------

When I was a kid one of my innocent dreams would be creating something capable of changing the world a little bit. This message from India is a wake up call reminding me of how far this dream has reached reality in the present days.

Let there be Ninja 2.0!

:)

Web 3.0

Are we reaching web 3.0 yet?

This is a somewhat vague term that defines the next step in internetworking evolution.

We can all point our fingers at examples from the 1.0 era when Geocities, Altavista, Slashdot and other pioneer sites reached the masses for the first time a little over 10 years ago.

We can also point our finger to 2.0 timeline crispy examples like Digg, Hi5 and whatever, but what should we expect from 3.0?

Well.. in my humble opinion I'd say that evolution will allow the powerless users from the 1.0 era that have become major players of the 2.0 age to become the collective owners of 3.0 websites.

An early example of this situation is already demonstrated by the growth of Wikipedia.

Shifting the control of insanely popular sites from a regulated control by a company or person onto a collective effort of volunteers that pretty much decide everything which is done and whatnot.

-----------

3.0 will bring an era of self-growing sites, which will naturally organize and adapt themselves to survive using the same human behaviour that once allowed the construction of big cities in the past, an instinct that still remains inherent to all of us.

It's the era of tribes, groups of people from different points of origin and ages struggling for their success in popularity terms when compared to other tribes, regardless the effort this might pose on their individual lives in order to ensure the success of the colective goal.

Unleashed sites will compose 3.0 and the internet will never be the same again.

:)

New slim laptop: Acer One

Finally had a good reason to get my hands on of these slick machines.

My work laptop started overheating at above 120ºC when running virtual box or listening to youtube so I'm going to send it back to the manufacturer to get repaired.

My guess is that the air vent is either blocked by dust or the vent itself is not working right but I'm not going to open the machine since I'd be voiding the machine's guarantee.

----

So, while the laptop is away to repair (about two months), I've bought myself a new Acer One, one of those ultra slick new laptops, bla, bla, bla, bla, bla, bla, bla, bla,

Well.. not really much of news to me.

My first ultra slim laptop was bought as early as 2001 and was a Sony Vaio with a transmeta crusuoe CPU running at 600Mhz and equipped with 128Mb of RAM and a 20Gb hard drive.

This was over 9 years ago and was likely smaller in size than the Acer One.

So, what is the thing that I noticed that changed the most over this near-decade?

The price tag.

My sony vaio costed about 3500 euros and was imported from Macau (china) so that I could save money by skipping the european taxes.

The Acer One costed 329 euros and I bought it at the local mall.

Quite a big difference, the price dropped 90% from their average 9 years ago, amazing!

:)