Tema para phpmyadmin.

Hace un tiempo hice una plantilla para el phpmyadmin ya que no me gusta el que viene por defecto, hoy la comparto:

phpmyadmin theme dark orange

phpmyadmin theme dark orange

¿Como instalar?

Descargue el proyecto descomprima la carpeta y adentro ejecute como superusuario:

 ./install.sh 

Para mayores informes visitar el micrositio oficial del proyecto:

http://fitorec.github.com/phpmyadmin_theme_dark_orange/

fCalendar

fCalendar vista de pruebas

fCalendar Ejemplos: izquierda simple controles externos, Derecha eventos y configuración personalizada.

Desde hace un tiempo estoy desarrollando una aplicación, para organizar procesos de un desarrollo web en un equipo multi-disciplinario, como es de esperarse la calendarización de actividades y la comunicación entre el equipo de trabajo es sumamente vital.

Por otra parte en algunas ocasiones trabajo con Mootools y en otras con Jquery dependiendo del proyecto(si es solución empotrada, del framework, cms blog a utilizar, etc), y en ocasiones e tenido uno que otro conflicto por la incompatibilidad de FrameWorks en Javascript he incluso entre versiones del mismo.

Y fue asi como empecé desarrollar el fCalendar un calendario básico en javascript y CSS.  ¡¡Vale!! ya se que existen otros, sin embargo creo que el fCalendar tiene características muy útiles:

Principales características

  • Ligero
    • No usa ni descarga imagenes encambio implementa técnicas de CSS3, webkit y moz
    • Tiene una implementación de control de eventos que no sobre carga el DOM
    • La libreria principal fcalendar.js sólo pesa 7.5kb
  • Multi idiomas
    • Versión en español fcal-lang-es.js
    • Versión en ingles fcal-lang-en.js
    • Futuras versiones: Frances, Portuges, Aleman.
    • Futuras variantes lingüísticas (ar-es, mx-es, uk-en, us-en).
  • Compatibilidad
    • Emplea unicamente javascript apegado la mayor parte al ECMAScript ISO 16262
    • No redefine ningun prototypo de DOM
    • Compatible con cualquier frameWork
    • CrossBrowser (probado con firefox, opera, chromium, safari)
  • Eventos y Controles
    • Su manejador de eventos nos permite incorporarlos al vuelo
    • El usuario tiene control pleno sobre Estos eventos
    • Al poder usarse con frameWorks lo podemos combinar, facilmente
  • Multiplantillas incorporadas
    • dark(Actualmente la unica, L0L)
    • blue
    • orange
    • white

Por el momento no se donde hospedar el proyecto, si embargo usted puede acceder al proyecto desde: http://vivoenhuajuapan.com/calendario/

DiaSQL generando esquema SQL apartir de un diagrama DIA

DiaSQL Dump es un plugin para el DIA que desarrolle en python bajo licencia GPLv3, que te permite crear un archivos en sintaxis SQL a partir de tu diagramas de base de datos.

Actualmente se encuentra en versión Beta pero ya es completamente funcional,  puedes obtener una copia y el código desde:

DiaSQL Dump nos ayuda a generar archivos con código SQL a partir de tus diagramas de base de datos desarrollados con la herramienta DIA, generando con esto una congruencia entre el modelado de tu base de datos con su definición en SQL, de esta forma si deseas generar algún cambio en el esquema de la base de datos basta con editar el diagrama.

Ejemplo

Previamente debes tener instalado el programa DIA, esto en ubuntu o debian linux lo puedes hacer con la siguiente instrucción.

sudo apt-get install -y dia

La siguiente figura muestra el diseño de un diagrama de base de datos en DIA.

ejemplo diagrama DIA definición de una tabla.

ejemplo diagrama DIA definición de una tabla.

De la figura se puede apreciar que la tabla Personas tiene las siguientes campos:

  • id: int(11), clave primaria, no puede ser nulo.
  • rfc: varchar(20), clave única, no puede ser nulo.
  • nombre: varchar(50), NO es clave, puede ser nulo.

Una ves que realizamos el diagrama nos vamos a archivo y del damos exportar seleccionamos al opción SQL Dump(*.sql) como se muestra en la siguiente imagen:

exportando volcado SQL del diagrama DIA

exportando volcado SQL del diagrama DIA

O bien desde linea de comando con la siguiente sentencia.

#h4x0r mode
dia  -e  ejemplo1.sql   ejemplo1.dia

Donde ejemplo1.dia es nuestro diagrama dia y ejemplos.sql es el archivo que queremos exportar(-e).

