miércoles, febrero 25, 2009

DevLab: Webkit Inspector

En esta ocación en el videocast se muestra el uso de la herramienta WebKit Inspector, la cual es de gran ayuda tanto para los diseñadores web, así como para los programadores web.

La herramienta permite inspeccionar el código html de una pagina web, realizar cambios a la misma "en vivo", también es posible inspeccionar el CSS de la pagina y de igual forma realizar cambios al momento.

También cuenta con una opción para medir el tiempo de carga y tamaño de nuestra pagina, dandonos un detalle, de cuales son los elementos que tardan mas en descargarse o cuales son los mas "pesados" en términos de bytes.

Por último también se muestra la herramienta para depurar javascript e inspeccionar los valores de las variables del código que se este ejecutando, ademas de incorporar una herramienta de "profile" para analizar que partes de nuestros javascript son las más lentas en su ejecución.


DevLab: WebKit inspector from Mario A Chavez on Vimeo.


Como siempre comentarios o sugerencias para próximos videocasts son bienvenidos.

lunes, febrero 23, 2009

helper_method en Rails

Trabajando en una aplicación en Rails, me sugió la necesidad de hacer que un método que existe en la clase ApplicationController, estuviera disponible tambien para el ActionPack.

Lo primero que se me ocurrió fue duplicar el método en el helper de la vista donde lo requiero, pero eso no me pareció muy DRY (Don´t Repet Yourself); una búsqueda rápida en Google me dió la respuesta: helper_method

Con helper_method podemos declarar un método en nuestra ApplicationController, por ejemplo, y hacerlos disponible a nuestros controladores, pero al declarar nuestro método con helper_method, tambien lo hacemos disponible para nuestras vistas.

helper_method :hola_mundo

def hola_mundo
....
end

jueves, febrero 19, 2009

Web 2.0 CoffeCamp Tj


¿Te interesa el Web 2.0?, ¿haz escuchado hablar de él, pero no estas seguro que es?, ¿sabes de Web 2.0 y tienes algo que aportar?

Acompañanos este sábado 7 de Marzo en el D´Volada de Plaza Dorada en Otay, Tijuana; a partir de las 9 a.m., hasta que el cuerpo aguante o nos corran del lugar.


View Larger Map

Nos interesa tratar temas relacionado a negocios y la interacción social, además del aspecto tecnológico.

Si te interesa compartir algo, por favor agrega en los comentarios tu propuesta de tema.

Comparte una taza de café en una charla amena y agradable.

Pláticas confirmadas:
  • Frameworks para el desarrollo Web 2.0 - Mario A Chávez

Nota: Evento gratuito, solo se require consumo en el D'Volada !

miércoles, febrero 18, 2009

DevLab: GIT parte 2

Segunda parte del videocast sobre el sistema de control de codigo fuente Git. La primera parte se encuentra aquí.

En este video se tocan temas sobre, clonación de repositorios, manejo de etiquetas (tags), creación y manejo de ramas (branches) y se muestra la aplicación GitX para visualizar la bitácora de cambios y ver la gráfica de cambios en nuestro proyecto.

Adicional a los recursos para Git presentados en el primer videocast, aqui se presenta una hoja "acordeón" para Git (cheat sheet).


DevLab: GIT parte 2 from Mario A Chavez on Vimeo.

Como siempre comentarios, sugerencias son bienvenidos.

martes, febrero 17, 2009

México First, reunión informativa para Tijuana BC

A través de la Comunidad Tijuana.NET se logró el tener una reunion informativa con respecto a la iniciativa México First, por parte del Cluster TI@Baja y New Horizons.

Esta reunion esta programada para el 24 de Febrero, en las instalaciones del Cluster TI@Baja, en el 209 del edificio Salomon. La reunion comienza a las 6:00pm.

El post original en el sitio de la Comunidad Tijuana.NET es el siguiente:

Con el fin de presentar y resolver dudas acerca del programa México First te invitamos a esta reunión donde podremos conocer de primera mano los detalles de este programa para apoyo a capacitaciones y certificaciones.

* Apoyos para estudiantes y emprendedores (Microsoft vía LiveMeeting)
* Valor de Capacitaciones y Certificaciones (New Horizons)
* México First (IT@Baja)

Esperamos se unan a esta iniciativa de capacitación profesional y que aprovechen las facilidades económicas que nos están otorgando.



View Larger Map

lunes, febrero 16, 2009

Consejos para Startups por David Heinemeier Hansson

A través de twitter me encontré con este video de David Heinemeier Hansson, donde da consejos para Startups y toma como ejemplo su empresa 37 Signals. La charla es muy amena y sobre todo presenta ideas interesantes.

Pencil, "mockups" para interfaces gráficas

Cuando se desea compartir una idea sobre la interface gráfica de una aplicación a los desarrolladadores o diseñadores gráficos, quizás la forma mas rápida de hacerlo es dibujándola a mano sobre una "servilleta" o una hoja de papel, o quizás se utilice alguna herramienta costosa como Visio o algún software parecido.

Pencil es una herramienta gratuita Open Source, que se instala como un plugin de Firefox y que ayuda precisamente a expresar ideas de interface gráfica entre desarrolladores y diseñadores gráficos, de una manera fácil y rápida; con Pencil es posible realizar el "mockup" de una interface gráfica en cuestión de minutos.


Los diseños puedes hacerse en múltiples paginas y pueden ser compartidos en el formato original de Pencil o exportados a archivos de imagen png.



Mexico First, Continuación ...


En un post previo comenté acerca de la iniciativa México First del Gobierno Federal y la industria TI de México, bueno, por parte del Cluster TI@Baja y la Comunidad Tijuana.NET, aqui hay más información al respecto de los cursos y como poder acceder a la capacitación con descuentos de más del 50%.

De los puntos importantes que nos comparten son los siguientes, con respecto a los costos:
  • Proyectos de instutuciones académicas: 80% de subsidio.
  • Proyectos de organismos empresariales y clústers: 70% de subsidio.
  • Empresas individuales: 60% de subsidio (solo para proyectos en donde se capacite a mas de 100 personas).
A parte se requiere de un compromiso por escrito de realizar la capacitacion y aprobar la certificación, en caso de no ser así, se tiene que devolver el dinero aportado por parte del gobierno.

Los cursos que el Cluster TI@Baja está buscado llevar a cabo son:
  • Visual Studio .NET
  • SQL Server
  • Windows Server
  • Office
  • CompTIA Network+ Certification
  • CompTIA A+ Certification
  • Cisco: CCNA y CCNP
Así que si estas interesado en poder acceder a esta opción para alcazanzar una certificación, verifica si tu empresa esta afiliada a alguna organización como los Cluster de TI, si tu instutución académica tiene algún acuerdo con el Gobierno Federal, en relación a la iniciativa México First.

viernes, febrero 13, 2009

Numb3rs y las matemáticas

Numb3rs Numb3rs es una serie que se transmite por CBS en US los viernes por la noche, actualmente en su quinta temporada.

A simple vista parece ser una serie policiaca más, en donde el FBI trata de resolver casos de asesinato, robo, secuestro y terrorismo; pero las herramientas que se usan para resolverlos es lo que la hace un tanto diferente.

En Numb3rs el personaje Charlie Epps (David Krumholtz), reconocido genio matemático de la universidad CalTech de California, ayuda a su hermano Don Epps (Rob Morrow), agente del FBI, a resolver los casos con la ayuda de Matemáticas aplicada.

Numb3rs introduce los conceptos matemáticos de una forma fácil y sencilla, con analogías que son relativamente fácil de entender, sobre todo dejando ver que las matemáticas las utilizamos todos los días, aun en cuestiones que no nos imaginamos.

numb3rs charlieAunque en algunos episodios parece simplemente increíble la manera en que las matemáticas han sido aplicadas para resolver cierta situación, que mas bien parece una invención de algún escritor de Hollywood bajo los efectos de alguna droga, la verdad es que toda la matemática del show esta fundamentada y apoyada desde diferentes puntos.

