Último Semestre… Incertidumbre A La Vista….

10 08 2008
Esperanza

Así es, después de no haber escrito por un gran tiempo por diferentes razones, aquí estoy escribiendo a una semana de haber empezado lo que será conocido en mi historia personal como “Mi último semestre de la carrera”.

Éste es un semestre que he estado esperando con gran añoransa y esperanza, sobretodo desde hace como año y medio a la fecha, y ahora que se vislumbra más cercano que núnca el temor me invade; siento una gran incertidumbre… un miedo a terminar mi vida académica (por lo menos hasta éste punto). Tengo tantas esperanzas en lo que me depara el futuro, que creo que son esas mismas las que me dan miedo, ¿por qué? diran algunos… pues la respuesta más sencilla es porque me da miedo el que aquellas esperanzas e ilusiones que he formado a lo largo de este tiempo resulten mentiras, o que simplemente no se cumplan.

Tantas cosas me han pasado en los últimos semestres (cuento semestres y no años por el hecho de enmarcarlo en el tiempo escolar de la carrera), creo que he madurado después de muchos tropiezos, y he aprendido a levantarme y seguir adelante, espero poder seguir haciendolo en un futuro próximo.

En fin al tiempo en que escribo ésto mi contador marca que me quedan 115 días, 00 horas, 07 minutos y 20 segundos para llegar a ese día… “Graduación”….

Los mantendré informados….





Guitar Hero III

16 02 2008

Guitar HeroIIIPues hace tiempo que llevaba resistiéndome a jugar el juego de la temporada, pero hoy ví la guitarra (que es de mi hermana) abandonada en la sala de la televisión y decidí ver el por qué es que éste juego es lo que es.

Debo de confesar que a pesar de no conocer muchas de las canciones que vienen en el juego, la verdad es que mientras estas siguiendo las notas que te van apareciendo te vas metiendo más y más en la música y cuando te vienes a dar cuenta ya estas con el feeling de un rokero… bueno no tanto jajaja pero ya estas viciado por el juego.

La verdad me parece que es un juego muy bueno, digo no es una novedad puesto que los juegos de “follow the arrows” ya existen desde hace tiempo (alguién se acuerda de famoso juego de baile…..) pero pues ahora no es necesario tanto movimiento y agetreo para poder jugarlo, basta con ponerse la guitarra y empezar a realizar la mímica que todo guitarrista realiza al estar tocando una rola.

Bueno creo que es un buen juego, a pesar de que algunos de mis amigos lo odien por poner las canciones de personajes desconocidos en manos de pubertos, que debo decir si es molesto…., el juego sigue siendo bueno a pesar de ello. La verdad lo recomiendo ampliamente, y les sugiero que cuando tengan la oportunidad lo jueguen.





CrossLoop…. Excelente Para Asistencia Remota

30 12 2007

CrossLoopAlguna vez se han visto en la situación de recibir una llamada/mail/mensaje diciendo algo como lo siguiente: “Hola, oye figurate que tengo un pequeño problemita con mi computadora y pues es que quisiera ver si tu pudieras ayudarme, sé que le sabes a esto de las computadoras.” Y es entonces cuando te ves envuelto en una espiral interminable de que te esté describiendo a través del teléfono los “sintomas” (mensajes de advertencia, error, íconos, etc.) que le aparecen, que es lo último que hizo antes de que apareciera el error, y así te la pasas por lo menos por unos 15 a 30 minutos.

Todo para que resulte en algo que se puede solucionar con unos cuantos clicks, que si tú estuvieras presente en donde está la computadora lo resolverías en menos de 5 minutos, pero como no estas allí tienes que describir con lujo de detalle cada uno de los clicks y movimientos que tiene que realizar para solucionar su problema.

Ah! y no hablemos de utilizar la asistencia remota que ofrece Chafasoft, digo perdón, Microsoft, puesto que el sólo hecho de intentar hacer que funcione haría más tediosa la idea….

Ahora bien después de ésta breve introducción, vayamos al punto de éste post, que es un programa que nos facilitará mucho el trabajo de realizar la asistencia remota para nuestros amigos y familiares.

El programa del que hablo es CrossLoop que es un pequeño software (y vaya si es pequeño 2.3 Mb) que se puede descargar de manera gratuita del mismo sitio y que nos permitirá tener todas las funcionalidades y un poco más de las que nos brinda la asistencia remota, pero de una manera mucho más sencilla.

El software tiene dos partes, uno para el que pide la ayuda y otro para el que la dará. sólo basta que la persona que requiera de tu asistencia te pase su código de acceso y que tu lo introduzcas a tu parte del programa y de allí le dan conectar y tu amigo o familiar te autoriza el acceso a su computadora y ya listo tendras el control de realizar las reparaciones (de configuración, no de hardware jejeje) remotamente.

