martes, 2 de junio de 2009

Postear Código Fuente en WORDPRESS

He estado buscando alguna forma de postear código de programas en mi blog de wordpress, me encontrado con muchas cosas, pero no me había percatado de que wordpress, trae incorporado ya un resaltador de código fuente, este se debe poner asi entre dos directivasen la parte visual:



[sourcecode language='java']...[/sourcecode]

Con estas nuestro código aparecerá como el que esta en la parte inferior de este post...

[sourcecode language='java']
       public static void main (String[] args){
             System.out.println("christmo");
       }
[/sourcecode]

Saludos

martes, 26 de mayo de 2009

CRUD de usuarios en el servidor LDAP + JAVA


En esta clase se va a realizar una clase completa para realizar una búsqueda, inserción, eliminación y modificación de los datos de los usuarios de un servidor LDAP desde el lenguaje de programación JAVA, al final de este post se pondrá el link para descargar el proyecto completo para que les quede como referencia de como es que yo lo hice, espero que les sirva, ojala puedan mejorar este código espero que lo compartan para poder ir aprendiendo todos...




[sourcecode language='java']
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPAttributeSet;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;
import com.novell.ldap.LDAPModification;
import com.novell.ldap.LDAPSearchResults;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* @author christian
*/

public class CRUD {
private Conexion conLDAP = new Conexion();
private LDAPConnection lc = new LDAPConnection();

/**
* Metodo paraañadir un nuevo usuario, la persona que realice esta
* transaccion debe tener los permisos para
* @param strUIDManager
* @param strPass
*/

public void Añadir(String strUIDManager, String strPass) {
try {
LDAPEntry usuario = Datos();
lc = conLDAP.ConexionManager(strUIDManager, strPass);
lc.add(usuario);
conLDAP.CerrarConLDAP(lc);
System.out.println("Usuario
Ingresado Correctamente...");
} catch(LDAPException ex) {
if (ex.getResultCode() == 68) {
System.err.println("ERROR:El Usuario ya se encuentra ingresado...");
}
Logger.getLogger(CRUD.class.getName()).log(Level.SEVERE,null, ex);
}
}

/**
* Datos del  usuario a ser Ingresado
* @return LDAPEntry
*/

public LDAPEntry Datos() {
LDAPAttributeSet setAtr = new LDAPAttributeSet();
setAtr.add(new LDAPAttribute("objectclass", new String("person")));
setAtr.add(new LDAPAttribute("objectclass", new String("organizationalPerson")));
setAtr.add(new LDAPAttribute("objectclass", new String("inetOrgPerson")));
setAtr.add(new LDAPAttribute("objectclass", new String("posixAccount")));
setAtr.add(new LDAPAttribute("objectclass", new String("top")));
setAtr.add(new LDAPAttribute("userpassword", new String("newpassword")));
//setAtr.add(new LDAPAttribute("uidnumber", new String("555")));
setAtr.add(new LDAPAttribute("givenname", new String("Jim")));
//setAtr.add(new LDAPAttribute("loginshell", new String("/dev/null")));
//setAtr.add(new LDAPAttribute("gecos", new String("arroyo carvache carlos")));
setAtr.add(new LDAPAttribute("gidNumber", new String("100")));
setAtr.add(new LDAPAttribute("sn", new String("Smith")));
setAtr.add(new LDAPAttribute("cn", new String("Jim Smith")));
setAtr.add(new LDAPAttribute("mail", new String("JSmith@Acme.com")));
//setAtr.add(new LDAPAttribute("homeDirectory", new String("/public/centros/carroyo")));
setAtr.add(new LDAPAttribute("telephonenumber", new String("1 801 555 1212")));
String dn = "uid=jsmith,ou=People,o=utpl,c=ec";
LDAPEntry newEntry = new LDAPEntry(dn, setAtr);
return newEntry;
}

/**
* Metodo para buscar un usuario dentro del servidor LDAP
* Filtro es el username a buscar
* @param LDAPConnection lc
* @param String strFiltro
*/

public void Buscar(String strUser, String strPass, String strFiltro) {
String filtro;
LDAPSearchResults searchResults;
String searchBase = "o=utpl,c=ec";
int searchScope = LDAPConnection.SCOPE_SUB;
filtro = "(uid=" + strFiltro + ")";
try {
lc = conLDAP.ConexionUser(strUser, strPass);
searchResults = lc.search(searchBase, searchScope, filtro, null, false);
//Recorre Todos los Usuarios de la Base
while (searchResults.hasMore()) {
LDAPEntry nextEntry = null;
try {
nextEntry = searchResults.next();
} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
continue;
}
LDAPAttributeSet attributeSet = nextEntry.getAttributeSet();
Iterator allAttributes = attributeSet.iterator();
//Recore los atributos del usuario
while (allAttributes.hasNext()) {
LDAPAttribute attribute = (LDAPAttribute) allAttributes.next();
String attributeName = attribute.getName();
Enumeration allValues = attribute.getStringValues();
if (allValues != null) {
while (allValues.hasMoreElements()) {
String value = (String) allValues.nextElement();
System.out.println(attributeName + ": " + value);
}
}
}
System.err.println("------------------------------");
}
conLDAP.CerrarConLDAP(lc);
} catch (LDAPException ex) {
Logger.getLogger(Buscar.class.getName()).log(Level.SEVERE,null, ex);
}
}

/**
* Metodo Para Eliminar un usuario mandando como parametro el "uid"
* @param strUser
* @param strPass
* @param strUIDEliminar
*/

public void EliminarPorUID(String strUser, String strPass, String strUIDEliminar){
String dn = "uid="+ strUIDEliminar + ",ou=People,o=utpl,c=ec";
try {
lc = conLDAP.ConexionManager(strUser, strPass);
lc.delete(dn);
System.out.println("\nEntry: " + dn + " Fue Eliminado Correctamente...");
conLDAP.CerrarConLDAP(lc);
} catch (LDAPException e) {
if (e.getResultCode() == LDAPException.NO_SUCH_OBJECT) {
System.err.println("Error: NO existe ese usuario...");
} else if (e.getResultCode() == LDAPException.INSUFFICIENT_ACCESS_RIGHTS) {
System.err.println("Error: NO tiene permisos suficientes para realizar esta transaccion...");
} else {
System.err.println("Error: " + e.toString());
}
}
}

/**
* Enviar Usuario a Modificar
* @param strUser
* @param strAtributo
*/

public void Modificar(String strUser,String strAtributo) {
try {
LDAPAttribute atrubuto;
lc = conLDAP.ConexionManager("Manager", "ibmlnx");
atrubuto = new LDAPAttribute("mail", strAtributo);
String dn = "uid="+strUser+",ou=People,o=utpl,c=ec";
lc.modify(dn, new LDAPModification (LDAPModification.REPLACE, atrubuto));
System.out.println("Atributo Modificado OK...");
} catch (LDAPException ex) {
if (ex.getResultCode() == LDAPException.INSUFFICIENT_ACCESS_RIGHTS) {
System.err.println("Error: NO tiene permisos suficientes para realizar esta transaccion...");
}
}
}

public boolean ValidarPassWord(String strUser, String strPass) {
boolean correct = false;
String dnc = "uid=+" + strUser + ",ou=People,o=utpl,c=ec";
try {
lc.bind(LDAPConnection.LDAP_V3, dnc, strPass.getBytes("UTF8"));
LDAPAttribute attr = new LDAPAttribute("userPassword", strPass);
correct = lc.compare(dnc, attr);
System.err.println(correct ? "El Password es correcto" : "El Password NO es correcto.\n");
} catch (LDAPException ex) {
Logger.getLogger(CRUD.class.getName()).log(Level.SEVERE,null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(CRUD.class.getName()).log(Level.SEVERE,null, ex);
}
return correct;
}
}

[/sourcecode]


Vea también:


Conexión al servidor LDAP desde JAVA


Busqueda de usuarios en el servidor LDAP



CRUD de usuarios en el servidor LDAP



Descargar Proyecto JAVA - Netbeans




Busqueda de Usuarios en el Servidor LDAP + JAVA


Continuando con el ejemplo anterior, una ves realizada la conexión en el servidor LDAP, desde nuestra clase java, vamos a probar una clase que nos permita realizar búsquedas de usuarios ingresados en este servidor.



Esta clase seria así:

[sourcecode language='java']

/*
* Clase para Buscar Usuarios el Filtro es el usuario que se desea buscar.
*/

package conexionldap;
import com.novell.ldap.*;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* @author christian
*/

public class Buscar {
private String searchBase = "o=utpl,c=ec";
private int searchScope = LDAPConnection.SCOPE_SUB;
private String filtro;
private LDAPSearchResults searchResults;

/**
* Metodo para buscar un usuario dentro del servidor LDAP
* @param LDAPConnection lc
* @param String strFiltro
*/

public Buscar(LDAPConnection lc, String strFiltro) {
filtro = "(uid="+ strFiltro + ")";
try {
searchResults = lc.search(searchBase, searchScope, filtro, null, false);
//Recorre Todos los Usuarios de la Base
while (searchResults.hasMore()) {
LDAPEntry nextEntry = null;
try {
nextEntry = searchResults.next();
} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
continue;
}
LDAPAttributeSet attributeSet = nextEntry.getAttributeSet();
Iterator allAttributes = attributeSet.iterator();
//Recore los atributos del usuario
while (allAttributes.hasNext()) {
LDAPAttribute attribute = (LDAPAttribute) allAttributes.next();
String attributeName = attribute.getName();
Enumeration allValues = attribute.getStringValues();
if (allValues != null) {
while (allValues.hasMoreElements()) {
String value = (String) allValues.nextElement();
System.out.println(attributeName + ": " + value);
}
}
}
System.out.println("------------------------------");
lc.disconnect();
}
} catch (LDAPException ex) {
Logger.getLogger(Buscar.class.getName()).log(Level.SEVERE,null, ex);
}
}
}

