Blogia
Jelid --> Informatica

Desarrollo

NetBeans 6.7

NetBeans 6.7

Un entorno integrado de desarrollo (IDE) es el punto de partida para el trabajo de muchos desarrolladores. Pero un IDE requiere de un lugar donde se pueda alojar su código fuente. NetBeans presentaba una brecha que ahora Sun comienza a cerrar con NetBeans 6.7 IDE, el cual integra soporte con el proyecto Kenai de la propia Sun.

Kenai es el sitio de hosting para colaboración para proyectos de software libre y open source. NetBeans 6.7 incluye también soporte mejorado para PHP y Apache Maven, de modo que desarrolladores tanto Java como PHP pueden usar el nuevo IDE.

Este esperado IDE de Sun llega a una semana de que la organización Eclipse, competitiva con NetBeans, liberara un importante release.

NetBeans ha tenido hasta hoy más de 23 millones de descargas y la gente de Sun espera que Kenai.com gane tracción rápidamente. Actualmente, el proyecto Kenai cuenta con 13.000 miembros en más de 132 países.

Actualmente los servicios de Kenai son sin cargo y se encuentran en etapa beta. Si bien NetBeans fue creado originalmente por Sun como IDE exclusivamente Java, soporta desarrollo PHP desde el release 6.5, liberado en 2008. En la versión 6.7 agregó nuevos dispositivos de soporte a este lenguaje. Al soportar PHPUnit, los desarrolladores pueden probar recursos PHP con facilidad. También tiene al plugin Selenium para la creación de tests Selenium usando PHP. Cuenta con compleción de código SQL en el editor PHP.

Selenium es un framework de prueba para aplicaciones Web, mientras que PHPUnit es un framework unitario de prueba para PHP.

Según un vocero de Sun, el conjunto PHP con NetBeans ha tenido más de 75.000 descargas en los últimos tres meses. Sin embargo, la versión 6.7 carece de soporte al venidero PHP 5.3, al cual sí soporta Eclipse Foundation con su PDT (PHP Developer Tools) versión 2.1, liberado hace algunos días. Sun promete lo propio para un próximo release de NetBeans.

En NetBeans 6.7 Sun amplía el soporte al proyecto Apache Maven. Si bien presente desde la versión 6.1, ese soporte es ahora incorporado a NetBeans. “El soporte de NetBeans a Maven es para su forma nativa. No hay empaquetadores ni otros elementos usando a Maven a través de NetBeans. Tenemos un editor POM (Project Object Modeler), soporte a Java EE, a la creación de Web services y consumo con compleción mejorada de código para parámetros Maven,” agregó el vocero.

Maven es una herramienta de administración de proyectos de software desarrollada por Apache Software Foundation (ASF).

Para ver la todos los elementos que fueron mejorados; según Sun Aquí estan todos los features.

Entre las mejoras en esta version se encuentran:

  • Maven
    • Mejora en el code completion de los parámetros de los plugins de Maven.
    • Profling de aplicaciones Maven J2EE.
    • Soporte para la creación y consumo de Servicios Web.
  • Mejoras de Performance
    • Permite activar solo las funcionaliades que vamos a utilizar, permitiendo asi una carga mas rápida ("IDE ergonómico").
  • Mejoras en el auto-diagnostico
    • Las mejoras en la herramienta de auto-diagnostico permiten que netbeans haga profiling de su propia performance, pudiendo asi enviar el snapshot del profiler a los desarrolladores para un mejor analisis.
  • Profiler
    • El Heapwalker permite queries OQL para un mejor analisis del dump.
  • Mejoras en C++
    • Mejoras en el asistente de código C++
    • Soporte de librerias Qt
  • Mejoras en el look & feel de Mac OSX

OSUM

Es un área de encuentro entre profesionales de las tecnologias que patrocina Sun (java, mysql, netbeans, openoffice, etc.), recientemente el buen amigo NeMux me invito a formar parte de un grupo que el mismo formo dentro de este ’awesome’ (segun su pronunciación en ingles) super interesante y que te pone en contacto con muchas actividades, no solo de indole internacional, sino también todas aquellas que en este grupo de ESCOM dan a conocer a través de este medio. Y aunque yo sea estudiante de UPIICSA, este es uno de las cosas que mas me ha interesado recientemente.

awesome

También, claro esta, que ya tengo mi pagina personal en la cual podran ver información que ire poco a poco poniendo en estas secciones que nos da OSUM y todas las oportunidades que podemos aprevachar al tener contacto con profesionales y estudiantes a nivel internacional.

http://osum.sun.com/profile/EisenheimJelid Ahi esta mi perfil xD

