<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wikiprogramming.alfredgg.dev/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wikiprogramming.alfredgg.dev/feed.php">
        <title>Programming fw</title>
        <description></description>
        <link>https://wikiprogramming.alfredgg.dev/</link>
        <image rdf:resource="https://wikiprogramming.alfredgg.dev/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-13T10:25:59+0000</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android1&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:behave&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:celery&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:django&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangoadv&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangorest&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dshow&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dx&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:elixir&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:flask&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:fmod&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:gevent&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:imgmagick&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:lib3ds&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:locust&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:log4j&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:mongoengine&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:ogl&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv2&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:others&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pygame&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pyqt4&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt4&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:sqlalchemy&amp;rev=1594546116&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:tornado&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:twisted&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:txml&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:winapi&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:zeromq&amp;rev=1589016310&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wikiprogramming.alfredgg.dev/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Programming</title>
        <link>https://wikiprogramming.alfredgg.dev/</link>
        <url>https://wikiprogramming.alfredgg.dev/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Android</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android&amp;rev=1589016310&amp;do=diff</link>
        <description>Android

General

Instalación

Para desarrollar una aplicación para android necesitaremos tener:

	*  Eclipse
	*  El SDK de Android
	*  Instalar el plugin para eclipse de desarrollo de Android.

La web oficial de desarrollo en Android es &lt;http://android-developers.blogspot.com/index.html&gt;.

Arquitectura</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android1&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Android (new)</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:android1&amp;rev=1589016310&amp;do=diff</link>
        <description>Android (new)

Beginning

Instalation

Applications

There are several classes inside the SDK which are useful to develop Android applications...

	*  Activity: Is the main class to develop user interaction. Usually they implement are focused on a single action.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:behave&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Behave</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:behave&amp;rev=1589016310&amp;do=diff</link>
        <description>Behave

In Behave the user story is called Feature, it contains scenarios which are executed by steps. Steps are tests placed into a “steps” folder inside the working directory. Those tests are writen in a python script file (.py), whereas features are writen in a .feature file. We associate steps with features using</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:celery&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Celery</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:celery&amp;rev=1589016310&amp;do=diff</link>
        <description>Celery

It’s a task queue with focus on real-time processing, while also supporting task scheduling. 

Celery distributes its jobs between workers, they are programs which use AMPQ protocol to connect to brokers.

To use it is needed...

	*  To install a broker.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:django&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Django</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:django&amp;rev=1589016310&amp;do=diff</link>
        <description>Django

Basic

First steps

Creating your project


$ django-admin.py startproject mysite


It will create the next file tree:


mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py


Where important files are</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangoadv&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Advanced Django</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangoadv&amp;rev=1589016310&amp;do=diff</link>
        <description>Advanced Django

Authentication

Use of the user model

There is only one class in Django which is User, different types of users are instances of this class with other special attributes set. 

Main attributes are: username, password, email, first_name, and last_name. However, there are</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangorest&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Django REST Framework</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:djangorest&amp;rev=1589016310&amp;do=diff</link>
        <description>Django REST Framework

First Steps

Official page for Django REST Framework is: &lt;http://www.django-rest-framework.org/&gt;

Installation


pip install djangorestframework


Routers

To define the URL for the API REST you can use router classes, which mount a list of relationships between url and views. It can be used in the</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dshow&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DirectShow</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dshow&amp;rev=1589016310&amp;do=diff</link>
        <description>DirectShow

Conceptos

DirectShow es la tecnología de Microsoft para el desarrollo de aplicaciones que reproducen audio y video.

Graphs, pins &amp; filters

