December 2, 2010

[off-topic] Filosofía DSAR

Navegado por mi viejos tweets, me encontré uno que me pareció particular, filosofía DSAR que sería la filosofía que seguiría en la vida, se basa en 4 puntos muy sencillos para alcanzar el éxito:

  • Descansa: Cualquier cosa que requieras emprender necesitas estar descansado y relajado.
  • Sueña: Para emprender hay que tener sueños, aunque sean muy ambiciosos para hacerlos solo hay que dividirlo en cachitos
  • Analiza: Realmente mi sueño va a tener un impacto?, que requiero para alcanzar mis sueños?, tengo todo lo necesario?, existe algo parecido o similar?
  • Realiza: Es decir emprende, asegúrate de concluir, no lo dejes a medias.

Y esos son los puntos de mi filosofía, espero que les agraden y que también les sean útiles.

October 29, 2010

Mi camino para ser un PSP Developer…

En la vida existen muchos caminos para llegar a donde queremos, varias son las situaciones que me han puesto en donde estoy; he aprendido nuevas y maravillosas cosas a lo largo del tiempo que he residido aquí en guadalajara; sin embargo me he dado cuenta que no es suficiente tengo y necesito ir más y más lejos cada vez.

Adoro la carrera que tomé pues representa nuevos desafíos cada día, no hay ni un solo minuto en el que los informáticos descancemos, somos aquellos que llevamos la pauta del cambio en el mundo pues nosotros somos aquellos que soportan a todos los demás.

ÉxitoPor esos nuevos retos que enfrento me he aventurado a seguir profesionalizando mi carrera, me encuentro próximo a entrar al curso oficial del SEI de PSP, en el cual no solo dejaré miles de líneas de código, pondré mi alma y derramaré hasta el último byte de cada programa que realize de aquí hasta el resto de mi vida.

Así curso de PSP ahí te va Víctor Sánchez…

Posted in PSP
July 19, 2010

Amaras a PSP sobre todas las cosas

Hace un par de días me encontraba corrigiendo un bug junto a mi PM, durante esta pequeña reunión detecto un error del que no me había percatado, entonces me pregunta, ¿Qué paso con tu revisión antes de liberar?, asentí que había confiado en mi; a lo que me responde grave error, simpre hay que revisar, correr checklist de verificación y vivir un proceso personal en el desarrollo de software, por más sencillo que sea aquello que pretendamos desarrollar.

En el lugar donde trabajo (Innox) somos amantes de los procesos y demas cosas que tengan que ver con mejoras continuas, es por eso que a nivel personal nos piden utilizar PSP, ¡OJO! no el Playstation Portable, sino el Personal Software Process.

Pero ¿Qué es el Personal Software Process?, ¿Porqué debo utilizarlo?, ¿Para qué?, ¿me es útil PSP?, ¿Cúal es el objetivo de PSP?.

Según wikipedia el PSP es:

Un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas. Está alineado y diseñado para emplearse en organizaciones con modelos de procesos CMMi.

Entonces porqué debó amar PSP, porque tatuarmelo en el pecho y vivirlo fielmente; la respuesta es sencilla para MEJORAR, te preguntaras, pero cada vez hago cosas “mejores”, mas “complicadas” acaso ¿eso no es mejorar?. La respuesta es Si, siempre  cuando te midas porque si es por sentimiento guadalupano pues realmente no tienes bases para decir que has mejorado.

¿Qué implica PSP?

PSP es un proceso estimulante que implica un compromiso conmigo y nada más, tu y solo tú tienes acceso a tus propias mediciones y eres el que se retroalimentará y eres tu la única persona a la que te interesa mejorar.

¿Como se compone PSP?

