Ads 468x60px

Perfil

martes, 5 de febrero de 2013

Monitoriza tu red Wi-Fi en busca de intrusos

La conexión Wi-Fi es a día de hoy, con toda seguridad, la más utilizada para conectarse desde todo tipo de dispositivos. Sustituyendo al clásico Ethernet debido a la ausencia de cables, algo que es ideal para acceder desde teléfonos móviles o portátiles, el, digamos, inconveniente, es que al no necesitar cable, cualquiera con la contraseña puede conectarse a las mismas.
Wi-Fi
En ocasiones dicha contraseña puede ser fácil de descifrar, o bien por la falta de configuración de la misma o por que el aparato al que nos conectamos no dispone de la seguridad suficiente para evitarlo. Por ello puede ser muy importante, especialmente si habéis notado un enlentecimiento de vuestra conexión, monitorizar la red Wi-Fi en busca de usuarios no deseados, además de aprender a protegerla.

Monitorización de la red

Hay varias herramientas que pueden servir para la monitorización de una red Wi-Fi con el objetivo no de descubrir qué usuarios hay conectados a la misma -o cuantos dispositivos-, pero tal vez el más sencillo es WiFi Guard.
He decidido hablar de Wi-FiGuard no sólo por eso, sino porque es una aplicación que está teniendo bastante popularidad estos días gracias a ello. Con ella podemos identificar equipos conectados a nuestra red. Viene de la mano de SoftPerfect, una compañía especializada en seguridad informática, que nos ofrece una utilidad gratuita y sencilla incluso para usuarios novatos.
WiFi Guard
Antes de ver como funciona, he aquí algunas de sus características avanzadas:
  • Detección en tiempo real de equipos conectados
  • Detección de equipos con firewall
  • Escaneo programado de equipos conectados
  • Alertas en caso de que se conecte algún dispositivo desconocido
La aplicación se basa en la conexión de red Wi-Fi a la que nos encontremos conectados en el ordenador para mostrarnos -con la opción Scan Now- los dispositivos conectados. Se nos mostrará la dirección IP, el nombre descriptivo que emite el dispositivo, si es que no está oculto, además de la dirección MAC y el tiempo de resolución a la misma desde el programa.
La idea es marcar como dispositivos válidos los que sabemos que se están conectando, de nuestra parte, a la red. Por ejemplo, el ordenador, el portátil, videoconsola y teléfono móvil. Una vez hecho, podemos programar WiFi Guard para que nos alerte si se conecta un dispositivo desconocido. Tened en cuenta que si por ejemplo nos hace visita un familiar que tenga acceso a nuestra Wi-Fi, el mismo aparecerá en la interfaz marcada como desconocido. Bastará con marcarlo como conocido en caso de que así sea.
WiFi Guard no sólo funciona en Windows, sino que los usuarios de Linux y Mac OS X también pueden hacerse con él a través de la página de SoftPerfect. Y lo mejor de todo es que se trata de una utilidad completamente gratuita y que puede instalarse de forma portable, es decir, en por ejemplo una unidad USB, desde la cual podemos ejecutar en equipos sin necesidad de instalación.

Proteger nuestra conexión

WPA2
Por supuesto, para evitar tener que encontrarnos con la sorpresa que suponen los usuarios no deseados conectándose a nuestra Wi-Fi, lo mejor es asegurar la misma,.Si cambiaste cambiado vuestro router o contratado vuesta conexión a Internet hace poco, lo más seguro es que ya contéis con seguridad WPA o WPA2, un sistema mucho más potente que la vieja WEP, la cual se puede descifrar rápidamente.
Aun así, es recomendable cambiar la contraseña de la misma y utilizar una que sea larga y fuerte, preferiblemente que cuente con carácteres tanto en mayúscula como en minúscula además de números y símbolos, y que por supuesto no se centren en datos tales como números de teléfono, películas, o incluso palabras que puedan estar en algún tipo de diccionario online.
Por último, puede ser muy conveniente cerrar nuestra red a desconocidos utilizando filtrado MAC. Esto básicamente quiere decir que le diremos a nuestro router qué aparatos pueden conectar, utilizando la dirección MAC de los mismos, la cual les identifica de forma única. El filtrado debería dar sólo acceso a los dispositivos de nuestra lista personal, cerrando las puertas a cualquier desconocido, incluso si éste tiene acceso a la contraseña.