Por ejemplo, algunos de los episodios se basan en eventos reales atendidos por el FBI - cuentan con asesoría del FBI -, en donde precisamente usaron a las matemáticas como herramienta para resolver los casos, de hecho existe un libro "The numbers behind Numb3rs: Solving crime with mathematics".

Por otro lado, los productores del show se acercaron a la "Mathematical Association of America" con la finalidad de tener asesoría y no presentar matemáticas falsa.

Ademas cuentan - o por lo menos al inicio de la serie - con la asesoría Gary Lordon, jefe del área de matemáticas de la universidad CalTech, así como otros matemáticos.

Los temas matemáticos en general que la seria ha tratado en este momento van:
  • Números primos y su factorizacion
  • Números Fibonacci
  • Hipótesis de Riemman - por cierto sobre esta hay un premio de 1 millón USD para quien la pueda comprobar -
  • Dinámica de fluidos
  • Teoría de conjuntos
  • Teoría del juego
  • Teoría de grafos
  • Probabilidad y estadística
  • Simulación de modelos matemáticos
  • Etc

En fin una gran cantidad de conceptos matemáticos, aplicados a eventos de física, computación y seguridad informática, economía, ciencias sociales, etc.

Por otra parte los programas usados para la visualización y análisis, que se muestran en la serie no es simple flash con algo de photoshop, la gente de Wolfram, los creadores del software de matemáticas Mathemathica 7, ayudan con la visualización de la información, de hecho tienen un blog donde semana a semana toman la matemática de la serie y crean vídeos para visualizar la teoría detrás de esta.

Epps

Adicional a este análisis del blog de Wolfram, hay otro blog un profesor de matemáticas- no encontré su nombre - de la universidad Northeastern, donde analiza episodio por episodio la matemática del mismo, ademas de dar ejemplos y ligas para una investigación mas profunda.

En fin la serie esta interesante por el hecho de llevar las matemáticas aplicadas a un lenguaje o situaciones donde la mayoría las podamos entender, pero si te gustan las series policiacas, pues también la serie tiene algo que ofrecer, aunque como todas las series tiene sus altibajos en cuestión de la trama.

miércoles, febrero 11, 2009

DevLab: GIT parte 1

Este primer video vamos a realizar una introducción a el sistema de control de código fuente GIT, este videocast esta conformado por una primera parte (este video) y una segunda parte que se publicará próximamente.


DevLab Git from Mario A Chavez on Vimeo.

Recursos

DevLab Screencast de desarrollo de software

Ya el año pasada habia comenzado con esta iniciativa de crear Screencasts sobre temas de desarrollo de software, por diversas situaciones ya no pude continuar haciendolo.

Pero he decidido buscarme el tiempo para dedicarle a la creación de estos videos, esperando que sean de ayuda mutua, es decir que el contenido les aporte algo en su desempeño diario, y que támbien a través de la retro-alimentación me ayuden haciendome saber sus comentarios sobre el tema.

DevLab

La serie de Screencast se llama DevLab y la puden acceder desde esta liga o subscribirse a al feed a traves de feedburner.

El primer video esta práticamente listo y es sobre el Sistema de Control de Código Fuente GIT

ASP.NET MVC != Ruby On Rails

ASP.NET MVC desde que llego a los portales de noticias y se empezaron a publicar blogs sobre él, creo que ha estado bajo fuego enemigo como fuego amigo.

Y una buena parte de ese fuego, viene desde el "bando" de los programadores de WebForms, que no se hacen a la idea de desarrollar aplicaciones Web en esta herramienta tan "minimalista" y que no cuenta con ningún control UI que puedan "arrastrar y soltar" para componer su pagina, forzandolos a programar HTML.

Otra parte del fuego, viene de la misma gente .NET, que esperaban que ASP.NET MVC se parezca mas a Ruby On Rails y que están un tanto en desacuerdo con las decisiones técnicas que realizadas sobre el Framework.

Y por ultimo esta la gente que escucha el acrónimo MVC y espera que ASP.NET MVC sea un clon exacto de Ruby On Rails, y que al ver que no es así, simplemente desestima el Framework.

Desde mi punto de vista, ASP.NET MVC no debería de tener ningún compromiso de parecerse a Ruby On Rails, creo que debe de crecer por su cuenta, tomando las fortalezas de .NET así como sus debilidades también.

Pero volviendo al titulo de este post, ASP.NET MVC != Ruby On Rails y no se debe de esperar que lo sea por las siguientes razones:

Ruby On Rails es un framework super integrado desde la presentación Web hasta el acceso a la base de datos, esto nos ayuda a no preocuparnos sobre la "plomería" de nuestro proyecto y simplemente enfocarnos a lo importante, implementar la funcionalidad de negocio de nuestra aplicación.

Por su parte ASP.NET MVC es únicamente un Framework para desarrollar aplicaciones Web con el patrón MVC, pero no ofrece una guía sobre el acceso a base de datos, validación, ni ninguna otra cuestión de infraestructura. Aunque esto no es malo del todo; pero hay señales encontradas por parte del mundo .NET en este sentido, por ejemplo Microsoft empuja el uso de Entity Framework como capa de persistencia a datos, gente de la comunidad y empleados de Microsoft realizan sus demos con Linq2SQL y la gente mas independiente de Microsoft empuja NHibernate.

Esta situación donde no hay quien de una pauta, causa confusión en la gente que quiere aprender a desarrollar con ASP.NET MVC o los que vienen de frameworks como Ruby On Rails, que esperan llegar y desarrollar sin preocuparse de esas cuestiones, y que al final de cuentas se van decepcionados porque ASP.NET MVC no llena sus expectativas.

Hasta ahorita las únicas guías serias y con fundamento que he visto es la que promociona Headspring con su Arquitectura de la Cebolla y los proyectos CodeCampServer y MVCContrib, y la guía de SharpArchitecture, que de alguna manera es muy parecida a la Arquitectura de la Cebolla. Por lo menos ambas ayudan a olvidarse de los detalles de implementación y dedicarse a crear la funcionalidad de la aplicación.

Si a final de cuentas lo que buscamos son comparaciones, creo de ASP.NET MVC se parece mas al framework de Ruby Merb, el cual, al igual ASP.NET MVC es agnóstico a su capa de persistencia, presentación, etc.; tal y cual es el estado actual de ASP.NET MVC. Ambos frameworks tienen puntos extensibles que nos permiten reemplazar la funcionalidad original por nuestra la funcionalidad preferida.

Por lo tanto y para finalizar, quiero remarcarlo una vez mas, ASP.NET MVC != Ruby On Rails

martes, febrero 03, 2009

México First


México First es una iniciativa anunciada bajo el marco de Prosoft 2.0 a mediados del 2008. Esta iniciativa es impulsada por la Secretaria de Economía, con el apoyo de la Cámara Nacional de la Industria Electrónica, de Telecomunicaciones y Tecnologías de la Información (CANIETI) y la Asociación Nacional de Instituciones de Educación en Informática (ANIETI).

El objetivo de México First es lograr la certificación de profesionistas y graduados de instituciones académicas en áreas relacionadas con las IT y sus procesos, según los objetivos del programa se espera que para el 2012 existan algo así como 150,000 personas certificadas, aunque hay otras versiones donde indica que realmente esperan 65, 000 personas certificadas.

Como mencione, las áreas a certificar van Business Process Outsourcing (BPO) a certificaciones IT. En el lado de las certificaciones IT, me llama la atención que buscan certificar personal en metodología TSP (Team Software Process) y PSP (Personal Software Process).

