Daniel Maldonado

domingo, 30 de septiembre de 2007

Retomando AWK y algunos enlaces interesantes

Nuevamente retomando este lenguaje de programación AWK les quería dejar algunos enlaces que utilicé para introducirme más en este tema, son muy básicos y para la gente que le gusta programar y es utiliza la plataforma GNU/Linux les va a venir muy bien conocerlos y tenerlos en la mira.

Redoval.com
Club.Telepolis.com
Linux.org.uy

Ojala que lo disfruten a estos link y que aprovechen esta utilidad, tutoriales, documentos, etc, totalmente libres para cualquier persona.

viernes, 28 de septiembre de 2007

Arquitectura de Programación en 3 Capas

Este tipo de arquitectura en los software es la que esta siendo día a día mas conocida. La programación por capas es un estilo de programación en la que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño, un ejemplo básico de esto es separar la capa de datos de la capa de presentación al usuario.

La ventaja principal de este estilo, es que el desarrollo se puede llevar a cabo en varios niveles y en caso de algún cambio sólo se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación seria: Modelo de interconexión de sistemas abiertos

Permite distribuir el trabajo de creación de una aplicación por niveles, de este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles, simplemente es necesario conocer la API que existe entre niveles.

En el diseño de sistemas informáticos actual se suele usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten).

El diseño más en boga actualmente es el diseño en tres niveles (o en tres capas).

Describiendo los niveles que aparecen en la figura tenemos:

1.- Capa de presentación: es la que ve el usuario (hay quien la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario dando un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de negocio.

2.- Capa de negocio: es donde residen los programas que se ejecutan, recibiendo las peticiones del usuario y enviando las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) pues es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él.

3.- Capa de datos: es donde residen los datos. Está formada por uno o más gestor de bases de datos que realiza todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

lunes, 24 de septiembre de 2007

Netbeans 6.0 – El IDE para nosotros

Acabo de ser calificado para el NetBeans IDE 6.0 Community Acceptance Testing program (NetCAT) y antes de dar algún feedback, pensé... en compartir algo de información sobre NetBeans 6.0. Que es lo que se viene y como éste ha mejorado y como puede llegar a convertirse en el IDE para todos los lenguajes de programación

Cualquier programador o programadora podrá decirte que tanto ama a su IDE, ¿cuanto tiempo de sus vidas han pasado mirando la pantalla de su IDE?, y cuanto el IDE es parte de su exploración creativa (programación)?. En estos días con tanto lenguajes de programación, un desarrollador en mi organización utiliza por lo menos tres IDEs o editores WYSIWYG. Usamos Zend, NetBeans, Visual Studio 6, VS2005, Dreamweaver, Eclipse, MS Expression Web, Anjuta, Kdevelop... y aun así estoy seguro que estoy olvidando alguno por allí. Ustedes ven a lo que me refiero cuando digo que hay trillones de IDEs.

Desde entonces, he estado programando muchísimo en Java, NetBeans ha estado conmigo desde la versión 4 y siempre he creído que este IDE promete. Inicialmente pensaba que Eclipse era mejor. Pero creo que NetBeans 5.5 fue impresionante y la 6.0 va a aplastar a muchos otros IDEs que andan por allí. (...), NetBeans 6.0 no es solo un IDE para Java es muchísimo mas.... es una plataforma también, pero yo lo veo como un IDE para muchos lenguajes. Las plantillas para construir blogs de Ruby on Rails es solo un ejemplo de que tanto el equipo de NetBeans 6.0 esta intentando convertirlo en un all-language IDE.

Algunas de las nuevas características de Netbeans 6.0 son las siguientes:

1.) Mejoras en el Code Editor:
a.) Completación de Código, mas rápido e inteligente – Mostrado de opciones & métodos mas rápido y mejorado.
b.) Highlighting – variables comunes ahora son resaltadas

