miércoles, 19 de noviembre de 2008

NO SOMOS TRANSVERSALES: LOS INFORMÁTICOS

No somos transversales!!!.
Objetivos:
"1.- Regulacion de la profesion de las Ingenierias en Informatica y
asignacion de competencias (tanto a las titulaciones actuales como al
nuevo Grado y Master en Informatica)
2.- Con el EEES: Mantener la Titulacion Ingenierias en Informatica con
especialidades (no perder el nombre)
3.- Creacion de los organos de representacion de obligada consulta por
las administraciones
"

http://www.huelgainformatica.es/

http://www.forohuelga.org

http://citipa.wordpress.com



-------
¿QUÉ DENUNCIAMOS?:

1. Discriminación y agravio comparativo de los trabajadores titulados (y estudiantes) en los estudios reglados y homologados en Informática, frente a otras disciplinas que cuentan con la regulación y definición de sus competencias.

2. Precariedad en el empleo que tienen que desempeñar este colectivo de trabajadores aquí mencionados.

3. Desaparición, en el marco del Espacio Europeo de Educación Superior, EEES, de la disciplina socialmente aceptada como es la Ingeniería en Informática.

4. Menosprecio a los trabajadores aquí mencionados, así como a los estudios reglados y homologados en Informática. La intención de asignar competencias en nuestro campo a otras titulaciones, cuando a nosotros no se nos han dado.

5. Menosprecio a los organismos Colegiados que representa a los trabajadores profesionales en Informática, al no tenerlos en cuenta en las decisiones que afectan al sector.

¿QUÉ BUSCAMOS?:

1. El cumplimiento de la Ley 12/1986, de 1 de abril, sobre regulación de las Atribuciones de Arquitectos e Ingenieros Técnicos, y su aplicación explícita al ámbito de las Ingenierías en Informática.

El cumplimiento de la Ley 2/1974 de 14 de febrero, sobre Colegios Profesionales en su artículo 4.4, dice: “Cuando estén constituidos varios Colegios de la misma profesión de ámbito nacional existirá un Consejo General”. Por eso pedimos la creación sin demora de los Consejos de Colegios de Ingenieros e Ingenieros Técnicos en Informática, como organismo consultivo de la administración en los asuntos de su competencia.

2. La reincorporación de las Ingenierías Técnica e Ingenierías en Informática EN LAS MISMAS CONDICIONES QUE EL RESTO DE INGENIERIAS, tanto en la adaptación de las titulaciones al EEES, como en la transposición de la Directiva de Servicios y en la transposición de la Directiva de Reconocimiento de Cualificaciones Profesionales.

3. Asignación de competencias profesionales EXCLUSIVAS a los estudios reglados y homologados por el Ministerio de Industria que existen para el área de la Informática.

Pedimos: ¡CUMPLIMIENTO DE LA LEY!, ¡REGULACIÓN YA!, ¡IGUALDAD CON EL RESTO DE INGENIERÍAS!, ¡COMPETENCIAS PARA LOS TÍTULOS DE GRADO Y MASTER EN INGENIERÍA EN INFORMÁTICA!, ¡RESPETO!

http://www.20minutos.es/noticia/428099/0/protesta/informaticos/industria/

jueves, 13 de noviembre de 2008

Herramienta de análisis de enlaces

Para conseguir enlaces entrantes, además de dar muy buen contenido, lo cual te dará credibilidad, puedes usar herramientas para determinar qué otras webs te suministran enlaces.

Una de ellas es la de ibp-arelis (descarga gratuita): que te permite buscar por palabras claves, aquellos sitios donde pueden enlazarte, gestionar correos masivos, ver si te siguen enlazando,..

Herramientas para posicionamiento

Estando en un curso de posicionamiento, hemos estado "jugando" con herramientas de Google para hacer varios análisis:


Análisis de palabras claves: Google Insights me permite estudiar por palabras claves, durante un tiempo, en unas localizaciones, comparar las palabras, en pocas palabras: excelente.

Buscando palabras claves adecuadas: KeywordTool permite colocando palabras o frases, para evaluar y obtener buenas palabras claves

Análisis de Enlaces: Advanced Web Ranking

domingo, 9 de noviembre de 2008

Ruby y creando conjunto de objetos que no están mapeados en Base de Datos

Tendré una clase Person que tendrá Contactos.

class Contacto
#esto es el constructor
def initialize (params = {})
end
end


class Person < ActiveRecord::Base

