viernes, 15 de agosto de 2008

Leer un archivo properties desde un proyecto web + JSF

Hola en este post voy a mostrar como se debe hacer para leer un archivo *.properties de java, puesto dentro de un proyecto web JSF, es interesante mencionar que la forma de llamar a estos archivos difiere un poco de como se lo hace comúnmente en un proyecto swing de escritorio común y corriente,  ya que en este solo se pone el path relativo desde el pack del proyecto y ya, pero en un proyecto web no funciona así, por eso he decidido mostrarlo a continuación, esta es la forma que descubrí para hacerlo y me funcionó, pero si existe una forma mejor o más optima de realizarlo res ruego comentarlo para así aprender todos algo más.


Dentro de nuestro proyecto web se nos crean comunmente las páginas jsp, y su contraparte en código java dentro de un paquete en la carpeta Source Packages, dentro de ese paquete vamos a colocar el archivo .properties, teniendo en cuenta que este se va a llamar igual que la clase que lo va a leer, (por ejemplo: En mi paquete tengo una clase llamada Reportes.java, dentro del mismo paquete pondré un archivo de propiedades llamado reportes.properties), el código para ller este archivo quedaria así:



[sourcecode language='java']
String nombrePROP = Reportes.class.getSimpleName().toLowerCase() + ".properties";
Properties props = new Properties();
props.load(Reportes.class.getResourceAsStream(nombrePROP));
String strPathOrigen = props.getProperty("pathORI");
String strPathXLS = props.getProperty("pathXLS");
[/sourcecode]


Con esto ya podriamos leer las propiesades que se tenga dentro de nuestro archivo properties.


Ahora para poder poner las propiedades sacadas del archivos en variables globales, tendremos que hacer lo siguiente, fuera de cualquier método y dentro de la clase vamos a poner esto, como un método más.



[sourcecode language='java']
private static String strPathOrigen;
private static String strPathXLS;

static {
try {
String nombrePROP = Reportes.class.getSimpleName().toLowerCase() + ".properties";
Properties props = new Properties();
props.load(Reportes.class.getResourceAsStream(nombrePROP));
strPathOrigen = props.getProperty("pathORI");
strPathXLS = props.getProperty("pathXLS");
} catch (IOException ex) {
Logger.getLogger(Reportes.class.getName()).log(Level.SEVERE, null, ex);
}
}
[/sourcecode]

Así todo lo que se saque del archivo properties se almacenará globalmente y se podrá usar dentro de toda la clase si es necesario.


Espero que les haya servido...


Saludos christmo...

Descargar un archivo .XLS o .PDF con JSF

Hola había tenido problemas al tratar de descargar un archivo desde el servidor, para que sea visualizado en los computadores clientes del sistema usando JSF, pero buscando un poco por allí pude encontrar como hacerlo, este método sirve para descargar archivos *.XLS y *.PDF con los que he probado, pero me imagino que debe funcionar para cualquier tipo de archivo, lo importante es reconocer que MIME Type tiene este archivo eso lo podremos encontrar en esta página.



File ficheroXLS = new File(strPathXLS);
FacesContext ctx = FacesContext.getCurrentInstance();
FileInputStream fis = new FileInputStream(ficheroXLS);
byte[] bytes = new byte[1000];
int read = 0;

if (!ctx.getResponseComplete()) {
String fileName = ficheroXLS.getName();
String contentType = "application/vnd.ms-excel";
//String contentType = "application/pdf";
HttpServletResponse response =
(HttpServletResponse) ctx.getExternalContext().getResponse();

response.setContentType(contentType);

response.setHeader("Content-Disposition",
"attachment;filename=\"" + fileName + "\"");

ServletOutputStream out = response.getOutputStream();

while ((read = fis.read(bytes)) != -1) {
out.write(bytes, 0, read);
}

out.flush();
out.close();
System.out.println("\nDescargado\n");
ctx.responseComplete();
}


Saludos y espero que sea de utilidad para ustedes...

martes, 29 de julio de 2008

CLIENTE DE GOOGLE MAPS PARA LOS CENTROS DE LA UTPL UTILIZANDO REST, MYSQL Y NETBEANS 6.1

REST Y APLICACIONES WEB LIGERAS!...

La Transferencia de Estado Representacional (REST),  es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web, en la actualidad se utiliza para describir cualquier interfaz web simple que utiliza XML y HTTP.




[caption id="" align="aligncenter" width="485" caption="Transacciones REST"]Tranzacciones REST[/caption]

Un concepto importante en REST es la existencia de recursos que pueden ser accedidos utilizando un Identificador Uniforme de Recurso (URI).  Para manipular estos recursos, los componentes de la red (clientes y servidores) se comunican a través de un interfaz estándar (HTTP) e intercambian representaciones de estos recursos (los ficheros que se descargan y se envían).


La petición puede ser tramitada por cualquier número de conectores (por ejemplo clientes, servidores, cachés, túneles, etc.) pero cada uno lo hace sin "ver más allá" de su propia petición (lo que se conoce como separación en capas, otra restricción de REST, que es un principio común con muchas otras partes de la arquitectura de redes y de la información). Así, una aplicación puede interactuar con un recurso conociendo por la URI y la acción requerida, no necesitando conocer si existen cachés, proxys, cortafuegos, túneles o cualquier otra cosa entre ella y el servidor que guarda la información. La aplicación, sin embargo, debe comprender el formato de la información devuelta (la representación), que es por lo general un documento HTML o XML, aunque también puede ser una imagen o cualquier otro contenido.


Mediante XML, nuestra aplicación hace el consumo del servicio del servidor de Google Maps , se le envía algunos parámetros y el servidor GOOGLE nos devolverá el respectivo mapa ubicando el lugar que se desea localizar.


Ahora que ya tenemos una ligera idea de lo que es REST, vamos ha detallar el proyecto que hemos realizado con esta tecnología:


El proyecto que se ha desarrollado hace uso de varias tecnologías y herramientas que están siendo utilizadas actualmente para el desarrollo de aplicaciones Web, grandes empresas han hecho uso de ellas teniendo un gran éxito en Internet tales como: eBay, Amazon.com, Yahoo, y muchas más; es por ello que hemos creído conveniente emplearlas en nuestro proyecto, el cual será de mucha importancia para nuestro desarrollo intelectual con lo cual nos hemos introducido en el manejo de herramientas Web 2.0. La elaboración de éste proyecto lo hemos conseguido utilizando el servicio de Google Maps, para obtener a partir del: país, provincia y cantón, la ubicación correspondiente a la ciudad en donde se encuentra ubicado cada centro universitario de la UTPL en todo el mundo, la información de cada uno de estos centros, se tiene almacenada en una base de datos elaborada en MySQL, de la cual se extraen los datos para complementarse con la ubicación en el mapa y poder dar una información correspondiente y adecuada de cada centro.



Las herramientas empleadas en el proyecto son:

Netbeans 6.1: en éste IDE, ya viene integrado el plugin para el trabajo con REST, pero es necesario actualizarla, ya que es una versión anterior la que viene integrada de la que se trabajó, en el primer vídeo se muestra como hacer esto.



MySql 5.0: se deberá cargar el scrip con los datos proporcionados en este proyecto para el optimo funcionamiento de la aplicación, en el primer vídeo se muestra como realizar esta operación .

Experiencias Comentarios y Problemas:

Es necesario que trabajen con la versión actualizada del REST (versión 0.7) en Netbeans, por lo que podrían tener problemas al realizar la conexión con el Google Maps, ya que podría cambiar la forma de realizar la conexión al trabajar con la versión anterior.


Es interesante trabajar con este tipo de aplicaciones, ya que con las herramientas que se cuenta actualmente se facilita mucho el trabajo en el desarrollo de éstas.


Vídeo demostrativo, se explica a detalle los pasos para hacer funcionar la aplicación correctamente, también se hace un análisis a a breves rasgos del contenido del proyecto para el uso de REST con nuestro proyecto de Netbeans, también se explica la elaboración del cliente y unión con el proyecto que hace de servidor de recursos mediante los Stubs de Netbeans.


[vimeo 1433197]


Este Video se muestra en si el resultado de todo el proyecto, la aplicación 100% funcional.


[vimeo 1433170]


Aquí tienes las fuentes de consulta utilizadas para hacer este proyecto: http://del.icio.us/christmo/rest


Download Código fuente de la aplicación:



Google Maps Centros UTPL



martes, 22 de julio de 2008

Gráficos para variables cualitativas

Los gráficos más usuales para representar variables de tipo nominal son los siguientes:

Diagramas de barras:
Siguiendo la figura 1.1, representamos en el eje de ordenadas las modalidades y en abscisas las frecuencias absolutas o bien, las frecuencias relativas. Si, mediante el gráfico, se intenta comparar varias poblaciones entre sí, existen otras modalidades, como las mostradas en la figura 1.2. Cuando los tamaños de las dos poblaciones son diferentes, es conveniente utilizar las frecuencias relativas, ya que en otro caso podrían resultar engañosas.


Figura: Diagrama de barras para una variable cualitativa.
\includegraphics[angle=0, width=0.5\textwidth]{fig01-01.eps}


Figura: Diagramas de barras para comparar una variable cualitativa en diferentes poblaciones. Se ha de tener en cuenta que la altura de cada barra es proporcional al número de observaciones (frecuencias relativas).
\includegraphics[angle=-90, width=0.5\textwidth]{fig01-02.eps}

Diagramas de sectores
(también llamados tartas). Se divide un círculo en tantas porciones como clases existan, de modo que a cada clase le corresponde un arco de círculo proporcional a su frecuencia absoluta o relativa (figura 1.3).


Figura: Diagrama de sectores.
\includegraphics[angle=-90, width=0.6\textwidth]{fig01-03.epsi}

El arco de cada porción se calcula usando la regla de tres:

\begin{eqnarray}\html{eqn1}n & \longrightarrow & 360^{\circ} \nonumber \\ n_i & \longrightarrow &x_i = \frac{360 \cdot n_i}{n} \nonumber \end{eqnarray}


Como en la situación anterior, puede interesar comparar dos poblaciones. En este caso también es aconsejable el uso de las frecuencias relativas (porcentajes) de ambas sobre gráficos como los anteriores. Otra posibilidad es comparar las 2 poblaciones usando para cada una de ellas un diagrama semicircular, al igual que en la figura 1.4. Sean $n_1 \leq n_2$ los tamaños respectivos de las 2 poblaciones. La población más pequeña se representa con un semicírculo de radio r1y la mayor con otro de radio r2. La relación existente entre los radios, es la que se obtiene de suponer que la relación entre las areas de las circunferencias es igual a la de los tamaños de las poblaciones respectivas, es decir:


\begin{displaymath}\frac{r_2^2}{r_1^2} = \frac{n_2}{n_1} \Longleftrightarrow r_2 = r_1 \cdot \sqrt{\frac{n_2}{n_1}} \end{displaymath}


Figura: Diagrama de sectores para comparar dos poblaciones
\includegraphics[angle=-90, width=0.6\textwidth]{fig01-04.epsi}

Pictogramas
Expresan con dibujos alusivo al tema de estudio las frecuencias de las modalidades de la variable. Estos gráficos se hacen representado a diferentes escalas un mismo dibujo, como vemos en la figura 1.5.


Figura: Pictograma. Las áreas son proporcionales a las frecuencias.
\includegraphics[angle=0, width=0.5\textwidth]{fig01-05.eps}

El escalamiento de los dibujos debe ser tal que el área1.1 de cada uno de ellos sea proporcional a la frecuencia de la modalidad que representa. Este tipo de gráficos suele usarse en los medios de comunicación, para que sean comprendidos por el público no especializado, sin que sea necesaria una explicación compleja.

Gráficos para variables cualitativas

Los gráficos más usuales para representar variables de tipo nominal son los siguientes:

Diagramas de barras:
Siguiendo la figura 1.1, representamos en el eje de ordenadas las modalidades y en abscisas las frecuencias absolutas o bien, las frecuencias relativas. Si, mediante el gráfico, se intenta comparar varias poblaciones entre sí, existen otras modalidades, como las mostradas en la figura 1.2. Cuando los tamaños de las dos poblaciones son diferentes, es conveniente utilizar las frecuencias relativas, ya que en otro caso podrían resultar engañosas.


Figura: Diagrama de barras para una variable cualitativa.
\includegraphics[angle=0, width=0.5\textwidth]{fig01-01.eps}


Figura: Diagramas de barras para comparar una variable cualitativa en diferentes poblaciones. Se ha de tener en cuenta que la altura de cada barra es proporcional al número de observaciones (frecuencias relativas).
\includegraphics[angle=-90, width=0.5\textwidth]{fig01-02.eps}

Diagramas de sectores
(también llamados tartas). Se divide un círculo en tantas porciones como clases existan, de modo que a cada clase le corresponde un arco de círculo proporcional a su frecuencia absoluta o relativa (figura 1.3).


Figura: Diagrama de sectores.
\includegraphics[angle=-90, width=0.6\textwidth]{fig01-03.epsi}

El arco de cada porción se calcula usando la regla de tres:

\begin{eqnarray}\html{eqn1}n & \longrightarrow & 360^{\circ} \nonumber \\ n_i & \longrightarrow &x_i = \frac{360 \cdot n_i}{n} \nonumber \end{eqnarray}


Como en la situación anterior, puede interesar comparar dos poblaciones. En este caso también es aconsejable el uso de las frecuencias relativas (porcentajes) de ambas sobre gráficos como los anteriores. Otra posibilidad es comparar las 2 poblaciones usando para cada una de ellas un diagrama semicircular, al igual que en la figura 1.4. Sean $n_1 \leq n_2$ los tamaños respectivos de las 2 poblaciones. La población más pequeña se representa con un semicírculo de radio r1y la mayor con otro de radio r2. La relación existente entre los radios, es la que se obtiene de suponer que la relación entre las areas de las circunferencias es igual a la de los tamaños de las poblaciones respectivas, es decir:


\begin{displaymath}\frac{r_2^2}{r_1^2} = \frac{n_2}{n_1} \Longleftrightarrow r_2 = r_1 \cdot \sqrt{\frac{n_2}{n_1}} \end{displaymath}


Figura: Diagrama de sectores para comparar dos poblaciones
\includegraphics[angle=-90, width=0.6\textwidth]{fig01-04.epsi}

Pictogramas
Expresan con dibujos alusivo al tema de estudio las frecuencias de las modalidades de la variable. Estos gráficos se hacen representado a diferentes escalas un mismo dibujo, como vemos en la figura 1.5.