2.) Soporte de Lenguaje
a.) Soporte de JRuby/Ruby/Ruby on Rails – Excelente plantilla, auto-estructuración de carpetas. Muy buen depurador de Ruby. Una linda edición de archivos y highlighting RHTML.
b.) Mejorada la edición de Javascript y CSS -A pesar de que Dreamweaver es mejor, éste ha mejorado mucho a comparación de versiones anteriores.
c.) Soporte de lenguaje Schielmann – Es una tecnología que permite a cualquiera agregar soporte a nuevos lenguajes. Plugins para Php y Jython se encuentran disponibles.
d.) Soporte de C/C++: Increíblemente mejorado el soporte para programar en C/C++. Las librerías son fácilmente accedidas y también tiene una muy buena edición de código

3.) Interfaz Gráfica de Usuario (GUI) Swing:
a.) Aplicaciones de Base de Datos Swing – Probablemente la característica mas impresionante de NetBeans 6.0. Genial para hacer RAD para gente que quiere realizar rápidamente una aplicación de base de datos.
b.) Beans binding: Ahora puedes enmarcar beans y controlar su comportamiento desde la GUI. No necesitas el BDK (Beans Developement Kit) como un GUI para ver la edición del comportamiento de las beans y sus propiedades.
c.) Swing Application Framework (JSR 296): Espectacular soporte de aplicación de estado guardado. El estado de la aplicación es guardado por defecto. No necesitas preocuparte por el tamaño de la ventana de tu aplicación. Esta volverá con el mismo tamaño que tenia la ultima ves que la usaste, y para todo eso no se necesita escribir ni una sola linea de código, NetBeans lo hace por vos.

4.) Profiling:
a.) Profiler Integrado- La herramienta de profiling con la que Netbeans es elegante y perfecto. Tal ves puedas compararla con LaodRunner, pero este hace mas cosas en forma perfecta.

5.) Web & Java EE:
a.) Mejorado Visual Web (JSF): Después de que Sun decidiese que Studio Creator será netBeans, verás que no hay mejor herramienta para hacer aplicaciones web JSF que netBeans 6.0. Simplemente arrastra y tira los componentes, escribe algo de código de lógica de negocios como EJBs y tendrás una aplicación web bien hecha.
b.) Soporte para AJAX-habilitado componentes JSF.
c.) Muy buen editor de Javascript, con depurador de error, no visto en ningún otro editor WYSISWYG. Soporte CSS ha sido mejorado.
d.) Brillante administrador de flujo de aplicación Web. Ahora puedes realizar buenos diseños para páginas de flujo en netBeans 6.0.

6.) Soporte Java Mobility:
a.) Ningún otro IDE J2ME/Java ME tiene la facilidad de uso y el rápido drag-drop MIDlet developement como el de netBeans. Rápido y con características enriquecidas. Ahora puedes hace diagramas de flujo. Diseñar aplicaciones móviles nunca fue mas fácil.
b.) Soporte para APIs: JSR-172 stub compiler, muy buen soporte JSR-226 SVG
c.) Constructor de Juegos: fácil empaquetado permite buenos diseños de pantallas de juego, y sprites.

7.) SOA:
a.) Editor Gráfico WSDL: ¿No amamos todos la interoperabilidad de documentos WSDL? Pero odiamos el binding. NetBeans tiene un excelente herramienta visual para hacer todo el binding por vos.
b.) Edición fácil de transformación en editor XSLT.
c.) Mejorada interoperabilidad con .Net a través de WSIT.

8.) UML:
a.) Generación de código mejorado: Menor diferencia en tus diseños y códigos.
b.) ¿No aman los arquitectos el diseño de diagramas? Hacerlo desde el IDE es solo un favor. Brillantes mejoras en la edición de UML, a pesar de que algunas herramientas hace un mejor trabajo, es aun una gran característica para tener en tu editor.

9.) Miscelanea:
a.) Mejorado dibujo en la plataforma del API.
b.) Un nuevo lexer parece hacer de NetBeans un aún mas rápido editor de código.

Escrito originalmente por Saptarshi Purkayastha.
Gracias por la traducción Alejandro Castro y por compartir esta información con todos.
Articulo Completo: http://sunnytalkstech.blogspot.com/2007/09/netbeans-60-ide-to-own.html

domingo, 23 de septiembre de 2007

AWK

Con el afán de seguir investigando lenguajes de programación, la implementación, su uso y otras característica de los mismo nos encontramos con AWK y que rápidamente les cuento que es un Lenguaje de Programación desañadas para procesar Bases de Datos en texto.

