martes, 14 de enero de 2014

Generando ideas para transformar(me)

Cansado de sentirme impotente y de ver tantas problemáticas en el país(México), he decidido que haré de la lectura y el compartir mis ideas el medio para poder influir socialmente en los demás y la vez dejarme influencia también.
Por eso he creado un grupo de lectura:
Busco el intercambio de ideas con argumentos, compartiendo lo que van dejando los libros que voy leyendo de vez en cuando escribiré reflexionando tratando de generar nuevos aportes. Las lecturas que elegiré de mi parte no tienen una temática en particular pero en su mayoría serán lecturas que inviten a la reflexión de alguna problemática social/personal. Desde temas de política, ciencia, filosofía, economía, tecnología,  educación, salud, historia, cuentos, historia y cualquier, otro tipo de literatura que me deje algo positivo como persona.
Las reflexiones que habré de compartir son en su mayoría reflexiones basadas en pensamiento critico cuestionando las ideas y sin apegarme a alguna en particular, se que como humano mis conclusiones pueden errar así que trataré de estar siempre abierto a reconocer errores, busco ideas que me permitan encontrar soluciones a  la situación en la que vivo y poder aportar a mi país a un bien común.
Buscaré en la medida de lo posible llevar a acciones concretas las ideas que aprenda, pues es con acciones y no solo ideas como se transforma este mundo.

Saludos, Bernardo

domingo, 24 de junio de 2012

Soy católico y estoy encontra del aborto, ¿Puedo votar por AMLO en este 2012?

Dedicado a todos mis amigos católicos que piensan que no esta bien votar por AMLO por que creen que apoyan el aborto.

AMLO no apoya el aborto y deja la responsabilidad sobre este tema de manera implicita al 85% de los Mexicanos católicos. El propone la consulta popular para que México se manifieste a este respecto.