Figura: Pictograma. Las áreas son proporcionales a las frecuencias.
\includegraphics[angle=0, width=0.5\textwidth]{fig01-05.eps}

El escalamiento de los dibujos debe ser tal que el área1.1 de cada uno de ellos sea proporcional a la frecuencia de la modalidad que representa. Este tipo de gráficos suele usarse en los medios de comunicación, para que sean comprendidos por el público no especializado, sin que sea necesaria una explicación compleja.

¿Qué es la estadística?

Cuando coloquialmente se habla de estadística, se suele pensar en una relación de datos numéricos presentada de forma ordenada y sistemática. Esta idea es la consecuencia del concepto popular que existe sobre el término y que cada vez está más extendido debido a la influencia de nuestro entorno, ya que hoy día es casi imposible que cualquier medio de difusión, periódico, radio, televisión, etc, no nos aborde diariamente con cualquier tipo de información estadística sobre accidentes de tráfico, índices de crecimiento de población, turismo, tendencias políticas, etc.

Sólo cuando nos adentramos en un mundo más específico como es el campo de la investigación de las Ciencias Sociales: Medicina, Biología, Psicología, ... empezamos a percibir que la Estadística no sólo es algo más, sino que se convierte en la única herramienta que, hoy por hoy, permite dar luz y obtener resultados, y por tanto beneficios, en cualquier tipo de estudio, cuyos movimientos y relaciones, por su variabilidad intrínseca, no puedan ser abordadas desde la perspectiva de las leyes determistas. Podríamos, desde un punto de vista más amplio, definir la estadística como la ciencia que estudia cómo debe emplearse la información y cómo dar una guía de acción en situaciones prácticas que entrañan incertidumbre.



La Estadística se ocupa de los métodos y procedimientos para recoger, clasificar, resumir, hallar regularidades y analizar los datos, siempre y cuando la variabilidad e incertidumbre sea una causa intrínseca de los mismos; así como de realizar inferencias a partir de ellos, con la finalidad de ayudar a la toma de decisiones y en su caso formular predicciones.


Podríamos por tanto clasificar la Estadística en descriptiva, cuando los resultados del análisis no pretenden ir más allá del conjunto de datos, e inferencial cuando el objetivo del estudio es derivar las conclusiones obtenidas a un conjunto de datos más amplio.



Estadística descriptiva: Describe, analiza y representa un grupo de datos utilizando métodos numéricos y gráficos que resumen y presentan la información contenida en ellos.

Estadística inferencial: Apoyándose en el cálculo de probabilidades y a partir de datos muestrales, efectúa estimaciones, decisiones, predicciones u otras generalizaciones sobre un conjunto mayor de datos.

¿Qué es la estadística?

Cuando coloquialmente se habla de estadística, se suele pensar en una relación de datos numéricos presentada de forma ordenada y sistemática. Esta idea es la consecuencia del concepto popular que existe sobre el término y que cada vez está más extendido debido a la influencia de nuestro entorno, ya que hoy día es casi imposible que cualquier medio de difusión, periódico, radio, televisión, etc, no nos aborde diariamente con cualquier tipo de información estadística sobre accidentes de tráfico, índices de crecimiento de población, turismo, tendencias políticas, etc.

Sólo cuando nos adentramos en un mundo más específico como es el campo de la investigación de las Ciencias Sociales: Medicina, Biología, Psicología, ... empezamos a percibir que la Estadística no sólo es algo más, sino que se convierte en la única herramienta que, hoy por hoy, permite dar luz y obtener resultados, y por tanto beneficios, en cualquier tipo de estudio, cuyos movimientos y relaciones, por su variabilidad intrínseca, no puedan ser abordadas desde la perspectiva de las leyes determistas. Podríamos, desde un punto de vista más amplio, definir la estadística como la ciencia que estudia cómo debe emplearse la información y cómo dar una guía de acción en situaciones prácticas que entrañan incertidumbre.



La Estadística se ocupa de los métodos y procedimientos para recoger, clasificar, resumir, hallar regularidades y analizar los datos, siempre y cuando la variabilidad e incertidumbre sea una causa intrínseca de los mismos; así como de realizar inferencias a partir de ellos, con la finalidad de ayudar a la toma de decisiones y en su caso formular predicciones.


Podríamos por tanto clasificar la Estadística en descriptiva, cuando los resultados del análisis no pretenden ir más allá del conjunto de datos, e inferencial cuando el objetivo del estudio es derivar las conclusiones obtenidas a un conjunto de datos más amplio.



Estadística descriptiva: Describe, analiza y representa un grupo de datos utilizando métodos numéricos y gráficos que resumen y presentan la información contenida en ellos.

Estadística inferencial: Apoyándose en el cálculo de probabilidades y a partir de datos muestrales, efectúa estimaciones, decisiones, predicciones u otras generalizaciones sobre un conjunto mayor de datos.

miércoles, 16 de julio de 2008

CODA File Systems

Coda es un sistema de ficheros distribuido, desarrollado en la Universidad Carnegie Mellon. Coda está basado en una arquitectura cliente/servidor, y ha sido diseñado para proporcionar funcionalidades no existentes en otros sistemas de ficheros distribuidos – por ejemplo NFS – como es el soporte para la movilidad de los clientes.


Las características principales de Coda (según describen los propios desarrolladores) son:





  • Permite operar a los clientes offline, esto es, desconectados del sistema, de manera que pueden realizar cambios locales en los ficheros que se propagan a todo el sistema de ficheros una vez que el cliente en cuestión se reconecta al mismo.



  • Facilita características para mejorar la resistencia a fallos en el sistema, mediante la posibilidad de incluir servidores con réplicas de los datos del sistema, y mecanismos para manejar conflictos entre servidores, para manejar fallos en la red, y para controlar la desconexión de los clientes y los posibles conflictos e inconsistencias que ello puede acarrear. También incorpora mecanismos de backup de los datos del sistema.



  • Proporciona mejoras en el rendimiento, con respecto a otros sistemas de ficheros distribuidos, mediante la utilización de caches locales en los clientes y para la escritura de datos en los servidores.



  • Incorpora características de seguridad basadas fundamentalmente en la autenticación de usuarios, mediante la utilización de listas de control de acceso (ACL’s).



  • El código está disponible de forma libre.


De esta forma, el objetivo principal perseguido con Coda es obtener un sistema de ficheros distribuido con un rendimiento mejorado, menos sensible a posibles indisponibilidades en los servidores o a sobrecargas de la red. Relacionada con esta meta está la provisión de cierto grado de movilidad a los clientes del sistema.


Actualmente existen versiones de Coda para diferentes variantes de Unix (incluido Linux Debian y RedHat) y Windows 95/98 y XP.


Video demostrativo de Configuración de CODA en Ubuntu 8.04


[vimeo 1433271]

martes, 15 de julio de 2008

Conocimiento tácito y explícito



[caption id="attachment_51" align="aligncenter" width="300" caption="Conocimiento"]Conocimiento[/caption]

Hay que analizar los conceptos de conocimiento tácito y Explicito, para así poder asimilar de mejor manera las combinaciones que se pueden dar por medio de estos concepto.


Conocimiento Tácito.- Es aquel que permanece en un nivel “inconsciente”, se encuentra desarticulado y lo implementamos y ejecutamos de una manera mecánica sin darnos cuenta de su contenido, es algo que sabemos pero que nos resulta muy difícil explicarlo.