[/sourcecode]


Vea también:


Conexión al servidor LDAP desde JAVA


Busqueda de usuarios en el servidor LDAP



CRUD de usuarios en el servidor LDAP




Descargar Proyecto JAVA - Netbeans

Despertadores en Ubuntu!!!


Son muchas las personas que utilizan el ordenador en su dormitorio la mayor parte del día y lo dejan encendido por la noche descargando cosas. Por tanto no es descabellado pensar que lo podemos utilizar como despertador para levantarnos por las mañanas. A continuación os presento una serie de aplicaciones que pueden servirnos como para este propósito.


El comando sleep


El comando sleep permite que un comando se ejecute transcurrido cierto tiempo, por lo que podemos utilizarlo para lanzar, por ejemplo, nuestro reproductor de música favorito en el momento que le indiquemos. Si abrimos la consola (Aplicaciones/Accesorios/Terminal) y escribimos, por ejemplo:




  • sleep 7h50m30s; vlc /home/Música/sonido.mp3


se abrirá el reproductor vlc transcurridos 7 horas, 50 minutos y 30 segundos, y reproducirá el archivo que le hemos pasado como parámetro (/home/Música/sonido.mp3)


Por supuesto en lugar de vlc podemos ejecutar cualquier otro reproductor que tengamos instalado.




