<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://miguelangel.torresegea.es/wiki/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://miguelangel.torresegea.es/wiki/feed.php">
        <title>miguel angel torres egea</title>
        <description></description>
        <link>https://miguelangel.torresegea.es/wiki/</link>
        <image rdf:resource="https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png" />
       <dc:date>2026-06-25T00:56:58+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:p10k?rev=1780419138&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m3?rev=1655230041&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.7?rev=1705663347&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:generadores?rev=1657203147&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:3.1?rev=1702505981&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:4.1?rev=1702980148&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.5?rev=1705601125&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:2.1?rev=1709548650&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.9?rev=1699216453&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:5.1?rev=1699261386&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/wiki:syntax?rev=1528018666&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion4?rev=1740066882&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:2.1?rev=1699219278&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:archivos?rev=1657392170&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.2?rev=1699216358&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.2?rev=1709626190&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:1.1?rev=1709556888&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.1?rev=1699216341&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.1?rev=1703244026&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.1?rev=1704741328&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:python:codigofacilito?rev=1654853301&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.1?rev=1699216475&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:python-mega-course?rev=1729249956&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:diccionarios?rev=1662631393&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent?rev=1580595836&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.6?rev=1705660623&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab18?rev=1740138780&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.2?rev=1699216324&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.6?rev=1699216418&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:iterables?rev=1759134237&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion7?rev=1559662594&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:3.1?rev=1699216465&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:python:openpyxl?rev=1654853319&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.4?rev=1699216387&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:1.1?rev=1699217111&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:3.1?rev=1709549519&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.5?rev=1699216406&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:braceexpansion?rev=1590273451&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m2:cadenas?rev=1656616085&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.2?rev=1699216496&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.9?rev=1703789305&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap5?rev=1590271587&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:paquetes?rev=1655983096&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab19?rev=1740138058&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.3?rev=1703357345&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.6?rev=1703762970&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.7?rev=1699216429&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.2?rev=1703245770&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:5.1?rev=1709555915&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:modulos:utilidades?rev=1537865996&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:seguridad:sadservers?rev=1716904318&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap3?rev=1589544364&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.1?rev=1699216302&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.8?rev=1699216442&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.5?rev=1703795730&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.4?rev=1705059240&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:4.1?rev=1709555079&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:start?rev=1771488008&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:thinkpython?rev=1654853278&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:comandos?rev=1757052655&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:estructurasdecontrol?rev=1685525137&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:cmd:start?rev=1744706346&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:backup?rev=1534331203&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debiean:seebox:rtorrent_rutorrent:old1?rev=1608802462&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:funciones?rev=1655832134&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:modulos?rev=1655976060&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:excepcionesoop?rev=1657050801&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:herencia?rev=1657049370&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:viajeprocedimentaloop?rev=1657048741&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion1:sincara?rev=1740555602&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:biblioteca:calendar?rev=1657227190&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:backup1?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:terraform:variables?rev=1749563456&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:autoenv?rev=1732706445&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:seedbox.torresegea.es?rev=1781024102&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:tuplas?rev=1655832393&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab20?rev=1740141555&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.3?rev=1699216373&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.3?rev=1703793078&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.4?rev=1703794616&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:strings?rev=1728546797&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:dns:127?rev=1751957332&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:backup2?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:mysqldump?rev=1326822530&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:netplan?rev=1639738671&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/macintosh:boot:start?rev=1478435748&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:backup:borg?rev=1655284776&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:utils:everything?rev=1750069295&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:openwebinars:vagrant:cli?rev=1530718064&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s10?rev=1647286620&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s13?rev=1648069358&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:docker:dockerfile:examples:runscript?rev=1637048457&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-privacidad?rev=1740650432&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2:sincara?rev=1740558607&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:sincara?rev=1740564007&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.3?rev=1699216505&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.4?rev=1703358335&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.5?rev=1703359986&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.3?rev=1705056974&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/wiki:dokuwiki?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/wiki:plugins?rev=1528577721&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/wiki:primeros_pasos?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:json:start?rev=1585124609&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:aberraciones?rev=1728466008&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:parallel?rev=1781182496&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:mint:start?rev=1686748898&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:nagios:start?rev=1539079953&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:arrayloop?rev=1589545895&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:forfolders?rev=1613915129&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:utils?rev=1605886849&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:nfs?rev=1628965242&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:docker:start?rev=1750151077&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:singularity:start?rev=1697184224&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:vagrant:start?rev=1644860937&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:security:wordpress?rev=1760533181&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:activacion:start?rev=1752739212&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/bbdd:mysql:users:start?rev=1635245521&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:devops-kubernetes:cap3-2?rev=1586961043&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:swarm:chap3?rev=1638914051&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:multidominio?rev=1781024215&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:itformacion:awsassociate:opsworks?rev=1540400942&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s3?rev=1646847691&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s7?rev=1646840350&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s12?rev=1647895637&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:excepciones?rev=1655834352&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:metodos?rev=1657048521&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-systemd?rev=1740743512&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:lab9?rev=1740124796&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.2?rev=1703791448&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:2.1?rev=1705687171&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/start?rev=1767080490&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/ciberseguridad:start?rev=1780736796&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/criptografia:diccionarios:mentalist?rev=1527922209&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/criptografia:john:start?rev=1528018759&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/criptografia:wireguard:start?rev=1737045377&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:angular:directivas?rev=1581288362&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:angular:formularios?rev=1581356727&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:java:enum?rev=1528192915&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:jquery:start?rev=1779357605&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:markdown:start?rev=1731848297&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:python:pycurl?rev=1725268712&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:git?rev=1777976515&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:seguridadinformatica?rev=1352996478&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:git?rev=1543312881&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:libros:swarm?rev=1639043923&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:certificados:cayotros?rev=1638598737&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:comm:start?rev=1639738082&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:install-6?rev=1580596040&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:permisos?rev=1727956812&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:log:logrotate?rev=1673629520&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:pihole?rev=1751908394&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:10minutos?rev=1476137592&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:twitter?rev=1321985887&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:proxy?rev=1700651687&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:dns?rev=1767009585&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:nikto2?rev=1329212031&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:lsusb?rev=1668164344&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh?rev=1780418250&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/macintosh:filesystem:ntfs?rev=1678440172&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:utils:aria2?rev=1632683949&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:utils:rhash?rev=1584951650&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:utils:tightvnc?rev=1631284439&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:utils:trans?rev=1588371044&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/software:vsc:start?rev=1587711130&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tcpip:ip:ipv6colt?rev=1324481433&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:docker:volumes?rev=1585355244&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:git:start?rev=1776329482&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:terraform:cli?rev=1749562274&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:terraform:start?rev=1749563482&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:apache:cli?rev=1675931719&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:apache:htpasswd?rev=1730366682&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:account:migraralocal?rev=1722081750&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:prog:vbasic?rev=1509272124&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/windows:w10:wsl?rev=1601650951&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:java:frameworks:swing?rev=1526807723&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/hardware:moviles:info:datos?rev=1498474372&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:edx:uc3m_ciberseguridad?rev=1607382461&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1?rev=1709549553&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent_rutorrent?rev=1608803427&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/tech:docker:dockerd:remote-tls?rev=1586591719&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:wildcard?rev=1781024432&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/development:php:codeigniter:v4:model?rev=1780907507&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:contenedores?rev=1582790161&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:dockerfile?rev=1546512279&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:instalacion?rev=1530799677&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:busca-nfs?rev=1534331242&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:copia-remotos?rev=1534331267&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:mate:seguretat-informatica:ciberseguretat?rev=1741766358&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap1?rev=1544014404&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap2?rev=1544811667&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap3?rev=1544897816&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m040:cap0?rev=1547492891&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion4?rev=1637929348&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion6?rev=1551531889&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion8?rev=1586354266&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion11?rev=1553283933&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s6?rev=1646840614&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s11?rev=1647883387&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras?rev=1740146057&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2?rev=1740124310&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s7?rev=1663570072&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s13?rev=1615927023&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:playbooks?rev=1537343658&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:pip?rev=1656606177&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara?rev=1740564797&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:sincara?rev=1740559016&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.7?rev=1703765167&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.8?rev=1703788552&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.1?rev=1703790579&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png">
        <title>miguel angel torres egea</title>
        <link>https://miguelangel.torresegea.es/wiki/</link>
        <url>https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png</url>
    </image>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:p10k?rev=1780419138&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-02T16:52:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>powerlevel10k ZSH Theme</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:p10k?rev=1780419138&amp;do=diff</link>
        <description>powerlevel10k ZSH Theme

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

ZSH_THEME=&quot;powerlevel10k/powerlevel10k&quot;


# Generated by Powerlevel10k configuration wizard on 2026-06-02 at 11:08 CEST.
# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633.
# Wizard options: powerline, rainbow, unicode, angled separators, sharp heads,
# flat tails, 1 line, compact, concise, instant_prompt=verbose.
# Type `p10…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m3?rev=1655230041&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-14T18:07:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 3 - Valores booleanos, ejecución condicional, bucles, listas y su procesamiento, operaciones lógicas y de bit a bit</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m3?rev=1655230041&amp;do=diff</link>
        <description>Módulo 3 - Valores booleanos, ejecución condicional, bucles, listas y su procesamiento, operaciones lógicas y de bit a bit

Tomando decisiones

	*  = asignación
	*  == comparación, es igual
	*  != no es igual
	*  &gt;,&lt;,&gt;=,&lt;=

if

if &lt;exp&gt;:
    linea1
    linea2
  elif &lt;exp&gt;:
    linea5
    linea6
  else:
    linea3
    linea4</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.7?rev=1705663347&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-19T11:22:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.7 Four magic letters: CRUD</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.7?rev=1705663347&amp;do=diff</link>
        <description>1.7 Four magic letters: CRUD

Entering a non-existing/malformed address

We’ve reached the point in which we are ready to gather all new facts and tools and glue all these pieces into one functional block. You already know how HTTP works, how it’ is mounted on top of the TCP stack and how the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:generadores?rev=1657203147&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-07T14:12:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 4 (Intermedio): Generadores</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:generadores?rev=1657203147&amp;do=diff</link>
        <description>Módulo 4 (Intermedio): Generadores

Generadores, donde encontrarlos

Generador - ¿Con qué asocias esta palabra? Quizás se refiere a algún dispositivo electrónico. O tal vez se refiere a una máquina pesada diseñada para producir energía eléctrica u otra cosa.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:3.1?rev=1702505981&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-13T22:19:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>3.1 PEP 8 – Introduction</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:3.1?rev=1702505981&amp;do=diff</link>
        <description>3.1 PEP 8 – Introduction

As mentioned earlier, PEP 8 is a document that provides coding conventions (code style guide) for Python code.

PEP 8 is considered one of the most important PEPs and a must-read for every professional Python programmer, as it helps to make the code more consistent, more readable, and more efficient.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:4.1?rev=1702980148&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-19T10:02:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4.1 PEP 257 – Docstring Conventions</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:4.1?rev=1702980148&amp;do=diff</link>
        <description>4.1 PEP 257 – Docstring Conventions

What is PEP 257?

PEP 257 is a document created as part of the Python Developer&#039;s Guide, which makes an attempt to standardize the high-level structure of docstrings. It outlines the conventions, best practices, and semantics (not laws or regulations!) associated with documenting Python code using docstrings. In short, it tries to answer the following two questions:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.5?rev=1705601125&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-18T18:05:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.5 What is XML and why do we prefer to use JSON?</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.5?rev=1705601125&amp;do=diff</link>
        <description>1.5 What is XML and why do we prefer to use JSON?

XML is a language. Anyway, this is what it thinks about itself. Note – it isn&#039;t a programming language, and although it is possible to build a real programming language on top of XML, it wasn&#039;t (and still isn&#039;t) its native niche.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:2.1?rev=1709548650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T10:37:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.1 File processing - XML files</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:2.1?rev=1709548650&amp;do=diff</link>
        <description>2.1 File processing - XML files

XML processing in Python

Python is commonly used to process various types of data. Perhaps, while working as a programmer, you&#039;ll have to read or create a data file in the XML format. Soon, doing that will be a piece of cake.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.9?rev=1699216453&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:34:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.9 Inheriting properties from built-in classes</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.9?rev=1699216453&amp;do=diff</link>
        <description>2.9 Inheriting properties from built-in classes

Python gives you the ability to create a class that inherits properties from any Python built-in class in order to get a new class that can enrich the parent&#039;s attributes or methods. As a result, your newly-created class has the advantage of all of the well-known functionalities inherited from its parent or even parents and you can still access those attributes and methods.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:5.1?rev=1699261386&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-06T09:03:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>5.1 Metaprogramming</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:5.1?rev=1699261386&amp;do=diff</link>
        <description>5.1 Metaprogramming

Introduction to metaclasses

Metaprogramming is a programming technique in which computer programs have the ability to modify their own or other programs’ codes. It may sound like an idea from a science fiction story, but the idea was born and implemented in the early 1960s.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/wiki:syntax?rev=1528018666&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-03T09:37:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Formatting Syntax</title>
        <link>https://miguelangel.torresegea.es/wiki/wiki:syntax?rev=1528018666&amp;do=diff</link>
        <description>Formatting Syntax

DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion4?rev=1740066882&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-20T15:54:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ethical Hacker : sesión 4</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion4?rev=1740066882&amp;do=diff</link>
        <description>Ethical Hacker : sesión 4

	*  Ethical Hacker : sesión 4

clase

	*  Modulo 14
	*  Modulo 15
	*  Modulo 16
	*  Modulo 17

Modulo 14: Hacking Web Applications

	*  Amenazas
	*  OWASP - &lt;https://owasp.org&gt;
		*  asociación sin ánimo de lucro
		*  proyectos relacionados con seguridad
		*  Coraza - ModSecurity - set reglas programables</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:2.1?rev=1699219278&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T21:21:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.1 PEP 20 – The Zen of Python</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:2.1?rev=1699219278&amp;do=diff</link>
        <description>2.1 PEP 20 – The Zen of Python

The Zen of Python is a collection of 19 aphorisms, which reflect the philosophy behind Python, its guiding principles, and design.

Tim Peters, a long time major contributor to the Python programming language and Python community, wrote this 19-line poem on the Python mailing list in 1999, and it became entry #20 in the Python Enhancement Proposals in 2004.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:archivos?rev=1657392170&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-09T18:42:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 4 (Intermedio): Archivos</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:archivos?rev=1657392170&amp;do=diff</link>
        <description>Módulo 4 (Intermedio): Archivos

Accediendo archivos desde código en Python

Uno de los problemas más comunes en el trabajo del desarrollador es procesar datos almacenados en archivos que generalmente se almacenan físicamente utilizando dispositivos de almacenamiento: discos duros, ópticos, de red o de estado sólido.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.2?rev=1699216358&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:32:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.2 Inheritance and polymorphism — Inheritance as a pillar of OOP</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.2?rev=1699216358&amp;do=diff</link>
        <description>2.2 Inheritance and polymorphism — Inheritance as a pillar of OOP

Inheritance is one of the fundamental concepts of object oriented programming, and expresses the fundamental relationships between classes: superclasses (parents) and their subclasses (descendants). Inheritance creates a class hierarchy. Any object bound to a specific level of class hierarchy inherits all the traits (methods and attributes) defined inside any of the superclasses.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.2?rev=1709626190&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-05T08:09:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.2 How to use sockets in Python</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.2?rev=1709626190&amp;do=diff</link>
        <description>1.2 How to use sockets in Python

How to fetch a document from a server using Python

We are going to write our first program making use of network sockets. Of course, we&#039;ll harness Python for this purpose.

Here are our goals:

	*  we want to write</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:1.1?rev=1709556888&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T12:54:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.1 SQLite</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:1.1?rev=1709556888&amp;do=diff</link>
        <description>1.1 SQLite

What is a database?

Nowadays, social applications such as Facebook, Twitter, and Instagram are very popular. Every day many people create new accounts, and existing users add or share different content. You’ve surely noticed that the data sent to those applications are still available after a few days, or even years. Do you know how that’s possible?</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.1?rev=1699216341&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:32:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.1 Python core syntax</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.1?rev=1699216341&amp;do=diff</link>
        <description>2.1 Python core syntax

So far we have been using Python core operations that allow us to operate on strings, lists, integers, and floats. It’s natural for us to formulate expressions using algebraic symbols representing operators, or to get a number of elements in a sequence or dictionary.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.1?rev=1703244026&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-22T11:20:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python Professional Course Series: GUI Programming</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.1?rev=1703244026&amp;do=diff</link>
        <description>Python Professional Course Series: GUI Programming

What is GUI?

GUI is an acronym. Moreover, it’s a three-letter acronym, a representative of a well-known class of acronyms which plays a very important role in the IT industry. Okay, that’s enough jokes about TLA’s for one course, all the more that</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.1?rev=1704741328&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-08T19:15:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.1 Python Professional Course Series: RESTful APIs</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.1?rev=1704741328&amp;do=diff</link>
        <description>1.1 Python Professional Course Series: RESTful APIs

Some words about REST

The word you see below may look a little enigmatic: REST

Are we going to convince you to take a rest? Not at all. On the contrary, we want to encourage you to start the next part of our adventure - very demanding and completely new. We&#039;ll show you not Python itself, but a very specific kind of machinery (do not take this literally) which drives lots of contemporary computer systems, especially those which work on the In…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:python:codigofacilito?rev=1654853301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-10T09:28:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>curso python (código facilito)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:python:codigofacilito?rev=1654853301&amp;do=diff</link>
        <description>curso python (código facilito)

python

&lt;https://codigofacilito.com/videos/tutorial_python_28_-_clases_decoradoras&gt;