Conocimiento Explícito.- Es el que sabemos, tenemos y somos plenamente consientes cuando lo ejecutamos, es el más fácil de compartir con los demás ya que se encuentra estructurado y muchas veces esquematizado para facilitar su difusión.



COMBINACIONES DEL CONOCIMIENTO



Existen cuatro tipos de combinaciones:




  1. Socialización

  2. Combinación

  3. Articulación

  4. Internalización


Socialización (conocimiento armonizado)

Conocimiento tácito a conocimiento tácito


En la socialización consiste en compartir experiencias. Se generan habilidades y conocimiento a partir de la observación, imitación y práctica. La parte fundamental para obtener conocimiento tácito es la experiencia. Es también compartir el conocimiento tácito a través de una comunicación cara a cara o de la experiencia compartida. Un ejemplo es el aprendizaje.



Combinación (conocimiento sistémico)

Conocimiento explícito a conocimiento explícito


En la combinación las personas intercambian y combinan el conocimiento a través de distintos medios como por ejemplo: conversaciones por teléfono, documentos, etc. En esta parte se combinan o integran partes de conocimiento explícito y se sintetizan en un nuevo conocimiento. Combinación de varios elementos del conocimiento explícito: la construcción de un prototipo es un ejemplo.


Articulación o Exteriorización (conocimiento conceptual)



Conocimiento tácito a conocimiento explícito
Se articulan los fundamentos del conocimiento tácito individual y se hacen intangibles y fáciles de compartir, para crear nuevo conocimiento. Nonaka considera este proceso como clave en la creación del conocimiento. Desarrollando conceptos, que encajan con el conocimiento tácito combinado. Y que permiten su comunicación.

Internalización o Interiorización (conocimiento operacional)


Conocimiento explícito a conocimiento tácito


En la interiorización se presenta la conversión entre conocimiento explícito en conocimiento tácito, y esto está relacionado con el “aprendiendo haciendo”. Se transmite el nuevo conocimiento explícito y quienes lo reciben lo internalizan para extenderlo, integrarlo y reestructurarlo en su conocimiento tácito.


Se asume entonces que de los cuatro modos descritos, la conversión de conocimiento tácito en explícito es el mecanismo de transformación más rico en la creación de conocimiento.


Cercanamente ligada al aprendizaje en acción, el conocimiento explícitose convierte en parte de la base del conocimiento individual y se convierte en un activo para la organización.


En mi medio de trabajo se aplica en gran media el conocimiento explicito, porque se debe saber lo que se hace para realizarlo, aunque otras se la realiza por simple intuición pero son muy pocas, en los estudios creo que se lleva una comunicación de socialización y se reciben conocimientos explicitos del profesor, los conocimientos tácitos aunque son muy utilis son muy poco utilizados en las actividades que realizo.

martes, 8 de julio de 2008

Tipos de Conocimiento

Según Foray y Lundvall tenemos cuatro diferentes clases de conocimiento:



Know-what (saber qué). Se refiere al conocimiento acerca de “hechos”. Es cercano a lo que normalmente llamamos “información”. Existen muchas áreas en las cuales los expertos (entre los que se encuentran los abogados y los médicos), deben poseer mucho de este tipo de conocimiento para realizar adecuadamente su trabajo.


Know-why (saber por qué). Se refiere “al conocimiento científico de los principios y leyes de movimiento en la naturaleza, en la mente humana y en la sociedad”. Este tipo de conocimiento ha sido muy importante para el desarrollo tecnológico en ciertas áreas, tales como las industrias química, eléctrica y electrónica. Para acceder a esta clase de conocimiento se requiere frecuentemente del avance de la tecnología y la reducción de la frecuencia de errores en las pruebas de ensayo y error. Según Foray y Lundvall, la producción y reproducción de know-why es llevada a cabo en organizaciones especializadas, ya sea a través del reclutamiento de personal entrenado científicamente o mediante el contacto directo con los laboratorios de las universidades.


Know-how (saber cómo). Se refiere a la habilidad y/o capacidad de hacer algo. Esta puede relacionarse con la producción, pero también con otras actividades en el ámbito económico. Según Foray y Lundvall, no solamente la “gente práctica” necesita poseer estas habilidades.


Know-who (saber quién). Se refiere a la mezcla de diferentes clases de habilidades, incluidas las llamadas habilidades sociales, que permiten tener acceso al experto y usar su conocimiento eficientemente. Saber quién, implica información acerca de quién sabe qué, y quién sabe cómo hacer qué. Según Foray y Lundvall, esta clase de conocimiento es importante en la economía moderna, donde hay una necesidad de acceder a muchas diferentes clases de conocimiento y habilidades que están dispersas debido al gran desarrollo de la división del trabajo entre organizaciones y expertos.



Es importante destacar que, para Foray y Lundvall (1996:21) el dominio de estas cuatro clases de conocimiento tiene lugar a través de diversos canales. Así, mientras que el know-what y el know-why pueden obtenerse a través de lectura de libros, asistiendo a lecciones o accediendo a bases de datos, el dominio del know-how y del know-who se basan principalmente en la experiencia práctica.



El know-how se adquiere esencialmente a través de relaciones del tipo maestro-aprendiz, que se reflejan en la empresa o en el sistema educativo, que conduce a profesiones científicas y técnicas, las cuales implican trabajo de campo o de laboratorio. El know-how también se aprende en una forma madura a través de años de experiencia en la práctica cotidiana, mediante el “aprender-haciendo” (learning-by-doing) y el aprender interactuando (learnig-by-interacting) con colegas.



El know-who se aprende a través de la práctica social y, en ocasiones, a través de la educación especializada. Por ejemplo, las comunidades de ingenieros y de expertos se mantienen unidas mediante relaciones informales, reuniones de alumnos o a través de sociedades profesionales, que facilitan acceso de los participantes al intercambio de información con los colegas.

viernes, 27 de junio de 2008

La sociedad de la información en Ecuador y en América Latina – Capítulo 5







Hoy en días hablamos mucho de la sociedad de la información en el mundo, principalmente nos referimos a las grandes potencias tecnológicas como Estados Unidos, Alemania, entre otros, pero que hay con los países de América Latina, se puede destacar que poco a poco van saliendo del vacio tecnológico en el que han estado hundidos durante muchos años.


Tenemos algunos indicadores que nos pueden ayudar a definir cual es el nivel de una nación dentro de la SIC como principal indicador lo pondría al internet, aunque nosotros como Ecuador no tengamos gran presencia dentro de esta red, se puede definir claramente cuales son los países con mayor alcance e influencia dentro de esta gran red. Les comento algo que me pareció muy interesante donde se puede notar claramente las diferencias de conectividad, es lo que hizo el navegador “Firefox”, el día de su lanzamiento de su última versión exactamente el 17 de junio, y no resalto esto por el fin de romper un record o por publicidad de dicho producto, sino porque ellos implementado un mapa que tenía un contador de descargas por país, en este se puede ver que países tienen más acceso a internet que otros proporcionalmente a su población y conectividad, yo lo veo como una encuesta a escala mundial, pero regresando al tema yo considero al internet como el principal indicador para este tipo de mediciones.


