Category: Community

No hay nada mas poderoso que una idea a la que le ha llegado su tiempo

March 29th, 2012

First they ignore you, then they laugh at you, then they fight you, then you win.

Mohandas Karamchand Gandhi

Despite opposition, truth happens

Default to open: The story of open source and Red Hat

Community, Personal , No response

[Actualizado] Meltemi es real

March 21st, 2012

Hasta ahora, lo poco que se sabia sobre Meltemi, eran simples rumores, basados mas que nada en especulaciones, pero hoy gracias a @kypeli que encontró un par de referencias a Meltemi en código de Nokia, se puede afirmar que Meltemi, paso del terreno de las especulaciones, al terreno de la realidad, la primera referencia esta en Pastebin en donde aparece un link a la Wiki de Meltemi en la intranet de Nokia, en una conversación de un empleado de Nokia en lo que parece ser un script usado por el instalador de una versión interna de las herramientas de desarrollo de Meltemi.

http://wikis.in.nokia.com/Meltemi/Developer

Nokia has confirmed the existence of Meltemi. Kinda. http://t.co/BNx2g2gF
@kypeli
Johan Paul

La segunda prueba se encuentra en los repositorios de Qt Sensors, en donde en la cabecera de archivo se puede ver los siguiente:

qirproximitysensor.cpp at The Qt Sensors repository

And Nokia confirmed Meltemi will run Qt. Kinda. http://t.co/1fmWTeWF
@kypeli
Johan Paul

Estas pruebas no hacen mas que confirmar que Meltemi existe, que esta basado en Linux y que Qt es uno de sus pilares, ahora solo resta saber cuando y en que producto se presentara, sera cuestión de seguir esperando, pero viendo el buen trabajo que se hizo con MeeGo/Harmattan, creo que la espera aunque dura, valdrá la pena.

Actualización – 22/03/2012

Las pruebas de la existencia de Meltemi al parecer no duraron mucho en publico, tanto el contenido de Pastebin como el archivo en el repo de Qt Sensors ha sido eliminado, afortunadamente tengo una copia de cada uno de ellos, lo cuales pueden ver a continuación:

Pastebin
From c562d53d77866767beb242df2eee507c7b8bcaf7 Mon Sep 17 00:00:00 2001
From: ------ --------- <------.---------@nokia.com>
Date: Tue, 24 Jan 2012 19:11:39 +0100
Subject: [PATCH] Cleanup package dependencies

---
 mt-make-sysroot |   35 +++--------------------------------
 1 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/mt-make-sysroot b/mt-make-sysroot
index 688bf39..26011d7 100755
--- a/mt-make-sysroot
+++ b/mt-make-sysroot
@@ -166,24 +166,6 @@ function find_executable()
   return 0
 }
 
-function test_object()
-# Usage:
-#
-#   test_object <test> <object> [message]
-#
-# Run <test> (-d/-f/-e/-x/...) for <object>
-# on success return 0
-# on failure print message if supplied and return 1
-{
-  if [ ! "${1}" "${2}" ] ; then
-    if [ -n "${3}" ] ; then
-      echo "${3}"
-    fi
-    return 1
-  fi
-  return 0
-}
-
 function test_package()
 # Usage:
 #
@@ -236,17 +218,8 @@ function check_environment_ubuntu()
   test_package 'mt-dev-env' 'This machine was not setup to run the desktop emulator, yet. Visit http://wikis.in.nokia.com/Meltemi/Developer and do check the prerequisits section' || \
     tool_check=0
 
-  find_executable 'rpm' 'rpm not found. Do "sudo apt-get install rpm"' || \
-    tool_check=0
-
-  #python
-  test_object '-d' '/usr/share/pyshared/M2Crypto' 'python-m2crypto not found. Do "sudo apt-get install python-m2crypto"' || \
-    tool_check=0
-  test_object '-d' '/usr/share/pyshared/urlgrabber' 'python-urlgrabber not found. Do "sudo apt-get install python-urlgrabber"' || \
+  find_executable 'mtz' 'mtz not found. Do "sudo apt-get install mtz"' || \
     tool_check=0
-  test_object '-f' '/usr/lib/build/debtransform' \
-    'python rpm helper module not found. Add the open suse repository to your sources.list and do "sudo apt-get install build"' || \
-      tool_check=0
 
   if [[ $tool_check == 0 ]] ; then
     exit 1
