El fin del principio y el principio del fin

June 14th, 2012

Junio 14 junto a Febrero 11 van a quedar en la historia como el principio y el fin de Nokia, en Febrero 11 se decreto la muerte de Symbian y se le puso fecha de vencimiento a MeeGo, hoy Junio 14, la victima fue Meltemi.

[blackbirdpie url=”https://twitter.com/nkaratt/status/213202227379179520″]

Hasta el día de hoy tenia esperanzas de que al menos con Meltemi, Nokia podía seguir adelante como una compañía semi-independiente, que podríamos seguir usando y desarrollando aplicaciones en un dispositivo móvil basado en Linux y otras tecnologías Open Source, que en un mundo en donde la tecnología cada día restringe mas al usuario, aun tendríamos dispositivos fácilmente hackeables y accesibles, todo eso se termino hoy.

Hoy es el fin del principio y el principio del fin para Nokia, la Nokia innovadora, la que conectaba personas por billones, es historia, de ahora en adelante la empresa llamada Nokia, salvo en el nombre ya no sera nada de lo que era hasta hoy, les deseo lo mejor, pero no cuenten conmigo, su futuro basado en Windows Phone no es lo que yo quiero, su nueva visión es incompatible con mis valores y mis ideas de lo que debe ser y hacer un dispositivo móvil.

Por mi parte seguiré desarrollando, apoyando y ayudando a la comunidad que gira entorno de Symbian, Maemo y MeeGo/Harmattan, los cuales aun nos pueden brindar muchos años de diversión, aprendizaje y satisfacciones, por ultimo vaya mi respeto y agradecimiento a todos aquellos que trabajaron hasta el día de hoy en Nokia y que pelearon y trataron hasta ultimo momento de crear algo nuevo, original y valioso.

Announcements, Opinion, Personal , 1 response

Dieter Rams – Menos, pero mejor

May 20th, 2012

Dieter Rams

Mi primer contacto con Dieter Rams fue en mi infancia, sin quererlo y sin estar consciente de ello, todo gracias a mi padre que pensaba que gastar un poco mas en algo de calidad, a la larga te ahorraba mucho tiempo, dinero y problemas, es por ello que a mi madre cada tanto le regalaba algún que otro electrodoméstico marca Braun, no lo hacia porque era un fanboy de Dieter Rams, tampoco por que era un fanático de la marca, sino porque Braun tenia la reputación de producir productos de calidad, útiles y durables, reputación ganada gracias a un cuidado diseño, materiales de calidad y excelente fabricación, algo que ahora ha sido reemplazado por simple marketing, ya que es mas barato vender la sensación de calidad asociando un producto a un personaje “glamoroso” o creando la “experiencia” de calidad y exclusividad inflando los precios, muy pocas empresas en la actualidad realmente crean productos siguiendo los Diez Principios del Buen Diseño esbozados por Dieter Rams a principios de los 80 y pesar del tiempo que ha pasado, las cosas están peor que nunca, la palabra Diseño ha sido prostituida y devaluada, se fabrican cantidades superfluas de productos, lo cual es un derroche de tiempo, recursos y dinero, y la calidad de los mismos sigue siendo baja, aunque no así sus precios.

Afortunadamente, hoy con sus 80 años recién cumplidos, la voz de Dieter Rams cada vez es mas oída, y aunque ha tomado tiempo, al fin toda una generación de creadores esta empezando a aplicar sus enseñanzas.

Feliz cumpleaños Gestalt Ingenieur.

Design, Personal , , No response

Acceder a Nokia Maps desde QML

May 14th, 2012

Hoy encontré un link a mi blog desde este thread en Nokia Developer en donde preguntaban como abrir la aplicación Nokia Maps (ex Ovi Maps) con unas coordenadas especificas desde una app Qt, hacer esto desde QML es muy fácil, solo debemos usar el método openUrlExternally del objeto Qt de la siguiente manera:

MeeGo
Qt.openUrlExternally("geo:-34.603611,-58.381667")
Symbian
Qt.openUrlExternally("http://m.ovi.me/?c=-34.603611,-58.381667")

Ademas de poder abrir Nokia Maps en una ubicación precisa, con openUrlExternally también es posible, hacer llamados telefónicos, enviar SMSs, emails, abrir una dirección web en el navegador nativo y algunas otras cosas mas, pueden ver algunos ejemplos de esto y su implementación en esta entrada en la wiki de Nokia Developer

Development , , , , No response

Intro a QJson

May 11th, 2012

Hace unos días navegando por los proyectos públicos en Nokia Developer, me tope con un fork de QJson que incluye ciertas modificaciones para poder integrar QJson de forma mas natural con QML, antes ya había escrito como consumir JSON con QML, pero usar esta versión de QJson es mucho mas simple y eficiente.

Para empezar, lo primero que hay que hacer es bajar el proyecto y copiarlo en una carpeta con nombre el QJson en la carpeta raíz de nuestro proyecto.

Luego en el .pro de nuestro proyecto debemos hace un include al .pri de QJson.

include(./QJson/json.pri)

También en el .pro hay que declarar que vamos a usar la función network.

QT += network

En el main.cpp de nuestra app solo hay que crear los includes para QtDeclarative y para QJson y registrar el Type.

#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"

#include <QtDeclarative>
#include "QJson/qjson.h"

Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QScopedPointer<QApplication> app(createApplication(argc, argv));

    qmlRegisterType<QJson>("QJson", 1, 0, "QJson");

    QmlApplicationViewer viewer;
    viewer.setMainQmlFile(QLatin1String("qml/QColor/main.qml"));
    viewer.showExpanded();

    return app->exec();
}

