Invitación para participar en 2º. Encuentro Estatal de Comunicación Indígena

Lugar: Claustro de la Parroquia de Zaachila, Oaxaca.
Fecha: Noviembre 30, 01 y 02 de diciembre de 2012.

OBJETIVO GENERAL:
Contribuir al desarrollo de la comunicación indígena mediante la articulación, el análisis y la reflexión con el fin de fortalecer la libre expresión, aplicando un enfoque especial a la equidad de género en contextos de la diversidad cultural, reformas jurídicas y el quehacer de los medios comunitarios, en el marco del diálogo intercultural entre los diversos actores de la sociedad.
PROGRAMA DE ACTIVIDADES:Lugar: Claustro de la Parroquia de Zaachila, Oaxaca.
Fecha: Noviembre 30, 01 y 02 de diciembre de 2012.

OBJETIVO GENERAL:
Contribuir al desarrollo de la comunicación indígena mediante la articulación, el análisis y la reflexión con el fin de fortalecer la libre expresión, aplicando un enfoque especial a la equidad de género en contextos de la diversidad cultural, reformas jurídicas y el quehacer de los medios comunitarios, en el marco del diálogo intercultural entre los diversos actores de la sociedad.
PROGRAMA DE ACTIVIDADES:

Lugar: Claustro de la Parroquia de Zaachila, Oaxaca.
Fecha: Noviembre 30, 01 y 02 de diciembre de 2012.

OBJETIVO GENERAL:
Contribuir al desarrollo de la comunicación indígena mediante la articulación, el análisis y la reflexión con el fin de fortalecer la libre expresión, aplicando un enfoque especial a la equidad de género en contextos de la diversidad cultural, reformas jurídicas y el quehacer de los medios comunitarios, en el marco del diálogo intercultural entre los diversos actores de la sociedad.
PROGRAMA DE ACTIVIDADES:

HORA
ACTIVIDAD
30 de Noviembre de 2012.
8:00 Hrs. Registro de Asistentes.
10:00 Hrs. Acto inaugural: Teatro Zaachila 600 años.
Ritual Indígena por la médico tradicional Yolanda Bautista.
Presentación de los integrantes de la mesa de presídium.
Palabras de bienvenida por el Maestro Adán López Santiago, Presidente Municipal de Zaachila, Oaxaca.
Palabras alusivas e inauguración del Encuentro por el Lic. Adelfo Regino Montes, Secretario de Asuntos Indígenas del Gobierno del Estado de Oaxaca.
Marco contextual del Segundo Encuentro Estatal de Comunicación Indígena por Sergio Julián, Coordinador General de Ojo de Agua.
11:00 Hrs.
PANEL 1: GÉNERO Y DEMOCRACIA EN LOS MEDIOS
Ponencia 1. “Democracia en medios y Pueblos Indígenas”: José Gil Olmos de la Revista Proceso.
Ponencia 2. “Perspectiva de Género en el contexto indígena” Martha Sánchez, Centro de Derechos Humanos Tlachinollan, Guerrero.
3. “La participación de las mujeres en los medios de Comunicación” Guadalupe Blanco del colectivo Radio Nandhia.
13:00 Hrs.
Laboratorio de Producciones Audiovisuales:
Video: Roberto Olivares.
Producción Radiofónica.
Internet y Nueva Tecnologías. Eymard Marcial www.mundosica.com
Periodismo Comunitario.
Fotografía y comunicación gráfica.
14:00 Hrs. Comida
15:00 Hrs. Continuación Laboratorio de Producciones Audiovisuales:
Video indígena.
Producción Radiofónica.
Internet y Nueva Tecnologías. Eymard Marcial www.mundosica.com
Periodismo Comunitario.
Fotografía y comunicación gráfica.
19:30 Hrs.Intercambio de saberes.
20:30 Hrs.Cena
21:30 Hrs. Evento Cultural.
Día 1º. de Diciembre de 2012.
8:00 Hrs. Desayuno
9:00 Hrs. Presentación: “Cumbre Continental de Comunicación Indígena del Abya Yala en Oaxaca”.
Braulio Vásquez y Genaro Bautista (Comité Estatal Pro Cumbre).
10:00 Hrs. Mesas de trabajo “Cumbre Continental de Comunicación Indígena del Abya Yala en Oaxaca”.
11:00 Hrs. Plenaria “Cumbre Continental de Comunicación Indígena del Abya Yala en Oaxaca”.
12:00 Hrs. Exposiciones paralelas:
Defensa de Territorio y patrimonio Natural.
Las Lenguas Originarias y su tratamiento en los medios de comunicación.
13:30 Hrs. Organización equipos de producción.
14:00 Hrs. Comida
15:00 Hrs. Laboratorio de Producciones Audiovisuales:
Video indígena.
Producción Radiofónica.
Internet y Nueva Tecnologías.
Periodismo Comunitario.
Fotografía y comunicación gráfica.
20:00 Hrs. Cena
21:00 Hrs. Proyección de Cine y Video Indígena.
Día 2 de Diciembre de 2012.
8:00 Hrs. Desayuno
9:00 Hrs.
PANEL: DERECHOS Y CULTURA INDÍGENA.
Ponencia 1 “El derecho a la comunicación en el marco de la reforma constitucional de Oaxaca en Materia indígena” Hugo Aguilar Ortiz Subsecretario de Derechos Indígenas de la Secretaría de Asuntos Indígenas.