Ambas metodología se enfocan en como las personas y equipos deben de trabajar en conjunto para desarrollar software, según - el articulo de Software Guru, en las ligas al final del post - TSP/PSP ayudan a que las empresas pequeñas se acerquen a marcos de trabajo complejos como CMMI, pero que no se supone que la norma Moprosoft tenia este mismo objetivo? acercar a la pymes de desarrollo de software a marcos como CMMI?

Ahh, Moprosoft tiene un hoyo grande, quizás deliberado, quizás no, no se enfoca en las personas, si no en los procesos de la empresa, pero si se pregonaba que las empresas de desarrollo de software que aplicaran Moprosoft iban a tener un mejor nivel de calidad en el desarrollo de software, porque meter ahora TSP/PSP, y si TSP/PSP es complemento de Moprosoft, porque no se promociono junto con Moprosoft, o será que Moprosoft no dio "el ancho" y ahora TSP/PSP es un "parche" para asegurar la calidad del software.

El caso es que como empresa desarrolladora de software, ahora hay que certificar a los empleados en TSP/PSP, para ahora si, poder alcanzar un nivel de madurez en el desarrollo de software. No estoy en contra de estos modelos de "calidad" de software, simplemente creo que hay que interponer a las personas sobre los procesos y herramientas, y que es mejor responder a los cambios de forma organizada, en lugar de solamente seguir un plan - Si 10 puntos para el que me diga donde vienen estas ideas -.

MexicoFirst BOPIT


Sobre las certificaciones técnicas, no estoy en contra de ellas, solamente creo que son una falsa sensación de seguridad, porque el contratar una persona certificada, a mi no me dice que va a tener un mejor o peor desempeño que alguien que no tiene certificaciones; pero en cuestiones de Curriculum y de mercadotecnia, pues una certificación no se ve nada mal.

Que al final de cuentas el objetivo de la SE con las certificaciones es el poder tener una mejor mercadotecnia para atraer inversión externa en BPO e IT a México, aunque al final el cliente no creo que se vaya con quien tengan mas certificaciones que otros, todos se va a reducir a el costo, quien lo pueda hacer mas barato.

Volviendo al punto de la iniciativa, el caso, es que el gobierno federal ha destinado fondos para apoyar a que las empresas certifiquen a sus empleados en la áreas mencionadas, estas certificaciones no serán gratuitas, pero tendrán un descuento de alrededor del 90%, por lo tanto si te interesan estas certificaciones y la empresa en la que trabajas esta afiliada a la CANIETI o algún Cluster TI, o estas estudiando la universidad, hay que investigar como poder obtener este beneficio.

Por el lado de la Comunidad Tijuana.NET también habrá información proximante de como se puede acceder a estos fondos para las certificaciones, tanto para profesionistas independientes, como miembros de la comunidad en general.

lunes, enero 19, 2009

Mis tags en Delicious

Este mi primer post del 2009 es relax, tengo una serie de temas que me gustaria tratar en las siguentes semana, por lo que espero poder postear mas seguido.

Por cierto no me habia fijado, pero hace 20 días este blog cumplió 2 años.

El día de ayer me encontré con esta página, la cual permite crear un tagcloud de los tags de Delicious, al generar mi tagcloud, creo fue contundente mi interes personal actual sobre Ruby On Rails.

delicious tagcloud


Cual es tu tendencia sobre las paginas que guardas con Delicious?
Mis bookmarks en Delicious estan aquí

martes, diciembre 16, 2008

Oxite, el proyecto que termino quemandose solo


Hace algunos días se anuncio con mucho eco Oxite, un manejador de contenido Web desarrollado por Microsoft. El revuelo que causo en algunos lados era debido a que esta desarrollado con el ASP.NET MVC Framework y que esta acompañado de una licencia Open Source - Ms PL -.

Por otro lado en algunos sitios se llego a mencionar que ahora Microsoft quería competir contra WordPress.

Oxite nació, como se como una herramienta Open Source para el manejo de contenidos del sitio Mix Online de Microsoft, y según la pagina en Codeplex de Oxite, tiene dos objetivos principales:
1.- Ser un ejemplo de funcionalidad base de un blog
2.- Ser un ejemplo de una aplicación real desarrollada en ASP.NET MVC

Ante la publicidad que Microsoft le ha proporcionado a Oxite, sobre todo señalando que es una aplicación "real" de ASP.NET MVC, no era de extrañarse que ante la falta de aplicaciones guía para el desarrollo con ASP.NET MVC una horda de programadores "corrieran" a descargar el código fuente y empezar a utilizarlo como base para otras nuevas aplicaciones, del 5 de Diciembre a la fecha el código fuente se ha descargado 15,326 ocasiones.

Pero días después, ya que "humo" alrededor de Oxite se ha asentado le han empezado a caer las criticas al ser una aplicación pobremente realizada. El primer critico de la aplicación fue Rob Conery - Microsoft -, el menciona lo siguiente:

* La aplicación esta abierta a ataques, ya tiene vulnerabiliades XSS - Cross-site Scripting -, al omitir el uso de Html.Encode para desplegar texto en la pagina.

* En términos de arquitectura hace uso del patrón Repository, pero delegan al patrón la tarea de crear sus DataProviders en lugar de hacer uso de Inyección de Dependencias, permitiendo así que los DataProviders se inicialicen únicamente una vez de forma Singleton.

* Critica el uso de controladores como capa de negocio o "Fat Controllers"

* Recomienda separar y agrupar las acciones de los controladores por áreas funcionales.

* Evitar usar ViewData como cubeta donde "tirar" datos, ya que la ideología tanto de los controladores como de las vistas es ser "ligeras" como sea posible.

* Extraer la lógica de las vistas y moverla a "Helpers", evitando así el código espagueti de Oxite.

Por su lado Karl Seguin critica los siguientes puntos:
* La arquitectura esta sobre-diseñada

* La falta de pruebas de unidad, integración y funcionales, después de todo el Framework MVC favorece al uso de pruebas para asegurar el funcionamiento de la aplicación.

* Al igual que Rob, comenta sobre el abuso de los controladores, con lógica que no debería de estar ahí, y la falta de Inyección de dependencias para el manejo de las mismas.

* También menciona el hecho de las Vistas con código espagueti y el abuso de ViewData

* Otro punto importante es porque la aplicacion hace uso de Linq To SQL, si su futuro esta dudoso, ya que Microsoft favorece Linq To Entities.

* También critica la desaparición de la M del acrónimo MVC, indicando que la V se desarrollo de forma mediocre y la C completamente horrible.

* Para rematar hace una serie de observaciones sobre inconsistencias en el código donde parece que intervinieron varias personas, pero cada una aplico su estilo propio.

Chad Myers recomienda sobre Oxite:
* Oxite debe de ser retirado hasta que se arreglen por lo menos los problemas de seguridad

* Oxite no debe de ser visto como base o guia para desarrollar aplicaciones ASP.NET MVC

* Si quieres aprender ASP.NET MVC y no te es familiar el patrón MVC, alejate lo mas que puedas de Oxite.

Y para finalizar aqui hay un post de Scott Koon aka "lazycoder" donde compila una serie de posts criticando Oxite, pero tambien invita a la gente a aportar a Oxite, ya que al ser Open Source es posible que se pueda corregir.

Con esto queda demostrado que ASP.NET MVC no es un "Silver bullet" para el desarrollo de aplicaciones Web, y que cualquier herramienta/tecnologia puede ser abusada al extremo y sin piedad.

Si quieres conocer ASP.NET MVC te recomiendo ver el código fuente de CodeCampServer y SharpArchitecture, ambas proveen de una buena guía como usar ASP.NET MVC.

jueves, diciembre 11, 2008

Curso ASP.NET Upgrade información para asistir

 Ya esta disponible la información para asistir al curso ASP.NET Upgrade.

Como mencione en un post anterior, el curso iniciara el Sábado 10 de Enero, continuara el sabado 17 de Enero y finalizara el sabado 24 de Enero 2009 en las instalaciones de IT@Baja.