El nombre AWK deriva de los apellidos de los autores del lenguaje: Alfred Aho, Peter Weinberger, y Brian Kernighan. awk

El poder, brevedad y limitaciones de los programas de AWK y los guiones de sed inspiraron a Larry Wall a escribir Perl. Debido a su densa notación, todos estos lenguajes son frecuentemente usados para escribir programas de una línea.

Como otra reseña a favor de AWK, fue una de las primeras herramientas en aparecer en el universo UNIX y gano popularidad como una manera de añadir funcionalidad a las famosas tuberías de Unix.

Este lenguaje esta influido por C y shell entre otros.

martes, 18 de septiembre de 2007

Ranking de lenguajes de programación

Desde hace tiempo vengo siguiendo TIOBE Software un excelente site de programación y que en esta presentación quería mostrarles el ranking de lenguajes de programación que ellos exponen.

En este informe quería destacar que el lenguaje mas usado para ellos es Java, C y Visual Basic. Otra de las tantas particularidades vemos que ascenso de Ruby, D y la sorpresa para todos Lua!

Este sistema se esta modificando periódicamente y de alguna manera nos sirve como para conocer lo que se esta utilizando actualmente en el mercado de la programación.

Por último un dato curioso, de la plataforma .NET solo aparece el lenguaje C# dentro de los 20 mas utilizados. Un punto bastante importante

Ahora para ustedes les pregunto, Cuales es tu Ranking de lenguajes ya sea que utilizas o que te gustan?

lunes, 17 de septiembre de 2007

Bases de datos Orientas a Objetos

Una Base de Datos Orientada a Objetos almacena objetos. Los datos se almacenan junto a los métodos que procesan dichos datos.

Las bases de datos OO toman la idea de bases inteligentes de datos a su conclusión lógica. No se tiene acceso a dato alguno si no es a través de los métodos almacenados en la base de datos. Estos métodos están listos para entrar en acción a momento en que reciben una solicitud. Los datos de todos los objetos quedan entonces encapsulados.

El objetivo principal es el encapsulado, que permite almacenar datos y métodos. Los datos solo pueden utilizarse mediante los métodos, los datos están diseñados para ser utilizados por esos métodos.

Los objetos son activos, las solicitudes hacen que los objetos ejecuten sus métodos, algunos pueden ser complejos como aquellos que utilizan un motor de inferencias.

Las clases son diseñadas para una alta utilización y son rara vez modificadas, pudiendo ser reorganizadas sin modificar su forma de uso.

Las estructuras de datos son complejas, esto es transparente al usuario, debido a que estos están encapsulados.

Los datos están ligados entre si, de modo que los métodos logren un mejor entendimiento.

No se busca obtener datos no redundantes, sino métodos no redundantes utilizando el encapsulado y la herencia.

Las solicitudes al objeto provocan la ejecución de sus métodos.

domingo, 16 de septiembre de 2007

Bases de datos relacionales

Una Base de Datos Relacional es una Base de Datos en donde todos los datos visibles al usuario están organizados estrictamente como tablas de valores, y en donde todas las operaciones de la base de datos operan sobre estas tablas.

Estas Bases de Datos son percibidas por los usuarios como una colección de relaciones normalizadas de diversos grados que varían con el tiempo.

El modelo relacional representa un sistema de Bases de Datos en un nivel de abstracción un tanto alejado de los detalles de la máquina subyacente, de la misma manera como, por ejemplo, un lenguaje del tipo de PL/1 representa un sistema de programación con un nivel de abstracción un tanto alejado de los detalles de la máquina subyacente. De hecho, el modelo relacional puede considerarse como un lenguaje de programación mas bien abstracto, orientado de manera específica hacia las aplicaciones de bases de datos.

En términos tradicionales una relación se asemeja a un archivo, una tupla a un registro, y un atributo a un campo. Pero estas correspondencias son aproximadas, en el mejor de los casos. Una relación no debe considerarase como ``solo un archivo'', sino mas bien como un archivo disciplinado, siendo el resultado de esta disciplina una simplificación considerable de las estructuras de datos con las cuales debe interactuar el usuario, lo cual a su vez simplifca los operadores requeridos para manejar esas estructuras.