attr_accessor :lista #ya te genera getter y setter... te crean el @lista , person.lista y person.lista=
#attr_reader :lista #así te haría el get ... person.lista
#attr_writer :lista #así te haría el set ... person.lista=
#@lista = [] #es un atributo vacío, entonces tendría que declarar un getter y un setter


validates_presence_of :name, :message => 'No puede estar en blanco'

has_many :phones


#esto es el constructor de persona
def initialize (parametros = {})
#debo borrar contactos para poder llamar luego al constructor de la clase base
@lista = parametros.delete[:contactos] #al borrar, te devuelve los valores
super parametros # llamada al constructor de la clase base
end




end

sábado, 8 de noviembre de 2008

BBDD en Ruby

Relación 1 a muchos

Pongamos que tenemos una persona que tiene muchos teléfonos

# una migración para crear una persona con su nombre

class CreatePeople < ActiveRecord::Migration
def self.up
create_table :people do |t|
t.column :name, :string
end
end

def self.down
drop_table :people
end
end

#una migración para indicar que existe la tabla teléfono y que una persona tiene muchos teléfonos.


class CreatePhones < ActiveRecord::Migration
def self.up
create_table :phones do |t|
t.column :number, :string
t.column :perdon_id, :integer
end
end

def self.down
drop_table :phones
end
end


#### ahora en los modelos
class Person < ActiveRecord::Base

has_many :phones # una persona tiene muchos teléfonos :phones
# has_many :telefonos, :class_name => "Phone"
# has_one :phone #una persona tiene un teléfono ...el nombre de :phone es el nombre del modelo
end

class Phone < ActiveRecord::Base
belongs_to :person #un teléfono pertenece a una persona.
end


Nota
.-Donde tienes un has_one o un has_many, del otro lado hay un belongs_to
.-Si la relación es de muchos a muchos, ponemos en los dos modelos el has_and_belongs_to_many (en plural)
.-Cuando es de muchos a muchos, tienes que crear una tabla en bbdd cuya convención sea tabla1_tabla2, donde están ordenadas alfabéticamente. Ejemplo: people_phones y luego es person_id, phone_id
.-Cuando hablamos de relaciones en ruby on rails, se tratan en arrays

Breve resumen proyecto en Ruby on Rails

Estaba haciendo unas pruebas en ruby on rails, y creando mi primer proyecto con el Aptana.

Enlace de interés: Api de Ruby On Rails http://api.rubyonrails.org/

...............

Carpetas

Proyecto -> config -> database.yml es donde están las configuraciones
Proyecto -> config -> enviroment.rb están una pluralizaciones en castellano.

NombreProyecto_nombreentorno

en vendor irán los plugins para el proyecto: ejemplo, calendarios para javascript, para subir imágenes.... Un plugin es como un mini-proyecto, porque vuelve luego a repetir la estructura base de un proyecto normal.
En plugins, irían por ejemplo miniaplicaciones, como encuestas, gestión de menús,...

la carpeta app, es el grueso de la caballería, en realidad es donde está la estructura del modelo vista controlador.


controllers: la base de los controladores es application.rb


helpers: los helper son para escribir código html, ejemplo para construir un enlace parametrizados, son usadas en las vistas.
Dentro del fichero application_helper.rb haces métodos, es común a todas las vistas de la aplicación.

models: tendremos los modelos de la lógica de negocio
views: las vistas de cada controlador
Dentro de layouts, estarán las disposiciones de las vistas. Tiene los elementos, ejemplo, menús.


En aptana, en show view, hay generator, es para scaffold:
Parameter: person (es el nombre del modelo=clase).
Generator: model


Bases de Datos


db -> migrate
ahí están los ficheros de migración, es decir, de "actualizaciones" en la bbdd

def self.up
create_table :people do |t|
t.column :name, :string //es el nombre de la columna, y luego el tipo de la columna
end //del do
end //en del def

para migrar la bbdd:
en aptana: una view que se llama Rake Tasks
Task: db:migrate , si no le pasas ningún parámetro, le dices la versión a la que está y va hacia adelante.
VERSION=6 iría a la migración 6 y de ahí hacia adelante
Las migraciones se ejecutan consecutivas, si te falta una, lo ignora.
Entonces, con la 1ra migración se crea también la tabla schema_info que almacena el número de la migración en la que está.


Scaffold:

En el aptana View->Generator
Generator: Scaffold
Parameters: selecciono nombre del modelo
Va a buscar en bbdd, la tabla asociada a person, es decir, busca el plural de person (people). El controlador es de people también, es decir, en plural.