IT@Baja Clúster de TI de Baja California
Dirección:
Blvd. Díaz Ordaz, 4558-209,
Edificio Salomón Local 209,
Col. Las Palmas, Tijuana, B.C.
Tijuana, B.C. 22123

El costo del curso es de 500.00 pesos -pago único por los tres días - como cuota de recuperación, NO DEPOSITES ANTES DE CONFIRMAR TU LUGAR !.

Para confirmar sigue estos pasos:
1. Envía un mail a Gabriel Flores con la intención de apartar lugar en el curso
2. Se te responderá con un mail si aún hay cupo
3. Deposita tu cuota de recuperación en
Banamex
Cuenta de Cheques Sucursal 13 Cuenta 7692082
Nombre Gabriel Flores Romero
4. Envía un scan de la ficha de depósito a Gabriel Flores por mail
5. Te esperamos en las instalaciones del Clúster

Temario del curso esta disponible en la pagina de la Comunidad Tijuana.NET.

viernes, noviembre 28, 2008

Cambiale la imagen al Google Reader

Ya parace que se acabo la euforia de poder cambiarle el tema a tu Gmail, ya casi todos si no es que todo el mundo cuentan con esta funcion y ya le pusieron todos y cada uno de los temas disponibles a su Gmail.

Pues ahora ha llegado el momento pero para Google Reader. Si ya te aburrio el tema original en azul y blanco:

Old GR
Uploaded with plasq's Skitch!


Ahora con la ayuda de GreaseMonkey y un par de script vas a poder cambiarle el "look" por uno mas "cool". El script se llama Helvetireader y en combinacion con otro script llamado "Show Feed Favicons" vas a poder tener un Google Reader como este:

Cool GR
Uploaded with plasq's Skitch!


Este truco funciona con todos los navegadores, excepto IE*.

jueves, noviembre 27, 2008

Encuesta de salario IT 2008 de Software Guru

Como cada año la revista Software Guru presento su encuesta de salarios IT en México, la encuesta se realizo entre 2,162 profesionistas que contestaron una encuesta vía Web.

Recomiendo ir al sitio de SG para ver el articulo completo, ya que en este post solo voy a mencionar algunos puntos que me parece interesantes.

Primeramente el rango de salario mensual varia entre menos de 4,000 pesos y mas 80,000 pesos, siendo la mediana alrededor de 25,000 pesos.

Otro dato importante es que los tres estados con salarios IT mas bajos son: Chiapas, Oaxaca y por ultimo Veracruz. En cambio los estados mejor pagados son: el DF en primer lugar, después Nuevo León y por ultimo Edomex.

Si eres mujer y trabajas en IT en promedio vas a ganar 6,000 pesos mensuales menos que los hombres.

La mejor edad para trabajar en IT y ganar un buen sueldo va entre los 40 y 59 años.

Los puestos mejor pagados son: primeramente Alta dirección, Dirección de sistemas, Ventas y Arquitecto. Los peores pagados son: Desarrollador, Soporte, Redes, Docencia y finalmente Webmaster.

En relación a la escolaridad no hay sorpresas, mientras tengas un titulo mas alto, mejor pagado, donde si hay diferencia es ser universitario titulado y no titulado, por alrededor de 5,000 pesos mensuales, hay que ir desempolvando las tesis.

En cuanto a las tendencias tecnológicas, es mejor que desempolven sus cursos de Cobol, por que es donde les van a pagar mas, .NET y J2EE, muy bien pagado también. Por favor a los programadores de Php (peor pagado), Delphi y VB, es mejor que aprendan otros lenguajes, por ejemplo Cobol...

Para las plataformas no hay como Mainframe, Unix y AS400 para obtener jugosos sueldos; DOS (peor pagado), Linux y Mac, hay que cambiarnos a otra cosa.

Hay que aprender a operar las bases de datos DB2, Informix y Sybase, por favor olvidense de PostgreSQL, MySQL y Firebird (peor pagado).

Sobre aplicaciones, por favor no pongan en el curriculum: "Yo se manejar el Word y el Excel, ademas del programa para generar etiquetas", hay que aprender Business Process Management (BPM), Business Intelligence (BI) y Customer Relationship Management (CRM).

Habilidades adicionales que debemos considerar es el manejo de EDI y Process Management (PM).

Finalmente las certificaciones recomendables son: PMP, SAP y Microsoft Systems Engineer.

Según las conclusiones del articulo, los salarios IT en México crecieron un 13% con respecto al 2007. Las posiciones administrativas son las que mas ganan, con la excepción del Arquitecto de Sistemas que es muy remunerada a pesar de ser muy técnica.

Creo que voy a tener que modificar mi curriculum para darle mas realce que trabaje desarrollando para Mainframe y en Cobol, aunque la falta de personal calificado en .NET y J2EE tambien hace que sean opciones viables para obtener un buen salario.

Toda la información aquí presentada se obtuvo de la publicación Revista Software Guru en su edición de Noviembre 2008 - Enero 2009

Fotos bajo otras licencias
Fotos bajo licencias CC

Curso ASP.NET Upgrade pospuesto

Por una serie de cuestiones fuera del alcance de las Comunidad Tijuana.NET, el curso ASP.NET Upgrade se ha pospuesto para llevarse a cabo los 3 sabados de Enero 2009, a partir del sabado 7.

La buena noticia, es que ya se tiene espacio confirmado, gracias a IT@Baja que nos ofrecio sus instalaciones, la mala noticia - me suena a cliche - es que tenemos espacio unicamente para 12 personas.

Como se menciono el costo de este curso es simbolico y muy accesible, cursos similares pueden llegar a costar mas 500 dolares.

Por favor esten al pendiente de este blog y la pagina de la comunidad para mayor informacion.

miércoles, noviembre 26, 2008

LINQ2SQL: Recuperandonos de errores al crear un registro nuevo

El día de hoy me preguntaron como manejar conflictos en el DataContext de LINQ al insertar nuevos datos - específicamente si falla debido a un valor duplicado en algún cambio que tenga indice único -.

Supongamos que tenemos el siguiente método que nos permite crear una nueva Categoría en nuestra DB, tomando como entrada la categoría y la descripción de la misma; categoría en nuestra base de datos tiene un indice de tipo único, por lo tanto no pueden existir dos categorías con el mismo nombre.

private void CreaCategoria(string categoria, string descripcion)
{
var categoria = new Categoria(categoria, descripcion);
context.Categoria.InsertOnSubmit(categoria); // context es un DataContext inicializado en alguna
          // parte de nuestro programa y Categoria es el 
          // nombre de nuestra tabla

try
{
context.SubmitChanges(ConflictMode.FailOnFirstConflict);
} catch (ChangeConflictException ex)
{
// Manejo de la excepcion, a la mejor un MessageBox al usuario indicando el error.
}
} 

El método aquí mostrado va funcionar correctamente en nuestro escenario si lo llamamos para crear una categoría nueva:

CreaCategoria("Categoria 1", "Primera categoria");

Pero si lo mandamos llamar para crear otra categoria con el mismo nombre el método va a fallar y vamos a recibir el mensaje de alguna forma.

CreaCategoria("Categoria 1", "Segunda categoria");

Falla, porque como se menciono el campo Categoria tiene un indice único, y aunque llamemos una tercera vez el método con los valores correctos:

CreaCategoria("Categoria 2", "Segunda categoria");

El método va continuar fallando aun y cuando ya estamos creando un nuevo objeto con los valores correctos, esto se debe a que el DataContext que creamos mantiene registro del registro invalido de nuestro intento previo al anterior.

La forma de como solucionar esto es, agregando lógica en el bloque de captura de la excepción para que que el DataContext elimine ese dato invalido de su registro, esto lo podemos hacer manipulando la colección ChangeConflicts que nos ofrece DataContext y que es donde residen todos los objetos con algún problema.

