Perfil
miércoles, 30 de enero de 2013
Introduccion a Ruby on Rails
Introducción al framework de Ruby on Rails incluyendo el típico -hola mundo- para dar nuestros primeros pasos.
Desde que tuve conocimiento de la revolución del diseño de aplicaciones web, popularmente conocido como Web 2.0, he sido testigo de varias tecnologías que giran alrededor de ésta: Sindicación de contenidos RSS, AJAX, Tags, Web Services, etc.
Hoy en día podemos encontrar muchas webs orientadas a la comunidad o la generación de contenido por parte de los usuarios, como por ejemplo: Technorati,Odeo, Basecamp, del.icio.us, digg, etc.
Muchas de éstas aplicaciones web están siendo desarrolladas bajo Ruby on Rails, surgen varias interrogantes como el ¿por qué no eligen otra plataforma?, ¿es Ruby on Rails mejor que otras plataformas?, ¿es sólo una moda?. Estas preguntas merecen respuestas concretas, expliquemos en qué consiste esto.
¿QUÉ ES RUBY?
Ruby es un lenguaje de scripts, multiplataforma, netamente orientado a objetos es software libre, fue creado por Yukihiro Matsumoto conocido como Matz. La primera versión fue liberada en 1995, hereda varias caracaterísticas de lenguajes como: Perl, Smalltalk, Eiffel, Ada y Lisp. Como lo indica su propio autor, es un lenguaje “aparentemente sencillo pero internamente complejo”.
Esto quiere decir que mientras más nos abstraemos en el paradigma orientado a objetos notaremos realmente la complejidad del lenguaje (al menos fue mi caso, ya que vengo de lenguajes estructurados y orientados a eventos); lo considero un lenguaje muy intuitivo casi a un nivel de lenguaje humano.
Ruby fue diseñado para un desarrollo rápido y sencillo. Cada día este lenguaje va ganando más adeptos, tanto así que la empresa Sun Mirosystems, está apoyando un proyecto llamado Jruby que es un interprete de Ruby escrito 100% en Java.
Entre las carecterísticas del lenguaje se encuentran:
- Posibilidad de hacer llamadas directamente al sistema operativo.
- Muy potente para el manejo de cadenas y expresiones regulares.
- No se necesita declarar las variables.
- La sintaxis es simple y consistente.
- Gestión de memoria automática.
- Todo es un objeto.
- Métodos Singleton.
- un largo.
Muy bien, hasta aquí creo que tenemos una visión básica de lo que es Ruby.
¿QUÉ ES RAILS?
Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier Hansson, empleado de la empresa 37signals.
Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación orientada a la administración de proyectos llamada Basecamp. Actualmente se uniéron más personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en estos principios de desarrollo:
- Don’t Repeat Yourself
- Convention Over Configuration
PRIMER PRINCIPIO:
La primera regla que a mi buen entender significa “No lo vuelvas a repetir”, es una de las cosas más novedosas que he podido encontrar en este framework. Imaginate tener un formulario, y llamarlo las veces que quieras y desde donde quieras, simplemente con una línea código.
Tener una tabla en tu base de datos, y manipular a los registros como un objeto y a sus campos como un atributo, sin necesidad de declarar nada, son sólo algunas aplicaciones de este principio de desarrollo.
EL SEGUNDO PRINCIPIO:
Nos dice “Convención antes que Configuración”, muy bien con esto el framework nos dice: oye he notado que tu siempre usas ésto de ésta forma, o veo que siempre tienes que configurar esto de aquí, porque no hacemos una cosa, yo te doy todo esto configurado, si tu respetas ésta configuración te ahorras tiempo, y sino quieres hacerlo, no hay problema no me molesto, para muestra un botón:
class Auto < ActiveRecord::Base
end
¿QUÉ HAGO CON ESO?
la verdad no deberíamos hacer nada pero ya hicimos mucho, con esa declaración de una clase, lo que hemos logrado es mapear a una tabla en nuestra base de datos.
¿POR QUÉ EN PLURAL?
Dicho de otra manera Rails buscará una tabla llamada “autos”, en nuestra base de datos, esto es así porque Rails cree conveniente que debe llamarse así (principio de pluralización).
Aunque este comportamiento se puede desactivar de una manera muy sencilla, ¿Y si no la encuentra?, pues nos dará un error. Y qué ocurre si la tabla con la que quiero trabajar no tiene ese nombre exacto, no hay problema, con una línea más serás complacido:
class Auto < ActiveRecord::Base
set_table_name 'carros'
end
Con esto el framework comprenderá que en vez de usar ‘autos’, debería usar ‘carros’ así de sencillo. Muy bien hasta aquí tenemos una muy pequeña noción de lo que es Ruby y Rails, ahora veamos lo necesario para tenerlo instalado en nuestra máquina.
INSTALANDO RUBY
VERSIÓN FREEBSD:
Actualizando los ports
portsnap fetch
portsnap update
Instalando Ruby
cd /usr/ports/lang/ruby18
make install clean
portsnap fetch
portsnap update
Instalando Ruby
cd /usr/ports/lang/ruby18
make install clean
VERSIÓN LINUX:
Descargamos el fuente
./configure
make
make install
./configure
make
make install
PARA USUARIOS DE DEBIAN O UBUNTU:
sudo apt-get install ruby irb rdoc
VERSIÓN WINDOWS
Descargar
Siguiente, Siguiente, Aceptar, No, deseo registrarme luego.
Muy bien hasta aquí ya tenemos instalado Ruby.
Siguiente, Siguiente, Aceptar, No, deseo registrarme luego.
Muy bien hasta aquí ya tenemos instalado Ruby.
INSTALANDO RAILS
Si disponemos de conexión a internet el trabajo se resumen en:
gem install rails –include-dependencies. Para una instalación manual debemos descargarnos cada uno de los módulos:
gem install rails –include-dependencies. Para una instalación manual debemos descargarnos cada uno de los módulos:
Los archivos deberan ser descargados en un sólo directorio y los comandos ejecutados en ese directorio.
- gem install rake-0.7.1.gem
- gem install activesupport-1.3.1
- gem install activerecord-1.14.4.gem
- gem install actionpack-1.12.5.gem
- gem install actionmailer-1.2.5.gem
- gem install actionwebservice-1.1.6.gem
- gem install rails-1.1.6.gem
Muy bien hasta aquí ya debemos tener instalado Ruby y Rails satisfactoriamente, ahora creemos nuestra primera aplicación:

Creamos un directorio de trabajo y nos ubicamos dentro de el en la consola.
RAILS EJEMPLO:
Automaticamente se generará el esqueleto de nuestra aplicación.
Muy bien ahora entramos en el directorio que se genero y ejecutamos el servidor web que viene con Ruby (Webrick):
ruby script/server Y veremos una pantalla de bienvenida a nuestra aplicación: Ahora vamos a realizar la prueba de fuego un ‘Mundo Hola!’, para esto realiza lo siguiente:
Muy bien ahora entramos en el directorio que se genero y ejecutamos el servidor web que viene con Ruby (Webrick):
ruby script/server Y veremos una pantalla de bienvenida a nuestra aplicación: Ahora vamos a realizar la prueba de fuego un ‘Mundo Hola!’, para esto realiza lo siguiente:
Creamos un controlador ruby script/generate controller test,
ahora se habrán creado varios archivos entre ellos edita ‘directorio_trabajo/ejemplo/app/controllers/test_controller.rb’:
Vamos agregarle un método:
ahora se habrán creado varios archivos entre ellos edita ‘directorio_trabajo/ejemplo/app/controllers/test_controller.rb’:
Vamos agregarle un método:
class TestController < ActionController::Base
def index
end
end
Ahora crearemos la vista para esta acción que acabamos de crear, en ‘directorio_trabajo/ejemplo/app/views/test’ crea un archivo llamado ‘index.rhtml’ y dentro de el colocas el texto ‘Mundo Hola desde RoR!’, lo grabas y colocas lo siguiente en tu navegador: http://localhost:3000/test/