Salvo que digamos lo contrario el controlador people, usará el layout people.rhtml (que está en views-> layouts) y la carpeta people que estaría a people

En un controller, dentro de un def
render :layout=>principal //busca otro layout
render :action=>show //busca otra vista

Las variables con arroba, se ven desde la vista, y es local al método.
Si lleva dos arrobas, sería global a PeopleController

jueves, 22 de mayo de 2008

Consultas útiles sobre espacio en bbdd oracle

En estos días, tuvimos que hacer un cálculo de dimensión de una base de datos oracle. Para ello nos ayudamos de los siguientes comandos, o bueno, mejor dicho, un miembro del equipo (Vanessa Montiel) usó los siguientes:

Versión de la BBDD: select * from v$version;

Tamaño de la base de datos: select sum(BYTES)/1024/1024 MB from DBA_EXTENTS;

Tamaño de una tabla: select sum(bytes)/1024/1024 MB from user_segments where segment_type='TABLE' and segment_name='NOMBRE_TABLE'

Todo lo que ocupa todos los objetos de la base de datos: SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB group by SEGMENT_NAME order by 2 desc

jueves, 24 de abril de 2008

Buscador ecológico

Me pasó un amigo un enlace de un buscador "ecológico", no sé si será verdad o no, pero consiste en lo siguiente, según la propia página:

"Ecoogler es un buscador que utiliza la tecnología de Google y que ayuda a reforestar el amazonas y a preservar los recursos naturales de agua dulce.

Usando Ecoogler se obtienen los mismos resultados, y se ayuda a la asociación benéfica Aquaverde (ONG) fundada en Ginebra, Suiza, en el año 2002.

Esto es posible gracias a un acuerdo con Google y Aquaverde."


------



Apoya Ecoogler.com el buscador ecológico

miércoles, 16 de abril de 2008

ITIL. Algunas herramientas

Aquí voy a ir colocando algunas herramientas que me suenen
AssetCenter
arandasoft.com (Tiene para CMDB y Service Desk)

ITIL. Enlaces interesantes

Realizando un curso de ITIL, he estado buscando enlaces interesantes y encontré los siguientes:


Curso de ITIL en Oasis
: Interesante curso sobre los temas de ITIL http://itil.osiatis.es/Curso_ITIL/

Blog Interesante sobre ITIL: Este sitio profundiza más sobre este conjunto de buenas prácticas según la experiencia del autor. http://www.gobiernotic.es/search/label/ITIL

jueves, 6 de marzo de 2008

Cheque bebé

Noticias sobre la implantación del servicio de solicitud y tramitación del Cheque Bebé en Asturias. La novedad es la solicitud vía SMS, se añade también un servicio a los ciudadanos para realizarlo desde www.asturias.es

Qué!: "Los niños vendrán con dos panes... ¡Bajo los brazos!" (Portada)

El Comercio: "El Principado pagará los primeros 'cheque-bebé' regionales antes del 20 de mayo"

20 Minutos: "Los bebés nacidos o adoptados en Asturias desde el 1 de julio recibirán 500 euros"

La Voz de Asturias: "El pago del cheque bebé regional será automático"

lunes, 3 de marzo de 2008

Simulación de Mocks con Java

El uso de los mocks o simulaciones es muy útil a la hora de trabajar con servicios web o con operaciones que realmente no necesitamos a la hora del desarrollo pero sí necesitamos una respuesta. Por ejemplo, queremos probar una lógica, para ello necesitamos que un método que llama a un servicio web nos devuelva una lista, pero no queremos ahora llamar al servicio web (puede que no esté ni en funcionamiento dicho servicio), entonces lo que hacemos es simular la respuesta.

Para hacer mocks, lo que se suele realizar es una interface, y luego 2 o más implementaciones, una que será la real, y las demás las que hagan las simulaciones. Luego escogeremos el uso de una u otra pues mediante código, o según una variable de un property esté a 1 o a 0, en fin... como queramos.

Para facilitar la tarea, está también el JMock, que nos ayuda a realizar objetos mocks en java.


Página Principal del Proyecto JMock

Ejemplo del uso del JMock

jueves, 28 de febrero de 2008

Evaluaciones de la calidad de un sitio web

Últimamente he estado viendo temas de evaluaciones heurísticas, y me he topado con varias webs interesantes:


Guía de Evaluación Heurística de Sitios Web: Resumen de los aspectos a tener en cuenta

Sitios de Jakon Nielsen:
Use it
Nielsen Norman Group

Evaluar un Sitio Web Una entrada de blog muy interesante

Evaluaciones múltiples de un sitio web Interesante entrada, que recopila muchos enlaces estructurados por temas, todos relacionados con la evaluación de un sitio web.

Guías de evaluación de contenido y diseño

martes, 26 de febrero de 2008

Carpeta Compartida Ubuntu-Windows con VirtualBox

Problema: Quiero pasarme documentos de mi Ubuntu al Windows que tengo instalado sobre VirtualBox.

Solución: Debo crear una carpeta compartida en Ubuntu.
1.- Voy al menú Sistema -> Administración -> Carpetas Compartidas
2.- Debo tener una carpeta creada, que será la que use como puente en Ubuntu. Selecciono esa carpeta en el diálogo de "Nueva" en el menú anterior. Le doy un nombre. La comparto como SMB (Samba).
3.- En VirtualBox. Voy a configuración -> Directorios Compartidos. Luego selecciono la carpeta que antes hemos creado y compartido.
4.- Inicio el Sistema. Una vez arrancado, observamos que arriba hay tres menús, entre ellos el de Dispositivos, lo desplegaremos y seleccionaremos la opción "Instalar Guest Additions".
5.- Pedirá bajar un software, una imagen de un CD, aceptamos, luego que lo baje, pedirá registrarlo y montarlo como CD, aceptamos.
6.- Luego vamos a la unidad de CD. Ya tiene el contenido necesario para instalar el Guest Additions. Ejecutamos el instalador. Al final, pedirá reiniciar, entonces aceptar.
7.- Una vez reiniciado el ordenador, ejecutamos en una consola lo siguiente "net use z: \\vboxsvr\nombreCarpeta", donde "z" es la unidad donde quiero que esté conectada la compartida, y "nombreCarpeta" es el nombre de la carpeta que le di en la configuración de VirtualBox.

Borrar usuario svn almacenado en eclipse

Problema: Uso el plugin del eclipse para svn (subclipse). Había metido un usuario y una contraseña y lo guardé, pero ahora quiero cambiarlo. En conclusión, quiero que me vuelva a pedir el usuario y contraseña.

Solución: Hay que ir a la carpeta del eclipse -> configuration -> org.eclipse.core.runtime, allí veremos un fichero oculto, que se llama .keyring, si lo borramos, cerramos el eclipse y lo volvemos a abrir, ya nos pedirá el usuario y la contraseña.

jueves, 21 de febrero de 2008

Quitar security device

Problema: Me pedía cada 2 por 3 una contraseña de Security Device y no me la sabía.

Solución: Ejecuté en linux. firefox -chrome chrome://pippki/content/resetpassword.xul

Mayor referencia

Modificar arranque del oc4j sin tener la consola de oracle

Problema: Queremos modificar el arranque del oc4j pero no tenemos el Manager (Consola Web) para hacerlo.


Solución:
Existe un fichero en el que están esos parámetros almacenados
/${DIRECTORIOS_PREVIOS}/product/10.1.2/midtier/opmn/conf/opmn.xml, donde DIRECTORIOS_PREVIOS, tiene la ruta donde tenemos metidas el resto de carpetas.

martes, 19 de febrero de 2008

Calendario para Thunderbird

Problema: Quiero tener una gestión de eventos y tareas integrada en el thunderbird, para que simule a otros como el outlook, el lotus notes,...
Solución: Plugin Lightning, te integra una gestión de calendarios por colores, tipos de calendario, recordatorios, prioridades,...

Minimize to tray - Linux

Problema: Quiero que programas que yo cierre queden en ejecución, y estoy usando Linux, por ejemplo, el thunderbird,... Para windows encontré varios específicos, como el minimize to tray para mozilla,...
Solución: El programa Alltray. Usando Ubuntu es fácilmente instalable con el Synaptic. Más referencias de instalación.

Lo interesante de la referencia anterior es lo que comenta de ejecutar (traducido):
"Por ejemplo para arrancar el thunderbird con el alltray, ir a System / Preferences / Main Menu / escoger Internet en la columna de la izquierda / (luego botón derecho sobre Thunderbird Mail y cambiar las propiedades
cambiar el comando :

mozilla-thunderbird

a

alltray mozilla-thunderbird
"

jueves, 24 de enero de 2008