Latino América surge como una nueva potencia tecnológica en crecimiento, gracias a su muy rápido despunte tecnológico vivido en los últimos años, es por ello que debo mencionar que nuestro más alto referente en Sudamérica siendo Chile con el 34% de conectividad en internet se vate ya con los últimos de los países de Europa, esto nos habla a las claras de que Chile esta creciendo a un buen ritmo, al igual que todos los países Hispanos, creo que la principal razón para que ahora tengamos un ritmo muy acelerado de crecimiento es porque los países industrializados ya están copados de recursos tecnológicos, y ya no es beneficioso invertir allí, por eso grandes empresas se han expandido para comenzar a cubrir las necesidades de los países en vías de desarrollo, los cuales les dejan grandes réditos económicos por sus servicios, tenemos el caso de Movistar o Porta, que son grandes trasnacionales de telecomunicaciones.


El estado de la SIC en Ecuador va en aumento al igual que los países de sudamericanos, pero en lo personal considero que nuestro país podría estar en mejor situación dentro de las comunicaciones, principalmente porque nuestras operadoras de telefonía fija no han sabido brindar los recursos y un servicio de calidad a todos sus usuarios, provocando un atraso tecnológico bastante considerable, esto se ha dado por los malos manejos de estas empresa, por personas que solo han buscado su bien personal y no el beneficio de todo un país, sin embargo creo que los tiempos han cambiado y que las personas se han dado cuenta de que el surgimiento del país esta en facilitar las comunicaciones para todos los ciudadanos, esto ha hecho que nuestras comunicaciones comiencen a surgir y a dar sus frutos.


El futuro de la SIC para nuestro país, quizá no sea nuevo para muchas personas ya que nos esperan muchas ventajas que países como Estados Unidos o Canadá están viviendo en este momento, un progreso económico insuperable producto de las TIC bien implementadas, hacia allá vamos quizá a paso lento y no al ritmo que quisiéramos pero estamos avanzando, en lo personal creo que si se siguen invirtiendo recursos, en tratar de formar un país comunicado y tecnológicamente activo, muy pronto podremos prescindir del petróleo y obtener mayor rentabilidad en la parte tecnológica.

miércoles, 18 de junio de 2008

Firebug para Firefox 3.0




Con todo este revuelo de bajar Firefox 3.0, me olvide que necesito de urgencia utilizar Firebug para la depuración de unas páginas web, por tal motivo me puse a investigar y pude encontrar como hacerlo, para los que les interesa un poco el mundo de dañar las cosas por allí, o como yo lo llamo descubrir algo nuevo les voy a mostrar los pasos para hacerlo, y para las personas que lo necesitan pero que les da igual como se hace aquí voy a dejar el link del que modifique yo para mi Firefox 3.0.




  1. Vamos a Bajar FireBug firebug_1.2.0a30X.xpi.

  2. Listo ahora vamos a guardarlo en algún lugar de nuestra compu...

  3. Vamos a re-nombrarlo y le vamos a cambiar la extensión a  firebug_1.2.0a30X.zip

  4. Abrimos ese archivo con WinRar o Winzip y extraemos el archivo "install.rdf"

  5. Abrimos este archivo "install.rdf" con el block de notas NOTEPAD

  6. Cambiamos la etiqueta <em:version>1.2.0a30X</em:version> por <em:version>3.0.0.*</em:version> y la etiqueta <em:maxVersion> si es que no tiene 3.0 y la dejamos así <em:maxVersion>3.0.0.*</em:maxVersion>

  7. Guardamos el archivo y reemplazamos este con la versión anterior que está dentro de zip.

  8. Renombramos el comprimido .zip y lo dejamos como estaba anteriormente firebug_1.2.0a30X.xpi

  9. Arrastramos firebug_1.2.0a30X.xpi dentro de nuestro Firefox 3.0 y Listo

  10. Reiniciamos Firefox y ya lo tendremos funcionando...


Espero que les sirva y Saludos a todos, espero sus comentarios...


Ha por cierto me olvidaba aquí está el Firebug que modifique yo o en el widget de box.net a la derecha...


Saludos christmo...

martes, 17 de junio de 2008

Yo también estoy en Plurk

Plurk


Hola amigo siguiendo la materia de redes sociales colaborativas tuve el agrado de conocer esta maravillosa herramienta de microbloggin, y porque es tan especial, cansados de la rutina de Twitter, que sin duda tiene una interfaz fea a mi parecer, aparece plurk completamente dinámico e interactivo, muy amigable al usuario, gracias a usar AJAX, Lo primero que nos llamará la atención de Plurk es que su línea de tiempos es horizontal, al estilo de los servicios de lifestream gráficos. Otra cosa cosa que diferencia al resto de servicios de microblogging es que al principio tendremos que seleccionar una acción de una lista desplegable para después continuarla con nuestra frase de hasta 140 caracteres, donde también podemos añadir algunos emoticones.


Como en cualquier red social de las que nos encontramos últimamente, tenemos nuestra lista de amigos y nuestra lista de fans, ésta compuesta de Plurkeros que nos siguen pero que aún no los hemos añadido como amigos.


Nuestras actualizaciones pueden ser públicas, para determinados amigos o privadas, y en todo caso nuestra actividad nos dará puntos en nuestro karma. También conseguiremos puntos si reclutamos a nuestros amigos desde diferentes formas, para que se unan a Purk.


Y para que sirven los puntos y que suba el karma, hay diferentes niveles de karma mientras vamos aportando con plurk nuestro carma sube y con ello iremos ganando nuevos emoticones para porderlos utilizar en nuestros post.


Pero eso no es todo, podemos compartir enlaces, que podremos ver en una ventana flotante dentro de la misma página sus contenidos. Así, podemos publicar enlaces a vídeos de YouTube o a imágenes de Flickr, entre otros servicios, también podemos personalizar nuestro espacio, nuestra línea de tiempos, podemos usarlo vía mensajería, disponer de widget, etc. Yo ya soy adictivo a el...


Saludos y se los recomiendo...

martes, 10 de junio de 2008

Vida, Sociedad e Internet - Capítulo 4


La Sociedad de la Información, en los últimos años está influyendo en nuestras vidas de una forma sorprendente, ya que con el ingreso de nuevas tecnologías de la información (TICs), se ha podido facilitar las acciones de la gente que antes se hacían de una forma rutinaria o muy compleja, por ejemplo: antes las personas tenían que salir de su hogar u oficina a comprar el periódico, ahora ellos tienen la mima y muchísima más información dentro de su computador a través del Internet, por tal motivo las personas se pueden mantener informadas de una manera fácil, cómoda y rápida, estas características hacen del Internet la herramienta principal para la comunicación en el mundo.


Se ha hablado de cuanto y como afecta las TICs, la participación política de las personas, yo creo que las TICs han ayudado en gran medida a mejorar la participación de las personas en la política, estas han tomado un lugar más activo dentro del desarrollo de la política dentro de un país. La utilización de nuevas tecnologías de la información dentro de esta tan polémica área, ha dado grandes resultados a quienes las han utilizado, tenemos el claro ejemplo de nuestro presidente Rafael Correa, el en su campaña en busca de la presidencia del Ecuador, utilizo al sitio YouTube, para difundir sus mensajes y propuestas, estuvo presente en Hi5, tiene su propio blog, puso a disposición de la gente en su página banners publicitarios para que la gente se pueda identificar con su partido, entre otras estrategias publicitarias para poder cumplir con su objetivo. Estas formas de integrar a la gente le dieron una gran acogida entre las personas jóvenes y adultas de nuestro país.