En la parte QML empezamos agregando un import a QJson, luego crearemos un objeto QJSon y por ultimo vamos a declarar que cuando se dispare el evento Component.onCompleted se le asignara la url a parsear al objeto QJson y luego iteraremos la data resultante de la consulta he iremos asignando lo valores obtenidos a los campos correspondientes del modelo.

import QtQuick 1.1
import QJson 1.0
import com.nokia.symbian 1.1

Page {
    id: mainPage

    ListModel {
        id:colorsModel
    }

    Component {
        id:colorsDelegate
        ListItem {
            height: 100
            Image {
                id:icon
                smooth: true
                width: parent.width
                height: parent.height
                source: imageUrl
                Rectangle {
                    width:parent.width
                    height: 28
                    color:"#000"
                    anchors.bottom: parent.bottom
                    anchors.bottomMargin: 0
                    opacity: 0.750
                    ListItemText {
                        role: "SubTitle"
                        text:title +" by " + userName
                        horizontalAlignment: Text.AlignHCenter
                    }
                }
            }
        }
    }

    ListView {
        anchors.fill: parent
        model: colorsModel
        delegate: colorsDelegate
    }

    QJson {
        id: json
        onError: {
            console.log("line:"+line)
            console.log("message:"+message)
        }
    }

    Component.onCompleted: {
        var data = json.parse("http://www.colourlovers.com/api/palettes/new&format=json")

        for(var p in data){
            colorsModel.append({
                                   "title"   : data[p]["title"]
                                   ,"userName"  : data[p]["userName"]
                                   ,"imageUrl": data[p]["imageUrl"]
                               })
        }
    }
}

Para este ejemplo use el API de ColorLovers para poder consultar las ultimas paletas que se han agregado a su DB, el resultado de este pequeño ejemplo pueden apreciarlo en la siguiente imagen.

QColor Demo

Development , , , , 4 responses

Tizen Developer Conference 2012 – Días 2 y 3

May 10th, 2012

En el segundo día de la Tizen Developer Conference 2012 durante la “verdadera” keynote que ofrecieron Imad Sousou y Jong-Deok Choi se pudo saber mas acerca del prototipo que todos los asistentes se van a llevar a casa, también se develo el roadmap, por lo cual ahora sabemos que la versión 2.0 de Tizen (nombre código Magnolia) estará disponible para finales de año y también hubo tiempo para demos, en donde el principal foco estuvo en HTML5 lo que fue una constante durante toda la conferencia.


Photo Source: TizenTalk

El resto de las charla tanto las del día 2 como las del día 3 se centraron y dejaron bien en claro que HTML5 es la opción principal para el desarrollo de aplicaciones en Tizen y que la posibilidad de desarrollar de forma nativa esta en duda o en suspenso hasta la versión 2.0, por lo visto en las charlas, Tizen se esta posicionando como un OS carrier friendly, ofreciendo un core común, con una UX flexible, que puede ser personalizada a gusto por los operadores, con esta base los carriers pueden ofrecer dispositivos que hagan uso de sus propias tiendas de aplicaciones y servicios on the cloud, para así crear su propio “ecosistema”.

Dejar de la lado la posibilidad del desarrollo nativo hace que uno de los pocos puntos diferenciadores y una de las pocas ventajas comparativas que podía llegar a tener Tizen se pierde y queda posicionado al mismo nivel de Boot to Gecko, que ataca el mismo nicho; dispositivos HTML5 ready y fácilmente personalizable por los operadores.

Es paradójico ver como HTML5 que fue pensado y esta siendo impulsado como el gran estándar unificador, el que permitirá un mundo mas Open, se convierte en la herramienta perfecta para que los grandes creadores de contenidos, los operadores y los fabricantes de dispositivos puedan fácilmente crear sus jardines vallados.

HTML5 y Cloud Computing se están convirtiendo en una nueva clase de pensamiento único, todo en aras de la facilidad de uso, de la comodidad y de la seguridad, nuestros dispositivos móviles se están convirtiendo cada vez mas en terminales bobas, en donde las aplicaciones serán meros front-ends y tus datos estarán almacenados en algún oscuro rincón de un datacenter junto con el resto de tus archivos, ya que es mas barato poner un gigabyte on the cloud que en un dispositivo, ademas el continuo ida y vuelta de datos es una buena noticia para los operadores que cobran por ese trafico y para los creadores de contenido que en un futuro solo van a ofrecer sus productos por este tipo de canales, con mucho DRM y estúpidas restricciones, ya que para ellos, tu eres culpable de piratería hasta que se pruebe lo contrario (cosa que nunca pasa), todo un circulo vicioso, en donde todos ganan, menos los usuarios, aunque ellos crean que son los mayores beneficiados, ya que en su ignorancia, ceden su propiedad (archivos, datos, información) y privacidad, por una conveniencia del momento, para así poder seguir cómodamente insensibles.

Siento ser tan pesimista, yo en lo personal no tenia muchas esperanzas puestas en Tizen, a diferencia de MeeGo, Tizen no ofrece nada nuevo, ni nada que entusiasme y eso se nota mucho, la comunidad alrededor de Tizen es mínima, el trafico en las lista de correos es ínfimo, los comentarios en IRC no son muy alentadores y la visión que tenia el proyecto MeeGo de crear un sistema operativo Open Source tanto en el código como en el proceso de desarrollo, a Tizen le queda grande.

Announcements, Community, Events, Opinion , , , 2 responses