Tuesday, November 28, 2006

Linux: Evolution

An hour ago I was talking to a friend and work colleague which is still a student and he was working on some practical homework for his "Operating Systems" college course. He had to write some small C program for querying a time server using NTP protocol over TCP or UDP under Linux.

Now the connoisseurs know what I am talking about, however the point of my story is different... As I said, I was talking to this friend of mine and he asked me for some assistance in installing a chm reader under Linux. This might not look like such a big deal for a SuSE or Ubuntu user, they can just search it and install it using their package managers, but my friend uses Slackware, so actually this simple thing turned into a bit of a drag because of the package dependencies that had to be installed manually. Well, I must say I was a bit sarcastic with him and laughed about the primitive way to do things in the Slackware distribution. Don't get me wrong, Slackware is a great professional distribution which has it's purposes but desktop isn't one of them. This whole thing reminded me of how I used to do things when I was a student taking the same course and also brings me to the real point of my story.
Back a few years ago (2001) when I had to do kind of the same practical homework as my friend using C under Linux, the distribution I had then was RedHat 8 and I had an old Pentium@166Mhz PC which wasn't much help so I had to do everything from the text interface because I couldn't get Gnome running properly - my video card was not supported. I did the editing with Joe and Midnight Commander and compiled everything with gcc. Let's not forget the ubiquitous "man" because back then I did not even have an Internet connection at home (could not afford that from a student's salary). I used to get documentation from the school laboratories where we could browse freely and use it to get things done back home. One more important tool I used back then was a mp3 player running in text mode (I can't remember it's name anymore). It could even play songs from play lists which I also used to edit with Joe. Another important aspect back then was the tedious installation process that had to be followed in order to see that familiar command line. Ahh, good ol' days...

Well things have come a long way since then, we now can enjoy some smooth and easy installation processes for some Linux distributions which automatically detect your hardware, Internet connections and printers and can be done in 30 minutes. Also the desktop interfaces and tools have come a long way, we now have Open Office, package and update managers great looking user interfaces and a plethora of other useful tools which come bundled in the distributions or can be downloaded in a few clicks from the Internet repositories. I have been following the evolution of the Ubuntu distribution since Hoary Hedgehog and I've seen some very nice improvements in just an year...

The point of my story being unfolded, I would like to say that things are getting better and better and I really hope that the new distributions keep up this good work and bring more users to thewonderful world of Linux/GNU. I hope you enjoyed this evolution as much as I did and that this story brought back some nice memories for some of us...please feel free to leave some comments of your experiences.

Sunday, November 26, 2006

Does FOSS make coders starve?

To code or not to code free and open source software (FOSS); that is the conundrum in which you may find yourself if you are a coder and wandering: "Well, this free software idea sounds great and noble, but who's gonna feed me if I can't sell my programs?" Everybody seems to discuss how you can reduce costs of ownership and of development with free and open source software, but rarely we see or find information about how do coders that write free software can sustain themselves by doing it.

I also like the idea of free software that can be changed, redistributed and shared at will very much, in fact I like it so much that I want to make a living out of writing free and open source software. This means that I also asked myself the above question and also did some research on the ways you can make profit from free software. Next, I am going to present you with my views on the FOSS model and a few ways to make a living out of it.