Ponencia 2 “Los medios de comunicación ante el fortalecimiento de los elementos culturales identitarios”: Mardonio Carballo de Canal 22, Ciudad de México.
11:00 Hrs. Plenaria “Muestra de resultados del laboratorio de producciones audiovisuales”.
13:00 Hrs. Plenaria: “Lectura propuestas del encuentro y pronunciamientos adjuntos”.
14:00 Hrs. Clausura del Encuentro Estatal de Comunicación Indígena.
15:00 Hrs. Comida

Automatizando la validando sintaxis y estándar de codigo WordPress mediante el sistema de enganchaje de GIT

Hace poco escribí un post explicando como instalar CodeSniffer para validar estilo de codificación WordPress . Ahora me gustaría explicar como automatizar dicha validación mediante los puntos de enganche de sistema git.

 

Puntos de enganche Git Información previa

Git es un sistema de control de versiones que nos ofrece un sistema de  hooks el cual es un mecanismo que nos sirve para relacionar scripts de usuario que serán ejecutados en el momento que sucede algo relevante, los ganchos(hooks) básicamente se dividen en 2 tipos los que se ejecutan en el cliente los cuales están relacionados con operaciones como confirmación(commits), combinaciones(merge). El otro tipo son los que se ejecutan en el servidor estos están relacionados con cuestiones de recepción de confirmaciones(push).

Por ejemplo en nuestro servidor podríamos programar un script que cuando reciba una confirmación este genere un mensaje con la descripción de los cambios y lo envié por correo electrónico a un grupo de desarrolladores ó lo publique automáticamente en alguna pagina (como funcionan las contribuciones en el página del ADSL). Por otra parte en el cliente podríamos relacionar otro script que revise que nuestras contribuciones cumplan ciertas reglas, tratare de explicar este funcionamiento para esto observe el siguiente diagrama:

Diagrama gancho pre-commit del git
Diagrama gancho pre-commit del git

Como se puede ver podemos relacionar el hook pre-commit el cual se ejecuta antes de que la confirmación sea realizada, este gancho también es útil para preparar el mensaje de confirmación o para realizar pruebas.

Preparando el gacho pre-commit manos a la obra

Bueno para que un gancho sea ejecutado debe de existir un script que cumpla 2 cosas:

  1. Deberá tener el nombre y ubicación adecuada
  2. Deberá tener permisos de ejecución.

Los ganchos se encuentran ubicados en la carpeta .git/hooks/ estos son disparados en función de su nombre, en este caso deseamos definir el gancho pre-commit el cual deberá ser ejecutable, como se puede ver en las siguientes instrucciones:

# Creamos el archivo si no existe
touch .git/hooks/pre-commit

# Le damos permisos de ejecución
chmod +x .git/hooks/pre-commit

Agregando reglas de validación de wordpress Ocupando codeSninffer + git

