domingo, 22 de febrero de 2009

Tira nº 63: enredado


Que ningún programador/a se sienta ofendido/a. Todos hemos escrito código guarro alguna vez que otra ;-)

META: estoy intentando retomar las tiras y voy a hacer el esfuerzo de publicar con mayor frecuencia. Para la semana que viene ya tengo otra preparada.

viernes, 20 de febrero de 2009

KDE en MacOSX

Gracias al proyecto Fink tenía instaladas algunos programas que no vienen de serie en el MacOS X, además del estupendo gestor de paquetes apt. En el trabajo utilizo Linux (Kubuntu) y especialmente konqueror y sus kios

Así que me he armado de paciencia e instalado KDE en el Mac. No es complicado, sólo hay que seguir las instrucciones de la gente de mac.kde.org. Pero es muy tedioso: hay que compilar todo y aunque la herramienta fink es muy buena, una noche entera de gcc no se la quita nadie al ordenador.

El resultado merece la pena, por lo menos a mí. Además es muy curioso.

Kicker+Dock
konqueror

 

 

 

 

 

 

 

 

 

Por cierto, se trata de KDE 3.5 y corre bajo el sistema XWindow. Creo que el KDE 4 ya corre nativo en MacOSX, pero no me atrevo a probarlo todavía.

viernes, 5 de diciembre de 2008

Ya tenemos Python 3

Ayer, 3 de diciembre de 2008 se publicó la versión 3.0 del lenguaje de programación Python.

Esta versión aporta muchísimas novedades y muchas incompatibilidades con Python 2.x
Para ayudar en la migración de código antiguo, han desarrollado una herramienta de conversión, 2to3

Las que a mí más me han gustado:

  • Ahora sólo hay un tipo de enteros, equivalentes al antiguo long. Se acabó lo de definir los enteros "largos" con una L.

  • Se acabaron los problemas de "encoding": el código se escribe en UTF-8 y el tipo string trabaja internamente con unicode.

  • Se ha reorganizado la librería estándar y muchos módulos obsoletos ya se han eliminado.


También hay inconvenientes: por ahora es más lento que las versiones 2.x. Nada que un buen repaso no pueda corregir.

Mi enhorabuena a toda la gente que trabaja desarrollando este lenguaje. Ha sido una decisión valiente y creo que acertada.

miércoles, 12 de noviembre de 2008

La próxima batalla de sistemas operativos

En los ordenadores personales podemos decir que hay un sistema operativo predominante (Windows) y algunos más con un porcentaje de usuarios sensiblemente más reducido (MacOSX, Linux, ...)

Según nuestras estadísticas más recientes, por poner un ejemplo, la web de Público la visitan (aproximadamente) un 91% de usuarios con Windows, un 4,8% de  usuarios con MacOSX, un 3,1% de usuarios con Linux y el resto, otros sistemas (algunos *BSD, iPhone, Symbian, Playstation, Wii, etc).

Son estos últimos sistemas los más interesantes: los sistemas operativos de dispositivos móviles. Parece que todos los analistas y gurús de la web están de acuerdo: los dispositivos móviles van a tener cada vez más importancia en la web.

En este segmento no está tan claro que haya un sistema operativo predominante. Tenemos Symbian (Nokia y Ericsson, principalmente), Windows Mobile, BlackBerry, iPhone, el recién llegado Android, ...

En este mercado no hay una predominancia tan clara de un sistema frente a otro. Los Symbian acaparan la mayor parte de ventas, pero la diferencia no es tan abismal como ocurre con los sistemas operativos de escritorio.










































































Company

2Q08
Sales

2Q08 Market Share (%)

2Q07
Sales

2Q07 Market Share (%)

2Q08- 2Q07 Growth (%)

Symbian

18,405,057

57.1

18,273,255

65.6

0.7

Research In Motion

5,594,159

17.4

2,471,200

8.9

126.4

Microsoft Windows Mobile

3,873,622

12.0

3,212,222

11.5

20.6

Linux

2,359,245

7.3

2,816,490

10.1

-16.2

Mac OS X

892,503

2.8

270,000

1.0

230.6

Palm OS

743,910

2.3

461,918

1.7

61.0

Others

352,679

1.1

349,501

1.3

0.9

Total

32,221,175

100.0

27,854,586

100.0

15.7

Fuente: Gartner

En esta tabla no tenemos datos de Android, pero es previsible que a lo largo de este año se comercialicen más terminales que lo incorporen como sistema operativo.

Queda un último contendiente que mencionar. Aunque no es un sistema operativo como tal, considero importante reseñarlo: Java para móviles (J2ME).

Java es un lenguaje de programación (desarrollado por Sun Microsystems) que funciona en muchos entornos diferentes utilizando unas especificaciones adecuadas para cada sistema (servidores, ordenadores personales, dispositivos móviles).
La característica más notable es que los programas Java se ejecutan en una "máquina virtual", con lo que el mismo programa puede correr en distintos dispositivos siempre que tengan instalada la máquina virtual apropiada.

En el caso de los teléfonos móviles, casi todos los modelos incorporan una máquina virtual o intérprete de Java, con lo que el desarrollo de programas para móviles usando este lenguaje se simplifica mucho al poder desarrollar un sólo programa que puede ejecutarse en muchos modelos de teléfono diferentes (en la práctica esta supuesta compatibilidad no lo es tanto).

Resumiendo: sin ser realmente un sistema operativo, el Java para móviles es el sistema que más penetración en el mercado ha tenido. Una buena jugada comercial y técnica, ¿no creen?

lunes, 10 de noviembre de 2008

Programando para teléfonos móviles con J2ME

Pese a la gran disparidad de sistemas operativos, modelos y capacidades que encontramos en los teléfonos móviles hay un denominador común a la hora de desarrollar software para estos dispositivos: muchos modelos pueden ejecutar Java.

La máquina virtual que implementan es muy sencilla y tiene algunas limitaciones, pero ofrece muchas características. Las aplicaciones para móvil básicamente se pueden desarrollar en torno a dos aproximaciones:

  • Utilizando elementos gráficos de alto nivel, como botones, etiquetas, formularios, etc.

  • Utilizando un "canvas" donde "pintamos" los elementos que necesita nuestra aplicación.

El simulador que viene con NetbeansPor otra parte, el desarrollo de aplicaciones es bastante sencillo porque casi todos los entornos de desarrollo proveen un simulador de teléfono muy útil en el que podemos ir probando el programa sin necesidad de instalarlo en el móvil hasta que no está terminado.

Uno de los IDEs que más me ha gustado ha sido NetBeans. Tiene un plugin para J2ME muy bueno y sencillo de utilizar.

No todo es de color rosa. La gran disparidad de dispositivos y sus capacidades complican bastante el desarrollo: las aplicaciones J2ME se desarrollan alrededor de diferentes configuraciones (CDC y CLDC -esta última engloba los móviles, PDAs y dispositivos similares-) y perfiles (dentro de la configuración CLDC, el perfil MIDP es el que se adecúa a los teléfonos móvies, pero existen diferentes versiones).
En el capítulo 1 del libro "Java a Tope: J2ME" viene perfectamente explicado. Por cierto, un libro que puede descargarse gratuitamente y está muy bien.

Como siempre, la mejor forma de aprender algo es poniéndose con ello: he hecho un pequeño programita para móvil que se llama MMU (Music Mobile Utilities) con la ayuda de NetBeans y la verdad es que me ha quedado bastante apañado, sobre todo para no tener ni idea del tema ;-)