Category: programación

Scala Days Videos y Presentaciones Disponibles

By El_Hijo, May 8, 2010 10:47 pm

Scala Days videos y presentaciones disponibles

Hace unos días se hicieron público los videos y presentaciones de Scala Days para poder verlos entra en el siguiente link.

No dejen de ver los siguientes videos y si pueden échenle un vistazo a cada una de las presentaciones.



Value Objects y DataTransfer Objects

By El_Hijo, February 28, 2010 10:08 pm

Value Objects y DataTransfer Objects

Ayer me surgió una duda muy interesante sobre los Value Objects y los DataTransfer Objects en la cual se definen de una forma diferente y según entiendo en Java se han llegado a confundir estos términos utilizándolos indistintamente.

Value Object:  http://c2.com/cgi/wiki?ValueObject

DataTransfer Object: http://en.wikipedia.org/wiki/Data_transfer_object

Me gustaría saber cuales son sus opiniones y como definirían los conceptos de Value Objects y de DataTransfer Objects.

¿Llaves naturales (Opinión)?

By El_Hijo, February 16, 2010 10:57 pm

El día de ayer se me presentó un tema muy interesante al discutir si es o no correcto el utilizar llaves naturales como llaves primarias, seguidamente algunos ejemplos de llaves naturales:

  • El número de cedula
  • Seguro social
  • Número de tarjeta

Ahora bien me gustaría saber sus opiniones y si están de acuerdo en utilizar las llaves naturales o en utilizar una llave subrogada como un ID autogenerado que no tenga nada que ver con dichas llaves naturales.

Trabajar con dll’s de .Net propias en Integration Services (SSIS)

By Edgar Isaac, January 22, 2010 1:37 am

En este post veremos como utilizar una libreria de clases (dll) nuestra en Sql Server Integration Services (SSIS), mas específicamente utilizaremos un “Script Task”.

Esto resulta útil cuando necesitamos hacer cosas que SSIS propiamente no puede hacer, por lo que necesitamos meter mano (código) a nuestro ETL.

Propiamente los “Script Task” de  SSIS no tienen acceso a librerias fuera de .Net Framework, por esto, lo que tenemos que hacer es agregar nuestra librería al .Net Framework.

  • El primer paso es crear nuestra librería de clases
  • Nuestra  aplicación debe estar nombrada de forma segura (strong naming):
  • debemos crear una llave para agregarla a nuestra librería: en el SDK Command Prompt escribimos: sn -k c:\key.snk, de esta forma creamos en c:/ un archivo que va a servirnos como llave para nuestra libreria.
  • ahora nos toca agregar esta llave a nuestra librería:
  • posterior a esto compliamos y ya tenemos nuestra libreria strong named.
  • Ahora debemos agregar nuestro Assembly al CAG: de nuevo con el SDK Command Prompt: gacutil -i preuba.dll
  • Agregamos nuestra dll a la carpeta “C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727″ del servidor.
  • con esto ya hemos agregado nuestro assembly a .Net Framework para que esté disponible para SSIS
  • ahora tenemos que llamar a este assembly desde SSIS
  • dentro de nuestra aplicación de Visual Studio Bussines Inteligence Development Studio, en nuestro paquete de SSIS agregamos un nuevo “Script Task”
  • lo abrimos y en la página de scripts hacemos clic en “Design Script”
  • en el explorador de clases hacemos clic derecho en references y en add reference
  • ahi ya debería de aparecer nuestro assembly
  • lo agregamos a nuestro “Script Task” y listo, ya podemos utilizar nuestra librería en SSIS

¿Que es la Inyección de dependencias?

By El_Hijo, January 20, 2010 9:26 pm

Para contestar la pregunta primero tenemos que definir que es una dependencia. Una dependencia es la necesidad que tiene una estructura de programación por otra estructura es decir son todos aquellos lazos que mantiene y necesita un programa o objeto “X” por otro programa, objeto, librería o clase.

Esto lo podemos ver cuando hacemos un import en Java todas las clases que se importan producen una dependencia en la clase que las importa.

Otro concepto importante a tomar en cuenta es la inversión de control (IoC) la cual invierte el control del programar a la hora de programar ya que como todos sabemos el programador tiene el control sobre la creación de instancias sobre la llamada a métodos y muchas cosas más. Ósea un muchos casos el programador realiza su flujo pero este puede ser cambiado por la arquitectura de la aplicación o por un ente externo según la teoría de IoC.  