Virtualbox. Simulación de otros Sistemas Operativos

Problema: Queremos instalar Windows dentro de un Ubuntu.

Solución: Instalar virtualbox. http://www.virtualbox.org


Para instalar el virtualbox en ubuntu:

1.- En una consola teclear sudo apt-get install virtualbox
2.- t pregunta sobre el espacio ->>>> S (decir sí)
3.- Aplicaciones -> Herramientas del Sistema -> InnoTek VirtualBox
4.- Se abre una ventana y le damos a "Nueva", entonces nos saldrá un asistente.
5.- En el asistente, Siguiente.
6.- Luego te pide:
6.1.- el nombre para el Sistema, por ejemplo: WinXP-UE, y
6.2.- Escoger el tipo de sistema, ejemplo: Windows XP
7.- Luego te pide la memoria RAM para la máquina virtual, un buen número es 768Mb (256 + 512)
8.- En la siguiente pantalla, hay un desplegable para seleccionar discos duros. Yo seleccioné hacer uno nuevo.
8.1.- Al seleccionar nuevo, se abre una ventana, le doy a siguiente, y luego yo seleccioné "Imagen de Expansión Dinámica"
8.2.- Aparece ya el nombre del Sistem (el del ejemplo es WinXP-UE), y también me aparece el tamaño de la imagen para el disco virtual (10Gb está bien)
8.3.- Es una pantalla resumen, al dar a finalizar, sigue con el flujo de configuración.
9.- Aparece el disco duro que acabo de crear, y le doy a siguiente.
10.-Pantalla resumen y terminar. (Fin del asistente)
11.-METO EL CD DEL WINDOWS XP. Ahora que está creado lo de WinXP-UE, selecciono "Configuración".
12.-Dentro de configuración:
12.1.- En el apartado de General, le pongo "64Mb" a la memoria de video.
12.2.- En el apartado de CD/DVD monto la unidad (marco el check)
12.3.- En el apartado de Audio, selecciono lo de "Habilitar audio"
13.-Ahora salimos de configuración....
14.-Selecciono "Iniciar"
15.-Me salen ERRORES, "
VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or /dev/vboxdrv was not created for some reason. Please install the virtualbox-ose-modules package for your kernel and execute '/etc/init.d/vboxdrv start' as root.
VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).


Result Code:
0x80004005
Component:
Console
Interface:
IConsole {1dea5c4b-0753-4193-b909-22330f64ec45}
"
para solucionar eso, en una consola escribo "sudo /etc/init.d/vboxdrv start"

.-se cerró, le vuelvo a dar a iniciar, y me sale el siguiente error:


The VirtualBox kernel driver is not accessible to the current user. Make sure that the user has write permissions for /dev/vboxdrv by adding them to the vboxusers groups. You will need to logout for the change to take effect..
VBox status code: -1909 (VERR_VM_DRIVER_NOT_ACCESSIBLE).


Result Code:
0x80004005
Component:
Console
Interface:
IConsole {1dea5c4b-0753-4193-b909-22330f64ec45}

lo soluciono con "cd /dev" luego "ls -lh | grep vbox" para ver los permisos, le faltan así que ejecuto "sudo chmod 666 vboxdrv", deben haber cambiado ya los permisos.

.-Vuelvo a dar a "Iniciar"...ahora todo fue bien :):)

16.-Empieza la instalación a leer desde el "CD de Windows que tengo para instalar".
16.1.-Seleccionar espacio no particionado
16.2.-Seleccionar formateo rápido
16.3.-En este punto a mí se me colgó el ordenador, y lo apagué.

17.-Volver a realizar la operación de entrar en VirtualBox, meter el CD, y dar a iniciar el sistema "WinXP-UE" que habíamos creado. Luego se sigue la instalación normal de Windows, formateado, instalación,...

martes, 15 de enero de 2008

Imprimir el toXML() de un objeto de manera automática (Java)

Problema: Queremos imprimir todos los campos de un objeto simple (VO) con un formato XML. Para ello implementamos el método toXML() del objeto en cuestión.

Solución: Para evitarnos estar haciendo todos los campos de manera manual, usaremos la librería XStream
Pasos:

1.-Meto el jar de xstream ( por ejemplo xstream-1.1.3.jar )
2.-Creo un objeto de tipo XStream y le paso el objeto.
MiObjeto obj = new MiObjeto();
XStream xstream = new XStream();
logger.debug("Mi objeto en XML :\n"+xstream.toXML(obj));