A mi me parece una muy buena utilidad y de hecho a toda computadora de mis familiares y amigos que tengo cerca en algún momento se lo instalo, para que así cuando me soliciten ayuda yo se las pueda brindar de una manera más eficaz.





Super Mario RPG: Legend Of The Seven Stars!

1 12 2007

CajaHace unas semanas estando en la cafetería de la Universidad empezamos a recordar sobre algunos juegos de antaño que nos divertían, y nos acordamos del mejor juego de Super Mario que ha existido (hasta el momento, quizá el Galaxy que no he jugado esté mejor).

Recuerdo cómo éste juego capturó mi imaginación y pensamiento desde 1996 cuando fue sacado a la venta. Recuerdo haberlo comprado y haber esperado ancioso el tiempo de poder jugarlo después de realizar mis tareas. Una de las razones por las cuales este juego era cautivante es porque era la primera vez que Mario aparecía en una especie de 3D, lo cuál a nosotros los jugadores de esos tiempos en verdad nos sorprendía. (Se que para los jóvenes de estos días quiza resulten algo burdas las imágenes….)

MarioPara los que no lo conozcan en ésta aventura Mario empieza rescatando a la Princesa ToadsPrincesa Toadstooltool de las garras del temible Bowser, cuándo todo parecía estar apunto de terminar como todas las aventuras de Mario con un rescate espectacular por parte de él algo sorprendete ocurre; del cielo cae una espada gigante que se enclava en el castillo de Bowser, mandando a volar a Mario, La Princesa y Bowser en diferentes caminos. Cuando Mario decide regresar al castillo de Bowser para ver que ha ocurrido, la gigante espda hace retumbar la tierra y destrulle el puente que llevaba hacía la guarida de Bowser, forzando de éste modo a nuestro héroe a encaminarse rumbo al castillo del Reino de Los Hongos a informar al canciller de lo ocurrido.

BowserDe éste modo se va desarrollando una historia entretejida en la que tendras que ayudar a diferentes personajes, y muchos otros se te iran uniendo (inclusive Bowser y hasta un maldito bom bom-nuve…., que se cree rana, que es tan molesto….) en tu aventura para lograr restaurar el camino de las estrellas y que de éste modo los deseos puedan volver a ser concedidos.

GenoEl juego es en verdad muy bueno y gracias a Dios hoy podemos jugarlo con los emuladores que existen en internet, de éste modo puedo llevarlo siempre junto con mi computadora y de éste modo ya no tengo que esperar estar en mi casa para poder jugarlo. Si no lo han jugado en verdad les recomiendo que lo consigan, no se arrepentiran!

Aquí les dejo el video de introducción del juego.





¡Oooops! ¡Excel Ha Fallado!

19 11 2007

exUno esperaría que una aplicación de una empresa tan seria, eficiente, multimillonaria como Microsoft pudiera realizar una simple operación matemática como una multiplicación. Pero resulta que tiene un ligero detalle, Excel 2007 no puede realizar una simple multiplicación con dos cifras en especial 850 y 77.1.

Así es, si en cualquier hoja de Excel 2007 ponemos la operación 850 x 77.1 pues nos va a dar de resultado 100,000 cuando el resultado que arroja cualquier calculadora de mercado es 65,535. Creo que Microsoft debería de poner un poco más de cuidado al realizar sus aplicaciones, puesto que Excel es una herramienta que es utilizada por muchas compañías e inclusive hasta el gobierno para realizar cálculos como nóminas, impuestos, inventarios, etc.

Imaginemos que pasa si por ejemplo un trabajador que gana (en algún país ideal… no en México) $850.00 pesos por día laborado, y por algún motivo laboro durante el periodo de nómina 77.1 días, cuando el contador de la empresa que utiliza Microsoft Excel 2007 para realizar los libros de pagos introduce los datos de días laborados por el salario que recibe la persona, pues resultaría que nuestro trabajador va a cobrar $100,000.00 pesos ese periodo de pago… De una manera no premeditada la empresa estaría perdiendo $34,465.00 pesos si la nómina no es revisada y el error detectado.

Éste es un grave problema que nos pone a pensar en la seguridad que nos puede llegar a dar Microsoft con sus productos, será que no solamente nos seguirán ocasionando dolores de cabeza y molestias cuando Windows se travé, sino que ahora tendremos que preocuparnos por si Excel hace bien los cálculos…..

¡Bien Billy, sigue así!





Google Ingresará Al Mercado De Software Para Dispositivos Móviles

6 11 2007

phoneGoogle ha anunciado el día de hoy para terminar de una vez por todas con el rumor de que quería ingresar a la producción de teléfonos, que lo que realmente desea y va a realizar es una muy ambiciosa alianza con los fabricantes de teléfonos, compañías telefónicas y otras compañías tecnológicas para empezar la creación de telefonos más baratos al utilizar la plataforma de desarrollo “Android”.

