Tuesday, October 25, 2016

Código Para Consultar Nombres De Reniec Por DNI - PERÚ

Con este artículo desempolvo mi BLOG después de nueve años, y como es mi estilo, si tanto preámbulo vamos al grano.

 Si deseamos consultar los datos de una persona mediante su DNI se ingresa al siguiente enlace de RENIEC:



Si procedo a realizar una consulta de DNI mediante el teclado de pantalla y tipeando el CAPTCHA, la web de RENIEC envía estos dos parámetros y devolviendo como resultado los nombres de la persona. El siguiente código realiza este proceso solicitando el CAPTCHA desde la web RENIEC y enviando estos dos parámetros para finalmente recepcionar el resultado en formato HTML.

Tuesday, June 08, 2010

COMBINAR DATOS AISLADOS EN CONSULTAS CON LA SENTENCIA UNION EN SQL SERVER 2000 - SQL SERVER 2005

La sentencia UNION sirve para entrelazar datos aislados independientemente del servidor donde se encuentre almacenadas las base de datos.

Creo que no hay mejor manera de explicar esta sentencia que con un ejemplo que se me viene a la mente ahora que me encuentro participando en un proyecto de software de predios para la Municipalidad Distrital De Agallpampa.

Suponiendo que un día se decide analizar los datos del sistema de predios de una municipalidad X con los de otra municipalidad Y con sistemas independientes, luego de migrar las tablas o información que se necesite cotejar (quizás con DTS) vamos a cruzar información:

Primero creamos las siguientes tablas:

CREATE TABLE t_distritos_trujillo (idd int, nombre nvarchar(20))
INSERT INTO t_distritos_trujillo VALUES (1, 'EL PORVENIR')
INSERT INTO t_distritos_trujillo VALUES (2, 'LA ESPERANZA')
INSERT INTO t_distritos_trujillo VALUES (3, 'LAREDO')

CREATE TABLE t_distritos_otuzco (codPredio bigint,distrito nvarchar(20), poblacion float)
INSERT INTO t_distritos_otuzco VALUES(1,'USQUIL', 12.000)
INSERT INTO t_distritos_otuzco VALUES(2,'AGALLPAMPA', 3.000)


Si deseo cruzar información utilizando la sentencia UNION aplico lo siguiente:

SELECT nombre as 'DISTRITOS DE LA LIBERTAD' FROM t_distritos_trujillo
UNION
SELECT distrito FROM t_distritos_otuzco










... Hasta mas leernos...
INSERTAR, MODIFICAR O ELIMINAR REGISTROS DESDE LAS VISTAS SQL SERVER 2000 - 2005

Este ejemplo funciona tanto para sql 2000 como 2005 gracias al desencadenador INSTEAD OF presente en ambas versiones.

Para empezar debemos tener claro que no es posible insertar a las tablas directamente desde las vistas, es por eso que debemos usar desencadenadores donde programamos la insersion, actualizacion o eliminación del registro. Una de las razones por la que tenemos que usar desencadenadores es para no crear inconsistencia de datos, es decir no duplicar información ya que las vistas son subyacentes a muchas tablas, es aqui donde entran a tallar los desencadenadores validando y verificando la información antes de ser manipulada.

El ejemplo que mostraré a continuación pertenece a los libros virtuales de microsoft.

Creamos el siguiente diagrama:

CREATE TABLE Person
(
SSN char(11) PRIMARY KEY,
Name nvarchar(100),
Address nvarchar(100),
Birthdate datetime
)

CREATE TABLE EmployeeTable
(
EmployeeID int PRIMARY KEY,
SSN char(11) UNIQUE,
Department nvarchar(10),
Salary money,
CONSTRAINT FKEmpPer FOREIGN KEY (SSN)
REFERENCES Person (SSN)
)


Y la siguiente vista:

CREATE VIEW Employee AS
SELECT P.SSN as SSN, Name, Address,
Birthdate, EmployeeID, Department, Salary
FROM Person P, EmployeeTable E
WHERE P.SSN = E.SSN


La siguiente tabla servirá para insertar los datos duplicados que se puedan producir desde la vista.

CREATE TABLE PersonDuplicates
(
SSN char(11),
Name nvarchar(100),
Address nvarchar(100),
Birthdate datetime,
InsertSNAME nchar(100),
WhenInserted datetime
)


Finalmente crearemos un desencadenador a la vista Employee para hacer inserciones de las tablas involucradas en la vista:

CREATE TRIGGER IO_Trig_INS_Employee ON Employee
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON
-- Check for duplicate Person. If there is no duplicate, do an insert.
IF (NOT EXISTS (SELECT P.SSN
FROM Person P, inserted I
WHERE P.SSN = I.SSN))
INSERT INTO Person
SELECT SSN,Name,Address,Birthdate
FROM inserted
ELSE
-- Log an attempt to insert duplicate Person row in PersonDuplicates table.
INSERT INTO PersonDuplicates
SELECT SSN,Name,Address,Birthdate,SUSER_SNAME(),GETDATE()
FROM inserted
-- Check for duplicate Employee. If no there is duplicate, do an INSERT.
IF (NOT EXISTS (SELECT E.SSN
FROM EmployeeTable E, inserted
WHERE E.SSN = inserted.SSN))
INSERT INTO EmployeeTable
SELECT EmployeeID,SSN, Department, Salary
FROM inserted
ELSE
--If there is a duplicate, change to UPDATE so that there will not
--be a duplicate key violation error.
UPDATE EmployeeTable
SET EmployeeID = I.EmployeeID,
Department = I.Department,
Salary = I.Salary
FROM EmployeeTable E, inserted I
WHERE E.SSN = I.SSN
END

Para aclarar el ejemplo:

inserted viene a ser la tabla temporal de insercion, para los que conocen ya un poco de desencadenadores saben que en inserted están los datos que estan solicitando insertarse en nuestra base dedatos.

Como se ve en el desencadenador este comprueba que no exista el dato en ninguna de las dos tablas utilizando la NOT EXISTS.

Concluisiones personales.- Muchos pensarán que usar trigguers en vistas para poder insertar es un trabajo engorroso, mucho mas aín cuando necesitamos usar las funciones como NO EXISTS, pero son de gran utilidad y necesarias cuando tratamos de buscar compatibilidad con versiones anterioes de DBMS (gestores de base de datos), en donde quizas podemos encontrar tablas sin normalizar.

---
...Hasta mas leernos...

Thursday, September 24, 2009

CARRUSEL DE IMAGENES CON JAVA SCRIPT
Forma Sencilla De Hacer Rotación De Imágenes Utilizando Css y Java Script

Antes De Empezar.
Seguro te preguntarás porque complicarse con java script si podrías hacerlo en flash y acoplarlo a la página el swf. Las principales razones son:
  • Velocidad: 10 imagenes pequeñas demoran en cargar mucho menos por separado que un swf que alverga a las 10 (Esto cambiaría si las imágenes fueron hechas con formas -vectores,figuras,colores- de flash.
  • Libertad: Como todos sabemos flash es un software privativo y aunque muchos diseñadores no le toman importancia, al usarlo sin haber pagado por el producto estamos cometiendo un delito (especialmente a las personas que desarrollan sitios como servicio logicamente cobrando por ello).
  • Visitante: El visitante es muy impaciente y depende de la primera impresión para que el regrese o se quede en el sitio, si usas flash deberías tener un preloading interesante =).
