3 de enero de 2013

Kiwix como mecanismo de desarrollo humano

Recuerdo mi primer semestre en la Universidad de Oriente, vivía en un pueblo olvidado de la Isla de Margarita en Venezuela. Para ese entonces, nada había cambiado nada en al menos 30 años, carreteras de tierra y casas de la época de la Colonia, los servicios básicos son practicamente inexistentes.

Junto a unos amigos de estudio, no las arreglamos para montar nuestro primer centro de computación, la Internet estaba a años luz de llegar a ese pueblo, y en la Universidad solo podía ser accedida por una red interna a ciertas horas del día, de forma impredecible e increíblemente lenta.

Como solución temporal, que luego se convirtió en una solución de varios años, nos hicimos de varias copias de la enciclopedia local y la distribuimos digitalmente en unos diskets. Casi 20 años han pasado desde entonces, y no precisamente años luz,  la situación sigue siendo la misma, el acceso a Internet es desconocido para la mayoría.

Este problema podemos verlo en casi cada zona rural de Venezuela y, en general de muchos países de Sudamérica. Según cifras recientes 30% de la población mundial ya cuenta con acceso a Internet, y el crecimiento va aunado en gran medida por los teléfonos Inteligentes y dispositivos alternos que no son computadoras.

A pesar de este crecimiento exponencial del acceso a Internet, no ha sido de manera equitativa en todas las zonas del planeta, existen zonas en las que el Internet posiblemente no llegue en décadas como el caso de poblaciones rurales del Continente Africano.

Nuestra labor

Partiendo de esta necesidad, fue lo que me hizo introducirme en el proyecto Kiwix. Al principio colaboraba con alguna traducción, luego me involucré más y, en este momento, estoy junto con el capítulo de Wikimedia Venezuela, coordinando un enlace con el gobierno local para su introducción en las escuelas mediante el proyecto Canaima.

He contado con muchos colaboradores, en donde destaca Cesar Sevilla, un compañero que conocí en festivales de instalación y listas de correo de usuarios Linux, él ha logrado instalar Kiwix en cientos de centros de computación local.

Hemos atravesado laderas y cerros para llevar él Internet a las personas que habitan en estos lugares. Estoy hablando específicamente de la península de la Guajira en Venezuela. Poblaciones accedidas por carreteras de tierra en donde cada dos horas pasa un automovil solo para dejar alguna sorpresa en el camino, sitios olvidados por los rostros de los hombres, en donde a duras penas las personas pueden alimentarse a diario con desperdicios.

Kiwix 

Nada más gratificante que ver a los niños usando Kiwix, abriendo artículos de Wikipedia que muchos usuarios han escrito, cientos de miles de artículos y horas hombre de investigación, todo allí disponible para ellos. Si todos comenzáramos a hacer esto, pronto algo importante pasará.

Kiwix era el lector de wikipedia offline mejor concebido hasta ese momento y aún sigue siendo la mejor solución, en gran parte por el trabajo realizado por el usuario de wikipedia Kelson.

Cuando entiendes que la pobreza es un asunto más cultural que económico, comprendes el papel importante de Wikipedia, todo el conocimiento humano disponible para todos. Y si hablamos de Kiwix, considero que es la mejor herramienta que conozco para colocar el contenido de wikipedia disponible al grupo de personas que más lo necesitan, niños habitantes de zonas rurales y de difícil acceso de los países pobres.

Kiwix es el medio, es la herramienta para llevar el lema principal de Wikipedia, a todos, disponible para todos. Kiwix es el camino a la independencia en conocimiento.

2 de julio de 2011

L'inspiration

C'est ma première entrée française dans le blog. Je ne mens pas, J'ai un dictionnaire à me côté .

C'est difficile faire les choses de forme obligatoire. Cela a également comprend le processus d'écriture. Quand il ya une obligation est difficil trouver l'inspiration. L'obligation tue l'inspiration. Car, oui!, si vous cherchez le thème principal de ce que j'écris.

