Tuesday, May 13, 2014

[ Liberación de un Proyecto bajo Software Libre ]

Aproximación práctica de algunas consideraciones que se deben tener en cuenta si decides liberar tu proyecto bajo lineamientos de Software Libre.

Primero:

Open Source = Free Software = Free Open Source Software (FOSS) = Software Libre

Los términos significan lo mismo, es decir que "el software" cumple con la Definición de Software Libre (https://gnu.org/philosophy/free-sw.es.html):
  • La libertad de ejecutar el programa para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1).
  • La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3).

En líneas generales el término Open Source tiende a estar mas relacionado con una visión 'Corporativa/Comercial', mientras que el Free Software con una posición mas 'Académica/Voluntaria'.

Segundo:

El licenciamiento o licencia que apliques a 'todo' el software es fundamental. Lo mas práctico es aplicar una de las licencias listadas en 'https://www.gnu.org/licenses/license-list.es.html' a todo el software, según las necesidades y objetivos que se tengan planteados. Un buen documento de referencia es este: http://docencia.etsit.urjc.es/moodle/mod/resource/view.php?id=5153.

Es importante que analicen adecuadamente el tipo de licencia que desean desde un principio, ya que una vez liberado y difundido el código fuente, resultaría mas difícil la modificación de la misma.