AMLO no ha manifestado apoyo al aborto. Agrego también que AMLO no esta relacionado de manera directa con la despenalización del aborto en el DF. Periodo en el que Marcelo Ebrad gobernaba en el DF. AMLO gobernó de December 5, 2000 – July 29, 2005, mientras que la despenalización del aborto ocurrió el Miércoles 25 de abril de 2007(http://urlmin.com/d3d). Un 1 año 9 meses depues  de que AMLO dejara de ser jefe de go bierno del DF.

La posición de AMLO sobre el aborto está documentada, por ejemplo http://urlmin.com/d3c . Ahí manifiesta que, mediante consulta ciudadana dejaría que le pueblo de México se manifestara a favor o encontra. Opino que esta postura da ventaja a la protección de la vida si se toma encunta que el 85% de la pobacón en México que se supone es catolica según datos del INEGI(http://urlmin.com/d3e) y donde se supone que la postura catolica es estar en contra del aborto por considerarlo un acesinato. Luego entonces la chamba de nosotros los católicos sería hacer escuchar la voz de los que nos decimos mayoría. 

Los cuatro candidatos manifestaron su postura sobre el tema del aborto en el segundo debate pecidencial:
17:19 Quadri
18:30 JVM
28:24 EPN
31:21 AMLO

También dejo uno de los videos a los que hace referencia JVM, referentes a su postura al respecto del aborto:

Además de eso cabe señalar que la tarea legislativa sobre el tema del aborto no le corresponde al poder ejecutivo federal. Si bien es inegable la influencia indirecta del ejecutivo federal en temas como este, no está dentro de sus facultades normar a este respecto, almenos no por el momento (ver analisis de las facultades de cada nivel de gobierno según la división de poderes: http://urlmin.com/d3p  y http://urlmin.com/d3q). Por ello la importancia de la ley que se propuso elevar a rango constitucional el derecho a la vida desde la concepción y hasta la muerte que hubo hace unos años en algunos estados de la republica (http://urlmin.com/d3k).

Además, si bien es cierto que el asamblea alegislativa del DF (ALDF) http://urlmin.com/d3g con mayoria del PRD y junto con el apoyo del PRI votaron a favor de la reforma de ley que despenalizaba el aborto. No es cierto que el responsable fuera el poder ejecutivo. Tal vez por eso la carta que dirigió Jorge Serrano Limón, a nombre del Comité Nacional Provida(http://urlmin.com/d3g) pidiéndole  a Ebrad que desistiera del proyecto de despenalizar el aborto a través de la ALDF no tuvo eco, por que para empzar no fue su proyecto.

Segun datos de  http://urlmin.com/d3d la votación se dividió de la siguiente manera:
"La Asamblea Legislativa del Distrito Federal aprobó ayer reformas para despenalizar el aborto en la ciudad de México durante las primeras 12 semanas de embarazo."
Los cambios al Código Penal y a la Ley de Salud se aprobaron con 46 votos de los diputados del PRD, PRI, Nueva Alianza y la coalición socialdemócrata que integran el PT, Convergencia y Alternativa. Los 17 asambleístas del PAN y dos del PVEM votaron en contra, en tanto que el priísta Martín Olavarrieta fue el único que se abstuvo de emitir su sufragio.
El aborto sólo se tipificará como un delito a partir de la semana 13 y se castigará a la mujer que lo practique desde ese momento, con una pena de tres a seis meses de cárcel o de 100 a 300 días de trabajo a favor de la comunidad.
En la reforma se establece como delito grave obligar a una mujer a abortar, por lo que se impondrán de cinco a ocho años de cárcel a quien fuerce a la mujer, sin derecho a salir libre bajo fianza. Si en este caso mediara violencia física o moral, la pena de prisión se incrementará de ocho a 10 años."

Posteriormente a la apobación de esta ley, se inició jucio de incostitucionalidad(http://urlmin.com/d3l). Cuando miramos en restros pectiva podemos ver con un panorama más amplio cuales han sido verdaderamente los  actores politicos involucrados (http://urlmin.com/d3m). También considero que es importante entender como es que funcionan las leyes y como es que mcuchas de las posturas de servidores publicos que creemos que no tinenen nada que ver normalmente son quines toman muchas de las decisiones que afectan a este pais (http://urlmin.com/d3n).

Sin embargo estaría interesante investigar si tanto el ejecutivo Federal como el Ejecutivo del Distrito federal tenian la posibiliad de vetar la reforma. (http://urlmin.com/d3o) pero eso se lo dejo aun experto en derecho constitucional.

Asi que que, ¿que opinas? ¿te animas a votar po AMLO?, o tienes alguna otra objeción.

viernes, 12 de agosto de 2011

Ya soy programador ¿y ahora? ¿que sigue?

Divierte programando y disfrutarlo.

No creas que sabes todo, esto apenas comienza. Seguramente habrá más tecnologías por aprender allá afuera. Y no presumas de tus años de experiencia. Deja que otros colegas se den cuenta de lo bueno que eres por los que haces con tus lineas de código tu forma de trabajar y dar resultados.

No quieras reinventar la Rueda. Reutiliza el código tuyo o de otros. Lee código de otros y modifícalo. Aprende de tus errores y de los demás, practica mucho. No quieras correr antes caminar, empieza por la básico pero no te quedes ahí, avanza en aprendizaje de cosas nuevas y no olvides practicar las anteriores para no olvidarlas.

Aprende buenas practicas de programación del código de otros y trata de refactorizar código que esta mal hecho, esa es una excelente forma de aprender y no olvidar lo que se debe hacer y lo que es mejor evitar.

Entiende lo que estas haciendo. No hagas cosas a ciegas no digas "así funciona y no le muevan..." trata de comprender en la medida de lo posible que esta pasando.
No dejes sin corregir bugs... al menos deja etiquetas TODO en los comentarios del código, señalando cual es el error y porqué.

Si modificas el código asegurare de que los comentarios del código que al cual le estas dando mantenimiento sean consistentes con la funcionalidad de la pieza de código que acabas de modificar.

Cuando diseñes un software no se te olvide documentar las decisiones que tomas, las opciones que evaluaste y el criterio que seguiste para elegir esa opción. Haz diagramas preferentemente en una herramienta que mantenga sincronizado la representación gráfica y el código, si no pon la fecha a los diagramas y/o las versiones de código que se representaron en el diagrama. Si es necesario usa diagramas de formas libres para explicar el funcionamiento global del sistema.

Date tiempo para configurar tu ambiente de desarrollo evalúa cual es la herramienta que mas te gusta y te ofrece la funcionalidad que necesitas de acuerdo al lenguaje de tu proyecto o tecnología que debas manejar. Adelántate a las necesidades, estudia por anticipadamente lo que te puede servir.

Programar, esta 100% relacionado con escribir lineas de texto aprende a usar herramientas de procesamiento de texto por medio de linea de comandos. Si estas en un ambiente UNIX como alguna distribución GNU/Linux puedes investigar como se usa sed, awk, cat, grep, xargs, el uso pipes y redirecionamiento de flujos. Si estas en plataforma windows seguro podrás encontrar algunos de estas buenas herramientas con Cigwin.

Aprende acerca del ciclo de vida del software u otros tópicos relacionados, como pruebas manuales y automáticas de software, levantamiento de requerimientos, empaquetado de software, builts, deployments, modelado de software, auditoría de código, licenciamiento de código y cuestiones legales, aprende que herramientas se usan en cada una de estas actividades.

Las maquinas virtuales te pueden servir para simular ambientes distribuidos y probar nuevas herramientas de desarrollo.

Las pruebas de unidad automáticas (automated unit test) son una buena herramienta y una inversión a futuro, a la mejor requiere de una mayor inversión de tiempo pero es redituable cuando se requiere dar mantenimiento al código del programa.

Usa un repositorio de código y no tengas miedo a hacer commits. Si te equivocaste e introdujiste un bug has rollback, aprende a usar herramientas de comparación de código. Crea tags de código, y branches.

El dominio de la linea de comandos para invocar las herramientas que utilizas programando te dan mucha poder, la interfaces gráficas pueden ahorrarte mucho tiempo, elige cual usar según tus necesidades pero no tengas miedo de aprender a usar las dos.

Ten un cuaderno de notas, Puede ser un cuaderno y una pluma o bien un cuaderno de electrónico de notas como http://www.tiddlywiki.com/. El objetivo es que puedas expresar fácilmente tus ideas y plasmarlas para comunicarte y para no olvidar lo que has aprendido. Necesitaras saber hacer diagramas de muy diverso tipo UML, ER, Topología de red CISCO, o simplemente dibujos para comunicar ideas de manera sencilla.

Administra tu tiempo, puede ser una hoja de excel, con una lista de tareas por hacer en un blog de notas, en un software como planner (http://live.gnome.org/Planner/Downloads) o http://mgsd-docs.tiddlyspace.com/. El que te sea mas útil de acuerdo a lo que necesites ya tu nivel.

¿Se te ocurren más cosas? seguro que si, pues después de todo ya eres programador. Te invito a postear en los comentarios otras cosas que se te ocurran.

Por lo pronto te recomiendo un libro, eso si te advierto esta en Ingles, vale la pena es muy bueno, los datos son:
Titulo: The Pragmatic Programmer: From Journeyman to Master
Autor: Andrew Hunt; David Thomas
Editorial: Addison-Wesley Professional
Fecha de publicación: October 20, 1999

y lo puedes encontrar en: http://acmsel.safaribooksonline.com/book/software-engineering-and-development/020161622x/firstchapter



¿Qué necesito para aprender a programar?

Motivación, eso es lo primero para aprender cualquier cosa. Si no estas motivado en el camino te rendirás. Yo se lo que te digo, esto no es fácil si te lo tomas en serio, y muy pronto te darás cuenta de eso. Pero eso si, al menos desde mi perspectiva, puedo decirte que es divertido, emocionante y gratificante ( por que me gusta y he encontrado mi motivación, tu deberás darte a la tarea de encontrar lo que a ti te motiva).

Lo siguientes es atreverse a hacer, e iniciar.

Y por ultimo no dejar de preguntar y buscar la respuesta a preguntas como ¿qué es programar?¿Como aprender a programar mejor?¿que me motiva en este momento? ¿que es ser programador?, para si pasar nuevamente a reforzar lo que nos motiva y después poner en practica lo aprendido y empezar el ciclo nuevamente.



¿Que debo de tener en cuenta si quiero aprender a programar?

Ten en cuenta que esto de programar es un habilidad que se perfecciona y no hay respuestas absolutas, los principios en los que se basan las técnicas de programación pueden cambiar el día de mañana cuando las Ciencias Computacionales evolucionen y encuentren nuevos paradigmas o simplemente cuando salga al mercado una nueva versión de algún software que utilices para programar.

Las respuestas que se den en un momento a cierto problema podrán ser validas en el contexto de negocios o del problema en cuestión, y podrán ser validas o no en otras circunstancias bajo otra situación o momento. Descubrir cuando aplicar o no cierto concepto o principio es tarea del programador.

Programar por programar no enseña tanto como tratar de resolver problemas de la vida real por medio de una computadora y ayudados por un lenguaje de programación. Acercarse a los limites de algo nos ayuda a definir las cosas, si tu tratas de programar para resolver algún problema te darás cuenta de los limites de la tecnología, entonces entenderás cada vez un poco más que significa y involucra esto de programar. Eso si, para resolver problemas de la vida real no tiene que ser lo más complejo, puedes empezar por algo pequeño. La forma de comer un elefante es a pedacitos.

Un programador no debe limitarse a saber de tecnologías de programación o de ciencias computacionales, si no por el contrario debe de tratar de expandir su conocimiento en aquellos tópicos que le requiera el contexto de su problema. Si estas haciendo un sistema para reservación de libros en una biblioteca, el tener una idea de que involucra este proceso te ayudará a entender que tecnología existente te ayuda a resolver más fácilmente tu problema. Si se tratase de un problema de como resolver ecuaciones entonces primero deberás saber tu como resolverlas. No puedes dar instrucciones incorrectas a alguien y esperar obtener la solución correcta a un problema, mucho menos a una computadora, si las instrucciones que das no son correctas no podrás asegurar que tu resultado sera el correcto. Primero hay que entender el problema antes de tratar de dar respuesta.

Programar significa usar lo correcto en el lugar correcto. Se puede decir que una tecnología es mejor que otra en base solo de los beneficios que ofrece sobre el contexto en en que se pretende usar. no por que sea de cierto fabricante significa que esa tecnología es mala.

A veces las soluciones no implican la solución óptima, si no la solución lo suficientemente buena. Más cuando la programación se convierte en tu profesión te das cuenta que debes de aprender administra el tiempo y recursos para maximizar los beneficios (algo asi como economía de la programación).

Lo importante es cumplir los objetivos que se han fijado y no usar la tecnología de moda o tener el algoritmo más avanzado, claro a menos de este sea el objetivo.

No existe el programa perfecto para todo. Generalmente las mejores soluciones son las que son simples y hacen tareas pequeñas bien definidas.

Se humilde. De todos se aprende y hay que aprender a tratar a los colegas con respeto. Nadie nace sabiendo programar.

Un programador debe aprender a administrar su tiempo para aprender, practicar, trabajar, tener vida personal y en general todo aquello que le lleve a un balance sostenido.

Finalmente dejo una lista de las habilidades que considero debe tener un programador en el contexto del mundo actual:

1. Hablar Ingles.
2. Saber aprender.
3. Saber resolver problemas de manera ordena.
4. Poder platear una serie de pasos para obtener la solución a un problema.
5. Tener gusto para usar la computadora.
6. Tener ganas de leer.
7. Tener ganas de escribir (no solamente código).
8. Saber interactuar con la gente.
9. Tener gusto por la tecnología.
10. Saber que no se sabe todo y motivarse por aprender aquello que se necesita.

El lado técnico de este Blog

Después de un largo pero muy lago descanso...

Este post surge después de mucho tiempo de descanso y con el objetivo de compartir parte lo que es mi vida profesional con os demás.
Se que no soy un experto pero algunos años de experiencia me dan algunas ideas que puedo compartir con el demás mundo allá afuera.

Mis motivaciones y que esperar de "artículos técnicos"

Debo decir que inicialmente había decido publicar en este blog contenido de mi ideología personal pero dado que gasto más del 30% de mi tiempo diario en cosas técnicas , me dije... "que diablos compartiré cosas técnicas de lo que se... ". Y ahora mientras lees esto a la mejor te preguntaras --a que rayos se refiere este con "lo que se "-- y pues bien, resumirlo en un solo post será complicado, pero lo que si puedo hacer es adelantar que estaré compartiendo cosas sobre: que es la ingeniería de software, cuales son las herramientas que he usado y por que, asi como sus características, sus ventajas y desventajas de estas herramientas, consejos de como aprender lo que yo he aprendido (hablando técnicamente claro), entre otras.
A esta serie de artículos que publicare en este blog les pondré la etiqueta: "Artículos técnicos"
También quiero compartir las motivaciones que dispararon esta inquietud que traía ya latente desde hace tiempo. El primero de estos motivos es una persona allegada a mi me ha pedido que le enseñe a "hacer páginas web". Y pues una de las cosas a las que se que me voy a enfrentar es es explicarle (no solo a esta amiga que me pidió un favor, si no a todo lector que se interese por esta serie de posts), que es lo que realmente implica el desarrollo wTiddlyWikieb termino que empleo que porque es como creo que deberíamos referirnos a esta área del conocimiento / actividad. Pues lamentablemente es triste ver como esta área del conocimiento y actividad profesional es aveces devaluada con ideas incompletas de lo que realmente implica, y no pretendo yo definir en su totalidad que implica todo el "desarrollo web" pero si contribuir a un mejor entendimiento de este termino.
Otra de las cosas que me motiva a escribir esta serie de artículos es que un profesora de mi alma matter, me pidió ayuda para configurar un servidor con diferentes programas que permitieran llevar a cabo a los alumnos de su materia, y dado que me apasiona estar relacionado con el mundo académico, acepte. La idea es que los acerquemos más a la vida real de como se hacen pruebas de software y como el proyecto que generalmente se pone en esa materia es en tecnologías web, tuve un pretexto más para iniciar este proyecto de publicar esta serie de "artículos técnicos".

¿y que pasa con el resto del Blog?
No limito el tema de mis post, podrán seguir viendo los que me gusta como fotografías, videos, chistes reflexiones, y otras cosas. pero bueno por ahora me enfocara en escribir sobre: ingeniería de software,programación web,herramientas de desarrollo, aprender a programar, etc

Trataré de mantener mis artículos en español, pero de ahora en adelante no me limitaré. Invito a todo hispanoparlante que visite a este blog a que aprenda Ingles como segundo idioma, especialmente si desea adentrarse en temas tecnológicos o bien por lo menos aprender otro idioma, así seguir superándose como persona. Pero por lo pronto si les advierto, podrán encontrase artículos en Ingles de ahora en adelante por aquí.

viernes, 27 de febrero de 2009

Experiencia de intercambio en la India.

Escribo esto para poder compartir parte de lo que ha sido mi experiencia como alumno de intercambio del ITESO en el Loyola Collage. Esta escuela se encuentra ubicada en Chennai, Tamilnadu al sureste de India.
Las razones que en un principio me motivaron a venir fueron los rumores que como alumno del ITESO había escuchado: “en la India son muy buenos para programar”, “la India es uno de los países que está en top de lo relacionado con tecnologías de la información”, “las empresas relacionadas con TI buscan mucho el talento Indú”.
Con ánimos de aprender me embarque en esta travesía. A lo largo de ella he descubierto mucha riqueza cultural en este país tan lejano y una forma muy diferente de trabajo, estilos de vida únicos y milenarios en sus tradiciones. Los contrastes de esta experiencia me han hecho pensar en las oportunidades que el ITESO me ofrece como institución educativa. Y de manera análoga no puedo escapar a la reflexión del entorno que me rodea en Chennai, gracias a esto ahora soy más consciente de las oportunidades que tenemos y muchas veces desaprovechamos en México.
La experiencia de viajar al extranjero para nutrirse de otra cultura es una oportunidad que recomendaría no dejar pasar a todo estudiante mexicano.
Los ánimos de trabajar de algunos de mis compañeros, me han demostrado que a pesar de la adversidad y de la escases de recursos siempre se puede seguir adelante. La calidez de ellos me ha desvelado que son gente muy amable, dando cuenta de la riqueza y calidez de las tradiciones del pueblo Indú.
Me encuentro a cuatro semanas de finalizar el periodo formal de clases y me doy cuenta que la experiencia de intercambio académico ha sido enriquecedora no tanto por los conocimientos que he podido aprender, si no más bien por el contacto con los compañeros, profesores y en general con las personas que me he relacionado.
De las experiencias académicas más enriquecedoras que hasta el momento he atesorado menciono algunas describiendo sus peculiaridades.
He visto que se le da mucha importancia a la generación de conocimiento mediante investigación formal y aplicada de manera ejemplar. Algo que sin duda en el ITESO podríamos hacer pero que en el caso de las Ingenierías hemos dejado un tanto de lado. También considero importante mencionar que las investigaciones mantienen una estrecha relación con programas de apoyo del gobierno. Algunos de los temas que puedo mencionar son: Cómputo de alto rendimiento y sus aplicaciones en la biotecnología, desarrollo de semiconductores bioelectronicos, desarrollo e investigación sobre sensores y transductores así como sus aplicaciones industriales, investigación formal sobre grafos, entre otros.
He sido testigo de cómo la universidad en colaboración con ONGs realiza talleres de robótica para niños de 10 años de edad en adelante, en estos talleres aprenden algunos principios básicos de mecánica, electrónica y programación.
Dentro de los eventos académicos como congresos se promueve mucho la competencia y trabajo en equipo mediante concursos, tales como: Concurso de diseño web, debates sobre temas relacionados con TI (tecnologías de la Información), exposición de trabajos de investigación. Además en el caso de algunos de los congresos, estos están pensados para generar un espacio de debate particular sobre la aplicación de las TI en la resolución de problemas particulares de la región, tal es caso de “Workshop on Tamil Computing Technology” organizado para debatir sobre la representación del Tamil (uno de los lenguajes de la región sur de India) en diversas aplicaciones informáticas.
También puedo mencionar que en base a lo que he percibido puedo decir que se ve más difundido el uso de software libre bajo licencia GPL o similares. No solo las instituciones educativas si no también el gobierno y algunos profesionistas independientes usan mucho estas herramientas. Prueba del interés e importancia de esta tema es que hay congresos locales y nacionales que se ocupan del tema como tópico principal o anexo, pero siempre presente.
Además de la experiencia académica relacionada directamente con temas de la Carrera de Ingeniería en Sistemas Computacionales, puedo decir que el Loyola Collage también ofrece, mediante una programa de servicio social denominado "outreach program," la oportunidad de conocer parte de la realidad que viven las personas de comunidades rurales y/o de escasos recursos de la India. Como partícipe de esta actividad tengo que decir que en realidad es una oportunidad muy enriquecedora y que sin duda hace reflexionar cobre el compromiso social de estudiar una carrera (en México o en la India, no hago distinción de país).
Hay mucho que decir de esta experiencia, y podría relatar por líneas y líneas los detalles de esta, pero quiero concluir diciendo que a pesar del caos al que me enfrentado y de todos los problemas que he tenido y probablemente seguiré teniendo, la experiencia de intercambio me marcado para abrirme los ojos y descubrir como estudian, trabajan, viven, se relacionan, aprenden, en resumen como se forman a si mismos manteniendo viva la cultura que han heredado de antaño.

lunes, 26 de enero de 2009

Comuniades rurales de la India



Fotos Amapayanallur