Es importante analizar a las TICs como fuentes generadoras de conocimiento, en la web nosotros podemos encontrar un sin fin de información, la cual esta mezclada entre información útil y no útil, de nosotros depende filtrar toda esa información, para de allí enriquecer nuestros conocimientos en las distintas áreas de la ciencia humana.



Algo que ha hecho más interesante al Internet en los últimos años, ha sido la interactividad que nos a brindado la web 2.0, esta forma de ser parte activa de todos los recursos que podemos encontrar dentro de Internet, ha logrado que las personas veamos todas las ventajas y maravillas que se pueden lograr al estar conectados.



Aportes cívicos de las personas mediante las TICs, como ya hablábamos anteriormente como el Internet y las TICs han influido en nuestra política, mediante ellas también se puede resaltar los valores cívicos que tenemos como ciudadanos de una nación o ciudad, las personas ahora pueden aporta sugerencias, reportar daños en la ciudad a los municipios para que ellos ya no tengan que ser entidades omnipresentes, mediante la labor de la ciudadanía ellos pueden cuidar y mejorar la ciudad, formando habitantes comprometidos por el beneficio de sus ciudades, este solo es un caso pero en realidad las TICs hoy en día aportan muy importantes recursos, para mejora nuestro diario vivir.


viernes, 30 de mayo de 2008

La Nueva Economia – Capitulo 3

La inclusión de nuevas tecnologías en todos los ámbitos de la sociedad ha hecho que se logre importantes avances en la productividad de las empresas, educación, salud, etc., un claro ejemplo es en la industria donde los sistemas automatizados han remplazado a la mano de obra humana, esto ha logrado que las empresas puedan producir el doble, en el mismo tiempo que lo hacían antes.


En la educación la inclusión de tecnologías nuevas TIC ha provocado que se amplié mucho más el campo de consulta para el conocimiento de los estudiantes, también gracias a la interactividad de los contenidos se ha logrado que se asimile la información de una mejor manera, comprendiendo he interiorizando la información mucho más rápido.


La sociedad ha tenido que familiarizarse y adaptarse a todos los cambios tecnológicos que ha brindado el mundo, estos han facilitado la vida a muchas personas, pero también ha hecho más difícil realizar las cosas que otras lo hacían empíricamente esta gente que se resiste a conocer todo este maravilloso mundo que es la tecnología, por lo regular son personas de avanzada edad, que les da miedo o simplemente no les llama la atención aprender algo nuevo.


El trabajo de las personas con el ingreso a la nueva economía dejó de ser un trabajo físico y sacrificado, dejando relegada la producción en el campo de la agricultura e industria, para tomar un nuevo rumbo en el campo de los servicios, las personas comenzaron a migrar de trabajos sumamente pesados y duros, a trabajos mucho más relacionados con la sociedad, aunque se requiere menos trabajo físico se requiere gran capacidad intelectual, estos han sido de gran importancia para la economía de la era de la información.


A finales del siglo XX e inicios del siglo XXI se ha visto marcado por una gran y creciente intervención de la mujer cumpliendo roles muy importantes dentro de nuestra sociedad, hoy en día tenemos a mujeres como presidentas de distintas naciones o desempeñando altos cargos en entidades sumamente importantes del mundo. La era en que los hombres eran lo únicos que trabajaban y todos esos tipos de pensamiento machistas se acabaron, la mujer por ser más centrada y responsable ha podido ganarse con gran orgullo ese respeto que ahora tienen. Algo que también ha influido para que las mujeres puedan intervenir mucho más activamente en la economía, justamente ha sido el ingreso de nuevas tecnologías, con ello se olvida un poco el trabajo físico y las mujeres pueden ir a competir de igual a igual contra los hombres ya que solo dependen de sus capacidades.


¿Cuál es el panorama para la familia en la nueva economía?

La familia en la nueva economía esta comunicada, gracias a todos los adelantos tecnológicos las familias separadas, por motivos diversos han podido acortar las distancias y estar más cerca de sus seres queridos, en nuestra sociedad tan consumista la familia desempeña un papel muy importante en la economía, ya que al ser la base de la sociedad es la encargada de la producción y la comercialización de productos, gracias a la familia se puede mover la economía, con ella podemos observar las leyes de la oferta y la demanda.

miércoles, 21 de mayo de 2008

NTFS-3G 1.0: Escribiendo en particiones NTFS de forma segura




NTFS-3G es un driver open source para el sistema de archivos NTFS en Linux el cual permite leer y escribir sobre las particiones que tengann este sistema de archivos. El driver ha lanzado su versión estable 1.0, por lo que ahora se puede escribir en particiones NTFS en forma transparente.


El propósito de este proyecto es brindar el soporte necesario para poder operar con dispositivos de hardware que utilizan NTFS como sistema de archivos.


Se puede descargar el código fuente desde el siguiente enlace : Descargar NTFS-3G y también encontrarás binarios disponibles para RedHat, Fedora, Gentoo, Ubuntu, Slackware, entre otros. También está disponible para Max OS X, FreeBSD, BeOS y Haiku.


Instalación


El proceso de instalación desde código fuente es bastante sencillo, sólo siga los siguientes pasos:




  1. Descargue el código fuente del programa.
    # wget -c http://www.ntfs-3g.org/ntfs-3g-1.0.tgz

  2. Descomprimirlo
    # tar -zxvf ntfs-3g-1.0.tgz
    # cd ntfs-3g-1.0

  3. Instalación (para el caso de ubuntu agregar sudo antes de cada comando):
    # ./configure
    # make
    # make install


Cómo utilizarlo


Para poder utilizarlo sólo debe montarse la partición con NTFS:



4. Montar la partición:
# mount -t ntfs-3g /dev/hda1 /mnt/windows


Reemplazar hda1 con el nombre de la partición que tiene el sistema de archivos NTFS, /mnt/windows es un directorio que debe crear previamente.


Fuente: LinuxCentro.net

viernes, 25 de abril de 2008

JavaCup 2008

Nuestros amigos de javahispano, organizan nuevamente JavaCup 2008, un torneo virtual de fútbol JavaCup donde cada equipo es una clase Java que implementa una interfaz predefinida.

Premios

El ganador del concurso recibirá 1500 €, el segundo clasificado recibirá 1000 €, el tercero 500 € y el cuarto 250 €. Además, todos ellos recibirán una suscripción anual a la revista Sólo Programadores. Los ganadores del concurso se anunciarán en el evento tecnológico OpenJavaDay, que se celebrará a finales de junio en España, Madrid.

Puedes visitar estos enlaces
Comienza JavaCup 2008
Sitio Oficial



Todos tenemos que participar, haber si se representa a nuestra ciudad y país...

martes, 22 de abril de 2008

Historia del Internet - Capitulo 2

Bueno el Internet nace gracias a la lucha no declarada entre Estados Unidos y la Unión Soviética (URSS), la llamada guerra fría marcó el inicio de varios inventos, que revolucionaron al mundo, cada uno de estos países trataba de demostrarle al otro que tenía mejor tecnología, y mejores cosas que ofrecerle al mundo, por tal motivo en 1957 la URSS hace el lanzamiento del primer satélite artificial llamado Sputnik 1 que marco el inicio de la era espacial tomando la delantera en ese campo, luego Estados Unidos 1958 hace también un lanzamiento emparejando la situación, estos dos países habían tenido una cierta rivalidad durante muchos años, por tal motivo Estados Unidos creía que algún rato podía ser presa de un ataque nuclear, por eso decidió crear un medio de comunicación indestructible, que sea capaz de resistir cualquier tipo de ataque, para que no se perdiera la comunicación entre el país, por tal motivo se creó en 1957 el grupo de la Agencia de Proyectos de Investigaciones Avanzadas (ARPA) un grupo élite de la fuerza de los Estados Unidos los cuales hicieron la primera red que conectaba a todo el país ARPANET.