Una aplicación DirectShow se programa a partir de bloques denominados filters. Un filter tiene una función específica en la ejecución de la tarea (existen filters source, parsers</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dx&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DirectX</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:dx&amp;rev=1589016310&amp;do=diff</link>
        <description>DirectX

	*  DirectDraw
	*  DirectInput

Documentos DirectX

	*  [Documento sobre DX8] - Uno de mis primeros documentos sobre DirectInput y DirectMusic.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:elixir&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Elixir</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:elixir&amp;rev=1589016310&amp;do=diff</link>
        <description>Elixir

	*  Web: &lt;http://elixir.ematia.de/trac/&gt;
	*  Tutorial: &lt;http://elixir.ematia.de/trac/wiki/TutorialDivingIn&gt;
	*  FAQ: &lt;http://elixir.ematia.de/trac/wiki/FAQ&gt;
	*  Ejemplos: &lt;http://elixir.ematia.de/trac/wiki/Examples&gt;

Básico

Inicio

Pasos

	*  Importaremos los elementos de Elixir mediante from elixir import *.
	*  Indicaremos la base de datos mediante metadata.bind
	*  Definiremos el modelo con clases Entity</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:flask&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Flask</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:flask&amp;rev=1589016310&amp;do=diff</link>
        <description>Flask

Básico

Static files

Por defecto los ficheros estáticos están en el directorio static. Este puede ser cambiado desde la definición de la aplicación:


app = Flask(__name__, static_folder='my_html', static_url_path='')


De esta forma decimos que el directorio</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:fmod&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>FMOD</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:fmod&amp;rev=1589016310&amp;do=diff</link>
        <description>FMOD

Para utilizarla debemos incluir en el código fmod.h y vincular fmodvc.lib (si usamos Visual Studio).

Inicializar

Antes de utilizar fmod debemos inicializar el sistema de sonido, para ello utilizamos FSOUND_Init.


FSOUND_Init(44100, 32, 0);</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:gevent&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Greenlet &amp; gevent</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:gevent&amp;rev=1589016310&amp;do=diff</link>
        <description>Greenlet &amp; gevent

Greenlet

Un greenlet es un micro-thread sin “organización implícita”, esto significa que contraolas exactamente cuando se está ejecutando y adecuar su uso. 

El uso de greenlets es parecido al de una pila de capas. La más baja es la función inicial que fue llamada, y las demás son greenlets actualmente pausados. Se irá indicando cuando se quiere trabajar con uno o con otro (switching).</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:imgmagick&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ImageMagick</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:imgmagick&amp;rev=1589016310&amp;do=diff</link>
        <description>ImageMagick

Magick Library (C++)

	*  Para utilizarlo deberemos instalar el paquete libmagick++ y, al compilar con g++, agregaremos los siguientes parámetros: -I/usr/include/ImageMagick/ -lMagick++
	*  Documentación &lt;http://www.imagemagick.org/Magick++/Documentation.html&gt;.

Ejemplos básicos

Crop de imágen y visualización</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:lib3ds&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lib3ds</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:lib3ds&amp;rev=1589016310&amp;do=diff</link>
        <description>Lib3ds

Librería para la lectura de archivos 3D Studio con extensión .3ds en C\C++.

	*  [Lib3ds]
	*  Website y documentación de Lib3ds
	*  [Especificación del formato 3ds]

Como cualquier librería de C necesitarás linkarla e incluir los .h necesarios. Cada clase (más bien estructura, lib3ds está escrito en ANSI C) tiene su definición en su .h correspondiente.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:locust&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Locust</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:locust&amp;rev=1589016310&amp;do=diff</link>
        <description>Locust

Is a load testing tool in which you define user behaviour and the system launches a lot of non-real users accessing your web page.

	*  Docs: &lt;http://docs.locust.io/en/latest/&gt;

Basic things

Install


$ pip install locustio


Basic things in Locust

We define several tasks (functions that take one argument, a Locus class instance). We set them on a</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:log4j&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>log4j</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:log4j&amp;rev=1589016310&amp;do=diff</link>
        <description>log4j

Herramienta para el registro de datos\sucesos en el código (logs) de forma secuencial en Java.

Loggers, appenders y layouts

Loggers

Permiten activar y desactivar ciertas sentencias de log. Se gestionan en una relación padre-hijo a partir de un nombre separado por puntos, donde el padre es el elemento anterior al otro. Por ejemplo</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:mongoengine&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MongoEngine</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:mongoengine&amp;rev=1589016310&amp;do=diff</link>
        <description>MongoEngine

It's a MongoDB ORM for Python.

First steps

Installation and import


$ pip install mongoengine


To start using MongoEngine we will import like this:


import mongoengine


Connecting to a DB

To connect a DB we will use the connect function, its first argument is the DB:</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:ogl&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OpenGL</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:ogl&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenGL

General

Para programar desde C con OpenGL necesitarás linkar las librerías: opengl32.lib y glu32.lib. Necesitarás también incluir los encabezados: gl\gl.h (OpenGL en general) y gl\glu.h (utilidades).

Configurar una ventana

	*  Para que una ventana utilice OGL el</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OpenCV</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenCV

OpenCV es una biblioteca de Intel que contiene rutinas y clases para el desarrollo de Computer Vision e Image Processing para C\C++. 

Introducción

Estructura de la librería

	*  cxcore, donde están las estructuras, funciones y algoritmos básicos.
	*  cv, enfocado a la Computer Vision y a la Image Processing.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv2&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OpenCV 2</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:opencv2&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenCV 2

	*  Wiki de OpenCV

Básico

Imágenes

Crear una imágen:


cv::Mat img;


Leer imágen de un fichero:


img = cv::imread(&quot;opencv.jpg&quot;);


Crear una imágen reservando el espacio (la siguiente es una en escala de grises):


cv::Mat img(240, 320, CV_8U, cv::Scalar(100));</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:others&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Otros frameworks y librerías</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:others&amp;rev=1589016310&amp;do=diff</link>
        <description>Otros frameworks y librerías
 Librería  Uso  Lenguaje utilizado  Tornado  Web y acceso asíncrono  Python  Qt  Interficies de usuario  C\C++  Gevent &amp; greenlet   Python  log4j  Gestión de logs en Java  Java  Flask  Framework minimalista para el desarrollo web en python.  Python  as3corelib  librería de utilidades básicas para ActionScript 3</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pygame&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PyGame</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pygame&amp;rev=1589016310&amp;do=diff</link>
        <description>PyGame

Básico

PyGame se compone de distintos módulos que se utilizan para acceder a los distintos dispositivos o recursos que gestiona, estos son:

	*  pygame.camera - Acceso a la webcam.
	*  pygame.cdrom - Acceso a los lectores de cd.
	*  pygame.cursors</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pyqt4&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PyQt 4</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:pyqt4&amp;rev=1589016310&amp;do=diff</link>
        <description>PyQt 4

PyQt es un binding de Python para el framework de aplicaciones de Nokia Qt. 

Para Python actualmente existen el PyQt 4 y el PyQt 3. 

Los principales módulos son:

	*  QtCore, el núcleo con las clases que no corresponden a GUIs (eventos, threads, ficheros, expresiones regulares</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Qt</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt&amp;rev=1589016310&amp;do=diff</link>
        <description>Qt

Como...

Strings

Pasar de int a QString

Utilizando la función estática de QString number, que recibe el número y su base.


QString::number(babies.size(), 10)


Ficheros

	*  [Mi introducción a aplicaciones en Qt] - Para comprender este documento necesitarás conceptos de C\C++</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt4&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Qt4</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:qt4&amp;rev=1589016310&amp;do=diff</link>
        <description>Qt4

	*  Documentación
	*  Lista de clases

Conceptos

Clases importantes

	*  QApplication, es la clase que gestiona el bucle principal de una aplicación con GUI y todo lo que lo envuelve (inicialización de la aplicación, finalización, sesión...).
	*  QCoreApplication, es la clase que gestiona una aplicación Qt sin</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:sqlalchemy&amp;rev=1594546116&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-12T09:28:36+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SQLAlchemy</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:sqlalchemy&amp;rev=1594546116&amp;do=diff</link>
        <description>SQLAlchemy

Básico

Sesiones

La sesión correspondería a la comunicación con la DB. Es la encargada de gestionar la DB, cuando hay que actualizarla o devolver uno u otro objeto (evitando los no-duplicados).

	*  session.merge(obj), merging, actualiza un objeto con la DB.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:tornado&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tornado</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:tornado&amp;rev=1589016310&amp;do=diff</link>
        <description>Tornado

Básico

	*  Web del proyecto
	*  Overview y Documentación.


import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(&quot;Hello, world&quot;)

application = tornado.web.Application([
    (r&quot;/&quot;, MainHandler),
])

if __name__ == &quot;__main__&quot;:
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:twisted&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Twisted</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:twisted&amp;rev=1589016310&amp;do=diff</link>
        <description>Twisted

Es un framework para la programación de software en red, soporta un gran número de protocolos y tipos de sockets y está basado en la implementación de eventos. Esto es, el desarrollador escribe pequeños callbacks que son llamados por el framework.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:txml&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TinyXML</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:txml&amp;rev=1589016310&amp;do=diff</link>
        <description>TinyXML

Para trabajar con archivos .xml desde C\C++.

	*  Página oficial
	*  Documentación
	*  Descarga
	*  [Versión sobre la que se ha hecho este documento]

General

Cómo empezar?

Una vez descargado y descomprimido nos encontramos con una serie de ficheros .cpp y .h. Los podemos añadir a un proyecto de Visual Studio si trabajamos en Windows o llamar al comando</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:winapi&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WinAPI</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:winapi&amp;rev=1589016310&amp;do=diff</link>
        <description>WinAPI

WinMain y el WndProc

Estudiaremos estos dos elementos cogiendo un código general de un programa que utilice la API de Windows:


#include &lt;windows.h&gt;

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	HWND hWnd;
	MSG Message;
	WNDCLASS WndClass;

	WndClass.style = CS_HREDRAW | CS_VREDRAW;
        WndClass.lpfnWndProc = WindowProcedure;
	WndClass.cbClsE…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=fw:zeromq&amp;rev=1589016310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-09T09:25:10+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZeroMQ</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=fw:zeromq&amp;rev=1589016310&amp;do=diff</link>
        <description>ZeroMQ

	*  Página web del proyecto
	*  Guía del framework
	*  Documentación pyzmq

Uso de la librería

Implementar una capa de mensajes con ZeroMQ:

	*  Escoger tipo de transporte:
		*  TCP, basado en red: tcp://hostname:port
		*  INPROC, intraproceso (inter-thread/greenlet): inproc://name
		*  IPC, interproceso:</description>
    </item>
</rdf:RDF>