Google ha dejado claro que no desea ingresar en la manufactura de aparatos telefónicos y tampoco pretende poner su firma/logo en ellos, lo que ha logrado es que compañías manufactureras de ésta tecnología como Samsung, Motorola y LG hayan acordado empezar a cambiar sus productos que estaban bajo licencia propietaria a la licencia abierta que propone la plataforma de Google.

Las herramientas para trabajar en dicha plataforma será liberada entre ésta y la próxima semana, permitiendo a los desarrolladores la comenzar con la creación de aplicaciones y otras mejoras de software que incrementaran los usos que hoy en día se le dan a todos los dispositivos móviles como smartphones. Lo lamentable es que los primeros teléfonos que estén equipados ya con el software y la tecnología de Google no comenzarán a estar disponibles sino hasta la segunda mitad del año 2008, las primeras empresas en ofrecer dichos teléfonos serán T-Mobile y Sprint.

Este acuerdo seguramente beneficiará a Google al incrementar sus ganancias por publicidad en teléfonos móviles, el cuál se estima que llegue a $11.4 mil millones de dólares a nivel mundial para el año 2011. Por otra parte para las compañías telefónicas se veran beneficiadas al incrementar la venta de servicios online y darles una ventaja competitiva frente a su rival AT&T y IPhone.

Éste anuncio por parte de Google y la gran aceptación que ha tenido por parte de las compañías va ser un gran empujón para la tecnología móvil, y va a permitir grandes cambios y quien sabe que es lo que nos depara el futuro.





¿Cómo Agregar Componentes Al Pallete De NetBeans?… (Calendario)

1 11 2007

Pues a petición de Fanny aquí va una explicación de cómo poder agregar el calendario que les comenté en posts pasados a NetBeans. Así que sin más preámbulo aquí va paso a paso.

  1. Primero abrimos NetBeans (creo que éste paso es lógico).
  2. A continuación le damos click derecho sobre el Pallete de los componentes de NetBeans y seleccionamos Pallete Manager como muestra la imagen 1.
  3. En la pantalla que nos aparece le damos el de “add from JAR…”. (imagen 2).
  4. En la siguiente pantalla buscamos la ubicación donde tenemos el JAR del Calendario que bajamos de FLib, y seleccionamos el JAR de jcalendar.jar. (imagen 3).
  5. En la siguiente pantalla seleccionamos los dos componentes, esto es para que nos agregre tanto el Combo como el calendario en sí. Y le damos Next. (imagen 4).
  6. A continuación seleccionamos la categoría en donde deseamos que agregue los componentes. Y le damos finish. (imagen 5).
  7. Uno creería que con eso basta, pero debemos de recordar que lo que acabamos de agregar es un “programa” de java que vamos a estar usando o “llamando” desde otra aplicación, por lo que es necesario agregarlo a las librerias de nuestra aplicación. Para hacerlo le damos click derecho en la carpeta de Libraries de nuestro proyecto y seleccionamos “Add Library”. (imagen 6).
  8. En la pantalla que aparece le damos en “Manage Libraries” (imagen 7).
  9. En la siguiente le damos en “New Library” la cuál nos desplegará un ciálogo donde debemos de poner el nombre de la librería. (imagen 8 & imagen 9).
  10. Después de darle aceptar, debemos de agregar el JAR del calendario a la nueva librería, para hacerlo le damos en “Add JAR/Folder”. Donde nos aparecerá un diálogo donde debemos de seleccionar nuevamente el JAR del calendario en donde lo tengamos guardado.(imagen 10).
  11. Después le damos en OK, seleccionamos la librería que acabamos de agregar, y le damos Add Library (imagen 11).

Después de seguir estos sencillos pasos ya podremos agregar el componente de calendario tan sencillo como agregamos un botón a nuestra aplicación.





Servidor Radius II

30 10 2007

Retomando este tema seguiré exponiendo la información sobre los servidores Radius.

Existen algunos mensajes definidos por los RFC 2865 y 2866:

Access-Request→ Enviado por un cliente RADIUS para solicitar autenticación y autorización para conectarse a la red. Debe contener el usuario y contraseña (ya sea de usuario o CHAP); además del puerto NAS, si es necesario.

Access-Accept→ Enviado por un servidor RADIUS en respuesta a un mensaje de Access-Request. Informa que la conexión está autenticada y autorizada y le envía la información de configuración para comenzar a usar el servicio.

Access-Reject→ Enviado por un servidor RADIUS en respuesta a un mensaje de Access-Request. Este mensaje informa al cliente RADIUS que el intento de conexión ha sido rechazado. Un servidor RADIUS envía este mensaje ya sea porque las credenciales no son auténticas o por que el intento de conexión no está autorizado.

