Blogs

En la variedad está el gusto o la pesadilla

Un día aparece el famoso pantallazo azul de Windows y, tras decirlo y repetirlo infinidad de veces antes, decides que ya ha llegado la hora, que por fin el gran momento ha llegado, el día L....

Hoy vas a formatear el pc y vas a instalar Linux, te vas a pasar al lado tux-vaderde la fuerza  y ya todo será un mundo maravilloso.

 

Apple y el hardware de chocolate

 

Apple hw burns?

¿Qué prefieres, susto o muerte? ...

Ese chiste es lo único que me pasa por la cabeza, cada vez que un Mac (iBook, MacBook, iMac, MacMini, ...) da un problema de hardware de esos "catastróficos".

Vamos a ponernos en situación, de un caso concreto, pero ni mucho menos aislado: MacBook (White) de mayo de 2006. Dándole un uso regular, pero para nada intenso, a los 14 meses (dos meses después de finalizar la garantía básica de Apple) deja de funcionar la batería, así sin más, de ofrecer 4 horas a, sencillamente, parecer que no está conectada. Respuesta de Apple (tanto tienda como teléfono): "Hay que cambiarla, y no entra en garantía". Total, se compra una batería nueva (140eur) y todos contentos (menos el que pagó).

Gmail interpreta mis mensajes personales y yo lo consiento

El día 12 de Junio de 2005 envié a mi amigos mi primer mensaje desde mi nueva dirección de Gmail. El asunto del mensaje era preciso: 1, 2, 3; probando. A día de hoy, sigo probando y descubriendo la versión beta de Gmail.

 

Hace unos días, mientras leía un mensaje de un amigo que me invitaba a su fiesta de cumpleaños, descubrí que existía relación entre el contenido del mensaje y los enlaces de Sponsored Links que aparecían en la barra lateral derecha de Gmail. Intrigado, revisé otros mensajes y obtuve el mismo resultado: Gmail interpretaba, unas veces con más acierto que otras, mis mensajes. 

Busqué aún más y encontré que según la política de confidencialidad de Google:

All email services scan your email. They do this routinely to provide such popular features as spam filtering, virus detection, search, spellchecking, forwarding, auto-responding, flagging urgent mess ages, converting incoming email into cell phone text messages, automatic saving and sorting into folders, converting text URLs to clickable links, and reading messages to the blind. These features are widely accepted, trusted, and used by hundreds of millions of people every day.

Google scans the text of Gmail messages in order to filter spam and detect viruses, just as all major webmail services do. Google also uses this scanning technology to deliver targeted text ads and other related information. This is completely automated and involves no humans.

When a user opens an email message, computers scan the text and then instantaneously display relevant information that is matched to the text of the message. Once the message is closed, ads are no longer displayed. It is important to note that the ads generated by this matching process are dynamically generated each time a message is opened by the user--in other words, Google does not attach particular ads to individual messages or to users' accounts.

Un artículo de abril de 2004 de Search Engine Journal abordó el tema. Me temo que la respuesta de David Krane, entonces portavoz de Google, podría haber dado confianza a los que por entonces leían sus palabras:

“Google plans to listen closely to the responses of test users and other interested parties during a three- to six-month test period.”

 “We are in the very earliest phases of testing, and we are actively soliciting and analyzing feedback from users and third parties, including privacy groups”.

“We’re definitely batting about a number of options for changes to the service, but we have not yet made any specific commitments or announcements about changes to come to Gmail.”

“The reaction so far has been very favorable from people who have tested and used it.” 

Cinco años después de las palabras del entonces portavoz de Google, la versión beta de Gmail continua interpretando mis mensajes y yo lo consiento. Para Google soy uno de los cientos de millones de personas que acepta que no-humanos escaneen su correo. ¿Asistirá ese no-individuo a la fiesta de cumpleaños?.

Algunas notas útiles sobre Plone

 

Aquí algunas notas dispersas sobre Plone que comparto con vosotros. No se trata de un artículo estructurado, simplemente se trata de notas sobre problemas y situaciones que me han ido apareciendo. En inglés.

 

Introduction

PLONE is a content management system Zope-based and programmed in Python.
http://plone.org contains all information about it.

Zope is an Application Server that integrates a Data Base Management System called ZODB (an Oriented Object Data Base).
Both the APS and the DBMS can be changed to Apache or MySQL if you want it.


Features                                            

  • It’s open source (GNU licence)
  • Multilanguage (includes Spanish and Catalan)
  • Multiplatform (Windows, Linux and Mac).
  • It can be used like a Document Publication System, intranet and a collaborative tool are allowed, so.
  • Separated layers. Contents and design are in independent layers.

 