PSP se compone de varias fases las cuales listo a continuación:

  1. Planeación
    • Elaboración de un plan estratégico para la resolución del problema
  2. Diseño
    • Se diseña la solución al problema
  3. Revisión de Diseño
    • Se revisa en base a checklist el diseño realizado
  4. Codificación
    • Se traduce a código el diseño creado
  5. Revisión de codificación
    • Se revisa en base a checklist la códificación
  6. Compilación
    • Se compila el código creado, y se pasa una vez no exista ningún error que impida la ejecución del sistema
  7. Pruebas
    • Se crean casos de pruebas, y se testea el sistema en base a los casos de prueba se corrige el sistema hasta que todos los casos de pruebas sean éxitosos
  8. Post-mortem
    • Una vez concluido el desarrollo y testing, se procede a ver cuales fueron los errores más recurrentes en diseño y codificación y se procede a fortalezer los checklist de cada uno

¿Como vivo PSP?

Éxiste una herramienta que se llama Process Dashboard, la cual te lleva de la mano para vivir PSP completamente bastará con descargarla de la web oficial, llenar una encuesta y podrás utilizar Process Dashboard a.k.a. Pdash.

Cuando conocí PSP me enamore por completo, pero desafortunamente no he podido implementarlo al 100%, y a lo que me ha contado mi PM, muchos desarrolladores no lo utilizan porque se presenta muchisima resistencia al cambio y falta de disciplina con ellos mismos. Y ahora que me encuentro próximo a iniciar con trabajo más pesado iniciaré de nuevo a implementar PSP ya luego les comento como me fué

July 7, 2010

[Mootools] Combos dependientes o ligados

En este post hablaré acerca de combos dependiente o ligados como llaman algunos y como implementarlos via ajax con Mootools. La idea es hacer que cuando un combo cambie de valor actualize otro combo de acuerdo al combo que cambiamos, por ejemplo tenemos los combo Estado y Municipio, y queremos que cuando se cambie el estado se muestren los municipios de dicho estado en el combo de municipio, para esto tenemos el siguiente html:


<select id='estados' class='ajaxCombo' href='ciudades.php' update='ciudades'>
<option value='-1'>--Seleccione--</option>
<option value='1'>México</option>
<option value='2'>Jalisco</option>
<option value='3'>Sinaloa</option>
<option value='4'>Sonora</option>
</select>
<select id='ciudades' ></select>

El javascript a implementar es el siguiente:

<script type='text/javascript'>

window.addEvent(‘domready’,function(){

var combos_ligados = $$(“.ajaxCombo”);

combos_ligados.each(function(combo){

combo.addEvent(‘change’,function(){

var html_request = new Request.HTML({

url: combo.get(‘href’),

onSuccess: function(html){

var   combo_hijo = $(combo.get(‘update’));

combo_hijo.empty();

combo_hijo.set(‘html’,html);

}

});

req.send(‘filter=’+combo.value);

});

});

});

</script>

Por su parte el lenguaje del lado del servidor deberá regresar algo como lo siguiente:

<option value=’1′>Mazatlán</option>

<option value=’2′>Culiacán</option>

April 16, 2010

Guía rápida de UML

El otro día me vi con la necesidad de aprender UML para poder entender las arquitecturas de desarrollo que me entrega, y me encontré con un grave problema no sabia UML :-S, entonces buscando por internet me encontre la siguiente imagen. Qué explica muy claramente UML y POO, espero les sea útil.

Referencia rápida UML

Referencia rápida UML

April 14, 2010

Programando orientado a interfaces

Cuando estamos en la escuela/universidad nos dicen que las interfaces son como plantillas, lo que no nos dicen son la verdadera utilidad de las interfaces. Veran las interfaces son como contratos por ejemplo, tenemos un télefono celular de la marca X, un teléfono fijo marca Y y un teléfono IP marca Z; y podemos usar indistintamente cualquiera de los tres porque implementan una interfaz teléfono que tienen métodos para contestar y llamar. En UML quedaría algo como:

Componente Teléfono-Persona

El uso de interfaces es algo verdaderamente potente pues las interfaces nos dan varios beneficios entre ellos nos ayudan a programar cerrando para modificación y abierto para extensión, nos permiten crear indirección. Y tienen un valor agregado que es semántica. para ejemplificar veamos el siguiente UML.

Interfaces

Ejemplo interfaces y semántica