Especial saludo y agradecimiento al buen amigo NeMux. Espero que se metan a ver los enlaces de OSUM para darse un quemón, pero bueno es solo una noticia que me parecio relevante. Hasta la proxima.

Enfoque de Sistemas

El inicio del final, 8° semestre en la upiicsa con todas las ganas de terminar y odiar a la escuela por frustrar mis planes, pero total, seguimos con mas cosas interesantes. El dia de hoy, después de mucho hablare un poco del enfoque de sistemas(o enfoque sistemico).

Apararentemente desde hace varios siglos, en la formulación y estandarización de modelos y procedimientos que permitieran seguir pasos en la tarea de investigación (básicamente estructurar la curiosadad humana por lo que no puede entender) ha sido la premisa de algunos investigadores, o mejor dicho, el coco. Pues al existir una serie de procedimientos empiricos para cada rama de la investigación y mucho de ello se hacia a sentimiento(en forma artistica) complementando con actividades artesanales en la creación de los proyectos, y ademas de la poca difusión del conocimiento no se podia estructurar bien.

Hasta mediados del siglo XX gracias a las guerras mundiales se percataron de las similitudes de los procesos biologicos y artificiales, de los procedimientos de investigación se conjuntaban en "pequeñas funciones" que forman un proceso "complejo". De estas simples ideas se va estructurando una filosofia de sistemas, de pequeñas partes que sirven para pequeñas tareas pero que en conjunto van creando una estructura cada vez mas compleja.

Esta filosofia, enfoque, o como se le quiera llamar, es en principio el desmenusar cada parte de un sistema complejo o de un ente biologico en sub-partes que lo van conformando. Este tipo de enfoque se va adaptando a cada area que se destina su uso, en procesos simples que tienen tres principales puntos: entrada, proceso, salida. Cada proceso consta de estas tres partes se van creando poco a poco un sistema completo, un ejemplo: tramites del registro civil, con cierta cantidad de procesos y un marco legal que soporta estos tramites, se logra crear un sistema, que precisamente no tiene que ser con el uso de tecnolgias de la computación. Pero esa area se aplica de forma tan determinante que se ha acostumbrado a solo decirle ’area de sistemas’ cuando el termino ’area’ implicaria a toda la organización por ser un mismo ’sistema’ toda la estructura organizacional.

sistemas  Entonces, como se intenta demostrar, este enfoque no es propio de la computación o de la informática, sin embargo, es el aspecto de la vida que tiene mas profundizado y estructurado el enfoque de sistemas que poco a poco va llevando a todos los campos que implica la informática estos enfoques tan usados y funcionales.

Para entender más(y porque no me agrada la idea del copy-paste) aquí les dejo un par de enlaces comunes con los que podran profundizar en el enfoque, es decir, sacar la receta de cocina.

Daedalus, Monografias, Wiki

Problematica de Programadores

Saludos, y seguimos hechandole ganas a poner información importante al blog, hoy algo de lenguajes en general y la problematica de los programadores actuales.

Hace ya unos dias, tuve una corta pero acalorada platica con un amigo de la escuela. Al parecer le paso algo similar que conmigo, cuando empece a mudarme del clasico Turbo C++ 3.1 de Borland a algunos de los entornos integrados de Winows como VisualC++, DevC++, Borland C++, y otros tantos que existen, pero el problema no radica en saber el lenguaje o no, sino que en este punto muchas de las funciones de ventanas y cajas de texto ya existen y el problema se convierte no en saber un lenguaje, sino en conocer los argumentos y forma de usar esos objetos, funciones y librerias que ya existen para poder desarrollar rapidamente. Pero para mi se convirtio en un calvario al tratar de comprender el funcionamiento de cada nuevo componente.

Pero escribo este articulo, no para criticar el avance o el "volver inutil" de los desarrolladores, mas bien para tratar de encontrar un camino entre la multitud gigantesca de lenguajes de programacion que existen. Si bien tenemos de todos los sabores, como; Programacion web, sistemas distribuidos, sistemas monousuarios, cliente-servidor entre otros. Y a todo esto viene la disyuntiva de enfocarnos a un lenguaje o tematica de programacion.

Aun así, si observamos las similitudes que existen entre la programación orientada a objetos que se usa en Turbo C++ 3.1 de Borland, contra java, phyton, php, javascript, c#, nos podremos percatar que entonces tengo razón y con conocer un lenguaje orientado a objetos como lo es C, nos da el claro panorama de que se necesita saber almenos uno. El que ustedes decidan estara bien, y entonces ¿porque este ariculo?