Ahora Inyección de dependencias es un tipo especial de IoC (Inversión de control) en el cual el programador no necesita estar creando instancias de un objeto estas son dadas por un ente externo ya sea este un contexto, un contenedor o una plataforma de programación.

Un ejemplo de una dependencia seria la siguiente.

public interface Persona{

            public String getNombre();

}

 public class Empleado implements Persona{

             private String nombre = “Empleado”;

             public String getNombre(){

                           return nombre;

              }

 }

 import com.compañia.Persona;

 public class Rol{

             private Persona persona = new Empleado();

              //Aquí ahí una dependencia hacia Persona y Empleado y una instancia que puede

             //ser inyectada la instancia de empleado, ahora con dependencia de inyección

             //podemos quitar la dependencia de empleados e invertir el control de quien

             //instancia al empleado

}

Ahora el código de Inyección de dependencias varía según el Framework o arquitectura que usemos.

 En seam por ejemplo podemos inyectar una instancia de un empleado con la anotación @In y podemos hacer ese componente accesible al contenedor de dependencias con la anotación @Name

 Ejemplo:

 @Name(“persona”)  //aquí indicamos como se llama el componente en seam

public class Empleado implements Persona{

             private String nombre = “Empleado”;

             public String getNombre(){

                             return nombre;

             }

 }

 public class Rol{

              //aquí indicamos que inyecte un componente que tenga el nombre de la

              //variable persona en cuyo caso para nosotros sería un objeto de tipo

             //Empleado ahora la ventaja de esto es  que nunca se tuvo una dependencia

            //directa con la clase empleado y dicha clase se puede remplazar por

            //cualquier otra implementación de persona sin que el sistema conozca la //clase implementadora.

            @In

            private Persona persona = null;

}

“ISketch” aplicación creada por chico solidario de 11 años

By Edgar Isaac, January 19, 2010 8:29 pm

me he encontrado con una noticia que me resulto interesante, que demuestra que definitivamente hay personas que poseen una mayor capacidad y que logran realizar cosas a corta edad que aún para gente adulta resulta dificil.

se trata de un jóven llamado Cameron Cohen, al año anterior este muchacho sufrió un problema de salud que lo tuvo postrado durante varios meses en una cama, y aqui es donde viene lo interesante, este jóven no desperdició este tiempo para nada, lo invirtió en investigaciones por la Web en búsqueda de material didáctico acerca de lenguajes de programación, para finalmente encarrilarse en el iPhone OS.

luego de leer y estudiar una cantidad importante de docuementos y de recibir algún curso finalmente creó  su primera aplicación para iPhone OS bautizada iSketch, esta es una aplicación sencilla, pero un logro muy importante para un niño de 11 años que inició su proyecto al tener 10. la utilizadad de la aplicación es básicamente poder realizar dibujos y con una opción de enviarlo vía correo electrónico.

una vez finalizado el proyecto, este jóven prentó su producto a Apple quienes no dudaron en aprobarlo e incluirlo en la App Store a un precio de 0.79 euros. y una parte fundamental de esta historia es que este jóven ha decidido donar una parte de sus ganancias al hospital infantil donde permaneció internado,  por lo que aunque la aplicación sea sencilla vale la pena comprarla por una buena obra.

de mi parte puedo decir que a mis 11 años lo único en lo que pensaba era en ver televisión por lo que creo que este muchacho tiene un gran futuro si permanece con ese espíritu autodidacta e investigativo.

fuente

C# 4.0 Programación Dinámica

By Edgar Isaac, January 16, 2010 12:07 am

Siguiendo algunas de las tendencias actuales de los lenguajes de programación, la nueva versión de C #, hablamos de la 4.0, tiene como principal característica que se inserta como una opción para programación dinámica.

¿Qué es programación Dinámica?

es un tipo de programación en la que el compilador deja de hacer varias funciones y estas se realizan en el runtime.

estás son algunas características de lenguajes dinámicos

1) Parseo (Análisis) de expresiones: Es poder enviar al lenguaje generalmente una cadena y que el tiempo de ejecución lo interprete como código ejecutable en el acto.

2) Verificación de tipos de datos. Si en C# tratamos de sumar perros, con enteros, con cadenas y con gatos, el compilador nativamente nos daría un error en tiempo de compilación la mayoría de las veces. Con un lenguaje dinámico podemos definir las reglas para manejar tipos de datos heterogéneos. Además es posible hacer el binding de un objeto a una variable