Installation (Linux Debian)


Zope

It has a web interface to manage it. It’s called ZMI (Zope Management Interface).
ZMI allows you to:

  • Create Plone instances. Every Plone instance is an independent web portal.
  • Improve or change the GUI
  • Add new elements, modify and delete.
  • Add new products, modify and delete.
  • Also, add new content. But it is preferable to do using the Plone instance directly.


Plone instance

You have got and admin user who can edit the content of the portal (plone instance).


Workflow and users

There are 4 roles by default with read, write, revision or admin permissions, but you can define others:

Roles

Read

Write

Approve/Reject

admin.

anonymous

X

 

 

 

member

X

X

 

 

reviewer

X

X

X

 

manager

X

X

X

X

Permissions each user has got over specific object (folder, document, etc.) goes in function of user role:

  • Manager: allows to do anything over the objects (create, edit, delete, permissions and publish).
  • Owner:  allows creating, editing, deleting, permissions and send object to publish, but publish.
  • Review: permite revisar objetos en espera de ser publicados, publicarlos y recharzarlos
  • Member: permite ver documentos publicados, editar su carpeta de usuario y escribir en el wiki.
  • Anonymous: usuario que no ha iniciado sesión en el sistema o no tiene cuenta, sólo permite ver documentos publicados
When someone with sufficient privileges builds a new object, must check all is right and then send it to publish. Later a reviewer will accept the object and then it will be visible for everybody.

If an editor wants to modify the object, he will send it to review another time.


Products

Products are modules that could be integrated if consider necessary it.
Some products: News, events, wiki, user’s management,

To install a product:

  1. Download the product version correct and take care with the platform.
  2. Unzip the packet to the directory

    1. Windows plone_home\Data\Products
    2. Linux var/lib/zope2.9/instance/plone-site/Products
  3. Then use the tool to install Add-on Products. Log in like admin and go to portal administration tools. Select add products option and select the product you like install on.

 

Design layer

The GUI should be designed using ZMI tool, nevertheless you can edit the files directly.
All the styles and templates of portal instance are located in instance/portal_skins/.
You can change it to build your own GUI.

 

Redirect plone instance to domain 

  1. Go to ZMI,  /virtual_hosting/mapping
  2. Edit it putting the next code: http://host:name/instance_name

It doesn’t work for multiple plone‘s istances.

 

Change the logo

To cahnge the principal logo:

  1. Got to ZMI, /portal_skins/custom, Image, Add
  2. And name the image like logo.jpg.


News order

To see the news in reverse order:

  1. Go to ZMI, /portal_skins/plone_templates/news
  2. Edit the line
  3. container.portal_catalog(portal_type='News Item',sort_on='Date',sort_order='reverse',review_state='published');
  4. Deleting this part: sort_order = 'reverse'


More info
Plone & Drupal comparative [spanish] [update Nov 10th 2008]

 

Una experiència a INTERACC1Ó’08

Arribo a les 11 al Centre de Convencions Internacionals de Barcelona situat a l’espai del fracassat I Fòrum de les Cultures. És dia de pluja, potser un símbol d’aquesta crisi financiera de la que tothom en parla, però en entrar a l’espai on es celebra INTERACC1Ó, aquesta impressió canvia radicalment.

Subversion vs CVS. Guía rápida de Subversion (SVN)

CVS y Subversion (SVN) sirven para controlar las versiones y la historia de los proyectos software. Por lo tanto, a grandes rasgos, permiten:
  • que varias personas puedan trabajar en un mismo proyecto sin afectarse mutuamente en el trabajo que realiza,
  • que haya un histórico de revisiones, por seguridad y para poder recuperar una versión anterior de nuestro código,
  • gestionar versiones de la aplicación, derivaciones y demás.

Podríamos decir que las instancias de CVS y Subversion son repositorios, es decir, un almacén de ficheros, sus versiones y su historial de cambios.

 

Comparativa

Subversion es evolución natural de CVS, mejorando algunas de las carencias de este último. Veamos una comparación:

CVS

Subversion (SVS)

Licencia gratuita

Licencia gratuita

Multiplataforma

Multiplataforma

Orientado a ficheros

Versiona los ficheros,
no el proyecto. Esto quiere decir que cada modificación en cada fichero hace
variar  la versión del fichero
modificado.

Orientado a proyectos

Versiona los proyectos, no los ficheros. Es
unaopción mucho más intuitiva que no la de versionar ficheros.

 

Envía ficheros completos

Cuando se hace una modificación
en un fichero, se sube al repositorio el fichero entero, en vez de sólo los
cambios.

Envía sólo cambios

