<?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 wiki2</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:15:41+0000</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:alembic&amp;rev=1625562038&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ansible&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:biicode&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:bourbon&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:caddy&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:cajon&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:chipmunk&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:csharp&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-advanced&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-examples&amp;rev=1666197474&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-new&amp;rev=1645354496&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker&amp;rev=1604755996&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:dotnet&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elasticsearch&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-code&amp;rev=1608969818&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-programming&amp;rev=1619949980&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm&amp;rev=1589630002&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:emacs&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:fluentd&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:git_pipelines&amp;rev=1647171302&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitcommands&amp;rev=1592310406&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitconcepts&amp;rev=1633105198&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitlist&amp;rev=1598377166&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:global&amp;rev=1613659040&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_basics&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_libraries&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_useful&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:graphics&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:guarriscripts&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gunicorn&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css&amp;rev=1654521142&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css_howtos&amp;rev=1589915826&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:install_wordpress&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jenkins&amp;rev=1612958004&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js&amp;rev=1667492466&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js_dom&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jupyter&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:legacy&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux-networking-tools&amp;rev=1604491464&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_commands&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_drivers&amp;rev=1599857858&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_howto&amp;rev=1652089316&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_scripting&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_tools&amp;rev=1694365664&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:mysql&amp;rev=1634635956&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:new_typescript&amp;rev=1667467802&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nginx&amp;rev=1647082932&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nodejs&amp;rev=1666984472&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:objectivec&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogl&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglios&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogllibs&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglmaths&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglpipeline&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogltherms&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:opencv&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:openvpn&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oso&amp;rev=1628515786&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:pandas_basic&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:poetry&amp;rev=1656580216&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgresql&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgrest&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:programming_links&amp;rev=1592821158&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:python3&amp;rev=1665601418&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rabbitmq&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:react_blind_sticks&amp;rev=1667409804&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:robotframework&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rust&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sass&amp;rev=1675329164&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:shortcuts&amp;rev=1599763056&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:software_notes&amp;rev=1599234420&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ssh&amp;rev=1653464324&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sublime3&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:supervisor&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:tools&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript_review&amp;rev=1667405858&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:unity&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:useful-elm&amp;rev=1619870196&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_config&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_plugins&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webcomponents&amp;rev=1620459146&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webdev&amp;rev=1590315284&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webmanagement&amp;rev=1603789156&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wiki1&amp;rev=1589016310&amp;do=diff"/>
                <rdf:li rdf:resource="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wordpress&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=wiki2:alembic&amp;rev=1625562038&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-06T09:00:38+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Alembic</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:alembic&amp;rev=1625562038&amp;do=diff</link>
        <description>Alembic

Actions

Show history


poetry run alembic history


Create migration


poetry run alembic revision --autogenerate -m ${REVISION_NAME}


Upgrade to head


poetry run alembic upgrade head


Downgrade


poetry run downgrade -1


Rename a field</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ansible&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>Ansible básico</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ansible&amp;rev=1589016310&amp;do=diff</link>
        <description>Ansible básico

Lets skim it

Inventory: fichero en /etc u otro independiente donde se guarda una lista de hosts a los que ansible va a acceder.

Modulo: utilidad dentro de Ansible para realizar unas tareas concretas en el host.

Playbook: conjunto de instrucciones para que Ansible ejecute en el host indicado. Se escriben en YAML.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:biicode&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>Biicode</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:biicode&amp;rev=1589016310&amp;do=diff</link>
        <description>Biicode

	*  &lt;https://www.biicode.com/&gt;

Basics

Installing C++ tools:


$ bii setup:cpp


Create a project:


$ bii init unit_test -L


Retrieve dependencies: 
$ bii find

Configure Eclipse as IDE: 
$ bii configure -G “Eclipse CDT4 - Unix Makefiles”

Build and run: 
$ bii build</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:bourbon&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>Bourbon, Neat, Bitters &amp; Refills</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:bourbon&amp;rev=1589016310&amp;do=diff</link>
        <description>Bourbon, Neat, Bitters &amp; Refills

Bourbon

Neat

Bitters

Refills</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:caddy&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>Caddy Server</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:caddy&amp;rev=1589016310&amp;do=diff</link>
        <description>Caddy Server

Notas

Parámetro startup

He descubierto esta config con el parámetro startup, toca investigar si hace lo que parece hacer.


localhost:2015 {
	startup &quot;go run ./server.go&quot; &amp;
	root ./static_files
	proxy / localhost:2016
}


Caddyfiles</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:cajon&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>Disaster drawer</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:cajon&amp;rev=1589016310&amp;do=diff</link>
        <description>Disaster drawer

Reverse proxies

	*  &lt;https://docs.traefik.io/&gt;
	*  &lt;https://stackoverflow.com/questions/17107431/the-simplest-possible-reverse-proxy&gt;
		*  &lt;https://mitmproxy.org/&gt;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:chipmunk&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>Chipmunk</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:chipmunk&amp;rev=1589016310&amp;do=diff</link>
        <description>Chipmunk

Bodiess and shapes

Bodies

A Chipmunk body represents an object in the Chipmunk virtual space. It can contain one or more Chipmunk shapes that represent the object’s geometry.
There are two kinds of Chipmunk bodies:

	*  Dynamic bodies are bodies that can move – you’ll be using these most of the time.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:csharp&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>C# Concepts</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:csharp&amp;rev=1589016310&amp;do=diff</link>
        <description>C# Concepts