Si bien con codeSninffer podemos validar nuestros archivos en PHP siempre es mas cómodo automatizar dicha validación, ademas que puede llegar a ser mas seguro ya que se en alguna ocasión se nos podría llegar a olvidar revisar determinado archivo y enviarlo por error.  Suponiendo que ya tenemos codeSninfer y el estándar de wordpress instalado ahora agregamos al archivo  .git/hooks/pre-commit el siguiente contenido:

 

#!/bin/bash
#
# Revisa el código cumpla simples reglas
# Mayor información: 
#

# Lista de colores a utilizar
Color_Off='\e[0m'       # Resetea el color
BRed='\e[1;31m'         # Rojo
BPurple='\e[1;35m'      # Morado
error=0;

# Revisa que el archivo no contenga espacios en blanco al final de las lineas
function revisar_espacios () {
	grep -qE '\s+$' $1
	if [ "$?" -eq "0" ]
	then
		let error=error+1
		echo -ne "${BRed}Error ${error}:${Color_Off}";
		echo -ne " ${BPurple}Espacios al final${Color_Off} -> ";
		grep -HnEo --color '\s+$' $1
	fi;
}

# Revisa que los archivos en PHP tengan sintaxis correcta.
function revisar_sintaxisPHP() {
	phpcs --standard=WordPress -s $1
}

# Concluye el script y muestra el numero de errores(si existen)
function salir_y_mostrar_errores() {
	if [ "$error" -ne "0" ]
	then
		echo -e "${BRed}Existen $error errores";
	fi;
	exit $error;
}

#################################################################################
# Apartir de la extensión vamos a validar los archivos por confirmar            #
#################################################################################
for archivo in $(git diff --cached --name-only)
do
	extension=$(basename $archivo | grep -Eo '\.[a-z0-9]+$' | sed 's/\.//g')
	case $extension in
		php)
			 revisar_espacios $archivo;
			 revisar_sintaxisPHP $archivo;
			 ;;
		js|json|sql|css|md|txt|html)
			 revisar_espacios $archivo;
			 ;;
	esac
done;

salir_y_mostrar_errores;

Puede descargar este código de:
https://gist.github.com/4123345

Saltándonos la validación

Quizás por alguna razón deseamos realizar determinada confirmación pero que no pase por la validación. Bien para hacer esto y si lo pensamos podríamos renombrar el archivo  pre-commit por pre-commit.sample(este nombre lo trae por defecto) o quitarle permisos de ejecución. Pero.. git ofrece una mejor alternativa que es realizar la confirmación sin verificaciones en la cual ni siquiera examina la existencia de hooks y mucho menos son ejecutados, veamos como se realiza esta:

git commit --no-verify

Instalando CodeSniffer para validar estilo de codificación WordPress

En ocasiones cuando se desarrolla código en equipo o se desarrolla determinado código que se va a compartir, este debe de cumplir ciertas reglas que ayudan a la comunidad ha seguir una buena calidad y claridad de código.

Quizás uno de los mayores problemas de PHP es su flexibilidad ya que a diferencia de lenguajes como Python ó Ruby no define reglas de estilo de codificación en su sintaxis. Por otra parte si bien las nuevas versiones de PHP(la versiones 5 y 6) tienen gran soporte para programación orientada a objetos y programación funcional  tampoco define un tipo de programación en especifico. Al final de cuentas se termina cargando la responsabilidad de la definición de estas reglas a las comunidades PHPeras las cuales en ocasiones hacen caso omiso de dicha responsabilidad y terminan siendo todo un caos su código y con el tiempo el deterioro de sus proyectos. Desgraciadamente por unos pocos se suele generalizar a los desarrolladores PHP como malos.

Critica a php

Critica a php

PHP CodeSniffer al rescate No todo esta perdido

Pero no todo esta perdido, entre las paquetes que nos ofrece PEAR esta uno que en especial me gusta mucho y que suelo ocuparar el cual se denomina php code sninfer . El cual como su nombre nos dice «espía nuestro código en php» para determinar si cumple con determinadas reglas de estilos.

 

Instalando code Sninfer en linuxprobado en trisquel y ubuntu

Para instalar codeSninfer solo requeres dpear install PHP_CodeSniffere ejecutar las siguientes instrucciones siendo usuario privilegiado(root):

#Instalamos pear esto sólo en caso de no existir
aptitude install -y php-pear