Vamos para haya, si bien se parecen mucho la dificultad que enfrenta un desarrollador frente a un nuevo lenguaje que tiene una estructura orientado a objetos es la de conocer y saber manejar todas sus funciones que ya existen dentro de ese lenguaje en especial, conocer a la perfección cada función con sus argumentos que tu no has creado pero que funcionan tan bien o mejor que como tu mismo las hubieras hecho. Ahora, lo que quiero hacer saber y recalcar es que si tu conoces un lenguaje de programación no te hes dificil aprender uno nuevo, simplemente tedioso y te haras valer de manuales especializados o incluso una biblioteca de ejemplos para conocer la forma de enviar correctamente los argumentos.

Ese es el nuevo reto de los programadores hoy día, porque para aquellos que hacen análisis y planeación de proyectos quiza lo mas dificil sera adaptar nuevas tendencias que son casi nulas, a sus procesos ya planeados de análisis y planeaciones.

o, ¿Ustedes que opinan? Yo creo que la programación se volvera tan secilla que nunca conoceran que fue el ensamblador a pesar de usarlo a diario.

JEE

JavaHa sido un poco frustrante, pero que puedo decir, el deber me llama. He iniciado mi penultimo semestre de la carrera y con el mi servicio social(requisito indispensable para poder titularme) razón de sobra que el tiempo no me alcanza para atender como se debe este Blog.

Pero bien, a lo que nos importa. Con anterioridad habran observado que hablamos de web’s dinamicas, pues resulta que como buen programador he empezado a manejar bien a Java en red, o como Sun lo llama JEE(Conste, el J2EE es solo mercadotecnia y hacia referencia a la version de la maquina virtual 1.2 que ahora se encuentra ya en la 1.6) esta herramienta derivada de la clase javax.servlet es un medio importante para solventar muchas de las deficiencias que conlleva el desarrollo en PHP como lengua CGI para amplicaciones que corren del lado del servidor. JEE es una alternativa de Java para abarcar este segmento que si bien esta competido y varias empresas pequeñas y medianas aqui en México tengo el conocimiento de que ocupan PHP para sus web’s dinamicas. Pero, ¿que diferencia a java de otros? pues que es independiente de la Plataforma, ovbio.

Es decir, podemos hacer lo mismo que hacemos con PHP pero con Java, sin importar en que servidor este instalado siempre y cuando pueda atender llamadas de requirimiento HTTP. Entonces, aquel desarrollo que escribamos en un Linux igual correra sobre un Windows, ¿que marca la diferencia? Pues la verdadera marca queda en entre las versiones de la maquina virtual y sin duda el servidor que estemos utilizando. Algunos de los que podemos usar: Tomcat, GlassFish, Coldfusion, JSWDK, Jakarta, entre otros muchos. Pero para aquellos que estan mas adentrados en el asunto de los servidores sabran que sin duda la unica diferencia entre la estructura de los servidores Web son el formato de sus archivos de configuración, y los nombres que manejandentro del sistema.

Ahora, regresando a servlets, es simple código Java que se ejecuta del lado del servidor a diferencia de un applet que es lo mismo, pero se ejecuta del lado del cliente. Bueno, no podemos decir que son lo mismo pues son derivados de diferentes clases pero siguen siendo código Java en red, y mientras un applet puede ser suministrado por cualquier servidor Web(Cherokee, Apache, IIS, etc.) un servlet tiene que ser ejecutado en el servidor, requiriendo esto tener al menos una maquina virtual en el servidor. En alguna otra entrega les dire como instalar cualquiera de estos servidores mencionados.

Pero bueno, las ventajas mencionadas hasta ahora pueden hechar por tierra con la clara consigna de que el código intrepretado(Java y Phyton) es considerablemente mas lento al momento de cargarse. Entonces, un servlet tarda en cargarse mientras un script escrito en PHP es mucho mas rápido, pero nunca se menciona esto, que un script en PHP se carga con cada llama, considerando una acceso al servidor de 20 solicitudes por minuto son 20 cargas por parte del servidor para que pueda atender esa demanda, sin embargo, un servlet se carga una sola vez y quiza con a primera solicitud sera lento, pero un servlet se mantiene en memoria como un hilo(o Thread) mientras siga siendo solicitado, dando igual una posibilidad de poder descargarlo de la memoria x minutos despues de recibir la ultima solicitud expandiendo considerablemente su rendimiento pues no se tiene que cargar con cada llama. es decir, solo se carga una vez y atiende un grupo de llamadas.

Bien, ya revizamos algo de lo que es un servlet y queda en duda aun que se puede hacer o en que consiste una aplicación web dejandoles este ejemplo claro aunque hecho en PHP, nos podemos dar cuenta del potencial que se tendria si estuviera hecho en Java. http://eyeos.org

Les aseguro mas entregas, desde como instalar un servidor para aplicaciones web escritas en Java hasta su primer servlet. Hasta pronto.

