viernes, 22 de agosto de 2008

Un papel casi tan resistente como el Acero


De nuevo la nanotecnología consigue un material que hasta hace sólo unos años sería un complemento en alguna película de ciencia ficción. Se trata de un papel nanoestructurado, basado en celulosa procedente de la madera, que es más resistente que el hierro fundido y casi tan resistente como el acero.

Este sofisticado papel ha sido desarrollado por investigadores del Real Instituto Tecnológico de Estocolmo y las aplicaciones son múltiples, reforzar el papel convencional, producir cinta adherente ultrarresistente o utilizarse en cirugía para prótesis o dispositivos biocompatibles.

A pesar de su gran resistencia este nanopapel es producido a partir del mismo material biológico que el convencional: celulosa, el principal componente estructural de las células vegetales y el compuesto orgánico más abundante en la Naturaleza (aproximadamente el 50% de madera está compuesta por celulosa). Las cadenas de celulosa se unen unas a otras para producir fibras de unos 20 nanómetros de diámetro, unas 5000 veces más finas que un cabello humano.

El secreto radica en el proceso desarrollado por estos investigadores, cuidando la extracción para que conserve sus propiedades mediante enzimas que descomponen la pulpa de madera y luego se fragmenta mecánicamente obteniendo una suspensión acuosa de fibras de celulosa sin dañar. Una vez eliminada el agua, las fibras se pueden unir unas a otras para formar una malla o red gracias a puentes de hidrógeno formando leste "nanopapel".

Las pruebas de resistencia mecánica son sorprendentes, resistiendo 214 Megapascales (MPa), más fuerte que el hierro fundido (130 MPa) y casi tan resistente como el acero estructural (250 MPa). Comparándolo con el papel normal, cuya resistencia a la tensión es de 1 MPa, el resultado es sorprendente.

El secreto de esta resistencia no solamente reside en las fibras de celulosa si dañar, sino también en su disposición en forma de red. Esto es básico para que no resbalen las unas con las otras, como pasa en la naturaleza, y pierdan la fuerza que las une y disminuyendo mucho la resistencia del conjunto.


Fuente: novaciencia

jueves, 14 de agosto de 2008

Programando en Java – Mi primer aplicación

En este artículo haremos nuestra primera aplicación en java, con su respectiva explicación.

Veremos:

• Como crear y entender nuestro fichero fuente java

• Compilar el fichero fuente java en fichero bytecodes (.class)

• Ejecutar el programa


Vamos hacer un programa que imprima "Aprendiendo java"


Por ahora lo haremos sin IDE, pero para hacerlo más agradable estoy trabajando con Notepad++, que me permite elegir un lenguaje de programación, incluido java y automáticamente me colorea los comandos, muy cómodo!!!


Lo pueden descargar de aquí.

http://sourceforge.net/project/downloading.php?group_id=95717&use_mirror=osdn&filename=npp.5.0.3.Installer.exe&64180453

Unas ves descargadas procedemos a elegir el lenguaje.

Lenguaje >> java

Primer paso: Crear el fichero fuente


Crearemos un fichero fuente Java. Un fichero fuente contiene texto, escrito en el lenguaje de programación Java,

Entonces procedemos a escribir lo siguiente:


public class Ejemplo1

{

public static void main(String[] args)

{

System.out.println(“¡Programando en java!”);

}

}

Veamos paso a paso que hace cada línea.


1. Creamos una clase publica con el nombre de ejemplo1, java tiene una característica muy importante, cuando guardemos el programa tiene que ser con el nombre de la clase, es decir, ejemplo1.java


2. Todo lo encerrado en llave define el bloque de la clase


3. Definimos el método main(). Todos los programas en java deben de tener un método main() Al igual que C++. Cuando main() se ejecute no devolverá ningún valor, es por ello se antepone void. El método main() recibe como argumento args de tipo string, Los [] quiere decir que args es un array y contiene string


4. Se abre llave para delimitar el bloque main()


5. System es un clase que contiene un miembro out que a su vez contiene un método println, lo que esta entre comillas es el argumento que le pasamos encerrado entre paréntesis, y finalizamos con ;


6. Cerramos llaves del método main


7. Cerramos llaves de la clase ejmplo1


Guardamos el fichero fuente como Ejemplo1.java


Para evitar molestia lo he guardado en C:Practica java