que es python

	*  reminiscencias perl, pero más natual (pseudocódigo)
	*  interpretado
	*  tipado dinámico
	*  fuertemente tipado (no convinadar diferentes tipos de variables)
	*  multiplataforma
	*  OOP

hello world</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.1?rev=1699216475&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:34:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4.1 Shallow and deep copy operations</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.1?rev=1699216475&amp;do=diff</link>
        <description>4.1 Shallow and deep copy operations

Copying objects using shallow and deep operations

In this module, you’ll learn how to copy Python objects. Specifically, you&#039;ll learn about:

	*  object: label vs. identity vs. value;
	*  the id() function and the is operand;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:python-mega-course?rev=1729249956&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T11:12:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Curso python udemy</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:udemy:python-mega-course?rev=1729249956&amp;do=diff</link>
        <description>Curso python udemy

	*  &lt;https://www.udemy.com/course/former-python-mega-course-build-10-real-world-applications/learn/lecture/34362798#overview&gt;

interesante

	*  Numpy: manejo de matrices
	*  Web Mapping: creación mapas interactivos HTML
	*  Manejo Webcam
	*  Bokeh: libreria representación gráficos -&gt; Python Bokeh
	*  Pandas: libreria de analisis de datos -&gt; Python Pandas
	*  Flask: web development</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:diccionarios?rev=1662631393&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-08T10:03:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 4: Diccionarios</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:diccionarios?rev=1662631393&amp;do=diff</link>
        <description>Modulo 4: Diccionarios

¿Qué es un diccionario?

El diccionario es otro tipo de estructura de datos de Python. No es una secuencia (pero puede adaptarse fácilmente a un procesamiento secuencial) y además es mutable.

Para explicar lo que es un diccionario en Python, es importante comprender de manera literal lo que es un diccionario.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent?rev=1580595836&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-01T22:23:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>configuración rtorrent(on premise)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent?rev=1580595836&amp;do=diff</link>
        <description>configuración rtorrent(on premise)

	*  instalar subversion: apt-get install subversion
	*  instalar compilador: apt-get instsall make
	*  crear carpeta &#039;source&#039; en &#039;user&#039;
	*  descargar:
		*  svn co &lt;https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable&gt; xmlrpc
			*  svn co &lt;http://svn.code.sf.net/p/xmlrpc-c/code/advanced&gt; xmlrpc-c
			*  svn co &lt;http://svn.code.sf.net/p/xmlrpc-c/code/stable&gt; xmlrpc-c</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.6?rev=1705660623&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-19T10:37:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.6 Making life easier with the requests module</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.6?rev=1705660623&amp;do=diff</link>
        <description>1.6 Making life easier with the requests module

We have reached the point where we can start the final stage of our journey – we know enough to communicate with the web service using JSON as an information carrier. Unfortunately, our knowledge needs to be supplemented – we need a</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab18?rev=1740138780&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T11:53:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lab Module 18 IoT and OT Hacking</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab18?rev=1740138780&amp;do=diff</link>
        <description>Lab Module 18 IoT and OT Hacking

Lab 1: Perform Footprinting using Various Footprinting Techniques

Task 1: Gather Information using Online Footprinting Tools

	*  Launch any web browser, go to &lt;https://www.whois.com/whois&gt; (here, we are using Mozilla Firefox).
	*  The Whois Domain Lookup page appears; type</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.2?rev=1699216324&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:32:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.2 Working with class and instance data – instance variables</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.2?rev=1699216324&amp;do=diff</link>
        <description>1.2 Working with class and instance data – instance variables

Instance variables

This kind of variable exists when and only when it is explicitly created and added to an object. This can be done during the object&#039;s initialization, performed by the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.6?rev=1699216418&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:33:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.6 Abstract classes</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.6?rev=1699216418&amp;do=diff</link>
        <description>2.6 Abstract classes

Python is considered to be a very flexible programming language, but that doesn’t mean that there are no controls to impose a set of functionalities or an order in a class hierarchy. When you develop a system in a group of programmers, it would be useful to have some means of establishing requirements for classes in matters of interfaces (methods) exposed by each class.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:iterables?rev=1759134237&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-29T08:23:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python iterables</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:iterables?rev=1759134237&amp;do=diff</link>
        <description>Python iterables

python

	*  &lt;https://kinsta.com/es/blog/iterables-de-python/&gt;
	*  &lt;https://ellibrodepython.com/iterator-python&gt;

iterables

even_list = [2, 4, 6, 8, 10]
my_iterator = iter(even_list)
print(next(my_iterator)) # Prints 2
print(next(my_iterator)) # Prints 4
print(next(my_iterator)) # Prints 6


funciones sobre iterables

	*  sum — Devuelve la suma de un iterable dado, siempre que la colección sea de tipos numéricos (enteros, valores de coma flotante y números complejos)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion7?rev=1559662594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-04T15:36:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sesión 7: Seguridad, Prometheus</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion7?rev=1559662594&amp;do=diff</link>
        <description>Sesión 7: Seguridad, Prometheus

seguridad

	*  &lt;https://www.owasp.org/&gt;
	*  JSON
	*  REST = Representational state transfer
		*  uso de verbos
			*  comunes: get, post, head
			*  otras: putm patch, delete, transfer...
			*  &lt;https://en.wikipedia.org/wiki/Representational_state_transfer&gt;
			*  waf, ids, ips : filtrado por reglas


	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:3.1?rev=1699216465&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:34:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>3.1 Advanced techniques of creating and serving exceptions</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:3.1?rev=1699216465&amp;do=diff</link>
        <description>3.1 Advanced techniques of creating and serving exceptions

In this module, we&#039;ll talk about Python exceptions – objects that represent errors which occur during the execution of a program that disrupts the normal flow of the program&#039;s instructions.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-31T08:58:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Los ficheros de inicio de Bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff</link>
        <description>Los ficheros de inicio de Bash

tipos de shell

	*  Interactivo: permite interactuar, ejecutando comandos introducidos desde el teclado.
	*  No Interactivo: ejecuta los comandos desde un script
	*  De Inicio: los shells que se ejecutan justo después de haberse identificado. Son los que solicitan usuario y contraseña (versus los interactivos que no la solicitan, que no serían de inicio)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-10T08:32:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mis ficheros $HOME</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff</link>
        <description>mis ficheros $HOME

.bash_profile


# ~/.bash_profile: executed by bash(1) for login shells.

# quita el permiso de excritura al others
umask 002

#prompt por defecto
PS1=&#039;[\h]$ &#039;

# prompt de color en 2 lineas
if [ -f &quot;.prompt&quot; ]; then
  export PS1=`cat .prompt`
fi

if [ -f &quot;.bashrc&quot; ]; then
  source ~/.bashrc
fi

# variables de entorno
export EDITOR=&quot;vim&quot;
export LANG=en_US.ISO-8859-15

# echo &quot;&gt; .bash_profile&quot;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:python:openpyxl?rev=1654853319&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-10T09:28:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Curso python + openpyxl (excel)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:python:openpyxl?rev=1654853319&amp;do=diff</link>
        <description>Curso python + openpyxl (excel)

python

	*  udemy
	*  &lt;https://www.udemy.com/course/python-learn-how-to-read-write-and-manipulate-excel-files/learn/lecture/8080232#overview&gt;

2.Python - Working with Sheet


import openpyxl
import os

os.getcwd()
os.chdir(path)