Access-Challenge→ Envío de un servidor RADIUS en respuesta a un mensaje de Access-Request. Este mensaje es un desafío para el cliente RADIUS. Si este tipo de paquete es soportado, el servidor pide al cliente que vuelva a enviar un paquete Access-Request para hacer la autenticación. En caso de que no sea soportado, se toma como un Access-Reject.

Accounting-Request→ Enviado por un cliente RADIUS para especificar información de cuenta para una conexión que fue aceptada.

Accounting-Response→ Enviado por un servidor RADIUS en respuesta a un mensaje de Accounting-Request. Este mensaje reconoce el procesamiento y recepción exitosa de un mensaje de Accouting-Response.

Para la implementación del servidor RADIUS, utilizamos las siguientes herramientas de hardware y software:

  • Una laptop con Linux que fungirá como servidor RADIUS (en nuestro caso, Ubuntu).
  • Un Access Point-Router WRV200 Business Service.
  • Laptops con tarjetas inalámbricas usadas como clientes.
  • FreeRADIUS como servidor.
  • MySQL para el almacenamiento de datos de usuarios.

A continuación se presentan los pasos a detalle seguidos para la configuración de FreeRADIUS.

Instalación

Actualmente, FreeRADIUS permite su instalación mediante la descarga y compilación del código fuente. Sin embargo, para su mejor manejo, resulta más práctico convertir el código fuente en un paquete Debian e instalarlo desde el mismo. Para ello, primero se instala lo siguiente para la construcción de paquetes Debian. Cabe mencionar que build-essential no funciona en cualquier sistema Debian.

# apt-get install build-essential
# apt-get install apt-src

Posteriormente, se actualizan las listas de paquetes disponibles (para que se descargue la versión más actual en los repositorios), se crea el directorio donde se guardará FreeRADIUS y se descarga.

# apt-src update
# mkdir ~/build_freeradius

# cd ~/build_freeradius

# apt-src install freeradius

El documento ‘rules’ en ‘~/build_freeradius/freeradius-1.1.3/debian’ debe modificarse para que las siguientes líneas se vean así:

#buildssl=--without-rlm_eap_peap --without-rlm_eap_tls
--without-rlm_eap_ttls --without-rlm_otp --without-rlm_sql_postgresql