Con el tiempo esta agencia desapareció y la red se dividió en dos grupos una red de carácter militar, y otra de servicio público, la cual esta destinada a la investigación, educación, industria, entre otros, esta fue la INTERNET. Este es en si un breve resumen del origen de la Internet, con el pasar de los años esta gran red ha ido evolucionando, hasta llegar hacer la red que todos conocemos y la que nos a prestado grandes beneficios.


Cabe destacar que la Internet se ha convertido en uno de los sistemas de comunicación más rápidos de los últimos tiempos después del celular, gracias a su conexión a través de protocolos y la forma de trasmitir información a través de paquetes conmutados, se ha podido transmitir texto, imágenes, sonido, multimedia, y mucho más.


La Internet ha prestado una gran utilidad a las personas que lo usan por su naturaleza independiente, que no puede ser controlada por nadie, esto la ha puesto en un sitial privilegiado dentro de las comunicaciones de las personas, las cuales la han utilizado para los negocios, comunicación familiar, entre amigos, investigación, entretenimiento, educación, entre otros.


¿Pero que pasaría si la red desapareciera?


Actualmente nos resulta algo complicado pensar en una vida sin Internet, gracias a ella se a reducido las distancias y se podido de cierta forma ahorrar tiempo, porque digo esto lo explico, antes una persona para firmar un contrato, hacer un pedido de alguna materia prima para la industria o una mercadería para un almacén, tenia que hacer un viaje de muchas horas y tal vez de días para poder conseguirla, este tipo de travesías demandaban mucho tiempo y por consiguiente grandes cantidades de dinero, en este sector la Internet ha beneficiado para que se pueda reducir costos y lograr precios más competitivos hoy en día en un mundo globalizado como en el que vivimos, entonces puedo decir que la Internet le ha dado rentabilidad a la empresas chicas, medianas o grandes todas se han beneficiado.

miércoles, 9 de abril de 2008

Como crear un “Pool de Conexiones” en NetBeans 6.0 usando Java Server Faces (JSF) y MySQL

En este tutoríal vamos ha mostrar como realizar un POOL de conexiones para tener centralizada nuestra conexión a una base de datos MySQL, hay que tener en cuenta que este proceso se realiza totalmente igual si queremos conectarnos a ORACLE o a cualquier otra base de datos, esto nos evitara hacer una conexión nueva cada vez que queramos hacer una consulta nueva a la base.


Antes de empezar vamos a utilizar las siguientes herramientas:




  • NetBeans 6.0



  • MySQL


Vamos a tener creada previamente en MySQL una base de datos llamada “prueba” y dentro de ella una tabla llamada “roles” con dos columnas con las filas de datos que usted prefiera ingresarle a esta tabla, este detalle pasa por cuenta de la persona que sigue este tutorial.


¿Pero qué es un Connection Pool o Pool de conexiones?


Un JDBC connection pool es un grupo de conexiones reutilizables que el servidor de la aplicación mantiene para una base de datos en particular. Cuando una aplicación cierra una conexión, regresa a la piscina. Las conexiones agrupadas reducen el tiempo de la transacción al conectarse a una base de datos por medio de compartir el objeto de acceso a la conexión a la base de datos, esto a su vez evita una nueva conexión física o crear cada vez una conexión nueva.


Al ejecutar esto es lo que pasa cuando una aplicación se conecta a la base de datos.


1. Lookup JNDI nombre de los recursos de JDBC. Para conectar a una base de datos, la aplicación busca el JNDI nombre del recurso de JDBC (Data Source) asociado con la base de datos. El API de JNDI permite a la aplicación localizar el recurso de JDBC.


2. Localizar el JDBC connection pool. El recurso de JDBC especifica qué piscina de conexiones va a usar. La piscina define los atributos de conexión como la base de datos nombre (el URL), nombre del usuario, y contraseña.


3. Recupere la conexión del connection pool. El servidor de la aplicación recupera una conexión física de la piscina de conexiones que corresponde a la base de datos. Ahora que la aplicación esta conectada a la base de datos, la aplicación puede leer, modificar y agregar los datos a la base de datos. Las aplicaciones acceden la base de datos haciendo las llamadas al API de JDBC.


4. Cerrado de la conexión. Cuando el acceso a la base de datos a terminado, la aplicación cierra la conexión. El servidor de la aplicación devuelve la conexión a la piscina de conexión. Una vez regresada a la piscina, la conexión está disponible para una próxima aplicación.


Nombre JNDI. Cada recurso tiene un único nombre de JNDI que especifica su nombre y situación. Porque todo el recurso que los nombres de JNDI están en el contexto del java:comp/env, los nombres JNDI de un recurso de JDBC se espera en el contexto del java:comp/env/jdbc.


Creación de un Nuevo Proyecto JSF en NetBeans 6.0


Como primer paso vamos a crear un nuevo proyecto de JSF, vamos a file -> New Poyect -> Web -> Web Application -> y clic en Next


Nuevo Proyecto



Le ponemos un nombre en este caso le vamos a poner “PoolConnection” y luego clic en Next


Nombre del Proyecto



Elegimos el Framework que vamos a utilizar “Visual Web JavaServer Faces” y no cambiamos nada más, clic en Finish.


Frameworks



Una vez dentro de la parte de diseño de NetBeans vamos a arrastrar de la paleta un botón “Button” el cual va a ser el que nos conecte con la base MySQL y le vamos a poner de nombre conectar… Con esto realizado vamos a pasar a preparar la conexión a la base con la que vamos a trabajar.



Creación del Conector para la Base de Datos


Primero tenemos que ir a la parte de servicios (Ctrl + 5) en NetBeans y en Databases damos un clic derecho y ponemos en la opción de New Connection…


New Connection



En la ventana de New Database Connection vamos a poner lo siguiente:


Name: MySQL (Connector/J driver)


Driver: com.mysql.jdbc.Driver


Database URL: jdbc:mysql://localhost:3306/prueba


En esta parte ponemos el host donde va a correr la aplicación que va a ser en “localhost”, al poner el puerto debemos tener cuidado porque el puerto 3306 es el puerto por defecto de MySQL, pero debemos ponerle el puerto que le pusimos en la instalación de MySQL si por si acaso lo cambiamos, y ponemos el nombre de la base a la que queremos tener acceso que en este caso va a ser “prueba”…


Por ultimo ponemos el User y el Password con el cual entramos a MySQL… Si queremos que recuerde NetBeans el Password le ponemos Remember Password caso contrario no (No es recomendable hacerlo por problemas de seguridad) y terminamos presionando OK.


Conexión



Nos aparecerá una nueva base en el recuadro de Servicios, podremos conectarnos a ella y revisar los datos.


Conectar



Creación del Pool de Conexiones para nuestro proyecto.


Lo que vamos a hacer primero es ir a File --> New File o directamente (Ctrl + n), en la ventana de New File, en Project escogemos el proyecto con el que estamos trabajando en nuestro caso “PoolConnection”, en el lado izquierdo en Categories vamos a escoger “GlassFish” y al lado derecho en File Types vamos a escoger la primera opción que es “JDBC Connection Pool” y clic en Next.