Podemos recuperarnos de este error de dos forma, la primera es eliminando todos los objetos con conflicto en nuestro DataContext, lo cual no puede ser muy buena idea, pero si así lo deseamos, lo podemos hacer de la siguiente forma:

context.ChangeConflicts.Clear();

o podemos ser mas especifico y solo eliminar el objeto que estamos tratando de insertar:

context.ChangeConflicts.Remove(categoria);

Por lo tanto nuestro método quedaría como sigue, y nos permitiría intentar crear una vez mas la categoría, ya que el usuario soluciono el problema:

private void CreaCategoria(string categoria, string descripcion)
{
var categoria = new Categoria(categoria, descripcion);
context.Categoria.InsertOnSubmit(categoria); // context es un DataContext inicializado en alguna
          // parte de nuestro programa y Categoria es el 
          // nombre de nuestra tabla

try
{
context.SubmitChanges(ConflictMode.FailOnFirstConflict);
} catch (ChangeConflictException ex)
{
// Manejo de la excepcion, a la mejor un MessageBox al usuario indicando el error.
context.ChangeConflicts.Remove(categoria);
}
} 

ITT Carne asada 8vo - 9no ISC

Mapa a la casa del "Mode", para la carne asada, ustedes ya saben la fecha y la hora...

martes, noviembre 25, 2008

Evaluación Docente del ITT

Cada semestre en el ITT se realiza la evaluación docente por parte de los alumnos a los maestros que les impartieron clases, la evaluación es un requisito obligatorio para la inscripción al siguiente semestre.

Ya en un post previo había comentado que el sistema que tenían anteriormente - en ASP.NET - tenia un problema de inyección de SQL, aun y cuando lo reporte el sistema siguió funcionando por algunos semestres mas.

Ahora hay nuevo sistema escrito en PHP, parece que no tiene problemas de inyección de SQL, pero tiene un problema mayor, simplemente NO FUNCIONA!!.

Después de las respectivas mentadas para los desarrolladores, que espero que no sean del ITT - por aquello de la pena ajena -, me puse a analizar el problema detalladamente y esto es lo que encontré.

Primero el problema consiste en que si se puede uno firmar en el sistema, pero al momento de realizar la evaluación docente hay que contestar algunas preguntas y presionar un botón llamado "siguiente pregunta", este botón envía una forma al servidor donde se procesan las respuestas.

Evaluacion
Uploaded with plasq's Skitch!


El problema esta que el botón en lugar de "postear" la forma, su evento es interceptado por un evento onclick, el cual llama la función de javascript llamada verificar. Lo absurdo de esto es que la forma solo tiene radio buttons, no hay text fields donde el usuario puede cometer un error en los datos, pero aun así esta función de javascript realiza la "verificación" de lo contestado en los radio buttons.

evaluaforma
Uploaded with plasq's Skitch!


Aquí en esta función es donde empieza el problema, si la verificación falla, despliega un mensaje en la forma indicando el problema, pero la función verificar falla desde antes de realizar cualquier validación, por lo tanto no muestra ningún mensaje de error simplemente no hace nada y la forma nunca se "postea".

El problema recae en que haciendo uso del DOM el script trata de obtener una instancia de la forma mediante document.getElementById("cuestionario"), y en el código html no existe ningún elemento con id = cuestionario, por tal motivo cuando trata de leer en la siguiente linea la longitud de los elementos que conforma la forma, obtiene un "null reference" y el programa se detiene.

evalua_form
Uploaded with plasq's Skitch!


Una solución seria ponerle a la declaración de la forma el id = "cuestionario" o cambiar la linea de la función verificar a que obtenga la referencia por el nombre de la forma (name = "cuestionario") y no el id, ej:
var form = document.getElementsByName("cuestionario")[0];

script
Uploaded with plasq's Skitch!


Esperemos que alguien arregle el problema y podamos realizar la correspondiente evaluación para no batallar - mas de normal - en la re-inscripcion del siguiente semestre.

Trate de notificar este problema pero resulta que la pagina no tiene email de contacto, quizás por vergüenza de quien la programo, no lo se...

lunes, noviembre 24, 2008

Instalando Ruby on rails a la Mac en Windows

Por cuestiones de un proyecto en el que estoy trabajando, estamos utilizando Ruby on Rails como la herramienta para el desarrollo web. En el equipo de desarrollo hay gente que utiliza OSX y Windows como sistemas operativos.

Primeramente se instalo y se creo el esqueleto del proyecto en OSX, usando como editor del código fuente el excelente editor TextMate. posteriormente cuando los desarrolladores de Windows les toco hacer su parte, la pregunta que surgió, fue iban ellos a editar el código fuente de RoR.

Siendo que los desarrolladores de Windows estaban mas acostumbrados a IDEs, se busco una IDE con la que pudieran trabajar. De entre las opciones se eligió Aptana y su plugin RadRails, el cual se veía muy bien como entorno de desarrollo, por el gran soporte ofrecido para RoR.

Hasta aquí todo parecía que iba por buen camino, pero los desarrolladores se comenzaron a quejar de que Aptana tardaba mucho tiempo para iniciar, que después de estarse ejecutando por tiempos prolongados, la maquina empezaba a "alentarse".

Por otra parte cuando discutíamos cuestiones del código y yo usaba TextMate, solo con una serie de comandos (atajos de teclas) de teclado y ellos para realizar la misma acción en Aptana tenían que hacer uso del mouse y escribir instrucciones para obtener el mismo resultado, surgió la inquietud de tener una herramienta como TextMate en Windows.

Buscando encontramos e-TextEditor, el cual es un editor de código fuente modelado a partir de TextMate, es tan cercano su parecido que inclusive "Bundles" (Extensibilidad mediante comandos y fragmentos de código) de TextMate en su mayoría son compatibles con e-TextEditor. Esto es precisamente lo que buscábamos; ya que nos permitiría a todos trabajar de manera muy similar aunque algunos estemos en OSX y otros en Windows.

El único detalle con e-TextEditor, es que necesita soporte en Linux en Windows para poder trabajar de manera optima con RoR y hacer uso de los bundles de TextMate disponibles para RoR, pero con las instrucciones que voy a mostrar a continuación, podrán tener un ambiente de desarrollo para RoR muy parecido a trabajar con RoR en OSX.

Nota: Antes de proceder con las instrucciones aquí mencionadas si se tiene instalado Ruby, RubyGems y/o Rails a partir de un instalador para Windows, es necesario des-instalarlo y ademas eliminar la carpeta C:\ruby

Instalando ambiente Linux en Windows
Primeramente hay que instalar Cygwin, el cual es un ambiente parecido a Linux para Windows, de hecho provee una capa de emulación que permite a herramientas de Linux trabajar en Windows.

Para instalarlo, hay que dirigirnos al sitio http://cygwin.com/ y descargar el instalador, una vez descargado, lo ejecutamos y el asistente de instalación nos pedirá que le indiquemos donde se va instalar Cygwin, de que repositorio se va a descargar Cygwin y finalmente nos pedirá que paquetes deseamos instalar, las opciones por omisión están bien, en los paquetes a instalar ahí es donde nos detendremos un momento.

De la opción de paquetes hay que instalar:
  • Ruby
  • Make
  • sqlite3
  • libsqlite*
  • gcc
  • gcc+
  • gcc4
  • gcc4++
  • git
  • automake
  • autogen

Todos esos paquetes están distribuidos en las categorías: Interpreters, Databases y Devel. Algunos de ellos al seleccionarlos, seleccionaran automáticamente otros paquetes dependientes; la instalación va a tomar unos minutos ya que los paquetes se descargan primero de Internet.

Cygwin
Uploaded with plasq's Skitch!


Si todo salio bien tendremos un icono como el que se muestra en el escritorio, ademas de que si, lo ejecutamos, nos va a abrir una ventana de MS-DOS, solo que en interprete en lugar de ser MS-DOS de Windows, va a ser el Bash de Linux.