Para terminar debo aclarar que si usas java script en vez de flash no significa que vas a obtener una buena performance de tu sitio, esto depende de muchos factores entre ellos yo veo como principal a la optimización de las imágenes.
Estructura del directorio de ejemplo:
carrusel.htm
_css/css.css
_servicios/src (este script no se encuentra en el ejemplo descargarlo aquí necesitas ser usuario)
_img/prueba/*.jpg
...


LEER TUTORIAL COMPLETO Y DESCARGAR EJEMPLO

Tuesday, September 25, 2007

Reproducir un archivo mp3 externo con actionscript 3.0

Bien primero buscamos el archivo mp3 en la red,, por ejemplo: entramos a www.altavista.com > seleccionamos mp3 audio/ buscamos algun artista por ejemplo aerosmith > buscar > y encontraremos algo como:

http://www.gamegringo.com/anna/Aerosmith%20-%20Janie's%20Got%20a%20Gun.mp3

es un archivo mp3 colgado en la red, a la que podemos llamar desde una película flash

aahora vamos con flash.

[CODIGO]
//primero declaramos nuestra variable cancion:
var cancion:Sound=new Sound();

//ahora declaramos la ubicacion
var ubicacion:URLRequest=new URLRequest("http://www.gamegringo.com/anna/Aerosmith%20-%20Janie's%20Got%20a%20Gun.mp3");

//ahora solo queda darle la ubicacion a nuestra cancion:
cancion.load(ubicacion);

//la reproducimos
cancion.play();
[/CODIGO]

,,,bien ahora algo mas completo,, pues podemos saber como va el progreso de carga, el buffer , etc.

[CODIGO]
//estas directivas por si necesitamos usar un archivo A.S 3.0
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.media.Sound;
import flash.net.URLRequest;

//creamos nuestro archivo sonido y le agregamos eventos

var s:Sound = new Sound();

//este permite saber como va el progreso de carga en porcentaje de la cancion en el buffer
s.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);

//permite saber si la cancion ha sido cargado totalmente
s.addEventListener(Event.COMPLETE, onLoadComplete);

//por si hubiera un error como no entontrar el achivo mp3, etc
s.addEventListener(IOErrorEvent.IO_ERROR, onIOError);

//esto lo explique arriba
var
req:URLRequest = new URLRequest("http://www.gamegringo.com/anna/Aerosmith%20-%20Janie's%20Got%20a%20Gun.mp3");
s.load(req);

//muestra el progreso de carga
function onLoadProgress(event:ProgressEvent):void
{
var loadedPct:uint =
Math.round(100 * (event.bytesLoaded / event.bytesTotal));
trace("The sound is " + loadedPct + "% loaded.");
}

//si la cancion esta cargada completamente pone la cancion en play
function onLoadComplete(event:Event):void
{
var localSound:Sound = event.target as Sound;
localSound.play();
}

//si hubiese error
function onIOError(event:IOErrorEvent)
{
trace("The sound could not be loaded: " + event.text);
}

ARCHIVO EJEMPLO
<

DESCARGAR FLA AQUI
Usar el evento EnterFrame en action script 3.0

Bien explicaré este evento de la siguiente manera:
ANTES.- quiero hacer una animación en la que tengo un circulo y hacer que desaparezca aplicandole alpha de 100 % a 0%. Se puede hacer de dos formas:
1.-Creamos nuestro objeto circulo lo arrastramos> convertir a símbolo> y dejas que la línea de tiempo corra,,,, y empieze y termina la animación, si queremos que se detenga le pones stop(); al final del fotograma.

2.-Es a donde queremos llegar, COMO CREAMOS ESTA ANIMACION DESDE ACTION SCRIPT 3.0=? ,, y sobre todo como animarla, crear la linea de tiempo, y finalizarla aqui es donde necesitaremos usar el evento enterFrame. aqui la forma:


import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;

// Dibujar un círculo y añadirlo a el lienzo con addChild
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0x990000);
circle.graphics.drawCircle(50, 50, 50);
circle.graphics.endFill();
addChild(circle);

// Cuando se inicia esta animación, se llama a esta función en cada fotograma.
// El cambio provocado por esta función (actualizado en la pantalla en cada
// fotograma) es lo que hace que se produzca esta animación.
function fadeCircle(event:Event):void
{
circle.alpha -= .05;

if (circle.alpha <= 0)
{
circle.removeEventListener(Event.ENTER_FRAME, fadeCircle);
}
}
//esta funcion startAnimacion crea el evento CLICK para que al hacer click en el circulo
//se inice el evento ENTER_FRAME
function startAnimation(event:MouseEvent):void
{
circle.addEventListener(Event.ENTER_FRAME, fadeCircle);
}

circle.addEventListener(MouseEvent.CLICK, startAnimation);

ahora si quisieramos que se inicie el evento sin hacer click en circulo, hacemos lo siguiente:
//remplazamos las 4 ultimas lineas por(quitando la funcion click):
circle.addEventListener(Event.ENTER_FRAME, fadeCircle);


aqui vemos el ejemplo


click para iniciar el evento enterFrame

Thursday, July 05, 2007

TROYANO VISUAL BASIC

Bueno aquí en mi blog colgué el cliente.exe y el código del server. En la charla hubo una mala distribución por parte de una comición de la promo y hubo unos inconvenientes con los instaladores, ahora no tengo ningún problema en colgar el código fuente.

El programa esta probado y funciona, solo hay que tener unos conocimientos previos que menciono pero no en su totalidad pues con conceptos ajenos al programa, como puertos, antivirus, sóckets, puntos que pueden encontrarse dando una búsqueda rápida en google.

Recomiendo antes de bajarse el programa leer los siguientes puntos:

1.UN POCO DE TEORÍA,, antes de empezar

2.-LOCALIZANDO MIS CONEXIONES ACTIVAS

3.-OBTENER IP

4.-INFECTAR A LA VÍCTIMA CON EL SERVER

5.-HACER AL SERVER INDETECTABLE

6.- CONEXIÓN INVERSA

7.-PREPARANDO EL SERVER PARA LA VÍCTIMA

8.-DESCARGAR CLIENTE

cualquier duda posteenla en el blog.

saludos


Wednesday, July 04, 2007

8.-DESCAR CLIENTE

DESCARGAR

descargamos el cliente lo ejecutamos:

le ponemos conectar, y nuestra pc estará lista para q el server se nos conecte, y es recien en este punto cuando debemos hacer que la victima ejecute el server, no antes de que no hayamos puesto conectar en el cliente
7.-PREPARANDO EL SERVER PARA LA VÍCTIMA

.Antes que nada debes conocer el nombre de tu host, puedes ir a esta página y conocer mas , para evitar problemas al establecer la conexión recomiendo usar noip
y asi tener una IP ESTÁTICA, si no entiendes estos terminos puedes buscar en google.

AHORA NOS DESCARGAMOS EL SERVER

DESCARGAR

lo abrimos con visual basic:

y aqui ponemos el puerto y nuestro host (nombre de PC).

Luego generamos el EXE:


y este es el exe que le daremos a la víctima, utilizando por ejemplo el PISHING
6.- CONEXIÓN INVERSA
Clásicamente el cliente se conecta al server, para esto el server tiene que hacer LISTEN y esto alerta a los antivirus, firewalls.

como vemos en la imágen el server es hasta un cierto punto vulnerable a la detección de los programas de seguridad.

Ahora que pasaría si hicieramos que el server se conecte a nosotros:

como se ve en la imágen hay mas probabilidades de que los programas de seguridad nos detecten al hacer listen que al hacer conect.

Con esto solucinoamos este problema.

Para poder hacer la conexion inversa necesitariamos tener nuestra IP en el código del server, para que así se conecte a nosotros, y sería necesario tener un editor del server, que por cuestiones de tiempo no pude implementar asi que para hacer esto voy a colgar el código del server en VISUAL BASIC 6.0,,, así ponen su ip en el server y luego lo compilan y finalmente es el exe el que mandan a la víctima.

Saturday, June 30, 2007

5.-HACER AL SERVER INDETECTABLE

Bueno esto es relativo hasta cierto punto, existen maneras de eludir los programas de seguridad, categorizados en dos: antivirus, firewalls(cortafuegos). Si leiste los puntos anteriores verás como actua el server, tiene que hacer un listen a un puerto, y los firewall ya tienen registrados ciertos puertos conocidos como: el msn, escritorio remoto, webbrowser, protocolos(smtp,ftp, etc).
El server debe elegir los puertos altos pero al darle listenning el firewall posiblemente le negará el acceso. FRENTE A ESTO ¿COMO EVITAMOS QUE NOS ALERTE?
la respuesta es utilizando LA CONEXIÓN INVERSA
en el siguiente punto (punto 6) explicaré como hacer la conexion inversa pues se necesita todo un punto para explicar la gran importancia que tiene este tipo de conexion para evitarnos la detección del firewall.

ANTIVIRUS
el antivirus nos detecta por heurística, esto quiere decir que conoce ciertas funcionalidades que hacen los troyanos o virus como son: copiarse al system32 para iniciar con el windows, esconder los procesos. sería fácil desactivar el antivirus y hacer lo que el server quiere, pero necesitariamos previamente el nombre del proceso del antivirus para poder eliminarlo.

colgaré el cogigo del server para que asi la gente pueda agregar nombres de procesos de antivirus y asi desactivarlos.

Friday, June 29, 2007

4.-INFECTAR A LA VÍCTIMA CON EL SERVER

existen muchas formas para infectar a la víctima con el sever, la que empleamos en la página fue el pishing, consta de falsear un website y suplantarlo volviendolo a subir en un hosting gratuito pero con otro nombre, luego en algún link hacemos que la victima descargue el programa haciendolo pasar por otro, y alli es donde se instalará.

HACE TIEMPO POSTIE UN TUTORIAL DE COMO HACER PISHING:

TUTORIAL HCER PISHING
3.-OBTENER IP

Existen muchas formas para obternet la ip
a.- al enviar un arhivo via msn a un contacto tendremos una conexion implicita


entonces nos vamos a la consola y repetimos el paso 2 (conexiones activas) y veremos la ip del contacto.

b.. la del foro y es la que explique en la charla entramos a smf y nos descargamos el foro luego lo subimos a un hosting gratuito y damos la pagina a la victima y alli podrmos ver la ip.

c.- hay muxas mas busquen en google XD!
2.-LOCALIZANDO MIS CONEXIONES ACTIVAS

Para poder ver las conexiones que se tiene activas en la pc basta con ir a la consola y teclear el comando NETSTAT -A


luego veremos la direccion local que son nuestros puertos que se conectan a una direccion remota por otro puerto y finalmente vemos un estado que existe entre ambas conexiones que puede ser
LISTENING esta escuchando a que la pc remota se conecte
ESTABLISHED cuando ya existe una conexion entre ambas partes
estas son las mas importantes.

entonces cuando nuestro SERVER este en la victima habrirá un puerto y lo pondrá en LISTENNING luego desde el CLIENTE que está en nuestra pc nos conectaremos y el estado ser ESTABLISHED
1.UN POCO DE TEORÍA,, antes de empezar

que es un troyano

puertos
puertos troyanos

protocolo tcp

foro troyano en visual basic(aqui desarrollamos el troyano):
http://groups.msn.com/SencicoNetOnlinepromo007/forotroyano.msnw

proyecto troyano

ACTUALIZACIÓN DEL TROYANO - CHARLA SENCICO

Aqui en mi blog voy a colgar código sobre el troyano, actualizaciones que por la mala distribución que se hizo por parte de una comisión, aqui explicaré paso a paso como infectar a la víctima, sin ser detectado, como sacar IP, y hacer pishing.
La próxima versión de openSUSE incluirá un CD de add-ons pensado para educadores. De acuerdo a la sección de educación del wiki de openSuSE, la comunidad ve esto como una forma de hacer más sencilla a los administradores escolares la creación y/o mantemnimiento tanto de redes como de ordenadores personales de profesores y alumnos. Para ajustar el CD a sus necesidades, la comunidad está pidiendo ayuda a profesores y técnicos para que les envíen sus historias de éxito, programas usados y demás. Se eligió crear el CD de add-on y no crear una nueva distro o un fork.

Fuente:http://linux.slashdot.org/article.p...225220&from=rss

Monday, May 07, 2007


En pocas y concisas palabras, openXpertya es una solución integral para la empresa que engloba ERP y CRM, con integración de servicios en línea de B2B o B2C (en función del tipo de cliente final) e incluso B2E (servicios internos) y con soporte de exportación e datos (enlaces) al estandard EDI (intercambio electrónico de información entre empresa: facturas, albaranes, pedidos: EDIFACT, estandard mundial de la ONU) y con posibilidad de trabajar con cubos multidimensionales OLAP (análisis exhaustivo de resultados). Todo ello adaptado muy de cerca a nuestra legislación, tanto fiscal, como mercantil, civil, contable, etc.

Sunday, May 06, 2007


Los adelantos del Mozilla Firefox 3

La versión está en Alpha y para julio se espera la Beta.
A través de los blogs y los foros se entera la gente. ¿Qué nos notificaron ahora? Fijate vos: el nuevo Mozilla Firefox 3 entró en una etapa Alpha y podría tener lista la Beta para el mes de julio.

¿Dónde encontramos todo esto? Resulta que el vicepresidente de ingeniería de la fundación Mozilla, Mike Schroepfer, ni lerdo ni perezoso aprovechó el famoso marketing viral del foro de la empresa para promocionar su nuevo emprendimiento.

Tal como respondió ante la inquietud de los usuarios, Schroepfer prevee tres versiones alphas más (la 4, la 5 y la 6) que llegarán a fin de este mes, en mayo y junio. Para el 31 de julio se espera la primera Beta.

¿Más información? Habrá que seguir entrando en blogs y foros, pero no en cualquiera: en los que eligen los popes para darnos las primicias.




El foro de Mozilla
El zorro invade al mundo: un cuarto de los europeos usa Firefox
Firefox 3 será más amigable con el webmail

Wednesday, May 02, 2007


Starcraft 2 casi anunciado

blizzardBlizzard está trabajando en 3 nuevos juegos, entre los cuales se podrían encontrar el nuevo Diablo, la continuación de Starcraft y otro juego más, esto es lo que ha dicho Paul Sams, de Blizzard, a una entrevista a IGN, en la que también ha dicho que su juego favorito es Starcraft, una buena elección.

Lo de “casi anunciado” es que Paul Sams dijo que en el 2007 anunciarán el nuevo Starcraft 2, espero que la fecha de salida sea más pronto que tarde, aunque ya no creo que venga por 4 meses (o 12).

De momento que Blizzard siga trabajando en nuevos juegos, que sean mejores que sus predecesores, en el caso de las continuaciones, y ya veremos que pasa en el 2007.