El cogido SQL generado por DiaSQL Dump para este ejemplo es:

-- Created by DiaSql-Dump Version 0.01(Beta)
-- Filename: ejemplo1.sql
-- Created: 2010-08-13

-- Personas --
CREATE TABLE IF NOT EXISTS `Personas` (
	`id` int(11) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
	`rfc` varchar(20) NOT NULL UNIQUE,
	`nombre` varchar(50)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- End SQL-Dump

Nota: esto es solo parte de la documentación que espero levantar próximamente.

Importancia de la talleres en el FLISOL-Oaxaca

El siguiente contenido es una opinión muy subjetiva respecto a la importancia de la talleres en el FLISOL-Oaxaca que me gustaría que fuese tomada en consideración para la coordinación de dicho evento, al mismo tiempo refleja mi postura en cuanto al desarrollo de la tecnología.

Se me hace una lastima que los talleres no sean una parte de la estructura del FLISOL-Oaxaca pues esto implica el no coordinarnos y unir esfuerzos para realizarlos y que en cambio se halla optado ha formar equipos de trabajo a medida nuestras posibilidades los llevemos a cabo.

la razón de esto:
Trato de pedir una explicación al parecer se debe al hecho de que el Flisol es un evento de instalaciones y los talleres son una cosa secundaria, es decir el problema se reduce al hecho del desinterés que se tiene hacia los talleres, y es aquí donde tratare de indicar ciertos puntos que se me hacen relevantes de destacar.



Referencia histórica & Estructura de la Organización

Como ya sabemos el FLISOL es un evento llevado acabo por el esfuerzo coordinado de usuarios, dicho evento se realiza en distintas partes de latinamerica y que en cada una de estas existe sus peculiaridades, es decir es un evento con una diversidad, dada por los usuarios mismos.

Y nos da gusto que en el caso de la cuidad de Oaxaca ya llevamos(con este) 3 años de celebrarlo(pese ha ciertas inclemencias) siendo unas de las cedes caracterizada por su buena organización.

En esta vertiente se me hace un retroceso en nuestra que organización no haga una política de los Talleres en dicho evento, pues en la cuidad de Oaxaca hemos tratado de llevar una estructura horizontal en donde los esfuerzos son divididos y coordinados, con esto [1] hemos adoptado forma de convivencia basadas en este pensamiento y este le agregamos un sentir y una postura en cuanto al desarrollo de las tecnologías que estas deben ser aplicadas para el “buen vivir” es decir estas deben ser:
[2][3]“socialmente justas, culturalmente apropiables, ecológicamente sensatas y económicamente viables”.



El impacto social del FLISOL en Oaxaca

En lo personal no concibo un evento de Software Libre sin un impacto social pues la sola existencia de dicho software implica una practica social de compartir y re-difundir el conocimiento una practica que prepondera el saber en lugar del fin meramente económico, pero no nos confundamos esto para nada implica que no exista un costo, y muchas de estas veces el costo no es mas que el leerte “X HOW TO …” es decir el mismos esfuerzo generado por los usuarios es el costo del Software Libre, y este costo se reduce en la medida que los usuarios documentan sus aciertos y tropiezos, “es decir a la medida que los usuarios comparten su experiencia entorno al Software Libre, este tiene mayor impacto social” y los talleres fomentan dicha actividad.

Por otra parte se me hace una incongruencia, pues los usuarios Guslos denotado la practica Monopolica del no darle al usuario la opción de elegir su S.O. y que a causa de esto existan tantas maquinas con ventanas interrumpiendo con esto el desarrollo de S.O. emergentes, esta sin duda [4][5]estas son malas practicas pues no le da al usuario la LIBERTAD y el principio fundamental del software Libre es este concepto, que irónico resulta instalar un S.O. en este caso un GNU/Linux y no ayudar al usuario ha interactuar con el mismo.

Es pues guiar al usuario ha conseguir su emancipación tecnológica, pues no me gustaría que el FLISOL-Oaxaca se vea como “el evento en el cual puedes lleva tu maquina cada año para que le Actualicen/formateen su Linux”, no nos confundamos se trata ayudar en la medida que se pueda al estilo GPL(Con la esperanza q sea util…) y no hacerlo todo por ellos.

Solo así podemos generar una comunidad rica en la difusión/generación de nuestro conocimiento, de este conocimiento colectivo, donde cada miembro es un ente activo.



Motivación del usuario

Este punto lo destaco por el hecho de que considero que los usuarios deben estar cocientes que S.O.Pues de no ser así puede llegar a resulta una experiencia frustrante y una apatía del usuario hacia el sistema,no sólo se trata de que el usuario conozca que existe: un navegador, procesador de texto, editor de imágenes… si no que sepa utilizarlos o que por lo menos sepa utilizar los que le ayuden a resolver sus problemas de la vida cotidiana.

Cualquiera que sea la decisión favor de avisarme para ver como vamos a trabajar y en que medida “puedo ser útil en el desarrollo de dicho del evento”.

Referencias:

  • [1]-Hacker culture(s).
  • [2] -Foro Nacional de Tecnologías apropiadas.
  • [3]-Baños Secos y Azoteas Verdes.
  • [4]-Can You Trust Your Computer?.
  • [5]-Tacticas roboticas.

    Deteccion de intrusos en nuestra WI-FI

    Introducción:

    Como bien sabemos las redes inalámbricas tienen un problema de seguridad nativo del medio(capa 1 modelo OSI) y en este caso  es el espectro electromagnético dispersado por la atmósfera el cual es compartido por todos, por esta razón por las redes inalámbricas son(y serán inseguras) dadas la naturaleza del medio.

    Hace unos días por parte del equipo de SICÁ tuvimos la oportunidad de participar en el evento Ingenia que tuvo lugar en la cuidad de Oaxaca, entre las conferencias y talleres que tuvieron lugar hubo una que me llamo mucha la atención y fue la que dieron los amigos Diego(bugcillo) y el Nierox en este taller explicaron el uso de la suite aircrack-ng del como detectar redes inalámbricas, inyectar paquetes a dicha red y del como por medio de eucarísticas encuentra la key deseada.

    Todo esto me dejo pensando en una solución a la detección de intrusos en nuestra red, y se me ocurrió una idea!.

    Análisis

    En este caso suponemos que somos nosotros los propietarios del servicio y que hemos sido atacados por algún intruso (p.e. mi vecino).

    También suponemos que el servicio es Prodigy Infinitum de Telmex y que el modem routeador es un 2wire (que es lo + común).

    Modem 2 WIRE telmex

    Fig-1- Modem 2 WIRE telmex

    Ahora si accedemos a la URL http://gateway.2wire.net/xslt o bien  (http://home/) estaremos entrando a la configuración de nuestro modem en donde en el main page nos muestra un resumen del sistema si vemos en la parte inferior nos daremos cuenta que aparecen las maquinas colgadas a nuestro modem en este caso[fig2] solo la mía(fitorec) como activada y las maquinas pc_x y pc_y como parte del cache de las conexiones pero a su vez ambas están inactivas.

    red domestica

    Fig2 .- Se puede observar solo la maquina fitorec conectada

    Solución propuesta:

    Como podemos ver el router monitorea constantemente los hosts conectados y es posible visualizar quienes están conectado si accedemos al router traves de un navegador. Para detectar a un intruso o un nuevo hosts en nuestra red a travez de esta técnica puede resultar algo tedioso, pues tendríamos que visitar el sitio del router cada determinado tiempo para ver  a los nuevos hosts conectados.

    Pero si nos ponemos a pensar un par de minutos esto mismo pasa con los canales RSS, el correo electrónico, los mismos podcast, todos ellos normalmente tienen un cliente el cual se conecta con el servicio cada determinado tiempo para ver si hay nueva información. Esto ultimo me puso a pensar que se trata de  realizar un script que sea una especie de cliente que sirva para automatizar este proceso cada determinado tiempo y que de alguna manera nos notifique quienes están conectados a nuestra red.

    Fue entonces cuando se me ocurrió utilizar el Conky el cual es una programa que se integra al escritorio de Linux y nos sirve para monitorear distintas cosas de nuestro systema como: memoria consumida, procesador en uso, …,  y también se le pueden agregar scripts de red  para generar notificaciones  de gmail, twittter, .. entre otros servicios.

    Por otra parte el Conky también nos ayuda a descolar nuestro escritorio a qui dejo una cara del Conky:

    un ejemplo del conky

    un ejemplo del conky

    Sin mas la solución propuesta es hacer un script para detectar los usuarios conectados a nuestro router y mostrarlos en nuestro escritoria a través de conky.

    Implementación:

    Detección de Hosts: la deteccion de hosts la vamos hacer accediendo a la URL http://gateway.2wire.net/xslt en donde vamos a parsear para buscar la imagen (http://gateway.2wire.net/icons/icon_small_pc.gif) la cual corresponde a una maquina activa y de existir dicha imagen el nombre del host activo en este caso fitorec se encuentra localizada entre las etiquetas:

    <span class="textmono">fitorec</span>
    De esta idea he generado el siguiente script:
    
    
    
    
    codigo 2wireHosts.py script en python

    codigo 2wireHosts.py script en python

    Implementación 2:

    Via twitter el amigo @gnuget David Valdez me envio una versión mejorada del script, la verdad le quedo muy bien y se ve asta elegante el código(1 saludo man):

    Codigo desarrollado por gnuget

    Codigo desarrollado por gnuget

    Configurando Conky: pues bien ahora que ya tenemos un script para detectar los hosts en nuestra wifi ahora solo nos falta configurar nuestro Linux para que nos muestre esta info.  en su Escritorio.

    Instalación

    1.- creamos la carpeta donde estaran los archivos del compiz e ingresamos a la carpeta:

    mkdir  ~/.config/conky

    cd ~/.config/conky

    2.- Descargamos el siguiente archivo de configuración para el conky al cual he nombrado rightTop ya que se posiciona en la esquina superior derecha de nuestro desktop.

    wget http://gist.github.com/raw/259995/e9c8538cb6c45b7b7f063798262ed1566581680f/rightTop

    Nota:

    El este archivo de config. del  conky manda a llamar las siguientes fuentes.

    Las caules debes de descargar e instalar antes de seguir los siguientes pasos.

    3.- Descargamos el código de python que nos detecta los host conectados:

    wget http://gist.github.com/raw/259463/7af5d194d0829530cd5bbae6b7463e7f477e1014/2wireHosts.py

    4.- Y finalmente Ejecutamos nuestro conky con la siguiente instrucción:

    conky -c rightTop

    Corrida de ejemplo:

    Aqui les dejo una corrida de ejemplo de una maquina que configure con edubuntu para una niña de 9años (a mi como me hubiera gustado conocer linux a esa edad)

    Diseñando un logo para mononeurona.org

    Mononeurona.org es un sitio de Internet de colaboración mutua entre usuarios, hace apenas algunos días a través de este blog (mi blog personal) tuve una entrada en el área de contactos por parte del usuario rnstux a el cual contacte a través del twitter (salu2 x Cierto), bueno el caso es que al  informarme un poco sobre el, observe que pertenecía a Mononeurona.org note que también había una convocatoria la cual se me hizo interesante, me inscribí al portal y aquí esta mi primera aportación un par de layouts para el logotipo para el sitio, espero les sea de su agrado.

    Logo1 este logotipo esta mas apegado al diseño original del sitio la verdad desconozco q tan radical quieran el cambio de su logotipo por estas razones preferí mantener los colores y la idea del diseño anterior.

    Primer Layout para el logo de monoNeurona.org

    Primer Layout para el logo de monoNeurona.org

    En el segundo layout solo hice un par de modificaciones sobre el concepto del celebro.

    Segundo Layout para el logo de monoNeurona.org

    Segundo Layout para el logo de monoNeurona.org

    Ambos logotipos están desarrollados con el programa de SL Inskcape (dibuja Libremente) y son descargables desde mi open-art en:

    http://openart.googlecode.com/files/monoNeurona_logos.zip

    Caso el Bruto.es

    ElBruto.es

    Genesis:

    Hace un par de meses me inscribi a la página del elbruto.es (http://fitorec.elbruto.es/)  no soy muy adepto a jugar, pero en el juego se me hiso bastante entretenido, en una ocacion cuando estaba en Oaxaca en la SicaUnitierra platicando con @eymard y @nierox me dijeron que si le entrabamos y armabamos un clan yo le dije que si, y fuee como inicia este caso.

    Estudio del caso:

    Pues bien el bruto resulta que es un juego desarrollado por motion-twin la forma en como interactuan los brutos es algo rara,  pues existen diversos servidores de elbruto:

    Grafico red elbruto.es

    Grafico red elbruto.es

    Entre toda esta complegidad en la red un detalle importante a destacar es que el el bruto.es (de España) se se conecta para extraer datos del  labrute.fr (de Francia) esto lo hace atravez del usuarios data es por esta razón que no es posible crear el usuario data y si intentamos accedes a los datos de dicho usuario p.e (http://data.elbruto.es/) nos indicara “error: 404 page no found” .

    ¿Entonces como poder ganar en el bruto?

    El problema principal es poder jugar el bruto y subir rapido de nivel, veamos como es esto posible, consideraciones:

    1.-Cuando te inscribes en el bruto el primer dia te dan 6 peleas.

    2.- Los siguientes dias solo tienes derecho a combatir 3 veces por dia.

    3.- Por cada combate que ganes a un bruto de nivel igual al tuyo o superior, te daran 2 puntos de experiencia.

    4.- Por cada pelea perdida o ganada(a un bruto de nivel inferior) solo optendras 1 punto de experiencia.

    5.- Por cada alumno nuevo que tengas (Se debera registrar con una IP distinta) te daran 1 punto de experiancia.

    6.-Cuando un alumno sube de nivel te daran 1 punto de experiencia.

    Si nos ponemos a pensar un poquito nos daremos cuenta que existen muchas formas de poder conseguir puntos de experiencia de forma rapida, una de ellas es procurar que nuestro bruto siempre gane las peleas esto para que siempre nos den 2 puntos de experiencia, entonces la pregunta seria ¿como hacerle para que nuestro bruto siempre gane?,esta pregunta es algo complicada yo le estuve pensando en como hacerle la forma como se me ocurrio fue la de buscar a los brutos mas perdedores, esto de alguna manera asegura que nuestro bruto estadisticamente tiene mas probabilidades de ganar.

    Cuando nos logeamos en el bruto y nos vamos a la arena para combatir el sistema nos muestra una lista de oponentes de nuestro mismo nivel, como se muestra en la siguiente figura.

    arene

    ¿De todos ellos quien es rival mas debil?, pues en realidad es dificil de decidir, pero podemos explorar a cada uno de ellos para ver sus estadisticar por ejemplo para ver los datos del que esta en la esquina inferior derecha (somdavgs) si podriamos ver sus datos estadisticos en su celda la cual seria la siguiente url: http://somdavgs.elbruto.es/cellule aqui mismo podemos ver datos como: nivel,puntos de vida, fuerza, velocidad, numero total de peleas ganadas; pero hay unos datos muy especiales que son las ultimas 7 actividades de nuestro bruto.

    Estas por lo regular son las ultimas 7 peleas, para cada una de ellas nos dice contra quien fue y ademas si el bruto en cuestion la perdio o gano, resulta un poco evidente que a los brutos contra los que gano deberan ser más debiles.

    Mi Solución :

    La solucion esta implicita en la explicacion previa, en la siguiente imagen intento explicar dicho concepto:

    spider

    La figura ilustra como el spider(programa que inspecciona las páginas del World Wide Web de forma metódica y automatizada)  selecciona a (Zukoo,4d38,felixxxx31)  como los siguientes candidatos (costado izquierdo) y en un determinado momento llega al usuario el cual tiene todas las peleas perdidas siendo este el rival mas debil(costado derecho).

    mi idea fue la de hacer un script que haga:

    1.- Que atraves del nick y el pass de nuestro usuario inicie sesion en  la pagina del bruto.

    2.-Seleccione a los 6 oponentes candidatos.

    3.- Para cada oponente candidato

    3.1.- Extraiga los datos estadisticos de cada uno de ellos

    3.2. Si el bruto ha perdido sus ultimas  peleas ->

    3.2.1  Recomendar combatir contra el.

    3.3. Repetir paso(3.1) Para cada bruto que halla perdido

    3.- Este paso se repetira asta que halla recorrido un nivel de 3 entre las relaciones

    Implementacion:

    De la implementación no hay mucho que decir(pues lo importante esta arriba), para realizar mi idea primero pense en Perl, sin embargo todavia no me siento muy comodo con dicho lenguaje asi que me cambie a Python el cual es un lenguaje que llevo utilizando de un corto tiempo para aqui, pero que cada vez me gusta más.

    Codigo en python:

    acceder al codigo

    acceder al codigo

    Dejo la documentacion de la que me apoye:

    Python doc Internet Protocols and Support: Documentacion oficial(ingles).

    http://docs.python.org/library/internet.html

    Interactuar con webs en Python : Breve explicación muy intuitiva con ejemplos y en español

    http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/

     

    Conclusión:

    Es posible el hacer que nuestros bruto gane siempre solo es cuestion de enfrentarlo contra el rival adecuado, por otra parte seria bueno el crear un script en el cual se conecte atraves de multiples proxy’s y nos creen alumnos si podriamos subir de puntos rapidamente.

    Bueno espero que le sirva a alguien este caso.

    p.d. Por favor creenme un alumno desde http://fitorec.elbruto.es/