Supongamos que el controlador "test" es el controlador principal de tu aplicación, y naturalmente no sería lo ideal que los usuarios ingresen a tu página a través de "tudominio.com/test", deberían ingresar simplemente escribiendo "tudominio.com", bien para lograr esto editemos ‘directorio_trabajo/ejemplo/config/routes.rb’:
descomentamos la línea
# map.connect ”, :controller => "welcome"
quedaría así:
descomentamos la línea
# map.connect ”, :controller => "welcome"
quedaría así:
map.connect '', :controller => "test":
Y como nos indican unas líneas arriba, debemos borrar el archivo ‘directorio_trabajo/ejemplo/public/index.html’, y ahora si se podría acceder a través de ‘http://localhost:3000/’.
Aquí les dejo una pequeña bibliografía:
LIBROS-INGLÉS
LIBROS-ESPAÑOL
FOROS-INGLÉS
FOROS-ESPAÑOL
PÁGINAS WEB Y BLOGS
martes, 29 de enero de 2013
Fundamentos de Silverlight Parte1
¿Qué es Silverlight?
Silverlight es una tecnología que nos permite crear Aplicaciones Enriquecidas para Internet o RIA por sus siglas en inglés (Rich Internet Applications). Con Silverlight podemos construir aplicaciones que van desde pequeños componentes dentro de una página Web hasta sofisticadas Aplicaciones de Negocio que estén consumiendo y presentando datos de alguna base de datos, pasando por juegos casuales, reproductores de multimedios, Gadgets para Windows Vista o 7, y un largo etcétera.
Incluso después de más de 3 años de haber sido liberada al público en general su primera versión, aún existen muchas confusiones y malinterpretaciones acerca de esta tecnología. Primeramente, tenemos que decir que Silverlight es una tecnología multi-navegador, esto es, es capaz de ejecutar adentro de los navegadores más comunes disponibles hoy en día: Internet Explorer, FireFox, Chrome y Safari.
Por otro lado, Silverlight es una tecnología Multi-Plataforma, esto es, es capaz de ejecutar en los principales Sistemas Operativos disponibles hoy en día: Windows, Mac OSX y Linux (a través de Moonlight, proyecto que es llevado a cabo por la empresa Novell y que es la implementación de Silverlight para ese Sistema Operativo).
Silverlight, a diferencia de otras tecnologías Web del lado del Servidor (por ejemplo: ASP.NET, PHP, etc.), es una tecnología del lado del Cliente, es decir, todo el cómputo y ejecución de las aplicaciones sucede en el equipo del usuario, tal y como si se tratase de cualquier tipo de aplicación instalada. Esto es una gran ventaja ya que Silverlight puede sacar provecho de las características de procesamiento del hardware en donde está instalado.
Silverlight, a diferencia de otras tecnologías Web del lado del Servidor (por ejemplo: ASP.NET, PHP, etc.), es una tecnología del lado del Cliente, es decir, todo el cómputo y ejecución de las aplicaciones sucede en el equipo del usuario, tal y como si se tratase de cualquier tipo de aplicación instalada. Esto es una gran ventaja ya que Silverlight puede sacar provecho de las características de procesamiento del hardware en donde está instalado.
Silverlight es un plugin que ofrece una experiencia de instalación muy similar a cualquier otro plugin para los navegadores. En el caso de la versión 5 (que es la versión más nueva disponible al momento de estar escribiendo esto) tiene un tamaño aproximado de 7 MB para el caso del Sistema Operativo Windows.
Durante el lanzamiento de Silverlight 4 en Abril 2010, se anunció que próximamente las aplicaciones de Silverlight podrán ejecutar en electrónicos de uso común en nuestros hogares, como televisores, reproductores de DVD, reproductores de Blu-Ray y cajas decodificadoras de cable para la TV. Asimismo, Silverlight es una de las plataformas de desarrollo para la nueva versión del Sistema Operativo móvil de Microsoft: Windows Phone 7. En conjunto con XNA como plataforma para la construcción de juegos 2D / 3D, Silverlight ofrece a los desarrolladores de Aplicaciones móviles una plataforma robusta, fácil de aprender y con una oferta de herramientas con alta funcionalidad.
Con lo anterior podemos deducir que Silverlight es una gran apuesta para ser una tecnología que sea capaz de ejecutar de la misma manera, en diferentes lugares: en los tres tipos de pantalla más comunes en la vida de las personas hoy en día (equipos de cómputo tradicionales como PC’s o Laptops, Televisores y teléfonos móviles). Un mismo código ejecutando en diferentes dispositivos, con diferentes resoluciones, con características de hardware diferente. Es de gran importancia esto ya que los desarrolladores podrán reutilizar sus conocimientos existentes en tecnología .NET para poder construir soluciones que lleguen a más personas y en lugares donde antes esto no era posible.
Se presume que el nuevo dashboard de Xbox liberado en noviembre 2011 incluye Silverlight como la plataforma de desarrollo para sus aplicaciones. Sin embargo, aún no hay documentación técnica oficial al día de hoy que hable acerca de ello.
- http://www.istartedsomething.com/20111206/the-future-of-xbox-is-apps-on-your-tv/
- http://www.engadget.com/2011/10/10/microsoft-reportedly-preparing-silverlight-like-app-framework-ah/
Silverlight y HTML
El propósito de Silverlight nunca ha sido reemplazar HTML como tecnología de presentación de Interfaces de Usuario, sino complementarla con características y funcionalidades que no están disponibles en dicha tecnología. Si bien HTML es un estándar que pretende ser implementado de manera única y consistente en todos los navegadores disponibles hoy en día, esto en la práctica ha sido, es y será un proceso lento ya que podemos destacar una falta de quórum entre las principales empresas que respaldan sus navegadores, quienes (paradójicamente) implementan las especificaciones de estándares de manera diferente. Además si hablamos en términos de funcionalidad, Silverlight ofrece más y mejores características.
Otras consideraciones importantes son:
Rendimiento
El rendimiento de las Aplicaciones de Silverlight es superior gracias a que el código ejecuta bajo el Common Language Runtime (CLR), además de que cuenta con múltiples hilos de ejecución.
Consistencia
Silverlight se asegura de renderizar las Aplicaciones de manera consistente en cualquier lugar donde esté ejecutando
Tiempo
El tiempo de innovación es un punto muy importante ya que la evolución de la funcionalidad y características en las versiones futuras de Silverlight sucederán en un lapso de tiempo muy corto, a comparación de las especificaciones de estándares como HTML.
Para mayor información puedes consultar el siguiente artículo de Brad Becker, Director de Administración de Productos, Plataformas de Desarrollo:http://team.silverlight.net/announcement/the-future-of-silverlight/
Silverlight y el .NET Framework
Una característica muy importante acerca de Silverlight es que no requiere del .NET Framework tanto del lado del Cliente como del lado del Servidor. Del lado del Cliente es obvio ya que es precisamente a esto que podemos ejecutar aplicativos de Silverlight en Sistemas Operativos que no sean Microsoft Windows. Y más aún, también es independiente del .NET Framework del lado del Servidor: no es necesario tener instalado Internet Information Services (IIS) en nuestro Servidor Web, también puede ser Apache, Tomcat, etc.
Silverlight y Windows 8
Durante el primer keynote del evento //Build/ que se llevó a cabo del 13 al 16 de Septiembre en Anaheim, CA., se mostró al mundo entero la plataforma de desarrollo de aplicaciones en el próximo Sistema Operativo de Microsoft: Windows 8. En Windows 8 habrá dos categorías de aplicaciones: Aplicaciones Metro, las cuales están enfocadas a dispositivos táctiles como tablets y Aplicaciones de Escritorio, las cuales son las aplicaciones de ventanas que todos conocemos con mecanismos de entrada tradicional de teclado y mouse, por ejemplo, Aplicaciones de Negocio (LOB por sus siglas en inglés), Aplicaciones de tipo OLTP, Herramientas, etc.
La plataforma de desarrollo para las Aplicaciones de Escritorio está basada en .NET ySilverlight, tal y como sucede hoy en día, por lo que no hay ningún tipo de cambio con respecto a las aplicaciones actuales.
Por otro lado, la plataforma de desarrollo para las Aplicaciones Metro está basada en Windows Runtime (WinRT, un API orientada a objetos alterna a Win32) y XAML o HTML. El motor de interpretación de XAML ha sido incorporado al core del Sistema Operativo ¡por lo que ahora más que nunca es muy importante conocer y dominar este importante lenguaje!
Como podrás observar en la ilustración anterior, en Windows 8 el .NET Framework y Silverlight siguen siendo las plataformas principales para la creación de Aplicaciones de Escritorio, ya que si bien es importante un soporte nativo a los dispositivos con pantallas táctiles, hay muchos escenarios en donde no hace sentido tener una aplicación de este estilo, por lo que las Aplicaciones de Escritorio seguirán siendo la principal categoría durante muchos años por venir.
domingo, 27 de enero de 2013
Seguridad de la Informacion (Parte 2)
¿Qué puede aportar la SI a nuestra organización?
Introducción
La Seguridad de la Información abarca múltiples aspectos de una organización, no se trata únicamente de cuestiones técnicas, sino también de aquellas relativas a cuestiones organizativas, de procedimiento, de políticas, de responsabilidad, etc.
Por otro lado, la Seguridad de la Información no es competencia exclusiva de los responsables de sistemas de una organización sino que todos los miembros de una organización tienen parte de responsabilidad en mantener un adecuado nivel de seguridad.
A lo largo de los siguientes apartados, vamos a conocer cuáles son los aspectos fundamentales de las organizaciones sobre los que la Seguridad de la Información nos puede ayudar a mejorar nuestra organización. Como vamos a ver, son básicamente tres:
- la responsabilidad y la productividad,
- la imagen y la competitividad,
- y la capacidad para superar contingencias y la continuidad del negocio
Estos tres grandes grupos engloban la mayoría de los aspectos relativos a cualquier organización en los cuales la Seguridad de la Información nos puede ser de gran ayuda a la hora de mejorarlos.
Responsabilidad y productividad en la empresa
La responsabilidad y la productividad son aspectos básicos de una organización que afectan a todos sus miembros, desde el director o responsable final hasta el último miembro de la organización. La productividad es un aspecto muy ligado a la responsabilidad de los trabajadores, es decir, a su nivel de compromiso con su trabajo y con el aprovechamiento de su tiempo y de los recursos que la organización pone a su alcance.
Imagen y competitividad
La imagen que proyecta una organización al exterior es uno de los aspectos que más tratan de mimar y cuidar actualmente todas las organizaciones. En el caso de las organizaciones del ámbito público, esta imagen es muy importante, puesto que una buena imagen, tiene repercusiones en aspectos tan fundamentales como la confianza de los ciudadanos o cuestiones incluso que pueden llegar al ámbito político. Para las empresas, una imagen externa poco cuidada puede significar pérdida de clientes y de negocio.
Pero, independientemente del tipo de organización, su imagen pública es un aspecto que debe de cuidar y mantener, máxime cuando se trate de una empresa, puesto que su negocio está en juego.
Contingencias y continuidad de negocio
La Seguridad de la Información es una herramienta básica para superar contingencias y mantener la actividad de una organización. Seguramente, éste es uno de los aspectos que más preocupan a las organizaciones, puesto que les afecta directamente al desarrollo de su actividad.
Pero las causas por las que una organización puede verse obligada a detener o reducir su actividad son tantas como activos sean necesarios para mantener la actividad. Si cualquiera de los activos de una organización se ve afectado por un incidente de seguridad, esto puede afectar a la actividad, y por tanto, a la continuidad tanto del negocio como de la propia organización.
sábado, 26 de enero de 2013
Windows Azure (Conceptos basicos)
¿Qué es Windows Azure Platform?
Windows Azure Platform es un servicio PaaS que forma parte de la oferta de servicios online de Microsoft. Proporciona un entorno familiar y flexible para desarrollar aplicaciones y servicios en la nube con todas las ventajas que hemos analizado.
Con Windows Azure Platform tu empresa puede reducir el tiempo de lanzamiento de los productos y adaptarse fácilmente a medida que la demanda de éstos crezca.
Figura 1.- Vista de los componentes de Windows Azure Platform
Windows Azure es una plataforma interoperable, que permite desarrollar en diversos lenguajes así como la comunicación con cualquier entorno externo. Además, si bien Visual Studio es la herramienta más productiva a la hora de trabajar con la plataforma, se dispone de herramientas y SDKs para otros sistemas y entornos.
La plataforma de Windows Azure es un conjunto de servicios base en la nube, que pueden usarse conjuntamente o de manera independiente, permitiendo que:
- Los desarrolladores utilicen sus habilidades actuales y sus herramientas conocidas para desarrollar aplicaciones cloud
- Los ISVs y los integradores de sistemas ingresen al mercado con rapidez y paguen a medida que usted ingrese
- Los administradores IT obtengan acceso a un nuevo conjunto de recursos sin agregar complejidad
- Empresas de todos los tamaños respondan con rapidez a medida que cambian las necesidades comerciales
Widows Azure Platform está compuesta por los siguientes servicios:
Windows Azure: ofrece a los desarrolladores servicios de ejecución y almacenamiento bajo demanda. Dada la abstracción de la que provee a las aplicaciones se suele definir como el sistema operativo de la nube, lo cual es una forma más sencilla de entenderlo.
Utilizando este servicio, los desarrolladores podrán desplegar y gestionar sus aplicaciones en los centros de datos de Microsoft. Además ofrece mecanismos simples de almacenamiento (tablas y blobs) y de comunicaciones basadas en colas. | |
Microsoft SQL Azure: es una base de datos relacional en la nube que permite tener acceso a nuestros datos relacionales desde cualquier lugar en cualquier momento. Se puede considerar como un servidor de datos SQL Server convencional pero adaptado para funcionar en la nube, en donde la alta disponibilidad es una de las prioridades.
Hay que destacar que SQL Azure es el primer gestor para la nube realmente relacional, que puede ejecutar y entender consultas SQL. | |
Windows Azure Platform AppFabric: es la parte de Windows Azure Platform que proporciona autorización, autenticación y mensajería de manera que permite la comunicación segura entre las aplicaciones desplegadas en nuestra organización y las aplicaciones desplegadas en Windows Azure.
AppFabric Service Bus ofrece a los desarrolladores la flexibilidad para escoger cómo se comunican sus aplicaciones, solucionando retos impuestos por cortafuegos, NAT, IP dinámicas, etc. AppFabric Access Control posibilita una autorización simple y segura para servicios web REST, que además puede federarse con un gran abanico de proveedores de identidades. | |
| Microsoft Codename "Dallas": Se trata de un servicio que permite a los desarrolladores e 'Information Workers’ encontrar, adquirir y gestionar suscripciones a datos en la plataforma Windows Azure. Dallas es un marketplace de información donde podremos encontrar datos de diferente naturaleza y diversos proveedores en un único punto. A través de las APIs de Dallas se puede consumir ese contenido desde prácticamente cualquier plataforma, aplicación o flujo de negocio. |
El siguiente gráfico nos muestra los servicios que esta plataforma proporciona y como se relacionan entre sí:
Figura 2.- Servicios de Windows Azure Platform
Podemos ver, en el gráfico anterior, como Windows Azure Platform proporciona servicios que podemos utilizar desde cualquier plataforma gracias al uso de estándares universalmente aceptados como SOAP, REST y XML. Está soportado el desarrollo directo sobre la plataforma con .NET pero también con PHP, Java, Ruby on Rails... y desde diferentes entornos aparte de Visual Studio, como por ejemplo Eclipse.
Suscribirse a:
Entradas (Atom)





