lunes, 9 de septiembre de 2013

GNU's Not Unix!

I totally agree and belief in a culture based on open source knowledge. I think the best definition of Open source is:

  1. Universal access via free license to an idea, design or blueprint.
  2. Universal redistribution of that idea, including subsequent improvements by anyone.
I would emphasize the second part of the definition because that's mainly the idea of progress in any branch of knowledge. When someone through any process makes a huge discovery, the next researchers, developers or whoever need to use the first idea so they can develop new and better discoveries or inventions and so on.

Revolution OS is a documentary film that tells all the objections of many technology experts and computer geeks that led to what is known as the Open Source Movement. The main idea of the movement is centered on the belief that computer software should be free in an economic and intellectual sense. Open source code is typically crated as a collaborative effort in which programmer improve a program's code and share the changes with the community. Open source emerged in the geek community as a "revolution" or response to proprietary software owned by huge corporations like Microsoft, which is considered as one of the biggest companies in the world. These worldwide companies in many cases tend to make a monopoly out of their products with strict policies regarding licensing, ownership, distribution, and modification of their software, which includes in many situations, harsh ways of doing business.

The genesis of this movement is awarded to Richard Stallman. Then one of their followers, Linus Torvalds, created a new operating system called Linux, which obviously is open source, freely distributed, and considered by many computer geeks superior to Windows. Linux have around 10 millions active users and as this successful example of open source software. There are many other open source products now a days in the market like Mozilla Firefox, Google Chromium, Android or OpenOffice products.

My point regarding open source software is that many original works involve a great deal of time, money, and effort to develop, and the cost of reproducing it is very low for third party companies to do it. So I think there's a need for a new business model that covers both parts. In one hand the model should be open source so other developers could use the idea to make new and better ones, but in the other hand  there also should include a significant profit to the original author, develop group or company in order to survive in first instance, but also to grow, re-invest, and be a competitive option to continue developing new software solutions. With this model developers would have economic incentive to create ideas in the first place and they would be able to recoup the initial cost of their production.

lunes, 2 de septiembre de 2013

Why software architecture?

"The Roman architect Vitruvius made a timeless statement of what constitutes good architectural design: strength (firmitas), utility (utilitas), and beauty (venustas). (Vitruvius) This holds true for our software architectures." (Goodliffe)

As I said before, the history shows that the technological growth rate is kind of an exponential one. Growth in computing power, growth in information and communications technology, growth in nanotechnology, and to sum up, growth in any technological science.  So what does this mean? This mean that any business, corporation or organization even a non technological one, necessarily requires to evolve and adapt all this changes in order to grow, be competitive, and even to survive.

Now, regarding software, a good design, the use of patterns, and an appropriate architecture is key to adapt all this changes and tendencies into any information system. At this moment it's hard to think in any business without at least a point of sale program that helps to automatize processes of the company. All these systems need a nice architecture so in the future will be easier to add new features to the existing software, have a better code maintainability, new technical features, such a different front ends, or adding new business markets. Software architecture manifests the earliest design decisions about a system, and these early bonds are really important regarding to the system's remaining development, its deployment, and its maintenance life. It is also the earliest point at which design decisions ruling the system to be built can be analyzed. Programmers and designers should implement software architectures that expresses the business needs and make it scalable and reusable, applying the right design to each specific scenario, creating elegant and functional developments qualified to compete in this changing world.


lunes, 19 de agosto de 2013

Moonwalkers




Personally I can't think in anything more exciting that a human being is capable to do than going to space. I mean, at this moment. I'm pretty sure that in 50 or maybe 100 years we will discover some new amazing stuff to do that will be way more exciting, interesting or even mysterious like time traveling, extraterrestrial life or parallel universes.

Anyways, Moon Machines is a documentary in which we can find all kind of engineering challenges that the Apollo Programs suffered, but with a team of around 400,000 people working on a single project managed to turn around in what I think is one of the most amazing accomplishments of human kind.

In the video is explained that one of the most important issues that needed to be solved is the navigation system. When we drive our cars it's relatively easy for us to reach our destinations in a safe and effective way because we have several kind of references that guide us through like buildings, other cars, signs, trees, and even there is a delimited path that indicate us where we are supposed to be going. But now imagine to travel in space where in the first place there is no gravity that help us perceive or help us sense whether we are looking up or the other way, there is no point of reference that tells you how fast or where the hell are you going, I mean, they could see the sun, the earth and other big elements, but moon-landing talking you need a very precise navigation system that guide your ride to the moon in a three dimensional way. Ergo, the MIT developed the Apollo Guidance Computer which provided the necessary interfaces for guidance, navigation, and control of the spacecraft. And one of the most spectacular fact is that compared to now they did it with super limited resources (computer talking).

When I read or talk about men walking on the moon, even if people believe it or not (which i'm pretty sure they did), I can't help thinking about what we as mankind are capable of doing with the exact amount of motivation. I think in many ways and in general that's the keyword: motivation. Motivation is what is needed for any personal or collective goals or projects to be successful. In this case the Cold War, this tight struggle between the US and the USSR, was the needed incentive for both parts to develop things that without them surely the world wouldn't be what it is today. Motivation can take us to the moon and beyond.


viernes, 16 de agosto de 2013

Intro

Welcome to IEEE 1471-2000, this is a blog related to the course Software Design and Architecture at ITESM CEM.

In this space you will find information and examples associated with the current topics that will be seen along the course. In this first entry I'm going to write a few stuff about me.

My name is Gerardo Caballero, I actually study at Instituto Tecnologico de Monterrey the B.S. of Computer Systems Engineering. I expect form this course to teach me about the most common practices used to select, define or design a software architecture.

I love eating and spending time in any device with Internet access. I enjoy philosophy and science related topics, and well in general I am deeply interested in any human condition subject.


My favorite writer is Cortázar, haven't recently read anything of him tho. I recently re-read Orwell's Animal Farm (reading only the prologue is worth it) and also I just finished Stephen Hawking's book "The Great Design" (which I totally recommend, specially for any Catholic). I am currently watching Dexter (up to date) and Breaking Bad (not so much :( ). I'm looking forward to watch the new Scorsese movie, it seems awesome. Well that's all I can say about myself atm, but I leave with this song of one of my favorites groups.

(btw IEEE 1471-2000 was the first formal standard in the area of software architecture. It was adopted in 2007 by ISO.)