Bash
Uploaded with plasq's Skitch!


El programa de consola de Windows tiene muchas carencias, por tal motivo vamos a reemplazarlo por otro programa, que soporte múltiples ventanas, múltiples interpretes, background transparentes entre otras cosas, este programa se llama Console, hay que descargar la versión mas reciente disponible (Console 2.00 Beta, build 141).

Console
Uploaded with plasq's Skitch!


Una ves descargado, lo descomprimimos en el directorio de nuestra preferencia y ejecutamos el programa Console.exe, de preferencia creamos un acceso directo a nuestro escritorio o quicklaunch bar. Para configurar que Cygwin se ejecute dentro de Console, nos dirigimos al menú Edit > Settings y en la ventana de configuración nos dirigimos a la opción de Tabs, hacemos "click" en el botón de "Add" y en el "Textbox" llamado "Shell" introducimos la siguiente linea, siempre y cuando Cygwin se haya instalado en c:\cygwin:

C:\cygwin\bin\bash --login -i

Le ponemos un titulo para ese interprete y con el botón de "Move up" movemos nuestro nuevo "Tab" al principio, para que así cada vez que ejecutemos Console, automáticamente se abra con el interprete de "Bash". Un paso recomendable en la configuración de Console, es cambiar la tipografía, esto lo podemos hacer en "Apparence" en mi caso elegí Consolas de 14pt.

Console-config
Uploaded with plasq's Skitch!


Instalando el ambiente Ruby on Rails
Hay que descargar RubyGems, de preferencia la versión 1.3.1 del archivo en formato tgz, una vez descargado, lo copiamos al directorio c:\cygwin\tmp, y desde Console ejecutando en interprete "Bash" los descomprimimos e instalamos con los siguientes comandos:

cd /tmp
tar xzvf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb


Despues de un momento gems debio de quedar instalado, ahora podemos proceder a instalar Rails y eso lo hacemos de la siguiente forma, desde Console:

gem install rails --include-dependencies

Ahora podemos continuar instalando otros gems que utilicemos en el desarrollo en Rails, por ejemplo podemos instalar soporte para SQLite3, de la siguiente forma:

gem install sqlite3-ruby

De igual forma podemos instalara cucumber, rspec o tras mas:

gem install rspec rspec-rails cucumber webrat
gem install term-ansicolor treetop diff-lcs hpricot
gem install thoughtbot-shoulda --source=http://gems.github.com
gem install thoughtbot-factory_girl --source=http://gems.github.com


Para instalar soporte para MySQL, es necesario compilar MySQL con soporte para Cygwin y eso lo vamos a hacer en la siguiente sección.

Instalando soporte MySQL para Cygwin
Suponiendo que MySQL es el servidor de base de datos con el que vamos a trabajar en Rails y que actualmente esta instalado en Windows, debemos prepararlo para poderlo utilizar en Rails desde Cygwin.

Por tal motivo descargamos el codigo fuente de MySQL que corresponda con la versión binaria que tenemos instalada en Windows; en mi caso este archivo corresponde con la versión MySQL 5.0.67, el codigo fuente lo podemos descargar de aqui.

Una vez descargado, copiamos el archivo al directorio c:\cygwin\tmp, y desde Console, procedemos a descomprimirlo, compilarlo e instalarlo así:

cd /tmp
tar xzvf mysql-5.0.67.tar.gz
cd mysql-5.0.67
./configure
make install


Durante este paso hay que buscar en que entretenerse ya que tarda bastente tiempo...

Cuando la instalación haya terminado, nuestro siguiente paso es instalar el soporte de MySQL en Rails, para tal efecto desde Console ejecutamos:

gem install mysql

Probando Rails
Para verificar que Rails quedo instalado correctamente en Cygwin, en Console ejecutamos las siguientes instrucciones para crear una nueva aplicación Rails usando MySQL:

cd
mkdir Proyectos
cd Proyectos
rails -d mysql SampleApp


Una vez creado el esqueleto de la aplicación, es necesario modificar el archivo database.yml, primeramente para indicarle la clave del usuario root de MySQL y posteriormente para indicar el servidor MySQL al que nos vamos a conectar.

Para editar el archivo database.yml podemos usar el Notepad de Windows, pero Notepad no se lleva bien con los archivos Linux; por tal motivo vamos a usar el programa Notepad2, para editar el archivo lo encontramos en la ruta c:\cygwin\Home\[usuario]\Projects\SampleApp\config\database.yml

Primero hay que poner la clave correspondiente para el usuario root de MySQL, después hay que modificar el valor del host, hay que reemplazar "localhost" por 127.0.0.1, ya que localhost aquí, va a provocar que Rails no encuentre el servidor.

database.yml
Uploaded with plasq's Skitch!


Después de guardar los cambios, regresamos a Console, con las siguientes acciones crearemos las bases de datos en MySQL, crearemos un Modelo, Controlador y Vistas usando el generador Scaffold:

cd
cd Proyectos/SampleApp
rake db:create
script/generate scaffold Post title:string body:string
rake db:migrate


Ahora vamos a ejecutar el servidor Web desde Console:

script/server

Si apuntamos nuestro navegador a la dirección http://localhost:3000 debemos de recibir la pagina de bienvenida de Rails y si navegamos a http://localhost:3000/posts, podremos ver parte de nuestra aplicación generada a partir del modelo Post.

Rails welcome
Uploaded with plasq's Skitch!



Rails app
Uploaded with plasq's Skitch!


eTextEditor
Ya que comprobamos que Rails esta funcionando en Cygwin y que nuestra instalación de MySQL también funciona, ahora procedemos a instalar el editor eTextEditor, que a fin de cuentas es el motivo por el cual estamos realizando estas acciones.

Hay que descargar el eTextEditor de su sitio web, la licencia la podemos comprar en linea o podemos continuar con los 30 días de evaluación. Una vez instalado, lo ejecutamos desde Console simplemente con teclear (Nota: Si ya tenemos Console abierto, es necesario cerrarlo y volverlo a abrir):

e

Al iniciar nos indicara que necesita actualizar unos paquetes de Cygwin, elegimos la forma automática, después de un momento el edito estar listo para usarse. Lo que sigue en este punto es instalar/actualizar algunos bundles que nos harán la vida mas fácil en Rails. Primeramente vamos al menú Bundles > Edit Bundles > Manage Bundles, a continuación nos presentara una ventana con un listado de bundles disponibles para instalarse o para actualizarse.

Mi recomendación es actualizar instalar los siguientes bundles:
  • Bundle Development
  • JavaScript JQuery
  • JavaScript Prototype & Scrip_aculo_us
  • Ruby on Rails
  • Ruby RSpec
  • Ruby Shoulda
  • Ruby
  • TextMate

Bundles
Uploaded with plasq's Skitch!


A parte de los bundles que nos muestra esta pantalla, podemos instalar algunos bundles adicionales a través de Console, por ejemplo vamos a instalar el bundle para Git (Sistema de Control de Versiones) y el bundle para Cucumber, por lo tanto en Console tecleamos las siguientes instrucciones:

cd /cygdrive/c/Users/[usuario]\ Data/e
mkdir Bundles
cd Bundles
git clone git://gitorious.org/git-tmbundle/mainline.git Git.tmbundle
git clone git://github.com/bmabey/cucumber-tmbundle.git Cucumber.tmbundle


Una vez que termine, en la pantalla del eTextEditor seleccionamos el menú Bundles -> Bundle Editor -> Reload Bundles, después de esto los bundles recién instalados aparecerán en le menú Bundles, mostrandonos las acciones, comandos y fragmentos de código que cada bundle provee.

Ahora para editar nuestra aplicación Rails, hay que cerrar el eTextEditor, en la pantalla de Console nos dirigimos al directorio de nuestro proyecto:

cd
cd Proyectos/SampleApp
e .


El comando e . nos abrirá la pantalla del eTextEditor con nuestro proyecto cargado, como paso adicional podemos cambiar los colores del editor por unos mas "ruby- ish", para esto vamos al menú Edit > Edit Theme y de la lista de temas elegimos "Vibrant Ink" adicionalmente podemos cambiar la tipografía a Consolas.

Ahora para ver como funciona el bundle de Ruby on Rails vamos a ejecutar las pruebas de unidad en nuestro modelo Post, a través de la consola la forma de hacer esto es: rake test:unists, pero con el bundle en eTextEditor vamos al menú Bundles > Ruby on Rails > Run Tests > Test Units y despues de un momento obtendremos el resultado de nuestras pruebas de unidad.

eTextEditor-RoR
Uploaded with plasq's Skitch!


Las opciones que nos brindan los bundles generalmente tienes una combinación de teclas de acceso o palabras que al complementarlas con un "Tab" realizar cierta acción, por loo tanto recordar estos accesos rápidos a las acciones mas comunes son de gran ayuda para evitar usar el mouse y navegar a través de los menús.

BundleKeys
Uploaded with plasq's Skitch!


Conclusión
Ruby y Ruby on Rails tienen como concepto la simplicidad para realizar nuestro trabajo, por lo tanto las herramientas que usemos deben de seguir esa linea de simplicidad y no causarnos dolores de cabeza (Lentitud en el sistema, alto consumo de recursos) mientras desarrollamos nuestra "Killer Application", si bien TextMate y eTextEditor no son gratis, su costo es bastante moderado y accesible.

En el ambiente Linux también hay opciones para el desarrollo en Ruby on Rails, pero eso de momento es otra historia para otro post.

Entrepreneur Workshop

En un post pasado comente acerca del Entrepeneur Workshop que la Comunidad Tijuana.NET estaba organizando para el pasado 22 de Noviembre. El evento se llevo a cabo y de buena manera.

Para conocer un poco mas de lo que ahi sucedio los invito a visitar los siguientes posts donde hay reseña, material del evento y los audios-videos de lo que ahi se discutio

jueves, noviembre 20, 2008

Desarrollo de Software Avanzado

Para quienes lleven esta materia en el ITT con el profesor Miramontes, aqui les dejo la informacion que me paso en relacion al proyecto de fin de semestre.

La documentacion de proyecto debe de consistir en:
  • Analisis de requerimientos
  • Especificacion
  • Diseño y arquitectura
  • Prueba
  • Documentacion
  • Mantenimiento
Actualizacion: Me comenta el profesor Miramontes que no es necesario tener la aplicacion completa, pero por lo menos entregar una parte representativa en codigo.

En los puntos tambien me marco "Programacion", pero tambien me comento que espera el trabajo en unos 10 dias - laborables -, por lo tanto no espera mucho detalle en la documentacion, por lo tanto no se si realmente este esperando la programacion del proyecto, lo verifico con el y actualizo esta informacion.

miércoles, noviembre 12, 2008

Entrepreneur Workshop


La Comunidad Tijuana.NET ha estado muy activa en este mes, y precisamente como parte de esa actividad es que se esta organizando el evento Entrepreneur Workshop, el cual es una reunion informal que tiene como objetivos compartir experiencia e información inicial para iniciar negocios en el área de TI:
  • Experiencias para trabajar como freelance
  • Apoyos del gobierno para nuevas empresas en TI
  • Apoyo de Microsoft para nuevas empresas
  • Discusión en general
El evento es gratuito e informal, ven y comparte tus experiencias con nosotros, sin importar el área de las TI de la que tengas experiencia, ni sistemas o programas.

Esta reunión se va a llevar a cabo en el café D'volada ( consumo requerido ) de Otay en Plaza Dorada, sobre Blvd Industrial a un costado del nuevo puente sobre Blvd Manuel J Cloutier (Gato Bronco), el día sábado 22 de Noviembre, de 9 am a 2 pm

Por favor confirmar presencia en los foros del la Comunidad TJ.NET, con un simple, voy a asistir.

Por cierto información de la Comunidad Tijuana.NET, la pueden encontrar en los sitios sociales:
Plaza Dorada

viernes, noviembre 07, 2008

ASP.NET Upgrade: Curso de la Comunidad Tijuana.NET

Pues hoy por fin se anuncio en la pagina de la comunidad, el curso llamado ASP.NET Upgrade, el cual pretende actualizar conocimiento sobre la tecnologia ASP.NET.

El curso se somprende de tres sesiones con una gran cantidad de topicos, los dias en que se llevara a cabo son los sabados 29/Nov, 6/Dic y 13/Dic, en un lugar todavia por definirse, en esta ocasion el curso completo (3 dias) no sera gratuito, pero el costo del mismo sera simbolico.

ASP.NET Momentum
Gabriel Flores - 29/nov/2008
  • Introducción a ASP.NET Ajax
  • Aplicaciones web con Visual Studio 2008
  • Introducción a Silverlight
  • Windows Azure
    • SQL Data Services
    • .NET Services
    • Live Services

Tópicos avanzados en .NET

Mario Alberto Chávez - 6/dic/2008
  • Source Control System
  • Separation of Concerns (SoC)
  • Interface based programming
  • Inversion of Control (IoC)
  • Test Driven Development
  • Unit and integration testing

ASP.NET MVC
Mario Alberto Chávez - 13/dic/2008
  • LINQ
  • Repository pattern
  • Object relational mapping with NHibernate
  • MVC Framework

viernes, octubre 31, 2008

CodeCamp Comunidad Tijuana.NET

El dia de mañana 1ro de Noviembre se llevara a cabo el primer CodeCamp de la Comunidad Tijuana .NET.



El evento es gratuito y comenzara a las 9:00am, en la sala de capacitacion de Palacio Municipal de Tijuana, en la Zona del Rio. La sala se encuentra en la segunda planta en la esquina derecha si se entra por el lado de la bilblioteca.

No olviden llevar sus laptops o notebooks. Mas informacion del evento: CodeCamp





viernes, octubre 24, 2008

CodeCamp de la Comunidad Tijuana.NET

Hace un par de semana publique la intencion de llevar a cabo un CodeCamp sobre .NET por parte de la Comunidad .NET



Pues bien el evento ya es una realidad y estamos a una semana de que se lleve a cabo - la anticipacion y premura - se debe a que teniamos que encontrar un lugar apropiado, el ayuntamiento de Tijuana nos ayudo a obtener este espacio, pero desafortunadamente la unica fecha disponible es el 1ro de Nov.:

    Fecha: Miércoles 1 de noviembre de 2008

    Horario: 9:00 a.m. a 2:00 p.m.

    Ubicación:  Palacio Municipal de Tijuana

    Dirección:  Av. Independencia No. 1350, Zona Río

               Tijuana, Baja California, México CP 22320

    Costo: Entrada gratis


Mas informacion en la pagina de la Comunidad Tijuana.NET

Oferta de empleo para adminstrador de redes Windows

Hay una empresa aqui en Mexico que esta solicitando a un Ingeniero o Licenciado en sistemas computacionales con experiencia en:
  • Manejo y administracion de servidores Windows 2003
  • Manejo y administracion de servidores Exchange
  • Soporte basico a usuarios finales
  • Manejo y operaciones de dispositivos Cisco (ruteadores, VOIP)
El sueldo y las prestaciones son muy buenas, ademas de que la empresa ofrece capacitacion constante. Se requiere que la persona interesada este dispuesta a cambiar su residencia a San Quintin, Baja California.

Si alguien esta interesado por el puesto, por favor envienme un correo a
con su curriculum y datos de contacto, yo enviare esa informacion a la empresa interesada y ellos se contactaran con ustedes.

viernes, octubre 17, 2008

Webforms vs ASP.NET MVC