Pero antes de compilar agregaremos una ruta a variable de entorno, para que podamos ejecutar todos los bin en cualquier directorio.


Propiedades a Mi Pc



Hacemos clic en variable de entorno y nos mostrara la siguiente imagen:


Donde dice valor de variable, agregamos la siguiente ruta

C:\Archivos de programa\Java\jdk1.5.0_16\bin

Aceptamos y estará agregada.



Segundo paso: Compilar el fichero fuente


Ahora, vamos a acceder al directorio donde esta el fichero fuente.


El compilador de Java, javac, toma nuestro fichero fuente Ejemplo1.java y lo traduce en instrucciones que la Máquina Virtual Java puede entender. El compilar pone estas instrucciones en un fichero de bytecodes. Ejemplo1.class


Como se muestra en la imagen es un archivo .class




Tercer paso: Ejecutar el programa



Para ejecutar el programa contenido en el fichero de bytecodes. La máquina virtual Java está implementada por un intérprete Java, java. Este intérprete toma nuestro fichero de bytecodes y lleva a cabo las instrucciones traduciéndolas a instrucciones que nuestro ordenador pude entender.


De esta forma imprime la cadena de caracteres “Programando en java!!!


En este caso nos olvidamos de Ejemplo1.java y solo escribimos Ejemplo1 que en realidad en el .class


Por ahora nos quedamos aquí.


lunes, 11 de agosto de 2008

Programando en Java: Herramientas y teoría

Una vez estudiado el artículo destinado a la introducción de Java, veremos las herramientas que necesitamos para programar.


En estos artículos nos basaremos en la edición J2SE, se denomina así al entorno de Sun relacionado con la creación de aplicaciones y applets en lenguaje Java.


Herramientas:

1. Entorno de ejecución Java (Java Runtime Environment, JRE)


Este es un paquete que su utilidad principal es traducir cualquier programa java, pero para poder ejecutar programas desarrollados en java, se necesita del JRE que esta disponible para una gran variedad de plataformas. Sin duda alguna este paquete ya esta instalado en nuestro PC


El JRE también incluye el llamado JVM (máquina virtual Java), que es el encargado de interpretar el código java. Es por esto que se dice que el lenguaje java es independiente de la plataforma, ya que el JRE al estar disponible para un gran cantidad de plataformas, es interpretado por una maquina virtual, es decir que la ejecución se hace en el JVM, no toma en cuenta en que Sistema operativo este ejecutándose el programa java, El JVM tiene todas las librerías y clases para poder correr el programa sin la intervención de archivos del sistema operativo, caso contrario sucede con lenguajes como visual basic.


Pero la JVM solo interpreta el archivo generado de la compilación, cuando un programa se compila se genera un archivo con la extensión .class, es este ultimo que interpreta la JVM, en los archivos .class se encuentran los bytecodes


Para el desarrollo de estos artículos ocuparemos la version jre1.6.0_06


2. Kit de desarrollo java (SDK)


El kit de desarrollo originalmente era conocido como Java Development Kit o JDK, y ahora es llamado SDK (Standard Development Kit, SDK).


El SDK es un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java.


En esta ocacion ocuparemos la version jdk1.5.0_16


Descarga


Ambos paquetes estan en esta direccion

http://java.sun.com/javase/downloads/index_jdk5.jsp


Java Runtime Environment (JRE) 5.0 Update 16


JDK 5.0 Update 16


Los paquetes se instalan como cualquier otro software.


Recuerden que la diferencia principal entre cada paquete es que el JRE ejecuta código java. y SDK es el encargado de la compilación.



El compilador


El compilador de java es llamado desde la línea de comandos como javac.exe y es el encargado de realizar el análisis de la sintaxis del código escrito en cualquier editor de texto plano o IDE (Entorno de Desarrollo Integrado), para realizar el compilado el archivo tiene que estar con la extensión .java después de compilar, se genera un archivo .class.


Ejemplo:


Imaginémonos que ya tenemos nuestro programa escrito, y lo hemos guardado como prueba.java, para proceder a la compilación hacemos esto:


Javac prueba.java


Con esa línea compilamos nuestro programa, al no haber ningún error automáticamente se genera otro archivo llamado prueba.class


El último archivo se ejecuta de la siguiente manera


Java prueba


Recuerden que para poder ejecutar el programa se necesita el JRE.


Para el otro artículo veremos, la escritura del código, compilación y ejecución.


Bajen los paquetes para continuar con estas prácticas.