Asynchronous programming

&lt;https://docs.microsoft.com/en-us/dotnet/csharp/async&gt;

&lt;https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/&gt;

New syntaxis</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-advanced&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>Docker Advanced</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-advanced&amp;rev=1589016310&amp;do=diff</link>
        <description>Docker Advanced

Dockerfiles

ARGS

Con el comando ARGS puedes definir, dentro del Dockerfile, qué argumentos se pueden usar para construir una imagen:


ARG &lt;name&gt;[=&lt;default value&gt;]


En el siguiente ejemplo se añade un argumento sin valor por defecto</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-examples&amp;rev=1666197474&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-19T16:37:54+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker Notes</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-examples&amp;rev=1666197474&amp;do=diff</link>
        <description>Docker Notes

Dockerfile's examples

Dockerfile.svn


FROM alpine:3.9

RUN apk update
RUN apk add subversion

WORKDIR /srv

CMD [&quot;svnserve&quot;, &quot;-d&quot;, &quot;--foreground&quot;, &quot;-r&quot;, &quot;/srv&quot;]

# You can build it with:
# docker build -f Dockerfile.svn --build-arg http_proxy=http://172.16.1.60:3128 -t svn .

# Run it with:
# docker run svn
# Or even better:
# docker run -p 3690:3690 -v /home/alfred/tmp/svnsrv:/srv --name svn svn

# To enter to it you'll do:
# docker run -ti svn sh

# Then, to create repos:
# doc…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-new&amp;rev=1645354496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-20T10:54:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker Commands</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker-new&amp;rev=1645354496&amp;do=diff</link>
        <description>Docker Commands

Basic

Create and start a container

Creating a running a container from an image

docker run &lt;image name&gt; command


docker run busybox echo hi there


Create a container

docker create &lt;image name&gt;

Start a container

docker start &lt;container id&gt;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker&amp;rev=1604755996&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-07T13:33:16+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Docker</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:docker&amp;rev=1604755996&amp;do=diff</link>
        <description>Docker

Fast use

Mongo

Usar e instalar la imagen de mongo mapeando el puerto 27017 y los datos en /data/db


docker run --rm -d -v /home/alfred/tmp/data:/data/db -v /tmp:/tmp -p 27017:27017 --name mongo mongo


MySql

Usar e instalar la imagen de mysql mapeando los datos en</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:dotnet&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>Dotnet</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:dotnet&amp;rev=1589016310&amp;do=diff</link>
        <description>Dotnet

Common actions

Create new console project


dotnet new console


Execute the current project:


 dotnet run


Add library LibGit2Sharp:


dotnet add package LibGit2Sharp --version 0.26.1


Build for Windows (or other [environment]):


dotnet build --runtime win-x64</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elasticsearch&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>Elasticsearch</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elasticsearch&amp;rev=1589016310&amp;do=diff</link>
        <description>Elasticsearch</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-code&amp;rev=1608969818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-26T08:03:38+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Elm Code</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-code&amp;rev=1608969818&amp;do=diff</link>
        <description>Elm Code

Elm patterns

Gotchas

Wrap\Unwrap


type Dollar = Dollar Float

priceInEuros: Dollar -&gt; Float
priceInEuros (Dollar d) = d * 1.1

priceInEuros 3.3  -- 3.63


Partially applied functions

Every function that accepts two arguments can be converted in one that accepts one argument:</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-programming&amp;rev=1619949980&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-02T10:06:20+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programming with Elm</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm-programming&amp;rev=1619949980&amp;do=diff</link>
        <description>Programming with Elm

Maybe &amp; Nothing

A Maybe variable could really have a value or not. If not, then, it is Nothing.

It is easily managed with a case:



url = case Url.fromString flags.url of
   Just value -&gt; value
   Nothing -&gt; (Url.Url Url.Https &quot;127.0.0.1&quot; (Just 3000) &quot;&quot; (Just &quot;&quot;) (Just &quot;&quot;))</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm&amp;rev=1589630002&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-16T11:53:22+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Elm</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:elm&amp;rev=1589630002&amp;do=diff</link>
        <description>Elm

Starting

When starting a project you will launch the next command:


elm init


You can add Elm code to src folder. For example Main.elm:


import Html
main = Html.text &quot;Hello world&quot;


You can see its result with the next command launching the elm file.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:emacs&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>Emacs</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:emacs&amp;rev=1589016310&amp;do=diff</link>
        <description>Emacs

	*  C-x = CTRL + x
	*  C-x b c = CTRL + x, b, c
	*  M-x = ALT + x

Important to know

Cancel a command: C-g

Close emacs: C-x C-c

Close an authomatic opened buffer: q

Opening Emacs

Opening emacs: $ emacs

Opening emacs in console: $ emacs -nw</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:fluentd&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>Fluentd</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:fluentd&amp;rev=1589016310&amp;do=diff</link>
        <description>Fluentd

It is a service to manage system logs. It takes logs from software (MySQL, Apache, the system...) and unify their format and send them to the required place.

Also called td-agent.

Before install: &lt;http://docs.fluentd.org/articles/before-install&gt;