'Aplicar' la licencia al código fuente consiste básicamente en agregar el texto que describe el tipo de licencia a la cabecera de cada uno de los archivos/ficheros de tu software, o bien incluyendo explícitamente un archivo/fichero llamado COPYING ó LICENSE al directorio raíz del proyecto (http://www.gnu.org/licenses/gpl-howto.es.html).

Tercero:

Publicar y hacer disponible el código fuente. Si realmente desean que el proyecto sea difundido y eventualmente reciba contribuciones (a nivel de aporte de código),  es fundamental que provean mecanismos para que los participantes interactúen (repositorio de software, dominio de internet, sitio web, listas de correo, mensajería instantánea tipo IRC, bug tracking system, foro, etc.) Si por otro lado, lo que desean es tan solo publicarlo y que se encuentre disponible bajo los términos de FOSS, es suficiente con crear una cuenta en servidores tipo Github.com o similares (http://alternativeto.net/software/github/).

Cuarto:

Dependiendo de la plataforma o sistema operativo para el cual esta orientado el software, podrían considerar métodos de empaquetado para el proyecto, es decir, aparte de publicar el código fuente en crudo, también se suele comprimirlo en tar.gz y proveer los respectivos Makefile, producir los respectivos .deb .rpm según la arquitectura/distribución GNU/Linux, etc. (por ejemplo: https://wiki.debian.org/HowToPackageForDebian).

---
URJC - Máster en Software Libre.

Monday, January 20, 2014

[ MSWL - Project Evaluation ]

FlOSS Quality Evaluation Methodologies

With the advent of many FlOSS technologies nowadays and the high demand for IT services, arises the need to implement solutions based on this scheme, taking full advantage of available resources and getting the most profit of the services provided.

Considering that today there are several FlOSS alternatives in so many areas, a proper analysis is critical to choose the right solution, because the costs of selecting the wrong technology could be later unapproachable. Must be considered functional, technical and social requirements to make the most appropriate decision.

To make this analysis posible, emerge both short and broad spectrum standards and methodologies such as the Open Source Maturity Model [1], the ISO 9126 [2], the Goal-Question-Metric (GQM) approach [3], the light weight Open Business Readiness Rating (OpenBRR) [4] or the Qualification and Selection of Open Source software (QSoS) [5], and the heavy weight Quality of Open Source Software endeavor (QualOSS) [6].

Each of these takes care of measuring qualitative and quantitative attributes with the aim of providing a resulting value that facilitates the desicion making in choosing a particular software.

---
References: 
  • [1] Duijnhouwer, F-W. "Open Source Maturity Model". Cap Gemini S.A. Nederland. 2003
  • [2] ISO/IEC. ISO/IEC 9126. Software engineering - Product quality. 2001. ISO/IEC. 
  • [3] Basili V, Caldiera G and Dieter-Rombach H. "The Goal Question Metric Approach". University Of Maryland and Universitat Kaiserslautern. 1994.
  • [4] OpenBRR.org. "Business Readiness Rating for Open Source". BRR 2005- RFC 1.
  • [5] Origin, Atos. "Method for Qualification and Selection of Open Source Software (QSoS) version 1.6". QSoS.org. 2006.
  • [6] Deprez J~C, Haaland K, and Kamseu F. "QualOSS Methodology & QUALOSS assessment methods". CETIC. June 2008.

[ MSWL - Project Evaluation ]

IPython

As comented in previous posts, Python is an exelent interpretive programming language with a powerful object-oriented approach and modular integration capabilities. Inspired by this, Fernando Perez bagan working on IPython since 2001, an enhanced interactive Python shell with improvements such as history caching, profiles, object information, session logging, and tab completion, as an evolve alternative for the default interpreter.

Evaluation or Quality Assurance of FlOSS projects is a must with greater demand every day. It is critical to have tools handling the processes of data analysis and visualization, and there are handful of third-party Python packages that are suitable for this purpose. Including packages like matplotlib, Chaco, PyX or Bokeh, IPython is able to provide powerful visual representations of data, which allows better understanding.

It is possible to generate scientific plots, bars, histograms, trellis, boxplots and scatterplots, which are different ways for low and high level data visualization. Also there is IPython Notebook, a web-based interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single document online.

---
Source: http://ipython.org

Thursday, December 19, 2013

[ MSWL - Developers and Motivations ]

FLOSS Social Structure Analisys Tools

The FLOSS understood as a development model provides a well-defined or at least can be characterized through social organization established patterns.

A good example of this is shown by "Crowston & Howison" who examined 120 projects from SourceForge and inquired about their social organization, discovering that there are patterns around each project and its members, in fact they found a pattern of stratification baptized as "The Onion Model".

There are specific tools to perform this type of analysis, here we mention two of them based on FLOSS: "CVSAnalY" (https://github.com/MetricsGrimoire/CVSAnalY) y "R Project" (http://www.r-project.org).

CVSAnalY is based on Python under GNU GPL license, and extracts information out of source code repository logs and stores it into a database. This provides the potential to analyze in detail the data contained in the log of a project, doing custom queries and limiting the results to what is really needed. For instance, the database could be MySQL and the repository source could be Git.

The R Project also based on GNU GPL license, provides set of software facilities for data manipulation, calculation and graphical display, based on the R language which is oriented to statistical computing and graphics. With this tool we could generate bar graphs showing the distribution of the bug-threads for certain project, or the top commiters by specific dates for instance.

Obtaining metric statistics and graphical visualization for the activity of developers around free software projects, allow us to identify among many other things: orders of magnitude between the Onion Model layers, determine the existence of "generational relay", do "social network analisys" or identify "developers territoriality" and thereby make analysis regarding the evolution of the project.

---
References:
  • Ortega F., Amor J. and Robles G. "The Onion Model in FLOSS". GSyC-Libresoft, MSWL URJC, Madrid, November 2011.
  • Crowston K and Howison J. "The social structure of Free and Open Source software development". School of Information Studies, Syracuse University. November 2004.

[ MSWL - Developers and Motivations ]

Free/Libre Software and Education

Last December 12th was held on Fuenlabrada's campus at URJC the GSyC/LibreSoft 2013 Convention, which counted with the presence of Richard M. Stallman (RMS) who offered a talk entitled "The Free Software and Your Freedom" (http://www.fsf.org/events/20131212-fuenlabrada).

In this talk Stallman spoke among other things about the goals and philosophy of the Free Software movement as well as the history of the GNU operating system, with emphasis on the ethical benefits of using this type of software.

The evolution of free software projects depends heavily on the formation acquired by individuals in the education system, but more importantly are the values ​​that govern these projects, which in turn leads the society.

As far as FLOSS would gradually be adopted by formal education systems in society, future leaders will emerge with robust foundations on issues of human rights, freedom, cooperation, and core values ​​for good and human progress. As RMS mention, "Free Software is not just a technical question; it is an ethical, social, and political question."

---
Reference: http://www.gnu.org/education/

Tuesday, October 15, 2013

[ MSWL - Development Tools ]

Benefits of using git

git is a distributed source control management system initially designed and developed by Linus Torvalds in 2005, distributed under GNU GPLv2 license. Among the main goals of this project was to support:
  • Distributed revision control system workflow, synchronizing code by exchanging patches from peer to peer
  • Strong safeguards against corruption, either accidental or malicious
  • Low latency of patches going into repositories, focused on speed
As Linus mentioned, there is a complete manual and tutorials asociated to this tool in the main website (http://git-scm.com/) that shows many of its features and how to use it, but there is a great Tech Talk given by Torvalds at Google in 2007 in which he emphasizes the following specific benefits:
  • Reliable: the system guarantees that the code putted into it, comes out exactly the same at any other time, preventing disc corruption or malicious intent. Get your own branch, doing a great work or a mediocre work, is not relevant, it's your own copy. A good backup way, cloning from trusted sources.
  • High performance: allows to track around 22,000 files in 5 seconds top.
  • Distributed: no single place of storage, be able to do everything from any location without access to the server, off-line work.
  • Disseminated: globally adopted by various systems and infrastructures.
Another important element is the repercussion this project is adopting in different areas of society, since its creation git is increasingly been used even in projects not related to computer science, due to we now live in the information age and require efficient systems to manage it.

Source: https://git.wiki.kernel.org/index.php/LinusTalk200705Transcript

Monday, October 7, 2013

[ MSWL - Development Tools ]

Python: The importance of Docstrings

A docstring is a literal string description or definition of a module, function, class, or method in the Python code. It becomes the __doc__ attribute of that object.

A docstring corresponds to something like the following:

  def function(a, b):
      """function(a, b) -> list"""

Or even something more comprehensive like this:

  def complex(real=0.0, imag=0.0):
      """Form a complex number.

      Keyword arguments:
      real -- the real part (default 0.0)
      imag -- the imaginary part (default 0.0)
      """

On the other hand, unlike the usual comments, a docstring facilitate the task of consulting the description of a module, function, class, or method from the Python interpreter, without requiring access to the source code to understand its operation, facilitating its usage.

All of this is a technical matter, but the real deal about it is to make the code readable and understandable with the intention of attract as many contributors as possible.

If the code of a project is not well documented, commented or described, there is no one who would want to use it or much less contribute to it. So if you're taking the time to code something transcendental or productive, then try to incorporate docstrings in the process, as this will allow a better diffusion of the project, or at least later will allow you to better understand what you did in the past. It is a good practice for you and for everybody in the programing world.

Source: http://www.python.org/dev/peps/pep-0257/

Wednesday, September 25, 2013

[ MSWL - Development Tools ]

Python Programming Language

Some years ago we would say Python is mainly an scripting programming language, but nowadays there is nothing worse than to consider it like that.

A better description of Python would be that it is an efficient general-purpose, high-level programming language emphasized on code readability, created in the early 1990's by Guido van Rossum at Stichting Mathematisch Centrum (CWI, http://www.cwi.nl/) in the Netherlands. Among many other features Python supports object-oriented paradigm as well as imperative and functional programming. It is also a multiplatform language as it is available for all major operating systems on the market. And one of the best news is that Python is implemented under an open source license (Python license) that makes it freely usable and distributable.

Currently there are two mayor branches of Python (v2 and v3) with small backwards compatibility between them, been version 2.7x the most widespread until now. A large part of the Free Software community has based its development on this powerful language and keep doing it.

Good interpreters which will help us to interact with Python are ipython and bpython as well as the documentation website for the project.

Source: http://www.python.org/

Sunday, March 3, 2013

[ MSWL - Project Management ]

FORD GOES OPENSOURCE

The automobile company announced at Mobile World Congress last February, that decided to go OpenSource on their Sync AppLink system, claiming that this way they will speed up the development.

Ford is releasing it's platform proprietary source code to Genivi, an automotive-centric open source alliance, also providing all necessary documentation to implement AppLink software into any vehicle’s infotainment system for iOS and Android devices, which pretends incentivate developers to create specific apps for cars. The code, known as SmartPhoneLink, will be released under a BSD license.

This is an estrategic move from Ford and also for Genivi, as one of several automotive technology organizations attempting to set a standard based on OpenSource while gaining traction and members.

Source: http://www.wired.com/autopia/2013/03/ford-sync-genivi/?cid=co6138614

Tuesday, February 19, 2013

[ MSWL - Project Management ]

SUSE - Adopting a strategic field

Almost a decade ago, SuSE was one of the cutting-edge Linux distribution. However nowadays with Red Hat dominating the Enterprise Linux Server market, Canonical owning the Linux Desktop market, and Google's Android running over the Mobile market, a valid question is 'What exactly is left for SuSE?'.

It seems that mainframes and cloud are two of the target markets for SuSE this decade. SuSE Cloud is one of the products for private cloud deployment, based on OpenStack. On the other hand there is System z support for mainframes, which guarantee uptime and performance over Linux kernel.

In any case, SuSE keeps offering their desktop distro Linux openSuSE which let them manage to stabilize the versions released in its enterprise products with the help of the community.

Source: http://readwrite.com/2013/01/25/does-suse-linux-have-a-future

Sunday, January 27, 2013

[ MSWL - Project Management ]

Social Enterprise and Business

Lets say that social enterprise is about take popular social media tools like blogs, wikis, forums, real-time communication platforms, etc., and use them for internal collaboration, project management and overall feel-good business practices.

It seems that in practice, a lot of companies have found that actually using this stuff does not guarantee happiness and productivity to their organization. Usually appear stumbling blocks that won't accept to moving forward on a project unless there's a meeting or memos in between - the very things social enterprise practices are trying to eliminate.

There's the issue of figuring when and for what social enterprise should be used? Employees may get confused over when and how they're supposed to turn to the social media platform in their day-to-day jobs. And if only some workers engage with the platform, its utility is greatly reduced.

"You Can't Force Workers To Be Social" - Enterprises can't just switch and turn on a social network, it is only possible as users find these tools helpful and engaging for their daily activities. Social media tools do make it easier to establish those connections, but it's not something you can force.

So in general, it is pretty important to implement a proper change management to gradually incorporate social enterprise tools and practices in business.

Source: http://readwrite.com/2013/01/25/social-enterprise-is-not-living-up-to-its-promise

Wednesday, January 2, 2013

[ MSWL - Economic Aspects ]

Mercado de teléfonos inteligentes en 2012

Según la consultora IHS iSuppli, los resultados de un estudio efectuado en 2012 señalan que Samsung ha superado a Apple y a los demás competidores en el mercado de los teléfonos inteligentes a través de sus dispositivos con sistema operativo android, abarcando un 28% del mercado y seguido por Apple con un 20%.

Fuente: http://globovision.com/articulo/samsung-amplio-su-ventaja-en-el-mercado-movil-en-2012-segun-estudio

Sunday, December 30, 2012

[ MSWL - Economic Aspects ]

IBM chooses Red Hat Linux for supercomputers

IBM has chosen Red Hat Enterprise Linux 6 as the operating system for its parallel BlueGene/Q and Power 775 supercomputers. On the one hand based on the excellent performance of the linux-kernel, on the other one because of the cut-throat price that Linux infrastructure offers.


Saturday, December 29, 2012

[ MSWL - Economic Aspects ]

Unix to Linux and Cloud Migration

An interesting interview to the general manager of Red Hat India region, explaining how they have grown with the adoption of kernel-based virtual machine (KVM) technology and incentivating companies to migrate from Unix-based to Linux infrastructure. KVM is a robust open standard-based choice for companies and enterprises nowadays.

Tuesday, December 18, 2012

[ MSWL - Economic Aspects ]


Apple-Foursquare data sharing deal

Apple Inc. has the intention to integrate local data from Foursquare Labs Inc. into their mapping application. Strategic agreements such as this, reveals the Apple's concern to compete in the market of the current product lider Google Maps, also seeking independence from the latter application in their iPhone devices.


Is noteworthy that since March 2012, Foursquare Labs stopped using Google Maps as its geo-location platform, changing to OpenStreetMap (OSM), wich is a project based on Open Database License (ODbL).

Source: http://online.wsj.com/article/SB10001424127887324907204578186074223787936.html

[ MSWL - Economic Aspects ]

THQ Is Looking At Bringing Their Games To Linux

Similar to the previous post, this time THQ Inc. (Toy Head-Quarters), a North American video & PC games developer company, is evaluating the option to get into the Linux field. Curious thing about this company is that they make money using the "Humble Bundles" method.

"Humble Bundles" are a series of video game collections that are sold and distributed online at a price determined by the purchaser, so in a certain way THQ have used unusual tecniques since the beginning, maybe incursion into an Open Source platform is another unusual strategy over other video games companies.


Sunday, December 16, 2012

[ MSWL - Economic Aspects ]

Gaming on Linux


Recently Roccat, a games maker company with headquarters in Germany, has reaffirmed its commitment to support the Linux platform, specifically at keep developing their own Linux kernel-based drivers. They also have the intention to get to the U.S. market, which has a great volume of users.

This could be a strategy to spread out the company's name globally as possible, and make business in other gaming fields than PC like consoles. In any case, it is important to remark that companies like Roccat are aware of the impact that FLOSS communities are capable of when it is about to broadcast a product, so they contributes to free projects and also gets benefit from it

Source: http://www.maximumpc.com/article/news/roccat_reaffirms_commitment_linux2012?utm_medium=referral&utm_source=t.co

Sunday, December 9, 2012

[ MSWL - Economic Aspects ]

Apple pierde terreno ante Android en mercado de tabletas

El mercado que venía ocupando el iPad con 56,3% en 2011 a bajado a 53,8% en 2012. Por otro lado, las tabletas que integran Android han aumentado de 39,8% a 42,7% en el mismo período.

Estos son datos publicados por International Data Corp (IDC), quienes en estimaciones previas indicaban que el mercado mundial de tablets estaría en 2012 en unos 117,1 millones de unidades vendidas, sin embargo se han registrado unas 122,3 millones hasta ahora.

Esto nos indica el grado de incidencia que ha alcanzado Google Inc. en el nicho de mercado de las tabletas, al elegir Android - basado en FLOSS - como el sistema operativo base para su producto, en contraposición de iOS - basado en código propietario - el elegido por Apple Inc. para el iPad.

Fuente: http://www.eluniversal.com/vida/121205/apple-pierde-terreno-ante-android-en-mercado-de-tabletas

Friday, November 30, 2012

[ MSWL - Legal Aspects ]


Apple: Justice Department Investigating Samsung's Use of Patents


The U.S. Department of Justice is investigating whether Samsung Electronics Co. (005930.SE, SSNHY) has misused some of its mobile-device patents in ways that violate antitrust law, rival Apple Inc. (AAPL) said in a legal document filed late Monday.
The department is investigating Samsung's use of patents that are deemed essential to wireless-technology standards adopted by the industry, Apple said in a filing with the U.S. International Trade Commission.
The ITC is one of several legal bodies that are refereeing patent-infringement disputes between the two companies.
Apple has accused the South Korea-based company of using certain patents as a basis for improper legal actions that seek to block the sale of competitors' products. Apple said in its ITC filing that Samsung violated commitments to license its essential patents to competitors on fair, reasonable and non-discriminatory terms.
A Justice Department spokeswoman declined to comment or confirm the probe. Neither Samsung nor Apple responded to requests for comment.
According to a person familiar with the probe, the department has been conducting the investigation for several months. The European Commission also has been investigating Samsung's patent conduct, a probe it announced in late January.
The U.S. Federal Trade Commission, which shares U.S. antitrust authority with the Justice Department, has been conducting a similar investigation examining how Google Inc. (GOOG) has used patents it acquired when it purchased device-maker Motorola Mobility, according to people familiar with the matter.
When the Justice Department cleared Google's acquisition of Motorola Mobility in February, it signaled that regulators would be monitoring how companies use essential patents in the wireless industry.

[ MSWL - Legal Aspects ]


Apple facing FaceTime patent suit

A Texas-based company is claiming that Apple's FaceTime and Messages apps violate one of its patents.
Apple is the latest company to feel the patent infringement pinch from a firm called Intercarrier Communications.
A lawsuit filed in U.S. District Court for the Eastern District of Virginia, contends that Apple's FaceTime and Messages apps violate ICC's Patent No. 6,985,748.
The patent in question refers to an "inter-carrier messaging service providing phone number only experience" and describes a method to send messages between different carriers using just a phone number.
ICC has been keeping the patent courts busy lately, according to PatentlyApple. In just the past five days, the company has launched similar suits against MobiWeb, Inerop Technologies, BroadSoft, Iris Wireless, and several other businesses, in each case citing the same patent.
In its suit against Apple, Frisco, Texas-based ICC is looking for an unspecified amount of damages based on any past and ongoing violations of the patent.
CNET contacted Apple and the attorneys for ICC and will update the story if we receive any information.