sábado, 28 de febrero de 2009

KDE4 en MacOSX

En la entrada anterior comentaba que había instalado KDE (3.5) en el Mac usando la herramienta Fink.
La gente de KDE también tiene preparada la versión 4 para instalarlo en el Mac, además no hay que compilarlos.

He probado a instalarlo, no hay más que ejecutar el instalador y ya está.
Novedades respecto a KDE3 en Mac:

  • No necesita el sistema XWindow para correr.

  • Las aplicaciones aparecen bajo un directorio propio bajo /Applications


Esto último es un problema: por ejemplo, Konqueror o Dolphin esperan encontrarse los programas auxiliares (Kate para editar textos, Okular para visualizar pdf, Gwenview para ver imágenes, etc) en el PATH, pero estas aplicaciones no están como tal, no existe el ejecutable, sino el "Application Bundle" o directorio .app. 

Como curiosidad no está mal, pero no veo muy estable este KDE4 como para usarlo habitualmente, además falla de vez en cuando.

Para desinstalarlo hay que borrar /Applications/MacPorts/Qt, /Applications/KDE4 y una buena ristra de ficheros y directorios bajo /opt/local (cuidado ahí, que otros programas también dejan ahí sus ficheros).

[gallery link="file" columns="5"]

miércoles, 25 de febrero de 2009

¿Dependemos en exceso de algunas compañías?

Tras la caída de Gmail ayer, mucha gente se está empezando a replantear si tenemos una dependencia excesiva de Google (u otras empresas) y si estamos ante un nuevo monopolio.

Personalmente, mi relación con los productos de Google es de amor/odio. Su buscador me parece muy bueno, Gmail es el correo web que más me gusta de todos los que he probado y otros "inventos" suyos me parecen geniales (GTalk, Maps, Groups, muchas de las APIs para desarrolladores, ...).

El odio viene provocado por la envidia ;-)
Como desarrollador web no puedo dejar de admirar, desde el punto de vista técnico, lo bien que han hecho algunas cosas.

Sin embargo, reconozco que puede que estén acumulando demasiado poder. Muchos responsables de sitios web viven pendientes del PageRank de su web, la publicidad AdSense (una de las principales fuentes de ingresos de Google) no es del agrado de todo el mundo y su actuación en algunos países es bastante cuestionable (p. ej., en China).

Pese a todo, veo dos diferencias muy importantes respecto a otros monopolios existentes:

  1. Sus productos, por lo general, son buenos. Algunos, muy buenos. De otras compañías no puede decirse lo mismo (estoy pensando en los navegadores de Microsoft).

  2. Este monopolio es consentido por los usuarios. No viene preinstalado en nuestros ordenadores. Nadie nos obliga a utilizar Google para hacer nuestras búsquedas, ni usar Gmail para nuestro correo, ni pinchar en los anuncios AdSense.


¿Qué opinan? ¿Estamos dando mucho poder a esta empresa?

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

El desarrollo de una página web

Me ha dado mucha envidia José Pujol con sus "posts" en los que explica el día a día de su trabajo, así que en esta entrada voy a hacer lo mismo.

En la web de Público tenemos dos partes muy diferenciadas: el gestor de contenidos y las páginas que genera (básicamente, la portada, las subportadas y las páginas con noticias) y el resto (blogs, video, sección de cine, archivos estáticos, etc).

Hoy voy a tratar de contar cómo hemos construido la página web del concurso Foto Libre.

Lo primero que hicimos fue reunirnos con la gente del periódico que organizaba el concurso (departamentos de fotografía, "marketing" y sistemas). En esta reunión se estableció la mecánica del concurso desde un punto de vista genérico, sin entrar en detalles técnicos.
Esta fase se suele denominar "toma de requisitos" y es fundamental para que un proyecto salga adelante. Tienen que quedar perfectamente especificadas todas las características deseables.

Con esta información, desde la parte de diseño y programación web (nosotros) se hicieron unos bocetos o esquemas de las páginas. Por ejemplo: "pantalla de inicio, desde ahí el usuario puede ir al formulario de registro o a la galería de fotos", o "pantalla de registro, el usuario introduce sus datos para participar y se le envía un correo de confirmación", etc.
Existe un término llamado "casos de uso" que sirve para documentar las posibles interacciones y flujo de trabajo de una aplicación.
En este punto, todavía no se ha escrito nada de código, pero son pasos necesarios para que todo salga bien. Si no está claro qué se quiere obtener, difícilmente el proyecto será del gusto del peticionario.

Cuando todos los implicados han dado el visto bueno a estos bocetos, empieza el trabajo de los diseñadores (Matteo y Daniel) y programadores (Rodrigo y el autor de estas líneas).

El separar funciones es bueno y productivo y permite avanzar en paralelo. Mientras los diseñadores van esbozando las distintas pantallas, los programadores vamos haciendo el trabajo "de trastienda": diseño de la base de datos (si es necesaria, claro), elección de la tecnología que se utilizará en el desarrollo (lenguajes de programación, "frameworks", etc), diseño funcional de la aplicación (separación de las distintas funcionalidades de la aplicación), etc.

En este punto, los diseñadores nos proveen con algunos archivos HTML y CSS estáticos. Los programadores los "desmenuzamos" y asignamos a cada parte de la aplicación una labor, algunas de estas unidades funcionales son las que se encargan de generar el HTML de forma dinámica (obteniendo los datos de las fotos de una base de datos, validando los datos que introducen los usuarios cuando se registran o suben fotos, etc).
Es la llamada "capa de presentación".

Hoy en día muchas webs se diseñan siguiendo un patrón o modelo muy conocido: MVC (Modelo, Vista, Controlador).
La capa M (modelo) abstrae, representa y ofrece mecanismos de acceso a los datos "crudos" de la aplicación, la capa C (controlador) se ocupa de gestionar las peticiones de las distintas páginas y solicitar los datos para generar estas páginas.
Por último, la capa V (vista o presentación) "pinta" o representa los datos en un formato determinado (en nuestra aplicación de Foto Libre, en HTML).

Para muchas páginas web sencillas o informales esta separación está casi más en la mente de las persona que escribe el código, pero en desarrollos de mayor entidad conviene separar físicamente estas funcionalidades.

Espero no haberles aburrido mucho. Es difícil condensar en unas pocas líneas tanta información. Otro día les contaremos más cosas sobre el trabajo que hacemos.

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.