Google Docs es uno de los tantos servicios de Google, que nos permite crear y modificar documentos cómunes y hojas de cálculo. Tiene una interfaz agradable y muy intuitiva usando programación en AJAX, como ya es costumbre entre los chicos de Google. Es posible acceder a este servicio con tu usuario y password de Google (el mismo que utilizas en Gmail, por ejemplo), la URL del sitio es http://docs.google.com.
Subiendo o creando archivos… Para subir un archivo basta con ir al panel principal (Documentos de Inicio) y hacer click en “Subir”, con lo cual nos aparecerá lo siguiente:
Click en “Examinar…”, escogemos el archivo a subir, click en “Subir archivo” y listo. También es posible subir archivos a nuestra cuenta enviandolo a un correo electrónico especial (NO el de Gmail), que se nos asigna al registrarnos a Google Docs, tal como se vé en la imagen.
Además, Google Docs soporta varios tipos de archivos, por ejemplo: Archivos HTML, Archivos de texto plano (.txt), Archivos de MS Word (.doc), Texto Enriquecido (.rtf), Archivos de OpenDocument (.odt), Archivos de StarOffice (.sxw); y en cuanto a hojas de cálculo Valores separados por comas (.csv), Archivos de MS Excel (.xls), Archivos de OpenDocument (.ods).
No creo que haya la necesidad de explicar como crear un documento nuevo ¿verdad?
Jugando con nuestros documentos…
Al igual que cualquier programa ofimático es posible hacer cualquier tipo de modificación a los archivos. Desde el uso de negrita, cursiva, subrayados, etc. pasando por fuentes, tamaños, colores, búsqueda y sustitución de texto, hasta correción ortográfica, contar palabras, y un sin número de características comúnes. También es posible editar documentos desde su código en HTML.
Además, es posible guardar el documento en diferentes formatos (.doc, .odt, .pdf, entre otros), por ejemplo:
También es posible compartir los documentos en Internet, y añadir colaboradores para el mismo. Con esta característica es posible que varias personas revisen, modifiquen y/o corrijan el documento a través de Internet; incluyendo también un sistema de versiones con el cual es posible ver y/o administrar los cambios que hagan los difirentes “colaboradores”.
Para los Bloggers también hay herramientas…
Una de las características más útiles y que más me ha gustado, es la de publicar documentos directamente a un blog. Esto es bastante útil entre usuarios que, como yo, prefieren editar sus entradas y posts estando offline, y luego, al terminar, subir los resultados.
Google Docs tiene soporte para los servicios de blog más utilizados actualmente, y el proceso para publicar entradas es bastante sencilla. Veamos un ejemplo… Editamos un archivo, lo guardamos, y luego hacemos click en la pestaña “Publicar” (arriba a la derecha), luego configuraremos la cuenta para que pueda publicar entradas en nuestro blog.
Como ves, Google Docs soporta una variedad de blogs, como: Blogger, BlogHarbor, BlogWare, LiveJournal, SquareSpace o WordPress (incluyendo blogs que tengas en un servidor propio). En este caso vamos a configurarlo para Blogger:
Como vemos es muy fácil. Basta con tipear el nombre de usuario, la contraseña, el ID del blog (o el título) y listo!!!. Después de la configuración le damos click en “Publicar en blog” y… buaaalaaaa (¿o Voilá?)!!!
La importancia de la gramática…
Para reflexionar XD:
Un gerente de una compañía está intrigado con el extraño comportamiento de uno de sus empleados, por lo cual contrata un detective privado para que lo investigue. Después de un par de dias el detective va a la oficina del gerente, para informarle de los resultados que ha arrojado su investigación.
El detective dice al gerente: “Juan López sale todos los dias a medio dia, coge su coche, va a su casa, almuerza, hace el amor con su mujer, se fuma uno de sus mejores habanos, y regresa al trabajo”.
El gerente dice tranquilo: “Ahh, bueno, no hay nada de malo en eso”, entonces el detective le pide permiso al gerente para tutearlo, a lo que el gerente accede extrañado.
El detective dice al gerente: “Te lo repito, Juan López sale todos los dias a medio dia, coge tu coche, va a tu casa, almuerza, hace el amor con tu mujer, se fuma uno de tus mejores habanos, y regresa al trabajo”.
Este pequeño artículo pretende orientarte un poco en los pasos para hacer correr aplicaciones Web en JSP que manipulen bases de datos en MySql. Aunque está orientado a Linux los pasos son muy similares para hacerlo en MS Windows. Primero aclarar unos conceptos, como…
Aunque ya debes tener la mayoría de esos conceptos más que claros, sino no estarías leyendo por aquí. Umm, ¿en qué me quedé? ammm, ya. Lo siguiente es instalar las aplicaciones que necesitamos en el siguiente órden.
Hecho esto tienes que copiar el controlador para Java de mysql que puedes encontrar en la página web de Java (te lo hago fácil, bájalo de aquí, descompríme el ZIP y te quedará el archivo de java mysql-connector-java-3.1.8-bin.jar) y cópialo en la ruta jre/lib/ext/ en mi caso lo copio en /usr/lib/j2sdk1.5-sun/jre/lib/ext/, por ej. Este es el driver que necesita JSP para accesar correctamente las clases para manipular bases de datos en el gestor MySQL.
Eso es todo… solo aclarar que, en algunos casos, sistemas operativos basados en Debian como el Ubuntu el usuario y contraseña del MySql no se encuentra en el archivo mysql.cnf sino en el archivo debian.cnf que se encuentra en el directorio /etc/mysql.
Vamos a hacer un pequeño ejemplo en el que consultaremos los datos de una tabla, no vamos a insertar, eliminar ni actualizar en el ejemplo, solo consultar, ya que el objetivo del artículo es otro (“les das la mano y te cogen todo el brazo” decía mi abuela). Lo primero es tener una base de datos base para operar sobre ella; entonces crearemos una sencilla.
Para algunos: ¿qué? ¿cómo? ¿no sabes hacer bases de datos en MySQL? Ohh, no, no nooooo, por queeeee!!! Si es tu caso existen muchos manuales en la web para hacer esto, basta con una búsqueda en el Google, de seguro encontrarás miles de manuales (no es exageración).
Pasado el susto proseguimos con la creación de la base de datos, que sería algo como esto (supongo que ya sabes como es la cosa): Pimero iniciar el MySQL, verificar las bases de datos existentes y crear la nuestra (la del ejemplo):
root@casidiablo-coder:~/tomcat/bin# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 4.1.15-Debian_1ubuntu5-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> show databases;
+————-+
| Database |
+————-+
| ejemplo |
| mysql |
| organizador |
| test |
+————-+
4 rows in set (0.28 sec)
mysql> create database simple;
Query OK, 1 row affected (0.14 sec)
mysql> show databases;
+————-+
| Database |
+————-+
| ejemplo |
| mysql |
| organizador |
| simple |
| test |
+————-+
5 rows in set (0.00 sec)
Ahora ingresaremos a la base de datos “ejemplo”, crearemos una tabla (“hombre”) e insertaremos datos en dicha tabla:
mysql> use simple
Database changed
mysql> create table hombre(cedula int(15) primary key, nombre varchar(30));
Query OK, 0 rows affected (0.12 sec)
mysql> describe hombre;
+——–+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——–+————-+——+—–+———+——-+
| cedula | int(15) | | PRI | 0 | |
| nombre | varchar(30) | YES | | NULL | |
+——–+————-+——+—–+———+——-+
2 rows in set (0.00 sec)
mysql> insert into hombre values(1321654987,’Christian Castiblanco’);
Query OK, 1 row affected (0.11 sec)
mysql> insert into hombre values(1032654985,’Jenny Florez’);
Query OK, 1 row affected (0.03 sec)
mysql> insert into hombre values(1032654987,’Marcela Bohorquez’);
Query OK, 1 row affected (0.00 sec)
mysql> insert into hombre values(55184953,’Arturo Cortez’);
Query OK, 1 row affected (0.00 sec)
mysql> select * from hombre;
+————+———————–+
| cedula | nombre |
+————+———————–+
| 1321654987 | Christian Castiblanco |
| 1032654985 | Jenny Florez |
| 1032654987 | Marcela Bohorquez |
| 55184953 | Arturo Cortez |
+————+———————–+
4 rows in set (0.08 sec)
mysql>
Listo!!! Ahora, lo que tenemos que hacer es crear nuestro programa en JSP que consulte (al menos) la base de datos…
Para algunos: Noooo!!!! No me digas que tampoco sabes programar en JSP. Pero ¿cómo? ¿en que andas pensando? ¿que los santos sudan y les da pecueca? Shiiitt, ¿porqué Dios mio? ¿porqué a mi? si mi nick no es lo que parece DIOS!!! ummmjuuuuu, calmado, tranquilo… lo mismo de siempre: Busca en el google, hay infinidad de tutoriales: leelos!!!
Pasado el segundo susto (me van a matar de un paro cardiaco) y confiando en que ya sepas lo básico de JSP proseguimos; primero crearemos un archivo llamado conexion.jsp que contendrá dos funciones, una que devuelve el usuario, y otra el password:
<%!
String usuarioMysql(){
return "debian-sys-maint";
}
String passwordMysql(){
return "i43sVHb2AAeK6SXw";
}
%>
Esto es útil, ya que en muchos casos es necesario transportar la apilación a diversas plataformas o SO, y los datos de MySQL (user y password) cambian de una a otra. Además, cuando realizamos cualquier tipo de operación a la base de datos (consultar, modificar, etc.) desde JSP, es obligatorio el uso del par usuario/password; entonces, si los datos de usuario y password cambiasen por algún motivo, tendriamos que modificar todos y cada uno de los archivos de JSP que accedan a la base de datos, una tarea muy engorrosa y difícil, por no decir peligrosa.
Para solucionar el problema utilizamos un archivo (en este caso conexión.jsp) que guarde usuario/password, y los otros archivos que necesiten dicha información lo único que tienen que hacer es invocar las funciones usuarioMysql() y passwordMyslq(); así, en caso tal que el usuario o el password cambien, solo es necesario modificar el archivo conexión.jsp. Veamos entonces el segundo archivo (listar.jsp):
<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>
<%@ include file="conexion.jsp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Ejemplo consulta JSP</title></head>
<body><center>
<%
Connection canal = null;
Statement instruccion=null;
ResultSet tabla= null;
String conexion = "jdbc:mysql://localhost/simple?user="+usuarioMysql()+"&password="+passwordMysql();
//Abrir el enlace
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
canal = DriverManager.getConnection(conexion);
instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(ClassNotFoundException e){ out.println(e);}
catch(SQLException e){ out.println(e);}
try{
tabla = instruccion.executeQuery("select cedula, nombre from hombre");
out.println("<table border=1>");
out.println("<tr><th>Cedula</th><th>Nombre</th></tr>");
while(tabla.next()){
out.println("<tr><td>"+tabla.getString(1)+"</td><td>"+tabla.getString(2)+"</td></tr>");
}
out.println("</table>");
}
catch(Exception e){ out.println(e);}
%>
</center></body>
<html>
Detallemos un poco (muy poco) el programa:
Si no te quedó claro es porque seguro no te has leído nada de JSP, en todo caso el objetivo del artículo era simplemente crear el entorno web JSP+MySQL, me he salido del tema, en fin… Copiamos estos archivos a la carpeta de apicaciones JSP del Tomcat (eso ya lo hicimos aquí, así que no es necesario detenerme a explicarlo). El servicio (daemon o demonio) de MySQL debe estar ejecutándose. Ponemos a correr el servidor tomcat, ejecutamos la aplicación y… buuuaaalaaaaaaa!!

Eso es todo, espero que les sirva. Saludetes!!!
En esta sección me gustaría compartir con ustedes algunas revistas y eZines que he coleccionado, orientadas fundamentalmente al software libre, la informática, el hacking, etc. Dichos documentos están en PDF, y de verdad recomiendo la lectura de estas grandes fuentes de información y conocimiento. Obviamente he de incluir (en un futuro) las famosas revistas de HackXCrack, pero las que tengo son/están escaneadas, por lo cual no son de buena calidad y pesan bastante; la buena noticia es que ya casi me las consigo todas (son 30) originales, vale la pena que las tengas. En este momento están disponibles estas, espero que les sirva:
La lista irá creciendo poco a poco (espero). Si conoces más y te gustaría compartirlas no dudes en poner un par de links o enviarmelas por correo.
Algunos de los mirrors de descarga son los originales de cada revista, es decir, son links a las repectivas webs de cada proyecto. Esto debido a que no tengo un buen hosting en donde alojar los archivos, talvez en un futuro compre uno para no tener más inconvenientes.