Cuando se hace una modificación en un fichero, se
sube al repositorio el cambio realizado, no el fichero entero. Más eficiencia.

Soporte Unicode limitado

Puede traer problemas
con caracteres "raros".

Soporte Unicode

En principio no debería dar problemas de esta
índole. En principio.

Renombrar/eliminar

No da soporte. Hay que
hacerlo manualmente: copiar con otro nombre y borrar el antiguo.

Renombrar/eliminar

Da soporte parcial. El usuario lo hace en una
única operación pero SVN internamente lo hace las dos cosas en una transacción
de forma transparente al usuario: copiar con otro nombre y borrar el antiguo.

 

Funcionamiento de Subversion

  • Update: Puede haber conflicto entre nuestra copia local del proyecto y la versión en SVN. En tal caso hay que resolver conflictos con merge. Existe una herramienta gráfica de resolución de conflictos que da al programador la oportunidad de escoger entre tres posibles contenidos del fichero:
    • contenido en SVN,
    • contenido en HD local del programador,
    • contenido fusionado por SVN.
  • Edición: El programador modifica los ficheros del proyecto.
  • Commit:  No existe conflicto ya que o nos dejan subir o no nos dejan subir. Los commits son atómicos. O suben todos los ficheros o no sube ninguno (similar a las transacciones con BD) Si no podemos subir un proyecto hay que hacer un update y resolver conflictos. El número de revisión del proyecto se incrementa independientemente de donde se realice el commit (en la rama principal o en una subrama). Todos los commits deberían estar comentados.

SVN de alguna forma penaliza al último en subir los cambios


Ejemplos de trabajo con subversion

Obtenemos una instancia del repositorio en nuestra máquina de trabajo:

svn checkout svn://server/poject

Esto nos copiará los archivos del repositorio, y en cada carpeta añadirá un directorio
oculto de nombre .svn en donde guarda los metadatos con el historial de cambios, las
distintas versiones y demás.
Una vez tengamos la copia en nuestra máquina, el proceso a seguir para a la hora de
realizar modificaciones es:

  1. svn update, para actualizar nuestra versión, por si algún compañero ha introducido algún cambio,
  2. modificamos los ficheros que tengamos que modificar, por ejemplo el fichero carpeta/index.html,
  3. cuando hayamos terminado deberíamos volver a hacer un svn update, por si alguien ha modificado también el mismo fichero que nosotros,
  4. svn commit -m "esto es lo que he hecho" carpeta/index.html para commitear o subir al respositorio la modificación que hayamos realizado, indicando una breve descripción de la misma.

Más información

Página oficial del proyecto [english]

Google y la tecnología PageRank

 

Muchas veces os habréis preguntado cómo los motores de búsqueda, especialmente Google, calculan la relevancia de una página. La verdad es que los algoritmos encargados de ello suelen ser secretos. Sin embargo, una pequeña parte del algoritmo de Google es pública. Y es que el caso que nos ocupa hoy es el de Google y su sistema PageRank

Google recibe hoy el Principe de Asturias en Comunicación y Humanidades 2008
¿Qué es un motor de búsqueda? 
  • Es un sistema de almacenamiento y recuperación de datos.
  • Base de datos diseñada para indexar direcciones web (url, ftp, etc.)

Basados en índices o directorio

  • Los índices o directorios basan la recuperación en la clasificación por un indexador humano.

Basados en crawlers (Google)

  • Rastrean servidores Web con el fin de indexar la información que almacenan. Los programas encargados de hacer el rastreo son los crawlers o indexadores automáticos.

Meta motores de búsqueda

  • Los meta-motores permiten buscar en varios motores de búsqueda simultáneamente.

Características de Google

  • Utiliza la información hipertextual de los documentos Web para calcular la relevancia de cada página, utilizando lo que se denomina PageRank.
  • Utiliza los enlaces (links) y el texto de los mismos para mejorar los resultados de la búsqueda.
  • Mantiene información de la posición de los términos que aparecen dentro de los documentos indexados, lo que permite búsquedas por proximidad.
  • Mantiene información de la apariencia visual de los documentos (p.e: a las palabras marcadas en negrita o con un tamaño de letra mayor se les concede mayor peso al calcular la relevancia).
  • También se sabe que mejora la relevancia las palabras inlcuidas en la URL.
PageRank
PageRank es un valor numérico que representa la importancia que una página Web tiene en Internet, según Google.

 

 

  •   r(i) es el PageRank de la página.
  •   N(i) es el número de enlaces (salientes) de la página.
  •   B(i) es el número de páginas que apuntan a la página.
  •   m es el número total de nodos en el grafo.
  •   d es el factor de decaimiento (entre 0 y 1).


