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