#Mediante PEAR instalamos PHPcodeSninfer y todas sus dependencias
pear install --alldeps PHP_CodeSniffer

Listo eso es todo!. Los estilos que nos instala por defecto son los siguientes:

├── Generic
├── MySource
├── PEAR
├── PHPCS
├── PSR1
├── PSR2
├── Squiz
└── Zend

Agregando estilo de codificación en wordpress

WordPress es una de las comunidades PHP más maduras con mas de 58,024,602 sitios instalados con dicha plataforma y miles de programadores contribuyendo todos los días, por lo cual requieren de reglas para llevar un mejor control y calidad en dichas contribuciones. Por lo cual worpdress definieron su propio estándar de estilo de codificación  del cual se deriva un estándar definido en codeSninfer, veamos como instalarlo(de igual forma requires ser usuario root).

git clone git://github.com/mrchrisadams/WordPress-Coding-Standards.git \
$(pear config-get php_dir)/PHP/CodeSniffer/Standards/WordPress

Probando que todo funcione

Finalmente solo basta probar que dicho estilo funcione, imaginemos que queremos revisar que el archivo loop.php cumpla con las reglas de codificacion de worpdress, esto lo podemos hacer con el siguiente comando(este se ejecuta como usuario normal).

phpcs --standard=WordPress -s loop.php

También podemos revisar algún directorio de forma re-cursiva mire el siguiente ejemplo:

phpcs -p -s -v --standard=WordPress /ruta/proyecto_wp/plugin_x/

En ambos casos estamos especificando explícitamente el estándar a utilizar. sin embargo podemos definir el estándar de worpdress por defecto, de la siguiente forma:

phpcs --config-set default_standard WordPress

Y posteriormente podemos omitir el argumento del estándar ya que es el que se configuro por defecto:

phpcs -s loop.php

¿Cómo evitar problemas con el CHIP DE VIDEO de tu LAPTOP?

Cada día se vuelve más frecuente, el problema en las computadoras portátiles (laptop´s), que al encenderlas repentinamente ya no muestra nada en pantalla, todos los componentes funcionan (incluso se escuchan los sonidos de arranque del sistema) pero la pantalla no muestra nada.

Después de múltiples quejas por parte de usuarios que reportaron fallas de este tipo en sus equipos, la empresa NVIDIA (cuyos chips de video son los que más fallas presentan) aceptó el defecto en sus productos. Así lo confesaron desde la propia Nvidia, explicando también que hasta julio de 2008, realizaron un cargo de 196 millones de dólares para cubrir los gastos adicionales de garantía y reemplazo de chips defectuosos, que «incluían un conjunto de materiales de empaquetado débil». Además también lanzó una actualización de software para los fabricantes de computadoras que hace que los ventiladores para portátiles trabajen más frecuentemente para reducir el estrés térmico en los chips gráficos afectados.

Aunque no sólo los chips gráficos de ésta marca fallan, también el problema se debe a fallas en el diseño del sistema de enfriamiento de equipos como HP, Gateway, Acer, Lenovo, Dell.

¿Cómo prevenir el fallo del Chip de Video?

 Si comienzas a sentir que tu laptop se calienta cada vez más o notas alguno de los siguientes síntomas en tu equipo:

  •  El disipador de calor (ventilador) gira cada vez más rápido y se mantiene así todo el tiempo.
  •  Al reproducir un video y realizar más tareas simultáneas sientes que la velocidad de tu computadora disminuye (es más lenta o se traban las ventanas)
  •  Si cuentas con alguna herramienta (como Everest, OpenHardware Monitor, Real Temp, etc.), que te muestre en pantalla la temperatura de tu sistema y ésta sobrepasa los 60°