Ya no es novedad que el nuevo beta del ASP.NET MVC esta disponible, la noticia esta por todos lados, en twitter y blogs relacionados con tecnologia de Microsoft.

De hecho la cantidad de comentarios en Twitter, en donde tengo una busqueda programa para "twitts" relacionados al tema, es impresionante la cantidad de mensajes es diversos idiomas sobre este hecho.

Esta situacion me llevo a preguntarme que pasa con Webforms, cuando el ASP.NET MVC voi la luz publica, surgieron preguntas sobre si ASP.NET MVC vendria a reemplazar a Webforms, de acuerdo con Microsoft la respuesta indicaba que no, que ASP.NET MVC se iba a programar a la par de Webforms y que solamente iba a representar una opcion mas para el desarrollo Web en el area Microsoft.

Si bien Microsoft no creo que tenga intenciones de descontinuar Webforms ni a corto, ni a mediano plazo; las tendencias parecen indicar que el auge de ASP.NET MVC sobre Webforms van en aumento.

Si bien mi percepcion se basa en especulaciones y no es un trabajo de investigacion, voy a atreverme a decir que si bien Microsoft no favorece ninguna de las dos tecnologias en particular, parece que la comunidad si podria estarlo haciendo.

Por ejemplo, el blog de Scott Guthrie ya tiene tiempo que favorece con la cantidad de posts a ASP.NET MVC y Silverlight sobre Webforms, de igual forma sucede con el blog de Scott Haselman, y de alguna forma tambien lo percibo en los blogs de weblogs.asp.net, otra vez quiero aclarar que es una cuestion de percepcion de mi parte.

Ademas de la gran cantidad de "twitts" relacionados con ASP.NET MVC en diversos idiomas que recibo de Twitter, me di a la tarea de usar Google Trends, para ver que tan bien o que tan mal estaba mi percepcion; el resultado fue el siguiente:

Aunque esta tendencia puede estar no del todo correcta, debido a que mucha gente se refiere a Webforms como unicamente ASP.NET, pero, si busco tendencias sobre ASP.NET vs ASP.NET MVC, ASP.NET se dispara, pero incluye tambien busquedas relacionadas con ASP.NET MVC.

Aun asi la grafica muestra que a partir del anuncion de ASP.NET MVC, las busquedas de informacion relacionadas ha ido en crecimiento. Seria muy interesante conocer el ritmo de adoptacion/investigacion de ASP.NET MVC dentro de las empresas, que si bien despues de un año apenas a llegado al estado de Beta, la licencia de "Go-Live" la alcanzo desde Preview 3 ó 4.

Para conocer un poco sobre la opinion de las 3 personas que leen este blog - incluyendome yo - he colocado una encuenta para saber de sus opiniones sobre este tema - estara disponible unicamente una semana -, espero de su ayuda y colaboracion para contestar una unica opcion de las presentadas:
  • Me inclino por trabajar con ASP.NET sobre otras tecnologias
  • Me quedo con ASP.NET
  • Programo para Web en Windows, pero uso otras tecnologias
  • Programo para Web pero no en Windows
  • No programo para Web
La encuesta se encuentra en el lado superior izquierdo de mi weblog


jueves, octubre 09, 2008

Nuevo proyecto: Herramientas de organizacion y colaboracion

Estoy iniciando un nuevo proyecto, en donde la gente que va a colaborar en el no estamos trabajando físicamente en el mismo lugar, aunque si estamos en la misma ciudad.

El primer reto para la formación de este equipo de trabajo es que todos debemos ser auto-suficientes y debes de tener auto-organizacion, con respecto a las tareas de desarrollo que debemos de llegar a cabo; por tal motivo elegí Scrum como la metodología de administración del proyecto, ya que esta enfocada a un desarrollo incremental, ademas de promover la auto-organiacion del equipo de desarrollo y ofrecer una serie de procesos relativamente sencillos en comparación con los procesos "formales" o mas reconocidos de la ingeniería de software.

La parte mas importante de Scrum, desde mi punto de vista, es el reconocer que el cliente puede cambiar las directrices del proyecto en cualquier momento, ademas de que no requiere planeación detallada fundamentada en "castillos sobre el aire", la planeación, al igual que el desarrollo se va realizando de forma incremental, lo que permite responder a cambios de una manera mas natural.

Otro punto importante, para mi, es el seguimiento a los avances, en Scrum las tareas no pueden excederse de 24 horas - o 10 horas laborables al día - lo cual implica que tareas de mayor duración, deben de "romperse" en tareas mas pequeñas, esta granularidad ayuda a tener una visión mas efectiva de los avances reales del equipo.

Por el lado de las herramientas para colaboración, mi búsqueda se centro en:
  • Espacios de trabajo colaborativo
  • Edición de documentos colaborativo
  • Conferencia vía voz/video
  • Administración de Scrum

Como solución para el espacio colaborativo la decisión cayo sobre Huddle en cual ofrece la posibilidad de manejar varios Workspaces (áreas de trabajo) en donde es posible manejar proyectos, equipos de trabajo, información en forma de Whiteboards y listas de discusión, ademas de permitir el intercambio y la edición de documentos en linea.

Para la edición en linea y colaborativa de documentos (varias personas en el mismo documento al mismo tiempo) la decisión fue usar Google Docs. El soporte para múltiples usuarios a la vez es muy bueno, es posible realizar comentarios sobre el documento que se esta editando, enviar invitaciones a diferentes personas para poder realizar cambios o únicamente ver el documento, no es necesario guardalo, automáticamente se va guardando por nosotros, y finalmente lo podemos exportar a varios formatos entre ellos PDF.

Para las conferencias de voz/video estamos utilizando Skype, funciona sin problemas, es multi-plataforma y podemos estar varias personas en conferencia. La calidad del video y el audio es aceptable.

Para la administración de Scrum y sus artefactos de momento tenemos la información en hojas de Excel, pero la intención es moverlo a un sistema mas formal, por tal motivo, estoy evaluando 3 diferentes productos:

- Mingle, es una herramienta desarrollada por ThoughtWorks, bastante completa y madura para la administración de proyectos Agiles, esta basada en RubyOnRails y soporta diferentes bases de datos como "backend". La aplicación en si esta muy Web 2.0, la instalación y configuración es muy sencilla, y es fácil comenzar a utilizarla con las plantilla de proyectos que ofrece. Es posible conseguir una licencia de hasta 5 usuarios de manera gratuita, pero mas de cinco usuarios el costo es algo alto. Algo positivo de Mingle, es que tiene soporte para conectarse a diferentes sistemas de control de codigo fuente, permitiendo rastrear cambios en el codigo a tareas o bugs en Scrum.


- Storyverse, esta es una aplicación realizada en C# y Monorail, enfocada exclusivamente a Scrum, es fácil de instalar y configurar, soporta varias bases de datos como backend, funciona muy bien en .NET, pero tiene algunos problemas en Mono. La aplicación es "open source" lo que facilita el hacerle cambios y personalización, ademas de no tener costo para su uso. La desventaja es que no se integra con sistemas de control de codigo fuente.

-Agilo, esta es una aplicación "open source" desarrollada como plugin de Python para el software Trac, quien también es "open source", el único problema es que simplemente no puede hacer que funcionara, muchos problemas de instalación y configuración, así que realmente no tuve la oportunidad de probarla. Agilo al igual que Mingle, ofrece integracion con sistemas de control de codigo fuente, para ayudar a rastrear los artefactos de Scrum hast el codigo donde se implementan.

El proyecto va avanzado lentamente, pero de forma estable, ya existe el "Backlog" de las características del servicio que se va a desarrollar y ya se comenzó con la creación de historias y tareas para el primer "Sprint". Ya se tiene también la arquitectura que se va a utilizar para el desarrollo, aunque faltan definir todavía algunos detalles.

En un post posterior ya estaré comentando de las herramientas de desarrollo utilizadas en el proyecto.