Características principales de los ``archivos'' relacionales:

* Cada ``archivo'' contiene solo un tipo de registros

* Los campos no tienen un orden específico, de izquierda a derecha

* Los registros no tienen un orden específico, de arriba hacia abajo

* Cada campo tiene un solo valor

* Los registros poseen un campo identificador único (o combinación de campos) llamado clave primaria


Articulo completo fismat

miércoles, 12 de septiembre de 2007

Los modelos de Bases de Datos

Las Bases de Datos poseen muchas clasificaciones, entre ellas tenemos la clasificación del modelo de administración de Bases de Datos.

Un Modelo de Datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.

Algunos modelos con frecuencia utilizados en las bases de datos:

  • Bases de Datos Jerarquica
  • Bases de Datos de Red
  • Bases de Datos Relacional
  • Bases de Datos Orientada a Objetos
  • Bases de Datos Documentales
  • Bases de Datos Deductivas

Todos estos conceptos entraremos en detalle mas adelante mostrando ejemplos, estructuras y demas para poder entender mas rápido.

Gracias a Wikipedia

Primera "Ráfaga" de código en C++

Este es el nombre del post que navegando encontre en Dogguie, un site muy completo e interesante.

Justamente como dice el nombre del post, Primera Ráfaga de código en C++ y es a donde nos podemos descargar una serie de código fuentes listos para compilar y que de hecho estan dispuestos a compartir para todos.

Bueno les dejo en enlace para que los puedan ver, compilar, ejecutar y por que no modificarlos y armar con ellos sus propios programitas

Sin más que decir, aquí la primera lista de códigos para descargar:

  1. Cambia valores entre dos variables
  2. Muestra los n primeros números enteros
  3. Muestra los n primeros múltiplos de 4
  4. Suma de cubos de n números
  5. Nota promedio de varios alumnos
  6. Área de un triángulo
  7. Calculadora con operaciones principales
  8. Compra de artículos / impuesto / precio de venta
  9. Cuenta enteros positivos de una lista de números
  10. Cuenta números menores que 15, mayores que 50 y entre 25 y 45

viernes, 7 de septiembre de 2007

Descarga algunos codigos K de C++

En este último tiempo me comprometí a ver algo de C++, sintaxis, estructuras, etc, cosa que antes no habia podido hacer y que era algo pendiente por ver.

Al principio encontré mucha documentación en Internet como practicamente todas las cosas, asi que era dificil ver con cual de todas comenzaría y en ese momento me acorde que uno de los primeros Post escritos de C++ eran de unos Videos de C++ y la forma de aprender interactivamente.

Efectivamente comencé a mirarlos, realizar las prácticas y dejenme decirles que estan excelentes, de una manera rápida y sencilla van a poder aprender a programar en C++ o por lo menos van a entrar en este mundo y en este lenguaje.

De los pequeños programas que realice con esos videos les dejo los codigos fuentes para que los descarguen, lo compilen, lo ejecuten y puedan estudiar un poco El Codigo K que hay adentro. Descargar Aqui

Y para que lo tengan como complemento y aquellos que utilizar alguna distribución de GNU/Linux como yo les dejo este Tutorial muy básico que les va a enseñar a manejarse con el compilador g++. Descargar Aqui

Lo único que me queda por decirles es que disfruten el codigo, si tienen alguno nos dejen su enlace así seguimos juntando mas código, animense a programar en C++ que realmente es un excelente lenguaje de programación, muy standart, ya consolidado y muy potente.

jueves, 6 de septiembre de 2007

Bjarne Stroustrup, el padre de C++

Nuevamente esta sección de programadores nos hacerca a Bjarne Stroustrup, quien fue la persona que creo C++, los dejo con su pequeña historia así lo conocemos...

Bjarne Stroustrup nacido el 11 de junio de 1950 en Aarhus, Dinamarca es un científico de la computación y Catedrático de ciencias de la computación en la Universidad A&M de Texas. Ha destacado por desarrollar el lenguaje de programación C++.