Plusieurs têtes ont trouvé la mort dans la vie à cause de cela, D'autres ont trouvé l'inspiration quand ils oublient l'argent, la célébrité et l'ego. De bonnes egos n'est pas un synonyme réelle de l'apprentissage

l'école

Il ya toujours une personne qui essaie de se démarquer au-dessus de tous . Ce sont des gens avec une moyenne excellent point de grade, mais ils ont mis tant d'efforts à obtenir de bonnes notes qu'ils oublient l'apprentissage lui-même. Étude par l'ego, l'ego de montrer ses points excellente, à d'autres.

Certificats, diplômes, tests et même les mêmes cours que les étudiants d'évaluerleurs capacités de mémoire, ces choses tuent l'inspiration pour apprendre.

la naissance

Le peintre colombien de grosses personnes, Botero, a trouvé l'inspiration quand sa femme et son fils était mort dans un accident de la circulation. Peu de temps après, est devenu un exposantmondiale, aujourd'hui ses toiles et exculturas sont reconnus mondialement. Il est difficile de trouver de l'inspiration, si vous cherchez la paix et la stabilité, le point de conformité empêche que vous voyez des opportunités .

Dans ce cas, l'artiste retourna d'entre les morts. Sa famille est mort afin qu'il puisseêtre né de nouveau. Les moments difficiles peuvent inspirer, mais peut aussi réveiller les gens, bienvivants, étaient déjà morts avant la naissance.

Le changement

L'inspiration peut prendre des années à arriver. Garcia Marquez, par exemple, prend 30 ans avant d'écrire la première page de son roman glorieux.

Prendre une décision maintenant, porter du noir aujourd'hui, au lieu de vivre une vie dans un costume gris. Changer vos objectifs et l'a converti en un plus haut!.

N'ayez pas peur de faire une erreur de penser que c'est fou, ne pas avoir peur du rejet, le pire qui puisse arriver, c'est ne jamais essayer. L'inspiration vient de l'intérieur de vous et utilisez-le seulement à vous pour réaliser vos rêves.

Peut-être que vous voulez vivre avec un esprit mort? Si oui, il vaut mieux ne jamais être né, nous n'avons pas besoin des gens avec des esprits des morts, nous avons besoin de gens prêts à vivre avec la capacité d'aimer chaque instant.