3) Redefinición y alteración a los tipos: En los lenguajes tradicionales (no dinámicos) una vez que hemos definido un tipo es imposible cambiarlo. Lenguajes como Phyton o Ruby permiten nativamente esto.

entre otras.

C# 4.0 tendrá una serie de características que permitirán este tipo de programación, entre otras están:

  • Objetos tipados de manera dinámica. la palabra dynamic Será la base de esta funcionalidad.
  • Mejorada la interoperabilidad COM.
  • Optinal and named parameters.
  • Co-and Contra-Variance.
  • Dynamic trees.
  • Dynamic Dispatch invocer.
  • Call Site Caching.

se agrega un nuevo runtime de .NET soportará los lenguajes de siempre de .NET como C# y Visual Basic pero además se incorporan IronRuby y IronPhyton apoyando la programación dinámica, además, claro está, se puede incluir cualquier otro lenguaje que cumpla con las convenciones del Common Language Specification (CLS).

Introducción a Scala

By El_Hijo, September 25, 2009 11:17 am

¿Que es Scala?

Scala es un lenguaje funcional y orientado a Objetos para la plataforma Java, en un principio también estaba destinado para el .Net Framework pero este esfuerzo fue dejado atrás poco a poco.

Sabiendo esto las características más interesantes de Scala son:

  1. Herencia Multiple por medio de Mixims
  2. Closures
  3. XML Literals
  4. Sobrecarga de operadores
  5. El compilador de Scala permite la creación de plugins, dándonos la posibilidad de implementar o poder desarrollar desde un Linq hasta hacer añadidos para DSL en campos como finanzas, matemáticas y otras ciencias.
  6. Su escalabilidad a nivel de código.

¿Qué es Scala?

By El_Hijo, July 9, 2009 11:39 am

¿Qué es Scala?

El sitio oficial del Scala dice: Scala es un lenguaje conciso, elegante, de tipado seguro (Tipado estático) que integra características de orientación a objetos como características funcionales. Además de esto también es interoperable con Java.

A lo que agrego: el concepto de que Scala es un lenguaje escalable como bien lo dice su nombre en el cual se pueden usar desde clousures hasta literales de XML, el mismo lenguaje está diseñado para poder ampliar su sintaxis de una forma elegante y sencilla por medio de APIs sin la necesidad de esperar una nueva versión del compilador aunado a esto también está la característica de que el compilador acepta plugins con los cuales se pueden diseñar DSL (Lenguajes de Dominio Especifico por sus singlas en Ingles) que nos permitiran ampliar el lenguaje sin mucho costo; en fin Scala está diseñado desde su sintaxis hasta sus plugins para permitir a los desarrolladores escalar y adaptar el compilador según las necesidades que se requieran lo cual nos abre una gran gama de posibilidades a la hora de desarrollar con Scala.

Por último, en futuros post iré tocando las características mencionadas y otras más sobre el lenguaje de programación Scala.

Para más información visiten www.scala-lang.org

Netbeans IDE 6.7 Beta liberado

By El_Hijo, April 29, 2009 10:34 am

Netbeans IDE 6.7 Beta liberado.

Como se puede ver en el sitio oficial de netbeans and liberado la versión 6.7 beta de este gran entorno de desarrollo. Las mejoras que trae son:

·         Integración con Maven

·         Integración con Kenai, el nuevo sitio web de Sun para hospedar proyectos.

·         Un nuevo Look and Feel para los usuarios de Mac

·         Una mejor integración con GlassFish v3.

·         Soporte para SVG en componentes para Móviles.

·         Entre muchas otras.

Para más información: New And Note Worthy NB 67

Información del Beta aquí.

Dejo esta pregunta para ver cuál es la reacción de la gente con el IDE y su uso ahora y en futuras versiones si es que las hay.

¿Netbeans sobrevivirá a la compra de Oracle?

Como dato curioso Netbeans IDE 6.7 era antiguamente Netbeans 7.0 pero como el salto en características no era tan grande los desarrolladores decidieron cambiarlo a una versión menor y como la versión del IDE que esta actualmente es la 6.5 y seguia la 6.6 por superticion (número de la bestia) le pusieron 6.7 a la nueva versión.

Panorama Theme by Themocracy