CakePHP

CakePHP

Y seguimos con los Framework’s. Esta plantilla de trabajo agiliza mucho la creación de un sitio web. Pronto les enseñare algunas cosas sencillitas para realizar con esta plantilla, esta tomando fuerza principalmente entre las pequeñas empresas que se dedican a crear sitios Web para algunas empresas. La idea inicial es poder tener todos aquellos pequeños scripts para que se vea dinamica nuestra Web, como la fecha, temas personalizables, noticias, fuentes rss, etc.

Pero, ¿qué es un sitio Web dinamico?. Pues para no apurar mucho principalmente diriamos que un sitio Web dinamico es uno que no es estatico. Pero dejando de lado las simplonadas, un website dinamico es aquel que cambia y es personalizable. Al referirnos ’cambia’, es decir, que no requerimos de alterar código css, html, o inclusive algun script para actualizar la pagina de inicio o alguna de las secciones del site. Esto se logra principalmente através de código XML, o bases de datos.

Un procesador de hipertexto no muetra su código cuando es solicitado, lo que hace es enviar una respuesta con el código HTML requerido. Por ejemplo una web dinamica PHP Nuke, al fijarse en la barra de navejación podemos ver algo así: index.php. Este es una archivo guardado en un servidor con un procesador de hipertexto que bien podria ser ASP(Microsoft), JSP(Sun) o PHP(SL) y existen algunos otros que también son software libre, que  contiene código de un lenguaje de programación interpretado (script) y es ejecutado por algunos de los procesadores antes mencionados, después de saber que dice el script normalmente regresa código HTML, CSS, Javascript o algún otro lenguaje de Cliente. Pero si por ejemplo, queremos ver el código de la pagina de inicio de PHP Nuke no veremos nigun que es donde se encierra el código, porque el servidor oculta este código, dado que el cliente al no tener el procesador no sabe como interpretarlo. Pero este código es muy similar al lenguaje C, por lo que tenemos gran poder en PHP.

Al mencionar que una site es personalizable, nos referimos a que puede saber (por varios metodos: ip’s o cookies principalmente) que maquina o usuario es el que esta accediendo a nuestro site, por lo que le podemos ofrecerle cambiar el color de las paginas sin alterar el sitio, dado que el script PHP nos dota de herramientas suficientes para modificar el sitio en apariencia y en contenido dependiendo las variables que establezcamos, que bien podrian ser generadas por un cliente que visite nuestro site.

Pero para ya no aburrirlos por ahora hablando de PHP, mencionar que la plantilla Cake nos facilita el trabajo que hay que hacer para escribir codigo para fuciones especificas. Al ahorrar tiempo y esfuerzo, las empresas que se dedican a realizar website’s pueden desarrollar en menor tiempo marcando una clara ventaja competitiva. Pero para usuarios modestos y quiza principiantes, nos proporciona una herramienta que con la cual podremos aprender y sobre todo aportar a Internet un website mas, el nuestro en relativo poco tiempo.

Pero eso sera tema de otro mensaje, pero por el momento les invito a probar CakePHP y para aquellos novatos en el ambito de los website’s les preparare algunos ejemplos y enlaces en donde podran empezar a aprender mas y mas de este mundo

Ruby+Rails

Ruby+Rails

Ruby es un lenguaje de programación interpretado que surge en 1995, gracias a su creador Yukihiro Matusmoto que combina e inspira en otros lenguajes como Phyton y Perl. La última versión estable salió el 26 de Diciembre de 2007 como Ruby 1.9.0.

Pero Rails o Ruby on Rails, se convierte en un framework o plantilla de trabajo para agilizar el desarrollo en este lenguaje, su última versión estable fue Mayo 31 de este año como Ralis 2.1. La mayoría de los programadores de Ruby aprecian este framework, porque agiliza y minimiza el tiempo de desarrollo de una aplicación de Ruby. Para aquellos novatos (como yo) deberíamos empezar por lo más complicado e irnos por las piedritas y al final desarrollar más rápido con Rails.

Este y otro tipo de frameworks están convirtiendo la forma en que programamos hoy en día a través de lenguajes de programación interpretados y otros ambientes de desarrollo cada vez más completos modificando la programación con lenguajes compilados. Pero esto va para bien, pues se agiliza el desarrollo permitiéndonos crear sitios Web o aplicaciones de escritorio cada vez más complejos en menor tiempo y no atarearnos con pergaminos de líneas de código interminables y al final saliendo de control porque ya tenemos mas de 20 métodos por cada objeto que hemos creado.

Espero les ayude a entrar a este mundo cada vez mas competido y complejo que nos va absorbiendo al mundo del Software Libre.