Zend Framework Parte 1


Introducción y primera aplicación

Zend Framework es un framework1 open source para PHP desarrollado por Zend la empresa encargada
de la mayor parte de las mejoras hechas a PHP. Zend Framework implementa el patron MVC es 100%
orientado a objetos, sus componentes tienen un bajo acoplamiento es posible usarlos de forma independiente
y brinda un estándar de codificación.
Características:

  • Cuenta con soporte para internalización y localización de aplicaciones construir sitios multi-idioma, convertir formatos de fechas, monedas, etc.
  • Facilita el setup y brinda herramientas para crear la estructura de directorios y clases por línea de comandos.
  • Integración con PHPUnit por medio de Zend_Test para facilitar el testing de la aplicación.
  • Tiene adapters para diversos tipos de bases de datos, brinda componentes para la autenticación y autorización de usuarios, envío de mails, cache en varios formatos, creación de web services, etc.

La idea es invertir menos tiempo en el desarrollo y hacer uso de componentes ya testeados.

Instalación

1 | Descarga la última versión de Framework desde el sitio oficial.
2 | Cuando la tengas descargada creamos una estructura de directorios, puedes crearla automáticamente con Zend_Tool_Framework, o puedes hacerlo manualmente.

Si te fijas en la figura tenemos unos archivos básicos para crear y lo haremos paso a paso.

Action Controllers

Los controladores son clases que extienden de Zend_Controller_Action cada controlador tiene unos
métodos especiales cuya nombre tiene el sufijo “Action” y denominados “action methods”.
Por default las URLs en Zend Framework son del tipo /controlador/action es decir que si en
nuestro IndexController tenemos un “pruebaAction” lo podremos ejecutar desde /index/prueba.


  • La estructura es simple en el método init() se agregan tareas de inicialización y creamos unaction llamado index.
  • Al ejecutarlo, Zend Framework automáticamente relaciona el nombre del action con una vista que será renderizada.
  • Esta vista tiene la extensión phml en el caso del indexAction la vista asociada será index.phtml dentro de la carpeta correspondiente al controlador index en views/scripts.

ErrorController

El controlador será ejecutado cada vez que se quiera llamar una página que no existe (error 404) o se
produzca algún error en la aplicación (error 500).


Configurando el htaccess y el index.php
En htaccess: aplicamos el patrón Front Controller y redirigir todas las peticiones al index.php
luego decidir la página para mostrar.
RewriteEngine On
RewriteRule !\.(js|ico|txt|gif|jpg|png|css|pdf)$ index.php


Bootstrap y application.ini

En el index hacemos referencia al archivo application.ini que configura el sitio pero que aún no
creamos pero haremos algo simple:

Ahora, creamos el Bootstrap registrando en el autoloader el namespace de nuestra aplicación para instanciar las clases que usemos sin necesidad de hacer antes un include de dicho archivo:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoloader() {
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace(‘App_’)->setFallbackAutoloader(true);
$resourceAutoloader = new Zend_Loader_Autoloader_Resource(
array(
‘basePath’ => APPLICATION_PATH,
‘namespace’ => ‘App’,
‘resourceTypes’ => array(
‘form’ => array(‘path’ => ‘forms/’, ‘namespace’ => ‘Form’),
‘model’ => array(‘path’ => ‘models/’, ‘namespace’ => ‘Model’)
)
)
);
}}

En otro capitulo seguiremos indagando sobre este framework


lunes, 4 de febrero de 2013

Despliegues de Sprites en 2D en XNA


Despliegues de Sprites en 2D