First of all, open source software is actually commercial software, open source licenses do not preclude the commercial exploitation of software, they are not anti-commercial they are anti lock-in (anti lock-in is a better term for proprietary software – see Brendan Scott's article on the Open Source Law site ). This means there are some good ways to make money by using the FOSS development model without the need of selling software licenses.

Companies and coders developing free software have been offering various services alongside their programs, which include a wide range of options starting with books and documentation and going as far as customizing their software for various clients, offering them solutions tailored to their specific needs. You may say that the customers paying for these customizations are wasting their money because they can actually take the sources and change them by themselves. Let's not forget that not everybody is a coder and not all companies have or can afford to sustain an internal IT department with developers on their payroll. Sometimes it's just easier to have a specialized company do the customizations for them.

In today's market you can see some major software companies that have adopted the FOSS model and are making money from it. Companies like Red Hat, Novell, IBM and Sun are all involved in producing free and open source software. Along with their free software variants they offer a wide range of their software versions customized for enterprise wide use and with long term support for their software. Their customers do not actually buy software licenses, they buy the support that the software companies offer, always having the option to use the versions without professional support.

Another proof that the FOSS model of software development works is the tendency of many software companies to adopt this model for some of their products and also use or contribute to free software, which has been happening lately. The newest contribution to free software has been made by Sun Microsystems who decided to finally release their Java line of products under the GPL license model. I believe this is great news and I personally am glad they decided to make this move since I believe we can all benefit from the innovations that are going to come to Java from the community in the future. One immediate benefit of this will be the inclusion of the Sun JDK's in the Linux distributions, making the development and releasing of free software under this platform easier for the Linux programmers who like the Java platform. Other than Sun's contribution to free software we can see some examples of other large companies that have been friends of free and open source software: Mozilla with their line of products - Firefox, Thunderbird, Sunbird and Seamonkey, IBM with their contribution to the Eclipse project, Canonical Ltd. with their most known project – Ubuntu, Red Hat with their Fedora Core distribution and recently with JBoss application server – these are all just to name a few.

Finally, I would like to close my argument with the hope that I at least stirred your curiosity about the free and open source software model and that you will consider it as being a great way to promote innovation, competition and progress without being locked in by using a “proprietary” software solution or platform.

Tuesday, October 10, 2006

Methodology Wars

Last week I read an article on Steve Yegge's blog entitled "Good Agile, Bad Agile" with a little bit more "bite" towards the Agile methodology of software development and in which he presented the Google way of doing things. This "little" article generated a whole bunch of reactions both positive and negative and lead to Yegge's follow up entitled Egomania Itself and to this counter article on the Coding Horror blog entitled Software Development: It's a Religion.

Now if you expect this to be just another one of these posts that takes one side and throws mud on the other, you should guide your direction elsewhere. I am not going to take sides in this war, nor I am going to praise one or the other, I am simply going to present my 2 cents on the whole thing, so here goes...

I don't like this whole pro Agile/against Agile, or as a matter of fact, any other methodology vs. methodology taken to an extreme of religious proportions. Wars have started for less :). My opinion is that there's really "No Silver Bullet" for software development so far and I think everybody should use what better suits their current needs be it pair programming, iterative development, index cards crap or whatever. Combine parts of methodologies if you like, pick something from there and something from somewhere else, adapt the "methodology" to your team's needs, not viceversa and don't start a Jihad just because you so zealously believe that your way is "The Way". What everybody could benefit from is the open presentation of your recipe without the "you'd better believe and use this or you're going to Hell" way of imposing your point of view. History is full of proof that fanaticism and inquisition doesn't lead anywhere, except to the "Dark Ages". I think that if you want to have a full picture of the whole methodology, you should experiment with as may as you can and, the good parts from here and there and make them work for you in a way you're comfortable with them, after all we all should be able to distinguish between the good the bad (and the ugly) parts of each of them and make our own informed decisions. All methodologies have a Dark Side and a Light Side, we can choose the path we walk ourselves.

Monday, September 04, 2006

The Hunt Is Over

"Every man dies, not every man truly lives." Steve Irwin, better known as the Crocodile Hunter was a man that lived by this motto and his love and respect for wildlife should be an inspiration to us all.
Kudos to you mate, you'll be remembered.

Sunday, September 03, 2006

The Curse of Software Evaluation Copies

Nowadays every respectable software company which provides proprietary software solutions, offers evaluation copies of their products to their costumers usually by direct download from their sites. Now, this is a positive thing, people who are interested in the latest version of a software product, just go to the developing company's site and simply download the demo version and evaluate it, no strings attached.
On the other hand, some companies do not proceed in this standard way, no, they go through the trouble of adding sign-ups before anyone can download their precious application demos. Now, ain't that cute...but IT'S WRONG!!! Why do I think it's so wrong? Because potential customers usually have to go through a tedious sign up process where they are asked to give all sorts of details about themselves like, address, telephone, email, what's the name of their parents, grandmother and dog, and some other useless and annoying stuff, that is irrelevant to the company providing the demo. I don't think anyone is so comfortable to enter all sorts of details and sign up in numerous sites just to be able to download a piece of demo software. Let's not forget the spam that might just flood their inboxes because the respective "companies" did not properly take care of their private information, or perhaps they are the ones doing the spam, under the pretext that they are informing the customers about "new opportunities". Come on people! Let's be serious, if somebody finds your application useful, they will bookmark your site and return to you. If they really like the software, they will decide to buy it, then you can ask for their details to keep in touch and provide them with updates and they will most probably be glad to offer them to you.
The whole signup to get our demo bit is useless, the users are just annoyed by it and might not even want to download your demo anymore and you don't get any benefits for asking about their details and pestering them with info emails unless they become your customer, so just save yourself some storage space in your databases, and offer the demos free of obligation, or don't offer it at all. Both sides have more to gain if there are no strings attached.

Monday, August 21, 2006

Combining Work and Pleasure into Professionalism

Hello again,
It has been a while since I've written an article on my blog, but you know how lazy coders are...This one is going to be about how can one enjoy his/her work and be a good professional at the same time.
I can't say that I have an extensive work experience on which to base my conclusions but I can tell you that the first step you have to do in creating an enjoyable career for yourself is to choose wisely the domain in which you want to build your career. The wisest thing you could do is to choose something you definitely enjoy doing regardless of the amount of time spent to do it. Remember, your own happiness depends solely on you and the choices you make, life is what we make of it, and all the other yada, yada stuff on this life's a bitch subject :)).
Another important thing that you should consider in your career is the kind of people you enjoy working with. My opinion is that the people around us influence us whether we like it or not. If the people around you are all dressed in Armani suits, take pronunciation lessons, don't do anything all day but sit in front of their computer and everybody turns their head when you sneeze or cough, that is fine if you prefer to be a machine instead of a human. But if the workplace atmosphere is open, you hear a nice joke every now and then and you can consider your colleagues as your friends, that seems to me more enjoyable. Which one do you prefer?
I think being a good professional means doing your work with responsibility and with pleasure. If you enjoy what you do and the work environment, that should suffice.