Por lo tanto:

  • El PageRank para una página será alto:
  • Si existen muchas páginas apuntándola
  • o aunque la apunten pocas páginas, éstas tienen PageRank alto. 

  • Prestaciones
  • Ranking ordenado y ponderado de acuerdo al PageRank de cada página.
  • Prioridad de la calidad de las búsquedas sobre la eficiencia (en tiempo) de las mismas.
  • Límite del tiempo de respuesta: una vez que se ha encontrado un número determinado de documentos se devuelven resultados parciales.

El diccionario de datos en Oracle 9i. Guía útil.

Sí, soy consciente que hay versiones más nuevas y mejores de Oracle, sin embargo mi conocimiento como Administrador de este Sistema Gestor de Base de Datos está provisionalmente detenido en la versión 9i. Todo se andará...

Así que no soy consciente de los cambios y mejoras que puedan haberse producido en versiones postriores. En el presente artículo me referiré a Oracle 9i.

El diccionario de datos es quizá una de las partes más importantes de Oracle. Se trata de un conjunto de tablas de sistema, de sólo lectura, que proporcionan información muy útil sobre la base de datos.

 

Estructura

  • Tablas: Tablas del diccionario de datos.
  • Vistas: Para que algunos datos puedan ser accesibles por cualquier usuario autorizado.
  • Usuario SYS: EL propietario de las tablas del diccionario de datos.

Información proporcionada y forma de acceso (las vistas del diccionario de datos)

Aquí os dejo una guía útil:

SELECT OWNER, TABLE-NAME

FROM DBA_TABLES

WHERE OWNER = ‘usuario';

Para ver las tablas de los usuarios

DESC USER_TABLES

Para ver lo que se guarda en las tablas

SELECT TABLE_NAME

FROM USER_TABLES;

Para saber las tablas que tiene el usuario

USER_CONS_COLUMNS

DBA_CONS_COLUMNS

ALL_CONS_COLUMNS

Para ver las restricciones que afectan a las columnas

USER_TABLES

Muestra las tablas propias del usuario activo

ALL_TABLES

Muestra todas las tablas propias del usuario activo

DBA_TABLES

Muestra todas las tablas de la BD's

USER_CONSTRAINTS

Para ver las restricciones del usuario activo

DBA_CONSTRAINTS

Para ver las restricciones de la BD's

ALL_CONSTRAINTS

Para ver todas las restricciones

SELECT *

FROM USER_TABLESPACES;

Para ver todos los tablespaces

SELECT_CATALOG_ROLE

Para ver entero el diccionario de datos

SESSIONS_PRIVS

Información de los privilegios del usuario activo

USER_SYS_PRIVS

Información de los privilegios de sistema del usuario activo

DBA_SYS_PRIVS

Información de los roles y privilegios del sistema del usuario activo

USER_TAB_PRIVS

Información sobre los privilegios de objeto relacionados con el usuario, tanto otorgados como concedidos

USER_TAB_PRIVS_MADE

Privilegios concedidos

USER_TAB_PRIVS_RECD

Privilegios recibidos

SESSION_ROLES

Roles del usuario activo

ROLE_SYS_PRIVS

Privilegios de sistema asignados a los roles

ROLE_TAB_PRIVS

Privilegios sobre objetos asignados a los roles

DBA_ROLES

Todos los roles del sistema

DBA_PROFILES

Todos los perfiles de la BD's

DBA_DATA_FILES

Archivos que componen mi espacio de tabla

USER_FREE_SPACE

Tamaño libre de mi espacio de tabla

DBA_FREE_SPACE

Tamaño libre en todos los tablespaces

DBA_TABLESPACES

Tablespaces del sistema

DBA_TS_QUOTAS

Uso de los tablespaces por los usuarios

 

Más información

Diccionario de datos (vía Oracle) [english]

Valorización de la Tecnología

ACC1Ó CIDEM|COPCA ha lanzado dos convocatorias de ayudas a proyectos marcados por el concepto que ellos llaman “Valorización de la Tecnología”.

Usabilidad en las Interfaces Gráficas de Usuario - GUI (II)

Continuando con...
El artículo Usabilidad en las Interfaces Gráficas de Usuario - GUI (I) ...
4. Confiabilidad
El usuario se debe sentir seguro al manejar la GUI. Si el usuario tiene miedo de "cargarse algo", nunca sacará el máximo rendimiento a la interfaz.
Pedir confirmaciones a operaciones sensibles (borrados). Idealmente permitir recuperar información antigua. Esto da mucha confianza al usuario. El mayor temor del usuario inexperto es borrar información. Vamos… cargarse algo.
Distribuir contenido