--without-snmp
#modulelist=krb5 ldap sql_mysql sql_iodbc
buildssl=--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir`
--with-rlm_sql_postgresql_include_dir=`pg_config --includedir`
modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql

Esto hará que FreeRADIUS se instale con los módulos que necesitamos.

El archivo ‘control’, en el mismo directorio, debe verse así:

Source: freeradiusBuild-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev,libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2),libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev, libpq-devBuild-Conflicts:

Esto hará que FreeRADIUS se asocie con las librerías que requiere para funcionar. En nuestro caso, principalmente, MySQL y SSL
Ahora se ejecutan los siguientes comandos para actualizar el archivo ‘control’ y para instalar las librerías sin problemas:

# cd ~/build_freeradius/freeradius-1.1.3/debian# cat control.postgresql >> control# apt-get install libssl-dev libpq-dev

Ahora deben cambiarse las siguientes líneas en el archivo ‘changelog’ encontrado en el directorio ‘~/build_freeradius/freeradius-1.1.3/debian/’.

freeradius (1.1.3-3ubuntu1tls) feisty; urgency=low* Add tls support for compilation-- reauthor <reauthor@gmail.com> Fri, 16 Mar 2007 20:22:40 +0200

Finalmente, se escriben los siguientes comandos para construir el paquete e instalarlo. Además, se requirió la instalación del paquete de conexión de FreeRADIUS con MySQL llamado: ‘freeradius-mysql_1.1.3-3ubuntu1tls_i386.deb’.

# cd ~/build_freeradius# fakeroot dpkg-buildpackage -b –uc freeradius# dpkg -i freeradius_1.1.3-3ubuntu1tls_i386.deb# dpkg -i freeradius-mysql_1.1.3-3ubuntu1tls_i386.deb

Al instalarse los paquetes, se ejecutan; para poder configurarlos, deben pararse con el siguiente comando:

# /etc/init.d/freeradius stop

Configuración

FreeRADIUS cuenta con diversos archivos que deben configurarse para lograr que funcione como se requiere. Los principales son: radiusd.conf, users, clients.conf, sql.conf y eap.conf, todos localizados en /etc/freeradius. A continuación se describe la configuración que debe haber en cada uno de ellos. Lo más importante se marca con rojo.

Radiusd.conf

Aquí solamente es necesario cambiar los argumentos relacionados con SQL, EAP y la configuración del dominio al que los clientes se conectarán. SQL se configura para que RADIUS se conecte a él para comparar la información de autenticación. EAP es el protocolo para la autenticación de usuario, usada normalmente en redes inalámbricas.
Este archivo de configuración es demasiado largo así que aquí sólo se presentan las secciones de interés que fueron modificadas. Para comenzar, debe sustituirse todo ${confdir} encontrado en el archivo por el directorio actual de FreeRADIUS, en nuestro caso ‘/etc/freeradius’.

modules { pap {auto_header = yes}chap {

authtype = CHAP}

pam {pam_auth = radiusd

}unix {

cache = nocache_reload = 600

radwtmp = ${logdir}/radwtmp}

$INCLUDE /etc/freeradius/eap.confmschap {

authtype = MS-CHAPuse_mppe = yes

require_encryption = yesrequire_strong = no

# Windows envía un nombre de usuario como DOMINIO\usuario;
# pero, en la respuesta a Challenge, sólo envía el
# usuario. Esto provoca un error. Al colocar sí en este
# hack, el error se corrige.with_ntdomain_hack = yes

}ldap {

server = "ldap.your.domain"basedn = "o=My Org,c=UA"

filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"start_tls = no

access_attr = "dialupAccess"dictionary_mapping = ${raddbdir}/ldap.attrmap

ldap_connections_number = 5timeout = 4

timelimit = 3net_timeout = 1

}...

preprocess {huntgroups = /etc/freeradius/huntgroups

hints = /etc/freeradius/hintswith_ascend_hack = no

ascend_channels_per_line = 23# Mismo motivo que el pasado, pero para hacerlo en el

# preprocesamientowith_ntdomain_hack = yes

with_specialix_jetstream_hack = nowith_cisco_vsa_hack = no

}...

ippool main_pool {# Se coloca el rango de IPs disponibles y la máscara de

# redrange-start = 192.167.1.1

range-stop = 192.167.1.254netmask = 255.255.255.0

cache-size = 800session-db = ${raddbdir}/db.ippool

ip-index = ${raddbdir}/db.ipindexoverride = no

maximum-timeout = 0}

}
instantiate { execexpr}authorize {

preprocesschap

mschapsuffix

# EAP, activa el protocolo EAP para autorización. FILES, hace que

# se lea el archivo ‘users’. SQL, hace que se entre a la base de# datos de MySQL para buscar los datos del cliente.

eapfiles

sql}

authenticate {Auth-Type PAP {

pap}

Auth-Type CHAP {chap

}Auth-Type MS-CHAP {

mschap}

unix# Habilita la autenticación EAP

eap}

preacct {preprocess

acct_uniquesuffix

}accounting {

detailunix

radutmp# Lee las cuentas localizadas en la base de datos de MySQL

sql}

session {radutmp

# Usa MySQL en el manejo de sesionessql

}post-auth {

# Usa MySQL para las tareas de post-autenticaciónsql

}pre-proxy {

}post-proxy {

eap}

Sql.conf
Se decidió usar MySQL como backend para los usuarios de RADIUS debido a que permite administrarlos de forma simple y flexible. Es más sencillo agregar campos a una base de datos (que puede hacerse incluso desde una aplicación de escritorio o web) que modificar los archivos de configuración de FreeRADIUS.
Una vez que en el archivo de configuración ‘radiusd.conf’ se ha activado el soporte para SQL, debemos configurar el archivo ‘sql.conf’ que contiene información sobre el servidor SQL y las consultas que se deben hacer para obtener la información de los usuarios.
En las primeras líneas se da información sobre el servidor SQL, después viene la definición de las tablas y, por último, las consultas. Las consultas no se colocaron en este archivo, pero pueden verse en el archivo adjunto.

sql { driver = "rlm_sql_mysql"
 # Es importante colocar el IP del servidor. El usuario root o el

 # usuario que tenga permisos a la base de datos ‘radius’ que
 # después crearemos. Finalmente, se coloca la contraseña de este
 # usuario.
   server = "localhost"
   login = "root"
   password = "alipi"

 # Definición de base de datos y tablas

radius_db = "radius"acct_table1 = "radacct"

acct_table2 = "radacct"postauth_table = "radpostauth"

authcheck_table = "radcheck"authreply_table = "radreply"

groupcheck_table = "radgroupcheck"groupreply_table = "radgroupreply"

usergroup_table = "usergroup"nas_table = "nas"

deletestalesessions = yessqltrace = no

sqltracefile = ${logdir}/sqltrace.sqlnum_sql_socks = 5

connect_failure_retry_delay = 60sql_user_name = "%{User-Name}"

...}

Eap.conf
Se configura este archivo para que EAP (Extensible Authentication Protocol) funcione como protocolo de autenticación. EAP se utilizará como PEAP (Protected EAP). El cual, a su vez, usará MSCHAPV2 (Microsoft Challenge-Handshake Authentication Protocol). Además se requiere establecer la lista de certificados.

eap { # Se le dice que use PEAPdefault_eap_type = peaptimer_expire = 60

ignore_unknown_eap_types = nocisco_accounting_username_bug = no

md5 {}

leap {}

gtc {auth_type = PAP

}tls {

# Se cambian los ${raddbdir} por /etc/freeradiusprivate_key_password = whatever

private_key_file = /etc/freeradius/certs/cert-srv.pemcertificate_file = /etc/freeradius/certs/cert-srv.pem

CA_file = /etc/freeradius/certs/demoCA/cacert.pemdh_file = /etc/freeradius/certs/dh

random_file = /dev/urandom}

# Se le dice que use MSCHAPV2peap {

default_eap_type = mschapv2}

mschapv2 {}

}

Una vez configurado este archivo, deben crearse ligas simbólicas a los certificados que EAP necesita, para que pueda localizarlos. Para ello, se entra al directorio donde se guardan los certificados y se ejecuta un rehash.

# cd /etc/freeradius/certs# c_rehash

Users
Este archivo es el que contiene la información de los usuarios que pueden acceder a la red, en caso de que no se use otro método. En nuestro caso, este archivo no tiene mucho uso puesto que se usó una base de datos en MySQL. Todas las configuraciones que tengan como usuario DEFAULT, son las que se asignarán a los usuarios en caso de que no estén especificadas para ellos.

Clients.conf
Aquí se especifican los IPs o subredes desde las cuales se aceptarán peticiones. Si llega una petición de acceso desde un IP que no esté registrado aquí, el servidor RADIUS simplemente la ignora, negándole el acceso. En nuestro caso se acepta al localhost y al AP que enviará las solicitudes.

client 127.0.0.1 { secret = supersecretradiuskey

shortname = some_name 	  }

client 192.167.1.1 { # Esta clave es el shared secret que usará el AP para comunicarse

secret = lolo shortname = linksys-g

}

Todos estos archivos se encuentran adjuntos a la práctica para poder observarlos más a detalle. Con esto se da por finalizada la configuración del servidor RADIUS.
Para correr FreeRADIUS, una vez hechas todas estas modificaciones, se escribe el comando:

# /etc/init.d/freeradius start

Sin embargo,

# freeradius -X

permite observar todas las operaciones que se están llevando a cabo.

Configuración de MySQL
FreeRADIUS hace uso de una base de datos llamada radius.
Primero se entra a MySQL y se ejecuta el siguiente comando, para crearla:

mysql> create database radius;

Después, en la línea de comandos, se hace lo explicado abajo, lo cual correrá un script que FreeRADIUS trae consigo:

# cd /usr/share/doc/packages/freeradius/doc/examples/# mysql –u root -p radius < mysql.sql

Así ya se cuenta con una base de datos para la autenticación. Las tablas más importantes son:

  1. usergroup: Aquí se define a qué grupo pertenece cada usuario. Sus atributos son:
    • id. Identificador de registro.
    • UserName. Nombre de usuario.
    • GroupName. Grupo al que pertenece el usuarios
  2. radcheck: Aquí se definen las contraseñas de cada usuario. Sus atributos son:
    • id. Identificador de registro.
    • UserName. Nombre de usuario.
    • Attribute. Tipo de contraseña. En nuestro caso, ‘User-Password’.
    • Op. Es el operador que se usará para la comprobación. Para nosotros ‘==’.
    • Value. La contraseña.
  3. radreply: En esta tabla se definen los atributos sobre la conexión y sesión de los usuarios; por ejemplo, IP asignada y tiempo de espera máximo. En nuestro caso, permitimos que se asignen los de DEFAULT contenidos en el archivo ‘users’; por lo tanto, no insertamos nada en la tabla.
  4. radgroupreply: Similar a radcheck pero permite establecer atributos a un grupo de usuarios completo. Atributos:
    • id. Identificador de registro.
    • GroupName. Nombre de grupo.
    • Attribute. Nombre del atributo que se quiere agregar.

Nosotros sólo hicimos uso de uno, el tipo de autenticación: ‘Auth-Type’.
Op. Es el operador que se usará para la comprobación. Para nosotros ‘:=’.
Value. El valor del atributo. Nuestro Auth-Type es ‘EAP’.

Después de realizar todos los pasos anteriores todavía nos falta el configurar el AP para que realmente utilice el Radius para la autenticación, ésto lo encontraras en el siguiente archivo, que también contiene todo lo anterior; decidí subir el archivo y publicar lo anterior porque a la mayoría de las personas únicamente les interesará el configurar el Servidor Radius, y a otros pocos ya el utilizarlo en alguna aplicación como es la implementación de la autenticación en un AP.

El archivo lo puedes conseguir dando click aquí.

Sin más esperando que les sea útil, y agradeciendo a los miembros de mi equipo nuevamente por su coolaboración en la realización del práctica (del cuál el archivo es el reporte de práctica) me despido hasta el próximo post!.





¡USB Key de 128 Gb!

28 10 2007

Samsung ha anunciado que está lista para poder empezar a fabricar memorias USB de 128 Gb, pero ¿cómo es esto posible?

30 nm chip Durante años se ha estado discutiendo sobre las diferentes tecnologías que podrían sustituir al flash memory como medio de almacenamiento, es incuestionable que ésta tecnología ha logrado superarse y mantenerse inceiblemente. Samsung dice que ha logrado desarrollar el primer chip de 30nm (1 nanómetro= 1×10^-9 m), que es capaz de brindar una capacidad de 64 Gb, lo que es equivalente a cuatro veces la capacidad máxima que es comercializada hoy en día.

Al utilizar el modelo de producción de chips de 30nm uno de éstos chips representa la capacidad de 8Gb, mientras que una memorira como SD podría utilizar 16 de éstos para brindar capacidades de 128 Gb. Los discos duros podrían utilizar 64 de estos chips para poder brindar capacidades de 512Gb.

Las memorias que promete Samsung de 128Gb no son únicamente impresionantes por el hecho de que proveerán espacio para 32,000 archivos de música u 80 películas en calidad DVD, sino porque también está más allá de lo que se considera lo “standar” en máxima capacidad para discos duros en laptops, 80Gb. Lo más impresionante según Samsung es que estos chips no son ciencia ficción, la compañía espera poner en producción masiva los chips para el año 2009.





Algoritmos De Búsqueda

25 10 2007

Algoritmo A* De BúsquedaMap

El algoritmo A* es usualmente utilizado en los problemas para encontrar la mejor ruta o camino, lo que realiza el algoritmo es construir todas las rutas desde un punto inicial hasta encontrar alguna que llegue al nodo final o meta. De éste modo solamente construye aquellas rutas que son candidatas a formar una solución o camino desde el inicio hasta el nodo final.


Para poder determinar que rutas son las que tienen mayor probabilidad de llegar al nodo meta, el algoritmo utiliza una heurística basada en la distancia de cualquier punto dado hacía la meta. Donde se diferencia el algoritmo A* de otros algoritmos avaros de “best-first search” es el hecho de que va tomando en cuenta la distancia que ya ha recorrido hasta el momento, haciendo de este modo una respuesta mucho más completa y óptima.

A* es una combinación entre los algoritmos de búsqueda de anchura con algoritmos de profundidad, esto debido a la función que utiliza f(n)= g(n)+h(n), dónde h(n) [que tiende primero a profundidad] representa el valor heurístico del nodo a evaluar y g(n) [que tiende a primero en anchura] representa el costo real del camino recorrido para poder llegar al nodo. Lo anterior lo posibilita a cambiar de camino de búsqueda cuando se encuentra un camino que pareciera ser más óptimo.
Los usos que se le pueden dar a éste algoritmo son el de trazar las rutas para llegar de una ciudad a otra, algo como lo que tiene la Secretaría de Comunicaciones y Transportes para trazar la ruta de una ciudad a otra sacando el menor costo y recorrido posible. La aplicación se llama “Traza Tú Ruta”
.

Algoritmo “Best-First-Search”
Éste algoritmo es una optimización de “breadth-first search” y lo mejora al expandir el nodo más prometedor a través de alguna regla dada. Lo que intenta realizar el algoritmo es estimar el porcentaje de probabilidad de que el nodo “n” sea la mejor opción al utilizar una heurística de evaluación de una función f(n), que depende mayormente en la descripción de “n”, es decir en la habilidad para poder describir la meta y la información que se conoce hasta el punto en el que el algoritmo se encuentra así como cualquier otra información que sea relevante para el problema.


Así el algoritmo busca predecir que tan cercano a una solución es un camino dado, esto lo realiza extendiendo los caminos que se encuentran más cercanos a dicha solución primero, el modo específico de búsqueda se conoce como “greedy best-first search”. La implementación más eficiente para la selección del mejor candidato por extensión es a través de una cola de prioridad.
domino
Creo que uno de los mejores uso que se le puede dar a éste algoritmo es la teoría de juego. Podemos ver claramente como la computadora va a ser capaz de ir seleccionando “la mejor opción hasta el momento” para ganar, o ir prediciendo cuales son los movimiento que podrán seguirle a cierta tirada.


Aunque debemos de tener en cuenta que no podrá ser aplicable para todos los juegos puesto que por ejemplo en el ajedrez simplemente para el 4to movimiento el número de posibles jugadas o movimientos es de 9,100,000, y este es un número que va aumentando exponencialmente, llegando a un total posible en el orden de los veinte septillones, es decir 20×1042.

Simulated Annealing
Éste es un algoritmo de probabilidad que busca y localiza la mejor aproximación posible para el resultado óptimo de una función dada dentro de un universo de búsqueda amplio. Se utiliza generalmente cuando el campo de búsqueda es discreto, por ejemplo los tours que visitan determinadas ciudades.


Su nombre y la idea principal provienen del método en la metalurgia de recocido, que conllevan el calentamiento y enfriamiento controlado de los materiales para elevar el número de cristales y reducir sus defectos.recocido
En éste algoritmo cada punto “s” del universo de búsqueda es comparado con el estado de algún sistema físico, y la función que se utiliza E(s) es interpretada como la energía interna del sistema en ese estado dado. La meta es llevar al sistema de un punto aleatorio inicial a un estado en el cual éste tenga la menor cantidad posible de energía.


En cada paso el algoritmo considera a algunos de los vecinos del actual estado “s”, y probabilísticamente calcula y decide si debe de moverse a alguno de ellos. Las probabilidades son escogidas de tal forma que el sistema tienda a tener menor cantidad de energía. Éste paso es repetido uno número de iteraciones determinadas por el programador o hasta que se alcance un estado de energía que sea aceptable para el sistema.

Para poder aplicar éste algoritmo a un problema en específico es necesario que uno le proporcione los siguientes parámetros: el universo de estados, la meta en energía de la función E(s), la forma de generar a los candidatos a través de una función vecinos(), el nivel de aceptación probabilística en función P() y el itinerario de recocido temp(). Todos estos parámetros tienen un impacto significativo en la eficiencia del método. Lamentablemente no existe un modo de determinar que opciones de valores serán los mejores para cada problema, y no hay forma de encontrarlos para u n problema en específico.

Su uso puede ser para cualquier problema de búsqueda de mejor camino, o mejor opción siempre y cuando se puede generar los parámetros arriba mencionados que se necesitan para el funcionamiento del mismo.

Hill Climbing
Éste algoritmo pertenece a los de búsqueda local, y su implementación es bastante sencilla lo cual lo hace muchas veces la opción favorita por muchos a pesar de que existan algoritmos que puedan dar mejores y más exactos resultados.

El algoritmo puede ser utilizado en la resolución de problemas que tienen varias posibles soluciones pero en las cuales algunas son mejores que otras. El algoritmo se comienza con una de estas soluciones escogidas al azar. Y poco a poco va buscando una mejora a dicha solución, por más mínima que ésta sea. Hasta que el algoritmo llega a un punto en el que ya no puede encontrar ninguna mejora a la solución y es entonces cuando termina. Por lo general cuando llega a éste punto la solución es bastante cercana a la más optima, aunque nunca se puede garantizar que llegue a la óptima.

Lo que realiza el algoritmo es el buscar maximizar o minimizar una función f(x) dada, donde “x” se refiere a estados discretos del problema. Estos estados usualmente son representados por vértices en una gráfica. Así el algoritmo va a seguir una gráfica de vértice a vértice, siempre aumentando o disminuyendo localmente el valor de la función hasta encontrar un máximo o mínimo local.

Ant Colony Optimization
Es un algoritmo que utiliza probabilidad para solucionar problemas computacionales a través de la búsqueda de los mejores caminos en un grafo. Está inspirado en el modo en como las hormigas pueden encontrar el mejor camino hacía su colonia desde un punto dado.

Básicamente lo que éste algoritmo hace es tener una o varías hormigas dentro del grafo que van a ir recorriendo dicho grafo a través de diferentes caminos y/o decisiones, y van a ir depositando un valor de “feromona” en los caminos que utilizen para realzar la importancia del mismo. Cada feromona en el camino va a ir disminuyendo un porcentaje que el programador decide, esto es para que si éste durante un dado periodo no es visitado pierda la importancia.

De éste modo el algoritmo va a ir encontrando un camino óptimo para poder visitar todos los nodos del algoritmo de una manera sencilla (no se puede asegurar que la más óptima). El algoritmo se corre tantas veces como el programador lo requiera o hasta que no exista alteraciones sustanciales en los valores del camino encontrado, lo cual indica que el algoritmo a llegado a un punto estable.

Éste algoritmo se puede utilizar para encontrar las mejores (no se sabe si óptimas) rutas para visitar cierto “universo” de ciudades o lugares dados, o como lo mencioné en un principio cualquier problema computacional que pueda ser representado a través de grafos.








Seguir

Get every new post delivered to your Inbox.