New File



En la siguiente ventana nos pide como campo obligatorio o requerido un nombre para el pool de conexiones, le podemos dejar el que nos pone por defecto o simplemente lo cambiamos, nosotros lo vamos a dejar por defecto.


En el siguiente casillero de Extract from Existing Connection escogemos el conector que realizamos anteriormente para nuestra base de datos, y damos clic en Next.


Pool



En la siguiente ventana nos aparece Datasource Classname con un nombre bastante largo, este esta determinado por la conexión seleccionada anteriormente, nosotros lo vamos a dejar por defecto, le vamos a poner una descripción, en la tabla de propiedades podemos revisar los datos de ingreso a la base, para comprobar que estén correctos y terminamos dándole un clic en Next. (Si deseamos modificar las propiedades por defecto de la conexión, nosotros podemos cambiarlas luego editando el archivo sun-resources.xml, que se encuentra en la carpeta Server Resources de nuestro proyecto).


JDBC Connection



En la última Ventana que nos aparece con muchos campos todos los dejamos por defecto y ponemos un clic en Finish, con esto ya tenemos realizado nuestro pool de conexiones…


Acceder al Connection Pool desde una clase de Java


A través de este proceso podremos obtener un DataSource.


Lo primero que tenemos que hacer es crear el acceso a la base, vamos al código de la aplicación desde la cual queremos acceder a la base de datos, hacemos un clic derecho en el editor à escogemos Enterprise Resources à Use Database


Use DataBase



Nos aparece la ventana para escoger la base de datos, hacemos un clic en Add, nos aparecerá una nueva ventana para configurar el Data Source, le ponemos un Nombre de Referencia en este caso le vamos a poner “conBasePrueba”, luego escogemos el Project Data Source como no tenemos creado un data source anterior, le ponemos clic en Add y se nos vuelve a abrir una nueva ventana, Create Data Source en el JNDI Name le ponemos el mismo nombre anterior “conBasePrueba” y elegimos el conector de la base a la que vamos a acceder, finalmente damos un clic en OK…


Data Source


Regresamos a la ventana anterior y ya se nos carga el nombre de DataSource que ingresamos y creamos anteriormente y damos un clic en OK para confirmar…


Data Source Reference


Finalmente regresamos a la ventana de Choose DataBase ya se nos cargara la referencia a la base de datos y confirmamos haciendo un clic en OK…


Choose Database



Con este último paso estamos listos para realizar una prueba de conexión desde el código…


Probemos nuestro Pool con una conexión rápida.


Vamos hacer una prueba rápida de conexión y vamos a visualizar por consola nuestro resultado, regresaremos a nuestra interfaz de Diseño de NetBeans y vamos a hacer doble clic en el botón que colocamos al inicio de este tutorial, nuestro proyecto se ve más o menos así ahora.


Como se Ve


Una vez hecho doble clic en el botón, esta acción nos lleva al código de la aplicación, directamente al método del botón button1_action() el cual lo vamos a programar en este momento para hacer la conexión nuestro código debería quedar así.




[sourcecode language='java']
public String button1_action() {
Connection con = null;
try {
InitialContext ic = new InitialContext();
//en esta parte es donde ponemos el Nombre
//de JNDI para que traiga el datasource
DataSource ds = (DataSource) ic.lookup("java:comp/env/conBasePrueba");
con = ds.getConnection();
Statement st = con.createStatement();
System.out.println("Se ha realizado con exito la conexión a MySQL");
//el resultSet es el encargado de traer los datos de la consulta
ResultSet rs = st.executeQuery("select * from roles");
while(rs.next()){
System.out.println(" "+rs.getString(1)+" "+rs.getString(2));
}
}catch (SQLException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}catch (NamingException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}finally {
try {
con.close();
System.out.println("Conexion Cerrada con Exito...");
}catch (SQLException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}
}
}
[/sourcecode]

Tenemos en nuestra base una tabla llamada “roles” la cual tiene 2 columnas, en el resultSet se almacena los datos obtenidos de la consulta y mientras haya datos en él se lo puede ir descomponiendo en columnas, con un while lo podemos ir recorriendo hasta llegar a la última fila…


Se debe hacer estas importaciones para que la aplicación pueda funcionar sin ningún problema aparte de las que ya aparecen al crear el nuevo proyecto.



[sourcecode language='java']
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.faces.FacesException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
[/sourcecode]


Tutorial creado por:


christmo


lunes, 7 de abril de 2008

Sociedad de la Información - Capitulo 1

El internet y las telecomunicaciones han aportado para que hoy podamos tener un mundo conectado y al alcance de nuevas tecnologías de información, estas han ayudado mucho al desarrollo de los países, especialmente a los llamados países en vías de desarrollo, con estas nuevas tecnologías se ha podido abrir las fronteras, y comenzar a conocer abiertamente diversas culturas, ideologías, estilos de vida diferentes, lo que nos ha llevado a comprender, entender y aprender de las distintas personas ajenas a nuestra realidad, todo esto ha logrado forjar una nueva perspectiva del mundo como lo conocemos, es muy clara y marcada la diferencia entre una persona que navega, aporta, dialoga por internet, que una persona que apenas esta entrando y conociendo todas estas nuevas tecnologías, cambia el modo de vivir.


Muchos podrán decir, que nuestro país no presta las facilidades para tener a todo un pueblo conectado con el mundo, y es verdad porque las tarifas que se cobran por un servicio de internet de pésima calidad son muy elevadas, pero a eso hay que apuntar para corregir, y hacer fuerza para que las personas que dirigen el país se den cuenta de que existen, muchas aplicaciones y recursos en la red, que son muy buenos y que van aportar para nuestro enriquecimiento intelectual, lo cual por culpa de deficientes políticas de estado en el área tecnológica nos las están privando y nos las estamos perdiendo.


La sociedad de la información nace de la red, está conformada por todas las personas conectadas a internet en todo el mundo, las cuales generan, crean, manipulan información, de una manera natural, por ejemplo en Blogs, Wikis, Foros, etc. Si de alguna manera esta información esta de manera informal, y es porque las personas aportan con experiencias, dudas, investigaciones, recopilándola y afinándola en los detalles a esta información se podría llegar a buenas publicaciones científicas.


Otro aspecto que a revolucionado el Internet y las nuevas tecnologías es el comercio, e-commerce o comercio electrónico ha sido una forma muy buena de expandir los negocios a nivel mundial, gracias a ello los productos han podido pasar de los fabricantes hasta el cliente final directamente, eliminando a los intermediarios, lo cual obviamente ha hecho que los productos de una manera se compren mucho más barato que comprarlo en una tienda física. El internet ha facilitado los negocios, un cliente que quiera comprar algún producto o materia prima en especial, ya no tiene que hacer un largo viaje a Europa o Asia para hacer el contrato, ahora con un solo clic se puede dar por firmada una negociación, lo cual beneficia mucho a las empresas con pocos recursos para que no hagan gastos innecesarios.


Estos son solo dos ejemplos para mostrar cuanta ha sido la influencia de la sociedad y de las nuevas tecnologías de información en nuestras vidas, pero como estos hay cientos de casos más que diariamente mueven millones de personas en todo el mundo, interactuando y compartiendo todas juntas información para lograr quizá sin querer un mundo más justo y preparado.