Alarm Clock


Alarm Clock es una aplicación que permite organizar nuestras tareas de forma muy sencilla y crear alarmas con recordatorios de distintas cosas que tengamos que hacer a lo largo del día. Podemos instalar Alarm Clock abriendo la consola y escribiendo:




  • sudo apt-get install alarm-clock


Una vez instalado lo encontraremos en Aplicaciones/Accesorios/Alarm Clock

Para crear nuestro despertador tenemos que pulsar sobre el botón Añadir en la ventana principal y seleccionar “Crear nueva alarma”. En la siguiente ventana especificamos el nombre de la alarma y la hora en la que se ejecutará.


En la pestaña Notificación seleccionamos Reproducir sonido en evento y pulsamos después sobre Preferencias. En la siguiente ventana marcamos Usar archivo de sonido personalizado y seleccionamos el archivo de audio que sonará cada vez que se dispare la alarma.


Alarm Clock también permite ejecutar un comando o aplicación cada vez que se active una alarma, por lo que podemos utilizarlo para abrir nuestro reproductor de música favorito al despertarnos


KAlarm


KAlarm es otra de las aplicaciones que podemos utilizar para crear nuestro propio despertador. Está diseñada para el entorno de escritorio KDE, pero puede instalarse fácilmente en Gnome abriendo la consola y escribiendo:




  • sudo apt-get install kalarm

Timer-applet


Timer-applet es un pequeño applet que se adhiere al panel de Gnome y permite mostrar avisos y crear alarmas que se disparen en el momento que indiquemos.


Para instalar Timer-applet abrimos la consola y escribimos:




  • sudo apt-get install timer-applet


Para añadir timer-applet al panel hacemos clic con el botón derecho sobre el panel y seleccionamos Añadir al panel. A continuación seleccionamos Temporizador en la ventana que aparece.



Veremos entonces que aparece el applet sobre nuestro panel.Para crear una alarma tan sólo hacemos clic sobre el applet y saldrá lo siguiente.


Timer-applet funciona mediante cuenta atrás, por lo que debemos poner que nos avise en X horas, Y minutos y Z segundos. A continuación pulsamos sobre el botón Start Timer, hacemos clic con el botón derecho sobre el applet y seleccionamos Preferencias. En la ventana que aparece marcamos Use custom sound y seleccionamos el archivo de audio que queramos que se reproduzca, que puede ser un archivo mp3.

Visto en: http://www.alejandrox.com

Conexión a Servidor LDAP desde JAVA


Hola en en trabajo me pidieron realizar una conexión a un servidor LDAP desde una aplicación java, esto me pareció algo difícil en un principio ya que no tenía idea de como realizar algo parecido, con algunas sugerencias de parte de mi jefe decidimos usar la librería de novell para java jLDAP, esta librería es muy completa y permite realizar todas las posibles transacciones dentro de un servidor LDAP, novell también tiene bien documentado esto hasta con ejemplos todo el API esta aquí, una ves que te familiarizas con el código vas a ver que todo es muy fácil, pero es esta serie de posts vamos a ejemplificar como se podría hacer un CRUD dentro de nuestro servidor.