By default, td-agent is configured to take logs from HTTP and route them to stdout (</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:git_pipelines&amp;rev=1647171302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-13T11:35:02+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GIT Pipelines and How To's</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:git_pipelines&amp;rev=1647171302&amp;do=diff</link>
        <description>GIT Pipelines and How To's

Merge a feature branch


git checkout master
# Merge with squash so it's clean
git merge feature-branch master --squash
git checkout master
git commit -a
# Remove local and remote branch
git branch -d feature-branch
git push origin --delete feature-branch</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitcommands&amp;rev=1592310406&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-16T12:26:46+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GIT commands</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitcommands&amp;rev=1592310406&amp;do=diff</link>
        <description>GIT commands

Repositories

Creating them

Without a tree code

bare parameter allows that:


ssh git@example.com
mkdir my_project.git
cd my_project.git
git init --bare
git update-server-info # If planning to serve via HTTP
exit


Use a remote repository</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitconcepts&amp;rev=1633105198&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-01T16:19:58+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GIT concepts</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitconcepts&amp;rev=1633105198&amp;do=diff</link>
        <description>GIT concepts

Obtaining info

Present of branch

git status gives you information about which files have changed for the next commit.

git status -s does it schematic.

Story of the branch

git log gives you information about the commits in your repository. Parameters for log are</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitlist&amp;rev=1598377166&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-25T17:39:26+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Git tools</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gitlist&amp;rev=1598377166&amp;do=diff</link>
        <description>Git tools

Gitlist

	*  &lt;http://gitlist.org/&gt;
	*  &lt;https://github.com/klaussilveira/gitlist&gt;
	*  &lt;https://github.com/klaussilveira/gitlist/wiki/Troubleshooting&gt;
	*  &lt;https://github.com/klaussilveira/gitlist/blob/master/INSTALL.md&gt;
	*  &lt;https://github.com/klaussilveira/gitlist/issues/322&gt;

Gitea

Supervisor config file for the process:


[program:gitea]
user = root
directory=/srv/gitea/
command=/srv/gitea/gitea web
autostart=true
autorestart=false
environment = HOME=&quot;/home/root&quot;, USER=&quot;root&quot;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:global&amp;rev=1613659040&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:37:20+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Interview Notes</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:global&amp;rev=1613659040&amp;do=diff</link>
        <description>Interview Notes

Academic subjects

Complexity

	*  Complexity and Big O notation

	*  O(1) — Constant Time 
Given an input of size n, it only takes a single step for the algorithm to accomplish the task.
	*  O(log n) — Logarithmic time  
Given an input of size n, the number of steps it takes to accomplish the task are decreased by some factor with each step.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_basics&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>Go Basics</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_basics&amp;rev=1589016310&amp;do=diff</link>
        <description>Go Basics

Basics

Program structure


package main
import &quot;fmt&quot;

func main() {
	fmt.Println(&quot;Hello world!&quot;)
}


You can write two types of programs: executable programs and shared libraries. When you write
executable programs, you must give main as the package name to make the package an executable program. The executable programs in Go are often referred to as commands in the official Go documentation. The entry point of the executable program is the main function of the main package.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_libraries&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>Librerías en Go</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_libraries&amp;rev=1589016310&amp;do=diff</link>
        <description>Librerías en Go

Configuración con Viper

Por ejemplo un fichero como este en settings.config:


api:
  port: 8088
db:
  connectionstring: 127.0.0.1
  database: marcarrodes


Puede ser leído:


import &quot;github.com/spf13/viper&quot;

func configure() {
	viper.AddConfigPath(os.Getenv(&quot;MARCARRODES_CONFIG&quot;))
	viper.AddConfigPath(&quot;./settings/&quot;)
	err := viper.ReadInConfig()
	if err != nil {
		panic(fmt.Errorf(&quot;Fatal error config file: %s \n&quot;, err))
	}
}

func main() {
       ...
       configure()
       ..…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_useful&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>Useful Go</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:go_useful&amp;rev=1589016310&amp;do=diff</link>
        <description>Useful Go

Installing

Go to &lt;https://golang.org/dl/&gt; and look for your system:


wget your_binary
sudo tar -xvf &lt;&gt;
sudo mv go /usr/local/
export GOROOT=/usr/local/go
export GOPATH=$HOME/gopath
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH


To check:


go version
go env


Projects</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:graphics&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>Graphics</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:graphics&amp;rev=1589016310&amp;do=diff</link>
        <description>Graphics

Bezier curves

	*  

Snippets

Draw sinus

In openframeworks:


path.clear();

auto dx = (TWO_PI / 500.0) * 16;
float x = ofGetElapsedTimef();
auto space = 50.0, amplitud = 78.0;

auto y = sin(x) * amplitud;
x+=dx;
path.moveTo(0, ofGetHeight() / 2 + y);

for (int i = 1; i &lt; 25; i++) {
	y = sin(x) * amplitud;
	x+=dx;
	path.curveTo(i * space, ofGetHeight() / 2 + y);
}</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:guarriscripts&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>Guarriscripts</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:guarriscripts&amp;rev=1589016310&amp;do=diff</link>
        <description>Guarriscripts

Basics


sudo apt-get install build-essential


LAMP


sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install mysql-server
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin php5-cli</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gunicorn&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>Gunicorn</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:gunicorn&amp;rev=1589016310&amp;do=diff</link>
        <description>Gunicorn

Basics

Install


$ sudo apt-get install gunicorn


Otra opción


pip install gunicorn


Execute

... A web app in Flask

In cringier_app file


gunicorn -w 4 -b 0.0.0.0:80 cringer_app:app


In docker containers

Gunicorn’s main process starts one or more worker processes, and restarts them if they die. To ensure the workers are still alive, Gunicorn has a heartbeat system. The default directory for the heartbeat file is in /tmp, which in some Linux distributions is stored in memory vi…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css&amp;rev=1654521142&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-06T13:12:22+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>HTML and CSS gotchas</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css&amp;rev=1654521142&amp;do=diff</link>
        <description>HTML and CSS gotchas

Change others

On a CSS hover event, change another div's styling. Without elements between:


#a:hover + #b {
    background: #ccc
}
...
&lt;div id=&quot;a&quot;&gt;Div A&lt;/div&gt;
&lt;div id=&quot;b&quot;&gt;Div B&lt;/div&gt;


On a CSS hover event, change another div's styling. With elements between:</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css_howtos&amp;rev=1589915826&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-19T19:17:06+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Html &amp; css. How to...</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:html_css_howtos&amp;rev=1589915826&amp;do=diff</link>
        <description>Html &amp; css. How to...

Layout

... prevent the padding property from changing width or height in CSS?

	*  &lt;https://stackoverflow.com/questions/779434/how-do-i-prevent-the-padding-property-from-changing-width-or-height-in-css&gt;


box-sizing: border-box;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:install_wordpress&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>Install wordpress</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:install_wordpress&amp;rev=1589016310&amp;do=diff</link>
        <description>Install wordpress

Apache

Install Apache, PHP &amp; MySQL


sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo apt-get install mysql-server php5-mysql
sudo /etc/init.d/apache2 restart


Allow permalinks</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jenkins&amp;rev=1612958004&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-10T11:53:24+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Jenkins</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jenkins&amp;rev=1612958004&amp;do=diff</link>
        <description>Jenkins

Básico

Puedes crear distintas tareas de Jenkins. Los más útiles a día de hoy:

	*  Pipeline: Un archivo de código en Groovy para definir una serie de pasos.
	*  Freestyle project: Para añadir más configuración.
	*  Pipeline multibranch: Cuando quieres hacer una pipeline por cada branch del proyecto.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js&amp;rev=1667492466&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-03T16:21:06+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JavaScript</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js&amp;rev=1667492466&amp;do=diff</link>
        <description>JavaScript

Objects

Create

There are three ways to create an object:


var newObject = {};
var newObject = Object.create( Object.prototype );
var newObject = new Object();


Properties


// 1. Dot syntax
newObject.someKey = &quot;Hello World&quot;;
var value = newObject.someKey;
 
// 2. Square bracket syntax
// Set properties
newObject[&quot;someKey&quot;] = &quot;Hello World&quot;;
 

// 3. Object.defineProperty
Object.defineProperty( newObject, &quot;someKey&quot;, {
    value: &quot;for more control of the property's behavior&quot;,
    wr…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js_dom&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>Lets avoid jQuery</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:js_dom&amp;rev=1589016310&amp;do=diff</link>
        <description>Lets avoid jQuery

	*  &lt;https://htmldom.dev/&gt;  
	*  &lt;http://youmightnotneedjquery.com/&gt;
	*  &lt;https://github.com/nefe/You-Dont-Need-jQuery&gt; | 
	*  &lt;https://news.ycombinator.com/item?id=19534060&gt;

Vanilla

Foreach:


the_array.forEach(function(element) {
  console.log(element);
});


Typical jQuery

OnDocumentLoad:


(function() {
   // your page initialization code here
   // the DOM will be available here
})();</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jupyter&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>Jupyter notebooks</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:jupyter&amp;rev=1589016310&amp;do=diff</link>
        <description>Jupyter notebooks

Basic

Current examples: Github -&gt; iPython -&gt; iPython -&gt; examples

Ctrl+ENTER en una celda la ejecuta y se queda en dicha celda. Con Shift + ENTER la ejecuta y pasa a la siguiente.

Puedes cambiar el tipo en Cell -&gt; Cell Type. Por ejemplo código, markdown, texto...

!ls</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:legacy&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>Legacy Sections</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:legacy&amp;rev=1589016310&amp;do=diff</link>
        <description>Legacy Sections

Angular

	*  Angular basics
	*  Angular specifics
	*  Angular concrete

Biicode

	*  Biicode

C#

	*  concepts

Fluentd

	*  Fluetd

Hadoop

	*  Hadoop ecosystem

Objective-C

	*  ObjectiveC

OpenVPN

	*  OpenVPN server config

RabbitMQ

	*  RabbitMQ

Supervisor

	*  Supervisor

TypeScript

	*  Typescript

Unity

	*  Unity

Wordpress

	*  Wordpress.
	*  Install Wordpress</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux-networking-tools&amp;rev=1604491464&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T12:04:24+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Networking tools in Linux</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux-networking-tools&amp;rev=1604491464&amp;do=diff</link>
        <description>Networking tools in Linux

Basic

	*  ip a to see interfaces + ip addresses.
	*  ifw disable disables the ubuntu firewall.

iptables

netplan

To change the network configuration in new Ubuntu versions. 

There is an .yml software in /etc/netplan. To apply changes use the next command:</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_commands&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>Linux commands</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_commands&amp;rev=1589016310&amp;do=diff</link>
        <description>Linux commands

Global commands

Uso de servidores


# Mirar el espacio en disco
$ df -h
# Mirar el espacio en memoria
$ free -h
# Mirar la ip
$ ip address


Comprimir y descomprimir


tar -zcvf archive-name.tar.gz directory-name
# Extract
tar -zxvf prog-1-jan-2005.tar.gz
# Extract in a particular directory
tar -zxvf prog-1-jan-2005.tar.gz -C /tmp</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_drivers&amp;rev=1599857858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-11T20:57:38+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux Drivers</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_drivers&amp;rev=1599857858&amp;do=diff</link>
        <description>Linux Drivers

Modules

Users can add or remove functionalities to the Linux kernel while the system is running. These “programs” that can be added to the kernel at runtime are called “module” and built into individual files with .ko (Kernel object) extension. A kernel module can be modified without need of recompiling the full
kernel.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_howto&amp;rev=1652089316&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-09T09:41:56+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux how tos</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_howto&amp;rev=1652089316&amp;do=diff</link>
        <description>Linux how tos

Find and prepare new hard-disks

On modern udev installations, there are symbolic links to storage media in subdirectories of /dev/disk, that let you look up a disk or a partition by serial number (/dev/disk/by-id/), by UUID (/dev/disk/by-uuid), by filesystem label (/dev/disk/by-label/) or by hardware connectivity (/dev/disk/by-path/).</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_scripting&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>Linux Programming</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_scripting&amp;rev=1589016310&amp;do=diff</link>
        <description>Linux Programming

Usar la salida del último comando (volviendolo a ejecutar):


$ &gt; echo pierre
pierre
$ &gt; echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre


Exit status del último comando:


$ touch /root/test
touch: cannot touch '/root/test': Permission denied
$ echo $?
1</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_tools&amp;rev=1694365664&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-10T17:07:44+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux Tools</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:linux_tools&amp;rev=1694365664&amp;do=diff</link>
        <description>Linux Tools

fsz

	*  &lt;https://github.com/junegunn/fzf&gt;

Herramienta de autocompletado, para moverte con más agilidad en la terminal.

Keybindings:

	*  ctrl+r para buscar en el historial
	*  ctrl+t para seleccionar ficheros. Por ejemplo: rm - ctrl+t - escoger ficheros con tab - enter</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:mysql&amp;rev=1634635956&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-19T09:32:36+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MySQL</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:mysql&amp;rev=1634635956&amp;do=diff</link>
        <description>MySQL

Create users

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;


mysql&gt; CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql&gt; GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' WITH GRANT OPTION;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:new_typescript&amp;rev=1667467802&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-03T09:30:02+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TypeScript</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:new_typescript&amp;rev=1667467802&amp;do=diff</link>
        <description>TypeScript

	*  [Cheatsheets], from &lt;https://www.typescriptlang.org/cheatsheets&gt;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nginx&amp;rev=1647082932&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-12T11:02:12+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>NGINX</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nginx&amp;rev=1647082932&amp;do=diff</link>
        <description>NGINX

Basics

Reload configuration inside docker:


docker exec -ti nginxcontainer nginx -s reload


Example rules

Deny all requests that contain &quot;wp-cron.php&quot; anywhere


  location ~ wp-cron.php? {
      deny all;
      access_log off;
      log_not_found off;
      return 444;
  }</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nodejs&amp;rev=1666984472&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-28T19:14:32+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>NodeJS</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:nodejs&amp;rev=1666984472&amp;do=diff</link>
        <description>NodeJS

Básico

console.log(“hello”); mostrará un mensaje por pantalla.

node fichero[.js] ejecutará el fichero.

Para importar un paquete de un módulo (como por ejemplo express):


var express = require('express');


Install dependencies


npm install</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:objectivec&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>Objective-C</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:objectivec&amp;rev=1589016310&amp;do=diff</link>
        <description>Objective-C

Install and use


sudo apt-get install gnustep gnustep-devel gobjc


File .m:


#import &lt;Foundation/Foundation.h&gt;

int main (int argc, const char * argv[])
{
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        NSLog (@&quot;hello world&quot;);
        [pool drain];
        return 0;
}</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2: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 &amp; GLSL</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogl&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenGL &amp; GLSL

Render

glDrawArrays &amp; glDrawElements

glDrawArrays is basically “draw this contiguous range of vertices, using the data I gave you earlier”.

	*  Good:
		*  You don't need to build an index buffer

	*  Bad:
		*  If you organise your data into GL_TRIANGLES, you will have duplicate vertex data for adjacent triangles. This is obviously wasteful.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglios&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 en iOS</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglios&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenGL en iOS</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogllibs&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>Librerías, utilidades y recursos</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogllibs&amp;rev=1589016310&amp;do=diff</link>
        <description>Librerías, utilidades y recursos

GLFW

	*  &lt;http://www.glfw.org/&gt;

Instalar y compilar

Instalar en Ubuntu


cmake -G &quot;Unix Makefiles&quot;
make
sudo make install


Código de ejemplo


#include &lt;GLFW/glfw3.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

static void error_callback(int error, const char* description)
{
    fputs(description, stderr);
}

static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
    if (key == GLFW_KEY_ESCAPE &amp;&amp; action == GLFW_PRESS)
       …</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglmaths&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 Maths</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglmaths&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenGL Maths

Quaternions and gimbal lock

	*  The math used by the implementation of GLKMatrix4MakeLookAt() cannot produce a useful point of view that looks directly along the “up” vector. The limitation exists because when looking directly “up” or “down,” the math used by GLKMatrix4MakeLookAt() attempts to calculate the tangent of 90 degrees, which is mathematically undefined.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglpipeline&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 Pipeline</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oglpipeline&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenGL Pipeline

OpenGL Pipeline Básico

Load pixels in memory

Android version


float[] tableVerticesWithTriangles = {
        // Triangle 1
        0, 0.5f,
        -0.5f,  0,
        0.5f,  0,

        // Triangle 2
        0, 0,
        0.5f, -0.5f,
        -0.5f,  -0.5f
};

vertexData = ByteBuffer
        .allocateDirect(tableVerticesWithTriangles.length * BYTES_PER_FLOAT)
        .order(ByteOrder.nativeOrder())
        .asFloatBuffer();

vertexData.put(tableVerticesWithTriangles);</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogltherms&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>Términos a aprender</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ogltherms&amp;rev=1589016310&amp;do=diff</link>
        <description>Términos a aprender

Para hablar con propiedad

	*  Interpolar, es lo que se hace en el fragment shader con los fragments y el color, que se interpola entre dos vértices.
	*  Ponderación, dar a unos valores más fuerza en un cálculo.
	*  Ángulo acimut</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2: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=wiki2:opencv&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenCV

Install &amp; use

Install


sudo apt-get install libopencv-dev python-opencv


Use in Python


import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) &amp; 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:openvpn&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>OpenVPN Server</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:openvpn&amp;rev=1589016310&amp;do=diff</link>
        <description>OpenVPN Server

Quick roadmap

There is a script which you can use to easy install an openvpn server.

	*  
	*  &lt;https://github.com/Nyr/openvpn-install&gt;

Here is how to use the config in the network-manager: 

And here how to config an static IP:

	*  
	*  

Still I only added this:


ifconfig-push 10.8.0.100 255.255.255.0</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oso&amp;rev=1628515786&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-09T13:29:46+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OSO</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:oso&amp;rev=1628515786&amp;do=diff</link>
        <description>OSO

Básico

Es una librería para desarrollar la autorización a recursos de un sistema.

Usa un lenguaje propio denominado Polar, con este se definen una serie de reglas. Luego, desde Python se realizará la pregunta a Oso si tal usuario tiene un acceso concreto (que podría ser lectura, escritura</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:pandas_basic&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>Basic Pandas</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:pandas_basic&amp;rev=1589016310&amp;do=diff</link>
        <description>Basic Pandas

Basic navigation

See the first 3 rows: df.head(3)

Valores únicos de una columna df.&lt;columna&gt;.unique()

Coger solo unas columnas: 

df[['1990', '2000', '2010']]

Filter by a row value:


is_1809 =  df['Mes'] == 'Septiembre 18'
df[['Mes', 'Categoria', 'Real']][is_1809]</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:poetry&amp;rev=1656580216&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-30T09:10:16+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Poetry</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:poetry&amp;rev=1656580216&amp;do=diff</link>
        <description>Poetry

Basic

Create a project


poetry new project


ℹ️ This will create a project folder in the current path.

Initializing an existent project


poetry init


Install dependences


poetry install


Or


poetry install --no-root


Add package</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgresql&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>PostgreSQL</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgresql&amp;rev=1589016310&amp;do=diff</link>
        <description>PostgreSQL

Basics

\q exit.

Know the postgresql version: SELECT version();

To explore the server:

	*  \list or \l: list all databases
	*  \dt: list all tables in the current database
	*  \connect database_name to switch database

To access to a recently installed postgres server:</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgrest&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>PostgreSQL for PostgREST</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:postgrest&amp;rev=1589016310&amp;do=diff</link>
        <description>PostgreSQL for PostgREST

	*  &lt;http://postgrest.org/en/v5.0/&gt;

Crear el schema


create schema api;


Crear usuarios

Anónimos


create role web_anon nologin;
grant web_anon to postgres;
grant usage on schema api to web_anon;
grant select on api.todos to web_anon;


Usuario de confianza</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:programming_links&amp;rev=1592821158&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-22T10:19:18+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programming links</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:programming_links&amp;rev=1592821158&amp;do=diff</link>
        <description>Programming links

Blogs

Languages

C and C++

	*  C++ Guidelines
	*  C++ hints
	*  Pythonic C++
	*  Tips for C

Libraries and snippets

	*  Garbage collection with cello
	*  Thread pool in C++11

Python

	*  Tips &amp; tricks
	*  Tips &amp; traps
	*  &lt;http://mezzanine.jupo.org/&gt; CMS for Django

Resources

	*  &lt;http://pycoders.com/&gt;, weekly news.
	*  &lt;http://blog.notdot.net/tag/damn-cool-algorithms&gt;, damn cool algorithms.

Blogs

	*  Good computer vision articles.

Videos

	*  &lt;https://www.youtube.com/…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:python3&amp;rev=1665601418&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-12T19:03:38+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python 3</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:python3&amp;rev=1665601418&amp;do=diff</link>
        <description>Python 3

New features

Format string


a = 3
b = 'hola'
c = f'{hola} {a} veces'


Template strings


import os
from string import Template
class TemplatesMixin:
    TEMPLATES_DIR = None
    def _read_template(self, template_path):
        with open(os.path.join(self.TEMPLATES_DIR, template_path)) as template:
            return template.read()
    def render(self, template_path, **kwargs):
        return Template(
            self._read_template(template_path)
        ).substitute(**kwargs)</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rabbitmq&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>RabbitMQ</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rabbitmq&amp;rev=1589016310&amp;do=diff</link>
        <description>RabbitMQ

Notes

Reset queues


$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl start_app</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:react_blind_sticks&amp;rev=1667409804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-02T17:23:24+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>React Blind Sticks</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:react_blind_sticks&amp;rev=1667409804&amp;do=diff</link>
        <description>React Blind Sticks

Commands

	*  npx create-react-app my-app
	*  npx create-react-app my-app --template redux
	*  npx create-react-app my-app --template redux-typescript

Redux


import { createStore } from 'redux';
// Forbids to change the object structure
const initialState = Object.freeze({
    title: 'Beautiful Code',
    author: 'Douglas Crockford'
});

// State updater
function reducer(book = initialState, action) {
  switch (action.type) {
    case 'CHANGE_BOOK_TITLE':
      return {
   …</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:robotframework&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>Robotframework</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:robotframework&amp;rev=1589016310&amp;do=diff</link>
        <description>Robotframework

Basic

Execute all the tests in a .robot file: robot file.robot

Execute a test in a .robot file: robot -t “The test” *.robot

Execute all the tests in a folder of .robot files: python -m robot folder

You can log into console thanks to the</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rust&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>Rust</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:rust&amp;rev=1589016310&amp;do=diff</link>
        <description>Rust

Install &amp; Uninstall

Install


$ curl -sSf https://static.rust-lang.org/rustup.sh | sh


Uninstall


$ sudo /usr/local/lib/rustlib/uninstall.sh</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sass&amp;rev=1675329164&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-02T09:12:44+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sass</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sass&amp;rev=1675329164&amp;do=diff</link>
        <description>Sass

Execute


sass --watch main.scss:../stylesheet.css


Install and fix errors


sudo apt install sass


If there is an error with watch like: LoadError: cannot load such file -- sass-listen, you will need to execute the next:


sudo apt-get install ruby-listen
sudo gem install sass-listen</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:shortcuts&amp;rev=1599763056&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-10T18:37:36+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Shortcuts</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:shortcuts&amp;rev=1599763056&amp;do=diff</link>
        <description>Shortcuts

Docker

Start Postgres


docker run --rm -d -p 5432:5432 -v /home/alfred/tmp/postgresdata:/var/lib/postgresql/data -v /tmp:/tmp --name postgres -e POSTGRES_PASSWORD=mysecretpassword postgres


Logs:


docker logs --since 30s -f &lt;container_name_or_id&gt;
docker logs --tail 20 -f &lt;container_name_or_id&gt;</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:software_notes&amp;rev=1599234420&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-04T15:47:00+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Software Notes</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:software_notes&amp;rev=1599234420&amp;do=diff</link>
        <description>Software Notes

Online useful software

	*  &lt;https://json.pizza/&gt;, para el formateo de jsons.
	*  &lt;http://htmlshell.com/&gt;, para el esqueleto html.

Redis Desktop Manager

Si no empieza has de ejecutar la siguiente línea al principio:


source /opt/qt56/bin/qt56-env.sh


Little notes

	*  Blockchain is when it's public and decentralised. Not when you put stuff in blocks and hash stuff.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ssh&amp;rev=1653464324&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-25T07:38:44+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SSH and similars</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:ssh&amp;rev=1653464324&amp;do=diff</link>
        <description>SSH and similars

SSH use

Conectar con un .pem

ssh -i keyhindoor.pem ubuntu@54.217.224.44

SFTP

sftp -o IdentityFile=keyhindoor.pem ubuntu@54.217.224.44

SCP

Para hacer copia de ficheros: scp [[user@]from-host:]source-file [[user@]to-host:][destination-file]</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sublime3&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>Sublime Text 3</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:sublime3&amp;rev=1589016310&amp;do=diff</link>
        <description>Sublime Text 3

How to use it?

	*  To open the console: View &gt; Show console

Config

To not remember the files when the program is launched:


{
	&quot;hot_exit&quot;: false,
	&quot;remember_open_files&quot;: false
}



Plugins

Basic plugins:

	*  Package Control. To open it: Ctrl + Shift + P</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:supervisor&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>Supervisor</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:supervisor&amp;rev=1589016310&amp;do=diff</link>
        <description>Supervisor

Basics

Install


sudo apt-get install supervisor 


Configure

In path /etc/supervisor/supervisord.conf we can configure it for any user:


[unix_http_server]
;file=/var/run/supervisor.sock ; (the path to the socket file)
file=/tmp/supervisor.sock ; (the path to the socket file)
chmod=0777 ; sockef file mode (default 0700)</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:tools&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>Global tools</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:tools&amp;rev=1589016310&amp;do=diff</link>
        <description>Global tools

Nodemon

Different extensions:


$ nodemon -e html,js --exec clasp push


Multiple directories:


$ nodemon --watch app --watch libs app/server.js</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript&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>TypeScript</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript&amp;rev=1589016310&amp;do=diff</link>
        <description>TypeScript

Basics

Foreach


for (var item of someArray) {
    console.log(item); // 9,2,5
}


Functions with return type


greet() : string {
    return &quot;Hello!&quot;;
}


Getters


get whereSendContent () {
    return `${AppConfig.ServerUrl}'/content`;
}</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript_review&amp;rev=1667405858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-02T16:17:38+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TypeScript Review</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:typescript_review&amp;rev=1667405858&amp;do=diff</link>
        <description>TypeScript Review


/*
Inicializar un paquete:
npm init -y
Añadir el compilador typescript
npm add -s typescript
Ejecutar el compilador typescript
npx tsc
Inicializar projecto typescript con codigo en src y salida en lib
npx tsc --init --rootdir src --outdir lib
Ahora la ejecución compila el codigo
npx tsc
Dejarlo compilando
npx tsc --watch
*/

let message: string = &quot;Hello world&quot;;
console.log(message);

/*
&quot;use strict&quot;;
let message = &quot;Hello world&quot;;
console.log(message);
*/

//-- Primitives
let i…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:unity&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>Unity</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:unity&amp;rev=1589016310&amp;do=diff</link>
        <description>Unity

	*  [Unity notes]</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:useful-elm&amp;rev=1619870196&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-01T11:56:36+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Useful Elm</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:useful-elm&amp;rev=1619870196&amp;do=diff</link>
        <description>Useful Elm

Base structure


module Happened exposing (..)

import Browser
import Html exposing (div, text)

main =
  Browser.element
    { init = init
    , update = update
    , subscriptions = subscriptions
    , view = view
    }

type alias Model = 
    { number: Int
    , flags: Flags
    }

initialModel : Flags -&gt; Model
initialModel flags = { number = 0, flags = flags }

subscriptions : Model -&gt; Sub Msg
subscriptions model =
  Sub.none

type alias Flags = 
    { value : String
    }

init…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim&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>Vi/Vim</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim&amp;rev=1589016310&amp;do=diff</link>
        <description>Vi/Vim


vim --version  shows the vim version and its enabled complements
vim -g         starts vim in graphical IDE


Edition


u           Undo last action
dd          Remove current line
d5d         Remove five lines
:e!         Reread the file and override done changes</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_config&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>Vim Configuration</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_config&amp;rev=1589016310&amp;do=diff</link>
        <description>Vim Configuration

The .vimrc file on your home folder is the vim configuration file. However you can use the next .vim folder structure, also in the home folder:


.vim
  |__vimrc    # configuration file 
  |__after/    # for overrides to system-level vim
  |__autoload/ # a directory for some plugins
  |__colors/   # custom colorthemes
  |__doc/      # documentation
  |__ftplugin/ # custom filetype plugins
  |__indent/   # custom indentation overrides
  |__plugin/   # plugin installation direct…</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_plugins&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>Vim Plugins</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:vim_plugins&amp;rev=1589016310&amp;do=diff</link>
        <description>Vim Plugins

NERDTree

	*  &lt;https://vimawesome.com/plugin/nerdtree-red&gt;


:NERDTreeToogle       Open\closes nerdtree
help                  Open\closes help panel
C                     Open current folder as tree root
Ctrl+W+W              Changes between panels</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webcomponents&amp;rev=1620459146&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-08T07:32:26+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Web Components</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webcomponents&amp;rev=1620459146&amp;do=diff</link>
        <description>Web Components

Libraries:

	*  FicusJS

Basic

Concepts

Web components are those functions that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps. These are the concepts that involve their creation:

	*  Custom elements</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webdev&amp;rev=1590315284&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-24T10:14:44+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Web development tools</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webdev&amp;rev=1590315284&amp;do=diff</link>
        <description>Web development tools

Node

Install module &amp; save it as dependence


$ npm install &lt;module&gt; --save


Install module &amp; save it as a dev dependence


$ npm install &lt;module&gt; --save-dev


Gulp

Basic script (gulpfile.js)


var gulp = require('gulp');

gulp.task('default', function() {
  // place code for your default task here
});</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webmanagement&amp;rev=1603789156&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-27T08:59:16+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Web Management</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:webmanagement&amp;rev=1603789156&amp;do=diff</link>
        <description>Web Management

MySQL

Backups


backup: # mysqldump -u root -p[root_password] [database_name] &gt; dumpfilename.sql

restore:# mysql -u root -p[root_password] [database_name] &lt; dumpfilename.sql


Examples


mysqldump -u root -p[root_password] [database_name] &gt; dumpfilename.sql
mysql -u root -ptmppassword sugarcrm &lt; /tmp/sugarcrm.sql</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wiki1&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>Old Wiki</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wiki1&amp;rev=1589016310&amp;do=diff</link>
        <description>Old Wiki

El código es tu amigo. 


Programming

Lenguajes compilados

C\C++

	*  C\C++
	*  C\C++ Orientado a objetos
	*  Xtra
	*  Avanzando en C++
	*  C++ en Linux

C#

	*  C#
	*  Creación de aplicaciones en C#
	*  C# Xtra
	*  C# Xtra II
	*  C# code snippets
	*  Nuevas versiones de C#
	*  Documentos de C#
	*  Mono

Java

	*  Java
	*  GUIs
	*  Programación gráfica 2d
	*  Xtra

Otros

	*  Processing
	*  Processing 2

Lenguajes interpretados

Python

New

	*  Python, uso básico del lenguaje.</description>
    </item>
    <item rdf:about="https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wordpress&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>Wordpress</title>
        <link>https://wikiprogramming.alfredgg.dev/doku.php?id=wiki2:wordpress&amp;rev=1589016310&amp;do=diff</link>
        <description>Wordpress

Basic

To install

	*  You only have to download the source code and extract it into the chosen folder, the web server must have permissions to write on it. 
	*  You have to create a data base on the MySql server for Wordpress. When you access to it on the first time, the webpage will show you the installer; you will have to introduce the data.</description>
    </item>
</rdf:RDF>