@@ -257,7 +230,7 @@ function check_environment_opensuse()
 {
   local tool_check=1
 
-  find_executable 'rpm' 'rpm not found.' || \
+  find_executable 'mtz' 'mtz not found.' || \
     tool_check=0
 
   if [[ $tool_check == 0 ]] ; then
@@ -269,7 +242,7 @@ function check_environment_redhat()
 {
   local tool_check=1
 
-  find_executable 'rpm' 'rpm not found.' || \
+  find_executable 'mtz' 'mtz not found.' || \
     tool_check=0
 
   if [[ $tool_check == 0 ]] ; then
@@ -595,8 +568,6 @@ init_obs
 function mtz_wrapper()
 {
   arch=$1
-  test_package 'mtz' 'mtz not found, trying to install' || \
-    "${SUDO}" apt-get install mtz || print_error "Installation of mtz failed"
 
   #fix the arch name, since mtz needs to know the real ones used on the reposerver
   arch=`echo $arch | sed -e "s/armv7el/armv7hl/"`
-- 
1.7.4.1
qirproximitysensor.cpp
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtSensors middleware for Meltemi.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

#include 
#include "qirproximitysensor_p.h"
IMPLEMENT_READING(QIRProximityReading)
/*
    \class QIRProximityReading
    \ingroup sensors_reading
    \inmodule QtSensors
    \brief The QIRProximityReading class holds readings from the IR proximity sensor.
    The IR (infra-red) proximity sensor detects proximity by beaming out infra-red light
    and detecting how much of the light returns.
    The biggest limitation of this technology is that there is no reliable way to turn the
    reflectance values into distances unless both the item being detected and the ambient
    conditions are known.
    \section2 QIRProximityReading Units
    The sensor reports reflectance as a percentage. That is, 0 indicates nothing was detected
    within the range of the sensor and 100 indicates the infra-red signal returned at the full
    power level that it was sent at.
*/
/*
    \property QIRProximityReading::reflectance
    \brief Holds the reflectance value.
    The reflectance is a percentage (from 0 to 100) indicating how much of the transmitted
    infra-red light was returned.
    \sa {QIRProximityReading Units}
*/
qreal QIRProximityReading::reflectance() const
{
    return d->reflectance;
}
/*
    Sets the reflectance value to \a reflectance.
*/
void QIRProximityReading::setReflectance(qreal reflectance)
{
    d->reflectance = reflectance;
}
// =====================================================================

/*
    \class QIRProximityFilter
    \ingroup sensors_filter
    \inmodule QtSensors
    \brief The QIRProximityFilter class is a convenience wrapper around QSensorFilter.
    The only difference is that the filter() method features a pointer to QIRProximityReading
    instead of QSensorReading.
*/

/*
    \fn QIRProximityFilter::filter(QIRProximityReading *reading)
    Called when \a reading changes. Returns false to prevent the reading from propagating.
    \sa QSensorFilter::filter()
*/

char const * const QIRProximitySensor::type("QIRProximitySensor");

/*
    \class QIRProximitySensor
    \ingroup sensors_type
    \inmodule QtSensors
    \brief The QIRProximitySensor class is a convenience wrapper around QSensor.
    The only behavioural difference is that this class sets the type properly.
    This class also features a reading() function that returns a QIRProximityReading instead of a QSensorReading.
    For details about how the sensor works, see \l QIRProximityReading.
    \sa QIRProximityReading
*/

/*
    \fn QIRProximitySensor::QIRProximitySensor(QObject *parent)
    Construct the sensor as a child of \a parent.
*/

/*
    \fn QIRProximitySensor::~QIRProximitySensor()
    Destroy the sensor. Stops the sensor if it has not already been stopped.
*/

/*
    \fn QIRProximitySensor::reading() const
    Returns the reading class for this sensor.
    \sa QSensor::reading()

*/

#include "moc_qirproximitysensor.cpp"
Announcements, Community , , , No response

Spark en CeBIT 2012

March 8th, 2012

Por estos días en la CeBIT en los stands de Xompu y KDE se esta exhibiendo la Spark, en el siguiente video pueden ver una entrevista a Aaron Seigo en donde hace un pequeño paseo por Plasma Active y nos cuenta de los desafíos a los que se están enfrentando en el proyecto y algunos de los planes que se están evaluando para el futuro, como por ejemplo una versión de 10 pulgadas de la Spark, entre otras cosas.

Community , , No response

Spark, es solo el comienzo

February 19th, 2012

Spark

Hace un par de días comenzó el proceso para poder pre ordenar de la Spark, tanto este anuncio como los anteriores han logrado llamar la atención de la mayoría de los blogs mainstream, lo que ha logrado crear cierta masa critica de entusiastas e interesados en comprar una Spark, esto permitirá en un principio que los primeros objetivos del proyecto puedan llegar a concretarse, yo por mi parte ya complete mi pre orden, espero no tener problemas para poder recibir la tablet en mi domicilio, pero en un país como la Argentina en donde un burócrata corrupto traba la importación de medicamentos oncológicos sin importarle la vida de quienes dependen de esta medicación, lograr que una simple tablet pase por esa caja negra que es la Aduana Argentina puede terminar siendo una odisea.

Dejando de lado lo problemas de corrupción y burocracia, la sola idea de que proyectos como la Spark o la Raspberry Pi comiencen a traccionar y que el publico “no técnico” tenga idea de su existencia es un logro importante, y no por el hecho de que este publico pueda terminar comprando alguno de estos dispositivos, sino por el simple hecho de que este publico ahora conoce la idea que impulsa a estos proyectos, para mucha gente las restricciones y trabas que traen la mayoría de los dispositivos móviles le son indiferentes o ignoran su existencia, el poder modificar, cambiar el OS o hacer lo que se te ocurra con el dispositivo que compraste y es de tu propiedad es algo que todos los que usamos una PC damos por sentado, pero en el mundo mobile la cosa es diferente, el éxito de Apple abrió el camino para que el resto de los fabricantes siguieran su estrategia de limitar funcionalidad y libertad de modificación y configuración a cambio de “facilidad de uso”, integración, seguridad y todas las idioteces que puedan salir de los departamentos de marketing y sirvan para controlar lo que el usuario hace con su dispositivo.

Spark no es el primer proyecto de su tipo, hace unos meses la Cordia Tab, creo algo de expectativa, mas que nada entre aquellos que estábamos involucrados de alguna manera con MeeGo, lamentablemente por problemas con el OEM que no quería entregar el código del kernel Linux que utilizaba el dispositivo seleccionado, el proyecto se paralizo, antecedentes como estos son los que hacen que la Spark sea tan importante, si la Spark llega a tener un éxito moderado, esto puede servir de precedente, y demostrarle a los OEMs que también se puede hacer dinero con una plataforma de hardware abierta, es mas, la Spark y todo el software que se cree para ella pueden darle una ventaja y cierta diferenciación a todos esos pequeños fabricantes chinos que hoy por hoy solo pueden competir en precio y en la gama baja.

El mercado mobile actual, se parece al mercado de las computadoras hogareñas de principios de los 80, donde una cantidad inmensa de empresas fabricaban sus dispositivos totalmente incompatibles unos con otros, tanto a nivel hardware como a nivel software, esta etapa paso rápido y sirvió para que la computación se popularizara y llegara a muchos hogares y escuelas, pero la verdadera revolución comenzó con la IBM PC y sus clones compatibles, que sentó las bases de toda una industria que creció alrededor de este mínimo común denominador, en donde no había restricciones, lo que permitió que terceras partes agregaran todo aquello que faltaba o que mejoraran lo que ya existía.

Spark es solo el comienzo, es verdad que la relación precio prestaciones del producto no es la mejor, pero de alguna manera hay que empezar, en este momento lo mas importante es tener un dispositivo libre y abierto, antes que un dispositivo con una pantalla de calidad o un procesador poderoso, estamos en un punto de quiebre, los fabricantes de hardware junto a grandes empresas de software y entretenimiento están presionando para cerrar y dificultar lo mas posible el poder modificar tanto el hardware como el software, necesitamos ahora mas que nunca una alternativa abierta para contrarrestar esta ola de restricciones, sino, vamos a pasar mas tiempo tratando de burlar protecciones que usando nuestros propios dispositivos, la Spark es un primer paso en un camino largo y complicado, es hora de empezar a recorrerlo.

Announcements, Community, Opinion, Personal , , , , , No response

Qt & The Next Billions

December 26th, 2011

Después de Febrero 11, muchas cosas cambiaron en Nokia, a Symbian le pusieron fecha de vencimiento, a MeeGo lo mandaron al freezer, el único que recibió un fuerte respaldo fue Qt, pero viendo la magnitud del descalabro, era difícil creer en esa promesa, paso el tiempo y hay que admitirlo, Nokia esta cumpliendo con lo que prometio, desde Febrero 11 a la fecha se han liberado Qt 4.7.3, Qt 4.7.4 y Qt 4.8, el trabajo en Qt 5 sigue viento en popa, ademas a mediados de junio, Nokia anuncio que Qt pasaría a ser parte fundamental de su estrategia para el Next Billion y mas importante aun, en Octubre se completo el proceso por el cual Qt pasa a ser administrado bajo un modelo de Open Governance.

El futuro de Qt parece asegurado, ademas de Nokia muchas otras plataformas contemplan la posibilidad de utilizarlo de forma oficial o existe el potencial de que terceros lo porten y le den soporte, el siguiente es un listado de alguna de ellas.

Nokia

Ademas de poder ser usado en Symbian y MeeGo, Nokia a anunciado que Qt sera el entorno de desarrollo que potenciara su estrategia para el Next Billion, cuando Marco Argenti hizo el anuncio en Nokia Connections 2011 no dio muchos detalles, lo que hizo que durante un tiempo se especulara con la idea de Qt corriendo sobre S40, ya que hasta ese momento S40 era la plataforma que Nokia estaba posicionando para ser usada por el Next Billion, paso el tiempo, llegaron los DevDays y por suerte con ellos, algo de información llego a la superficie, según Kenny Mathers (Head of Developer Relations en ese momento) la plataforma elegida para la estrategia Next Billion de Nokia no va a ser S40, esto sumado a que Symbian y MeeGo yo no juegan este partido, hace que nuevamente se vuelva a especular con Meltemi, ahora bien ¿que es Meltemi?, una ¿versión lite de MeeGo? o ¿una evolución de Maemo/MeeGo?, quizás para mitad del año que viene, con la release de Qt5 podamos saber mas, mientras tanto no queda otra que esperar, pero con la seguridad de que Nokia esta cocinando algo en Ulm.

Canonical

La relación entre Canonical y Qt comenzó hace tiempo y sigue profundizándose, el solo hecho de que Unity 2D haga uso extensivo de Qt y QML es una muestra del compromiso de Canonical con Qt, si a esto le sumamos las intenciones de Canonical de llevar la experiencia Ubuntu, a smartphones, tablets y smart TVs, la idea de un nuevo “ecosistema” con Qt como uno de sus pilares, comienza a tomar forma y merece la pena ser seguida de cerca.

Research in Motion

QNX el OS que compro RIM para usar en su próxima generación de smartphones y tablets, incluye a Qt entre sus paquetes desde hace tiempo, muchas soluciones se venden haciendo uso del tandem QNX/Qt, por suerte esto no ha cambiado con la compra de RIM y para dejarlo claro, George Staikos (Vice Presidente de RIM) manifestó el apoyo por parte de RIM a Qt en una de las keynotes de los ultimos DevDays, anuncio que Qt seria soportado en BBX y para que quede el mensaje claro, mostró varias demos desarrolladas en Qt corriendo en su PlayBook.

Hewlett Packard

Qt siempre formo parte de webOS, es cierto que es una versión algo vieja (4.6 y 4.7.1) la que se encuentra disponible entre sus paquetes, esto ha permitido que miembros de la comunidad porten apps y el framework por su lado, todo esto se pone mas interesante luego del anuncio de la apertura del código de webOS por parte de HP, donde Qt puede tomar impulso para todos aquellos interesados en desarrollar aplicaciones que corran de forma nativa en webOS.

Samsung/Intel/Linux Foundation/Nomovok

Este es el grupo de los unidos por el espanto, por un lado Samsung una empresa amante del control total que ve que con Android no puede crear una cárcel 100% invulnerable, Intel que ve que el mercado mobile se esta comiendo su reino, prueba una vez mas crear un OS para sus chips de bajo consumo de energía que están siempre por llegar, quizás esta sea la ultima oportunidad de Intel para lograr algo el éxito, antes de tener que renovar su licencia con ARM y empezar a fabricar chips con tecnología ajena, perdiendo no solo el control sobre la tecnología, sino el de su propio futuro, la Linux Foundation, ese sello de goma organizador de conferencias y vendedor de remeras, no pincha ni corta en las decisiones pero todos quieren tener su visto bueno como para darle un toque mas Open Source a sus proyectos, y por ultimo Nomovok que en la época en la cual MeeGo aun vivía, aposto fuerte por el y ahora esta tratando de recuperar toda la inversión hecha, la cual en su mayoría se desarrollo usando Qt, la idea de Nomovok es vender su UI que corre arriba de los que debería de ser Tizen a fabricantes chinos de tables económicas para ayudarlos a diferenciarse, para ello se ha comprometido a portar Qt a Tizen y darle mantenimiento.

El futuro de Qt en Tizen, esta complicado mas que nada por razones políticas, Samsung tiene a EFL con el que sueña sustituir a Qt, a Intel puede que le interese mantener a Qt después de todo el trabajo y progreso que realizaron en MeeGo, pero con tal de seguir teniendo a Samsung de socio no va a decir nada y aceptara lo que Samsung decida, lo que piense la Linux Foundation no le importa a nadie y lo que haga Nomovok va a terminar siendo irrelevante sin el apoyo de Samsung e Intel, prueba de esto es la conferencia sobre Tizen que Nomovok organizo hace algunas semana en China, en donde ni Intel, ni Samsung se hicieron presentes, ni mucho menos patrocinaron, cosa que si hizo Qt, que participo como Silver Sponsor, esto no quiere decir que Samsung e Intel prohíban o restrinjan el uso de Qt en Tizen, pero sin el apoyo de ellos, Qt va a estar relegado a los hobbystas, a soluciones muy especificas y a lo que pueda hacer la comunidad.

KDE

Esto parece una obviedad, pero no podía dejar de mencionar el soporte y apoyo que el proyecto KDE le da a Qt, para muchos, KDE es sinónimo de Qt y viceversa, lo cual puede ser una arma de doble filo, mas cuando la persona que interpreta esto ignora que KDE es una plataforma y Qt es un entorno de desarrollo, sino hagan la prueba de preguntarle a cualquier usuario de Linux que piensan de Qt y casi con seguridad terminara respondiendo con temas relacionados a KDE.

KDE siguiendo la evolución de Qt, ya esta preparando el salto a Qt5, lo que debería capitalizarse en una mejora en la performance general del sistema, pero que se notara mas en la parte de gráficos. algo que en KDE se usa y se abusa mucho.

Mer Project

Este proyecto del que hace un tiempo hable aquí en el blog, es la continuación de MeeGo por otros medios, luego de que todos los que lo soportaran le soltaran la mano, el proyecto avance a paso lento pero firme, con entregas regulares y sumando apoyo de otros proyectos Open Souce, como por ejemplo la gente de Plasma Active, que de a poco se esta convirtiendo en una de las UIs preferidas de quienes trabajan y experimentan con Mer.

Raspberry Pi

El proyecto cuyo objetivo es crear una GNU/Linux box basada en ARM por menos de U$S25 sigue avanzando, lo que ha llamado la atención de mucha gente, tanto que personas dentro de ICS y Nokia, están trabajando en una versión ultra optimizada de Qt5 para esta plataforma, ademas se creo un programa por el cual Nokia esta entregando a 400 miembros de la comunidad placas para que puedan usarlas en sus proyectos.

Haiku

Haiku aparece en esta lista en una especie de fetichismo de mi parte, es cierto que su comunidad tanto de desarrolladores como de usuarios es muy pequeña, pero el port de Qt en Haiku ha permitido que muchas aplicaciones KDE corran en el, haciendo que Haiku se torne un poquito mas interesante y permitiendo que podamos aplicar nuestros conocimientos en un proyecto en donde cualquier aporte, por mas mínimo que sea puede lograr un gran impacto.

Los Otros

Aquí entran los ports de Qt para iOS, Android y Windows 8, estos ports cuentan con distintos grados de madurez y soporte, por un lado tenemos a Digia que esta trabajando en el port oficial de Qt para Windows 8, también tenemos al proyecto Necessitas cuyo progreso es impresionante, cuenta con una integración muy buena con Qt Creator y también con un port de Smart Installer (llamado Ministro) para el manejo de dependencias, muchas apps creadas con Qt están ya disponibles en el Android Market, por ultimo están los ports para iOS, el primero, UIKit, es mas un experimento que otra cosa, esta limitado a aplicaciones de una sola ventana y no tiene soporte multitouch, luego esta Qt4iOS, este port es comercial, tiene soporte completo para Qt Widget, QML, OpenGl, Qt Mobility y Qt3D, ademas ya hay al menos una aplicación desarrollada con el, que paso el proceso de verificación de la Apple App Store y ya esta en venta.

Conclusiones

Ademas de los entornos clásicos como Windows, Mac OS X y Linux, existen muchos proyectos en donde Qt puede ser usado, en algunos con mayor o menor soporte, algunos mas maduros, otro que recién empiezan, es lo bueno de Qt y de su promesa Code Less, Create More, Deploy Everywhere.

Community, Development, Opinion , , , , , , , , , , , , , , , , , , No response