jueves, 16 de octubre de 2008

Aprendiendo a Programar en JAVA


Uno de los lenguajes de programación que siempre me ha llamado la atención es JAVA por su portabilidad y además es multi pltaforma.

Es por esto que en esta sección ire subiendo todos mis avances en este lenguaje... no prometo mucho ya que estoy partiendo desde Cero.

Utilizare Java en Ubuntu 8.04 en entorno gráfico Xface para ver como instalar java visitar el siguiente vinculo en este bloc (Instalar JDK en Linux)


Creando nuestro primero programa (Hola Mundo)

NOTA: Guardar archivo con el mismo nombre de la Class y con extensión .java (holaMundo.java)

Compilar javac holaMundo.java
ejecutar java holaMundo

(siempre seguir esta secuencia con todos los ejemplos)

/*Primer ejercicio de Java http://geekslinuxchile.blogspot.com/ Autor: Jorge Lara Cravero */

import javax.swing.*;
public class holaMundo{
public static void main(String[] args) {
String mensaje = "Hola Mundo";

JOptionPane.showMessageDialog( null, mensaje, "Hola, Mundo!", JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );

}
}

















Este segundo Script busca una letra o palabra dentro de una cadena

Incluir la clase Input

/* Jorge Lara Cravero
http://geekslinuxchile.blogspot.com/ */

public class buscar{

public static void main( String args[] )
{

Input dato= new Input();
System.out.println(".... Ingrese Cadena ....");
String letras = dato.getValue();

System.out.println(".... Ingrese frase ....");
String frase = dato.getValue();

String salida = " se encuentra en el índice " + letras.indexOf( frase );

System.out.println (salida);

}
}

Código se ejecutará de la siguiente forma:





Si observamos yo escribí Jorge Lara y quiero buscar la palabra lara con minúsculas


Obviamente Lara != lara

Nota : las imágenes corresponden a un código mas completo ya que si ustedes revisan el ejemplo todo sera por consola

Además si quieren que el sistema diga no se encuentra!!! deben realizar una condición if - else
considerando que cuando no se encuentra la palabra el sistema les arrojará un -1

Sería algo así

int a = letras.indexOf( frase );

if (a == -1)
adivinen que sucede

else

adivinen que sucede




x Jlara

miércoles, 15 de octubre de 2008

Páginas falsas de YouTube para atacar ordenadores


Piratas informáticos están aprovechando las redes sociales para enviar vínculos a supuestos vídeos de YouTube, donde el usuario tiene que actualizar el software para su visualización.

Especialistas en seguridad informática advierten de que hackers están usando páginas falsas de YouTube para engañar a los internautas a que abran sus ordenadores a software malicioso.

Los hackers envían enlaces a supuestos vídeos del portal de Google y los vínculos conectan a réplicas realistas de páginas de YouTube, indicando que se necesita una actualización del programa para ver el vídeo requerido. Aceptar esta actualización permite al hacker instalar malware que podrían inutilizar teclas, robar datos o permitir que tomase el control del ordenador afectado. Lo más probable es que las víctimas no se den cuenta, ya que el programa pirata les enviará luego al sitio real de YouTube mostrando el vídeo prometido.

Este engaño a través de páginas de YouTube falsas, según la agencia AFP, es parte de una creciente tendencia de los hackers a hacer uso de los populares sitios de redes sociales donde los internautas comparten vínculos y programas.