Es momento de que lleves tu equipo portatil con un técnico para que le realice una limpieza general, como mínimo deberá realizarle lo siguiente:

  1.  Desarme completo de tu laptop: retirarle el polvo, pelusa y demás basura acumulada en el equipo (si fumas o llevas tu laptop a todos lados ten por seguro que le saldrá de todo).
  2.  Cambio de Pasta Térmica del Procesador: Ésta pasta térmica ayuda junto con el sistema de enfriamiento a mantener las temperaturas del microprocesador y evitar que éste se dañe.
  3.  De ser posible (no todos cuentan con el material) reemplazar el thermal pad ó almohadilla térmica (en ocasiones llevan pasta térmica) del Chip de video (GPU). que al igual que la pasta  ayuda a enfriar el chip de video, sólo que éste material posee otras características que un GPU requiere, por lo que NO puede colocarse cualquier cosa en su lugar.
  4.  Verificar que tu equipo tenga los driver´s de video más actuales, ya que como comenté anteriormente una de las soluciones de las empresas, fue una actualización para que el ventilador del sistema trabaje más rápido cuando la temperatura comienza a elevarse, por lo que es importante mantener los controladores de video o el bios del sistema actualizados.

A pesar de haberle realizado el mantenimiento preventivo a tu computadora, es importante, tomar en cuenta las recomendaciones que los mismos fabricantes hacen a los usuarios para el uso de sus equipos y evitar problemas de éste tipo:

  • NO utilizar tu computadora mucho tiempo sobre tu cuerpo, ya que el cuerpo humano genera calor, el cual, combinado con el calor del equipo, provoca que la temperatura se eleve rápidamente.
  • Evitar que se obstruya la salida de calor de nuestro equipo, es decir por donde el ventilador expulsa el aire caliente del interior de la computadora. si trabajamos sobre una mesa o escritorio procurar que nada tape ésta salida de aire.
  • Evitar trabajar la laptop sobre la cama, sillón o cualquier superficie que guarde calor.
  • Si consideramos que le damos mucho trabajo a nuestra computadora (se reproducen muchos videos, se edita video, se trabaja mucho con software de diseño gráfico, arquitectura o modelado en 3D) es recomendable adquirir una base enfriadora para el tamaño y modelo de nuestro equipo portátil.

En la siguiente publicación explicaré el procedimiento de limpieza general de una laptop (incluyendo el cambio de pasta térmica y del thermal pad del gpu).

Después continuaré con la publicación de un pequeño manual para realizar un procedimiento casero para revivir el chip de video (conocido como reballing) con materiales sencillos, como menciono es un reballing casero, con el que revivirá nuestro gpu por un mes aproximadamente dependiendo del uso y cuidado que le demos a nuestro equipo portátil.

Agregando y Eliminando rama remota con git

En ocasiones puede ser útil compartir una rama temporal en nuestro repositorio, por ejemplo imaginemos que por alguna razón tenemos que compartir algún brazo de prueba, el cual sera una copia del master pero con algunos pequeños cambios:

# Agregamos un nuevo brazo y nos brincamos a el al mismo tiempo
git checkout -b brazo-prueba
# Editamos algunos archivos
vim algun_archivo_test.php
# Agregamos nuestra confirmación respectiva.
git commit -am 'Haciendo nuestras pruebas'
# Compartiendo nuestra rama brazo-prueba
git push -u origin brazo-prueba

Una vez que compartimos nuestra prueba, podemos quizás hacer una combinación hacia nuestra rama maestra (ó alguna otra organización en nuestro repositorio), en fin el caso es que si por alguna razón la rama brazo-prueba ya no es necesaria la podemos eliminar del repositorio remoto de la siguiente manera:

git push origin --delete brazo-prueba

Conocer la lista de los archivos modificados en confirmaciones previas con git

En ocasiones necesitamos saber cuales son los archivos modificados en nuestras confirmaciones realizadas con git. ¿No se?, se me ocurre por ejemplo si deseo obtener esta lista para saber que archivos tengo que revisar ó cuales tengo que actualizar en algún servidor por poner algunos ejemplos.

Lista de archivos modificados en n confirmaciones previas El ejemplo mas simple

Por ejemplo si el día de hoy realice 3 confirmaciones, al final del día me gustaría obtener la lista del total de archivos modificados. Esto lo podemos hacer con el comando git-log, veamos este ejemplo:

# Archivos modificados hace 3 confirmaciones.
 git log -3 --name-only --pretty=format:''

Esto lo podemos ocupar para n confirmaciones previas, si sustituimos el -3 por el número de confirmaciones de las que interesan obtener la lista de sus archivos.

Lista de archivos modificados un un intervalo de tiempo definiendo un limite en tiempo