Para realizar la conexión aremos lo siguiente:

[sourcecode language='java']

/*
* Clase de Conexion Servidor LDAP
*/

package conexionldap;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* @author christian
*/

public class Conexion {

private int ldapPort;
private int ldapVersion;
private LDAPConnection lc;
private String login;
private String ldapHost = "172.16.30.162";

public Conexion() {
}

/**
* Este método permite realizar la conexión al servidor de LDAP
* Para el usuario manager
* @param strManager
* @param strPassword
*/

public LDAPConnection ConexionManager(String strManager, String strPassword) {
login = "cn=" + strManager + ",o=utpl,c=ec";
System.out.println("" + login);
ldapPort = LDAPConnection.DEFAULT_PORT;
System.out.println("puerto: " + ldapPort);
ldapVersion = LDAPConnection.LDAP_V3;
System.out.println("Vesion: " + ldapVersion);
System.out.println("HOST: " + ldapHost);
try {
lc = new LDAPConnection();
lc.connect(ldapHost, ldapPort);
System.out.println("====Conectado al Servidor LDAP====");
lc.bind(ldapVersion, login, strPassword.getBytes("UTF8"));
System.out.println("Autenticado en el servidor....");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}
return lc;
}

/**
* Este metodo permite realizar la conexion al servidor de LDAP
* Para el usuario manager
* @param strUser
* @param strPassword
*/

public LDAPConnection ConexionUser(String strUser, String strPassword) {
login = "uid=" + strUser + ",ou=People,o=utpl,c=ec";
System.out.println("" + login);
ldapPort = LDAPConnection.DEFAULT_PORT;
System.out.println("puerto: " + ldapPort);
ldapVersion = LDAPConnection.LDAP_V3;
System.out.println("Vesion: " + ldapVersion);
System.out.println("HOST: " + ldapHost);
try {
lc = new LDAPConnection();
lc.connect(ldapHost, ldapPort);
System.out.println("====Conectado al Servidor LDAP====");
lc.bind(ldapVersion, login, strPassword.getBytes("UTF8"));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}
return lc;
}

public void CerrarConLDAP(LDAPConnection lc) {
try {
lc.disconnect();
System.out.println("Conexion Cerrada Correctamente...");
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}

}

}

[/sourcecode]


Continuar:


Busqueda de usuarios en el servidor LDAP


CRUD de usuarios en el servidor LDAP




Descargar Proyecto JAVA - Netbeans


viernes, 15 de mayo de 2009

La vida de un informático!!!

A más de uno nos pasa esto, ya debemos estar acostumbrandonos...

[youtube=http://www.youtube.com/watch?v=mo5aA8cpeX8&hl=es&fs=1]

Esta muy bueno saludos!!!

La vida de un informático!!!

A más de uno nos pasa esto, ya debemos estar acostumbrandonos...



Esta muy bueno saludos!!!

martes, 7 de abril de 2009

Levantar Glassfish por consola en UBUNTU

Vamos ha ver como se hace para levantar un proyecto web, en el servidor de aplicaciones Glassfish desde la consola, regularmente como desarrolladores nos hemos encontrado con paquetes *.war, los cuales son el empaquetado de toda la aplicación web lista para funcionar, cuando instalamos netbeans también se instala glassfish pero a veces es demasiado pesado arrancar primero el IDE y después levantar el servidor de aplicaciones, para se cuenta con uno practico comando para solo levantar el servidor.

Debemos ir primero a la carpeta donde tenemos instalado glassfish y a bin, algunos lo podemos tener instalado por defecto en esta ruta:

$ cd glassfish-v2ur2/bin/

o

$ cd /usr/local/glassfish/bin/

Allí ponemos:

$ ./asadmin start-domain domain1

y esperamos un momento y ya está:

Ahora solo nos toca abrir un navegador y poner:

http://localhost:4848/

para entrar a la interfaz de administración de glassfish recuerda que cuando se instaló netbeans nos pidió un user y un password allí van, por defecto son "user: admin" y "password: adminadmin", desde allí ya podremos gestionar todos los proyectos *.war que tengamos.

Para detener Glassfish pondremos los mismo solo que con la palabra stop:

$ ./asadmin stop-domain domain1

Eso es todo, por cierto este mismo comando lo podemos usar en Window$ solo debemos ponerlo en la consola dentro de la carpeta bin de glassfish de archivos de programa, espero que les sirva tanto como a mi.

Saludos...

christmo