wb=openpyxl.load_workbook(&#039;...xlsx&#039;)
type(wb)
wb.get_sheet_names()



sheet=wb.get_sheet_by_name(&#039;pestanya&#039;)
type(sheet)
sheet.title
sheet.max_row
sheet.max_column
sheet.title=&#039;nou nom&#039;
wb.save(&#039;file.xlsx&#039;)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.4?rev=1699216387&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:33:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.4 Decorators</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.4?rev=1699216387&amp;do=diff</link>
        <description>2.4 Decorators

A decorator is one of the design patterns that describes the structure of related objects. Python is able to decorate functions, methods, and classes.

The decorator&#039;s operation is based on wrapping the original function with a new «</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:1.1?rev=1699217111&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:45:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.1 What is PEP?</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m2:1.1?rev=1699217111&amp;do=diff</link>
        <description>1.1 What is PEP?

PEP may refer to several things:

	*  football (soccer) fans will definitely associate it with the famous ex-footballer and football manager, Josep Guardiola, whose nickname is (guess what) Pep;
	*  those who have medical jobs will surely think of post-exposure prophylaxis, which in turn has to do with taking preventive medical measures after contact with pathogens;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:3.1?rev=1709549519&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T10:51:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>3.1 The CSV module in Python</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:3.1?rev=1709549519&amp;do=diff</link>
        <description>3.1 The CSV module in Python

The CSV module in Python

The CSV (Comma Separated Values) format is one of the most popular file formats used to store and transfer data between different programs. Currently, many database management tools and the popular Excel offer data import and export in this format.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.5?rev=1699216406&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:33:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.5 Different faces of Python methods</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.5?rev=1699216406&amp;do=diff</link>
        <description>2.5 Different faces of Python methods

Until now, we’ve been implementing methods that have performed operations on the instances (objects), and in particular the attributes of the instance, so we’ve called them instance methods.

The instance methods, as the first parameter, take the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:braceexpansion?rev=1590273451&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-23T22:37:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>brace expansion</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:braceexpansion?rev=1590273451&amp;do=diff</link>
        <description>brace expansion
&lt;http://wiki.bash-hackers.org/syntax/expansion/brace&gt;

{string1,string2,...,stringN}
{&lt;START&gt;..&lt;END&gt;}

{&lt;START&gt;..&lt;END&gt;..&lt;INCR&gt;} (Bash 4)

&lt;PREAMBLE&gt;{........}

{........}&lt;POSTSCRIPT&gt;

&lt;PREAMBLE&gt;{........}&lt;POSTSCRIPT&gt;


Brace expansion is used to generate arbitrary strings. The specified strings are used to generate</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m2:cadenas?rev=1656616085&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-30T19:08:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 2 (intermedio): Cadenas</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m2:cadenas?rev=1656616085&amp;do=diff</link>
        <description>Modulo 2 (intermedio): Cadenas

Cómo las computadoras entienden los caracteres individuales

Has escrito algunos programas interesantes desde que comenzó este curso, pero todos ellos han procesado solo un tipo de datos: los numéricos. Como sabes (puedes ver esto en todas partes), muchos datos de la computadora no son números: nombres, apellidos, direcciones, títulos, poemas, documentos científicos, correos electrónicos, sentencias judiciales, confesiones de amor y mucho, mucho más.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.2?rev=1699216496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4.2 Serialization of Python objects using the pickle module</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.2?rev=1699216496&amp;do=diff</link>
        <description>4.2 Serialization of Python objects using the pickle module

In this section, you will learn how to persist Python objects for later use.

Pickling is the process of preserving or extending the lifespan of food. The resulting food is called a pickle, and to prevent ambiguity, prefaced with the &#039;pickled&#039; adjective.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.9?rev=1703789305&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T18:48:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.9 Looking at variables</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.9?rev=1703789305&amp;do=diff</link>
        <description>1.9 Looking at variables

Variables

To implement some of its functions, Tkinter uses a very special kind of variable called an observable variable. This variable works like a regular variable (i.e., it’s able to store values which are accessible to the outside world) but there is something more – any change of the variable’s state can be</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-09T11:48:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>arrays bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff</link>
        <description>arrays bash



linux bash pendiente wiki

/via: &lt;http://www.thegeekstuff.com/2010/06/bash-array-tutorial/&gt;
&lt;http://wiki.bash&gt;-hackers.org/syntax/arrays?rev=1534920675&lt;https://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/&gt;
declaración e inicialización


declare -a array=(valor0 &#039;valor uno&#039; &#039;valor dos&#039;)



declare -A array=( [indice1]=valor0 [indice2]=&#039;valor uno&#039; [indice3]=&#039;valor dos&#039;)
# es necesario una versión 4+ de BASH para disponer de Arrays asociativos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap5?rev=1590271587&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-23T22:06:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 5: Terraform tips and tricks</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap5?rev=1590271587&amp;do=diff</link>
        <description>Chapter 5: Terraform tips and tricks

loops

count

	*  usage:
resource &quot;blablabla&quot; &quot;blablabla_name&quot; {
count = 3
name  = &quot;bla${count.index}&quot;
}

		*  result: 3 elements ([0],[1],[2]) -&gt; resources array
		*  with length():

variable &quot;bla_names&quot; {
  type    = list(string)
  default = [&quot;bla_green&quot;,&quot;bla_yellow&quot;,&quot;bla_red&quot;] 
}
resource &quot;blablabla&quot; &quot;blablabla_name&quot; {
  count = length(var.bla_names)
  name  = bla_names[count.index]
}</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:paquetes?rev=1655983096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-23T11:18:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 1 (intermedio): Paquetes</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:paquetes?rev=1655983096&amp;do=diff</link>
        <description>Modulo 1 (intermedio): Paquetes

Escribir tus propios módulos no difiere mucho de escribir scripts comunes.

Existen algunos aspectos específicos que se deben tomar en cuenta, pero definitivamente no es algo complicado. Lo verás pronto.



Resumamos algunos aspectos importantes:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab19?rev=1740138058&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T11:40:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lab Module 19 Cloud Computing</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab19?rev=1740138058&amp;do=diff</link>
        <description>Lab Module 19 Cloud Computing

Lab 1: Perform Reconnaissance on Azure

As an ethical hacker, you need to know how to utilize PowerShell command-based scripting tools for conducting reconnaissance and gathering information. This information can then be used to assess the security posture of other systems within the network.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.3?rev=1703357345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-23T18:49:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.3 Settling widgets in the window&#039;s interior</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.3?rev=1703357345&amp;do=diff</link>
        <description>1.3 Settling widgets in the window&#039;s interior

Settling widgets

A familiarity with the Button widget allows us to show you some ways of putting the widgets (not only the buttons) inside windows. There are more of them than just place(), which you learned about in the previous section. To be precise, there are</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.6?rev=1703762970&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T11:29:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.6 Events and how to handle them</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.6?rev=1703762970&amp;do=diff</link>
        <description>1.6 Events and how to handle them

Event handling

As you already know, events are the fuel which propel the application’s movements. All events come to the event manager, which is responsible for dispatching them to all the application components. This also means that some of the events may launch some of your callbacks, which makes you responsible for preparing the proper reactions to the user’s actions.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-01T22:24:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>instalación / configuración rutorrent (on premise)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff</link>
        <description>instalación / configuración rutorrent (on premise)

	*  descargar en directorio temporal:
		*  svn checkout &lt;http://rutorrent.googlecode.com/svn/trunk/rutorrent&gt;
		*  svn checkout &lt;http://rutorrent.googlecode.com/svn/trunk/plugins&gt;
		*  sustituimos la carpeta plugins dentro del rutorrent por la descargada
		*  copiamos/movemos la carpeta a la raiz del webserver, cambiando permisos y propietario</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.7?rev=1699216429&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:33:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.7 Encapsulation</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.7?rev=1699216429&amp;do=diff</link>
        <description>2.7 Encapsulation

Attribute encapsulation

Encapsulation is one of the fundamental concepts in object-oriented programming (amongst inheritance, polymorphism, and abstraction). It describes the idea of bundling attributes and methods that work on those attributes within a class.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.2?rev=1703245770&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-22T11:49:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.2 Let TkInter speak!</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.2?rev=1703245770&amp;do=diff</link>
        <description>1.2 Let TkInter speak!

Importing TkInter

As you already know, from Python&#039;s point of view TkInter is a package named tkinter. The package contains a bunch of functions, constants, classes, objects, and modules used to build GUI applications.

The GUI</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:5.1?rev=1709555915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T12:38:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>5.1 The configparser module</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:5.1?rev=1709555915&amp;do=diff</link>
        <description>5.1 The configparser module

Introduction to the configparser module

Currently, many popular services provide an API that we can use in our applications. Integration with these services requires authentication using data such as a login and password, or simply an access token.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:modulos:utilidades?rev=1537865996&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-25T08:59:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>utilidades</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:modulos:utilidades?rev=1537865996&amp;do=diff</link>
        <description>utilidades

3:32 Comando Utilidades (I)

ejecución de comandos en el nodo remoto

	*  command
	*  expect : ejecuta un comando y responde a la introducción de dataos
	*  raw : envía comandos sin filtrar por SSH
	*  script : transfiere y ejecuta un script</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:seguridad:sadservers?rev=1716904318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-28T13:51:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux sadservers</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:seguridad:sadservers?rev=1716904318&amp;do=diff</link>
        <description>Linux sadservers

&quot;Saint John&quot;: what is writing to this log file?

	*  ps auxf
	*  lsof /path/to/file
	*  fuser /path/to/file
	*  pwdx PID: pwd del fichero PID


1. You can use ps to list all processes and see if you see something related, for example with: ps auxf. Ignore system processes [in brackets].

A better way is to use the command to list open files: lsof.

2. Find the name (first column) and Process ID (PID, second column) of the process related to /var/log/bad.log by running lsof and …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap3?rev=1589544364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-15T12:06:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 3: How to Manage Terraform State</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:terraform-upandrunning:cap3?rev=1589544364&amp;do=diff</link>
        <description>Chapter 3: How to Manage Terraform State

what is?

	*  terraform.tfsate JSON file
	*  output terraform plan is a «diff» with terraform.tfstate
	*  state file is a private API, for internal use of terraform and can change in any moment
		*  to modify,</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.1?rev=1699216302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:31:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.1 Classes, Instances, Attributes, Methods — introduction</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:1.1?rev=1699216302&amp;do=diff</link>
        <description>1.1 Classes, Instances, Attributes, Methods — introduction

Introduction to Object-Oriented Programming

This module addresses the advanced Object Oriented Programming (OOP) issues that are at the heart of Python programming.

The object-oriented approach is an evolution of good design practices that go back to the very beginning of computer programming.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.8?rev=1699216442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:34:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.8 Composition vs Inheritance - two ways to the same destination</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.8?rev=1699216442&amp;do=diff</link>
        <description>2.8 Composition vs Inheritance - two ways to the same destination

So far we&#039;ve been using and following the inheritance concept when modeling our classes to represent real-life issues. Inheritance is a great concept, one of the most important foundations of object-oriented programming that models a tight relation between two classes: the base class and the derived class, called a subclass.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.5?rev=1703795730&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T20:35:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.5 Working with the Canvas</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.5?rev=1703795730&amp;do=diff</link>
        <description>2.5 Working with the Canvas

Canvas

Our last meeting is devoted to the Canvas – a widget that behaves like a... canvas. It’s a flat, rectangular surface that you can cover with drawings, text, frames, and other widgets. Please treat this story as a basic introduction to the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.4?rev=1705059240&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-12T11:34:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.4 Talking to JSON in Python</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.4?rev=1705059240&amp;do=diff</link>
        <description>1.4 Talking to JSON in Python

Working with the JSON module in Python

Now that we&#039;re familiar with JSON essentials, it&#039;s time to learn how to use it with Python. We&#039;re a little worried you may think that we want you to laboriously build JSON messages, fretting over all these brackets, parentheses and colons, and to break down complex JSON lines into prime factors. Nothing could be further from the truth! We’re not in the habit of coming up with such crazy ideas, although, to be honest, it&#039;s not…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:4.1?rev=1709555079&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T12:24:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4.1 Logging in Python</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m5:4.1?rev=1709555079&amp;do=diff</link>
        <description>4.1 Logging in Python

Logging in Python

The Python Standard Library provides a useful module called logging to log events occurring in the application. Logs are most often used to find the cause of an error. By default, Python and its modules provide many logs informing you of the causes of errors. However, it&#039;s good practice to create your own logs that may be useful to you or other programmers.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:start?rev=1771488008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-19T08:00:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PYTHON</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:start?rev=1771488008&amp;do=diff</link>
        <description>PYTHON

development python

doc

	*  Curso python (PCPP1) PUE 2023
	*  Curso python PUE 2022
	*  Curso python udemy

install

best practices

	*  entornos virtuales: Python: Entornos virtuales
	*  paquetes: Python pip
	*  instalar varias versiones python: &lt;https://medium.com/@julgq/instalando-m%C3%BAltiples-versiones-de-python-en-linux-ubuntu-20-04-2-lts-9f163c046cc5&gt;
	*  How to use Python’s py launcher for Windows: &lt;https://www.infoworld.com/article/3617292/how-to-use-pythons-py-launcher-for-wi…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:thinkpython?rev=1654853278&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-10T09:27:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>think python</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:thinkpython?rev=1654853278&amp;do=diff</link>
        <description>think python

python

cadenas

	*  inmutables
	*  &lt;string&gt;[char]
		*  -1 : last
		*  -2 : pre-last

	*  &lt;string&gt;[pos1:pos2]
	*  &lt;string&gt;[:pos2], &lt;string&gt;[pos2:],&lt;string&gt;[-pos2:]
	*  &lt;string&gt;.capitalize()
	*  &lt;string&gt;.isupper()
	*  list(cadena) : separa en caracteres</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:comandos?rev=1757052655&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-05T06:10:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>comandos bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:comandos?rev=1757052655&amp;do=diff</link>
        <description>comandos bash

linux bash

comandos al detalle

	*  uptime
	*  tail [-n &lt;nn&gt;]
	*  head [-n &lt;nn&gt;]
	*  sort
	*  watch
	*  wc : wordcount
		*  -c : caracteres
		*  -l : líneas
		*  -w : palabras

	*  tr : translate characters (sustitución cadenas sobre la entrada estandard. Uso com filtro en scripts)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:estructurasdecontrol?rev=1685525137&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-31T09:25:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Estructuras de control y bucles</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:estructurasdecontrol?rev=1685525137&amp;do=diff</link>
        <description>Estructuras de control y bucles



comparaciones de cadenas alfanuméricas (Test Operators, Binary Comparison)

	*  cadena1 = cadena2 (también cadena1 == cadena2)
	*  cadena1 != cadena2
	*  cadena1 &lt; cadena2
	*  cadena1 &gt; cadena2
	*  -n cadena1 -&gt; longitud mayor que 0</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-04T12:59:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PS1</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff</link>
        <description>PS1

simples




export PS1=&quot;\[\e]0;\u@\h \w\a\]\[\e[00;33m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[00;33m\]\h\[\e[0m\]\[\e[00;37m\]:\[\e[0m\]\[\e[00;34m\]\w\[\e[0m\]\[\e[00;37m\]\n\$ \[\e[0m\]&quot;





export PS1=&quot;\[$(tput sgr0)\]\033[38;5;15m\033[38;5;11m\u\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m@\[$(tput sgr0)\]\033[38;5;15m\033[38;5;11m\h\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m:\[$(tput sgr0)\]\033[38;5;15m\033[38;5;2m\w\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m\n\[$(tput sgr0)\]\\$\[$(tput…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-04T11:09:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux udisks</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff</link>
        <description>linux udisks

	*  lsblk: dispositivos conectados
		*  -a: más información (incluido major:minor)
		*  -d: no muestra información de los «esclavos» o holder devices (particiones)
		*  -i: usa caracteres ASCII para las representaciones de árbol (mejor copy&amp;paste)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:cmd:start?rev=1744706346&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-15T08:39:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Windows: CMD</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:cmd:start?rev=1744706346&amp;do=diff</link>
        <description>Windows: CMD

windows

	*  Windows: comandos básicos desde cmd

shutdown

	*  restart: /r
	*  shutdown: /s
	*  force: /f
	*  temporizador: /t &lt;secs&gt; (incluye /f)
	*  cancelar: /a
	*  /via: &lt;https://www.howtogeek.com/512012/how-to-shut-down-your-windows-10-pc-using-command-prompt/&gt;

parámetros .bat

&lt;https://ss64.com/nt/syntax-args.html&gt;

	*  %1..%9 : parámetros por orden (solo se pueden referenciar 9 parámetros directamente)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:backup?rev=1534331203&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-15T11:06:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:backup?rev=1534331203&amp;do=diff</link>
        <description>#!/bin/bash -x

# mejoras a realizar:
#	- comprobar la existencia del directorio destino con 	[ -d ];
#	- utilizar /etc/mysql/debian.cnf para el usuario/password de mysql

# ubicaciones
path_backup_principal=/home/backups
path_backup=$path_backup_principal/d4
fecha=`date +%Y%m%d%H%M%S`
path_correo=/home/vmail/
path_mysql_trans=/var/log/mysql/
path_virtual_apache=/var/www/virtuals
niveles_virtuales=1


# backup /etc
tar zcpf $path_backup/etc.tar.gz /etc/*

# backup /home (no el vmail, no el backu…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debiean:seebox:rtorrent_rutorrent:old1?rev=1608802462&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-24T09:34:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rtorrent+rutorrent en contenedor (OLD1)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debiean:seebox:rtorrent_rutorrent:old1?rev=1608802462&amp;do=diff</link>
        <description>rtorrent+rutorrent en contenedor (OLD1)

pasos básicos

	*  montar estructura de carpetas
		*  downloads : ubicación descargas
		*  root : ubicación archivos configuración NGINX/RTORRENT/RUTORRENT modificados

	*  ejecutar docker según script


STORAGE_PATH=/home/user/storage/rtorrent+rutorrent

docker run \
	-dt \
	--name rtorrent-rutorrent \
	--restart unless-stopped \
	-p 80:80 \
	-p 443:443 \
	-p 49160:49160/udp \
	-p 49161:49161 \
	-v ${STORAGE_PATH}/downloads:/downloads \
	-v ${STORAGE_PAT…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:funciones?rev=1655832134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-21T17:22:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 4: Funciones</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:funciones?rev=1655832134&amp;do=diff</link>
        <description>Modulo 4: Funciones

¿Por qué necesitamos funciones?

Hasta ahorita has implementado varias veces el uso de funciones, pero solo se han visto algunas de sus ventajas. Solo se han invocado funciones para utilizarlas como herramientas, con el fin de hacer la vida más fácil, y para simplificar tareas tediosas y repetitivas.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:modulos?rev=1655976060&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-23T09:21:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 1 (intermedio): Módulos</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:modulos?rev=1655976060&amp;do=diff</link>
        <description>Modulo 1 (intermedio): Módulos

El código de computadora tiene una tendencia a crecer. Podemos decir que el código que no crece probablemente sea completamente inutilizable o esté abandonado. Un código real, deseado y ampliamente utilizado se desarrolla continuamente, ya que tanto las demandas de los usuarios como sus expectativas se desarrollan de manera diferente.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:excepcionesoop?rev=1657050801&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-05T19:53:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 3 (Intermedio): Programación Orientada a Objetos - Excepciones</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:excepcionesoop?rev=1657050801&amp;do=diff</link>
        <description>Módulo 3 (Intermedio): Programación Orientada a Objetos - Excepciones

Más acerca de excepciones

El discutir sobre la programación orientada a objetos ofrece una muy buena oportunidad para volver a las excepciones. La naturaleza orientada a objetos de las excepciones de Python las convierte en una herramienta muy flexible, capaz de adaptarse a necesidades específicas, incluso aquellas que aún no conoces.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:herencia?rev=1657049370&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-05T19:29:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 3: Programación Orientada a Objetos - Herencia</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:herencia?rev=1657049370&amp;do=diff</link>
        <description>Módulo 3: Programación Orientada a Objetos - Herencia

Herencia: ¿por qué y cómo?

Antes de comenzar a hablar sobre la herencia, queremos presentar un nuevo y práctico mecanismo utilizado por las clases y los objetos de Python: es la forma en que el objeto puede presentarse a si mismo</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:viajeprocedimentaloop?rev=1657048741&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-05T19:19:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 3 (Intermedio): Programación Orientada a Objetos - Un viaje por la OOP</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:viajeprocedimentaloop?rev=1657048741&amp;do=diff</link>
        <description>Módulo 3 (Intermedio): Programación Orientada a Objetos - Un viaje por la OOP

¿Qué es una pila?

Una pila es una estructura desarrollada para almacenar datos de una manera muy específica. Imagina una pila de monedas. No puedes poner una moneda en ningún otro lugar sino en la parte superior de la pila.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion1:sincara?rev=1740555602&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-26T07:40:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara sesión 1</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion1:sincara?rev=1740555602&amp;do=diff</link>
        <description>Apuntes SinCara sesión 1

Modulo 01

	*  El CIO (Director de Información), es el gerente de sistemas o director de tecnologías de la información (responsable de TI). Reporta directamente al CEO, y se encarga directamente de las estrategias de la organización que están alineadas con la tecnología de la información para lograr los objetivos planificados.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:biblioteca:calendar?rev=1657227190&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-07T20:53:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 4 (Intermedio): Biblioteca calendar</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m4:biblioteca:calendar?rev=1657227190&amp;do=diff</link>
        <description>Módulo 4 (Intermedio): Biblioteca calendar

Introducción al módulo calendar

Además de los módulos datetime y time, la biblioteca estándar de Python proporciona un módulo llamado calendar que, como su nombre indica, ofrece funciones relacionadas con el calendario</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-01T10:53:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Special Shell Variables &amp; Parameter Substitution and Expansion</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff</link>
        <description>Special Shell Variables &amp; Parameter Substitution and Expansion

linux

bash

$ es utilizado para expansión de parámetros y sustitución de comandos

File descriptors

Special Shell Variables
 variable  Significado  $0        Nombre del script que se está ejecutando</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:backup1?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>backup sistema</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:backup1?rev=1321351182&amp;do=diff</link>
        <description>backup sistema

Crea TARs de varios directorios del sistema, para realizar un backup «completo»

	*  buzones de correo
	*  BBDD del servidor MySQL
	*  directorio de configuración /etc
	*  directorios /home


#!/bin/bash -x

# mejoras a realizar:
#       - comprobar la existencia del directorio destino con    [ -d ];
#       - utilizar /etc/mysql/debian.cnf para el usuario/password de mysql

# ubicaciones
path_backup=/root/bck
path_correo=/home/vmail/
path_mysql_trans=/var/log/mysql/

# backup bu…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-22T18:52:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>backup, encriptado y copia a remoto</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff</link>
        <description>backup, encriptado y copia a remoto

2.2

	*  disociar parámetros de script en 2 ficheros
		*  usar source para incluir las variables necesarias
		*  o volver a mirar opciones de usar otro tipo de fichero (INI,JSON)


v2.1

	*  sustitución GPG por</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-27T18:20:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Protocolo de Backup</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff</link>
        <description>Protocolo de Backup

	*  master -&gt; servidor que hace las copias de seguridad
	*  esclavo(s) -&gt; servidor que se deja hacer las copias de seguridad

esclavo

	*  (1) crear cuenta específica para backups: $ useradd -c «Usuario de backup» -m -d /home/bck bck</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-07T22:25:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vim</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff</link>
        <description>vim



linux

/vía: &lt;https://www.catswhocode.com/blog/vim-cheat-sheet-for-2016&gt;

/vía:&lt;http://www.catswhocode.com/blog/130-essential-vim-commands&gt;

info

	*  .vimrc
	*  1 al día por mlechon

Plugins/extensiones/personalización
&lt;https://kadekillary.work/post/statusline/&gt;&lt;https://gist.github.com/millermedeiros/1262085&gt;
	*  gestión/instalación plugins en sus propios directorios (runtimepath): &lt;https://github.com/tpope/vim-pathogen&gt;
		*  crear dos directorios: ~/.vim/autoload (ubicación vim-pathogen…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:terraform:variables?rev=1749563456&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-10T13:50:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform variables</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:terraform:variables?rev=1749563456&amp;do=diff</link>
        <description>terraform variables

	*  &lt;https://developer.hashicorp.com/terraform/tutorials/configuration-language/variables&gt;

declaración

	*  recomendado en fichero aparte variables.tf

declaración: 


variable &quot;aws_region&quot; {
  description = &quot;AWS region&quot;
  type        = string
  default     = &quot;us-west-2&quot;
}

variable &quot;instance_count&quot; {
  description = &quot;Number of instances to provision.&quot;
  type        = number
  default     = 2
}

variable &quot;enable_vpn_gateway&quot; {
  description = &quot;Enable a VPN gateway in your V…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-26T05:31:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>configuración/uso screen</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff</link>
        <description>configuración/uso screen

install &amp; help

	*  
sudo apt install screen

	*  &lt;https://linuxize.com/post/how-to-use-linux-screen/&gt;
	*  &lt;https://www.gnu.org/software/screen/manual/screen.html&gt;
	*  versión moderna TMUX: &lt;https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/&gt;

comando

	*  screeen -ls: lista sesiones
	*  screen -r [&lt;sesion&gt;] : retornar a última sesión o a sesión específica
	*  screen -S &lt;nombre&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:autoenv?rev=1732706445&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-27T11:20:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>zsh-autoenv</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh:autoenv?rev=1732706445&amp;do=diff</link>
        <description>zsh-autoenv

/via: &lt;https://github.com/Tarrasch/zsh-autoenv&gt;

configuration

	*  AUTOENV_FILE_ENTER: Name of the file to look for when entering directories. Default: .autoenv.zsh
	*  AUTOENV_FILE_LEAVE: Name of the file to look for when leaving directories. Requires AUTOENV_HANDLE_LEAVE=1.Default: .autoenv_leave.zsh</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:seedbox.torresegea.es?rev=1781024102&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-09T16:55:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Let&#039;s encrypt seedbox.torresegea.es</title>
        <link>https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:seedbox.torresegea.es?rev=1781024102&amp;do=diff</link>
        <description>Let&#039;s encrypt seedbox.torresegea.es

lets_encrypt

para próximas

	*  probar método automático: certbot-auto renew
		*  OK, renueva certificados (pero no los actualiza en los directorios correspondientes) -&gt; está en CRON
		*  añadida entrada en sudo visudo para que no solicite password de sudo al ejecutarse</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:tuplas?rev=1655832393&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-21T17:26:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 4: Tuplas</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:tuplas?rev=1655832393&amp;do=diff</link>
        <description>Modulo 4: Tuplas

Tipos de secuencias y mutabilidad

Antes de comenzar a hablar acerca de tuplas y diccionarios, se deben introducir dos conceptos importantes: tipos de secuencia y mutabilidad.

Un tipo de secuencia es un tipo de dato en Python el cual es capaz de almacenar más de un valor (o ninguno si la secuencia esta vacía), los cuales pueden ser secuencialmente (de ahí el nombre) examinados</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab20?rev=1740141555&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T12:39:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lab Module 20 Cryptography</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:lab20?rev=1740141555&amp;do=diff</link>
        <description>Lab Module 20 Cryptography

With the increasing adoption of the Internet for business and personal communication, securing sensitive information such as credit-card and personal identification numbers (PINs), bank account numbers, and private messages is becoming increasingly important, and yet, more difficult to achieve. Today’s information-based organizations extensively use the Internet for e-commerce, market research, customer support, and a variety of other activities. Thus, data security i…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.3?rev=1699216373&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:32:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.3 Extended function argument syntax</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:2.3?rev=1699216373&amp;do=diff</link>
        <description>2.3 Extended function argument syntax

When we talk about function arguments, we should recall the following facts:

	*  some functions can be invoked without arguments;
	*  functions may require a specific number of arguments with no exclusions; we have to pass a required number of arguments in an imposed order to follow function definition;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.3?rev=1703793078&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T19:51:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.3 A small lexicon of widgets - Part 3</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.3?rev=1703793078&amp;do=diff</link>
        <description>2.3 A small lexicon of widgets - Part 3

There are two remaining widgets we want to tell you about – the first one is just a widget, while the second is, in fact, a set of cooperating widgets.

The Entry widget not only presents a line of text, but is also able to</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.4?rev=1703794616&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T20:16:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.4 Shaping the main window and conversing with the user</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.4?rev=1703794616&amp;do=diff</link>
        <description>2.4 Shaping the main window and conversing with the user

The main window is a very specific construct, as its fate is shared among two masters: you (supported by tkinter) and your operating system. This means than you cannot manage the window like any other widget, as the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:strings?rev=1728546797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-10T07:53:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python strings</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:strings?rev=1728546797&amp;do=diff</link>
        <description>Python strings

python

comp

	*  Exact match (equality comparison): ==, !=
	*  Partial match: in, not in
	*  Forward/backward match: startswith(), endswith()
	*  Order comparison: &lt;, &lt;=, &gt;, &gt;=
	*  Case-insensitive comparison: upper(), lower()
	*  Regex: re.search(), re.fullmatch()</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:dns:127?rev=1751957332&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-08T06:48:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>127.0.0.1 VS 127.0.1.1</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:dns:127?rev=1751957332&amp;do=diff</link>
        <description>127.0.0.1 VS 127.0.1.1

/via: &lt;https://askubuntu.com/questions/754213/what-is-difference-between-localhost-address-127-0-0-1-and-127-0-1-1&gt;

As your machine gets started, it will need to know the mapping of some hostnames to IP addresses before DNS can be referenced. This mapping is kept in the /etc/hosts file. In the absence of a name server, any network program on your system consults this file to determine the IP address that corresponds to a host name.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:backup2?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>backup de archivos</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:backup2?rev=1321351182&amp;do=diff</link>
        <description>backup de archivos

backup varias carpetas de una lista



#!/bin/bash
#
# file system backup
#

# directorios de los que hacer backup, separado por espacio, sin / final
LISTA=&quot;/etc /var&quot;

# RUTAS
# Local Directory for Dump Files
LOCALDIR=/home/backups/tmp/
# Prefix for offsite .tar file backup
HOSTNAME=pandora
MAIL=root@$HOSTNAME
LOG_DATE=&quot;$(date +%y)$(date +%m)$(date +%d)&quot;
SUFFIX=`eval date +%y%m%d`


# APP
# crea un tar de los directorios especificados en LISTA
for directorio in $LISTA
do
   …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:mysqldump?rev=1326822530&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-01-17T17:48:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mysqldump</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:mysqldump?rev=1326822530&amp;do=diff</link>
        <description>mysqldump


#!/bin/bash

#
# BD
#

# MySQL Hostname
DBHOST=&#039;localhost&#039;

# MySQL Username
DBUSER=&#039;root&#039;

# MySQL Password
DBPASSWD=&#039;xxx&#039;

#
# RUTAS
#

# Local Directory for Dump Files
LOCALDIR=/home/www/mysqldump/

# Prefix for offsite .tar file backup
TARPREFIX=backup_mysql_&lt;server&gt;

#
# APP
#

cd $LOCALDIR
SUFFIX=`eval date +%y%m%d`

# DBS=`mysql -u$DBUSER -h$DBHOST -e&quot;show databases&quot;`
DBS=`mysql -u$DBUSER -p&quot;$DBPASSWD&quot; -h&quot;$DBHOST&quot; -e&quot;show databases&quot;`
# existe versión con SED para eliminar /Dat…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:netplan?rev=1639738671&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-17T10:57:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>netplan (ubunut network)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:netplan?rev=1639738671&amp;do=diff</link>
        <description>netplan (ubunut network)

Ubuntu 18.04 LTS has switched to Netplan for configuring network interfaces. Netplan is based on YAML based configuration system that makes configuration process very simple. Netplan has replaced the old configuration file /etc/network/interfaces that we previously used for configuring network interfaces in Ubuntu.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/macintosh:boot:start?rev=1478435748&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-06T12:35:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mac boot</title>
        <link>https://miguelangel.torresegea.es/wiki/macintosh:boot:start?rev=1478435748&amp;do=diff</link>
        <description>mac boot

magical boot key secuences
 Key Combination  Effect mouse down  Eject removable media ( I think Boot ROMs prior to 2.4f1 excluded the CD drive )⌥  Bring up OF system picker on New World machines⌘-⌥  Hold down until 2nd chime, will boot into Mac</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:backup:borg?rev=1655284776&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-15T09:19:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>borgbackup</title>
        <link>https://miguelangel.torresegea.es/wiki/software:backup:borg?rev=1655284776&amp;do=diff</link>
        <description>borgbackup

	*  &lt;https://borgbackup.readthedocs.io/en/stable/index.html&gt;
	*  &lt;https://www.atareao.es/podcast/hice-un-rm-rf-salvado-por-borg/&gt;
	*  alternativa?: &lt;https://restic.readthedocs.io/en/stable/index.html&gt;

quick


sudo mount /media/mate/3TB-EXT4_BACKUP2
sudo borg list /media/mate/3TB-EXT4_BACKUP2/borgbackup/home
sudo borg list /media/mate/3TB-EXT4_BACKUP2/borgbackup/entireDisk

tail -f /media/mate/3TB-EXT4_BACKUP2/borgbackup/entireDisk.last_exec.txt
sudo myscripts/backups/borg-create_ent…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:utils:everything?rev=1750069295&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-16T10:21:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>everything</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:utils:everything?rev=1750069295&amp;do=diff</link>
        <description>everything

	*  propiedades: &lt;https://www.voidtools.com/forum/viewtopic.php?f=12&amp;t=10176#dupe&gt;

dupes

/via: &lt;https://www.voidtools.com/forum/viewtopic.php?t=12733&gt;

	*  Right click the size column header and click Find size duplicates.
	*  search bar: dupe:size, dupe:size,sha256
	*  in a search:
		*  Right click a column header and click Find &lt;property&gt; duplicates.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:openwebinars:vagrant:cli?rev=1530718064&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-07-04T15:27:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Introducción a la línea de comandos</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:openwebinars:vagrant:cli?rev=1530718064&amp;do=diff</link>
        <description>Introducción a la línea de comandos

	*  vagrant list-commands (los más interesantes)
		*  box: manages boxes: installation, removal, etc.
		*  connect: conexión a entorno Vagrant remoto
		*  destroy: stops and deletes all traces of the vagrant machine</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s10?rev=1647286620&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-14T19:37:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 10 (2022-03-14) Vagrant + Packer</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s10?rev=1647286620&amp;do=diff</link>
        <description>DevOps Sesión 10 (2022-03-14) Vagrant + Packer

Documentación relacionada

	*  3-Topic 703 Machine Deployment/1-Material Curso Vagrant/

Vagrant

	*  ./2-Uso básico de vagrant.pdf
	*  ./Clase Resumen Vagrant.txt
	*  ./Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s13?rev=1648069358&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-23T21:02:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 13 (2022-03-23) Ansible</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s13?rev=1648069358&amp;do=diff</link>
        <description>DevOps Sesión 13 (2022-03-23) Ansible

Documentación relacionada

	*  ./4-Topic 704 Configuration Management
	*  ./Material Curso Ansible/Curso Ansible 2020.pdf

variables

	*  ./Material Curso Ansible/Curso Ansible 2020.pdf pag 71
	*  ./Material Curso Ansible/Clase Ansible variables basicas .txt</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:docker:dockerfile:examples:runscript?rev=1637048457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-16T07:40:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Dockerfile run script</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:docker:dockerfile:examples:runscript?rev=1637048457&amp;do=diff</link>
        <description>Dockerfile run script

dockerfile

/via:&lt;https://github.com/chio-nzgft/docker-MariaDB-with-SSL/blob/master/run.sh&gt;

destacable



completo


#!/bin/sh
# execute any pre-init scripts
for i in /scripts/pre-init.d/*sh
do
        if [ -e &quot;${i}&quot; ]; then
                echo &quot;[i] pre-init.d - processing $i&quot;
                . &quot;${i}&quot;
        fi
done

if [ -d &quot;/run/mysqld&quot; ]; then
        echo &quot;[i] mysqld already present, skipping creation&quot;
        chown -R mysql:mysql /run/mysqld
else
        echo &quot;[i] …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-privacidad?rev=1740650432&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-27T10:00:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara Extras Privacidad</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-privacidad?rev=1740650432&amp;do=diff</link>
        <description>Apuntes SinCara Extras Privacidad

Inicio

	*  &lt;https://www.eff.org&gt; - La Electronic Frontier Foundation
	*  &lt;https://ssd.eff.org/&gt; - Consejos, herramientas y procedimientos de autodefensa de vigilancia para comunicaciones en línea más seguras.
	*  &lt;https://sec.eff.org/&gt; - Security Education Companion, un recurso gratuito para educadores de seguridad digital.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2:sincara?rev=1740558607&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-26T08:30:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara sesión 2</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2:sincara?rev=1740558607&amp;do=diff</link>
        <description>Apuntes SinCara sesión 2

Modulo 06

	*  Kerberos:
		*  &lt;https://www.tarlogic.com/es/blog/como-funciona-kerberos/&gt; - Cómo funciona Kerberos
		*  &lt;https://www.tarlogic.com/es/blog/como-atacar-kerberos/&gt; - Ataques a Kerberos
		*  Kerberos se divide principalmente en 5 pasos:
			*  KRB_AS_REQ: El cliente requiere que el AS (Authentication Service) le proporcione un TGT (Ticket Granting Ticket), válido durante unas horas</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:sincara?rev=1740564007&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-26T10:00:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara sesión 5</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion5:sincara?rev=1740564007&amp;do=diff</link>
        <description>Apuntes SinCara sesión 5

Modulo 18 - IoT Hacking

	*  &lt;https://zumpad.zum.de/p/SinCara-ICS&gt; - ICS
	*  &lt;https://wiki.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=IoT_Top_10&gt; - OWASP Top 10 IoT 2024
	*  &lt;https://www.fcc.gov/oet/ea/fccid&gt; - FCC ID
	*  &lt;https://www.redeszone.net/noticias/redes/web-of-things-wot-que-es-funcionamiento/&gt; - Web of Things (WoT): una capa que unifica y simplifica la comunicación entre dispositivos, usando tecnologías web como HTTP, REST y JSON.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.3?rev=1699216505&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-05T20:35:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4.3 Making Python objects persistent using the shelve module</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m1:4.3?rev=1699216505&amp;do=diff</link>
        <description>4.3 Making Python objects persistent using the shelve module

Serialization of Python objects using the shelve module

As you remember, the pickle module is used for serializing objects as a single byte stream. Both serializing and deserializing parties must abide by the order of all the elements placed into a file or database, or sent via a network.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.4?rev=1703358335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-23T19:05:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.4 Coloring your widgets</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.4?rev=1703358335&amp;do=diff</link>
        <description>1.4 Coloring your widgets

Adding colors

Nearly everything you put inside your windows may be colored. Most widgets have dedicated properties to handle their colors and we will tell you about them while discussing the widgets themselves. Currently, the most important thing is getting to know how the colors are described in</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.5?rev=1703359986&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-23T19:33:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.5 A simple GUI application</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.5?rev=1703359986&amp;do=diff</link>
        <description>1.5 A simple GUI application

Building a GUI application from scratch

Now we&#039;re going to build a very simple and rather useless GUI application. Does that sound weird? Maybe, but the application, when ready, will make you more accustomed to some tkinter</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.3?rev=1705056974&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-12T10:56:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.3 JSON – our new friend</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:1.3?rev=1705056974&amp;do=diff</link>
        <description>1.3 JSON – our new friend

Do you sometimes feel that coping with IT issues is a continuous struggle with acronyms? Well, you’re not alone. We share this opinion. An old anecdote says that computer technology development is in fact based on TLA. What is TLA? It&#039;s simple – it&#039;s a Three-Letter Acronym. Close your eyes, strain your mind and try to recall five acronyms commonly used in the IT world.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/wiki:dokuwiki?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DokuWiki</title>
        <link>https://miguelangel.torresegea.es/wiki/wiki:dokuwiki?rev=1321351182&amp;do=diff</link>
        <description>DokuWiki

wiki:dokuwiki DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful Formatting Syntax which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/wiki:plugins?rev=1528577721&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-09T20:55:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>plugins</title>
        <link>https://miguelangel.torresegea.es/wiki/wiki:plugins?rev=1528577721&amp;do=diff</link>
        <description>plugins

	*  export to TXT : &lt;https://www.dokuwiki.org/plugin:text&gt; -&gt; ?do=export_text
	*  qrcodes
	*  &lt;http://wikidesign.ch/en/plugins&gt;
	*  estadísticas de usuarios: &lt;https://www.dokuwiki.org/plugin:authorstats&gt;
	*  editor ACE : &lt;https://www.dokuwiki.org/plugin:aceeditor&gt;
	*  añade botón para introducir &lt;file&gt;code&lt;/file&gt;: &lt;https://www.dokuwiki.org/plugin:codebutton&gt;
	*  crear botones en el editor «a medida»: &lt;https://www.dokuwiki.org/plugin:codebutton2&gt; &lt;- no instalado
	*  necesario para el ope…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/wiki:primeros_pasos?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>primeros pasos</title>
        <link>https://miguelangel.torresegea.es/wiki/wiki:primeros_pasos?rev=1321351182&amp;do=diff</link>
        <description>primeros pasos

&lt;note important&gt;A la hora de hacer un buen seguimiento de control de cambios, los arreglos de texto o composición (poner negritas, corregir un error tipográfico, arreglar una lista que no sale bien) tendrían que marcarse como Minor Chages</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:json:start?rev=1585124609&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-25T08:23:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>json</title>
        <link>https://miguelangel.torresegea.es/wiki/development:json:start?rev=1585124609&amp;do=diff</link>
        <description>json

development addendum

install (raspberry)


cd /tmp
wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz
tar xfvz jq-1.5.tar.gz
cd jq-1.5
./configure &amp;&amp; make &amp;&amp; sudo make install


tutorials

	*  &lt;https://linuxhint.com/bash_jq_command/&gt;

jq (shell)

selección


{
  &quot;ACTION&quot;: &quot;domain.list&quot;,
  &quot;DATA&quot;: [
    {
      &quot;TYPE&quot;: &quot;slave&quot;,
      &quot;AXFR_IPS&quot;: &quot;none&quot;,
      &quot;DOMAIN&quot;: &quot;domain1.com&quot;,
      &quot;TTL_SEC&quot;: 0,
      &quot;SOA_EMAIL&quot;: &quot;&quot;,
      &quot;DOMAINID&quot;: 11111,
      &quot;DESCRIPT…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:aberraciones?rev=1728466008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-09T09:26:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python aberraciones</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:aberraciones?rev=1728466008&amp;do=diff</link>
        <description>Python aberraciones

	*  operador ternario:

variable = &quot;valor&quot; if condicion_cierta() else &quot;otro_valor&quot;


	*  reducciones:
my_numbers = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
even_number_list = [num for num in my_numbers if num%2 == 0]


		*  List Comprehensions

	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:parallel?rev=1781182496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-11T12:54:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>parallel (bash)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:parallel?rev=1781182496&amp;do=diff</link>
        <description>parallel (bash)

	*  GNU Parallel actúa como un director de orquesta. No solo lanza los procesos, sino que los gestiona para que no colapsen el sistema:
		*  Gestión de carga: Si un proceso termina, lanza el siguiente inmediatamente.
		*  Orden de salida: Evita que los mensajes de error o logs de diferentes sujetos se mezclen de forma caótica en la terminal.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-20T15:40:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>anacron</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff</link>
        <description>anacron

este programa sirve para ejecutar tareas de CRON en sistemas que no están encendidos 24h horas al díase ejecuta al arrancar el sistema y comprueba /etc/anacrontab, donde están las tareas especificadas a realizar como «importantes»

un ejemplo:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:mint:start?rev=1686748898&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-14T13:21:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux Mint 18</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:mint:start?rev=1686748898&amp;do=diff</link>
        <description>Linux Mint 18

Impresora

cambiar permisos de servidor de impresión: &lt;http://unix.stackexchange.com/questions/21074/dont-require-root-to-add-printers&gt;

sacar a un usuario de la pantalla de logon

	*  sudo vim /usr/share/mdm/defaults.conf
	*  buscar Exclude y cambiar nobody por la lista de usuarios que no se quiere que aparezca</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:nagios:start?rev=1539079953&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-09T10:12:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nagios</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:nagios:start?rev=1539079953&amp;do=diff</link>
        <description>nagios

related

	*  &lt;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/monitoring-windows.html&gt;
	*  &lt;https://hub.docker.com/r/jasonrivers/nagios/&gt;
	*  &lt;https://www.nsclient.org/&gt;

install

	*  &lt;https://community.spiceworks.com/how_to/68159-install-nagios-on-a-raspberry-pi&gt;


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install


configure

inicio

acceso al webadmin: &lt;http://ip_maquina_nagios_server/nagios3&gt;, usuario nagiosadmin, password según instalaciónficheros imp…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:arrayloop?rev=1589545895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-15T12:31:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>array loop</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:arrayloop?rev=1589545895&amp;do=diff</link>
        <description>array loop


#!/bin/bash

INDEX=1

Code[$INDEX]=code1
Name[$INDEX]=name1
Tenant1[$INDEX]=tenant1
Tenant2[$INDEX]=tenant21

INDEX=$(($INDEX + 1))

Code[$INDEX]=code2
Name[$INDEX]=name2
Tenant1[$INDEX]=tenant2
Tenant2[$INDEX]=tenant22

for i in &quot;${Code[@]}&quot;; do
  printf &#039;%s\n&#039; &quot;$i&quot;
done

for i in &quot;${!Code[@]}&quot;; do 
  printf &quot;%s\t%s\t%s\t%s\t%s\n&quot; &quot;$i&quot; &quot;${Code[$i]}&quot; &quot;${Name[$i]}&quot; &quot;${Tenant1[$i]}&quot; &quot;${Tenant2[$i]}&quot;
done</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:forfolders?rev=1613915129&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-21T13:45:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux for-folders</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:forfolders?rev=1613915129&amp;do=diff</link>
        <description>linux for-folders


OIFS=&quot;$IFS&quot;
IFS=$&#039;\n&#039;
for f in `ls -d Gan*`; do unrar e &quot;${f}/${f}.part1.rar&quot;; done
IFS=$OIFS


linux ifs</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:utils?rev=1605886849&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-20T15:40:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>control de flujo / testing</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:utils?rev=1605886849&amp;do=diff</link>
        <description>control de flujo / testing

	*  más información: &lt;http://www.ibm.com/developerworks/library/l-bash-test/index.html&gt;
	*  test y || &amp;&amp;
		*  se pueden concatenar comandos con || (OR) o con &amp;&amp; (AND)
		*  test es equivalente al if, pero no permite bloques de comandos
		*  ejemplos:
			*  test -x /usr/sbin/anacron || exit 0</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:44:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>chroot (enjaulado)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff</link>
        <description>chroot (enjaulado)

linux ssh

los usuarios se quedan encerrados en un directorio y no pueden salir de ahí (excepciones con mount --bind)


# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server

AllowGroups ConexionSFTP

Match group ConexionSFTP
ChrootDirectory …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:nfs?rev=1628965242&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-14T18:20:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>NFS</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:nfs?rev=1628965242&amp;do=diff</link>
        <description>NFS

información

	*  &lt;http://es.tldp.org/Manuales-LuCAS/GARL2/garl2/x-087-2-nfs.html&gt;
	*  mount -t nfs nfs_volume local_dir options (se puede omitir -t nfs pq el formato de montaje es exclusivo de este protocolo)
		*  mount -t nfs vlager:/home /users

	*  cat /proc/filesystems -&gt; ha de aparecer «nfs»

puesta en marcha de server/client</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-23T21:49:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH zmv</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff</link>
        <description>ZSH zmv

mv/rename mejorado

uso

	*  si no lo hacemos en el .zshrc, cargar con autoload zmv
	*  parámetros:
		*  -n: test, o hace los cambios
		*  C: copy
		*  L: ln
		*  M: move
		*  -w: añade paréntesis en los *
		*  -i: interactivo


ejemplo

usage</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:docker:start?rev=1750151077&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-17T09:04:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DOCKER</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:docker:start?rev=1750151077&amp;do=diff</link>
        <description>DOCKER

devops info

related

+info

	*  dockerd
	*  Dockerfile
	*  docker-compose
	*  docker volumes
	*  docker TLS (OLD)
	*  docker daemon TLS
	*  docker context
	*  docker scan
	*  Dev Containers: &lt;https://www.youtube.com/watch?v=DkKs29etRis&gt;
	*  Health Check: &lt;https://atareao.es/podcast/tu-contenedor-docker-podria-estar-muerto-y-tu-sin-enterarte/&gt;

	*  &lt;https://tech.paulcz.net/blog/secure-docker-with-tls/&gt;
	*  &lt;https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5&gt;
	*  &lt;https://blog…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:singularity:start?rev=1697184224&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-13T08:03:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Singularity</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:singularity:start?rev=1697184224&amp;do=diff</link>
        <description>Singularity

.sif i cache

singularity pull hello-world.sif shub://vsoch/hello-world

singularity cache list [-v]

containers

singularity exec hello-world.sif /bin/echo Hello World!

singularity shell hello-world.sif

singularity shell hello-world.sif
Singularity&gt; whoami</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:vagrant:start?rev=1644860937&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-14T17:48:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VAGRANT</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:vagrant:start?rev=1644860937&amp;do=diff</link>
        <description>VAGRANT

devops info



	*  vagrantfile
	*  vagrantfile examples

related

help

	*  &lt;https://www.vagrantup.com/docs/vagrantfile/machine_settings&gt;
	*  vagrant_hosts -&gt; sync_hosts: &lt;https://www.rubydoc.info/gems/vagrant-hosts/2.6.2&gt;

config files

	*  config.vm : &lt;https://www.vagrantup.com/docs/vagrantfile/machine_settings.html&gt;
	*  provision docker : &lt;https://www.vagrantup.com/docs/provisioning/docker.html&gt;

resumen comandos

imágenes (box)

	*  vagrant box add &lt;imagen&gt;: descargar
		*  alternati…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:security:wordpress?rev=1760533181&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-15T12:59:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WORDPRESS</title>
        <link>https://miguelangel.torresegea.es/wiki/web:security:wordpress?rev=1760533181&amp;do=diff</link>
        <description>WORDPRESS

	*  /vía: &lt;http://wpzine.com/wordpress-security-hacks-and-tricks/&gt;
	*  /vía: &lt;http://www.katharsix.com/la-seguridad-en-wordpress-algunos-consejos/&gt;
	*  /vía: &lt;http://www.katharsix.com/la-seguridad-en-wordpress-algunos-consejos-ii/&gt;

	*  WordPress multisite
	*  Wordpress securizar
	*  WordPress, webinar seguridad

trucos

	*  obligar método https VS ftp al actualizar:
define(&#039;FS_METHOD&#039;, &#039;direct&#039;);


recover &amp; debugging

	*  desactivar plugins:&lt;https://www.ostraining.com/blog/wordpress…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:activacion:start?rev=1752739212&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-17T08:00:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Windows activación</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:activacion:start?rev=1752739212&amp;do=diff</link>
        <description>Windows activación

activación

2025

	*  &lt;https://www.teknofilo.com/hackers-logran-activacion-permanente-de-windows-y-office-con-una-nueva-herramienta/&gt;
	*  &lt;https://github.com/massgravel/Microsoft-Activation-Scripts&gt;
		*  W7-W11, Office, WServer
		*  Download:
			*  &lt;https://massgrave.dev/genuine-installation-media&gt;
			*  &lt;https://gravesoft.dev/office_c2r_links#spanish-es-es&gt;
			*  MAC: &lt;https://massgrave.dev/office_for_mac&gt;
			*  file (2025-07-17): 

		*  Act (powershell): 
irm https://get.ac…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/bbdd:mysql:users:start?rev=1635245521&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-26T10:52:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>manejo de usuarios en MySQL</title>
        <link>https://miguelangel.torresegea.es/wiki/bbdd:mysql:users:start?rev=1635245521&amp;do=diff</link>
        <description>manejo de usuarios en MySQL

bbdd mysql user

para acceder al servidor desde una máquina local


shell&gt; mysql --user=root mysql -p


crear cuentas de usuario

permisos y que implican


# ver usuarios creados
SELECT user,authentication_string,plugin,host FROM mysql.user;

# cambiar root
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED WITH mysql_native_password BY &#039;password&#039;;

# guardar los cambios
FLUSH PRIVILEGES;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:devops-kubernetes:cap3-2?rev=1586961043&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-15T14:30:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Getting started with Kubernetes: objects</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:devops-kubernetes:cap3-2?rev=1586961043&amp;do=diff</link>
        <description>Getting started with Kubernetes: objects

kubectl

	*  
kubectl version

	*  
kubectl logs --help


objects

Namespaces

	*  permite implementar el aislamiento entre múltiples clusters virtuales
	*  objetos de diferentes namespaces no se ven entre ellos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:swarm:chap3?rev=1638914051&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-07T21:54:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>[native docker clustering with swarm] Meeting docker swarm mode</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:swarm:chap3?rev=1638914051&amp;do=diff</link>
        <description>[native docker clustering with swarm] Meeting docker swarm mode

swarmkit

	*  «toolkit for orchestrating distributed systems at any scale. It includes primitives for node discovery, raft-based consensus, task scheduling, and more» - Docker team at DockerCon16</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:multidominio?rev=1781024215&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-09T16:56:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Let&#039;s Encrypt multidominio</title>
        <link>https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:multidominio?rev=1781024215&amp;do=diff</link>
        <description>Let&#039;s Encrypt multidominio

lets_encrypt


#!/bin/bash

COMMON_NAME=${1:-&quot;landing.fidmag.org&quot;}
COMMON_ALT_NAME=${COMMON_NAME//./_}

[[ ! -z ${COMMON_NAME} ]] &amp;&amp; {
	echo -e &quot;Creating letsencrypt directory...\n&quot;
	mkdir -p /etc/letsencrypt/live/${COMMON_NAME}
	#openssl genrsa 4096 &gt; account.key
	echo -e &quot;Generating .key &amp; .csr for domain...\n&quot;
	openssl genrsa 4096 &gt; domain_${COMMON_ALT_NAME}.key

        openssl req -new -sha256 -key domain_${COMMON_ALT_NAME}.key -subj &quot;/&quot; -reqexts SAN -config &lt;(ca…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:itformacion:awsassociate:opsworks?rev=1540400942&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-24T17:09:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>OpsWorks</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:itformacion:awsassociate:opsworks?rev=1540400942&amp;do=diff</link>
        <description>OpsWorks

	*  despliege como código: puppet o chef
	*  opsworks stacks : 
		*  opsworks for chef automated
		*  opsworks for puppet enterprise

	*  stack : conjunto de infraestructura (instancias, bdd, balanceadores, ...)
		*  incluye monitorización</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s3?rev=1646847691&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-09T17:41:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 3 (2022-02-16) Docker</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s3?rev=1646847691&amp;do=diff</link>
        <description>DevOps Sesión 3 (2022-02-16) Docker

Documentación relacionada

	*  1-Despliegue de Aplicaciones Docker
	*  ./1-Curso Alumnos Docker.pdf, pag. 147
	*  ./Docker-Resumen/Laboratorio docker redes wp+mysql.txt
	*  ./1-Curso Alumnos Docker.pdf, pag. 164</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s7?rev=1646840350&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-09T15:39:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 7 (2022-03-02) k8s</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s7?rev=1646840350&amp;do=diff</link>
        <description>DevOps Sesión 7 (2022-03-02) k8s

Documentación relacionada

	*  lpi-devops-study-master -&gt; documentación estudio
	*  2-Despliegue de Aplicaciones Kubernetes/1-Laboratorio kubernetes Curso-DevOps.txt
	*  2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s12?rev=1647895637&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-21T20:47:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 12 (2022-03-21)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s12?rev=1647895637&amp;do=diff</link>
        <description>DevOps Sesión 12 (2022-03-21)

Documentación relacionada

	*  ./4-Topic 704 Configuration Management
	*  ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf
	*  ./Material Curso Ansible/Introduccion Ansible.txt
	*  ./Material Curso Ansible/Curso Ansible 2020.pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:excepciones?rev=1655834352&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-21T17:59:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 4: Excepciones</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe1m4:excepciones?rev=1655834352&amp;do=diff</link>
        <description>Modulo 4: Excepciones

Excepciones

El lidiar con errores de programación tiene (al menos) dos partes. La primera es cuando te metes en problemas porque tu código, aparentemente correcto, se alimenta con datos incorrectos. Por ejemplo, esperas que se ingrese al código un valor entero, pero tu usuario descuidado ingresa algunas letras al azar.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:metodos?rev=1657048521&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-05T19:15:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Módulo 3 - Programación Orientada a Objetos - Métodos</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m3:metodos?rev=1657048521&amp;do=diff</link>
        <description>Módulo 3 - Programación Orientada a Objetos - Métodos

Métodos a detalle

Resumamos todos los hechos relacionados con el uso de métodos en las clases de Python.

Como ya sabes, un método es una función que está dentro de una clase.

Existe un requisito fundamental: un</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-systemd?rev=1740743512&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-28T11:51:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara Extras systemd</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara-systemd?rev=1740743512&amp;do=diff</link>
        <description>Apuntes SinCara Extras systemd

Consideraciones iniciales

	*  Se presenta el 30 de abril de 2010, por Lennart Poetterig
	*  SystemD es un sistema de inicio y administración de servicios.
	*  Reemplaza los sistemas de inicio tradicionales como SysV init o Upstart (de Canonical / Ubuntu)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:lab9?rev=1740124796&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T07:59:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lab Module 09: Social Engineering</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:lab9?rev=1740124796&amp;do=diff</link>
        <description>Lab Module 09: Social Engineering

Lab 1: Perform Social Engineering using Various Techniques

Task 1: Sniff Credentials using the Social-Engineer Toolkit (SET)

	*   setoolkit to launch Social-Engineer Toolkit.
	*  
	*  
	*  
	*  
	*  IP máquina host</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.2?rev=1703791448&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T19:24:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.2 A small lexicon of widgets - Part 2</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.2?rev=1703791448&amp;do=diff</link>
        <description>2.2 A small lexicon of widgets - Part 2

Non-clickable widgets

The next four widgets fall into the non-clickable category. They’re designed to present textual information and don’t have a command property, although you can use bind() to simulate similar behavior.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:2.1?rev=1705687171&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-19T17:59:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.1 Python Professional Course Series: Lab &amp; Assessment</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m4:2.1?rev=1705687171&amp;do=diff</link>
        <description>2.1 Python Professional Course Series: Lab &amp; Assessment

Working with RESTful APIs: Lab &amp; Assessment

Well done, you&#039;ve reached the end of the course!

In this section, it&#039;s time to translate your Python skills and everything you&#039;ve learned about RESTful APIs into some real-world projects. Specifically, we&#039;ll ask you to create:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/start?rev=1767080490&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-30T07:41:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>★</title>
        <link>https://miguelangel.torresegea.es/wiki/start?rev=1767080490&amp;do=diff</link>
        <description>★

	*  bitacora
	*  pendiente wiki (pendiente +wiki)
	*  bofh
	*  Bootstrap Wrapper Plugin Wiki
	*  &lt;https://www.dokuwiki.org/security#plugin_security&gt;
	*  &lt;https://www.dokuwiki.org/template&gt;
	*  &lt;https://www.dokuwiki.org/search&gt;

Informática

OS

	*  linux
	*  macintosh
	*  WINDOWS
	*  boot

Seguridad / Ciberseguridad

	*  Ciberseguridad

devops

formación

desarrollo

	*  web
	*  code
	*  development

tecnologías

dev

	*  GIT
	*  elasticsearch
	*  ruby
	*  kafka
	*  ELK
	*  regexp (regular ex…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/ciberseguridad:start?rev=1780736796&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-06T09:06:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ciberseguridad</title>
        <link>https://miguelangel.torresegea.es/wiki/ciberseguridad:start?rev=1780736796&amp;do=diff</link>
        <description>Ciberseguridad

revisar

	*  &lt;https://atareao.es/podcast/tu-servidor-linux-es-seguro-revisa-los-puntos-criticos-con-dockershield/&gt;
		*  
curl -sSL https://raw.githubusercontent.com/adrian13508/dockershield/main/install.sh | bash
dockershield scan



cloudflare tunnels

	*  &lt;https://www.redeszone.net/tutoriales/vpn/cloudflare-tunnel-acceso-servidor-seguro/&gt;
	*  &lt;https://blog.elhacker.net/2025/02/cloudflare-tunnels-public-hostnames.html&gt;
	*  &lt;https://www.xatakamovil.com/conectividad/cloudflare-qui…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/criptografia:diccionarios:mentalist?rev=1527922209&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-02T06:50:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mentalist</title>
        <link>https://miguelangel.torresegea.es/wiki/criptografia:diccionarios:mentalist?rev=1527922209&amp;do=diff</link>
        <description>mentalist

tools

herramienta gráfica (Windows/Mac/Linux) para generación de diccionarios/via: &lt;https://www.hack4.net/2017/11/mentalist-graphical-tool-for-custom.html&gt;

requisitos

	*  apt install python3.5 python3-setuptools python3-tk (o 3.6)

instalación

	*  git clone &lt;https://github.com/sc0tfree/mentalist.git&gt;
	*  sudo python3 setup.py install --&gt; instala en /usr/local/bin/mentalist</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/criptografia:john:start?rev=1528018759&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-03T09:39:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>john the ripper</title>
        <link>https://miguelangel.torresegea.es/wiki/criptografia:john:start?rev=1528018759&amp;do=diff</link>
        <description>john the ripper

la versión Jumbo tiene utilidades añadidas (crack de zip/rar/7z...)

descarga

	*  compilado: &lt;http://download.openwall.net/pub/projects/john/&gt;

compilación

procesamiento en paralelo


## Uncomment the TWO lines below for MPI (can be used together with OMP as well)
## If you experience problems with MPI_Barrier, remove -DJOHN_MPI_BARRIER
## If you experience problems with MPI_Abort, remove -DJOHN_MPI_ABORT
CC = mpicc -DHAVE_MPI -DJOHN_MPI_BARRIER -DJOHN_MPI_ABORT
MPIOBJ = john-…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/criptografia:wireguard:start?rev=1737045377&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-16T16:36:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wireguard</title>
        <link>https://miguelangel.torresegea.es/wiki/criptografia:wireguard:start?rev=1737045377&amp;do=diff</link>
        <description>wireguard

	*  Raspberry 4 (192.168.24.70) -&gt; VPN Wireguard + DNS -&gt; pivpn basado en wireguard

simple network interface


wg genkey &gt; private
wg pubkey &lt; private # client

sudo ip link add dev wg0 type wireguard
ip address add dev wg0 192.168.2.1/24
sudo wg set wg0 private-key ./private
sudo ip link set wg0 up

wg

# machine A
wg set wg0 peer &lt;PUB-KEY-MACHINE-B&gt; allowed-ips 10.0.0.1/32 endpoint &lt;IP-MACHINE-B&gt;:&lt;PORT&gt;

#machine B
wg set wg0 peer &lt;PUB-KEY-MACHINE-A&gt; allowed-ips 10.0.0.2/32 endpoin…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:angular:directivas?rev=1581288362&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-09T22:46:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angular: directivas y personalización</title>
        <link>https://miguelangel.torresegea.es/wiki/development:angular:directivas?rev=1581288362&amp;do=diff</link>
        <description>angular: directivas y personalización

	*  componentes
		*  directivas con plantilla asociada
		*  son del tipo más común

	*  directivas de atributos
		*  cambian la apariencia o el comportamiento de un elemento, componente u otra directiva
		*  se usan como atributos de los elementos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:angular:formularios?rev=1581356727&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-10T17:45:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>formularios</title>
        <link>https://miguelangel.torresegea.es/wiki/development:angular:formularios?rev=1581356727&amp;do=diff</link>
        <description>formularios

template-driven forms

	*  la plantilla es la responsable de crear los controles, formularios y reglas de validación
	*  sincronización entre la vista y el modelo con el doble enlace (two-way databinding)
		*  si la vista cambia, se actualiza el modelo, y viceversa</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:java:enum?rev=1528192915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-05T10:01:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Enum</title>
        <link>https://miguelangel.torresegea.es/wiki/development:java:enum?rev=1528192915&amp;do=diff</link>
        <description>Enum

java api

revisar

	*  &lt;https://www.mkyong.com/java/java-enum-example/&gt;

ejemplos

	*  &lt;https://www.mkyong.com/java/java-enum-example/&gt;
	*  &lt;https://beginnersbook.com/2014/09/java-enum-examples/&gt;

simple




simple + campo




simple + campo + lógica




bucle




comparación



comparacion 2



string to enum</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:jquery:start?rev=1779357605&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-21T10:00:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jquery</title>
        <link>https://miguelangel.torresegea.es/wiki/development:jquery:start?rev=1779357605&amp;do=diff</link>
        <description>jquery

&lt;https://releases.jquery.com/&gt;

datepicker

fuentes

	*  &lt;https://bootstrap-datepicker.readthedocs.io/en/latest/options.html&gt;
	*  &lt;https://uxsolutions.github.io/bootstrap-datepicker/?#sandbox&gt;
	*  &lt;https://gijgo.com/datepicker/example/bootstrap-4&gt;
	*  &lt;https://stackoverflow.com/questions/25874375/multiple-dates-in-bootstrap-date-picker&gt;

ejemplo


&lt;script&gt;
        $(&#039;#date&#039;).datepicker({
            uiLibrary: &#039;bootstrap4&#039;,
            minDate: &#039;01/01/2020&#039;,
            maxDate: &#039;31/12/2…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:markdown:start?rev=1731848297&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-17T12:58:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>markdown</title>
        <link>https://miguelangel.torresegea.es/wiki/development:markdown:start?rev=1731848297&amp;do=diff</link>
        <description>markdown

development addendum

	*  tutorial: &lt;https://www.markdowntutorial.com&gt;
	*  tutorial: &lt;https://www.markdownguide.org/&gt;
		*  &lt;https://www.markdownguide.org/cheat-sheet/&gt;

	*  cheat-sheet: &lt;https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet&gt;
	*  online: &lt;https://dillinger.io/&gt;
	*  docker: &lt;https://hub.docker.com/r/joemccann/dillinger&gt;



/vía: &lt;https://daringfireball.net/projects/markdown/syntax&gt;

/vía: &lt;http://desarrollandowebsdinamicas.blogspot.com/2013/03/escribir-archivo…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:python:pycurl?rev=1725268712&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-02T09:18:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Python PycURL</title>
        <link>https://miguelangel.torresegea.es/wiki/development:python:pycurl?rev=1725268712&amp;do=diff</link>
        <description>Python PycURL

/via: &lt;https://www.rapidseedbox.com/blog/python-curl&gt;

	*  requests: 1.6 Making life easier with the requests module

setup

	*  PycURL es un intefaz python para interactuar con cURL (más completa/compleja que requests)
	*  
sudo apt install libcurl4-openssl-dev libssl-dev

	*  
pip install pycurl


comandos básicos con requests</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:git?rev=1777976515&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T10:21:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>git (git-book)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:git?rev=1777976515&amp;do=diff</link>
        <description>git (git-book)

devops cursos git



info

	*  &lt;https://git-scm.com/book/es/v2&gt;
	*  puntero: &lt;https://git-scm.com/book/es/v2/Fundamentos-de-Git-Trabajar-con-Remotos&gt;
	*  &lt;https://www.codecademy.com/learn/learn-git&gt;

metodología de trabajo en Git

áreas

	*  Working directory: nuestro directorio de trabajo, que puede ser cualquiera de los diferentes commits que hemos ido realizando a lo largo del tiempo, aunque se suele trabajar con el</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:seguridadinformatica?rev=1352996478&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-11-15T16:21:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>plan de seguridad informática</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:seguridadinformatica?rev=1352996478&amp;do=diff</link>
        <description>plan de seguridad informática

datos

	*  Armengol Torres
	*  Consultor homologado idigital.cat
	*  armengol@torres.net
	*  600.485.486

1. seguridad de la información en la empresa

amenazas

	*  los sistemas información se convierten en un activo fundamental</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:git?rev=1543312881&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-27T10:01:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>git (libro Amazon)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:git?rev=1543312881&amp;do=diff</link>
        <description>git (libro Amazon)

devops cursos git

uso básico

configuración inicial

	*  git config --global user.name &lt;nombre&gt;
	*  git config --global user.email &lt;email&gt;
	*  git config --global core.editor &lt;EDITOR&gt;
	*  git condig --global push.default {matching|simple|current|nothing}</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:libros:swarm?rev=1639043923&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-09T09:58:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Native Docker clustering with Swarm</title>
        <link>https://miguelangel.torresegea.es/wiki/info:libros:swarm?rev=1639043923&amp;do=diff</link>
        <description>Native Docker clustering with Swarm

libros tech docker swarm

	*  Autores:
		*  Fabrizio Soppelsa (Autor)
		*  Chanwit Kaewkasi (Autor)

	*  Editorial: Packt
	*  ISBN: 1786469758

capítulos

	*  [native docker clustering with swarm] Welcome
	*  [native docker clustering with swarm] Discover the Discovery Services
	*  [native docker clustering with swarm] Meeting docker swarm mode
	*  [native docker clustering with swarm] Creating a Production-Grade Swarm
	*  [native docker clustering with swarm…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-10T10:03:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dpkg</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff</link>
        <description>dpkg

opciones

	*  Muestra los ficheros y su ubicación de un paquete:
dpkg -L packagename

	*  Instalar desde archivos .deb descargados:
dpkg -iEGB packagename

		*  i : instala desde fichero
		*  E, –skip-same-version: Don’t install the package if the same version of the package is already installed.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-01-22T09:12:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debug en bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff</link>
        <description>debug en bash

&lt;https://www.cyberciti.biz/tips/debugging-shell-script.html&gt;

variables de entorno

	*  en el script, modificando el SheBang:
#!/bin/bash -x

	*  desde linea de comando: $ bash -x &lt;script&gt;
	*  activar modos:
		*  set (+/-)x : muestra comandos y argumentos a medida que son ejecutados
		*  set (+/-)v</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-02T09:10:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>find</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff</link>
        <description>find

opciones

	*  -name : busca ficheros por nombre
	*  -iname : busca ficheros por nombre sin tener en cuenta mayúsculas o minúsculas
	*  -path : busca en el path completo (directorio+nombre)
	*  -ipath : busca en el path completo (directorio+nombre) no Case Sensitive</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:certificados:cayotros?rev=1638598737&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-04T06:18:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Certificados, certificaciones, Entidades de Certificación</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:certificados:cayotros?rev=1638598737&amp;do=diff</link>
        <description>Certificados, certificaciones, Entidades de Certificación

/vía: &lt;http://www.rinconastur.com/php/php21.php&gt;

	*  openssl

todo

	*  si no es https, redirección a https
	*  si no tiene certificado de CA ficticea, llevar a página donde descargar

Creación entidad certificadora

	*  Creación de clave privada:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:comm:start?rev=1639738082&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-17T10:48:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux communications</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:comm:start?rev=1639738082&amp;do=diff</link>
        <description>linux communications

	*  tcp/ip (on Linux)
	*  otros protocolos

aplicaciones

	*  nmap: scan de red
	*  Escaner de vulnerabilidades nikto2: scan de webs
	*  netcat (nc)
	*  dig
	*  ss
	*  netplan (ubunut network)

sockets

	*  &lt;http://www.vozidea.com/como-obtener-los-sockets-unix-abiertos-en-linux&gt;
		*  &lt;https://en.wikipedia.org/wiki/Unix_domain_socket&gt;
		*  &lt;https://unix.stackexchange.com/questions/88083/idiomatic-location-for-file-based-sockets-on-debian-systems&gt;

other

	*  SPF/DKIM:
		*  S…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:install-6?rev=1580596040&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-01T22:27:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>instalación rápida debian 6 como seedbox</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:install-6?rev=1580596040&amp;do=diff</link>
        <description>instalación rápida debian 6 como seedbox

	*  /vía: &lt;http://pastebin.com/Kx8sLk46&gt;
	*  /vía: &lt;http://www.linuxquestions.org/questions/linux-general-1/problem-using-screen-cannot-open-your-terminal-dev-pts-0-please-check-338313/&gt;: problemas con screen
	*  configuración rtorrent+rutorrent+screen: /vía: &lt;https://ks358174.kimsufi.com/download.CFF9640E/&gt;
	*  reiniciar rtorrent (&lt;https://www.feralhosting.com/faq/view?question=158&gt;)

instalación básica


apt-get update &amp;&amp; apt-get upgrade
apt-get instal…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-13T21:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>docker (first contact)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff</link>
        <description>docker (first contact)

docker

un poco de historia

	*  docker monta un sistema de containerización que permite lanzar nuevas instancias de S.O. aprovechando los recursos (hard) de la máquina Y el kernel del SO ya corriendo, lo que hace más óptimo el aprovechamiendo de recursos que las máquinas virtuales (que recrean un ordenador al completo, con sus propios kernels y sistemas de ficheros)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:permisos?rev=1727956812&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-03T12:00:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>permisos</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:permisos?rev=1727956812&amp;do=diff</link>
        <description>permisos

cada archivo tiene 3 grupos de permisos, el del autor (owner), el del grupo (group) y el del resto.

en un listado (ls -la) los permisos se muestran en el mismo orden (primero owner, después grupo, después resto) representado por 3 letras:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-11T15:24:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sysfs</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff</link>
        <description>sysfs

Ya que procfs se encuentra saturado con una gran cantidad de información no relacionada con los procesos, se diseñó sysfs con el fin de exportar desde el espacio del kernel (Anillo 0) al espacio del usuario (Anillo 3) información sobre los dispositivos y sus controladores.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:log:logrotate?rev=1673629520&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-13T17:05:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>logrotate</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:log:logrotate?rev=1673629520&amp;do=diff</link>
        <description>logrotate

info

	*  &lt;https://atareao.es/ubuntu/rotado-de-logs-con-logrotate/&gt;
	*  &lt;https://www.digitalocean.com/community/tutorials/how-to-manage-logfiles-with-logrotate-on-ubuntu-16-04&gt;
	*  &lt;https://stackoverflow.com/questions/20162176/centos-linux-setting-logrotate-to-maximum-file-size-for-all-logs&gt;

cli

	*  ejecutar dry-run:
sudo logrotate /etc/logrorate.conf --debug

	*  ejecutar manualmente o un fichero concreto:
sudo logrotate &lt;FICHERO.CONF&gt;

	*  status del estado de rotado:
cat /var/lib…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-23T08:46:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>findimagedupes</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff</link>
        <description>findimagedupes

funcionamiento

	*  &lt;http://www.jhnc.org/findimagedupes/manpage.html&gt;

ejemplos

	*  muestra los fingerprints de las imágenes, ordenados para que los idénticos se muestren uno al lado de otro:
$ findimagedupes -R --verbosity=fingerprint --no-compare . | sort

	*  ejemplo utilización funciones y parámetro -i:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:pihole?rev=1751908394&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-07T17:13:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pi-hole</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:pihole?rev=1751908394&amp;do=diff</link>
        <description>pi-hole

setup

	*  &lt;https://pi-hole.net/&gt;
	*  
curl -sSL https://install.pi-hole.net | bash

	*  install log: /etc/pihole
	*  web-admin: &lt;http://&lt;ip&gt;/admin&gt;

tutorial instalación

	*  &lt;https://blog.cryptoaustralia.org.au/2018/08/06/instructions-for-setting-up-pi-hole/&gt;

comandos

	*  actualizar: 
sudo pihole -up

	*  reconfigurar: 
pihole -r

	*  cambiar password webadmin:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:10minutos?rev=1476137592&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-10T22:13:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>backup 10 minutos al día</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:10minutos?rev=1476137592&amp;do=diff</link>
        <description>backup 10 minutos al día

explicación

Mira en los directorioes asignados si ha habído cambios desde la última vez, si hay algún cambio, haceel backup completo, lo encripta y lo envía a un SFTP

Si no hay cambios, envía al SFTP un archivo SINCAMBIOS vacío.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:twitter?rev=1321985887&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-22T18:18:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Twitter desde linea de comando</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:twitter?rev=1321985887&amp;do=diff</link>
        <description>Twitter desde linea de comando


#!/bin/bash
#Twitter status update bot by http://360percents.com
#Author: Luka Pusic &lt;pusic93@gmail.com&gt;

#REQUIRED PARAMS
username=&quot;user@email.com&quot;
password=&quot;passw0rd&quot;
tweet=&quot;$*&quot; #must be less than 140 chars

#EXTRA OPTIONS
uagent=&quot;Mozilla/5.0&quot; #user agent (fake a browser)
sleeptime=0 #add pause between requests

if [ $(echo &quot;${tweet}&quot; | wc -c) -gt 140 ]; then
	echo &quot;[FAIL] Tweet must not be longer than 140 chars!&quot; &amp;&amp; exit 1
fi

touch &quot;cookie.txt&quot; #create a temp…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:43:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fichero .ssh/config</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff</link>
        <description>fichero .ssh/config

linux ssh

man page

fichero configuración conexión

para simplificar la conexión vía SSH con diferentes servidores, y en alternativa a crear alias de conexiones:

alias ssh-local-dns=&#039;ssh -v -i /home/mate/.ssh/pi@raspberry pi@192.168.1.60&#039;

se puede optar por crear el fichero de configuración de conexión (</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:proxy?rev=1700651687&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-22T11:14:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ssh proxy / socks</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:proxy?rev=1700651687&amp;do=diff</link>
        <description>ssh proxy / socks

socks proxy

navegador

	*  
ssh -N -D 9090 [USER]@[SERVER_IP]

	*  firefox:
	*  chrome:
		*  
/usr/bin/google-chrome --user-data-dir=&quot;$HOME/proxy-profile&quot; --proxy-server=&quot;socks5://localhost:9090&quot;


	*  /via: &lt;https://linuxize.com/post/how-to-setup-ssh-socks-tunnel-for-private-browsing/&gt;

descargas curl

ssh -D 8080 -f -C -q -N user@remote.host # establece canal
curl -x socks5h://0:8080 --remote-name --location https://example.com # descarga a través del remote.host
ssh -O exi…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:dns?rev=1767009585&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T11:59:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DNS</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:dns?rev=1767009585&amp;do=diff</link>
        <description>DNS

linux tcpip dns

related

	*  DNS y funcionamiento
	*  DNS: Resolución, progagación, limpieza
	*  dnsmasq
	*  bind9
	*  127.0.0.1 VS 127.0.1.1
	*  &lt;https://www.dns0.eu/&gt;
	*  &lt;https://one.one.one.one/&gt;

direct

	*  esbrinar qui gestiona les dades de xarxa (netplan)
	*  aplicar els canvis (networkmanager en desktops)

DNS populars

	*  Cloudflare DNS (1.1.1.1, 1.0.0.1)
	*  OpenDNS (208.67.222.222, 208.67.220.220)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:nikto2?rev=1329212031&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-14T09:33:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Escaner de vulnerabilidades nikto2</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:nikto2?rev=1329212031&amp;do=diff</link>
        <description>Escaner de vulnerabilidades nikto2

descarga

$ wget &lt;https://cirt.net/nikto/nikto-2.1.4.tar.gz&gt; --no-check-certificate

ejecución

parámetros:

	*  -h : host a escanear
	*  -port: puerto a escanear, por defecto el 80

ejemplo de salida


#./nikto.pl -h cau.eurocity.es
- Nikto v2.1.4
---------------------------------------------------------------------------
+ Target IP:          192.168.3.164
+ Target Hostname:    cau.eurocity.es
+ Target Port:        80
+ Start Time:         2012-02-15 09:34:1…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-19T08:02:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>find - fd</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff</link>
        <description>find - fd

&lt;https://github.com/sharkdp/fd&gt;

install


sudo apt install fd-find
sudo ln -s /usr/lib/cargo/bin/fd /usr/local/bin/fd


regexp

&lt;https://docs.rs/regex/latest/regex/#syntax&gt;

	*  por defecto
	*  ^: empieza
	*  $: acaba
	*  buscar -:
fd -- &#039;-pattern&#039;
fd &#039;[-]pattern&#039;


parámetros

	*  --ignore-case
		*  por defecto: todo minúsculas, no distingue. Si alguna mayúscula, distingue.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-05T12:53:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux ls</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff</link>
        <description>Linux ls

último acceso

Cuando estás copiando y el fichero guarda la fecha original de creación, pero quieres ver la fecha de último acceso

ls -lu --time=ctime

	*  --time=atime : updated when the file is read
	*  --time=birth : updated when the file contents change. This is the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:lsusb?rev=1668164344&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-11T10:59:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lsusb</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:lsusb?rev=1668164344&amp;do=diff</link>
        <description>lsusb

listar path de dispositivos:


#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
    (
        syspath=&quot;${sysdevpath%/dev}&quot;
        devname=&quot;$(udevadm info -q name -p $syspath)&quot;
        
        [[ &quot;$devname&quot; == &quot;bus/&quot;* ]] || [[ &quot;$devname&quot; == &quot;input/&quot;* ]] || [[ &quot;$devname&quot; == &quot;video0&quot;* ]] || exit
        
        eval &quot;$(udevadm info -q property --export -p $syspath)&quot;
        [[ -z &quot;$ID_SERIAL&quot; ]] &amp;&amp; exit
        
        busnum=&quot;$(udevadm info -a -p  $(udevad…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-22T12:50:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH expansion modifiers</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff</link>
        <description>ZSH expansion modifiers

	*  Variable transformations
	*  permite modificar una variable usando : en el formato ${VAR}
		*  u: uppercase
		*  l: lowercase
		*  q: quote
		*  Q: quita un nivel de comillas
		*  P: absolute path of file
		*  h: basename</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh?rev=1780418250&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-02T16:37:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>oh-my-zsh</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:oh-my-zsh?rev=1780418250&amp;do=diff</link>
        <description>oh-my-zsh

potenciador de zsh con temas y plugins : &lt;https://ohmyz.sh/&gt;

install

	*  sh -c &quot;$(wget &lt;https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh&gt; -O -)&quot;

más: &lt;https://www.howtoforge.com/tutorial/how-to-setup-zsh-and-oh-my-zsh-on-linux/&gt;

	*  chsh -s $(which zsh) : cambiar shell a mano si no lo hace automaticamente

config

	*  ~/.oh-my-zsh/tools/theme_chooser.sh

internal plugins

	*  dotenv</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/macintosh:filesystem:ntfs?rev=1678440172&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-10T09:22:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Leer y escribir NTFS en MACOSX</title>
        <link>https://miguelangel.torresegea.es/wiki/macintosh:filesystem:ntfs?rev=1678440172&amp;do=diff</link>
        <description>Leer y escribir NTFS en MACOSX

/via: &lt;http://www.applesfera.com/aplicaciones-os-x-1/leer-y-escribir-discos-en-formato-ntfs-en-os-x-lion-tres-opciones&gt;

opción gratuita

&lt;https://medium.com/macoclock/enabling-ntfs-write-in-macos-10-15-catalina-the-open-source-way-a5fd0d1cb32e&gt;

opción gratuita (OLD)

instalar en este orden:

	*  NTFS-3G
	*  OSXFUSE

opción de pago

	*  Paragon for NTFS: &lt;https://www.paragon-software.com/es/home/ntfs-mac/&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:utils:aria2?rev=1632683949&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-26T19:19:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>aria2</title>
        <link>https://miguelangel.torresegea.es/wiki/software:utils:aria2?rev=1632683949&amp;do=diff</link>
        <description>aria2

	*  &lt;https://aria2.github.io/&gt; : aria2, downloader CLI versatil (enlaces, .torrent, .magnet, varias fuentes)
		*  webui tutorial: &lt;https://freedif.org/webui-aria2-web-interface-for-the-download-accelerator-aria2/&gt;
		*  GUI interfacez:
			*  uget
			*  persepolis</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:utils:rhash?rev=1584951650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-23T08:20:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rhash</title>
        <link>https://miguelangel.torresegea.es/wiki/software:utils:rhash?rev=1584951650&amp;do=diff</link>
        <description>rhash

	*  calculo de diferentes tipos de hashes, con posibilidad de recursividad
	*  wiki: &lt;https://sourceforge.net/p/rhash/wiki/Home/&gt;
	*  página oficial: &lt;http://rhash.sourceforge.net/manpage.php&gt;

compilar

	*  git clone &lt;https://github.com/rhash/RHash.git&gt;
		*  ./configure &amp;&amp; sudo make install -&gt; no carga la librería dinámica
		*  ./configure &amp;&amp; make build-static</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:utils:tightvnc?rev=1631284439&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-10T14:33:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tightvnc (linux)</title>
        <link>https://miguelangel.torresegea.es/wiki/software:utils:tightvnc?rev=1631284439&amp;do=diff</link>
        <description>Tightvnc (linux)

bitacora

	*  desktop environments installed: ls -l /usr/share/xsessions
	*  current desktop: echo $XDG_CURRENT_DESKTOP
		*  screenfetch

	*  install/remove:
		*  &lt;https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-20-04-es&gt;
		*  &lt;https://www.answertopia.com/ubuntu/ubuntu-remote-desktop-access-with-vnc/&gt;
		*  sudo apt-get purge tightvncserver

	*  vnc
		*  vncserver -kill :1</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:utils:trans?rev=1588371044&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-01T22:10:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>translate shell</title>
        <link>https://miguelangel.torresegea.es/wiki/software:utils:trans?rev=1588371044&amp;do=diff</link>
        <description>translate shell

install


wget git.io/trans
chmod +x ./trans


git: &lt;https://github.com/soimort/translate-shell&gt;

use

	*  trans
		*  [ -b | -brief ]
		*  [ -I | -shell ]
		*  [ -s | -source &lt;LANG_CODE&gt; ] : source language
		*  [ -t | -target &lt;LANG_CODE&gt; ] : target language
		*  [ -p | -play ] : plays translate</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/software:vsc:start?rev=1587711130&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-24T06:52:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>visual studio code</title>
        <link>https://miguelangel.torresegea.es/wiki/software:vsc:start?rev=1587711130&amp;do=diff</link>
        <description>visual studio code

tricks

	*  acceso a settings -&gt; rueda dentada (abajo, izquierda) -&gt; settings
	*  problema visualización font-powerline en terminal:
{
&quot;terminal.integrated.fontFamily&quot;: &quot;Menlo for Powerline&quot;,
}

		*  /via: &lt;https://dev.to/mattstratton/making-powerline-work-in-visual-studio-code-terminal-1m7&gt;

	*  mostrar carácteres ocultos:code json; settings.json&gt;{</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tcpip:ip:ipv6colt?rev=1324481433&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-12-21T15:30:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IPv6 Colt</title>
        <link>https://miguelangel.torresegea.es/wiki/tcpip:ip:ipv6colt?rev=1324481433&amp;do=diff</link>
        <description>IPv6 Colt

Documentación de Colt

	*  
	*  &lt;https://labs.ripe.net/Members/gih/dual-stack-esotropia&gt;
	*  &lt;https://www.networkworld.com/news/2011/120911-usenix-google-deploys-ipv6-for-253949.html?source=NWWNLE_nlt_network_systems_2011-12-12&gt;

Otra documentación

	*  &lt;http://datatracker.ietf.org/doc/rfc4057/?include_text=1&gt;
	*  &lt;http://datatracker.ietf.org/doc/rfc4852/?include_text=1&gt;
	*  &lt;http://datatracker.ietf.org/doc/rfc4942/?include_text=1&gt;
	*  &lt;https://labs.ripe.net/Members/steffann/preparing…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:docker:volumes?rev=1585355244&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-28T00:27:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>docker volumes</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:docker:volumes?rev=1585355244&amp;do=diff</link>
        <description>docker volumes

/via: &lt;https://docs.docker.com/storage/volumes/&gt;


	*  bind mount: montaje clásico con -v sobre una estructura de directorios
	*  tmpfs mount: almacenar data no persistente
	*  volume:
		*  gestionado desde cli docker
		*  trasversal al OS


--volume o --mount

	*  desde la versión 17.06</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:git:start?rev=1776329482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-16T08:51:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GIT</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:git:start?rev=1776329482&amp;do=diff</link>
        <description>GIT

devops info

related

comandos

cursos

+ info

	*  git repo server
	*  Anotaciones curso GIT
	*  Crear repositorio de solo lectura (para algunos)

cheatsheet

	*  &lt;https://github.com/arslanbilal/git-cheat-sheet/blob/master/other-sheets/git-cheat-sheet-es.md&gt;
	*  
	*   ·  · 
	*  
	*  
	*  
	*  &lt;https://education.github.com/git-cheat-sheet-education.pdf&gt;
		*  

	*  
	*  &lt;https://nvie.com/posts/a-successful-git-branching-model/&gt;

doc

	*  &lt;https://git-scm.com/book/es/v2&gt;
	*  &lt;https://esparta.…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:terraform:cli?rev=1749562274&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-10T13:31:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Terraform cli</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:terraform:cli?rev=1749562274&amp;do=diff</link>
        <description>Terraform cli

básicos

	*  init : Initialize a new or existing Terraform configuration
	*  validate : Validates the Terraform files
	*  plan : Generate and show an execution plan
	*  fmt : Rewrites config files to canonical format
	*  apply : Builds or changes infrastructure</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:terraform:start?rev=1749563482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-10T13:51:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TERRAFORM</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:terraform:start?rev=1749563482&amp;do=diff</link>
        <description>TERRAFORM

devops info

	*  terraform AWS
	*  terraform azure

documentación

	*  Terraform cli
	*  terraform variables
	*  resources
	*  Terraform state
	*  terraform data source
	*  terraform modules

PoC

	*  Terraform workspace

related

enlaces documentación

	*  0.12: &lt;https://www.terraform.io/docs/configuration/index.html&gt;
	*  0.11: &lt;https://www.terraform.io/docs/configuration-0-11/interpolation.html: interpolación (referenciar variables, atributos de recursos, llamar funciones)&gt;

de inte…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:apache:cli?rev=1675931719&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-09T08:35:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Línea de Comando con Apache</title>
        <link>https://miguelangel.torresegea.es/wiki/web:apache:cli?rev=1675931719&amp;do=diff</link>
        <description>Línea de Comando con Apache

apachectl

	*  start/stop -&gt; arrancar y parar daemon (service httpd start/stop/restart)
	*  configtest -&gt; comprobar configuración (/etc/init.d/httpd configtest o apachectl configtest )
	*  graceful -&gt; recargar la configuración en caliente</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:apache:htpasswd?rev=1730366682&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-31T09:24:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>.htpasswd</title>
        <link>https://miguelangel.torresegea.es/wiki/web:apache:htpasswd?rev=1730366682&amp;do=diff</link>
        <description>.htpasswd

es el fichero donde se ponen las relaciones de usuario y contraseña.

generar

AuthType Basic

	*  &lt;http://www.htaccesstools.com/htpasswd-generator/&gt;
	*  &lt;http://httpd.apache.org/docs/2.0/es/howto/auth.html&gt; &lt;- habría que mirar tema de grupos
	*  $ htpasswd &lt;opciones&gt; &lt;passfile&gt; &lt;user&gt; &lt;password&gt;
		*  opciones:
			*  -c crea un nuevo fichero, ojo, sobreescribe si existe uno con ese nombre</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:account:migraralocal?rev=1722081750&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-27T12:02:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Windows: migrar cuenta microsoft a cuenta local</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:account:migraralocal?rev=1722081750&amp;do=diff</link>
        <description>Windows: migrar cuenta microsoft a cuenta local

	*  Crear disco para restablecer contraseña: &lt;https://support.microsoft.com/es-es/windows/crear-un-disco-para-restablecer-la-contrase%C3%B1a-para-una-cuenta-local-en-windows-9a54a5ca-27bc-de72-244a-27b7d62951de&gt;

original

You can use the Settings app to switch your Microsoft account to a local account.

Important: Microsoft recommends using a Microsoft account, not a local account, when signing in to Windows. Using a Microsoft account in Windows …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:prog:vbasic?rev=1509272124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-10-29T10:15:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>visual basic</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:prog:vbasic?rev=1509272124&amp;do=diff</link>
        <description>visual basic

anotaciones de Núria Trias


Public Sub ConnectToAccess()
    Dim conn As New System.Data.OleDb.OleDbConnection()
    conn.ConnectionString = &amp; _ &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data source=&quot; &amp; _ &quot;C:\Documents and Settings\username\My Documents\dbFile.mdb&quot;
    Try
        conn.Open()
    Catch ex As Exception
        MessageBox.Show(&quot;Failed to connect to data source&quot;)
    Finally
        conn.close()
    End Try
End Sub</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/windows:w10:wsl?rev=1601650951&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-02T15:02:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WSL (Windows Subsystem for Linux)</title>
        <link>https://miguelangel.torresegea.es/wiki/windows:w10:wsl?rev=1601650951&amp;do=diff</link>
        <description>WSL (Windows Subsystem for Linux)
&lt;https://github.com/microsoft/vscode-docs/blob/master/remote-release-notes/v1_42.md#wsl&gt;
info + setup

	*  &lt;https://docs.microsoft.com/en-us/windows/wsl/about&gt;
	*  &lt;https://docs.microsoft.com/en-us/windows/wsl/install-win10&gt;

install from cli

	*  descarga desde powershell
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.appx -UseBasicParsing

	*  descarga desde CURL
curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:java:frameworks:swing?rev=1526807723&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-05-20T09:15:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Framework Swing</title>
        <link>https://miguelangel.torresegea.es/wiki/development:java:frameworks:swing?rev=1526807723&amp;do=diff</link>
        <description>Framework Swing

JFileChooser

	*  &lt;http://www.codejava.net/java-se/swing/show-simple-open-file-dialog-using-jfilechooser&gt;
	*  &lt;http://www.codejava.net/java-se/swing/add-file-filter-for-jfilechooser-dialog&gt;

java framework</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/hardware:moviles:info:datos?rev=1498474372&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-26T10:52:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Glosario de términos relacionados con Datos y Móviles</title>
        <link>https://miguelangel.torresegea.es/wiki/hardware:moviles:info:datos?rev=1498474372&amp;do=diff</link>
        <description>Glosario de términos relacionados con Datos y Móviles

	*  Portadora = método de comunicación para el transporte de datos
	*  GSM = Global System for Mobile
	*  GPRS = General Packet Radio Service
		*  más velocidad que GSM

	*  3G = UMTS
	*  Banda ancha 3G</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:edx:uc3m_ciberseguridad?rev=1607382461&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-07T23:07:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Fundamentos de Ciberseguridad: un enfoque práctico</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:edx:uc3m_ciberseguridad?rev=1607382461&amp;do=diff</link>
        <description>Fundamentos de Ciberseguridad: un enfoque práctico

	*  &lt;https://courses.edx.org/courses/course-v1:IDB_UC3Mx+IDB_UC3M.1x+3T2020/course/&gt;
	*  &lt;https://courses.edx.org/assets/courseware/v1/e2e5e05b94bada38666ba48f87885b87/asset-v1:IDB_UC3Mx+IDB_UC3M.1x+3T2020+type@asset+block/Guia_aprendizaje_MOOC_Ciberseguridad_2ed.pdf&gt;

Semana 1

	*  TRIM: eliminación bloques (128 páginas) en SSD
		*  periódico
		*  constante

	*  exiftool
	*  xxd
	*  scalpel: &lt;https://github.com/machn1k/Scalpel-2.0&gt;
		*  recupe…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1?rev=1709549553&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T10:52:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Curso python (PCPP1) PUE 2023</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1?rev=1709549553&amp;do=diff</link>
        <description>Curso python (PCPP1) PUE 2023

python

	*  Jordi Ariño
		*  jordi.arino@pue.es
		*  jordiAS2K@gmail.com

	*  Plataforma: EDUBE
	*  Recursos
		*  Referencia:&lt;https://docs.python.org/3/reference/index.html&gt;
		*  Librerías: &lt;https://docs.python.org/3/library/index.html&gt;
		*  funciones built-in: &lt;https://docs.python.org/3/library/functions.html&gt;
		*  PEP8: &lt;https://peps.python.org/pep-0008/&gt;
		*  Paquetes: &lt;https://pypi.org/&gt;


PCPP1 / M1 | Advanced Perspective of Classes and Object-Oriented Program…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent_rutorrent?rev=1608803427&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-24T09:50:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rtorrent+rutorrent en contenedor</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:rtorrent_rutorrent?rev=1608803427&amp;do=diff</link>
        <description>rtorrent+rutorrent en contenedor

instalacion rtorrent+rutorrent

	*  crear estructura de directorios:

mkdir -p data/downloads/completo
mkdir -p data/config


	*  copiar ficheros de configuración (extraidos de propio contenedor y modificados a conveniencia):</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/tech:docker:dockerd:remote-tls?rev=1586591719&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-11T07:55:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dockerd remote tls access</title>
        <link>https://miguelangel.torresegea.es/wiki/tech:docker:dockerd:remote-tls?rev=1586591719&amp;do=diff</link>
        <description>dockerd remote tls access

via

	*  &lt;https://docs.docker.com/engine/security/https/&gt;
	*  &lt;https://nickjanetakis.com/blog/docker-tip-73-connecting-to-a-remote-docker-daemon&gt;
	*  &lt;https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd&gt;
	*  &lt;https://medium.com/@ssmak/how-to-enable-docker-remote-api-on-docker-host-7b73bd3278c6&gt;

setup

	*  pretendemos «asegurar» la conexión con el dockerd de manera que solo los clientes con certificado firmado por la misma CA que el servidor p…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:wildcard?rev=1781024432&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-09T17:00:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Let&#039;s Encrypt wildcard</title>
        <link>https://miguelangel.torresegea.es/wiki/web:security:letsencrypt:wildcard?rev=1781024432&amp;do=diff</link>
        <description>Let&#039;s Encrypt wildcard

lets_encrypt

info

	*  &lt;https://www.jesusamieiro.com/generar-un-certificado-ssl-wildcard-con-lets-encrypt/&gt;
		*  &lt;https://www.whatsmydns.net/&gt;
		*  &lt;https://dnschecker.org/#TXT/_acme-challenge.fidmag.org&gt; 
		*  &lt;https://mxtoolbox.com/SuperTool.aspx?action=txt%3a_acme-challenge.example.com&amp;run=toolpage#&gt;

	*  &lt;https://redeslinux.net/guia-completa-pfsense-con-ddns-de-cloudflare-certificados-lets-encrypt-y-haproxy-para-proxy-inverso-y-balanceo-de-carga-de-servicios/&gt;
	*  &lt;h…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/development:php:codeigniter:v4:model?rev=1780907507&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-06-08T08:31:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CodeIgniter v4 Model</title>
        <link>https://miguelangel.torresegea.es/wiki/development:php:codeigniter:v4:model?rev=1780907507&amp;do=diff</link>
        <description>CodeIgniter v4 Model

codeigniter

	*  conexión automática a BDD
	*  métodos CRUD básicos
	*  permite extender de otros modelos

instanciar


// Create a new class manually.
$userModel = new \App\Models\UserModel();

// Create a shared instance of the model.
$userModel = model(&#039;UserModel&#039;);
// or
$userModel = model(&#039;App\Models\UserModel&#039;);
// or
$userModel = model(\App\Models\UserModel::class);

// Create a new class with the model() function.
$userModel = model(&#039;UserModel&#039;, false);

// Create s…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:contenedores?rev=1582790161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-27T07:56:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>trabajando con contenedores</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:contenedores?rev=1582790161&amp;do=diff</link>
        <description>trabajando con contenedores

	*  docker info
	*  docker ps
		*  -a muestra todos los contenedores

	*  docker run hello-world
	*  docker search debian
	*  docker pull debian : si no se especifica, se descarga la latest, que además es la que se va actualizando</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:dockerfile?rev=1546512279&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-03T10:44:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Dockerfile</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:dockerfile?rev=1546512279&amp;do=diff</link>
        <description>Dockerfile

fichero de scripting para generar un contenedor
docker build -t &lt;nombre&gt; .: genera una nueva imagen con repositorio &lt;tag&gt;
vagrant rsync : sincroniza el directorio «compartido» entre el host y la imagen vagrantTambién se puede lanzar un proceso vagrant rsync-auto que se encarga de ir haciendo este proceso automaticamente</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:instalacion?rev=1530799677&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-07-05T14:07:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>instalación</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:altran:docker:instalacion?rev=1530799677&amp;do=diff</link>
        <description>instalación

	*  windows y mac levantan máquinas virtuales con linux
	*  docker toolbox (boot2docker)
		*  docker cli
		*  docker machine
		*  docker compose (desarrollo)
		*  kinematic = herramienta HORROROSA, GUI para gestión de contenedores
		*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:busca-nfs?rev=1534331242&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-15T11:07:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:busca-nfs?rev=1534331242&amp;do=diff</link>
        <description>#!/bin/sh

# variables
RANGO=&quot;192.168.30&quot;
N_COPIAS=3
MI_IP=`ip route | awk &#039;/link/ {print $9}&#039;`      # awk hace de grep, con /link/ &quot;matcha&quot; la linea y elimina el CR


for hosts in `nmap -sP $RANGO.1-254 2&gt;/dev/null | grep &quot;appears to be up&quot; | awk &#039;{print $2}&#039;`
do
	RESULT=`rpcinfo -u $hosts nfs 2&gt;/dev/null | grep -c &quot;listo y a la espera&quot;`
	if [ &quot;$RESULT&quot; -eq &quot;1&quot; ]; then
#		echo -n &quot;NFS Responde $hosts&quot;
		ISMOUNTHERE=`showmount -e $hosts | grep -c &quot;^/home/vpn &quot;`
		if [ &quot;$ISMOUNTHERE&quot; -eq &quot;1&quot; ]; t…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:copia-remotos?rev=1534331267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-15T11:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:lpic2:scripts:copia-remotos?rev=1534331267&amp;do=diff</link>
        <description>#!/bin/bash -x

# copia mi backup en máquinas remotas.

# variables
RANGO=&quot;192.168.30&quot;
N_COPIAS=3
MI_IP=`ip route | awk &#039;/link/ {print $9}&#039;`	# awk hace de grep, con /link/ &quot;matcha&quot; la linea y elimina el CR-LF

# funciones
conecta() 
{
	echo &#039;*******************************&#039;
	echo $1
	echo &#039;*******************************&#039;

	mkdir /mnt/temporal
	mount -t nfs $1:/home/backups /mnt/temporal

	if [ -f &quot;/mnt/temporal/hostname.txt&quot; ]; then
		NOMBRE=`cat /mnt/temporal/hostname.txt`
		# desmonto el dire…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:mate:seguretat-informatica:ciberseguretat?rev=1741766358&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-12T07:59:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ciberseguretat</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:mate:seguretat-informatica:ciberseguretat?rev=1741766358&amp;do=diff</link>
        <description>ciberseguretat

información

	*  estar informados
		*  &lt;https://www.redeszone.net/&gt; - Tienen una subsección especializada en seguridad. Muy activo.
		*  &lt;https://blog.segu-info.com.ar/&gt; - Argentino, muy activo.
		*  &lt;https://thehackerway.com/&gt; - Español, premiado como mejor blog técnico europeo en 2021 en la categoría de ciberseguridad.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap1?rev=1544014404&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-05T12:53:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 1 : Introduction</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap1?rev=1544014404&amp;do=diff</link>
        <description>Chapter 1 : Introduction

	*  Compass -&gt; GUI for MondoDB
	*  Database names : collections and documents
		*  collections ≅ tables
		*  documents / objects ≅ registros
		*  namespace = &lt;database&gt;.&lt;collection&gt;

	*  Datasets
		*  schema
		*  documents</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap2?rev=1544811667&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-14T18:21:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 2 : The MongoDB Query Language + Atlas</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap2?rev=1544811667&amp;do=diff</link>
        <description>Chapter 2 : The MongoDB Query Language + Atlas

CRUD

	*  Create
	*  Read
	*  Update
	*  Delete

Installing the mongo Shell

Compass no cobre toda las opciones que da MongoDB

windows

	*  download center
	*  instalar MongoDB Server versión enterprise (soporte</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap3?rev=1544897816&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-15T18:16:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 3: Deeper Dive on the MongoDB Query Language</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m001:cap3?rev=1544897816&amp;do=diff</link>
        <description>Chapter 3: Deeper Dive on the MongoDB Query Language

comparison query operators

extras

	*  &lt;https://docs.mongodb.com/manual/reference/operator/query/&gt;
	*  &lt;https://docs.mongodb.com/manual/reference/operator/query-comparison/&gt;
	*  

operators

	*  $eq, $ne : igual y no-igual
	*  $gt, $gte : mayor y mayor-igual
	*  $lt, $lte : menor y menor-igual
	*  $in, $nin : en array y no-en array</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m040:cap0?rev=1547492891&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-14T19:08:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Chapter 0: An Introduction to the MongoDB 4.0 Release</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:mongodbuniversity:m040:cap0?rev=1547492891&amp;do=diff</link>
        <description>Chapter 0: An Introduction to the MongoDB 4.0 Release

Welcome

Course logistics

Setup Virtual Machine for labs

Lab: Start Up a Replica Set</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion4?rev=1637929348&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-26T12:22:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sesión 4 : swarm (ELK+TIG)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion4?rev=1637929348&amp;do=diff</link>
        <description>Sesión 4 : swarm (ELK+TIG)

resumen


docker ps
docker ps -f name=ep_devops_mysql.1
docker ps -f name=ep_devops_mysql.1 -q
docker exec -ti $(docker ps -f name=ep_devops_mysql.1 -q ) /bin/bash
docker logs $(docker ps -f name=ep_devops_mysql.1 -q ) 
docker logs -f $(docker ps -f name=ep_devops_mysql.1 -q )</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion6?rev=1551531889&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-02T13:04:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sesión 6 : ansible</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion6?rev=1551531889&amp;do=diff</link>
        <description>Sesión 6 : ansible

ansible

become


- name: servicio
  service:
    name: httpd
    state: started
  become: yes



- name: servicio
  service:
    name: httpd
    state: started
  become: yes
  become_user: apache


adduser


- hosts: all
  tasks:
    - include: add-user-debian.yaml
      when: ansible_os_family == &#039;Debian&#039;
    - include: add-user-redhat.yaml
      when: ansible_os_family == &#039;RedHat&#039;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion8?rev=1586354266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-08T13:57:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sesión 8 : kubernetes</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion8?rev=1586354266&amp;do=diff</link>
        <description>Sesión 8 : kubernetes

devops cursos k8s

katacoda

	*  &lt;https://www.katacoda.com/&gt;
	*  CoreDNS : DNS simple para trabajar como editando /etc/hosts y lo que no, a google

kubernetes

	*  master
		*  todo a través de la API
		*  etcd (lo que más se muere en entorno multimaster)
			*  en algunos casos pierde la coherencia, no se replica, hay que borrar los ficheros de etcd del nodo</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion11?rev=1553283933&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-22T19:45:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sesión 11 Jenkins</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops:sesion11?rev=1553283933&amp;do=diff</link>
        <description>Sesión 11 Jenkins

big data (Cloudera)



	*  MapReduce -&gt; Spark
		*  MapReduce : repartir la carga entre X servidores que no tengan colisiones y meterlo en un lugar común
		*  Hive : SQL to MapReduce
		*  Pig : lenguaje para no SQL (pero que se le parece tanto</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s6?rev=1646840614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-09T15:43:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 6 (2022-02-28) k8s</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s6?rev=1646840614&amp;do=diff</link>
        <description>DevOps Sesión 6 (2022-02-28) k8s

Documentación relacionada

lab1

	*  2-Despliegue de Aplicaciones Kubernetes/1-Laboratorio kubernetes Curso-DevOps.txt
	*  2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios  Kubernetes 2020.pdf, pág 20
	*  2-Despliegue de Aplicaciones Kubernetes/2-Laboratorios basicos kubernetes .pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s11?rev=1647883387&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-21T17:23:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DevOps Sesión 11 (2022-03-16) Ansible</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:devops2022:s11?rev=1647883387&amp;do=diff</link>
        <description>DevOps Sesión 11 (2022-03-16) Ansible

Documentación relacionada

	*  ./4-Topic 704 Configuration Management
	*  ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf
	*  ./Material Curso Ansible/Introduccion Ansible.txt
	*  ./Material Curso Ansible/Curso Ansible 2020.pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras?rev=1740146057&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T13:54:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ethical Hacker : extras</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras?rev=1740146057&amp;do=diff</link>
        <description>Ethical Hacker : extras

ProxMox

	*  &lt;https://www.proxmox.com/en/downloads&gt;
		*  &lt;https://pve.proxmox.com/wiki/Developer_Workstations_with_Proxmox_VE_and_X11&gt;
		*  Almacenamiento:
			*  &lt;https://raspberryparatorpes.net/compras/uasp-aprovechar-al-maximo-discos-usb/&gt;
			*  2TB USB Externo + carcasas:
				*  Kingspec 2TB M.2 SSD 2280 NVMe PCIe
				*  FIDECO Carcasa M.2 NVMe SSD, 10Gbps Carcasa SSD M2, USB 3.2 Gen 2 Caja Disco Duro para SSD M.2 NVMe PCIe M Key B+M Key, Diseño de Sándwich, Instalaci…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2?rev=1740124310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-21T07:51:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ethical Hacker : sesión 2</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion2?rev=1740124310&amp;do=diff</link>
        <description>Ethical Hacker : sesión 2

	*  Ethical Hacker : sesión 2

clase

	*  ASPEN
		*  Modulo 06 - System Hacking
		*  Modulo 07 - Malware
		*  Modulo 08 - Sniffing


Modulo 06, apuntes

Modulo 06 - System Hacking

sección 1

	*  hash
		*  linux con salt
			*  tail -n 1 /etc/shadow | cut -f2 -d: | tr</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s7?rev=1663570072&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-19T06:47:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LPIC2 2021 Sesión 7 (2021-02-23) - raid, networking</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s7?rev=1663570072&amp;do=diff</link>
        <description>LPIC2 2021 Sesión 7 (2021-02-23) - raid, networking

Documentación relacionada:

	*  Manual Certificacion LPIC-2.pdf, pag 72
	*  Material Practicas LPIC-2/LPIC-201/4-Filesystem and Devices/1-Gestión Avanzada de Discos.pdf
	*  Material Practicas LPIC-2/LPIC-201/4-Filesystem and Devices/3-</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s13?rev=1615927023&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-16T20:37:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LPIC2 2021 Sesión 13 (2021-03-16)</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:lpic2-2021:s13?rev=1615927023&amp;do=diff</link>
        <description>LPIC2 2021 Sesión 13 (2021-03-16)

Documentación relacionada:

	*  Manual Certificacion LPIC-2.pdf, pag XX
	*  Material Practicas LPIC-2/LPIC-202/
	*  Presentaciones/2020/202/
	*  gdrive://

Clase

PAM

	*  DOC: Material Practicas LPIC-2/LPIC-202/6-Network Client Management/Modulos de autenticacion con conexion (PAM)/Presentacion PAM.pdf</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:playbooks?rev=1537343658&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-19T07:54:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>playbooks</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:udemy:ansible:playbooks?rev=1537343658&amp;do=diff</link>
        <description>playbooks

2.11 introducción Playbooks

	*  lista de jugadas (tareas) en una lista de servidores
	*  configuraciones y variables
	*  formato YAML:
---
- name: Mi primer playbook
  hosts: all
  remote_user: &lt;usuario&gt;
  become: true # a nivel de playbook, se podría hacer a nivel de tarea
  tasks:
    - name: copiar ficheros hosts
      copy: src=/etc/hosts dest=/etc/host
    - name: ...
      service: ...</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:pip?rev=1656606177&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-30T16:22:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modulo 1 (intermedio): PIP</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:netacad:python:pe2m1:pip?rev=1656606177&amp;do=diff</link>
        <description>Modulo 1 (intermedio): PIP

El Ecosistema de Paquetes de Python y cómo usarloPython es un instrumento muy poderoso; esperamos que ya lo hayas experimentado. Muchas personas de todo el mundo se sienten así y usan Python de forma regular para desarrollar lo que pueden hacer en muchos campos de actividad completamente diferentes. Esto significa que Python se ha convertido en</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara?rev=1740564797&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-26T10:13:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara Extras</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:extras:sincara?rev=1740564797&amp;do=diff</link>
        <description>Apuntes SinCara Extras

Titulares/Resumen del curso

	*  Logística del curso
		*  Este curso trata de tener una visión 360º de la ciberseguridad. Si quereis profundizar en algún tema, lo leeis con más calma, una vez sacada la certificación
		*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:sincara?rev=1740559016&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-26T08:36:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Apuntes SinCara sesion 3</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:ethical-hacker:sesion3:sincara?rev=1740559016&amp;do=diff</link>
        <description>Apuntes SinCara sesion 3

Modulo 09

	*  El ser humano es el eslabón más débil de la cadena de la ciberseguridad
		*  &lt;https://www.xataka.com/robotica-e-ia/ai-pin-ha-llegado-a-sus-primeros-usuarios-conclusiones-horripilantes&gt; - AI Pin
		*  &lt;https://www.incibe.es/protege-tu-empresa/blog/luchando-ingenieria-social-el-firewall-humano&gt; - El Firewall Humano - La cadena de la ciberseguridad será tan fuerte como su eslabón más débil.

	*  La importancia de tus datos personales:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.7?rev=1703765167&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T12:06:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.7 Visiting widgets’ properties</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.7?rev=1703765167&amp;do=diff</link>
        <description>1.7 Visiting widgets’ properties

Widget properties

As you already know, every widget has a set of properties, and the widget’s user is able to change them by modifying the widget’s appearance and behavior. We’ll show you how to manipulate properties and present a basic set of the most usable widget properties.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.8?rev=1703788552&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T18:35:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1.8 Interacting with widget methods</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:1.8?rev=1703788552&amp;do=diff</link>
        <description>1.8 Interacting with widget methods

Widget methods

Widgets have methods – you’ve met some of them already. Now we’re going to show you a few more of them, and we’ll start with two which seem to be very specific. We can even say that the sense of their existence is very closely bound to the unique features of</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.1?rev=1703790579&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T19:09:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2.1 A small lexicon of widgets - Part 1</title>
        <link>https://miguelangel.torresegea.es/wiki/info:cursos:pue:python-pcpp1:m3:2.1?rev=1703790579&amp;do=diff</link>
        <description>2.1 A small lexicon of widgets - Part 1

A small lexicon of widgets

Now we’re ready to present a systematized set of some of the tkinter widgets. We aren’t able to describe all of them, however – it would bloat our course to an unmanageable size. We’re convinced that our collection is large enough to make you familiar with</description>
    </item>
</rdf:RDF>