Se puede decir sin muchas palabras que Titi implementa Celular_Interface y Camara_Interface se sobreentiende que es un celular que a la vez es un télefono y tiene una cámara. En cambio si vemos a Mickey interpretamos que es un teléfono que tiene agenda y si vemos a pupuchu se entiede que es una cámara. Titi y Pupucho son cámaras sin embargo la forma en que cada una implementa las funcionalidades que provee la interfaz es diferente.

Persona usando Interfaces

En esta imagen se aprecia como una persona usa los distintos gadgets sin preocuparle como implementen las funcionalidades de cada interface, esta simplemente sabe que existen y se dedica a usarlas. Espero este artículo les sea de utilidad no olviden de comentar sus dudas, quejas o sugerencias.

April 10, 2010

[How-to] Iniciar a trabajar con Mootools

Qué es Mootools?

MooTools (My oriented object tools) es un Framework web orientado a objetos para JavaScript, de código abierto, compacto y modular. El objetivo de MooTools es aportar una manera de desarrollar JavaScript sin importar en qué navegador se ejecute de una manera elegante. MooTools aporta una API documentada más enfocada a la orientación de objetos que la implementación estándar soportada por los navegadores web.

Qué necesito para  iniciar a trabajar con mootools

Lo que se necesita es incluir la librería disponible en mootools.net.

En los próximos How-to’s iremos viendo como utilizar la libreria, desde los elementos más básicos hasta el desarrollo de plugins con este maravilloso framework

April 9, 2010

Proyectos y más ideas =)

Durante mi época de vida solitaria tuve unas cuantas ideas que poco a poco estoy consolidando una de ellas fue PLine, proyecto que de momento tengo detenido ya que me llamo la atención la creación de un pequeño framework/toolkit que decidí llamar Wisdom, el nombre es porque aquí estoy aplicando todo lo aprendido durante mi certificación para PHP.

La necesidad surgió a partir de que vi que ningún framework existente se ajustaba a mis necesidades, básicamente wisdom esta enfocado a acercarse a las herramientas web 2.0 que existen, fácil desarrollo; no implica quitarlo lo divertido a la programación :D , esta orientado a MVC y la curva de aprendizaje es muy poca y no toma más de 10 minutos realizar la primera página y con autenticación.

Los elementos preprogramados en wisdom son llamados widgets, algunos widgets en marcados en el roadmap de desarrollo son:

  • Gmaps
  • GCharts
  • Upload
  • Catalog

Tambien ofrece servicios para facilitar aún más la vida del web developer, entre los servicios iniciales se encuentran:

  • File
  • Compress (Zip, Rar, BZip, Tar)
  • Ftp
  • Cvs
  • Svn
  • Mail
  • Soap
  • Twitter
  • Facebook
  • Xml
  • Mail

y algo importante se procura tener un apego a GRASP, que son buenas prácticas en el desarrollo con  POO.

Para acceder al proyecto da clic aquí

April 9, 2010

[off-topic] La certificación ZCE

A principios de año inicie mi preparación para certificarme en PHP, tras una semana de estudio y enclaustramiento realize mi examen de certificación y el resultado pase =)

Si pasan por aquí y tienen alguna duda no escatimen en preguntar ;)

Yo en ZEND =)

February 4, 2010

Lo que estamos cocinando

Dentro de FS tenemos la necesidad de gestionar los proyectos, no solo saber que estamos haciendo, sino tener un control total del desarrollo, entonces nació PLine o Project Line.

Con PLine disponemos de una serie de herramientas para el control del desarrollo del proyecto, el control del código (almacenado en SCV), control de documentación (Diagrama de clases, Casos de Uso, Diagramas Entidad-Relación), control de requerimientos, correlación de requerimientos con sus respectiva documentación y código.

Se trata de llevar una gestión de proyectos dentro del ciclo de vida de desarrollo vivido en FS, acuerdo a las necesidades propias de FS, sin embargo no hemos pasado por alto el hecho de que esta herramienta es útil para toda empresa del ramo, es por eso que FS lanzará el servicio de PLine y liberará el proyecto bajo la licencia GPL para que se le puedan añadir mas funcionalidades al proyecto.

Proyecto: http://pline.futurasoftmx.net