Bien, ya visto en articulos anteriores todo el basamento teórico de como funciona el Framework XNA, las versiones que han salido desde su lanzamiento en el 2007, el soporte para las diversas plataformas de Microsoft (Windows PC, Xbox 360 y Windows Phone), el funcionamiento de XNA y por último, la estructura de un proyecto de un Windows Game XNA en Visual Studio, es hora que empecemos a codificar y dibujar elementos.
Paso 1. Crear el proyecto
Debes abrir Visual Studio 2010 con XNA Game Studio 4 previamente instalado, y crear un proyecto Windows Game (4) como se mostró en el artículo anterior.
Paso 2. Agregar una imagen a nuestro Content
Ahora debemos agregar una carpeta en el Content donde colocaremos nuestras imágenes. No es requerido crear un directorio, pero lo recomiendo para mantener nuestro contenido gráfico organizado. Simplemente da un clic-derecho en tu proyecto Content, le das clic a agregar->nueva carpeta, y lo nombraremos “Imagenes”.
Para agregar una imagen (que la pueden encontrar aqui para descargar), dale clic-derecho a la carpeta “Imagenes” ya creada, luego clic en agregar->item existente. Te saldrá un explorador de archivos, para que busques el archivo de imagen que deseas agregar a tu proyecto. Selecciona la imagen que descargaste previamente (smiley.png), y le das clic a “Agregar”).
Paso 3. Dibujar el sprite en la Escena
Ya que tenemos nuestra imagen en el Content de nuestro proyecto, debemos cargarla y desplegarla escribiendo código. Lógicamente para desplegar esta imagen, dependemos lógicamente de dos cosas: Posición y Textura. Para eso, agrega las siguientes dos variables dentro de tu clase principal (Game1), debajo de spriteBatch. El código se vería de la siguiente manera:
Vector2 es un tipo de datos que posee dos campos float x,y; a modo de trabajar con coordenadas de dos dimensiones. Ininializa posicion en el método Initialize:
Ahora procedemos a cargar la imagen a nuestro juego. Esto se hace en el método LoadContent. El código quedaría así:
Puedes observar que se instancia la variable spriteBatch (el cual puedes verlo por los momentos como el pincel encargado de pintar todos los elementos en la escena de nuestro juego). También observa como se carga una textura2D con el método Load. Toma en cuenta el string que pasamos como parámetro; es la ruta del elemento que queremos cargar. Por esto, es importante colocar en qué directorio se encuentra si esta organizado de esta manera.
Paso 4. Desplegar nuestro sprite en la escena
Recapitulando, hemos agregado nuestra imagen archivo al contenido de nuestro proyecto; hemos agregado una variable para la posición donde desplegaremos nuestro sprite, y declaramos una variable Texture2D, donde realizamos la carga de nuestra imagen del contenido a la aplicación. Ahora, sin más preámbulos, dibujemos nuestro sprite. Esto se implementa en el método Draw.
Para pintar nuestro sprite, debemos utilizar nuestra variables spriteBatch, ya que este es el encargado de dibujar los elementos en la escena como ya mencione a priori. Todos los elementos que vayamos a dibujar se hacen mediante su método Draw(), y estos deben estar encerrados dentro de los métodos spriteBatch.Begin() y spriteBatch.End(). Muy importante estos dos métodos, porque estamos avisando a nuestra aplicación que vamos a pintar elementos, y cuando terminemos, invocamos el método End(). En nuestro caso, nuestro código se vera así:
Fíjate el método spriteBatch.Draw(). Solo estamos pasando la textura que deseamos desplegar, la posición, y el color que queremos que sea desplegado. Si colocamos Blanco, se mostraran los colores originales de la imagen. Cualquier otro color modificara los colores de nuestro sprite.
Finalmente, al ejecutar nuestra aplicación, tendrás un resultado como este:
Sencillo, no crees? Esta es la manera mas elemental para desplegar un sprite en nuestro juego. El método Draw que utilizamos es el mas básico disponible, ya que este método cuenta con 7 formas distintas de invocar con diversos parámetros, incluyendo efectos, manejo de rectángulos para dibujar ciertas áreas, etc. Para proyectos más complejos, se trabajan con clases donde encapsulan estas propiedades (textura, posición), y se le agregan mas propiedades para ser mas flexibles ante transformaciones y efectos.

miércoles, 30 de enero de 2013

Windows Azure (Parte 2)


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,OdeoBasecampdel.icio.usdigg, 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

VERSIÓN LINUX:

Descargamos el fuente
./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.

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:
Los archivos deberan ser descargados en un sólo directorio y los comandos ejecutados en ese directorio.
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:
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:
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í:
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