Stroustrup, citando sus palabras, "inventé C++, escribiendo sus primeras definiciones, y produciendo la primera implementación... elegí y formulé los criterios de diseño para C++, confeccioné también sus principales utilidades, y fui responsable de elaborar extensas proposiciones en el comité de estándares de C++." Stroustrup escribió también el considerado por muchos como el texto introductorio de referencia para el lenguaje, su título original es The C++ Programming Language, el cuál alcanza actualmente su tercera edición. Existe una versión especial editada en 2000, aunque no figuran en ella cambios significativos respecto al original. Este último texto ha sido revisado tanto para reflejar la evolución del lenguaje, como el trabajo del comité de estándares de C++.

Stroustrup es un cand. scient. (el equivalente danés a un máster) en matemáticas y ciencias de la computación (1979) por la Universidad de Aarhus, Dinamarca, y Doctor en ciencias de la computación (1979) por la Universidad de Cambridge, Inglaterra. Anteriormente trabajó a la cabeza del departamento de Investigación en Programación de los laboratorios Bell de AT&T, desde su creación hasta finales de 2002.

Sin dudas algunas Bjarne Stroustrup fue un pilar muy importante en este lenguaje de programación y en el pensamiento de esa época, muchisimos lenguajes de programación se basaron en esta filosofía y son una rama de C++, se le acreditaron premios y logros de todo tipos, tanto por la ciencia, profesor y por supuesto por su gran e inolvidable invensión C++


Gracias a Wikipedia

miércoles, 5 de septiembre de 2007

C++ la extensión de C

El C++ es un lenguaje de programación, diseñado a mediados de los años 1980, por Bjarne Stroustrup, como extensión del lenguaje de programación C.

Se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: la programación estructurada, la programación genérica y la programación orientada a objetos.

Las principales características del C++ son el soporte para programación orientada a objetos y el soporte de plantillas o programación genérica (templates).

C++ está considerado por muchos como el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel, sin embargo es a su vez uno de los que menos automatismos trae (obliga a hacerlo casi todo manualmente al igual que C) lo que "dificulta" mucho su aprendizaje.

El nombre C++ fue propuesto por Rick Masciatti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.

fuente: Wikipedia

lunes, 3 de septiembre de 2007

Programación en C++ con Anjuta y Glade

Navegando un poco por Barrapunto, entcontre este post de programación que de alguna manera nos enlaza a un aweb y poder ver la programación en C++ con Anjuta y Glade.

Les comento un poco a ustedes para los que no saben que es esto de Anjuta y Glade.

Primero estos conceptos corresponden al mundo GNU/Linux y dentro del mismo a los que les gusta Gnome.

Anjuta como vimos en el posta anterior es un IDE de programación especialmente para realizar aplicaciones en C++

Glade nos permite realizar interfaces de usuarios, formularios, etc y luego transformarlas en clases para ser usada justamente con C++

Bueno el titurial se los dejo aqui

Tambien les dejo un pequeño tutorial que publicamos hace tiempo en LaRepaWeb, tratando los mismos temas

Para aquellos que les gusta mas la interface gráfica KDE nuevamente para GNU/Linux como a mi, obviamente tienen una alternativa en cuanto a IDE y desarrollo de Interfaces gráficas que es el tan conocido KDevelop, con ella podrán utilizar un excelente IDE para muchisimos lenguajes...

¿Qué son los IDE de Programación?

A la hora de crear arte hecho codigo fuente, muchas veces necesitamos un buen editor para escribir nuestro codigo, un compilador a mano o interprete según corresponda a nuestro lenguaje de programación, una conección a su base de datos facil y rapida si es que utilizamos. En fin muchas veces necesitamos escoger para nuestro lenguaje un Entorno de Desarrollo Integrado (IDE)

Figura 1: ¿Què son los IDE de Programación?

Un entorno de desarrollo integrado o en inglés Integrated Development Environment (IDE) es un programa compuesto por un conjunto de herramientas para un programador.

Los IDEs proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C.

Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, que mediante pluggins se le puede añadir soporte de lenguajes adicionales

Los componentes que debe tener los IDEs son:

  • Un editor de texto.
  • Un compilador.
  • Un intérprete.
  • Herramientas de automatización.
  • Un depurador.
  • Posibilidad de ofrecer un sistema de control de versiones.
  • Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios.


Saludos!

Entradas populares