Tuesday, July 11, 2006

Password Manager?

Well hello everybody,

I haven't written any new articles in a while so I decided it is time for a new post. This one is going to be about password management for multiple accounts so without any further due here we go.
In today's world of communication and internet it is becoming increasingly hard to keep track of all one's accounts and passwords on different sites and computers they are working on. Even if you have a scheme like the same username and password for all your accounts it is highly unlikely that you can use the same id everywhere (it might be already taken) and also, if you give away your password, you just might get scrued all over. Also something like your birthdate, your lover or your pet's name as a password doesn't cut it. Any ordinary hacker can find such passwords in mere minutes and then he can use your name for purchasing stuff or for who knows what horrors :).
So if you are a security freak and like to have different passwords for different accounts and not just minimal 8 char passwords, at one point you will end up not remembering them or not remembering which password for which account matches and you'll just spend several minutes hacking in your own accounts each time (trying password combinations until you succeed). Well this has started happening to me also, and as an attempt to avoid it I was searching for some kind of easy to use software for managing my accounts and passwords. It would also be nice if you could securely share your account database and/or if you could use the app on a mobile telephone or PDA.
Unfortunately I haven't found any Open Source software that meets these requirements, so I decided I could bring my contribution here by making such application myself. The application will be called Aegis (you can figure out why) and right now is in a functional specification state but keep following, more updates to come.

Tuesday, June 13, 2006

ESP - do you believe it exists or not?

Today I've been browsing a bit through Steve Pavlina's blog and I read a few interesting articles on psychic development. I always was drawn to the inexplicable events that might defy normal logic or the physics laws, my favorite TV series of all times being the X-Files. I also used to read articles about paranormal phenomena like the Bermuda Triangle and UFO, and I like to believe that we as humans have these ESP (extra-sensory perceptions) somewhat like a sixth sense even tough most of us are not fully aware of it.
I am sure most of us experienced at some point in time a dream that came true or knew who was calling them on the phone without expecting that specific call, or even knew what somebody close was going to say before they said it, not to mention that all familiar "deja-vu" feeling we all must have experienced. Well my friends, I think this altogether is a proof that ESP is real and we all have the capacity to use it, this just depends on how open we are to these kind of things and how much time we want to invest on improving these skills.
ESP is comprised of multiple parts:
  • precognition - the ability to predict future events
  • remote viewing - the ability to picture in your mind places you have never been to
  • clairvoyance - the ability to know something is taking place without reliance on any of the other five senses
  • telepathy - the ability to know what other people are thinking
  • retrocognition - the ability to look in the past and get information that is not otherwise available to you through common means