Como el anterior tambien lo dejo en PDF

Saludos.


sábado, 9 de agosto de 2008

Programando en Java : Introduccion

Estamos de nuevo por estos lares, para compartir con ustedes lo que voy aprendiendo en un lenguaje que esta muy de moda, con eso de los móviles, navegadores y aparatos electrónicos. Si, si es java.

Por que no empezar con lo básico?
Casi todos los manuales están orientados a mostrar la historia, que es Programación Orientada a Objetos (POO) Y algo un poco más serio. Pero tampoco quiere decir que no explicare nada.

Antes de que otra cosa ocurra, existe otro tipo de lenguaje que es javaScript, y comentarles que java y JavaScript no tienen nada que ver, java es un lenguaje de programación desarrollado por SunMicrosytems que permite realizar todo tipo de aplicaciones, al contrario pasa con
JavaScript es un código que esta inmerso en páginas web que fue desarrollado por Netscape.

Características de Java
Los creadores de Java diseñaron el lenguaje con las siguientes ideas en mente:

- Simplicidad: Java está basado en C++, por lo que, si se ha programado en C o en C++, el Aprendizaje de la sintaxis de Java es casi inmediato. Sin embargo, se modificaron o eliminaron Ciertas características que en C++ son fuente de problemas, como la aritmética de punteros, las estructuras, etc. Además, no debemos preocuparnos de la gestión de la memoria. Java se Ocupa de descargar los objetos que no utilicemos. Es prácticamente imposible, por ejemplo, Escribir en una posición de memoria de otro programa.

- Orientacion a Objetos (OO): Cualquier lenguaje moderno está orientado a objetos, ya que su utilidad y ventajas con respecto a la programación tradicional orientada a procedimientos Ha sido ampliamente demostrada en los ´últimos 30 años.

- Distribuido: Java posee una extensa colección de herramientas que proporcionan la capacidad de trabajar en red de forma simple y robusta.

- Robusto: Como ya se comentó antes, Java permite escribir programas fiables con mucho menor Esfuerzo que en otros lenguajes. El compilador detecta problemas, como la sobre escritura de Posiciones de memoria, que en otros lenguajes aparecerían en tiempo de ejecución. Además, la eliminación del uso de punteros en elementos como cadenas de caracteres o arrays evita muchos problemas que son comunes (y difíciles de depurar) en C o C++.

- Seguro: Java está pensado para ser utilizado en red, por lo que se ha cuidado mucho la seguridad. En principio, se supone que es capaz de evitar que se rebase la pila del sistema en tiempo de ejecución, que se corrompa la memoria externa a un proceso, o que se pueda acceder a ficheros locales de un ordenador que está ejecutando un applet en su navegador, por ejemplo.

- Independencia de la plataforma: He aquí una de las características más importantes y conocidas de Java. Un programa en Java sigue la filosofía WORE (Write Once, Run Everywhere), es decir, que una vez escrito, puede ejecutarse en cualquier plataforma hardware con Cualquier sistema operativo sin recompilar el código.

¿Que quiere decir esto? En la compilación tradicional de programas escribimos nuestro código Fuente pensando en el sistema operativo en el que va a ejecutarse, ya que cada S.O. tiene sus propias peculiaridades, librerías a las que es necesario invocar, etc. No puede escribirse con el mismo código un programa para Linux y para Windows, aunque corran en la misma Máquina. Existe, por tanto, dependencia a nivel de código fuente.

Las ventajas frente a C++

Su sintaxis es similar a C y C++
No hay punteros (lo que le hace más seguro)
Totalmente orientado a objetos
Muy preparado para aplicaciones TCP/IP
Implementa excepciones de forma nativa
Es interpretado (lo que acelera su ejecución remota, aunque provoca que las aplicaciones Java se ejecuten más lentamente que las C++ en un ordenador local).
Permite multihilos
Admite firmas digitales
Tipos de datos y control de sintaxis más rigurosa
Es independiente de la plataforma

Por ahora es todo, estos conceptos los he sacado de diferentes fuentes, en la otra entrega ya veremos algo practico. Ya tengo escrito la mitad del próximo artículo así que estén atentos.

sábado, 2 de agosto de 2008

Introduccion a la teoria de Automatas, lenguajes y computacion

Introduccion a la teoria de Automatas, lenguajes y computacion
John E. Hopcroft
Jeffrey D. Ullman