Mon point n'est pas perdu dans une mer de philosophie ennuyeux, j'essaie d'écrire quelque chose qui va vous servir pour la vie.

    31 de enero de 2011

    Wikipedia en CD

    Casi todo el contenido de los proyectos de la Fundación Wikimedia son publicados bajo licencias que permiten a cualquiera descargar el contenido y distribuírlo en la forma que deseen. Esto ha permitido que varios proyectos hayan publicado su contenido offline como: alemán, polaco, portugués y Wikipedias en Inglés.
    Antes de que cualquier proyecto nuevo esté previsto para la publicación de Wikipedia en DVD, tarjeta de memoria flash, o cualquier otra forma de soporte digital fija, debe mantener en claro cuál es el objetivo de la distribución. ¿Debería ser simplemente un medio para acceder en línea Wikipedia, o debe ofrecer una enciclopedia multimedia más rica en características, tales como el DVD Britannica o Encarta de Microsoft? ¿Va a incorporar características interactivas?
    Una distribución de Wikipedia offline debe involucrar una serie de pasos
    1. Determinar el alcance de la liberación, a menudo dictadas por el espacio disponible en el medio utilizado. ¿La liberación será de carácter general, o se limita (por ejemplo) sólo artículos sobre las aves? ¿Se incluyen todos los artículos, o sólo los más importantes y de mejor calidad? ¿Se incluye sólo texto, o imágenes en miniatura, fotografías seleccionadas, o imagen completa/archivos de vídeo?
    2. Si se trata de algún proceso de selección, a continuación, los criterios para la selección deben ser determinados, generalmente se basa en una combinación de tema, importancia y calidad. Entonces el proceso en sí mismo se debe determinar - esto debe ser escalable (la experiencia ha demostrado que la selección manual es muy intensiva en trabajo y factible más allá de 5000 artículos) - y fundamentar la correspondiente infraestructura. En las Wikipedias Inglés y Francés, la selección se ha hecho con éxito el uso de metadatos compilados de Wikiproyectos, en la Wikipedia en Inglés, una selección de 31.000 artículos se hizo de una piscina de 1,6 millones de artículos evaluados.
    3. Después de que todo esto sea decidido, hay que decidir también sobre la forma de este paquete (digital) dada la cantidad de espacio que se requiere y si debe ser objeto de CD, cd-rom, etc.
    4. Por último, después de que todo el trabajo de selección esté hecho, se puede comenzar a hablar acerca de la distribución física. El método de distribución más común es simplemente permitir que la imagen de disco pueda ser descargado en línea para que las personas pueden crear sus propia colección en el medio que consideren.

    Qué colección de artículos

    Dependiendo del producto final, esto es para garantizar que los materiales son del tamaño adecuado y pertinente para los destinatarios. Hay muchos factores a considerar en el desarrollo de la colección más aplicable y apropiado de los artículos:
    Público
    • General/adultos - Wikipedia reducido a los contenidos más esenciales
    Popularidad de una página determinada.
    Número de veces que da la página está vinculada o hace referencia a otros sitios.
    Categoría general de la página (quitando, por ejemplo: bandas pop, artistas, y la parafernalia sexual)
    • Estudiantes/niños - Wikipedia reducido a un contenido apropiado más esencial para niño.
    Por ejemplo, Wikipedia 1.0 (en inglés)
    O, quizás: Wikipedia Simple en Inglés
    Complejidad del Artículo
    • Idiomas alternativos
    • Simplificado del Español.
    Propósito
    • General - más o menos cualquier/todo el contenido de Wikipedia es aceptable
    • Del lugar - el deseo sólo un subconjunto específico de artículos
    Objeto específico de audiencia específica (por ejemplo, "Wikichicos" - para los niños)
    Artículos específicos alrededor de un tema (por ejemplo, "Wikiosity" - selecciona los artículos pertinentes alrededor de un tema específico)

    Qué calidad deben tener los artículos

    Es la versión del artículo a descargar. Varios proyectos están actualmente en marcha para ayudar a identificar esto, por ejemplo WikiTrust

    Exportar Wikipedia a un archivo y almacenar

    Este trabajo se está haciendo por un grupo de voluntarios en un proyecto llamado openZIM, que es apoyado por la Fundación Wikimedia. La extensión PediaPress Collection también puede exportar archivos de ZIM, la prueba de la primera aplicación ya ha comenzado.

    Lector

    • Descargar/CD/USB - Kiwix (Compatible con el formato ZIM y apoyado por la Fundación Wikimedia)
    • Imprimir - Por ejemplo, PediaPress
    Una cuestión clave a considerar cuando se piensa en construir la distribución es como se usará y a quién va dirigido, con el fin de llegar más eficazmente a las audiencias previstas.

    28 de enero de 2011

    La Fundación Wikimedia apoya a Kiwix

    Esperado desde hace mucho tiempo, la Fundación Wikimedia, ahora soporta oficialmente a Kiwix. El blog técnico de la Fundación había sugerido en varias ocasiones en las últimas semanas, pero gracias a un boletín completo sobre el tema "Wikipedia offline" es como la noticia fue anunciada.

    Esta decisión es el fruto de un trabajo de varios autores por casi dos años y será tomado en cuenta en futuros trabajos de la dirección estratégica de la Fundación. Después de haber decidido que la prioridad estratégica primordial era aumentar el tamaño de los lectores, la Fundación Wikimedia, lógicamente, se ha interesado en el suministro de soluciones de contenido fuera de línea. De allí el interés por Kiwix.

    Es una alegría, naturalmente, tener este nuevo soporte. El primer paso de esta colaboración ya ha comenzado: un esfuerzo conjunto para analizar y mejorar la experiencia del usuario. Este trabajo se espera que dure varios meses y el resultado probablemente se correlacionan con la versión final de la versión 0.9 de Kiwix.

    La otra buena noticia, que sin duda es algo de nosotros mismos, es que el proyecto que pusimos en marcha openZIM también les llamó la atención y es parte de nuestra solución. Se firmó un contrato para PediaPress una extensión de Mediawiki llamada "Colección", que también permite crear archivos ZIM.

    Hoy Kiwix ya funciona muy bien y ahora es fácil de hacer DVDs con contenido de Wikipedia. Con este nuevo soporte, la promesa de una distribución de contenido aún mayor, totalmente libre y desprovista de los intereses comerciales probablemente será posible realizar.

    Fuente. Traducción del artículo original

    10 de diciembre de 2010

    Servicio de Windows para bloquear memorias USB o USB de tipo STORAGE con C#

    El Problema

    Son bien conocidos los inconvenientes de MS Windows XP/7 para evitar los virus. En especial, los que utilizan unidades de almacenamiento secundario para propagarse.

    Recientemente, he iniciado una migración a Linux por motivos de seguridad (muchos motivos en realidad). Durante el proceso de migración, que suele tomar bastante tiempo (esto depende de muchos factores, claro está), es necesario mantener a las estaciones operativas.

    Es un trabajo sucio que alguien debe hacer, perder un tiempo menor para ganar un tiempo mayor (tiempo que será aprovechado para la migración a linux). Ese es el objetivo de este tutorial, establecer políticas efectivas de seguridad para manejar los dispositivos de almacenamiento secundario.

    Existen problemas de seguridad esenciales que el sistema operativo debería solucionar por si mismo (o en el peor de los casos facilitar las herramientas para que el usuario lo solucionarlo), sin embargo, cuando el sistema operativo no solo no es capaz de establecer políticas de seguridad efectivas sino que también abre puertas traseras a propósito para enviar información privada (como el spyware de WGA), ¿qué tipo de seguridad podrás esperar?, pues si, ninguna.

    La Solución

    Como solución momentánea, se me ocurrió elaborar un servicio que admita solamente los USB STORAGE (unidades de almacenamiento secundario) que se que no tendrán virus ni traerán programas de otras partes. Digamos que son dispositivos de almacenamiento de confianza.

    Componentes

    *Para ello he ideado un filtro simple. Un archivo de texto que llamaremos "usb.b64" encriptado con base64, que va a contener todos los seriales (identificadores únicos) de los dispositivos, uno por cada línea del archivo.

    *Un servicio que lee el contenido del archivo "usb.64". Este servicio lee el contenido del archivo solamente cuando sea insertado un dispositivo USB tipo STORAGE.

    *Si el dispositivo no está en la lista (No es un dispositivo de confianza) será retirado su hardware inmediatamente y no será reconocido nunca de allí en adelante. Para ello usaremos una utilidad de línea de comandos llamada "Devcon" que es una aplicación llamada desde nuestro servicio. "Devcon" es algo así como el administrador de dispositivos desde la consola de MS-DOS. Un ejemplo sencillo en Devcon para desactivar todas las unidades de almacenamiento secundario sería:

    > devcon disable USBSTOR*

    Herramientas que necesitaremos

    Antes que nada necesitamos una versión del compilador de c# (preferiblemente gratis). No tires tu dinero a la basura comprando la suite completa de Visual Studio a menos que necesites obligatoriamente desarrollar aplicaciones para Windows que utilicen controles especiales propietarios. Yo recomendaría Microsoft Visual C# 2010 Express

    Otra cosa que vamos a necesitar es la utilidad Devcon que les comenté arriba, pueden conseguirla aquí. Este enlace también brinda los detalles para utilizar devcon.

    Código a compilar

    El código pudiera ser difícil de utilizar o entender leyéndolo directamente en el blog (si tienes alguna idea puedes hacermela llegar), por eso te invito a copiarlo y pegarlo en tu editor favorito.

    Otra cosa que debes conocer es como instalar esta aplicación como servicio. Para ello debes utilizar installutil (Una utilidad que trae el .net framework que suele estar en WINDOWS\Microsoft.NET\Framework\v2.0....). Debes crearle un instalador al servicio

    El código completo lo he trasladado a github.

    Kiwix 0.9 alpha7 lista!

    Como he explicado en otros posts, Kiwix es un lector (GNU) de contenido multimedia online, especialmente para abrir wikipedia offline. Wikipedia se almacena en un archivo comprimido en formato openZIM, posteriormente el lector lo abre sin necesidad de descomprimir la enciclopedia.

    El formato ZIM utiliza un algoritmo complejo de compresión LZMA2, sin perdida.

    Se ha lanzado la versión Kiwix 0.9 alpha7. Es totalmente utilizable y disponible en español, catalán y una lista completa de los principales idiomas incluyendo hasta Hebreo.

    Kiwix está disponible para tanto para linux como para Windows.

    Su página principal es: www.kiwix.org

    En esta nueva alpha se han corregido varios bugs y se han agregado nuevas funcionalidades.

    La lista de funcionalidades es la siguiente:
    * Se corrigió el tema de la codificación en la ayuda en parsi
    * Se corrigió una cuestión URL analizar impacto título que contiene una '/
    * Añadir botones del ratón pulgar atrás / adelante de apoyo
    * Agregar un menú contextual "Guardar imagen como ..." para las imágenes
    * No se utiliza más la depedencia bzip2
    * Localización para todos los idiomas en el instalador de MS Windows
    * Se corrigió el nombre de archivo predeterminado por "salvar la imagen" y "guardar como PDF" con el artículo que contiene un "/"
    * Se acomodó un pequeño fallo responsable de duplicar las llamadas zim
    * Por defecto, la instancia Kiwix ya no es "en vivo". Ahora se puede decidir con buildDistribution.pl
    * Proponer un diálogo de descarga si el tipo MIME se desconoce
    * Nuevos escenarios: catalán
    * Corregido un error en el proceso de "imposible" la indexación en caso de defecto library.xml
    * Restablecimiento de la herramienta de conmutación de la piel
    * Considere la posibilidad de chrome: / / url como interna, y no piden anumore para cargar la URL con una aplicación externa.
    * Pantalla completa es ahora una pantalla completa * real *
    * Se corrigió la inicialización del generador artículo url al azar
    * Se corrigió un problema al hacer después de cerrar una pestaña
    * Se corrigió el tema sin título de la ficha si el usuario hace antes de cambiar ficha de contenido
    * Se corrigió la dependencia liblzma Brocken en el paquete Debian de Maverick
    * En el programa de instalación de Windows, añade cuadros de diálogo para elevar el nivel de usuario para obtener permisos de administrador

    25 de febrero de 2010

    Nueva versión de kiwix, wikipedia offline

    Hace algunos días ha salido la versión 0.8 de kiwix. Es una versión con algunas mejoras, aportando la misma funcionalidad de siempre. Durante los 6 meses se estubo probando sin encontrar errores en todo ese tiempo. Al mismo tiempo se está trabajando en la versión 0.9 que estará próxima a salir en el mes de abril. Por ahora kiwix solamente funciona en GNU/Linux, esto sigue siendo un obstaculo para muchos usuarios y países en donde la plataforma Windows es muy usada. Sin embargo, técnicamente hablando, la versión 0.8 es un paso importante. A continuación se mencionan algunas mejoras:
    * Completamente reescrito, han sido quitadas funciones no usadas. La programación se ha realizado de forma más modular y el código ha sido comentado.
    * Kiwix está basado enteramente en el contenido con formato ZIM, cuyo desarrollo es ahora independiente, con la creación del proyecto openZIM. Evidentemente, esto significa que cualquiera que lo desee puede hacer una ZIM y Kiwix puede leerlo.
    * El motor de búsqueda es ahora xapian, un motor de búsqueda libre, que goza de un buen apoyo y ofrece muchas posibilidades. El índice Kiwix se ofrece ahora también de manera integrada, esto significa que si usted tiene ZIM, Kiwix fácilmente puede indexar y proporcionar la funcionalidad de búsqueda en el nuevo contenido. Otro punto importante es que todas las búsquedas son case insensible igualmente para los acentos.
    * El proceso de localización es estable y hay más idiomas y más apoyo.

    En resumen, con la versión 0.5, hemos demostrado la validez del concepto. Con la versión 0.8 se ponen las bases para un programa de calidad realmente abierto y profesional.

    Éstos son el ChangeLog casi completa:

    * Small improvement by the kiwix.sh launcher (should work now under Slackware (see https://sourceforge.net/forum/message.php?msg_id=7561932)
    * Fix sporadic segfault by indexing (ID: 2823597)
    * Fix dynlib linking issue affecting at least Slackware and Fedora
    * Use xapian-core-1.0.14
    * Fix the "no icons available" issue (ID: 2830824)
    * Fixed toolbar icons with RTL languages
    * Improved toolbar UI (added icons & tooltip)
    * Fixed window size/position restore
    * Fixed address-bar not displaying TOC URLs (ID: 2806208)
    * Fixed anchored link not working (ID: 2806207)
    * High reducing of the xapian index disk usage
    * Improvement of the history management
    * Ignore now, by indexing, HTML pages with the NOINDEX meta tag
    * French/Spanish/German/Arabic/Italian translation of the software help
    * Fixed language switch menu (ID: 2822178)
    * New logo and artworks
    * Bug fix by the indexing process observer (ID: 2811642)
    * Add a gray version of the buttons
    * Able to index a ZIM by itself
    * First version of a software help
    * Add a cache strategy
    * Use now ZIM
    * Random page feature (ID: 2799134)
    * Fix an issue concerning URLs with local anchors (ID: 2798769)
    * Localisation of Xulrunner builtins (ID: 2799815)
    * Rewrite the buggy MD5 code
    * Remember the window geometry (ID: 1671235)
    * 32 bits support for large ZIM file (ID: 2801839)
    * Use now Xapian

    Cabe recordar que estas fueron las versiones anteriores de Kiwix:

    * V0.5 primavera de 2007
    * V0.7 invierno 2008 (ya no se soportará más)

    Como se puede verse, el ritmo de producción no era muy alto. Esto está cambiando, ha aumentado la cantidad de desarrolladores, incluyendome. El software en sí, ya que, antes se trabajaba principalmente en la generación de secuencias de comandos de HTML. En consecuencia, la versión 0.9 está ya muy avanzada y la primera versión alpha debe salir en abril, especialmente con el regreso de soporte completo para Windows.

    22 de septiembre de 2009

    PHP Programación Orientada a Objetos Primeros Pasos para usarlo en EXTJS

    Por algunos días he estado pensando en el ejemplo más sencillo para comenzar a dar clases explicando POO (Programación Orientada a Objetos) con PHP 5, y se me ha ocurrido lo siguiente:

    class conector {
    /* Parámetros de la conexión */
    private $server = "localhost";
    private $db = "Mi_BaseDeDatos";
    private $user = "root";
    private $pass = "root";
    /* Funtion construc */
    public function __construct()
    {
    $this->link=mysql_connect($this->server,$this->user,$this->pass);
    mysql_select_db($this->db);
    }
    /* Ejecuta consulta sql */
    public function sql($query)
    {
    $request = (!mysql_query($query,$this->link))?("Error MySQL: ".mysql_error()." \n Query: $query"):("Se realizo la operación");
    mysql_close();
    return "{ \"success\": true, \"msg\": \"$request\"}";
    }
    /* Retorna un JSON para ser leído en el cliente por algún componente */
    public function json($query)
    {
    $arr = array();
    $rs = mysql_query($query,$this->link);
    while($obj = mysql_fetch_object($rs)) {
    $arr[] = $obj;
    }
    mysql_close();
    return json_encode($arr);
    }
    }
    ?>


    Posteriormente a esto, ahora nos toca utilizar alguna de nuestras funciones, por ejemplo, queremos un json de una tabla, simplemente:


    $enlace = new conector();
    echo $enlace->json("Select * from personal");