In the end I would like to ask you to share your opinions with me on this subject, maybe you even have some interesting ESP related experiences you can also share.

May the Force be with you!

Monday, June 12, 2006

Mind Maps - a way to organize your ideas

In this post I am going to talk a bit about an intresting way I found helpful in organizing one's ideas and tasks, and these are the mind maps.

What are mind maps? Wikipedia's definition for mind map states:
a mind map (mind-map) is a diagram used to represent words and ideas linked to and arranged radially around a central key word or idea. It is used to generate, visualize, structure and classify ideas, and as an aid in study, organization, problem solving, and decision making.

Now I am not going to enter in depth into the definition of this concept, if you like to find out more about it, you can read the rest of the Wikipedia article on this.
Instead I am going to tell you a bit about how I use them. I don't actually use them as often as I should, but when I want to make a short term plan with the things I want to do in one day or in one week, or when I have a long period task at work and I need to keep track of things, I take a few moments to draw a small mind map with the steps I need to take in order to complete my plan or task. For this I use a nice piece of Open Source software called FreeMind which is part of the SourceForge projects. This tool is quite simple and easy to use and I also like the fact that is portable and I can use it on both my Ubuntu and Windows XP systems. What I don't like about it is that it doesn't yet have a nice maps sharing feature so I can make my maps home and read them at work and viceversa - who knows, maybe I am going to think of a solution for this and contribute to the project ;).
If you want to see a nice list of the tool's feature, read the documentation or download it for your use, you can check out the project's wiki.
I hope this post will help some of you organize an plan your ideas a bit better in the future.
Stay tuned for more ;)

Friday, June 09, 2006

The Path (II) - In the Name of Love

This one is dedicated to the spiritual side in "The Path" and to my significant other...
Now, I am not one that believes in love at first sight and in Destiny, I never was, I never will be. However I do believe there is a balance in the Universe, that every action has a reaction, every great thing requires great sacriffice and our lives depend solely on the choices we make or don't make every day - so be careful what you choose :).
As for love, I am drawn to believe that like the ancient Androgyne, who were separated by the gods because they became too powerful and challenged their supremacy, and they ever since are searching for their other half to become again One, we are also passing through this life searching for our significant other.
One might wonder what would happen if the universal balance would be upset or how can we be sure that once we find somebody we love, that is our significant other? I dont't think anyone knows for sure, and I don't think anyone will ever know or figure out the answer to these questions, at least not in this humble existence. I don't think we as humans, are capable of understanding this anyway.
Perhaps in another life...

Tuesday, May 23, 2006

The Path (I)

Hi again,

"The Path" will be a series of autobiographic posts, so without further introduction here is the first of them.
I saw the light of day - don't remember the exact moment or the feeling :) - in the winter of 1981, month of January, day 29 (actually it was a Thursday, or so I was told). The whole great event took place in the maternity of Deva, Hunedoara with my mother being operated because she couldn't give birth to me the normal way.
I grew up in the mountain town of Certej, about 20 km from Deva where I also went to school for the primary an gimnasyum courses. Since I was a child, I had a thirst for knowledge and I used to watch documentaries about ancient civilizations, human anatomy and animals. The wish to program computers was also an early one for me, but I didn't manage to fulfill it until University studies.
My mother wanted me to be a medic so I took the exam for the Medicine University in Cluj-Napoca, after I finished highschool, but didn't pass it - happy me :). After the failure I decided I should follow my long lost dream to become a programmer so the next year I took the exams for the Computer Science section in the Babes-Bolyai University of Cluj-Napoca. Needless to say that I passed, finished with a Batchlor Science Degree in 2005 and now I'm following the Master classes of the same University, while being a Java developer at ISDC Romania.
This would be it for now, stay tunned for more ;)

Have fun!
Mihai

Monday, May 22, 2006

Welcome to my Blog

Hi ladies and gents,

Seems that nowdays everybody has a blog so why shouldn't I. I was searching for options to create a blog nice and easy, and I stumbled upon Blogger form Google, so I decided to give it a try.
This will be mostly about my philosophy of life and about computers, so if you're not intrested in either of them, this is not what you're looking for ;)
Stay tunned for more posts...

Have fun!
Mihai

Playing for Change