Quizás no recordemos exactamente cuantas confirmaciones hemos realizado un algun tiempo determinado, por ejemplo ¿que pasaría si nos interesa obtener es la lista de los archivos modificados hace 3 semanas al día de hoy?, no podríamos obtener esta lista con la instrucción anterior(ya que de momento no sabemos cuantas confirmaciones se han realizado).

Nos podemos ver tentados en realizar alguna búsqueda con el comando find partiendo de las fechas de modificación(ocupando el parámetro -mtime) de los archivos de nuestro repositorio, lo cual seguramente nos mostrara archivos propios del git que han sido modificados.

Por otra parte el  git-log nos proporciona parámetros(--before, --after, --since… ) para visualizar la bitacola en función del tiempo, veamos como seria esto con algunos ejemplos:

# Buscando archivos modificados hace 3 semanas(21 días) con el comando find
# Ojo: esta opción se requeriría filtrar para quitar los archivos del git
 find .  -mtime -21 -print 

# Archivos modificados después de hace 3 semanas, hasta antes al día de hoy :
 git log --before={today} --after={3.weeks.ago} --name-only --pretty=format:''

# Archivos modificados después de hace 2 días, hasta este momento :
 git log --before={now} --after={2.days.ago} --name-only --pretty=format:''

# Archivos modificados después de hace 2 días, hasta este momento
# Notar que es lo mismo que el ejemplo anterior sólo que son la opción "--since" :
 git log --since={2.weeks.ago} --name-only --pretty=format:'' | sort -u

Filtrando la lista poniéndonos creativos

En la lista puede que algunos archivos se repitan mas de una vez(ya que quizás fue modificado en varias confirmaciones),para esto una solución podría ser filtrar la lista para asegurar que los archivos no se repitan, para esto podemos ocupar el comando sort con la opción de único (-u esto con una tubería |), veamos como seria este filtro:

# Archivos modificados después de hace 3 semanas, hasta antes al día de hoy
git log --since={1.year.ago} --name-only --pretty=format:'' \
| sort -u

O quizás nos interesa obtener solo la lista de los archivos con alguna extensión(es), por ejemplo si nos interesa saber que archivos he modificado hace 3 semanas y que tienen la extensión php, css ó js. Para esto podemos hacer un filtro un poco mas detallado con el comando grep:

# Archivos modificados desde de hace 3 semanas y que ademas
# cumple que son archivos con la extensión: .php, .css ó js :
git log --since={3.weeks.ago} --name-only --pretty=format:'' \
| sort -u | grep -E '\.(php|css|js)$'

En general nos podemos poner mas curiosos de acuerdo a nuestras necesidades.

Mayor información:

Semana Académica y Cultural UNIVAS X3

Semana Académica y Cultural UNIVAS 2012Con mucho gusto invito a los lectores a participar en la «Semana Académica y Cultural UNIVAS X3, Creando Ciudadanía de alta Intensidad» Organizado por la Universidad José Vasconcelos donde participaré con una platica sobre Marketing Digital. Les adelanto que los temas a desarrollar serán Diseño web, Posicionamiento en buscadores, e-mail marketing y redes sociales. En este mismo artículo dejaré el material para descarga. Saludos y nos vemos el 15 de noviembre en la UNIVAS.

Contribuciónes al plugin de jQuery prettyDay

Hace un tiempo en un post anterior había comentado a cerca de un plugin de jQuery que muestra la fecha bonita y de como echarlo andar en wordpress.

El «detalle» del post es que para que tuviera soporte completo para la lengua española los invitaba a descargar el plugin desde mi «versión« ya que de momento se encontraba abierto  un ticket de cambios propuestos(un pull request).

Pues bien hace un par de días dicho cambio ya fue agregado, ahora para que tengas soporte completo en la lengua española + soporte de meses y años, no se requiere de otra cosa mas que seguir la documentación oficial del plugin.

O descargar el plugin desde el repositorio principal(ya no del mío) y jugar con el demo:

https://github.com/jzaefferer/jquery-prettydate/pull/12

Me encanta esto del git y el github clonar repositorios jugar con ellos como si fuesen recetas de cocina, mismas recetas que «heackeamos» para compartir y de repente cuando te das cuenta  estas discutiendo con ciertos chefs que te alientan a ser mas exigentes con uno mismo cada día.