Fuente (http://www.vnunet.es)

martes, 14 de octubre de 2008

Creando un Trigger en MYSQL


En este pequeño articulo mostraré como crear un trigger (o disparador) en MYSQL que nos indique que usuario a eliminado algún registro de una tabla fabricantes de nuestra base de datos informática (ver en el ítem bases de datos de este bloc).

Aunque son las 1 de la mañana realizaré este manual pues durante la tarde estuve trabajando con un compañero en esto y me di cuenta que los triggers de mysql soportan fácilmente realizar insert con registros por defecto como:

- CURRENT_USER() => Inserta el usuario que realizo la operacción;
- CURRENT_DATE() => Inserta la fecha en que se realizo la operacción;
- CURRENT_TIME() => Inserta la hora en que se realizo la operacción;
- CURRENT_TIMESTAMP() => Inserta la fecha y hora en que se realizo la operacción;

Pero insertar registros como por ejemplo el código o nombre del registro que se elimino (o actualizo) mediante un trigger requiere de una mayor habilidad que espero se aclare ahora.

NOTA: MYSQL no soporta más de 1 trigger en la misma tabla;

Manos a ala obra

Creando las tablas (nota: la base de datos pueden llamarla informática o el nombre que deseen)

Código SQL
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE `articulos` (
`CODIGOART` int(11) NOT NULL,
`NOMBRE` varchar(100) default NULL,
`PRECIO` int(11) default NULL,
`CODFRABICANTE` int(11) NOT NULL,
PRIMARY KEY (`CODIGOART`,`CODFRABICANTE`),
KEY `CODFRABICANTE` (`CODFRABICANTE`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO `articulos`
(`CODIGOART`, `NOMBRE`, `PRECIO`, `CODFRABICANTE`)
VALUES
(100, 'MOUSE', 4230, 5),
(101, 'Notebook DELL', 439223, 3),
(102, 'Torre 50 DVD +R', 7110, 1),
(104, 'Base para notebook', 22514, 8),
(105, 'Computador Ensamblado PIV', 178214, 10),
(106, 'Teclado Multimedia PS/2', 4491, 6),
(107, 'Notebook Aspire 5610', 466223, 4),

(108, 'Impresora Laser', 12591, 7),
(109, 'Audifonos y microfono Gamer', 18923, 9),
(110, 'lampara USB notebook', 9000, 5),
(111, 'mouse pad', 891, 10), (112, 'Key PAD', 2691, 1),
(112, 'Limpiador de Pantallas', 4500, 8),

(113, 'Mochila de Notebook', 29723, 6);


CREATE TABLE `fabricantes` (
`CODIGO` int(11) NOT NULL,

`NOMBRE` varchar(100) default NULL,
PRIMARY KEY (`CODIGO`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1;



INSERT INTO `fabricantes` (`CODIGO`, `NOMBRE`)
VALUES
(1, 'Isumos Nacionales y cía.'),
(3, 'Dell Computer Inc.'),
(2, 'HP'),
(4, 'Acer internacional'),
(5, 'Genius'),
(6, 'PC Tronix'),
(7, 'Sony'),
(8, 'Kensignton'),
(9, 'Logitech'),
(10, 'Importadora Nacional');


ALTER TABLE `articulos` ADD CONSTRAINT `articulos_ibfk_1` FOREIGN KEY (`CODFRABICANTE`) REFERENCES `fabricantes` (`CODIGO`) ON DELETE CASCADE ON UPDATE CASCADE;


Bien ya poseemos 2 tablas relacionadas (fabricantes y articulos) ahora crearemos una nueva tabla a la que llamaremos cambios.

CREATE TABLE `cambios` (
`id` int(11) NOT NULL,
`nombre_art` varchar(50) default NULL,
`usuario` varchar(50) default NULL,
`FECHA` TIMESTAMP(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1;





En esta tabla guardaremos el id de articulo, el nombre, el usuario, la fecha y hora en que se elimine un registro de la tabla fabricantes.

Creando el Trigger

CREATE TRIGGER `informatica`.`fabricantes_before_ins_tr` BEFORE DELETE ON `informatica`.`fabricantes`
FOR EACH ROW
BEGIN
INSERT INTO cambios SET id = old.CODIGO, nombre_art = old.Nombre, usuario = CURRENT_USER(), fecha = CURRENT_TIMESTAMP;
END;

En este caso he utilizado old pues se trata de un delete en la tabla pero si fuese un update o insert se debe utilizar el alias New.

Ahora solo nos queda eliminar algun registro de la tabla fabricantes y revisar en la tabla cambios como ha quedado almacenda la información.

Nota: Para la creación de trigger hay que poseer atributos de super usuario del motor de bases de datos.

(Si falla revisar los puntos y comas ya que blogger me elimina algunos caracteres especiales al subir la información).

más informacion en wikipedia

x Jlara.