<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bitácora Linuxera on LinuxmanR4</title><link>https://linuxmanr4.com/categories/bitacora-linuxera/</link><description>Recent content in Bitácora Linuxera on LinuxmanR4</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>LinuxmanR4</copyright><lastBuildDate>Tue, 02 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://linuxmanr4.com/categories/bitacora-linuxera/index.xml" rel="self" type="application/rss+xml"/><item><title>Buscando la bandeja de trámites en miregistrocivil.gob.mx</title><link>https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/</guid><description>&lt;img src="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/bandeja-de-tramites-id.webp" alt="Featured image of post Buscando la bandeja de trámites en miregistrocivil.gob.mx" />&lt;p>Se agradece la intención de acercar ciertos documentos del registro civil a la gente, bueno lo cobran pero se agradece.&lt;/p>
&lt;p>El problema es que los sitios web están tan mal diseñados que crean confusiones y pérdida de tiempo.&lt;/p>
&lt;p>Existe el sitio &lt;a class="link" href="https://miregistrocivil.gob.mx" target="_blank" rel="noopener"
>MiRegistroCivil.gob.mx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es el lugar oficial para hacer este tipo de trámites. Se que suena a sitio pirata, pero es lo que hay.&lt;/p>
&lt;p>Digamos que quiere obtener un &lt;strong>acta de nacimiento&lt;/strong>, tiene su cuenta LlaveMX, la CURP y paga el documento.&lt;/p>
&lt;p>Pero si llega a ocurrir algo, se le fue el Internet, presionó algo que no debía, se distrajo tantito ¿Dónde quedó la actita?&lt;/p>
&lt;p>Y es que yo veo varios problemas.&lt;/p>
&lt;h2 id="dos-botones-de-inicio">Dos botones de inicio
&lt;/h2>&lt;p>El primer problema que veo es que hay 2 botones de inicio.&lt;/p>
&lt;p>Uno con el sello del águila federal con la leyenda &lt;strong>Gobierno de México&lt;/strong>, bueno pues ese &lt;strong>NO&lt;/strong> es el bueno.&lt;/p>
&lt;p>El bueno es uno que dice &lt;strong>ATDT&lt;/strong> ¿Qué significa &lt;strong>ATDT&lt;/strong>? Lo ignoro, pero ese es el que nos lleva a buen término.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/atdt.webp"
width="530"
height="255"
srcset="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/atdt_hu_a99026ed086778e9.webp 480w, https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/atdt_hu_fead1c747bb5cc87.webp 1024w"
loading="lazy"
alt="ATDT ???"
class="gallery-image"
data-flex-grow="207"
data-flex-basis="498px"
>&lt;/p>
&lt;p>Y es que este es el otro problema, si presiona el que dice &lt;strong>Gobierno de México&lt;/strong> al hacer clic en su nombre de usuario le aparecerá un menú que solo tiene dos opciones &lt;strong>HOME&lt;/strong> y &lt;strong>CERRAR SESIÓN&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-gob-mx.webp"
width="1440"
height="795"
srcset="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-gob-mx_hu_8e9ae7ed37df16be.webp 480w, https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-gob-mx_hu_b3e0a67558b141ec.webp 1024w"
loading="lazy"
alt="Este menú prácticamente solo sirve para cerrar la sesión."
class="gallery-image"
data-flex-grow="181"
data-flex-basis="434px"
>&lt;/p>
&lt;p>Ahora si hace clic en el botón &lt;strong>ATDT&lt;/strong> (que por cierto, no parece botón) el menú que muestra es totalmente diferente.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-atdt.webp"
width="1440"
height="793"
srcset="https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-atdt_hu_4321390933690d35.webp 480w, https://linuxmanr4.com/p/buscando-la-bandeja-de-tramites-miregistrocivil/menu-atdt_hu_e929a836b5d67424.webp 1024w"
loading="lazy"
alt="Este es el bueno."
class="gallery-image"
data-flex-grow="181"
data-flex-basis="435px"
>&lt;/p>
&lt;p>Ahí está la &lt;strong>bandeja de trámites&lt;/strong> que estamos buscando, le va a mostrar los documentos que ha pagado y ofrece la opción de descargarlos. Y ya en su computadora le recomiendo que los guarde muy bien.&lt;/p>
&lt;h2 id="dos-menús-distintos">Dos menús distintos.
&lt;/h2>&lt;p>Como pueden ver, tener dos botones de inicio para dos sitios distintos y con menús diferentes genera bastante confusión.&lt;/p>
&lt;p>Lo ideal sería dejar solo uno. Se puede mantener el enlace al sitio del Gobierno Federal, pero no en un lugar tan visible y prioritario.&lt;/p>
&lt;p>La mayoría estamos acostumbrados a que el botón de inicio nos lleve al HOME del sitio actual, no a otra página con un diseño, opciones y funcionamiento distinto.&lt;/p>
&lt;p>Tomen nota. A ver con qué nueva ocurrencia de diseño nos salen mañana.&lt;/p></description></item><item><title>Probando NUMA: un DNS local ultrarrápido y fácil de usar</title><link>https://linuxmanr4.com/p/numa-dns-cache/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/numa-dns-cache/</guid><description>&lt;img src="https://linuxmanr4.com/p/numa-dns-cache/numa-id.webp" alt="Featured image of post Probando NUMA: un DNS local ultrarrápido y fácil de usar" />&lt;p>Hace un par de semanas me encontré (creo que fue en twitter) con Numa, un DNS local rápido y pequeño hecho con Rust.&lt;/p>
&lt;p>Para empezar, no es la primera vez que instalo un DNS local en mi equipo para hacer más rápidas las consultas hacia un DNS.&lt;/p>
&lt;p>Lea usted por ejemplo &lt;a class="link" href="https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/" >dnsmasq como servidor local de DNS&lt;/a>
o &lt;a class="link" href="https://linuxmanr4.com/2013/07/12/instalando-un-dns-cache-en-manjaro/" >pdnsd, un DNS Caché en Manjaro&lt;/a>
&lt;/p>
&lt;p>Pero es la primera vez que me encuentro con un programa que hace la resolución de dominios, bloquea sitios indeseables y además lo hace rápido y prácticamente si tocar nada.&lt;/p>
&lt;h2 id="qué-es-numa">¿Qué es NUMA?
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/razvandimescu/numa" target="_blank" rel="noopener"
>Numa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un servidor DNS recursivo y local escrito en &lt;a class="link" href="https://rust-lang.org/es/" target="_blank" rel="noopener"
>Rust&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que permite gestionar resolución DNS moderna desde una sola aplicación ligera. El proyecto está orientado a usuarios avanzados, homelabs y entornos self-hosted.&lt;/p>
&lt;p>Entre sus características más interesantes se encuentran:&lt;/p>
&lt;ul>
&lt;li>Resolver DNS recursivo propio&lt;/li>
&lt;li>Validación DNSSEC&lt;/li>
&lt;li>DNS over HTTPS (DoH)&lt;/li>
&lt;li>DNS over TLS (DoT)&lt;/li>
&lt;li>Bloqueo de anuncios integrado&lt;/li>
&lt;li>HTTPS automático para servicios locales&lt;/li>
&lt;li>Descubrimiento de servicios en LAN&lt;/li>
&lt;li>Configuración rápida mediante QR para teléfonos&lt;/li>
&lt;li>Funcionamiento como binario único sin dependencias complejas&lt;/li>
&lt;/ul>
&lt;p>Uno de los objetivos del proyecto es evitar tener que combinar múltiples herramientas como Pi-hole, Unbound, dnsmasq, AdGuard Home y certificados TLS separados.&lt;/p>
&lt;h2 id="ventajas">Ventajas
&lt;/h2>&lt;p>Lo que me gusta de Numa es que es muy sencillo de instalar y prácticamente no he tenido que cambiar nada en la configuración.&lt;/p>
&lt;p>Para instalarlo en Manjarlo lo hice desde AUR:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">yay -S numa-git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y para echarlo a andar:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo numa install
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso es más que suficiente para activarlo como un servicio dentro de systemd y de ahí en adelante cargará cada vez que se inicie.&lt;/p>
&lt;p>Al abrir &lt;code>http://numa.numa&lt;/code> aparecerá el panel de control.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/numa-dns-cache/numa-dashboard-dark.webp"
width="1439"
height="764"
srcset="https://linuxmanr4.com/p/numa-dns-cache/numa-dashboard-dark_hu_692c6fd2043c99ed.webp 480w, https://linuxmanr4.com/p/numa-dns-cache/numa-dashboard-dark_hu_ac64577a66cdc9e6.webp 1024w"
loading="lazy"
alt="El panel de control de Numa"
class="gallery-image"
data-flex-grow="188"
data-flex-basis="452px"
>&lt;/p>
&lt;p>Con esto podemos comprobar que esta activo y resolviendo las solicitudes.&lt;/p>
&lt;p>Otra cosa que me gusta mucho es el bloqueo automático de anuncios integrado. Utiliza unas listas de bloqueo &lt;a class="link" href="https://github.com/hagezi/dns-blocklists" target="_blank" rel="noopener"
>HaGeZi dns blocklist&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que funciona bastante bien (a veces demasiado bien).&lt;/p>
&lt;p>Y lo mejor para mí es que es personal. Puedo hacer los cambios y ajustes que necesito sin afectar la configuración global de mi red.&lt;/p>
&lt;h2 id="desventajas">Desventajas
&lt;/h2>&lt;p>Pues es un proyecto joven, por lo tanto, es normal que tenga sus &lt;em>bugs&lt;/em> y las actualizaciones son frecuentes. En cada actualización el proyecto se compila y todo eso consume tiempo, pero no es un tema grave.&lt;/p>
&lt;p>Otro detalle es que el filtro a veces bloquea de más y aunque en ciertas ocasiones le indico que ciertos dominios los deje pasar no hay un mensaje de error claro al respecto. Además las autorizaciones duran hasta el próximo reinicio.&lt;/p>
&lt;p>Probablemente me ha faltado leer más la documentación, pero no hay mucha, son los inconvenientes de un proyecto que apenas comienza.&lt;/p>
&lt;h2 id="mi-experiencia-con-numa">Mi experiencia con Numa
&lt;/h2>&lt;p>En general mi experiencia ha sido buena. No tengo queja con respecto a la velocidad en la resolución de dominios y el proceso ocupa unos más que razonables 25 MB en memoria.&lt;/p>
&lt;p>Mientras no tenga un problema serio o aparezca una opción mejor seguirá trabajando en mi equipo.&lt;/p>
&lt;p>¿Y ustedes que opinan? ¿Lo conocían? ¿Que herramienta similar conocen?&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Si sé a qué dedicas tu tiempo, entonces sabré que será de tí&amp;rdquo; - &lt;a class="link" href="https://es.wikipedia.org/wiki/Johann_Wolfgang_von_Goethe" target="_blank" rel="noopener"
>Johann Wolfgang von Goethe&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>&lt;/blockquote></description></item><item><title>Algo pasó y tu PIN ya no esta disponible</title><link>https://linuxmanr4.com/p/lenovo-bios-pin/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/lenovo-bios-pin/</guid><description>&lt;img src="https://linuxmanr4.com/p/lenovo-bios-pin/something-happened-id.webp" alt="Featured image of post Algo pasó y tu PIN ya no esta disponible" />&lt;p>Me trajeron una laptop Lenovo con Windows 11 para instalarle &lt;a class="link" href="https://es.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Le expliqué a mi usuario las ventajas de instalar un software de oficina gratuito y legal y accedió. Y es que desde que el office cambió de producto a servicio ya no es lo mismo.&lt;/p>
&lt;p>La verdad me da miedo descargar una de esas &amp;ldquo;herramientas&amp;rdquo; que instalan Microsoft Office y que muy probablemente traen su &amp;ldquo;regalito&amp;rdquo;.&lt;/p>
&lt;p>De pasada usé la herramienta &lt;a class="link" href="https://github.com/christitustech/winutil" target="_blank" rel="noopener"
>Windows Utility&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Chris Titus para quitarle algo de carga a la computadora que ahora funciona como un recolector de información.&lt;/p>
&lt;p>En fin, todo funcionó sin problemas, aligeré la carga del equipo, se instaló LibreOffice y ya al final, vi una notificación de un programita de Lenovo que me avisaba de una actualización del BIOS. Y me dije, pues va&amp;hellip;&lt;/p>
&lt;h2 id="esa-actualización-del-bios-">Esa actualización del BIOS 🤦‍♂️
&lt;/h2>&lt;p>Actualizar el BIOS no debería de ser algo problemático. Sólo hay que tener cuidado de no interrumpir el proceso.&lt;/p>
&lt;p>Pues la actualización se completó, el equipo arrancó, pero ohhh oohhhh, apareció este mensaje de error:&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/lenovo-bios-pin/setup-my-pin.webp"
width="1180"
height="523"
srcset="https://linuxmanr4.com/p/lenovo-bios-pin/setup-my-pin_hu_c66709ec607b64d4.webp 480w, https://linuxmanr4.com/p/lenovo-bios-pin/setup-my-pin_hu_41e67e7ce5fcc9fc.webp 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="225"
data-flex-basis="541px"
>&lt;/p>
&lt;p>&lt;em>&amp;ldquo;Something happened and your PIN isn&amp;rsquo;t available. Click to set up your PIN again.&amp;rdquo;&lt;/em>&lt;/p>
&lt;p>Intenté presionando &lt;em>Set up my PIN&lt;/em> pero no hacía nada.&lt;/p>
&lt;p>Redmond, tenemos un problema.&lt;/p>
&lt;h2 id="de-quién-es-la-culpa-de-lenovo-o-de-microsoft">¿De quién es la culpa? ¿De Lenovo o de Microsoft?
&lt;/h2>&lt;p>Investigué el problema y me di cuenta de que es un problema muy común (maaaal, muy mal Microsoft).&lt;/p>
&lt;p>Revisé algunos videos en YouTube, sobre como solucionarlo, entrar a modos seguros, editar valores del registro, pero me quedé a la mitad del camino.&lt;/p>
&lt;p>No pude entrar a la partición C porque ¿Qué creen? tenía otra capa de seguridad y no pude entrar.&lt;/p>
&lt;p>Seguí investigando y dí con este hilo en los foros de Lenovo: &lt;a class="link" href="https://forums.lenovo.com/t5/Gaming-Laptops/After-BIOS-update-can-t-able-to-login-windows/m-p/5382736" target="_blank" rel="noopener"
>After BIOS update, can&amp;rsquo;t able to login windows&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Lamentablemente, no había una respuesta o solución por parte del fabricante (maaaaal, muy mal Lenovo)&lt;/p>
&lt;p>La actualización del BIOS movió algo en algún valor de seguridad almacenado y no quedó más remedio que formatear el equipo y reinstalar todo.&lt;/p>
&lt;h2 id="microsoft-y-las-cuentas-locales">Microsoft y las cuentas locales
&lt;/h2>&lt;p>En lo personal odio con odio jarocho eso de tener obligatoriamente una cuenta de Microsoft para poder instalar Windows. Y no soy el único, aunque parece que ya hay algo de luz al final del camino.&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="en" dir="ltr">Working on this is part of my new job! Even more to come &lt;a href="https://t.co/cXknynVNOi">https://t.co/cXknynVNOi&lt;/a>&lt;/p>&amp;mdash; Scott Hanselman 🌮 (@shanselman) &lt;a href="https://twitter.com/shanselman/status/2035098855109533829?ref_src=twsrc%5Etfw">March 20, 2026&lt;/a>&lt;/blockquote> &lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8">&lt;/script>
&lt;p>Hasta el momento he logrado sortear este requisito con una opción que aparece en &lt;a class="link" href="https://rufus.ie/es/" target="_blank" rel="noopener"
>Rufus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para directamente crear una cuenta local.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/lenovo-bios-pin/rufus-windows-user-experience.png"
width="1178"
height="657"
srcset="https://linuxmanr4.com/p/lenovo-bios-pin/rufus-windows-user-experience_hu_d0b56047ffe35de1.png 480w, https://linuxmanr4.com/p/lenovo-bios-pin/rufus-windows-user-experience_hu_149e7ecedb9e8843.png 1024w"
loading="lazy"
alt="Estas opciones son una joya ¡Gracias Rufus!"
class="gallery-image"
data-flex-grow="179"
data-flex-basis="430px"
>&lt;/p>
&lt;p>Si Microsoft escuchara a sus usuarios haría algo parecido, pero todos sabemos que esto no pasará.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Punto malo para Lenovo, una actualización del BIOS no debería de provocar este tipo de problemas.&lt;/p>
&lt;p>Punto malo para Microsoft, a lo largo de la historia ha promovido medidas que dificultan la instalación de Linux con opciones de &amp;ldquo;seguridad&amp;rdquo; y que el login deje de funcionar por una actualización del BIOS no es aceptable.&lt;/p>
&lt;p>Para todo esto hay una solución muy simple, instale y use Linux.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Problemas al crear una USB con Medicat, no recordaba que fuera tan complicado</title><link>https://linuxmanr4.com/p/medicatusb-ntfs/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/medicatusb-ntfs/</guid><description>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/medicat-linux-id.webp" alt="Featured image of post Problemas al crear una USB con Medicat, no recordaba que fuera tan complicado" />&lt;p>Creo que muchos de los que nos dedicamos a esto de las computadoras hemos usado alguna vez &lt;a class="link" href="https://medicatusb.com/" target="_blank" rel="noopener"
>MedicatUSB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y aunque no soy fan de los gatos, tengo que reconocer que tiene una buena colección de programas para solucionar un gran abanico de problemas.&lt;/p>
&lt;p>Pues bien, hace poco tuve que sacrificar mi memoria USB que ya tenía configurada con Medicat para poder instalar un Windows 11. Al parecer a Microsoft ya no le gustó mi anterior memoria de 8 GB y reclamaba más espacio.&lt;/p>
&lt;p>La USB que uso con Medicat es de 64 GB así que después de un suspiro le di matarili con &lt;a class="link" href="https://rufus.ie/es/" target="_blank" rel="noopener"
>Rufus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
total, luego la vuelvo a crear y san se acabó.&lt;/p>
&lt;p>Pero no todo es fácil en esta vida. Cuando terminé de instalar Windows y quise recuperar mi anterior configuración todo se complicó demasiado.&lt;/p>
&lt;h2 id="más-lento-que-un-caracol">Más lento que un caracol
&lt;/h2>&lt;p>La verdad ya había pasado mucho tiempo desde la última vez que hice una usb con Medicat, así que hice lo que cualquier mortal haría, revisé las instrucciones nuevamente desde el sitio oficial y descargué el script de instalación.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/installer-script-medicat.webp"
width="980"
height="266"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/installer-script-medicat_hu_46aab0aaa23778b7.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/installer-script-medicat_hu_7312232e4d2381b0.webp 1024w"
loading="lazy"
alt="Si uso Linux, pues descargo Linux"
class="gallery-image"
data-flex-grow="368"
data-flex-basis="884px"
>&lt;/p>
&lt;p>Y todo parecía funcionar bien&amp;hellip; aparentemente&lt;/p>
&lt;p>Entendamos un poco como funciona.&lt;/p>
&lt;p>El script lo que hace es instalar &lt;a class="link" href="https://linuxmanr4.com/2024/09/21/probando-ventoy-en-manjaro-linux/" >Ventoy&lt;/a>
y luego copia el contenido del mega archivo &lt;strong>MediCat.USB.v21.12.7z&lt;/strong> (la última versión) de 21 GB a la otra partición disponible de la USB.&lt;/p>
&lt;p>El manual dice que debe de ser una partición NTFS.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/usb-partition-ntfs.webp"
width="856"
height="451"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/usb-partition-ntfs_hu_81cfedd65d4db27e.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/usb-partition-ntfs_hu_e26a3075a5bddf4c.webp 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="189"
data-flex-basis="455px"
>&lt;/p>
&lt;p>Y así lo hice, después de todo tiene sentido. Se van a almacenar archivos de gran tamaño y una partición con FAT no permite archivos más grandes de 4GB.&lt;/p>
&lt;p>Hasta aquí perfecto, pero descomprimir el mega archivo simplemente no terminaba. Llegó a tomar más de 8 horas para lograr un avance del 88% y la verdad no me parecía para tanto.&lt;/p>
&lt;p>Llegué a pensar que mi USB estaba dañada, pero lo descarté casi de inmediato. La acababa de utilizar para instalar Windows 11 y sin problemas.&lt;/p>
&lt;p>Después de dos intentos fallidos tomé las cosas con calma y decidí hacer las cosas paso a paso.&lt;/p>
&lt;h2 id="qué-estaba-fallando">¿Qué estaba fallando?
&lt;/h2>&lt;p>No había error, simplemente el proceso era abusivamente lento. Así que decidí irme por partes.&lt;/p>
&lt;p>Tengo Ventoy instalado en mi equipo, así que lo primero que hice fue instalarlo en la USB y todo perfecto.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/ventoy-funcionando.webp"
width="794"
height="586"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/ventoy-funcionando_hu_a536727ca07f0d72.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/ventoy-funcionando_hu_40c9a316260407cc.webp 1024w"
loading="lazy"
alt="Ventoy instalado ✅"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="325px"
>&lt;/p>
&lt;h2 id="ntfs-vs-exfat">NTFS vs exFAT
&lt;/h2>&lt;p>Quité NTFS, no estoy seguro de que sea la falla, pero cuando se usan cosas de Microsoft todo se alenta. Así que me decanté por &lt;a class="link" href="https://es.wikipedia.org/wiki/ExFAT" target="_blank" rel="noopener"
>exFAT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que si, bueno también lo desarrolló Microsoft, pero a estas alturas esta mucho mejor soportado por el kernel de Linux.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/exfat.webp"
width="850"
height="686"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/exfat_hu_a59e5de439a69b13.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/exfat_hu_c5ea323aeac3a74a.webp 1024w"
loading="lazy"
alt="Partición exFAT ✅"
class="gallery-image"
data-flex-grow="123"
data-flex-basis="297px"
>&lt;/p>
&lt;p>Ahora solo faltaba copiar los archivos.&lt;/p>
&lt;p>Descomprimí el archivo 7z de Medicat en una carpeta local, claro que luego la borraría para ahorrar espacio y copié los archivos a la USB usando &lt;a class="link" href="https://linuxmanr4.com/tags/rsync/" target="_blank" rel="noopener"
>rsync&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y oiga usteeeee ¡Que diferencia!&lt;/p>
&lt;h2 id="pasará-lo-mismo-con-el-script-de-windows">¿Pasará lo mismo con el script de Windows?
&lt;/h2>&lt;p>El objetivo estaba cumplido, probé mi nueva USB de Medicat y todo funcionaba correctamente.&lt;/p>
&lt;p>Le dí un vistazo al script de instalación que es bastante interesante por cierto.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer.webp"
width="753"
height="478"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer_hu_175a0cb62bddf821.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer_hu_f69cd85728f9bfdb.webp 1024w"
loading="lazy"
alt="La línea problemática"
class="gallery-image"
data-flex-grow="157"
data-flex-basis="378px"
>&lt;/p>
&lt;p>Al parecer el proceso es simple, crea una carpeta, hace un montaje de esa carpeta a la partición NTFS de la USB y lo descomprime.&lt;/p>
&lt;p>No veo errores, salvo la lentitud de la descompresión.&lt;/p>
&lt;p>Parece que hicieron cambios recientemente, porque al final del script había toda una sección comentada.&lt;/p>
&lt;p>Y curiosamente me encontré el script que usé en el 2024 y encontré algunas diferencias&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer-2024.webp"
width="757"
height="486"
srcset="https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer-2024_hu_aa46876ab097d473.webp 480w, https://linuxmanr4.com/p/medicatusb-ntfs/7z-script-installer-2024_hu_cb2f01edd9c95a88.webp 1024w"
loading="lazy"
alt="¿Notan la diferencia?"
class="gallery-image"
data-flex-grow="155"
data-flex-basis="373px"
>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">colEcho &lt;span class="nv">$cyanB&lt;/span> &lt;span class="s2">&amp;#34;Mounting Medicat NTFS volume...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo mount &lt;span class="nv">$drive2&lt;/span> ./MedicatUSB -t ntfs3
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A estas alturas ya resolví el problema, pero me da curiosidad si ese &lt;code>-t ntfs3&lt;/code> tiene algo que ver.&lt;/p>
&lt;p>En fin, será para la próxima.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Aquellos que renuncian a la libertad esencial para comprar un poco de seguridad temporal no merecen ni la libertad ni la seguridad.&amp;rdquo;&lt;/p>&lt;span class="cite">&lt;span>― &lt;/span>&lt;span>Benjamín Franklin&lt;/span>&lt;cite>&lt;/cite>&lt;/span>&lt;/blockquote></description></item><item><title>Exit code 128 al actualizar con yay</title><link>https://linuxmanr4.com/p/exit-code-128-yay/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/exit-code-128-yay/</guid><description>&lt;img src="https://linuxmanr4.com/p/exit-code-128-yay/exit-code-128-yay.webp" alt="Featured image of post Exit code 128 al actualizar con yay" />&lt;p>No hay nada peor que tener problemas de conexión a internet durante una actualización.&lt;/p>
&lt;h2 id="el-problema">El problema
&lt;/h2>&lt;p>La semana he tenido varios problemas de estos, básicamente por problemas eléctricos. Desafortunadamente tuve que cancelar algunas actualizaciones y eso me acarreo algunos problemas.&lt;/p>
&lt;p>Verán, después de volver a intentar una actualización con &lt;em>yay&lt;/em> me aparecieron varios errores similares a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">-&amp;gt; error descargando tailwindcss-bin: fatal: no es un repositorio git (ni ninguno de los directorios superiores): .git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> context: exit status 128
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error descargando minify: fatal: no es un repositorio git (ni ninguno de los directorios superiores): .git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> context: exit status 128
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al parecer, si se interrumpe el proceso se corrompe la descarga de los archivos usando git y bueno, todo se descompone.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Para solucionarlo, basta con eliminar los archivos del caché para volverlos a descargar.&lt;/p>
&lt;p>Por lo general yo eliminó todo el caché para evitar problemas usando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">rm -rf ~/.cache/yay/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Se reintenta la actualización y listo.&lt;/p>
&lt;h2 id="bonus-tip">Bonus tip
&lt;/h2>&lt;p>Algunos programas se compilan desde la fuente y el proceso puede consumir muchos recursos.&lt;/p>
&lt;p>Estoy haciendo algunas pruebas con el comando &lt;em>nice&lt;/em> para evitar que el proceso ralentice las demás aplicaciones que estoy usando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nice -n 19 yay
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/p/exit-code-128-yay/yay-htop.webp"
width="1440"
height="838"
srcset="https://linuxmanr4.com/p/exit-code-128-yay/yay-htop_hu_3d8ea42c99ccdb47.webp 480w, https://linuxmanr4.com/p/exit-code-128-yay/yay-htop_hu_b41d3023b80d3d57.webp 1024w"
loading="lazy"
alt="Usando nice para que no acapare recursos."
class="gallery-image"
data-flex-grow="171"
data-flex-basis="412px"
>&lt;/p>
&lt;p>&lt;em>nice&lt;/em> se usa para asignar una prioridad (o &amp;ldquo;niceness&amp;rdquo;) a un proceso al momento de iniciarlo. Esto influye en cuánto tiempo de CPU le da el kernel al proceso comparado con los demás.&lt;/p>
&lt;p>Los valores de n van desde &lt;strong>-20&lt;/strong> (máxima prioridad) a &lt;strong>19&lt;/strong> (prioridad mínima).&lt;/p></description></item><item><title>Sustituir la batería de un no break</title><link>https://linuxmanr4.com/p/sustituir-bateria-nobreak/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/sustituir-bateria-nobreak/</guid><description>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/pinguino-probando-baterias.webp" alt="Featured image of post Sustituir la batería de un no break" />&lt;p>Mantener los equipos encendidos todo el tiempo puede suponer todo un reto. Yo no aspiro a tanto. Me conformo con evitar daños en los equipos.&lt;/p>
&lt;p>En varias ocasiones, alguna computadora se ha negado en arrancar después de un apagón. No es frecuente, pero tampoco es raro.&lt;/p>
&lt;p>Una computadora encendida a lo largo de varios años supone un desgaste electrónico. Con un poco de suerte, el mayor problema será la &lt;a class="link" href="https://linuxmanr4.com/2014/07/11/probar-una-fuente-de-poder/" >fuente de poder&lt;/a>
. Se arregla o se reemplaza y a seguir trabajando.&lt;/p>
&lt;p>En el peor de los casos, un daño en la &lt;em>motherboard&lt;/em> y ahí si la cosa ya se puede poner complicada. Lo mejor es buscar la mejor protección del equipo possible.&lt;/p>
&lt;p>Mi no break favorito es de la marca Tripplite, funciona bastante bien y por un memento intenté estandarizar comprando sólo esta marca y el modelo &lt;strong>Internet 350U&lt;/strong>.&lt;/p>
&lt;p>Durante 3 o 4 años todo bien, hasta que un buen día ocurre un apagón y te das cuenta de que el No Break ni siquiera hizo el intento por mantenerse en pie y ¡Zas! apago todo el equipo y te dejó sin poder guardar todas esas modificaciones al archivo de Calc de &lt;strong>LibreOffice&lt;/strong> (&lt;em>inserte un grito amortiguado aquí por favor&lt;/em>).&lt;/p>
&lt;h2 id="llegó-el-momento-de-reemplazar-la-batería">Llegó el momento de reemplazar la batería
&lt;/h2>&lt;p>Bueno, pues tarde o temprano será necesario reemplazar la batería por una nueva.&lt;/p>
&lt;p>Hacerlo no es complicado, un par de tornillos y se tiene acceso al interior del no break. Retirarla, colocar la nueva y listo, pero no siempre las cosas son tan fáciles.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-ups-tripplite.webp"
width="3868"
height="2901"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-ups-tripplite_hu_985e6268f9fcbeb0.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-ups-tripplite_hu_f04a4c8b1c6d5e94.webp 1024w"
loading="lazy"
alt="Esta es la batería original del no break."
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>Y no, no es conseguir una con las mismas especificaciones eléctricas, nooo señor, el problema es conseguir una con las mismas dimensions físicas para que quepa sin problemas en el interior del no break.&lt;/p>
&lt;p>Por ejemplo, para el No break Tripplite Internet 360U le queda una batería &lt;a class="link" href="https://batterymaster.com/producto/ps-1230-vds-fr-2/" target="_blank" rel="noopener"
>Power Sonic PS-1230&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que a veces se consigue, pero otras no.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/PS1230-VDS-FR.webp"
width="1080"
height="693"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/PS1230-VDS-FR_hu_e2446d3386ee1950.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/PS1230-VDS-FR_hu_47a4d4c3953f85c9.webp 1024w"
loading="lazy"
alt="La Power Sonic PS-1230 se ajusta perfectamente"
class="gallery-image"
data-flex-grow="155"
data-flex-basis="374px"
>&lt;/p>
&lt;p>Si no se consigue este modelo en particular, pues a echar mano de la inventiva. Bien dicen que la necesidad es la madre de la invención y no queda más que echar mano de las famosas &lt;em>&amp;ldquo;mexicanadas&amp;rdquo;&lt;/em>.&lt;/p>
&lt;p>Me encontré con el modelo &lt;a class="link" href="https://www.steren.com.mx/bateria-sellada-de-acido-plomo-12-vcc-4-ah.html" target="_blank" rel="noopener"
>BR-1204&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de la marca Steren que tiene más o menos las mismas especificaciones eléctricas, pero que ni de broma cabe en el interior, pero haciendo extensions eléctricas funciona.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/BR-1204.webp"
width="2152"
height="2864"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/BR-1204_hu_333bc1d60842cd70.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/BR-1204_hu_5384c8671372efe1.webp 1024w"
loading="lazy"
alt="Lo bueno de Steren es que está en todos lados."
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
>&lt;/p>
&lt;p>Hacer esto no lo recomendaría en un no break de usuario. Pero si lo que se quiere proteger está en un cuartito que funciona como cuarto de servidores, por mi no hay problema.&lt;/p>
&lt;p>Además evita desarmar el no break, basta con apagar, reemplazar y listo ¡A los pits!&lt;/p>
&lt;h2 id="reemplazo-con-baterías-de-litio-hierro-fosfato">Reemplazo con baterías de Litio Hierro Fosfato.
&lt;/h2>&lt;p>Ahora, hasta aquí hice reemplazos usando baterías selladas de &lt;strong>ácido plomo&lt;/strong> de toda la vida. Y no esta mal, pero me dí a la tarea de investigar si había mejores opciones.&lt;/p>
&lt;p>Y para eso están las inteligencias artificiales. ChatGPT me mostró las bondades de las baterías de &lt;strong>Litio Hierro Fosfato&lt;/strong> o &lt;strong>LiFePO₄&lt;/strong> que no son pocas.&lt;/p>
&lt;h3 id="seguridad-térmica-elevada">Seguridad térmica elevada
&lt;/h3>&lt;ul>
&lt;li>Química más estable que otras baterías de litio (p. ej., NMC).&lt;/li>
&lt;li>Menor riesgo de &lt;strong>thermal runaway&lt;/strong> (fuga térmica).&lt;/li>
&lt;li>Mejor comportamiento ante sobrecarga o daño mecánico.&lt;/li>
&lt;/ul>
&lt;h3 id="vida-útil-prolongada">Vida útil prolongada
&lt;/h3>&lt;ul>
&lt;li>2,000 a 6,000+ ciclos al 80% DoD (según fabricante y uso).&lt;/li>
&lt;li>En aplicaciones estacionarias pueden superar 10 años.&lt;/li>
&lt;li>Pérdida de capacidad más lenta que en Li-ion convencionales.&lt;/li>
&lt;/ul>
&lt;h3 id="mayor-profundidad-de-descarga-dod">Mayor profundidad de descarga (DoD)
&lt;/h3>&lt;ul>
&lt;li>Admiten descargas frecuentes del 80–100% sin degradación acelerada.&lt;/li>
&lt;li>Mejor aprovechamiento de la capacidad nominal.&lt;/li>
&lt;/ul>
&lt;h3 id="estabilidad-química">Estabilidad química
&lt;/h3>&lt;ul>
&lt;li>No contienen cobalto.&lt;/li>
&lt;li>Menor degradación por altas temperaturas (dentro de rango operativo).&lt;/li>
&lt;li>Voltaje nominal estable (~3.2 V por celda).&lt;/li>
&lt;/ul>
&lt;h3 id="eficiencia-energética">Eficiencia energética
&lt;/h3>&lt;ul>
&lt;li>Eficiencia de carga/descarga típica &amp;gt;95%.&lt;/li>
&lt;li>Baja resistencia interna → mejor rendimiento bajo carga.&lt;/li>
&lt;/ul>
&lt;h3 id="menor-mantenimiento">Menor mantenimiento
&lt;/h3>&lt;ul>
&lt;li>No requieren igualación frecuente como baterías de plomo-ácido.&lt;/li>
&lt;li>Integración común con BMS (Battery Management System).&lt;/li>
&lt;/ul>
&lt;h3 id="peso-y-densidad-energética">Peso y densidad energética
&lt;/h3>&lt;ul>
&lt;li>Más ligeras que plomo-ácido (~50–70% menos peso).&lt;/li>
&lt;li>Densidad energética menor que NMC, pero adecuada para aplicaciones estacionarias y movilidad ligera.&lt;/li>
&lt;/ul>
&lt;p>Y para colmo, el precio estaba más que razonable. Sólo un poco más caras que las de ácido plomo. Así valía totalmente la pena correr el riesgo.&lt;/p>
&lt;h3 id="primeras-impresiones">Primeras impresiones
&lt;/h3>&lt;p>Me encontré una &lt;a class="link" href="https://www.amazon.com.mx/THISSENERGYSYSTEM-LiFePO4-incorporada-mantenimiento-almacenamiento/dp/B0FDL1XQBR?ufe=app_do%3Aamzn1.fos.ecf8ea6b-8840-4b28-821b-333c5ba4275b" target="_blank" rel="noopener"
>promoción en Amazon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de 2 baterías por poco más de 800 pesos (recuerden que el precio cambia todo el tiempo).&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/oferta-baterias-amazon.webp"
width="1161"
height="543"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/oferta-baterias-amazon_hu_38c86d77d675e362.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/oferta-baterias-amazon_hu_fbd7500eb5f3cc83.webp 1024w"
loading="lazy"
alt="Ofertas irresistibles"
class="gallery-image"
data-flex-grow="213"
data-flex-basis="513px"
>&lt;/p>
&lt;p>Cuando llegó el paquete creí que me habían estafado. Y es que la diferencia de peso entre las de ácido-plomo y estas es abismal. Parece que están vacías.&lt;/p>
&lt;p>Pero después de comprobar su voltaje con el multímetro respiré aliviado.&lt;/p>
&lt;p>Hice el cambio pertinente en un no break de pruebas, dejé que cargara todo un día y luego probé quitando de manera controlada la corriente y revisando si aguantaba y la respuesta es que ¡Funciona!&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/uptime.webp"
width="465"
height="45"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/uptime_hu_276a2ab83014dab2.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/uptime_hu_dc573c02e1ba6114.webp 1024w"
loading="lazy"
alt="Uptime de 18 días y contando"
class="gallery-image"
data-flex-grow="1033"
data-flex-basis="2480px"
>&lt;/p>
&lt;p>Por el momento cumplen su cometido, solo falta por averiguar si duran más de 5 años, si lo logran me daré por bien servido.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-lifepo4-funcionando.webp"
width="1200"
height="1600"
srcset="https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-lifepo4-funcionando_hu_5c3e9beded5171cb.webp 480w, https://linuxmanr4.com/p/sustituir-bateria-nobreak/bateria-lifepo4-funcionando_hu_1e1115aa496c174d.webp 1024w"
loading="lazy"
alt="Batería de LiFePO4 instalada y funcionando"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
>&lt;/p>
&lt;p>¿Ustedes que opinan?&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Decir la verdad no es ofensa&amp;rdquo;
&lt;em>escuchado en una de las mañaneras de la Presidenta Claudia Shamebaum&lt;/em>&lt;/p>&lt;span class="cite">&lt;span>― &lt;/span>&lt;span>Reyna Haydee Ramírez - Reportera Independiente, &lt;/span>&lt;a href="https://x.com/rynram">&lt;cite>@rynram&lt;/cite>&lt;/a>&lt;/span>&lt;/blockquote></description></item><item><title>Buscando distribuciones Linux de 32 bits para mi netbook</title><link>https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/</guid><description>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/buscando-linux-32bits.webp" alt="Featured image of post Buscando distribuciones Linux de 32 bits para mi netbook" />&lt;p>La última vez que abri mi lapita Acer ya presentaba algunos problemas. Quería
explorar nuevas distribuciones Linux que hicieran cuando menos utilizable este
equipo.&lt;/p>
&lt;p>Tenía que encontrar una distribución muy ligera, de 32 bits que todavía
este activa. Por ejemplo, Manjaro, mi distribución de Linux favorita ya no tiene una versión de 32 bits.&lt;/p>
&lt;p>Haciendo una breve investigación ChatGPT me recomendó 3 opciones interesantes.&lt;/p>
&lt;h2 id="antix-ligero-pero-feo-de-a-montones">AntiX: Ligero, pero feo de a montones
&lt;/h2>&lt;p>Mi paso por &lt;a class="link" href="https://antixlinux.com/" target="_blank" rel="noopener"
>AntiX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
fue demasiado breve. Logré instalarlo
sin mucho problema y efectivamente es una distribución de Linux ligera, pero no
logré adaptarme bien.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux.webp"
width="799"
height="599"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux_hu_f79d00653c067b89.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux_hu_a5fc2fec88b3d932.webp 1024w"
loading="lazy"
alt="AntiX Linux"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>Con el fin de hacerlo ligero le faltan muchas cosas, se ve como una distribución incompleta, como que le faltan cosas.&lt;/p>
&lt;p>Lo que si de plano agrega una complejidad totalmente innecesaria es el programa que utiliza para configurar una red Wifi.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux-wifi.webp"
width="798"
height="599"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux-wifi_hu_ab6ea432f6c252ad.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/antix-linux-wifi_hu_f8aaca6218837a42.webp 1024w"
loading="lazy"
alt="Configurar una red WiFi no es fácil"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="319px"
>&lt;/p>
&lt;p>Al final uno logra echarla a andar, después de buscar un par de videos en YouTube donde lo explican, pero que necesidad hay de eso.&lt;/p>
&lt;p>Para ser sincero, uno se puede adaptar si es totalmente necesario, pero decidí dejarla en el cajón y continuar con las demás participantes.&lt;/p>
&lt;h2 id="bodhi-linux-bonito-pero">Bodhi Linux: Bonito, pero
&lt;/h2>&lt;p>Hace mucho tiempo había probado &lt;a class="link" href="https://www.bodhilinux.com/" target="_blank" rel="noopener"
>Bodhi Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que sigue recibiendo actualizaciones.&lt;/p>
&lt;p>Visualmente tiene un aspecto muy cuidado, pero la personalización puede suponer un reto. En buena parte por el entorno &lt;a class="link" href="https://www.enlightenment.org/" target="_blank" rel="noopener"
>Enlightenment&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que ya tiene su buena cantidad de años dentro del mundo linuxero.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/bodhi-linux.webp"
width="800"
height="599"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/bodhi-linux_hu_2a27fefc54967153.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/bodhi-linux_hu_35cb2ca41e7a5a5b.webp 1024w"
loading="lazy"
alt="Bodhi Linux"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>En lo personal creo que el escritorio por default de Enlightenment ya esta bastante pulido y no eran necesarios esos ajustes de identidad por parte de Bodhi, pero para gustos colores.&lt;/p>
&lt;p>Si quieres invertirle una buena cantidad de tiempo para dejar esta distribución a tu gusto puede ser una opción.&lt;/p>
&lt;h2 id="q4os-muy-windowsoso-pero-funcional">Q4OS: Muy windowsoso, pero funcional
&lt;/h2>&lt;p>Nunca había escuchado esta distribución, &lt;a class="link" href="https://q4os.org/" target="_blank" rel="noopener"
>Q4OS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
esta basada en Debian y tiene versiones tanto de 32 como de 64 bits.&lt;/p>
&lt;p>Es la única que no tiene una versión live, al arrancar pasa directamente al instalador.&lt;/p>
&lt;p>Un detalle curioso, al hacer pruebas con VirtualBox detectó automáticamente que se encontraba virtualizado y se ofreció a instalar las &lt;em>Guest Additions&lt;/em> ¡Nada mal!&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-guest-additions.webp"
width="1281"
height="785"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-guest-additions_hu_3a2d1c49bcb28427.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-guest-additions_hu_49b146503809a254.webp 1024w"
loading="lazy"
alt="¿VirtualBox? No problema “amigou”"
class="gallery-image"
data-flex-grow="163"
data-flex-basis="391px"
>&lt;/p>
&lt;p>Pero les advierto, mi lapita pujo varias horas en dejar todo a punto. La pobre hace mucho que no sentía tanto rigor.&lt;/p>
&lt;p>La instalación base se llevo su tiempo. Luego al elegir un perfil de uso le di la opción de &lt;em>full&lt;/em> y pues a descargar más programas y otras 2 horas con el disco duro a tope.&lt;/p>
&lt;p>Pero creo que valió la pena.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-pantalla-de-bienvenida.webp"
width="1440"
height="782"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-pantalla-de-bienvenida_hu_a7fbddcb2e3f162e.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-pantalla-de-bienvenida_hu_37f5648835e173a5.webp 1024w"
loading="lazy"
alt="Q4OS Pantalla de Bienvenida"
class="gallery-image"
data-flex-grow="184"
data-flex-basis="441px"
>&lt;/p>
&lt;p>Usa un desktop que me recuerda mucho al antiguo kde, el &lt;a class="link" href="https://www.trinitydesktop.org/" target="_blank" rel="noopener"
>Trinity Desktop Environment&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que para mi sorpresa anda ligerito en la netbook.&lt;/p>
&lt;p>Claro que al abrir un navegador la pobre se pone a parir chayotes. Y es que el internet no es lo que hace 20 años.&lt;/p>
&lt;p>Lo único que me da un poco de cosa, es ese aspecto &lt;em>WindowsXPsoso&lt;/em> que se carga.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-setup-wizard.webp"
width="1439"
height="782"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-setup-wizard_hu_53a65c415b6f802e.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/q4os-setup-wizard_hu_6bb1b17be19c145f.webp 1024w"
loading="lazy"
alt="¡Ah caray! ¿Y ese Setup Wizard? ¿De dónde salio?"
class="gallery-image"
data-flex-grow="184"
data-flex-basis="441px"
>&lt;/p>
&lt;p>Incluso durante la instalación de algunos programas aparece un instalador al estilo windows, que me parece un buen detalle si vienes de esa plataforma y reduce el impacto del cambio de ambiente, aunque a mi me causa un &amp;ldquo;no se que&amp;rdquo; 😬.&lt;/p>
&lt;h2 id="problemas-con-la-red-wifi">Problemas con la red Wifi
&lt;/h2>&lt;p>No todo fue miel sobre hojuelas. Todas estas distribuciones tuvieron problemas para conectarse a la red WiFi de mi casa. Y no es que tenga una configuración super complicada, simplemente no se conecta.&lt;/p>
&lt;p>Por ejemplo, en Q4OS me aparece esto:&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>TDENetworkManager&lt;/strong>
Connection attempt failed!
Secrets were required to establish a connection, but no secrets were available.&lt;/p>&lt;/blockquote>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/problema-wifi.webp"
width="1200"
height="900"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/problema-wifi_hu_b1db9d3f6d0c6d68.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/problema-wifi_hu_36bcc975956f4030.webp 1024w"
loading="lazy"
alt="De ahí no lo saco"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>Supongo que será alguna peculiaridad de Debian, pero todavía no logro resolverla.&lt;/p>
&lt;p>En algunos foros recomiendan instalar el paquete &lt;code>firmware-b43-installer&lt;/code> pero sin mucho éxito.&lt;/p>
&lt;p>Si todo falla queda el cable de red ethernet de toda la vida, aunque no estoy muy conforme con esta opción.&lt;/p>
&lt;p>También puedo intentar cambiar algo en el &lt;em>router&lt;/em> de mi proveedor de internet, pero prefiero no hacerlo. Si algo falla, me da flojera ajustar todos los equipos que tengo conectados.&lt;/p>
&lt;h2 id="opciones-solamente-de-arranque-slax-y-puppy">Opciones solamente de arranque: Slax y Puppy
&lt;/h2>&lt;p>Quiero mencionar dos Linux que funcionan bien como &lt;em>live-usb&lt;/em> pero que no tienen un proceso de instalación tal cual.&lt;/p>
&lt;p>Por ejemplo &lt;a class="link" href="https://www.slax.org/" target="_blank" rel="noopener"
>Slax&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se ve muy bien. Incluso tiene algunas animaciones simpáticas, pero su proceso de instalación es &amp;ldquo;raro&amp;rdquo;.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/slax-desktop.webp"
width="1279"
height="786"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/slax-desktop_hu_fdeeb879eac1abf.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/slax-desktop_hu_a14aee69df6bed4e.webp 1024w"
loading="lazy"
alt="Mire uste nomás que chulada de escritorio"
class="gallery-image"
data-flex-grow="162"
data-flex-basis="390px"
>&lt;/p>
&lt;p>Si le quiere dar un vistazo adelante &lt;a class="link" href="https://www.slax.org/starting.php" target="_blank" rel="noopener"
>Install Slax on hard disk or USB flash drive&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Si dejo la imagen ISO en mi USB de &lt;a class="link" href="https://medicatusb.com/" target="_blank" rel="noopener"
>Medicat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
jala y con eso me doy por bien servido.&lt;/p>
&lt;p>En cuando a &lt;a class="link" href="https://puppylinux-woof-ce.github.io/" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo dejo como una curiosidad. De todas las distribuciones que probé fue a la que menos le dediqué tiempo.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/puppy-linux.webp"
width="1278"
height="788"
srcset="https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/puppy-linux_hu_1220424d45effcb6.webp 480w, https://linuxmanr4.com/p/linux-32bits-netbook-acer-ao751h/puppy-linux_hu_66d83a39f3cffe5.webp 1024w"
loading="lazy"
alt="Vamos cacharro, digo cachorro"
class="gallery-image"
data-flex-grow="162"
data-flex-basis="389px"
>&lt;/p>
&lt;p>Se puede usar como un Linux para emergencias, pero creo que hay mejores opciones. Ni modo, de vuelta a la maleta.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Por el momento me quedo con &amp;hellip; &lt;em>redoble de tambores&lt;/em> &lt;strong>Q4OS&lt;/strong> me pareció una interesante novedad y funciona razonablemente bien.&lt;/p>
&lt;p>No es la primera vez que escribo sobre el tema, les invito que lean: &lt;a class="link" href="https://linuxmanr4.com/2020/02/24/peppermint-y-slitaz-linux-ligero-para-equipos-viejitos-y-no-tan-viejitos/" >Peppermint y SliTaz, Linux ligero para equipos viejitos y no tan viejitos&lt;/a>
&lt;/p>
&lt;p>¿Ustedes que distribución de Linux me recomiendan?&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;El hombre sensato se adapta al mundo,
el insensato insiste en intentar adaptar el mundo a si mismo.
Por lo tanto, todo el progreso depende del hombre insensato.&amp;rdquo;&lt;/p>&lt;span class="cite">&lt;span>― &lt;/span>&lt;span>George Bernard Shaw, &lt;/span>&lt;a href="https://www.gutenberg.org/files/3328/3328-h/3328-h.htm">&lt;cite>Hombre y superhombre&lt;/cite>&lt;/a>&lt;/span>&lt;/blockquote></description></item><item><title>Encontrando enlaces rotos en el blog con Lychee</title><link>https://linuxmanr4.com/p/enlaces-rotos-lychee/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/enlaces-rotos-lychee/</guid><description>&lt;img src="https://linuxmanr4.com/p/enlaces-rotos-lychee/enlaces-rotos-og.webp" alt="Featured image of post Encontrando enlaces rotos en el blog con Lychee" />&lt;p>Poco a poco me he acostumbrado al flujo de trabajo de Hugo. Podrán ver algunas
mejoras, por ejemplo, acabo de instalar &lt;a class="link" href="https://giscus.app/es" target="_blank" rel="noopener"
>giscus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como
sistema de comentarios. Eso fue sencillo, el &lt;em>theme&lt;/em> tiene muchas opciones para
eso.&lt;/p>
&lt;p>Pero para detectar enlaces rotos ¡Ahhhhhh! esa es otra historia.&lt;/p>
&lt;p>Con WordPress lo más sencillo era buscar algún plugin que hiciera la tarea para
luego ir corrigiendo los enlaces que con el tiempo han dejado de funcionar.&lt;/p>
&lt;p>Pero esto es Hugo y los &lt;em>plugins&lt;/em> ya no son una opción.&lt;/p>
&lt;h2 id="lychee-es-veloz">Lychee es veloz
&lt;/h2>&lt;p>Después de investigar cuales serían mis opciones di con un programita peculiar.&lt;/p>
&lt;p>&lt;a class="link" href="https://github.com/lycheeverse/lychee" target="_blank" rel="noopener"
>Lychee&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
esta basado en &lt;a class="link" href="https://rust-lang.org/es/" target="_blank" rel="noopener"
>Rust&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y es realmente veloz, como un rayo 🌩 (imáginese la escena de pixar por favor, si ya sabe cual).&lt;/p>
&lt;p>Lychee encuentra enlaces rotos y direcciones de correo electrónico dentro de Markdown, HTML, reStructuredText o cualquier otro archivo de texto o sitio web.&lt;/p>
&lt;p>Con esta gran herramienta a la mano, solo necesitaba automatizar un poco la tarea.&lt;/p>
&lt;h2 id="empezamos-generando-el-sitio-web">Empezamos generando el sitio web
&lt;/h2>&lt;p>Es lo más sencillo, ejecutar el comando que genera el sitio web en la carpeta
&lt;em>public&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">hugo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si se completa exitosamente este comando (siempre puede haber errores) pasamos
a la siguiente etapa.&lt;/p>
&lt;h2 id="buscar-los-enlaces-rotos-con-lychee">Buscar los enlaces rotos con lychee
&lt;/h2>&lt;p>Pues ya tenemos nuestro sitio web estático generado en la carpeta &lt;em>public&lt;/em>.&lt;/p>
&lt;p>Ahora a buscar los enlaces rotos solamente en los archivos con extensión &lt;em>html&lt;/em>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">lychee public --include &amp;#34;.html&amp;#34; --format json --root-dir / --output enlaces_rotos.json
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/p/enlaces-rotos-lychee/lychee-buscando-enlaces-rotos.webp"
width="860"
height="634"
srcset="https://linuxmanr4.com/p/enlaces-rotos-lychee/lychee-buscando-enlaces-rotos_hu_43f0dfa82d0b2a9c.webp 480w, https://linuxmanr4.com/p/enlaces-rotos-lychee/lychee-buscando-enlaces-rotos_hu_5abbad9af5c322f7.webp 1024w"
loading="lazy"
alt="Buscando esos enlaces que han dejado de funcionar"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="325px"
>&lt;/p>
&lt;p>Y como pueden ver guardamos los resultados en el archivo &lt;strong>enlaces_rotos.json&lt;/strong>&lt;/p>
&lt;p>Pero el resultado no es muy amigable que digamos, por eso agregamos un paso más.&lt;/p>
&lt;h2 id="generar-un-archivo-csv-con-los-resultados">Generar un archivo CSV con los resultados
&lt;/h2>&lt;p>Para encontrar la aguja en el pajar y hacer todo más manejable decidí generar
un archivo CSV que puedo abrir sin problemas en cualquier programa de hoja de
cálculo.&lt;/p>
&lt;p>Para hacerlo me ayudó el programa &lt;a class="link" href="https://jqlang.org/" target="_blank" rel="noopener"
>jq&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es especialista
en obtener información de archivos &lt;a class="link" href="https://www.json.org/json-es.html" target="_blank" rel="noopener"
>JSON&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">jq -r &amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">.error_map
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| to_entries[]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| .key as $source
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| .value[]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| select(.url | startswith(&amp;#34;http&amp;#34;))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| &amp;#34;\($source) | \(.url) | \(.status.text)&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;#39; enlaces_rotos.json &amp;gt; enlaces-rotos-externos.csv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/p/enlaces-rotos-lychee/enlaces-rotos-externos.webp"
width="1138"
height="722"
srcset="https://linuxmanr4.com/p/enlaces-rotos-lychee/enlaces-rotos-externos_hu_17606cf8ae2e3601.webp 480w, https://linuxmanr4.com/p/enlaces-rotos-lychee/enlaces-rotos-externos_hu_9a7b5577e739702b.webp 1024w"
loading="lazy"
alt="Revisando los enlaces rotos externos del blog"
class="gallery-image"
data-flex-grow="157"
data-flex-basis="378px"
>&lt;/p>
&lt;p>Algunos no están realmente rotos, pero con el tiempo aprendes a ignorar los errores
comunes para centrarte en los que realmente necesitan mi atención.&lt;/p>
&lt;p>Lo más probable es que haga un archivo bash que ejecute todo esto regularmente.&lt;/p>
&lt;p>¿Ustedes como enfrentan este problema? ¿Qué herramientas utilizan?&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Conócete a ti mismo.&amp;rdquo;&lt;/p>&lt;span class="cite">&lt;span>― &lt;/span>&lt;span>Sócrates&lt;/span>&lt;cite>&lt;/cite>&lt;/span>&lt;/blockquote></description></item><item><title>Herramientas 'terminal-centristas' Kitty, Yazi, Lazyvim y Lazygit</title><link>https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/</link><pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/</guid><description>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/herramientas-terminal.jpg" alt="Featured image of post Herramientas 'terminal-centristas' Kitty, Yazi, Lazyvim y Lazygit" />&lt;p>Después de una actualización de &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
me falló &lt;a class="link" href="https://ghostty.org/" target="_blank" rel="noopener"
>Ghostty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
la terminal que estaba utilizando en ese momento, y es una lástima,
me sentía muy a gusto con el fantasmita.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/error-opengl-ghostty.webp"
width="955"
height="700"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/error-opengl-ghostty_hu_148c8b84f6bfb1c2.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/error-opengl-ghostty_hu_b3db31e621f3501f.webp 1024w"
loading="lazy"
alt="Y por este error, adiós a la terminal estilo “pacman”."
class="gallery-image"
data-flex-grow="136"
data-flex-basis="327px"
>&lt;/p>
&lt;p>Pero ante la adversidad hay una oportunidad y me dí a la tarea de buscar un
reemplazo.&lt;/p>
&lt;p>Lo curioso es que durante la búsqueda, una cosa llevó a la otra y de pronto
me encontré utilizando varias herramientas que se utilizan en la terminal y que
una vez que le agarras el modillo es muy complicado regresar a lo que estabas
usando anteriormente.&lt;/p>
&lt;p>Aquí va el recuento.&lt;/p>
&lt;h2 id="me-pareció-ver-un-lindo-gatito-kitty-terminal">Me pareció ver un lindo gatito: Kitty Terminal
&lt;/h2>&lt;p>Para reemplazar a Ghostty elegí a &lt;a class="link" href="https://sw.kovidgoyal.net/kitty/" target="_blank" rel="noopener"
>Kitty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que
viene muy recomendado como una terminal de buenas prestaciones.&lt;/p>
&lt;p>Es de esas terminales que utilizan la GPU para acelerar las cosas. Yo no tengo
una tarjeta gráfica que tenga un alto rendimiento, supongo que para los
poseedores de esos equipos la terminal volará, yo en lo personal no he notado
alguna mejora significativa en velocidad.&lt;/p>
&lt;p>Una de las cosas que me gustó fue que es fácil elegir el &lt;em>theme&lt;/em> de la terminal.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/kitten-themes.webp"
width="1044"
height="776"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/kitten-themes_hu_7f680400b7e46d4.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/kitten-themes_hu_5e8743cbde8bcf07.webp 1024w"
loading="lazy"
alt="Gran variedad de temas disponibles en Kitty"
class="gallery-image"
data-flex-grow="134"
data-flex-basis="322px"
>&lt;/p>
&lt;p>Ahí me tienen perdiendo el tiempo eligiendo &lt;a class="link" href="https://linuxmanr4.com/2013/04/10/paleta-colores-manjaro/" >combinaciones de colores&lt;/a>
exóticas
cada cierto tiempo 😄.&lt;/p>
&lt;p>Todo lo que se requiere es escribir &lt;code>kitten themes&lt;/code> y a elegir.&lt;/p>
&lt;h2 id="neovim---lazyvim">Neovim -&amp;gt; Lazyvim
&lt;/h2>&lt;p>Muchos de los atajos de teclado están basados en el vetusto y omnipresente&lt;br>
editor &lt;a class="link" href="https://www.vim.org/" target="_blank" rel="noopener"
>Vim&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Recuerdo haberlo visto hace muchos años
pero con el tiempo fui eligiendo otras opciones más amigables como
&lt;a class="link" href="https://www.nano-editor.org/" target="_blank" rel="noopener"
>nano&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://micro-editor.github.io/" target="_blank" rel="noopener"
>micro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que son excelentes opciones pero que no tienen la potencia de Vim.&lt;/p>
&lt;p>Les recomiendo darle una breve repasada al tutor de vim, no se aprenderá
todo de un jalón, pero da una noción de la filosofía de trabajo de estas
herramientas &lt;strong>Más teclado, menos ratón.&lt;/strong>&lt;/p>
&lt;p>O si lo prefieren, hay una alternativa divertida mediante un juego online
llamado &lt;a class="link" href="https://vim-adventures.com/" target="_blank" rel="noopener"
>Vim Adventures&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/vim-adventures.webp"
width="1061"
height="701"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/vim-adventures_hu_c7e4bc6d803728cc.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/vim-adventures_hu_1066117be3579661.webp 1024w"
loading="lazy"
alt="Aprender es divertido con Vim Adventures"
class="gallery-image"
data-flex-grow="151"
data-flex-basis="363px"
>&lt;/p>
&lt;p>Nuevamente, una cosa llevó a la otra y me ví usando &lt;a class="link" href="https://neovim.io/" target="_blank" rel="noopener"
>Neovim&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en lugar de Vim y poco tiempo después a su configuración con esteroides
&lt;a class="link" href="https://www.lazyvim.org/" target="_blank" rel="noopener"
>Lazyvim&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim.webp"
width="1003"
height="755"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim_hu_24fc2fb692901dc0.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim_hu_eaa52dbd984a99e0.webp 1024w"
loading="lazy"
alt="Lazyvim"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
>&lt;/p>
&lt;p>Y todos los atajos que aprendí con vim se fueron al carajo 🤣.&lt;/p>
&lt;p>El cambio es super notable con Lazyvim, es como si fuera otro editor totalmente
diferente.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim-abrir-archivos.webp"
width="1007"
height="758"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim-abrir-archivos_hu_45dbbbba405da642.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazyvim-abrir-archivos_hu_5824e8cfbf272293.webp 1024w"
loading="lazy"
alt="Abrir y buscar archivos es sencillo"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
>&lt;/p>
&lt;h2 id="yazi-para-administrar-archivos">Yazi, para administrar archivos
&lt;/h2>&lt;p>Revisando tutoriales de lazyvim en Youtube surgió un nuevo personaje.&lt;/p>
&lt;p>&lt;a class="link" href="https://yazi-rs.github.io/" target="_blank" rel="noopener"
>Yazi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un administrador de archivos basado en
Rust tan rápido como la quincena que se esfuma en dos días.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/yazi.webp"
width="1014"
height="760"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/yazi_hu_c68aa041d7cf09b8.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/yazi_hu_4a082f87b291ab05.webp 1024w"
loading="lazy"
alt="Yazi es bueno, bonito y rápido"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>Puedes hacer de todo, abrir, copiar, mover, crear archivos y carpetas.
Pero cuidado, puede ser muy confuso al principio.&lt;/p>
&lt;p>Hice una carpeta de practicas para comenzar a utilizarlo y es que por error
perdí unos archivitos ¡Upss! ni modo, echando a perder se aprende.&lt;/p>
&lt;h2 id="lazygit">Lazygit
&lt;/h2>&lt;p>Y ya para culminar &lt;a class="link" href="https://github.com/jesseduffield/lazygit" target="_blank" rel="noopener"
>Lazygit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
otra
herramienta para flojos (son las mejores). La verdad es una joyita.&lt;/p>
&lt;p>Muchas de las tareas típicas de git se resuelven con esta herramienta.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazygit.webp"
width="1011"
height="752"
srcset="https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazygit_hu_107412c3e439515b.webp 480w, https://linuxmanr4.com/p/herramientas-terminal-kitty-yazi-lazyvim-lazygit/lazygit_hu_4ee6a6f1b0d03f2.webp 1024w"
loading="lazy"
alt="Todos los comandos que aprendí los voy a olvidar con esta herramienta."
class="gallery-image"
data-flex-grow="134"
data-flex-basis="322px"
>&lt;/p>
&lt;p>Esta perfectamente integrada a Lazyvim. Al ser la última en llegar todavía
me estoy acostumbrando a sus atajos de teclado.&lt;/p>
&lt;h2 id="documentaciones">Documentaciones
&lt;/h2>&lt;p>Como es fácil perderse, les dejo (en realidad son para mí) una lista de las
documentaciones de cada proyecto con la información de los accesos de teclado
para que sea más rápida su consulta.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://sw.kovidgoyal.net/kitty/overview/" target="_blank" rel="noopener"
>Kitty - Overview&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.lazyvim.org/keymaps" target="_blank" rel="noopener"
>Lazyvim - Keymaps&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://yazi-rs.github.io/docs/quick-start" target="_blank" rel="noopener"
>Yazi - Quickstart&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Keybindings_en.md" target="_blank" rel="noopener"
>Lazygit - keybindings&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>También hay una buena cantidad de tutoriales en Youtube.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/N93cTbtLCIM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>De repente me vi abrumado por tantas opciones y atajos de teclado. Es muy fácil
perderse. Así que decidí tomar el enfoque conocido coloquialmente como &amp;ldquo;pian
pianito&amp;rdquo;.&lt;/p>
&lt;p>Poco a poco ir aprendiendo lo más utilizado, y agregando cosas conforme las
vaya necesitando.&lt;/p>
&lt;p>Este artículo fue escrito en su mayoría usando las herramientas que
menciono.&lt;/p>
&lt;p>¿Ustedes saben de alguna otra herramienta de este tipo para darle una revisada?&lt;/p></description></item><item><title>La quinta transformación, ahora con HUGO y Cloudflare Pages</title><link>https://linuxmanr4.com/p/hugo-cloudflare-pages/</link><pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/p/hugo-cloudflare-pages/</guid><description>&lt;img src="https://linuxmanr4.com/p/hugo-cloudflare-pages/mohamed-nohassi-odxB5oIG_iA-unsplash.jpg" alt="Featured image of post La quinta transformación, ahora con HUGO y Cloudflare Pages" />&lt;p>Desde el 2004 he publicado sobre los temas que me han parecido interesantes en varias plataformas.&lt;/p>
&lt;p>Haciendo un recuento fueron:&lt;/p>
&lt;ul>
&lt;li>Blogger&lt;/li>
&lt;li>Blogsome&lt;/li>
&lt;li>Hostgator&lt;/li>
&lt;li>Bana Hosting&lt;/li>
&lt;/ul>
&lt;p>Y ahora haremos el intento con Cloudflare Pages, Github y &lt;a class="link" href="https://gohugo.io/" target="_blank" rel="noopener"
>HUGO&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="los-motivos">Los motivos
&lt;/h2>&lt;p>Hay varias razones por las que tomé la decisión de cambiar de plataforma.&lt;/p>
&lt;p>Primero la monetaria. Era demasiado costoso el plan que tenía contratado en &lt;a class="link" href="https://manage.banahosting.com/aff.php?aff=3351" target="_blank" rel="noopener"
>Bana Hosting&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>No me malentiendan, es un excelente hosting y lo recomiendo ampliamente. Pero muchas de las opciones que ofrecía no las utilizaba. La única razón era Wordpress y por lo tanto, para poder utilizarlo necesitaba de PHP y de una base de datos.&lt;/p>
&lt;p>También hay que admitir que &lt;strong>Adsense&lt;/strong> ya no es lo que era antes. El número de visitas ha caído estrepitosamente desde la llegada de las inteligencias artificiales y el tiktok.&lt;/p>
&lt;p>Yo mismo me he visto usando más a las IAs como un buscador. Súmele usted que el mismo Google ya ofrece en primer lugar una respuesta generada por Gemini.&lt;/p>
&lt;p>Eso hace innecesario hacer clic en cualquier enlace para buscar una información que ya obtuviste gracias a la IA.&lt;/p>
&lt;p>Además, una de mis reglas autoimpuestas es la de hacer mi hobby autosustentable. Al no haber tantos ingresos el siguiente paso era lógico, recortar gastos. Así que adiós hosting.&lt;/p>
&lt;h2 id="mejorar-la-seguridad">Mejorar la seguridad
&lt;/h2>&lt;p>Otra de las razones por las que decidí migrar a un contenido estático es por las constantes amenazas a la seguridad.&lt;/p>
&lt;p>Diario recibía correos electrónicos de intentos fallidos para entrar a husmear a mi blog.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/hugo-cloudflare-pages/wordfence-amenazas-por-pais.jpg"
width="598"
height="382"
srcset="https://linuxmanr4.com/p/hugo-cloudflare-pages/wordfence-amenazas-por-pais_hu_7f946611425667da.jpg 480w, https://linuxmanr4.com/p/hugo-cloudflare-pages/wordfence-amenazas-por-pais_hu_f06cc23731bf49cb.jpg 1024w"
loading="lazy"
alt="Amenazas por país"
class="gallery-image"
data-flex-grow="156"
data-flex-basis="375px"
>&lt;/p>
&lt;p>Eso y los &lt;em>bugs&lt;/em> encontrados en &lt;em>plugins&lt;/em> con problemas de seguridad. Varias veces me vi cambiando, reemplazando o desactivando alguno de ellos para evitar que tomaran el control de mi sitio.&lt;/p>
&lt;p>Bueno pues ahora solo tendrán html y nada más.&lt;/p>
&lt;h2 id="llega-hugo-al-rescate">Llega HUGO al rescate
&lt;/h2>&lt;p>Para poder publicar en &lt;a class="link" href="https://pages.cloudflare.com/" target="_blank" rel="noopener"
>Cloudflare Pages&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
necesitaba un generador de contenido estático.&lt;/p>
&lt;p>Y usted se preguntará mi estimado lector, ¿Por qué no usaste &lt;a class="link" href="https://getpelican.com/" target="_blank" rel="noopener"
>Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
?&lt;/p>
&lt;p>Pelican es otro excelente generador de contenido estático que ya utilizo en &lt;a class="link" href="https://centaurodelnorte.com" target="_blank" rel="noopener"
>Centauro del Norte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y me siento muy cómodo utilizándolo.&lt;/p>
&lt;p>Pero le quise dar una oportunidad a HUGO y ampliar mi conocimiento a otra herramienta distinta, y hay que reconocer que HUGO está en el top de las opciones disponibles.&lt;/p>
&lt;h2 id="migrar-los-artículos">Migrar los artículos
&lt;/h2>&lt;p>Migrar los artículos de Wordpress no es tarea sencilla. Hubo un momento en el que tomé la decisión de solamente revisar los artículos hasta el 2014. Así que si encuentro algo que valga la pena ajustar lo haré con calma.&lt;/p>
&lt;p>Para obtener los artículos busqué en la documentación &lt;a class="link" href="https://gohugo.io/tools/migrations/" target="_blank" rel="noopener"
>Migrations&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y encontré a &lt;a class="link" href="https://github.com/ashishb/wp2hugo" target="_blank" rel="noopener"
>wp2hugo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un &lt;em>script&lt;/em> que es una auténtica chulada.&lt;/p>
&lt;p>Seguí las instrucciones y en una mañana ya había hecho la conversión de los textos a markdown y descargado las imágenes de los artículos.&lt;/p>
&lt;p>Pero no todo es miel sobre hojuelas. Me encontré con que los artículos contenían un montón de información de varios plugins de wordpress, algunos de ellos que ya no había utilizado en mucho tiempo.&lt;/p>
&lt;p>Parte del proceso de migración fue la &amp;ldquo;limpieza&amp;rdquo; de este contenido irrelevante.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/p/hugo-cloudflare-pages/buscar-y-reemplazar-code.jpg"
width="1440"
height="838"
srcset="https://linuxmanr4.com/p/hugo-cloudflare-pages/buscar-y-reemplazar-code_hu_ff57d2b7d0a50d84.jpg 480w, https://linuxmanr4.com/p/hugo-cloudflare-pages/buscar-y-reemplazar-code_hu_8807b50edac9f109.jpg 1024w"
loading="lazy"
alt="Líneas y líneas basura del plugin better related"
class="gallery-image"
data-flex-grow="171"
data-flex-basis="412px"
>&lt;/p>
&lt;p>Ahí fue cuando me encontré con un problema añejo. Visual Studio Code no esta preparado para búsquedas tan masivas.&lt;/p>
&lt;p>A pesar de que le había especificado que hiciera búsquedas y sustituciones exclusivamente en los archivos con extensión .md me encontré con que &amp;ldquo;tiraba al monte&amp;rdquo; y modificaba archivos del theme importantes rompiendo todo a su paso.&lt;/p>
&lt;p>No quise entretenerme demasiado y opté por utilizar el comando &lt;code>sed&lt;/code> (léase &lt;a class="link" href="https://linuxmanr4.com/2015/09/22/buscar-y-reemplazar-un-texto-desde-la-terminal/" >Buscar y reemplazar un texto desde la terminal&lt;/a>
para mejorar los reemplazos y funcionó bien a medias.&lt;/p>
&lt;p>También intenté con expresiones regulares, pero nuevamente las cosas no salieron como hubiera querido.&lt;/p>
&lt;p>Lo que mejor me funcionó fue utilizar una IA para que hiciera un programita en bash explicando cuales eran las secciones que quería eliminar.&lt;/p>
&lt;p>Por ejemplo, este código elimina todo lo relacionado con &lt;a class="link" href="https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration" target="_blank" rel="noopener"
>litespeed&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y sus opciones, genera archivos bak de respaldo pero no está de más advertir que hay que usarlo con cuidado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> f in *.md&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">[&lt;/span> -f &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="k">continue&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cp &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">.bak&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> awk &lt;span class="s1">&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> /^[[:space:]]*litespeed_/ {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> inblock = 1
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> next
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> inblock &amp;amp;&amp;amp; /^[[:space:]]+/ {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> next
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> inblock &amp;amp;&amp;amp; !/^[[:space:]]+/ {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> inblock = 0
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> !inblock
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#39;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt; &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">.tmp&amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> mv &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">.tmp&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Procesado: &lt;/span>&lt;span class="nv">$f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="elegir-un-theme">Elegir un theme
&lt;/h2>&lt;p>&lt;em>Es de sabios seguir el consejo de los mayores&lt;/em>. Cuando estaba revisando mis opciones dí con este artículo &lt;a class="link" href="https://elblogdelazaro.org/top-10-temas-para-hugo-m%C3%A1s-descargados/" target="_blank" rel="noopener"
>Top 10 temas para Hugo más descargados&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el Blog de Lázaro y pues a probar.&lt;/p>
&lt;p>Empecé con el theme #1 PaperMod pero no terminó de gustarme.&lt;/p>
&lt;p>Afortunadamente la búsqueda terminó con el #2, el theme &lt;a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener"
>Stack&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y es que tiene de todo.&lt;/p>
&lt;p>Un diseño limpio y elegante, documentación decente, tablas de contenido, soporte para fórmulas matemáticas, un buscador, modo oscuro, muchas opciones de personalización ¿Qué más se le puede pedir?&lt;/p>
&lt;h2 id="escribir-nuevamente-por-gusto">Escribir nuevamente por gusto
&lt;/h2>&lt;p>Les confieso algo ¡ESTOY HARTO DEL SEO! 😠 Durante mi paso por WordPress instalé un par de &lt;em>plugins&lt;/em> para mejorar mi aparición en los buscadores.&lt;/p>
&lt;p>Que escriba artículos de 30,000 palabras o más, ahora use lenguaje inclusive, utilice verbos poderosos, que un moñito para caerle bien a Google ¡Es demasiado trabajo!&lt;/p>
&lt;p>¿Y todo para que? para que llegue el bot de la IA, se entrene con tu contenido y jamás te vuelvo a ver ¡No señor!&lt;/p>
&lt;p>Incluso, con el paso del tiempo llegue a escribir cada vez menos, en más de una ocasión tuve la famosa &amp;ldquo;crisis del escritor&amp;rdquo;.&lt;/p>
&lt;p>Mucho de mi contenido casual terminó en twitter ¿Cómo dice? ¿Qué ya no se le dice twitter? ¡Carajo!&lt;/p>
&lt;p>Y por lo que veo no soy el único que esta harto de esta situación.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/OC9ewgaVIKQ"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="la-evolución-hacia-los-videos-cortos-no-quiero">La evolución hacia los videos cortos ¡NO QUIERO
&lt;/h2>&lt;p>Antes de la revolución de la IAs hubo una desbandada de tráfico hacia los servicios de videos cortos ¡Si estoy hablando de tí TikTok o como te llames! una cosa llevó a la otra, y de pronto Instagram tenía los Reels y YouTube los Shorts y la verdad, ya estoy viejo para eso.&lt;/p>
&lt;p>Dicen que ahora esas plataformas son utilizadas como una especie de CV Directo en donde los &amp;ldquo;influencers&amp;rdquo; venden todo tipo de productos.&lt;/p>
&lt;p>Además esas cosas son adictivas, cuando te das cuenta ya perdiste una hora viendo videitos sin sustancia, y el canijo algoritmo sabe lo que te gusta y te lo ofrece a manos llenas.&lt;/p>
&lt;p>No señor, definitivamente eso no es lo mío. A mi me gusta escribir, bueno un video más y ya 😉&lt;/p>
&lt;h2 id="lo-que-voy-a-extrañar">Lo que voy a extrañar
&lt;/h2>&lt;p>Estoy indeciso respecto a si poner o no un sistema de comentarios. Tengo muchas opciones disponibles en el &lt;em>theme&lt;/em>, pero eso le añade una carga adicional a la página y no estoy seguro si vale la pena.&lt;/p>
&lt;p>Siendo honesto, las personas ya comentaban muy poco y los comentarios que llegaban la mayoría eran de SPAM de criptomonedas.&lt;/p>
&lt;p>¿Ustedes que opinan? ¿Pongo comentarios?&lt;/p>
&lt;p>Otro que pagó los platos rotos fue el experimento de &lt;strong>El desacortador de URLs&lt;/strong>, necesitaba una configuración especial que no se si pueda reproducir aquí en Cloudflare. A lo mejor lo resucito en otro sitio, pero eso lo veremos más adelante.&lt;/p>
&lt;p>&lt;em>Another one bites the dust&lt;/em> El plugin Jetpack se encargaba de una lista de notificaciones de artículos nuevos por correo electrónico.&lt;/p>
&lt;p>Pues eso también acompasó sus miembros de locomoción a ritmo militar. La única alternativa es usar RSS, pero eso ya tampoco esta de moda.&lt;/p>
&lt;h2 id="para-terminar">Para terminar
&lt;/h2>&lt;p>La verdad estoy muy contento con el cambio, el abanico de herramientas nuevas que estoy aprendiendo para poder seguir publicando y compartiendo mis ideas es muy interesante.&lt;/p>
&lt;p>Salir un poco de la zona de confort es un reto. Verán que poco a poco iré ajustando algunas cosas y aprendiendo otras.&lt;/p>
&lt;p>También me gustaría recomendar este artículo sobre la personalización del theme Stack: &lt;a class="link" href="https://blog.lucaslifes.com/p/hugo-stack-theme-customization/" target="_blank" rel="noopener"
>Hugo Stack Theme Customization&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, facilita mucho las cosas cuando vas empezando.&lt;/p>
&lt;p>Y recuerden amiguitos:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Nunca dejes de hacer lo que te gusta.&amp;rdquo;&lt;/p>&lt;/blockquote>
&lt;p>¡Hasta la próxima!&lt;/p>
&lt;p>Foto de &lt;a href="https://unsplash.com/es/@coopery?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Mohamed Nohassi&lt;/a> en &lt;a href="https://unsplash.com/es/fotos/silueta-de-la-persona-de-pie-sobre-la-roca-rodeada-por-el-cuerpo-de-agua-odxB5oIG_iA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash&lt;/a>&lt;/p></description></item><item><title>Cómo borrar archivos definitivamente de forma segura con herramientas de Linux y Windows</title><link>https://linuxmanr4.com/2025/09/09/borrar-archivos-definitivamente/</link><pubDate>Tue, 09 Sep 2025 21:33:28 +0000</pubDate><guid>https://linuxmanr4.com/2025/09/09/borrar-archivos-definitivamente/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/como-borrar-archivos-definitivamente.jpg" alt="Featured image of post Cómo borrar archivos definitivamente de forma segura con herramientas de Linux y Windows" />&lt;p>Me pidieron que &lt;a class="link" href="https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/" >formateara una USB&lt;/a>
para borrar definitivamente su contenido. Le quise explicar a mi estimado usuario que formatear no sería suficiente. Hay que hacer varios pasos si realmente quiere borrar el contenido de forma que sea irrecuperable.&lt;/p>
&lt;p>El tema es muy interesante y no es tan sencillo como parece. Al final mi usuario se conformó con la formateada por temas de tiempo. Quería algo rápido, pero un borrado definitivo toma un poco más de tiempo.&lt;/p>
&lt;h2 id="por-qué-es-importante-borrar-archivos-definitivamente">&lt;strong>¿Por qué es importante borrar archivos definitivamente?&lt;/strong>
&lt;/h2>&lt;p>En la era digital, la información es uno de los activos más valiosos que tenemos. Guardamos fotos, documentos, contraseñas, proyectos laborales y hasta información bancaria en nuestros equipos.&lt;/p>
&lt;p>Sin embargo, pocas personas saben que, al eliminar un archivo con el método convencional (papelera de reciclaje en Windows o &amp;ldquo;rm&amp;rdquo; en Linux), los datos realmente &lt;strong>no desaparecen&lt;/strong> del dispositivo de almacenaje.&lt;/p>
&lt;p>Lo que ocurre en realidad es que el sistema operativo marca el espacio como &lt;strong>“disponible para sobrescribir”&lt;/strong>, pero el contenido del archivo sigue ahí hasta que otro dato lo reemplace ¡Así ha sido siempre!&lt;/p>
&lt;p>Esto significa que, con herramientas de recuperación adecuadas como &lt;a class="link" href="https://www.ccleaner.com/es-es/recuva" target="_blank" rel="noopener"
>Recuva&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://www.cgsecurity.org/wiki/PhotoRec_ES" target="_blank" rel="noopener"
>PhotoRec&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es posible restaurar información supuestamente borrada.&lt;/p>
&lt;h2 id="el-mito-de-la-papelera-de-reciclaje-y-el-borrado-normal">&lt;strong>El mito de la papelera de reciclaje y el borrado normal&lt;/strong>
&lt;/h2>&lt;p>Cuando envías un archivo a la papelera de reciclaje, solo se está copiando a una ubicación especial. Al menos algunos tienen la consideración de vaciar la papelera de reciclaje y eso ayuda, pero aun así es posible recuperar archivos eliminados.&lt;/p>
&lt;p>Esto explica por qué programas gratuitos de recuperación pueden traer de vuelta datos eliminados “por accidente”.&lt;/p>
&lt;p>El éxito de la recuperación depende mucho del uso de la unidad. Si después de borrar el archivo sigues usando tu equipo, es probable que aquel espacio que se ha declarado como utilizable sirva para almacenar nuevos archivos y con ello la degradación del mismo.&lt;/p>
&lt;p>Si el objetivo es borrar definitivamente un archivo, el enfoque tiene que ser diferente. Literalmente hay que destruirlo.&lt;/p>
&lt;h2 id="riesgos-de-no-eliminar-datos-de-forma-segura">&lt;strong>Riesgos de no eliminar datos de forma segura&lt;/strong>
&lt;/h2>&lt;ul>
&lt;li>Robo de identidad si alguien accede a tus documentos.&lt;/li>
&lt;li>Exposición de información confidencial en empresas.&lt;/li>
&lt;li>Riesgos legales si no se cumple con normativas de protección de datos (ej. GDPR).&lt;/li>
&lt;li>Pérdida de privacidad personal al vender o regalar un dispositivo de almacenamiento usado.&lt;/li>
&lt;/ul>
&lt;h2 id="diferencias-entre-borrar-formatear-y-sobrescribir-datos">Diferencias entre borrar, formatear y sobrescribir datos
&lt;/h2>&lt;p>Las diferencias entre borrar, formatear y sobrescribir datos radican en el propósito, el proceso y el nivel de eliminación o alteración de la información en un dispositivo de almacenamiento.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Borrar&lt;/strong>:
&lt;ul>
&lt;li>Definición: Eliminar archivos o datos específicos de un sistema de almacenamiento, como un disco duro, SSD, o memoria USB, sin afectar la estructura general del sistema de archivos.&lt;/li>
&lt;li>Proceso: Los datos se marcan como &amp;ldquo;eliminados&amp;rdquo; en el sistema de archivos, pero la información permanece físicamente en el dispositivo hasta que se sobrescribe. Por eso, es posible recuperar datos borrados con herramientas especializadas.&lt;/li>
&lt;li>Ejemplo: Eliminar un archivo desde la papelera de reciclaje o usando el comando &amp;ldquo;delete&amp;rdquo;.&lt;/li>
&lt;li>Impacto: Solo afecta archivos o carpetas específicas. Los datos pueden ser recuperables.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Formatear&lt;/strong>:
&lt;ul>
&lt;li>Definición: Reiniciar la estructura del sistema de archivos de un dispositivo de almacenamiento, eliminando todos los datos y preparando el dispositivo para un nuevo uso.&lt;/li>
&lt;li>Proceso: Se crea una nueva tabla de particiones o sistema de archivos (como NTFS, FAT32, o exFAT), y los datos existentes se vuelven inaccesibles para el sistema operativo. Sin embargo, en muchos casos, &lt;strong>los datos aún pueden ser recuperables con software especializado&lt;/strong>, especialmente en formateos rápidos.&lt;/li>
&lt;li>Ejemplo: Formatear un disco duro o una USB desde el sistema operativo (opción &amp;ldquo;Formatear&amp;rdquo; en Windows o &amp;ldquo;Utilidad de Discos&amp;rdquo; en macOS).&lt;/li>
&lt;li>Impacto: Afecta todo el dispositivo o partición. La recuperación es más difícil que al borrar, pero posible en algunos casos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Sobrescribir&lt;/strong>:
&lt;ul>
&lt;li>Definición: Reemplazar los datos existentes en un dispositivo de almacenamiento escribiendo nueva información sobre ellos.&lt;/li>
&lt;li>Proceso: Los datos originales se reemplazan físicamente con nuevos datos, lo que hace que la recuperación sea prácticamente imposible, especialmente si se usa un método seguro (como sobrescritura múltiple con patrones aleatorios).&lt;/li>
&lt;li>Ejemplo: Usar herramientas como &lt;a class="link" href="https://github.com/martijnvanbrummelen/nwipe" target="_blank" rel="noopener"
>nwipe&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://www.bleachbit.org/download" target="_blank" rel="noopener"
>Bleachbit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://eraser.heidi.ie/" target="_blank" rel="noopener"
>Eraser&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para sobrescribir datos, o simplemente guardar un archivo nuevo en el espacio donde estaban los datos antiguos.&lt;/li>
&lt;li>Impacto: Los datos sobrescritos son irrecuperables en la mayoría de los casos, dependiendo del método usado.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>AcciónAlcanceRecuperación de datosEjemplo de usoBorrarArchivos o carpetas específicasFácil con herramientasEliminar un documento o fotoFormatearTodo el disco/particiónPosible, pero más difícilPreparar una USB para nuevo usoSobrescribirDatos específicos o todo el discoMuy difícil o imposibleEliminar datos sensibles de forma segura&lt;/p>
&lt;h2 id="herramientas-seguras-para-borrar-archivos">Herramientas seguras para borrar archivos
&lt;/h2>&lt;p>Linux ofrece múltiples alternativas, tanto en línea de comandos como en entornos gráficos, para &lt;strong>borrar archivos definitivamente&lt;/strong>.&lt;/p>
&lt;h3 id="el-comando">&lt;strong>El comando &lt;code>shred&lt;/code>&lt;/strong>
&lt;/h3>&lt;p>Mi favorito personal en Linux es el comando &lt;code>shred&lt;/code> ,sobrescribe el contenido de un archivo con datos aleatorios, lo que dificulta enormemente su recuperación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/shred-en-mr-robot.jpg">
&lt;/figure>
&lt;p>Ejemplo de uso:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">shred -u -z -n &lt;span class="m">3&lt;/span> archivo.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;code>-u&lt;/code> elimina el archivo después de sobrescribirlo.&lt;/li>
&lt;li>&lt;code>-z&lt;/code> escribe ceros al final para ocultar el proceso de borrado.&lt;/li>
&lt;li>&lt;code>-n 3&lt;/code> número de pasadas de sobrescritura.&lt;/li>
&lt;li>&lt;code>-v&lt;/code> Es opcional, permite ver paso a paso el borrado del archivo.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen.jpg"
alt="shred es la herramienta ideal para borrar archivos definitivamente desde la terminal.">&lt;figcaption>
&lt;p>shred es la herramienta ideal para borrar archivos definitivamente desde la terminal.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="bleachbit-una-herramienta-para-la-privacidad-y-la-limpieza-segura-de-datos">BleachBit: Una herramienta para la privacidad y la limpieza segura de datos
&lt;/h3>&lt;p>BleachBit es un software gratuito y de código abierto diseñado para limpiar el sistema operativo, liberar espacio en disco y proteger la privacidad del usuario.&lt;/p>
&lt;p>Disponible para Windows, Linux y Mac, este programa libera espacio en disco que buscando y eliminando archivos temporales, cachés, cookies, historiales de navegación y otros residuos de aplicaciones como Firefox, Chrome, Thunderbird y muchas más.&lt;/p>
&lt;p>Fue lanzado por primera vez en 2008 y se licencia bajo la GNU General Public License versión 3, lo que garantiza su transparencia y accesibilidad.&lt;/p>
&lt;p>Uno de sus aspectos más destacados es su capacidad para destruir archivos y carpetas de manera segura, evitando que los datos borrados puedan ser recuperados con herramientas forenses o software de recuperación.&lt;/p>
&lt;p>Para borrar archivos o carpetas basta con ir al menú de la aplicación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen-1.jpg"
alt="Destruir archivos y carpetas con Bleachbit.">&lt;figcaption>
&lt;p>Destruir archivos y carpetas con Bleachbit.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Quiero hacer mención de una función que tiene Bleachbit que se llama &lt;strong>Crear archivos de paja&lt;/strong>.&lt;/p>
&lt;p>Los &amp;ldquo;archivos de paja&amp;rdquo; son archivos falsos o de relleno que se crean intencionalmente para ocupar espacio en disco y facilitar la sobrescritura segura de datos sensibles.&lt;/p>
&lt;p>Probablemente, sea una buena idea crear algunos archivos irrelevantes para que las herramientas de recuperación se entretengan un poco 😎&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen.png"
alt="Crear archivos de paja en bleachbit.">&lt;figcaption>
&lt;p>Crear archivos de paja en bleachbit.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En este ejemplo le pedí que creara 100 archivos y que no los eliminara de la carpeta para ver el resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen-1-1.jpg">
&lt;/figure>
&lt;p>El contenido de los archivos es irrelevante, pero ocupan espacio. En este caso lo ideal es usar la opción que dice &lt;strong>Eliminar sin destruir&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen-1-2.jpg">
&lt;/figure>
&lt;h3 id="eraser-una-herramienta-para-la-eliminación-segura-de-archivos">Eraser: Una herramienta para la eliminación segura de archivos
&lt;/h3>&lt;p>Eraser permite borrar archivos, &lt;a class="link" href="https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/" >carpetas&lt;/a>
y espacio libre en discos duros (HDD), unidades de estado sólido (SSD) y otros dispositivos de almacenamiento mediante técnicas de sobrescritura seguras.&lt;/p>
&lt;p>Lo mejor es que se integra en el menú contextual de Windows, permitiendo hacer clic derecho sobre un archivo y elegir &amp;ldquo;Erase&amp;rdquo; para destruirlo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/09/imagen-1-3.jpg"
alt="Ejecutando Eraser desde el menú contextual de Windows.">&lt;figcaption>
&lt;p>Ejecutando Eraser desde el menú contextual de Windows.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="recomendaciones-finales">Recomendaciones finales
&lt;/h2>&lt;p>Si me permiten una recomendación, denle un vistazo a los programas que mencioné anteriormente y familiarícense con sus opciones. No vaya a ser que por error borren algo que no quieran borrar y entonces si no habrá herramienta de recuperación que les ayude.&lt;/p>
&lt;p>Si quieren saber más sobre el tema, les recomiendo &lt;a class="link" href="https://docs.bleachbit.org/doc/shred-files-and-wipe-disks.html" target="_blank" rel="noopener"
>Shred files and wipe disks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en la documentación de Bleachbit.&lt;/p>
&lt;p>Por último, estaba pensando que para hacer algo todavía más seguro sería recomendable trabajar con carpetas encriptadas. Pero creo que eso puede ser tema para otro artículo.&lt;/p>
&lt;p>¿Ustedes qué herramientas utilizan? ¿Cuál me recomiendan?&lt;/p></description></item><item><title>De Elastix a Issabel: Migrando un conmutador telefónico después de más de 10 años de servicio</title><link>https://linuxmanr4.com/2025/08/22/de-elastix-a-issabel/</link><pubDate>Fri, 22 Aug 2025 20:07:22 +0000</pubDate><guid>https://linuxmanr4.com/2025/08/22/de-elastix-a-issabel/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/08/de-elastix-a-issabel.jpg" alt="Featured image of post De Elastix a Issabel: Migrando un conmutador telefónico después de más de 10 años de servicio" />&lt;p>Llega un momento en el que el hardware no puede más, problemas con la energía eléctrica y un fallo en el disco duro provocaron el deceso de mi vetusto conmutador telefónico con Elastix y dio la oportunidad de hacer uno completamente nuevo, pero ahora usando Issabel.&lt;/p>
&lt;p>Tengo que reconocer que duró mucho más de lo esperado. La última vez que falló el equipo solo tuve que cambiar el disco duro a otra computadora y a seguir trabajando, pero esta vez no fue posible.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/08/disco-duro-maxtor-2025.jpg"
alt="Disco duro Maxtor">&lt;figcaption>
&lt;p>Disco duro Maxtor&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora no iba a ser ni muy complicado, pero tampoco tan fácil. Simplemente, me llevaría algunos días en preparar un equipo nuevo, instalar Issabel y configurar todo para que estuviera cuando menos funcional.&lt;/p>
&lt;p>Pues esta es mi aventura, preparaos una taza de café, sentaos y leed.&lt;/p>
&lt;h2 id="y-el-respaldo-apá-bueno-sí-pero-no">¿Y el respaldo apá? Bueno, sí pero no
&lt;/h2>&lt;p>Bueno, en realidad sí tenía un respaldo, pero si quería actualizar a Issabel este ya no era utilizable y es que como comprenderán, en 10 años pasaron muchas cosas.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/" >Elastix&lt;/a>
fue una plataforma muy popular porque integraba funcionalidades de PBX, correo de voz, fax, mensajería unificada y más, todo gestionado desde una interfaz web basada en &lt;a class="link" href="https://www.asterisk.org" target="_blank" rel="noopener"
>Asterisk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://www.freepbx.org/" target="_blank" rel="noopener"
>FreePBX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://www.hylafax.org/" target="_blank" rel="noopener"
>HylaFAX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://linuxmanr4.com/2013/11/25/configurar-postfix-con-reenvio-de-correo-relay-mail/" >Postfix&lt;/a>
y &lt;a class="link" href="https://www.igniterealtime.org/projects/openfire/" target="_blank" rel="noopener"
>Openfire&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h3 id="elastix-y-su-base-en-centos">Elastix y su base en CentOS
&lt;/h3>&lt;p>Su sistema operativo base era CentOS, una distribución derivada de Red Hat Enterprise Linux (RHEL) ampliamente adoptada en empresas por su estabilidad y compatibilidad. El uso de CentOS contribuyó en gran medida a la confianza y adopción de Elastix en el sector PyME y tecnología en general.&lt;/p>
&lt;h3 id="3cx-compró-elastix-transición-a-un-modelo-propietario">3CX compró Elastix: transición a un modelo propietario
&lt;/h3>&lt;p>En diciembre de 2016, &lt;strong>el proyecto Elastix fue adquirido por la empresa 3CX&lt;/strong>, marcando el inicio del fin de su versión open source. A partir de ese momento, Elastix pasó a ofrecerse bajo un modelo propietario, eliminando la versión comunitaria libre. Luego de la compra, &lt;a class="link" href="https://linuxmanr4.com/2017/05/05/bienvenida-issabel/" >3CX&lt;/a>
lanzó la versión Elastix 5 basada en Debian y en su propia plataforma, eliminando la esencia del proyecto original. La comunidad técnica reaccionó con preocupación ante la pérdida de un referente en software libre.&lt;/p>
&lt;h3 id="nacimiento-de-issabel-como-fork-comunitario">Nacimiento de Issabel como fork comunitario
&lt;/h3>&lt;p>En respuesta a esta transición, surgió &lt;strong>Issabel en 2017 como un fork comunitario de Elastix&lt;/strong>, manteniendo la filosofía open source y dando continuidad al desarrollo comunitario y gratuito.&lt;/p>
&lt;p>Issabel conserva la funcionalidad de comunicación unificada del Elastix original, pero con soporte activo, mayor estabilidad y actualizaciones constantes. Es un proyecto libre, bajo licencias GPLv2 y GPLv3, desarrollado principalmente por la comunidad.&lt;/p>
&lt;p>Desde el lanzamiento de &lt;strong>Issabel 5&lt;/strong>, la plataforma ha migrado su sistema operativo base a &lt;a class="link" href="https://rockylinux.org/" target="_blank" rel="noopener"
>Rocky Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, en lugar de CentOS. Esto se debe a que CentOS 7 alcanzó su fin de soporte y ya no contaba con actualizaciones de seguridad y estabilidad, lo que ponía en riesgo a entornos productivos.&lt;/p>
&lt;p>Rocky Linux fue creado como fork de RHEL para llenar el vacío dejado por el fin del soporte de CentOS, ofreciendo compatibilidad binaria, soporte a largo plazo y respaldo comunitario.&lt;/p>
&lt;p>Issabel 5 emplea Rocky Linux 8.10, cuyo soporte se extiende hasta 2029, lo que garantiza un entorno seguro y sostenible para comunicaciones empresariales.&lt;/p>
&lt;p>Y como pueden suponer, después de tanto brinco y aunque tuviera mi respaldo a la mano no podía utilizarlo. ¿Por qué no lo actualicé antes? Pues por qué seguí la regla básica de que si no está roto, no lo arregles.&lt;/p>
&lt;p>Así que a comenzar desde cero.&lt;/p>
&lt;h2 id="recreando-la-configuración">Recreando la configuración
&lt;/h2>&lt;p>Afortunadamente, mi instalación es muy básica. Y gracias a mis notas y a artículos antiguos de mi blog no fue tan complicado. Decidí separar las tareas en varias etapas.&lt;/p>
&lt;ul>
&lt;li>Armar un equipo nuevo.&lt;/li>
&lt;li>Descargar e instalar la nueva versión de &lt;a class="link" href="https://www.issabel.com/obtener-issabel/" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>Configurar las extensiones.&lt;/li>
&lt;li>Configurar las troncales.&lt;/li>
&lt;li>Configurar las rutas entrantes.&lt;/li>
&lt;li>Configurar las rutas salientes.&lt;/li>
&lt;/ul>
&lt;p>Listo, tenemos un plan. Les advierto que este artículo no es una guía, para eso hay una buena cantidad de tutoriales y videos en Internet.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/l31Njz5VQBY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="sip-o-pjsip">SIP o PJSIP
&lt;/h2>&lt;p>Durante la instalación la primer pregunta que me sorprendió es si quería usar &lt;strong>SIP&lt;/strong> o &lt;strong>PJSIP&lt;/strong> y pues no tenía una respuesta clara. Así que fue lo primero que tuve que investigar.&lt;/p>
&lt;p>&lt;strong>&lt;a class="link" href="https://es.wikipedia.org/wiki/Protocolo_de_iniciaci%C3%B3n_de_sesi%C3%B3n" target="_blank" rel="noopener"
>SIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(Session Initiation Protocol)&lt;/strong> es un protocolo estándar para establecer, modificar y terminar sesiones multimedia, típicamente llamadas de voz sobre IP (VoIP).
En pocas palabras: &lt;strong>SIP es el “idioma” que usan los teléfonos IP y los PBX para llamarse, colgar o transferir.&lt;/strong>&lt;/p>
&lt;p>En Asterisk (y por tanto, en Issabel) hay &lt;strong>dos implementaciones&lt;/strong> de SIP:&lt;/p>
&lt;h3 id="sip-el-viejo-conocido">SIP (el viejo conocido)
&lt;/h3>&lt;ul>
&lt;li>Módulo original de Asterisk para hablar SIP.&lt;/li>
&lt;li>Muy usado durante muchos años, casi todos los tutoriales viejos lo usan.&lt;/li>
&lt;li>Ventajas:
&lt;ul>
&lt;li>Simple de configurar.&lt;/li>
&lt;li>Compatible con casi cualquier teléfono IP viejo (como mis &lt;a class="link" href="https://linuxmanr4.com/2010/07/23/como-configurar-un-spa922-para-un-conmutador-elastix/" >Linksys SPA922&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Desventajas:
&lt;ul>
&lt;li>Código muy antiguo y difícil de mantener.&lt;/li>
&lt;li>Limitaciones en NAT, transporte múltiple, seguridad, escalabilidad.&lt;/li>
&lt;li>A partir de Asterisk 13 se considera &lt;strong>deprecated&lt;/strong> (en retirada).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="pjsip-venga-lo-nuevo">&lt;strong>PJSIP (venga lo nuevo)&lt;/strong>
&lt;/h3>&lt;ul>
&lt;li>Nueva pila SIP de Asterisk, basada en la librería &lt;strong>PJSIP&lt;/strong>.&lt;/li>
&lt;li>Sustituye a &lt;code>chan_sip&lt;/code>.&lt;/li>
&lt;li>Ventajas:
&lt;ul>
&lt;li>Más eficiente (mejor manejo de múltiples llamadas y mayor rendimiento).&lt;/li>
&lt;li>Mejor compatibilidad con NAT y transportes múltiples (UDP/TCP/TLS/WSS).&lt;/li>
&lt;li>Más flexible en la configuración: un endpoint puede tener múltiples contactos.&lt;/li>
&lt;li>Seguridad mejorada (mejor control sobre autenticación y permisos).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Desventajas:
&lt;ul>
&lt;li>Configuración más extensa, con varios objetos:
&lt;ul>
&lt;li>&lt;strong>endpoint&lt;/strong> → define el teléfono/extensión.&lt;/li>
&lt;li>&lt;strong>auth&lt;/strong> → define credenciales.&lt;/li>
&lt;li>&lt;strong>aor&lt;/strong> → dónde contactar al endpoint (IP/registro).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Algunos teléfonos muy viejos no lo entienden bien (pero la mayoría sí).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>Entonces tenía un dilema entre retro compatibilidad o intentar lo nuevo. Me decidí por lo nuevo, total, si algo no funcionaba podía intentar ajustar la configuración o simplemente volver a instalar Issabel.&lt;/p>
&lt;p>Lo bueno es que PJSIP funcionó perfectamente en mis viejos equipos Linksys SPA922 y &lt;a class="link" href="https://linuxmanr4.com/2011/09/05/telefono-cisco-9951-elastix/" >CISCO 9951&lt;/a>
. &lt;strong>Todas mis extensiones telefónicas fueron dadas de alta con PJSIP&lt;/strong>.&lt;/p>
&lt;p>A efectos prácticos, la configuración no es muy diferente a Elastix, pero si hay sutiles diferencias.&lt;/p>
&lt;h2 id="el-primer-escollo-al-configurar-las-extensiones">El primer escollo al configurar las extensiones
&lt;/h2>&lt;p>Me parece que tardé demasiado en encontrar este problema. Y es que no lograba que las extensiones se registraran adecuadamente en Issabel.&lt;/p>
&lt;p>Batalle mucho, leí documentación, visité varios foros, todos con distintas recomendaciones, pero nada parecía funcionar hasta que di con el culpable &amp;hellip; &lt;a class="link" href="https://es.wikipedia.org/wiki/Fail2ban" target="_blank" rel="noopener"
>Fail2ban&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/08/imagen.png"
alt="fail2ban en el menú de seguridad de Issabel.">&lt;figcaption>
&lt;p>fail2ban en el menú de seguridad de Issabel.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y es que la instalación lo tiene activado por default. &lt;strong>Fail2Ban&lt;/strong> detectaba demasiados intentos fallidos de registro de parte de mis teléfonos existentes y automáticamente los agregaba a una lista negra. Y si estaban en la lista era imposible que te pudieras conectar al conmutador.&lt;/p>
&lt;p>Mi recomendación es desactivar Fail2ban hasta que estén configuradas todas las extensiones y las troncales. Cuando ya este todo listo y depurado, entonces sí, a activarlo para agregar una capa extra de seguridad.&lt;/p>
&lt;h2 id="peculiaridades-con-los-teléfonos-cisco-9951">Peculiaridades con los teléfonos CISCO 9951
&lt;/h2>&lt;p>De por sí, los teléfonos CISCO eran todo un reto en Elastix. Tal y como pueden leer en &lt;a class="link" href="https://linuxmanr4.com/2011/09/05/telefono-cisco-9951-elastix/" >Como configurar un teléfono CISCO Unified IP Phone 9951 con Elastix&lt;/a>
.&lt;/p>
&lt;p>La parte del servidor &lt;strong>TFTP&lt;/strong> quedó exactamente igual y los archivos de configuración de cada teléfono también. En estos puntos no hubo cambios.&lt;/p>
&lt;p>&lt;strong>No&lt;/strong> tuve que editar los archivos &lt;strong>sip_custom.conf&lt;/strong> y &lt;strong>sip_custom_post.conf&lt;/strong>&lt;/p>
&lt;p>En donde si cambió fue en la parte de la configuración de la extensión y esto es muy importante. Tuve que cambiar la opción &lt;strong>transport&lt;/strong> a &lt;strong>TCP&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/08/imagen-1.png"
alt="Estableciendo el transport a TCP para un teléfono CISCO 9951.">&lt;figcaption>
&lt;p>Estableciendo el transport a TCP para un teléfono CISCO 9951.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;em>Un detalle importante para que funcione un CISCO Unified IP Phone 9951.&lt;/em>&lt;/p>
&lt;p>De lo contrario fallará miserablemente en conectarse. Van a tener que reiniciar el teléfono cada vez que hagan un intento y se lleva su ratito en arrancar.&lt;/p>
&lt;h2 id="es-importante-el-registro">¿Es importante el registro?
&lt;/h2>&lt;p>Esta es otra novedad. Nada más al entrar me pide que registre mi instalación. ¿Lo he hecho? No, la verdad es que no lo he necesitado. Pero es un requisito para poder instalar algunos de los &lt;em>addons&lt;/em> disponibles.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/08/imagen-2.png"
alt="Lista de addons instalados y disponibles en Issabel">&lt;figcaption>
&lt;p>Lista de addons instalados y disponibles en Issabel&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En &lt;strong>Issabel&lt;/strong>, los &lt;strong>addons&lt;/strong> (complementos o módulos adicionales) sirven para &lt;strong>extender las funcionalidades básicas del sistema PBX&lt;/strong> sin necesidad de modificar su núcleo. Son muy útiles porque permiten personalizar la central telefónica según las necesidades de cada empresa.&lt;/p>
&lt;p>Si llegara a necesitar alguno, pues ni modo, a registrarme. Por el momento no lo considero necesario.&lt;/p>
&lt;h2 id="preguntas-frecuentes-sobre-la-migración-de-elastix-a-issabel">&lt;strong>Preguntas frecuentes sobre la migración de Elastix a Issabel&lt;/strong>
&lt;/h2>&lt;p>&lt;strong>1. ¿Es obligatorio migrar si aún uso Elastix?&lt;/strong>
Obligatorio no lo es. Si no es por el fallo en mi disco duro lo seguiría utilizando. Pero si tiene preocupaciones en el tema de seguridad es mejor migrar a Issabel.&lt;/p>
&lt;p>&lt;strong>2. ¿Issabel es gratuito o requiere licencias?&lt;/strong>
Es gratuito y de código abierto. Pero algunas opciones como la asistencia técnica pueden tener costo.&lt;/p>
&lt;p>&lt;strong>3. ¿Puedo instalar Issabel en máquinas virtuales?&lt;/strong>
Sí, funciona en VMware, Hyper-V y &lt;a class="link" href="https://www.proxmox.com/en/" target="_blank" rel="noopener"
>Proxmox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;strong>5. ¿Funciona Issabel con teléfonos IP antiguos?&lt;/strong>
Sí, mientras soporten protocolo SIP.&lt;/p>
&lt;p>&lt;strong>6. ¿Qué soporte hay en México?&lt;/strong>
Existe una comunidad activa en foros de internet y empresas locales que ofrecen soporte profesional.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Migrar a Issabel no fue tan dificil como esperaba. Sobre todo considerando que lo iba a configurar todo nuevamente desde cero. De hecho, si no fuera por el problema con Fail2ban hubiera avanzado mucho más rápido.&lt;/p>
&lt;p>También tengo un problema con la interfaz, como que le falta modernizarse. A veces la siento un poco &amp;ldquo;amontonada&amp;rdquo;. Pero si hace lo que tiene que hacer es un detalle menor. Mientras haga y reciba llamadas me doy por bien servido.&lt;/p>
&lt;p>También he notado una mejora en la calidad de las llamadas, pero no estoy seguro si esto se debe a la actualización a Issabel o es porque el hardware de la computadora es mejor.&lt;/p>
&lt;p>En el ámbito empresarial todavía es útil tener un conmutador telefónico, pero ¿Ustedes creen que la teléfonia celular le ha pegado a este sector? ¿Se acuerdan de los conmutadores Panasonic que salian en el maizoro? Hace mucho tiempo que no veo uno de esos.&lt;/p></description></item><item><title>Anuncios emergentes en el móvil que no se quitan</title><link>https://linuxmanr4.com/2025/06/05/anuncios-emergentes-movil-no-se-quitan/</link><pubDate>Thu, 05 Jun 2025 18:02:37 +0000</pubDate><guid>https://linuxmanr4.com/2025/06/05/anuncios-emergentes-movil-no-se-quitan/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/06/anuncios-emergentes.jpg" alt="Featured image of post Anuncios emergentes en el móvil que no se quitan" />&lt;p>Un compañero de trabajo llegó con un problema serio, anuncios emergentes en el móvil que no se quitan.&lt;/p>
&lt;p>Aparecen constantemente cada pocos segundos ocupando toda la pantalla, haciendo inutilizable el teléfono celular.&lt;/p>
&lt;p>Hoy en día, quien no se ha topado con esos molestos anuncios emergentes en el celular que parecen no irse nunca. Ya sabes, esas ventanitas que saltan de la nada mientras navegas, juegas o intentas hacer cualquier cosa, y que te sacan de quicio.&lt;/p>
&lt;p>No solo son una lata, sino que a veces hasta parece que se pegan a la pantalla y no hay forma de quitarlos. En este artículo vamos a ver por qué aparecen estos pop-ups tan molestos, cómo afectan tu experiencia con el móvil y qué puedes hacer para deshacerte de ellos sin volverte loco.&lt;/p>
&lt;p>Anteriormente, ya me había enfrentado a un problema similar (léase &lt;a class="link" href="https://linuxmanr4.com/2022/12/21/tu-equipo-fue-inhabilitado-sysdll-telcel/" >¿Tu Equipo Fue Inhabilitado? Intenta quitar el sysDLL&lt;/a>
). Pero esta vez era diferente, cada vez que quería &lt;strong>identificar&lt;/strong> la aplicación que originaba el anuncio. Al intentar mostrar todas las aplicaciones abiertas se cerraba inmediatamente complicándolo todo.&lt;/p>
&lt;h2 id="primero-un-respiro">Primero un respiro
&lt;/h2>&lt;p>La única forma de tener un respiro a semejante bombardeo de anuncios es &lt;strong>quitando la conexión a internet&lt;/strong>.&lt;/p>
&lt;p>Ni modo, a quitar el &lt;strong>wifi&lt;/strong> y también los &lt;strong>datos del teléfono&lt;/strong>. Sé que actualmente un teléfono sin internet no sirve de mucho, pero es la única forma que encontré para detener momentáneamente el ataque.&lt;/p>
&lt;h2 id="identificar-la-aplicación-que-genera-los-anuncios">Identificar la aplicación que genera los anuncios
&lt;/h2>&lt;p>Lo más importante es identificar la aplicación que muestra los anuncios. Sin embargo, cada vez que intentaba hacerlo, la apliación se cierra, pero no es la única forma de hacerlo.&lt;/p>
&lt;p>Para identificar la aplicación nociva instalé la aplicación AppWatch. En la Play Store aparece como &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.tafayor.appwatch" target="_blank" rel="noopener"
>Quitar anuncios emergentes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/06/imagen.jpg"
alt="Aplicación para detectar Anuncios emergentes en el móvil que no se quitan">&lt;figcaption>
&lt;p>Aplicación para detectar Anuncios emergentes en el móvil que no se quitan&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sé que para instalar la aplicación será necesario reactivar el internet y lidiar con los anuncios emergentes, pero es necesario.&lt;/p>
&lt;p>Una vez instalado y otorgarle el permiso para monitorear las aplicaciones, la aplicación nos dará un resultado y en mi caso la aplicación culpable es &amp;hellip;. ¿Chrome?&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/06/imagen.png">
&lt;/figure>
&lt;h2 id="el-chrome-que-no-es-chrome">El Chrome que no es Chrome
&lt;/h2>&lt;p>Al revisar las aplicaciones me doy cuenta de que ¡Hay dos Chrome!, una legítima (curiosamente desactivada) y la &lt;a class="link" href="https://dle.rae.es/ap%C3%B3crifo" target="_blank" rel="noopener"
>apócrifa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es la que está mandando los anuncios.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/06/dos-aplicaciones-chrome-instaladas.jpg">
&lt;/figure>
&lt;p>Nuevamente, desactivo el internet para poder manipular el teléfono sin tantas interrupciones y al revisar las aplicaciones veo los dos Chrome. El falso es el que tiene un número de versión muy bajo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/06/numero-de-la-version-de-la-aplicacion-maliciosa.jpg"
alt="El número bajo de la versión les dará una pista para identificar la aplicación maliciosa.">&lt;figcaption>
&lt;p>El número bajo de la versión les dará una pista para identificar la aplicación maliciosa.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez desinstalada la aplicación maliciosa, los anuncios dejan de aparecer.&lt;/p>
&lt;h2 id="cómo-se-instaló-la-aplicación-maliciosa">¿Cómo se instaló la aplicación maliciosa?
&lt;/h2>&lt;p>Mi compañero me comentó que le apareció un anuncio en Facebook, un anuncio de una aplicación para monitorear la presión arterial.&lt;/p>
&lt;p>Después de instalar la aplicación comenzaron a aparecer los anuncios. La quitó pero siguieron apareciendo.&lt;/p>
&lt;p>Por precaución le instalé &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.brave.browser" target="_blank" rel="noopener"
>Brave&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como navegador predeterminado para darle una capa extra de seguridad.&lt;/p>
&lt;h2 id="conclusión">Conclusión
&lt;/h2>&lt;p>Los anuncios emergentes en el celular son un dolor de cabeza que todos hemos sufrido alguna vez. Pueden venir de apps dudosas, configuraciones mal ajustadas o simplemente de publicidad súper invasiva.&lt;/p>
&lt;p>Pero no todo está perdido: con algunos trucos como cambiar la configuración, ajustando los permisos de cada aplicación o navegar con apps más seguras, puedes mantenerlos a raya.&lt;/p>
&lt;p>Mi compañero ya estaba dispuesto a resetear el teléfono a su configuración de fábrica, pero todos sabemos lo molesto que es instalar y volver a configurar todas las aplicaciones.&lt;/p>
&lt;p>Como siempre, lo mejor es no instalar aplicaciones extrañas. Después de todo ¿No les parece raro que un teléfono pueda tomar la presión arterial? Llevar un registro sí, claro, pero tomar una lectura, eso sí es sospechoso.&lt;/p></description></item><item><title>De WhatsApp, Open Graph y unas tristes comillas</title><link>https://linuxmanr4.com/2025/05/30/whatsapp-open-graph-comillas/</link><pubDate>Fri, 30 May 2025 19:47:17 +0000</pubDate><guid>https://linuxmanr4.com/2025/05/30/whatsapp-open-graph-comillas/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/05/whatsapp-open-graph.jpg" alt="Featured image of post De WhatsApp, Open Graph y unas tristes comillas" />&lt;p>En estos días me he obsesionado con opengraph y como implementarlo en mis proyectos. Y de cierta forma lo había logrado en todos menos en uno y solamente me fallaba con Whatsapp. Me llevó varios días dar con la solución.&lt;/p>
&lt;h2 id="qué-es-open-graph">¿Qué es Open Graph?
&lt;/h2>&lt;p>&lt;a class="link" href="https://ogp.me/" target="_blank" rel="noopener"
>Open Graph&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un protocolo creado por Facebook que permite a los desarrolladores web definir cómo se muestra el contenido de una página cuando se comparte en redes sociales, como Facebook, Twitter, LinkedIn, WhatsApp, etc.&lt;/p>
&lt;p>Consiste en un conjunto de meta etiquetas ( &lt;strong>&lt;meta>&lt;/strong>) que se añaden al código HTML de una página para especificar información como el título, la descripción, la imagen y el tipo de contenido que aparecerán en la vista previa del enlace compartido.&lt;/p>
&lt;p>Por ejemplo, las etiquetas básicas de Open Graph incluyen:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>og:title&lt;/strong>: El título del contenido.&lt;/li>
&lt;li>&lt;strong>og:description&lt;/strong>: Una breve descripción del contenido.&lt;/li>
&lt;li>&lt;strong>og:image&lt;/strong>: La URL de la imagen que se mostrará.&lt;/li>
&lt;li>&lt;strong>og:url&lt;/strong>: La URL canónica de la página.&lt;/li>
&lt;li>&lt;strong>og:type&lt;/strong>: El tipo de contenido (por ejemplo, &amp;ldquo;article&amp;rdquo;, &amp;ldquo;website&amp;rdquo;, &amp;ldquo;video&amp;rdquo;).&lt;/li>
&lt;/ul>
&lt;p>Un ejemplo de implementación básica en HTML:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:title&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Título de la página&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:description&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Descripción del contenido de la página.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:image&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;https://ejemplo.com/imagen.jpg&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:url&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;https://ejemplo.com&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:type&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;website&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="cómo-se-implementa-open-graph">¿Cómo se implementa Open Graph?
&lt;/h2>&lt;p>Pues hay varias opciones, por ejemplo en Wordpress le dejo esta responsabilidad &lt;a class="link" href="https://rankmath.com/" target="_blank" rel="noopener"
>Rank Math&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
mi plugin que se encarga del SEO. Y a la fecha no he tenido problemas.&lt;/p>
&lt;p>En el caso de &lt;a class="link" href="https://linuxmanr4.com/torreon/" >Torreón Antiguo&lt;/a>
en donde utilizo &lt;a class="link" href="https://linuxmanr4.com/2025/04/24/web-estatico-eleventy-javascript/" >Eleventy&lt;/a>
para generar el contenido. No hay de otra más que hacerlo a manita.&lt;/p>
&lt;p>Puede ser complicado y no hay una fórmula general, pero para que tengan una idea, esta es la parte de implementación que estoy utilizando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- meta tags si es un artículo o la página principal --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{% if articulo.titulo %}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- metatags --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;description&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.texto | replace(&amp;#34;&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="na">n&lt;/span>&lt;span class="err">&amp;#34;,&lt;/span> &lt;span class="err">&amp;#34;&lt;/span> &lt;span class="err">&amp;#34;)&lt;/span> &lt;span class="err">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">truncate&lt;/span>&lt;span class="err">(&lt;/span>&lt;span class="na">160&lt;/span>&lt;span class="err">)&lt;/span> &lt;span class="err">}}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;keywords&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Torreón antiguo, La Laguna años 70, archivo fotográfico, leyendas, cultura norteña antigua, edificios de Torreón&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- opengraph --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:locale&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;es&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:url&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/{{ articulo.titulo | slugify }}.html&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:title&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.titulo | truncate(50) }}&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:description&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.texto | replace(&amp;#34;&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="na">n&lt;/span>&lt;span class="err">&amp;#34;,&lt;/span> &lt;span class="err">&amp;#34;&lt;/span> &lt;span class="err">&amp;#34;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">|&lt;/span> &lt;span class="na">truncate&lt;/span>&lt;span class="err">(&lt;/span>&lt;span class="na">160&lt;/span>&lt;span class="err">)&lt;/span> &lt;span class="err">}}&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:image&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/imagenes/{{ articulo.imagenes[0].nombre }}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:type&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;article&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:logo&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/android-chrome-192x192.png&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- twitter card --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:card&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;summary_large_image&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:site&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;@linuxmanr4&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:title&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.titulo | truncate(50) }}&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:description&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.texto | replace(&amp;#34;&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="na">n&lt;/span>&lt;span class="err">&amp;#34;,&lt;/span> &lt;span class="err">&amp;#34;&lt;/span> &lt;span class="err">&amp;#34;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">|&lt;/span> &lt;span class="na">truncate&lt;/span>&lt;span class="err">(&lt;/span>&lt;span class="na">160&lt;/span>&lt;span class="err">)&lt;/span> &lt;span class="err">}}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:image&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/imagenes/{{ articulo.imagenes[0].nombre }}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:image:alt&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ articulo.titulo }}&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{% else %}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- metatags --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;description&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Archivo nostálgico de la comunidad de Google+ Torreón antiguo. Revive el pasado con fotos históricas, relatos ciudadanos y recuerdos colectivos de la ciudad de Torreón Coahuila. Memoria visual preservada para las futuras generaciones.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;keywords&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Torreón antiguo, La Laguna años 70, archivo fotográfico, leyendas, cultura norteña antigua, edificios de Torreón&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- opengraph --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:locale&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;es&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:url&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:title&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Torreón antiguo, archivo nostálgico de la ciudad de Torreón&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:description&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;El alma digital de los recuerdos laguneros. Último refugio de la comunidad de Google+ sobre la historia local de Torreón&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:image&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/imagenes/casa_arocena.jpg&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:type&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;website&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:logo&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/android-chrome-192x192.png&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&amp;lt;!-- twitter card --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:card&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;summary_large_image&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:site&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;@linuxmanr4&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:title&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Torreón antiguo, archivo nostálgico de la ciudad de Torreón&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:description&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Resguardo digital de la comunidad de Google+ sobre el Torreón del ayer. Fotos históricas, relatos ciudadanos y recuerdos preservados de la Comarca Lagunera.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:image&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/torreon/imagenes/casa_arocena.jpg&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;twitter:image:alt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Fotografía antigua de la Casa Arocena en color.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{% endif %}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hay una condición &lt;strong>if&lt;/strong> para distinguir si se trata de la página principal o de un artículo. Y crea los meta tags correspondientes para cada situación.&lt;/p>
&lt;p>El problema era en &lt;a class="link" href="https://centaurodelnorte.com/" target="_blank" rel="noopener"
>Centauro del Norte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que utiliza &lt;a class="link" href="https://linuxmanr4.com/2021/07/14/lazy-load-rudimentario-para-sitios-que-utilizan-pelican/" >Pelican&lt;/a>
(similar a Eleventy, pero con Python). Tengo que codificar todo para que me construya las meta tags correspondientes.&lt;/p>
&lt;h2 id="revisando-con-un-validador-de-open-graph">Revisando con un validador de Open Graph
&lt;/h2>&lt;p>Me tardé más de lo debido en refinar todo el código, pero funcionó, bueno, casi.&lt;/p>
&lt;p>Funcionaba bien en Telegram, Twitter, pero cuando quería compartir el enlace en Whatsapp, pues nomás no. Solo mostraba un enlace pelón y así no me gustaba.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/05/imagen.png">
&lt;/figure>
&lt;p>Intenté con un validador de opengraph de un sitio llamado &lt;a class="link" href="https://orcascan.com/tools/open-graph-validator?url=https%3A%2F%2Fcentaurodelnorte.com%2Ffrancisco-i-madero-un-hombre-de-ideales%2F" target="_blank" rel="noopener"
>OrcaScan&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y parecía que todo estaba correcto ¿Entonces? ¿Qué estaba fallando?&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/05/imagen.jpg"
alt="Resultados de la validación de Open Graph por OrcaScan ">&lt;figcaption>
&lt;p>Resultados de la validación de Open Graph por OrcaScan&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Le invertí varios días picando código. Incluso encontré otros problemas que no estaba buscando, revisé el código HTML generado por Pelican y todo parecía correcto, hasta qué &amp;hellip;&lt;/p>
&lt;h2 id="la-minificación">La minificación
&lt;/h2>&lt;p>La minificación en desarrollo web es el proceso de reducir el tamaño de archivos de código, como HTML, CSS, JavaScript o JSON, eliminando elementos innecesarios sin alterar su funcionalidad. Esto incluye:&lt;/p>
&lt;ul>
&lt;li>Eliminar espacios en blanco, saltos de línea y tabulaciones.&lt;/li>
&lt;li>Quitar comentarios del código.&lt;/li>
&lt;li>Acortar nombres de variables, funciones o clases (en JavaScript, por ejemplo).&lt;/li>
&lt;li>Optimizar estructuras para usar menos caracteres (por ejemplo, eliminar puntos y comas innecesarios en JavaScript cuando es posible).&lt;/li>
&lt;/ul>
&lt;p>Básicamente, es una optimización del código para la máquina. La computadora no va a leer tus comentarios, no le interesan esas coquetonas líneas en blanco, o el abuso de tabuladores para identar el código, nooooo, se los brinca olímpicamente y la minificación es algo que suelo hacer antes de subir el proyecto a Internet.&lt;/p>
&lt;h2 id="el-problema-son-las-comillas">El problema son las comillas
&lt;/h2>&lt;p>Al revisar el código después de la minificación me di cuenta de que el código optimizado no tenía comillas.&lt;/p>
&lt;p>Me explico, usualmente muchos parámetros de los tags de HTML usan comillas, por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">meta&lt;/span> &lt;span class="na">property&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;og:image&amp;#34;&lt;/span> &lt;span class="na">content&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;https://ejemplo.com/imagen.jpg&amp;#34;&lt;/span> &lt;span class="p">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El mismo código optimizado me aparecía así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;meta property=og:image content=https://ejemplo.com/imagen.jpg /&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>¿Esto es un problema? En teoría, no, es válido, aunque tiene sus reglas.&lt;/p>
&lt;p>No es obligatorio usar comillas en HTML5 para los valores de atributos sin espacios ni caracteres especiales, pero es una buena práctica usarlas siempre para mantener el código claro, consistente y compatible con diferentes herramientas y estándares.&lt;/p>
&lt;p>Ahora en Eleventy utilizo &lt;a class="link" href="https://www.11ty.dev/docs/transforms/#minify-html-output" target="_blank" rel="noopener"
>htmlmin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para esta tarea. En Pelican uso el &lt;a class="link" href="https://github.com/pelican-plugins/minify" target="_blank" rel="noopener"
>plugin minify&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que durante la optimización elimina las comillas del código.&lt;/p>
&lt;p>No sería un inconveniente, pero &lt;strong>WhatsApp&lt;/strong> quiere esas comillas y ese es el verdadero problema.&lt;/p>
&lt;p>Sin esas comillas no funciona ¡Hágame usted el favor! 😠&lt;/p>
&lt;p>Estuve revisando la documentación del plugin, pero aparentemente no hay una opción que modifique su comportamiento y me regrese esas comillas.&lt;/p>
&lt;h2 id="minify-al-rescate">Minify al rescate
&lt;/h2>&lt;p>Afortunadamente, me encontré con &lt;a class="link" href="https://github.com/tdewolff/minify" target="_blank" rel="noopener"
>minify&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un programa escrito en Go que es rapidísimo y que puedo usar desde la terminal.&lt;/p>
&lt;p>Tiene la opción de conservar las comillas 👍 se puede especificar todo un directorio recursivamente 👍👍 y tiene una velocidad más que decente 👍👍👍.&lt;/p>
&lt;p>El comando quedaría así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">minify --html-keep-quotes -i -r output/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La opción &lt;strong>-i&lt;/strong> es para que haga la optimización en esa misma carpeta sobreescribiendo los archivos.&lt;/p>
&lt;p>La opción &lt;strong>-r&lt;/strong> es para que busque recursivamente en todas las sub carpetas de la carpeta output.&lt;/p>
&lt;p>Después de subir el proyecto y hacer algunas pruebas, este fue el resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/05/imagen-1.jpg"
alt="Después de dejar las comillas en los metatags de Open Graph este fue el resultado.">&lt;figcaption>
&lt;p>Después de dejar las comillas en los metatags de Open Graph este fue el resultado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>La inspiración para la solución me llegó del lugar más escondido de Stack Overflow &lt;a class="link" href="https://stackoverflow.com/questions/25100917/showing-thumbnail-for-link-in-whatsapp-ogimage-meta-tag-doesnt-work" target="_blank" rel="noopener"
>Showing Thumbnail for link in WhatsApp || og:image meta-tag doesn&amp;rsquo;t work&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/05/imagen-1.png">
&lt;/figure>
&lt;p>Le invertí varios días en solucionar un problema que era muy simple de arreglar.&lt;/p>
&lt;p>Si les llega a pasar algo similar, espero que este artículo les ahorre tiempo y quebraderos de cabeza.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Sitio web estático con Eleventy (11ty): Rápido y personalizable.</title><link>https://linuxmanr4.com/2025/04/24/web-estatico-eleventy-javascript/</link><pubDate>Thu, 24 Apr 2025 16:22:12 +0000</pubDate><guid>https://linuxmanr4.com/2025/04/24/web-estatico-eleventy-javascript/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/04/eleventy.jpg" alt="Featured image of post Sitio web estático con Eleventy (11ty): Rápido y personalizable." />&lt;p>De casualidad me topé con Eleventy y decidí utilizarlo para resolver un problema. Verán, cuando Google+ cerró en 2019, comunidades enteras desaparecieron repentinamente. Había una opción para descargar un respaldo, pero era muy deficiente. La historia completa la puedes leer en &lt;a class="link" href="https://linuxmanr4.com/2019/02/19/torreon-antiguo-comunidad-google-plus/" >Torreón antiguo una comunidad de Google Plus&lt;/a>
.&lt;/p>
&lt;p>En aquel entonces hice un respaldo usando la herramienta &lt;a class="link" href="https://www.httrack.com/" target="_blank" rel="noopener"
>HTTrack&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que hizo un buen trabajo. Sin embargo, también se trajo mucha &amp;ldquo;basura&amp;rdquo;. Conservó el aspecto de Google plus, pero también incluyó un montón de enlaces rotos.&lt;/p>
&lt;h2 id="el-objetivo">El objetivo.
&lt;/h2>&lt;p>Desde hace tiempo tenía la idea de conservar solamente lo más esencial de cada artículo publicado. El título, las imágenes, el texto, fecha de publicación y el nombre del autor.&lt;/p>
&lt;p>Para extraer esa información hice un pequeño programa en &lt;a class="link" href="https://linuxmanr4.com/tags/python/" >Python&lt;/a>
que buscaba esa información y la almacenaba en un archivo &lt;a class="link" href="https://es.wikipedia.org/wiki/JSON" target="_blank" rel="noopener"
>JSON&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con la siguiente estructura:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;titulo&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">titulo&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;autor&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">autor&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;fecha&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">fecha_formateada&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;imagenes&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">imagenes&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;texto&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">texto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con esa información, poder construir un sitio web estático mucho más rápido y mejor estructurado.&lt;/p>
&lt;p>Gracias a las IA&amp;rsquo;s pude meterle turbo al proyecto y en unos días ya estaba haciendo pruebas. Pero no todo fue miel sobre hojuelas. Las IAs son un buen comienzo, pero no resuelven todo.&lt;/p>
&lt;h2 id="eleventy">Eleventy
&lt;/h2>&lt;p>Al preguntar que herramienta era la indicada surgieron 3 nombres. &lt;a class="link" href="https://www.11ty.dev/" target="_blank" rel="noopener"
>Eleventy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener"
>Jekill&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="https://gohugo.io/" target="_blank" rel="noopener"
>Hugo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Elegí el primero porque se lleva bastante bien con los archivos JSON como fuente de información.&lt;/p>
&lt;p>&lt;strong>Eleventy (11ty)&lt;/strong> es un generador de sitios estáticos ( &lt;em>static site generator&lt;/em>) rápido y sencillo, escrito en JavaScript. Está diseñado para ser flexible y minimalista, permitiendo crear sitios web usando plantillas en diversos formatos como &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/tags/markdown/" >Markdown&lt;/a>
, HTML, &lt;a class="link" href="https://linuxmanr4.com/tags/javascript/" >JavaScript&lt;/a>
, &lt;a class="link" href="https://mozilla.github.io/nunjucks/" target="_blank" rel="noopener"
>Nunjucks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, Liquid&lt;/strong>, entre otros.&lt;/p>
&lt;h3 id="cómo-funciona">&lt;strong>¿Cómo funciona?&lt;/strong>
&lt;/h3>&lt;p>De una forma muy, pero muy simplificada, Eleventy:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Toma archivos de plantillas&lt;/strong> (ej: &lt;code>.md&lt;/code>, &lt;code>.njk&lt;/code>, &lt;code>.html&lt;/code>).&lt;/li>
&lt;li>&lt;strong>Procesa el contenido&lt;/strong> combinando datos con las plantillas.&lt;/li>
&lt;li>&lt;strong>Genera archivos estáticos&lt;/strong> (HTML, CSS, JS) listos para desplegar en cualquier servidor web.&lt;/li>
&lt;/ol>
&lt;p>Siendo sincero, me quedé asombrado de lo rápido que genera los archivos HTML. Más de 400 artículos en unos pocos segundos.&lt;/p>
&lt;p>No voy a explicar como hacer un sitio web básico con Eleventy, hay una buena cantidad de videos y tutoriales que explican paso a paso como hacerlo, pero les puedo recomendar los siguientes sitios para comenzar:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.11ty.dev/docs/" target="_blank" rel="noopener"
>La documentación de Eleventy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es el mejor sitio para empezar.&lt;/li>
&lt;li>&lt;a class="link" href="https://11ty.rocks/" target="_blank" rel="noopener"
>11ty Rocks!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Que tiene una buena cantidad de ejemplos paso a paso.&lt;/li>
&lt;li>Otro buen sitio con ejemplos es &lt;a class="link" href="https://11ty.recipes/" target="_blank" rel="noopener"
>11ty Recipes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="lecciones-aprendidas">Lecciones aprendidas
&lt;/h2>&lt;h3 id="la-indentación-puede-ser-importante">La indentación puede ser importante.
&lt;/h3>&lt;p>Me tardé mucho tiempo en entender que la indentación era importante en la cabecera de una plantilla.&lt;/p>
&lt;p>Y es que repasé mucha información de la documentación para intentar entender por qué Eleventy no generaba los archivos HTML de los artículos.&lt;/p>
&lt;p>Por pura casualidad me di cuenta de que &lt;a class="link" href="https://linuxmanr4.com/2023/03/07/mis-extensiones-favoritas-para-visual-studio-code/" >VSCode&lt;/a>
estaba formateando el archivo eliminando una indentación que al parecer era necesaria.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/04/indentacion-eleventy.jpg"
alt="La indentación puede ser importante.">&lt;figcaption>
&lt;p>La indentación puede ser importante.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Cuando corregí eso ¡PUUUM! La carpeta de salida se llenó de pequeños archivitos HTML.&lt;/p>
&lt;h3 id="agregar-un-favicon">Agregar un favicon
&lt;/h3>&lt;p>El &lt;a class="link" href="https://favicon.io/" target="_blank" rel="noopener"
>favicon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es esa pequeña decoración que aparece a un lado del título de la página en la pestaña del navegador. Es un pequeño toque que le da personalidad al sitio.&lt;/p>
&lt;p>Es fácil hacerlo en HTML, pero hacerlo en Eleventy requiere unos cuantos pasos adicionales.&lt;/p>
&lt;p>Por ejemplo, me di cuenta de que podía copiar todos los archivos de una carpeta y copiarlos en la carpeta raíz del proyecto de salida.&lt;/p>
&lt;p>En el archivo de configuración &lt;strong>.eleventy.js&lt;/strong> agrego esta línea.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">eleventyConfig&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addPassthroughCopy&lt;/span>&lt;span class="p">({&lt;/span> &lt;span class="s2">&amp;#34;./src/favicon&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;/&amp;#34;&lt;/span> &lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De ese modo tengo cierto orden y no revuelvo archivos.&lt;/p>
&lt;p>Del mismo modo, puedo mantener carpetas separadas para luego copiarlas en su destino final como la carpeta de imágenes.&lt;/p>
&lt;h3 id="paginación">Paginación
&lt;/h3>&lt;p>La paginación fue la cereza final del pastel. Unos pequeños enlaces al final de cada artículo, dirigiéndose al artículo siguiente o al anterior.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">nav&lt;/span> &lt;span class="nx">aria&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">label&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;pagination&amp;#34;&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">pagination&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">href&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">previous&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">a&lt;/span> &lt;span class="nx">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;.{{ pagination.href.previous }}&amp;#34;&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="err">←&lt;/span> &lt;span class="nx">Anterior&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="err">/a&amp;gt;{% else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">span&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span>&lt;span class="nx">nbsp&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="err">/span&amp;gt;{% endif %}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">pagination&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">href&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">next&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">a&lt;/span> &lt;span class="nx">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;.{{ pagination.href.next }}&amp;#34;&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="nx">Siguiente&lt;/span> &lt;span class="err">→&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="err">/a&amp;gt;{% else %}&amp;lt;span&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;{%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">endif&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="err">/nav&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="url-canónica">URL Canónica
&lt;/h2>&lt;p>No estoy muy seguro si hice algún tipo de chapuza, pero funciona. Para agregar la URL canónica utilicé una instrucción &lt;em>if&lt;/em> .&lt;/p>
&lt;p>Sí existe un titulo hace un enlace canónico, de lo contario es la raíz del proyecto.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">articulo&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">titulo&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">link&lt;/span> &lt;span class="nx">rel&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;canonical&amp;#34;&lt;/span> &lt;span class="nx">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;/torreon/{{ articulo.titulo | slugify }}.html&amp;#34;&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">link&lt;/span> &lt;span class="nx">rel&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;canonical&amp;#34;&lt;/span> &lt;span class="nx">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;/torreon/&amp;#34;&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="nx">endif&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Trabajar con Eleventy fue una experiencia interesante y divertida. Una vez que entiendes el funcionamiento, avanzas rápidamente. Sin embargo, algunas tareas pueden ser algo desafiantes.&lt;/p>
&lt;p>Actualmente, el proyecto funciona y lo pueden ver en &lt;a class="link" href="https://linuxmanr4.com/torreon/" >Torreón Antiguo&lt;/a>
. Probablemente, jugaré un poco con el tema de los plugins. Quizás comience con el de &lt;a class="link" href="https://www.11ty.dev/docs/plugins/image/" target="_blank" rel="noopener"
>Image&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para optimizar las imágenes.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/torreon/" >Visitar Torreón Antiguo&lt;/a>
&lt;/p>
&lt;p>¿Prefiero Eleventy a &lt;a class="link" href="https://linuxmanr4.com/tags/pelican/" >Pelican&lt;/a>
? No estoy muy seguro. Los puedo considerar casi como equivalentes. Todo depende de con que lenguaje te sientas cómodo. Nuevamente es un tema de gustos.&lt;/p>
&lt;p>¿Ustedes tienen un generador de webs estáticas favorito? Los leo en los comentarios.&lt;/p></description></item><item><title>Automatiza Alertas Climáticas con Python y Telegram: Que nunca más te sorprenda una tormenta</title><link>https://linuxmanr4.com/2025/03/28/alertas-climaticas-python-telegram/</link><pubDate>Fri, 28 Mar 2025 19:03:14 +0000</pubDate><guid>https://linuxmanr4.com/2025/03/28/alertas-climaticas-python-telegram/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/03/alerta_climatica_python_telegram.jpg" alt="Featured image of post Automatiza Alertas Climáticas con Python y Telegram: Que nunca más te sorprenda una tormenta" />&lt;p>Les presento un programa de alertas climáticas con Python usando la API de OpenWeatherMap y enviando notificaciones a un canal de Telegram. Les prometo que es un tema interesante.&lt;/p>
&lt;p>El clima en donde vivo tiene sus peculiaridades por así decirlo. Es un clima desértico en el que rara vez nieva, cualquier llovizna provoca un caos y no se digan las famosas tolvaneras en las que terminas como cucaracha de panadería.&lt;/p>
&lt;p>Es normal revisar las condiciones actuales, las del día, pero rara vez reviso las predicciones a futuro, ya sea para prepararme para esas condiciones o cuando menos estar al pendiente.&lt;/p>
&lt;p>Entonces fue que me dije a mí mismo ¿Y si haces un script que revise las predicciones y te avise si hay condiciones climáticas severas?&lt;/p>
&lt;h2 id="usando-deepseek-para-programar-en-python">Usando Deepseek para programar en Python.
&lt;/h2>&lt;p>No puedo estar ajeno al uso de las inteligencias artificiales, en estos días he estado probando Gemini, DeepSeek (nunca he usado ChatGPT) y estoy abierto a cualquier recomendación, pero me he entendido mejor con &lt;a class="link" href="https://www.deepseek.com/en" target="_blank" rel="noopener"
>Deepseek&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Le platiqué cual era la intención del programa y en menos de un minuto ya tenía algo de código para empezar a masticar.&lt;/p>
&lt;p>Les aclaro que no todo es miel sobre hojuelas, me encontré con un par de errores. Lo bueno es que si no entiendes algo, le pides ayuda, te explica y hasta te da ejemplos de código para entender mejor y muy amablemente te &amp;ldquo;amplia&amp;rdquo; 😆 las dudas.&lt;/p>
&lt;p>Otra ventaja que tengo al usar la IA para programar es que me expone a enfoques de los que no tenía idea. Hay mil formas de atacar un problema y no esta de más aprender trucos nuevos.&lt;/p>
&lt;p>Por ejemplo, yo no quería publicar en el código el TOKEN de &lt;a class="link" href="https://telegram.org/" target="_blank" rel="noopener"
>Telegram&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o la API_KEY necesaria para descargar los datos de &lt;a class="link" href="https://openweathermap.org/" target="_blank" rel="noopener"
>OpenWeatherMap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Le pregunté a la IA que opciones tenía y me sugirió el uso de la extensión &lt;a class="link" href="https://pypi.org/project/python-dotenv/" target="_blank" rel="noopener"
>python-dotenv&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Básicamente, guarda esta información en un archivo &lt;strong>.env&lt;/strong> al que se le manda llamar dentro del programa.&lt;/p>
&lt;p>Quizás estoy divagando mucho, pero recomiendo ampliamente el uso de una IA como un tutor para aprender un lenguaje, mientras más herramientas mejor.&lt;/p>
&lt;h2 id="qué-son-las-condiciones-climáticas-severas">¿Qué son las condiciones climáticas severas?
&lt;/h2>&lt;p>Definir que es una condición climática severa es parte del problema. Por ejemplo considero que en la Comarca Lagunera las alertas estarían más o menos definidas así:&lt;/p>
&lt;ul>
&lt;li>Temperaturas menores a 0ºC.&lt;/li>
&lt;li>Temperaturas mayores a 40ºC, muy usual en el verano.&lt;/li>
&lt;li>Precipitaciones, cualquier lluvia es inusual y generan un caos en la ciudad.&lt;/li>
&lt;li>Vientos, provocan accidentes, caídas de árboles y tolvaneras.&lt;/li>
&lt;/ul>
&lt;p>En otros lugares las condiciones pueden ser totalmente diferentes, pero las alertas son configurables en el código.&lt;/p>
&lt;p>Pasó un detalle curioso, justo ayer hubo una tolvanera en la región, la famosa &amp;ldquo;lluvia lagunera&amp;rdquo; y no tuve ningún aviso.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/03/tolvanera%5Ftorreon%5F2025.jpg"
alt="La típica &amp;#39;lluvia lagunera&amp;#39;">&lt;figcaption>
&lt;p>La típica &amp;rsquo;lluvia lagunera'&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al revisar la velocidad del viento era de unos miserables 4 m/s (14 km/h aprox.) ¡¿Cómo es posible que un viento tan ligerito cause tanto desgarriate?!.&lt;/p>
&lt;p>Por eso decidí integrar una alerta &lt;strong>moderada&lt;/strong>, pero estos valores los estaré ajustando con el tiempo.&lt;/p>
&lt;h2 id="requisitos">Requisitos
&lt;/h2>&lt;h3 id="cuenta-en-openweathermap">Cuenta en OpenWeatherMap
&lt;/h3>&lt;p>Para descargar la información meteorológica es necesario tener una &lt;a class="link" href="https://home.openweathermap.org/users/sign_up" target="_blank" rel="noopener"
>cuenta gratuita de de OpenWeatherMap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para obtener la &lt;strong>API_KEY&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://openweathermap.org/forecast5" target="_blank" rel="noopener"
>Documentación de la API para la predicción de 5 días&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://openweathermap.org/weather-data" target="_blank" rel="noopener"
>Documentación de las unidades de medida de la información&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://openweathermap.org/find" target="_blank" rel="noopener"
>Información de la Latitud y la longitud de las ciudades&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul>
&lt;p>La versión gratuita tiene un límite bastante generoso de 1000 llamadas al día, que no esta nada mal para este proyecto.&lt;/p>
&lt;h3 id="bot-de-telegram">Bot de Telegram
&lt;/h3>&lt;p>También es necesario hacer un bot de Telegram. No voy a ahondar mucho en este tema, en internet y YouTube hay un montón de información y tutoriales al respecto.&lt;/p>
&lt;p>Basta y sobra decir que para recibir notificaciones por Telegram son necesarios el &lt;strong>TOKEN&lt;/strong> del bot y el &lt;strong>CHAT_ID&lt;/strong> del canal.&lt;/p>
&lt;p>Ahora si&amp;hellip; veamos el código.&lt;/p>
&lt;h2 id="código-del-programa">Código del programa
&lt;/h2>&lt;p>Archivo &lt;strong>.env&lt;/strong> que guarda la configuración del programa.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># -- Parámetros generales --
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CITY=&amp;#34;Tu Ciudad&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Parámetros de la API de OpenWeatherMap
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># API_KEY Gratuita en https://home.openweathermap.org/users/sign_up
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Documentación de la API https://openweathermap.org/forecast5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">API_KEY = &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Las coordenadas están disponibles en el buscador
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># https://openweathermap.org/find
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LAT =&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LON =&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">UNITS = &amp;#34;metric&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LANG = &amp;#34;es&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Parámetros para telegram
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CHAT_ID = &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">TOKEN = &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Archivo &lt;strong>alerta_climatica.py&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">datetime&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">datetime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">timedelta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">dotenv&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">load_dotenv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">load_dotenv&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -- Carga de parámetros&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># OpenWeatherMap&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CITY&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;CITY&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">API_KEY&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;API_KEY&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">LAT&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;LAT&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">LON&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;LON&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">UNITS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;UNITS&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">LANG&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;LANG&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Telegram&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CHAT_ID&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;CHAT_ID&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">TOKEN&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getenv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;TOKEN&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Umbrales para alertas futuras (ajusta según tu región)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ajustando estos valores para falsas alarmas.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para revisar las unidades de los valores:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># https://openweathermap.org/weather-data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># La velocidad del viento de la API esta en m/s&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para convertir km/h a m/s multiplicar por 0.2778&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ALERT_THRESHOLDS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;temp_min&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Temperatura mínima (°C)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;temp_max&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Temperatura máxima (°C)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;precipitation&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Lluvia acumulada (mm en 3h)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;wind_speed_mod&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Vientos moderados - 20 km/s aprox&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;wind_speed_alert&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="c1"># Vientos fuertes, mayores de 40 km/h&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">ms2km&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ms&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Convierte m/s a km/h&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">round&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ms&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">0.2778&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">obtener_prediccion&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;https://api.openweathermap.org/data/2.5/forecast?lat=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">LAT&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;amp;lon=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">LON&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;amp;units=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">UNITS&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;amp;lang=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">LANG&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;amp;appid=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">API_KEY&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">analizar_pronostico&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">data&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ahora&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">entry&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">data&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;list&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Calcular diferencia de tiempo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">fecha_prediccion&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromtimestamp&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">entry&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;dt&amp;#34;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">diferencia&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">fecha_prediccion&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">ahora&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Solo considerar próximas 24-120 horas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">timedelta&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hours&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">24&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">diferencia&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">timedelta&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hours&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">120&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">entry&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;main&amp;#34;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s2">&amp;#34;temp&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lluvia&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">entry&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;rain&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">{})&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;3h&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Para mayor claridad, convertí los m/s a km/h&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">viento&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ms2km&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">entry&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;wind&amp;#34;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s2">&amp;#34;speed&amp;#34;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># humedad = entry[&amp;#34;main&amp;#34;][&amp;#34;humidity&amp;#34;]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">clima&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">entry&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;weather&amp;#34;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s2">&amp;#34;description&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Verificar umbrales&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">temp&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;temp_min&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Temperatura BAJA (&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">temp&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">°C) el &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">fecha_prediccion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s1">/%m %H:%M&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">temp&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;temp_max&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Temperatura ALTA (&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">temp&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">°C) el &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">fecha_prediccion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s1">/%m %H:%M&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">lluvia&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;precipitation&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Lluvia SEVERA (&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">lluvia&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> mm/3h) el &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">fecha_prediccion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s1">/%m %H:%M&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">viento&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;wind_speed_mod&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">viento&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;wind_speed_alert&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Vientos moderados (viento: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">viento&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> km/h) el &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">fecha_prediccion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s1">/%m %H:%M&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">viento&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="n">ALERT_THRESHOLDS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;wind_speed_alert&amp;#34;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Vientos fuertes (viento: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">viento&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> km/h) el &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">fecha_prediccion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s1">/%m %H:%M&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">alertas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">enviar_alerta&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mensaje&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Manda notificación al canal de telegram&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;https://api.telegram.org/bot&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">TOKEN&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;/sendMessage&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">params&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;chat_id&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">CHAT_ID&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">mensaje&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;parse_mode&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="s2">&amp;#34;Markdown&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mensaje&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">post&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">params&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">params&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">obtener_prediccion&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">alertas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">analizar_pronostico&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">datos&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;⛅ análisis terminado.&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">alertas&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mensaje&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;⚠ Alertas para *&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">CITY&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">* (próximas 24-120 h):&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">alertas&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">enviar_alerta&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mensaje&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="consideraciones-finales">Consideraciones finales
&lt;/h2>&lt;p>En un principio iba a mandar la &lt;a class="link" href="https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/" >alerta por correo electrónico&lt;/a>
, que también es posible, pero me pareció más &lt;em>cool&lt;/em> hacerlo por Telegram.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/03/alerta-telegram.webp"
alt="Notificación al canal de telegram del programa.">&lt;figcaption>
&lt;p>Notificación al canal de telegram del programa.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A mi me gusta ejecutar el programa durante el arranque de mi computadora. Claro que si no la arranco o estoy de vacaciones el programa no se ejecuta. Pero estoy bien con eso.&lt;/p>
&lt;p>También muestra las alertas en la terminal por si quiero ejecutarlo manualmente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/03/imagen.jpg"
alt="Resultados del programa en la terminal informando las alertas climáticas que encontró.">&lt;figcaption>
&lt;p>Resultados del programa en la terminal informando las alertas climáticas que encontró.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Algunos querrán ejecutar el programa en un &lt;a class="link" href="https://linuxmanr4.com/2019/04/26/agregar-tareas-cron-pfsense/" >cronjob&lt;/a>
, pero eso será al gusto de cada quien.&lt;/p>
&lt;p>Por último, hice el proyecto usando &lt;a class="link" href="https://linuxmanr4.com/2024/11/13/poetry-comandos-basicos-python/" >Poetry&lt;/a>
para el manejo de las dependencias y entornos virtuales.&lt;/p>
&lt;p>¿Listo para crear tu propio sistema de alertas? Clona el repositorio &lt;a class="link" href="https://github.com/linuxman/alerta_climatica" target="_blank" rel="noopener"
>Alerta Climática desde GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y adáptalo a tus necesidades.&lt;/p></description></item><item><title>Fases lunares: un programa en Python, un script en Bash y un calendario web</title><link>https://linuxmanr4.com/2025/02/27/fases-lunares-python-bash-flask/</link><pubDate>Thu, 27 Feb 2025 15:50:24 +0000</pubDate><guid>https://linuxmanr4.com/2025/02/27/fases-lunares-python-bash-flask/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/02/fases_lunares_id.jpg" alt="Featured image of post Fases lunares: un programa en Python, un script en Bash y un calendario web" />&lt;p>En una reunión familiar, me pidieron que revisara el telescopio de mis sobrinos. En realidad, era una especie de catalejo para observaciones terrestres, pero para ver la luna funcionaba bastante bien.&lt;/p>
&lt;p>Salvo por algunos detalles con el trípode, funcionaba perfectamente para hacer observaciones de nuestro satélite natural.&lt;/p>
&lt;p>Mi papá se quedó con ganas de mirar, así que decidí llevarme mi telescopio. Sin embargo, en esos días hizo mucho frío y no iba a sacarlo para observar la luna.&lt;/p>
&lt;p>Luego llegó la hora de esperar la siguiente luna llena y que las condiciones meteorológicas fueran las adecuadas. Solo había un problema: ¿cuándo sería la próxima luna llena?&lt;/p>
&lt;h2 id="qué-son-las-fases-lunares">¿Qué son las fases lunares?
&lt;/h2>&lt;p>Intentar explicar como ocurren las fases lunares puede ser un poco complicado. Sobre todo en un cosmos en lo que todo se mueve, todo gira, todo el tiempo.&lt;/p>
&lt;p>Les comparto este video de &lt;a class="link" href="https://www.youtube.com/@astronomikatv" target="_blank" rel="noopener"
>Astronomika TV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el que describe con lujo de detalles todo lo que se tiene que saber sobre las fases de la luna.&lt;/p>
&lt;p>Por cierto, si tienes interés en temas de astronomía, definitivamente es el canal de Youtube que debes de mirar.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/rs3yfGxC4n4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="un-calendario-lunar-en-python">&lt;strong>Un calendario lunar en Python&lt;/strong>
&lt;/h2>&lt;p>Lo primero que se me ocurrió fue crear un calendario que pudiera ejecutar desde la terminal, claro, con Python.&lt;/p>
&lt;p>Así que me subí al tren de las inteligencias artificiales para generar algo de código, aprender a utilizarlas y no empezar desde cero.&lt;/p>
&lt;p>Empecé con Gemini de Google, pero parece que se le cruzaron los cables, porque el código que me sugirió no funcionaba y para colmo, me recomendó una librería inexistente. ¿Qué pasó, Google?&lt;/p>
&lt;p>Así que le di la oportunidad a la inteligencia artificial china &lt;a class="link" href="https://www.deepseek.com/" target="_blank" rel="noopener"
>DeepSeek&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, y tengo que decirles que me impresionó bastante. No es perfecta, pero fue un excelente punto de partida.&lt;/p>
&lt;p>Si el programa se ejecuta sin parámetros, mostrará el mes actual, pero si se le proporciona el año y el mes deseados, también lo hace.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/02/calendario%5Flunar%5Ffebrero%5F2025.jpg"
alt="Calendario lunar - febrero 2025">&lt;figcaption>
&lt;p>Calendario lunar - febrero 2025&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todo esto gracias a la librería &lt;code>ephem&lt;/code>, que es la responsable de calcular las fases lunares.&lt;/p>
&lt;p>Pueden darle un vistazo al código en &lt;a class="link" href="https://github.com/linuxman/calendario_lunar" target="_blank" rel="noopener"
>github Calendario Lunar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="script-en-bash-para-establecer-la-luna-como-fondo-de-escritorio">&lt;strong>Script en Bash para establecer la luna como fondo de escritorio&lt;/strong>
&lt;/h2>&lt;p>Pasaron unos días, y me pregunté si habría alguna forma de poner la fase lunar actual como fondo de escritorio.&lt;/p>
&lt;p>Esta vez no fue necesario recurrir a la IA. Encontré un script muy interesante en &lt;a class="link" href="https://github.com/desertplant/moon-phase-background?tab=readme-ov-file#moon-phase-background" target="_blank" rel="noopener"
>github moon-phase-background&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es básicamente el mismo, solo le hice algunas adaptaciones. Convertí la imagen a &lt;a class="link" href="https://linuxmanr4.com/2022/01/21/convertir-todas-las-imagenes-de-una-carpeta-a-webp/" >WebP&lt;/a>
para hacerla mucho más ligera.&lt;/p>
&lt;p>Curiosamente la imagen que descarga de la NASA es solamente de la luna, el script la combina con una imagen de fondo de un cielo estrellado, se puede cambiar pero me gustó como se ve así.&lt;/p>
&lt;p>Hice algunos cambios con &lt;a class="link" href="https://linuxmanr4.com/2016/09/05/agregar-texto-imagen-imagemagick/" >ImageMagick&lt;/a>
porque me daba algunos errores al poner el texto en la imagen con la información de la fase lunar.&lt;/p>
&lt;p>Y, para rematar, tuve que ajustar la propiedad que debía cambiar para establecer el fondo de escritorio, ya que yo uso &lt;a class="link" href="https://linuxmanr4.com/tags/xfce/" >XFCE&lt;/a>
en lugar de Cinnamon.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/usr/bin/env bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># updated for 2025&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Modificación de https://github.com/desertplant/moon-phase-background&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#isbig=false means background 5641x3650, moon image = 3840x2160, download ~ 5MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#isbig=true means background 8192x5641, moon image = 5760x3240, download ~ 12MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">isbig&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb">false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#go into directory of script no matter where it is called.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">wdir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>&lt;span class="nb">cd&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>dirname &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">BASH_SOURCE&lt;/span>&lt;span class="p">[0]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="p">&amp;amp;&lt;/span>&amp;gt;/dev/null &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nb">pwd&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="nv">$wdir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#get current hour of the year&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">num&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$((&lt;/span>&lt;span class="m">10#&lt;/span>&lt;span class="k">$(&lt;/span>date --utc +&lt;span class="s2">&amp;#34;%j&amp;#34;&lt;/span>&lt;span class="k">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="m">24&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">23&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">10#&lt;/span>&lt;span class="k">$(&lt;/span>date --utc +&lt;span class="s2">&amp;#34;%H&amp;#34;&lt;/span>&lt;span class="k">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Hora del año: &amp;#34;&lt;/span>&lt;span class="nv">$num&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#get phase/illumination% from text file edited from &amp;#34;https://svs.gsfc.nasa.gov/vis/a000000/a005100/a005187/mooninfo_2024.txt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># or current equivalent&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">phase&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>sed &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$num&lt;/span>&lt;span class="s2"> q;d&amp;#34;&lt;/span> phase.txt&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Fase: &amp;#34;&lt;/span>&lt;span class="nv">$phase&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># age: days in moon cycle so far&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Edad lunar: días del ciclo lunar transcurridos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">age&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>sed &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$num&lt;/span>&lt;span class="s2"> q;d&amp;#34;&lt;/span> age.txt&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Edad lunar: &amp;#34;&lt;/span>&lt;span class="nv">$age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#caption&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">text&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;fase: &lt;/span>&lt;span class="nv">$phase&lt;/span>&lt;span class="s2">% edad lunar: &lt;/span>&lt;span class="nv">$age&lt;/span>&lt;span class="s2"> &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># filename for dowloaded image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">im&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;moon.&lt;/span>&lt;span class="k">$(&lt;/span>&lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;%04d&amp;#34;&lt;/span> &lt;span class="nv">$num&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="s2">.tif&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Texto a insertar: &amp;#34;&lt;/span>&lt;span class="nv">$text&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Archivo a descargar: &amp;#34;&lt;/span>&lt;span class="nv">$im&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#URLs updated for 2025&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="nv">$isbig&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">true&lt;/span> &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> curl -LO &lt;span class="s2">&amp;#34;https://svs.gsfc.nasa.gov/vis/a000000/a005400/a005415/frames/5760x3240_16x9_30p/plain/&lt;/span>&lt;span class="nv">$im&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="c1"># 2025&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">wait&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#replace original file with designated background file and add background and caption with imagemagick&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> composite -gravity center &lt;span class="nv">$im&lt;/span> best.tif back.tif
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> magick back.tif -font Moon-2.0-Regular -fill &lt;span class="s1">&amp;#39;#b1ada7&amp;#39;&lt;/span> -pointsize &lt;span class="m">80&lt;/span> -gravity east -draw &lt;span class="s2">&amp;#34;text 150,1800 &amp;#39;&lt;/span>&lt;span class="nv">$text&lt;/span>&lt;span class="s2">&amp;#39;&amp;#34;&lt;/span> back.tif back.tif
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> curl -LO &lt;span class="s2">&amp;#34;https://svs.gsfc.nasa.gov/vis/a000000/a005400/a005415/frames/3840x2160_16x9_30p/plain/&lt;/span>&lt;span class="nv">$im&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="c1"># 2025&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">wait&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#replace orginal file with designated background file and add background and caption with imagemagick&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> composite -gravity center &lt;span class="nv">$im&lt;/span> best_small.tif back.tif
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> magick back.tif -font Moon-2.0-Regular -fill &lt;span class="s1">&amp;#39;#b1ada7&amp;#39;&lt;/span> -pointsize &lt;span class="m">50&lt;/span> -gravity east -draw &lt;span class="s2">&amp;#34;text 100,1200 &amp;#39;&lt;/span>&lt;span class="nv">$text&lt;/span>&lt;span class="s2">&amp;#39;&amp;#34;&lt;/span> back.tif back.tif
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="nv">$wdir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># first half of gsettings command forces background to reload, by assigning an empty picture and immediately replacing it with the updated back.tif file.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># gsettings set org.cinnamon.desktop.background picture-uri &amp;#34;&amp;#34; &amp;amp;&amp;amp; gsettings set org.cinnamon.desktop.background picture-uri &amp;#34;file://$wdir/back.tif&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Reducir el tamaño de la imagen convirtiendola a webp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">magick back.tif back.webp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Actualiza el wallpaper en pantalla XFCE.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para revisar que propiedad hay que ajustar:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># xfconf-query -c xfce4-desktop -m&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorVGA-0/workspace1/last-image -s &lt;span class="nv">$wdir&lt;/span>/back.webp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># remove downloaded moon file as not too use up storage.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rm &lt;span class="nv">$im&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Proceso terminado.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y este fue el resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/02/luna-llena-12-feb-2025.jpg">
&lt;/figure>
&lt;p>Ahora solo ejecuto el script cada vez que inicio sesión en mi computadora y listo, tengo la fase lunar actual en mi escritorio ¡Perfecto!&lt;/p>
&lt;h2 id="calendario-de-fases-lunares-en-flask">&lt;strong>Calendario de fases lunares en Flask&lt;/strong>
&lt;/h2>&lt;p>Pasó algo de tiempo, y me dije a mí mismo: ¿Y si haces la versión web?&lt;/p>
&lt;p>Nuevamente, me apoyé en DeepSeek para desarrollar algo en &lt;a class="link" href="https://flask.palletsprojects.com/es/stable/" target="_blank" rel="noopener"
>Flask&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Tengo que confesar que me sentí muy cómodo usando Flask. Creo que tiene algo que ver con mi experiencia usando &lt;a class="link" href="https://getpelican.com/" target="_blank" rel="noopener"
>Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como &lt;a class="link" href="https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos" target="_blank" rel="noopener"
>CMS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En menos de lo que canta un gallo, ya tenía la aplicación ejecutándose y&amp;hellip; pues que creen&amp;hellip; que tenía un error.&lt;/p>
&lt;p>Por alguna extraña razón que desconozco, las fases lunares no correspondían. Me daba luna nueva cuando debería ser llena, y muchas cosas raras.&lt;/p>
&lt;p>Tuve que revisar el código a mano y encontrar una solución. Eso me llevó algo de tiempo, pero mucho menos si hubiera empezado desde cero.&lt;/p>
&lt;p>Estaba por investigar cómo publicar en mi &lt;a class="link" href="https://manage.banahosting.com/aff.php?aff=3351" target="_blank" rel="noopener"
>hosting&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una aplicación con Flask cuando decidí no romperme la cabeza.&lt;/p>
&lt;p>Tomé el código HTML que generó la aplicación Flask y lo guardé en un archivo &lt;code>index.html&lt;/code>.&lt;/p>
&lt;p>A fin de cuentas, el próximo año actualizo el calendario al año 2026 y listo, asunto arreglado.&lt;/p>
&lt;p>Todavía le estoy haciendo mejoras a todos los códigos así que se aceptan sugerencias.&lt;/p>
&lt;p>Un detalle que me gustó es que, para mostrar la fase lunar aproximada, utilicé emojis.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2025/02/calendario%5Flunar%5Ffirefox.jpg"
alt="Calendario Lunar visto en Firefox.">&lt;figcaption>
&lt;p>Calendario Lunar visto en Firefox.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por lo tanto, se ven diferentes si utilizas un navegador distinto o el teléfono celular. Cada quien muestra la versión de emoji que tiene más a la mano.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/calendario-lunar/" >Calendario de fases lunares&lt;/a>
&lt;/p>
&lt;p>¿Qué les parece el resultado? ¿Ya están listos para la próxima &lt;a class="link" href="https://linuxmanr4.com/2013/03/26/semana-santa-luna-llena/" >luna llena&lt;/a>
?&lt;/p></description></item><item><title>Windows XP ¿Sigue vivo? ¿Es posible utilizarlo en la actualidad?</title><link>https://linuxmanr4.com/2024/08/30/windows-xp-es-posible-utilizarlo/</link><pubDate>Fri, 30 Aug 2024 17:48:53 +0000</pubDate><guid>https://linuxmanr4.com/2024/08/30/windows-xp-es-posible-utilizarlo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/windows_xp_en_la_actualidad.jpg" alt="Featured image of post Windows XP ¿Sigue vivo? ¿Es posible utilizarlo en la actualidad?" />&lt;p>¿Es posible utilizar Windows XP en la actualidad? bueno, pues depende. El otro día me llegó un equipo muy básico. El disco duro de 80 GB falló y pues era hora de ver cuales eran sus opciones.&lt;/p>
&lt;p>Windows 7 descartado, simplemente no iba a funcionar. Y mucho menos un Windows 10. ¿Una distribución de Linux? es muy probable que si funcionara, pero conociendo a mi gente me iban a pedir nuevamente un Windows &amp;ldquo;a ese si le sé&amp;rdquo;.&lt;/p>
&lt;h2 id="windows-xp-de-32-bits-es-seguro">Windows XP de 32 bits ¿Es seguro?
&lt;/h2>&lt;p>La respuesta corta es NO, no es seguro.&lt;/p>
&lt;p>Pero la decisión ya estaba tomada con el Windows XP de 32 bits de toda la vida. Que era el sistema operativo que tenía instalado antes de que fallara el disco duro.&lt;/p>
&lt;p>Microsoft finalizó el soporte oficial para Windows XP en abril de 2014. Esto significa que no se reciben actualizaciones de seguridad, lo que deja al sistema vulnerable a nuevas amenazas y malware.&lt;/p>
&lt;p>Aunque si somos justos, este es un problema irrelevante. Las versiones más recientes de Windows siguen teniendo problemas de seguridad AÚN con las actualizaciones y las actualizaciones son un tema aparte ¿Cierto &lt;a class="link" href="https://linuxmanr4.com/2024/08/20/que-es-una-distribucion-linux-inmutable/" >CrowdStrike&lt;/a>
?&lt;/p>
&lt;p>Pero sin actualizaciones de seguridad, los sistemas que aún utilizan Windows XP son más susceptibles a ataques cibernéticos. Los hackers pueden explotar vulnerabilidades conocidas que no serán corregidas.&lt;/p>
&lt;h2 id="los-drivers">Los drivers
&lt;/h2>&lt;p>Tuve mucha suerte en este aspecto. Hubo un tiempo en el que las personas que se dedicaban a armar equipos tenían la costumbre de pegar con cinta el CD de drivers de la motherboard dentro del gabinete.&lt;/p>
&lt;p>Así que al abrir la computadora, ahí estaba totalmente aterrado el CD &lt;em>coof coooof&lt;/em> que después de una buena limpieza (inserte una nube de polvo aquí) funcionó perfectamente.&lt;/p>
&lt;p>De lo contrario me esperaba una búsqueda en el sitio web del fabricantes (si es que todavía existía) o de lo contrario, una buena búsqueda en sitios de dudosa confianza, pero así son los gajes del oficio.&lt;/p>
&lt;p>Al terminar y siguiendo con la tradición de una buena idea, volví a pegar el CD en el fondo del gabinete.&lt;/p>
&lt;h2 id="el-navegador">El Navegador
&lt;/h2>&lt;p>Este era un problema serio. Las versiones más modernas de Google Chrome ya no tienen actualizaciones ni siquiera para Windows 7.&lt;/p>
&lt;p>Intenté utilizar una versión más antigua de Chrome. Algunos videos de Youtube recomendaban la versión 115. Pero me di cuenta de que el archivo de instalación traía un &amp;ldquo;regalito&amp;rdquo;.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-3.png"
alt="Virus y malware en los programas.">&lt;figcaption>
&lt;p>Virus y malware en los programas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Intenté con una versión antigua de Opera que parecía funcionar, pero problemas con los certificados de seguridad dieron al traste con la experiencia.&lt;/p>
&lt;h3 id="mozilla-firefox">Mozilla Firefox
&lt;/h3>&lt;p>El ganador fue Mozilla Firefox en su versión ESR (Extended Support Release) que sigue funcionando porque gestiona de manera independiente los certificados de seguridad en lugar de depender del sistema operativo para esta tarea.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-2.png"
alt="Firefox ESR de 32-bit.">&lt;figcaption>
&lt;p>Firefox ESR de 32-bit.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://www.mozilla.org/es-MX/firefox/enterprise/" target="_blank" rel="noopener"
>Firefox ESR&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
recibe actualizaciones de seguridad y correcciones de errores, pero no incluye las nuevas características que se introducen en las versiones regulares de Firefox hasta que se lanza una nueva versión ESR.&lt;/p>
&lt;h3 id="supermium">Supermium
&lt;/h3>&lt;p>Pues con la novedad de que Firefox dejó de funcionar y nuevamente me di a la tarea de buscar alternativas y apareción con la forma de &lt;a class="link" href="https://github.com/win32ss/supermium" target="_blank" rel="noopener"
>Supermium&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;strong>Supermium&lt;/strong> es un navegador basado en &lt;strong>Chromium&lt;/strong> diseñado específicamente para sistemas operativos antiguos, como &lt;strong>Windows 7, 2003, Vista e incluso XP&lt;/strong>, que ya no reciben soporte oficial. Combina la esencia moderna de Chromium con optimizaciones para hardware veterano, y ofrece una buena experiencia de rendimiento y compatibilidad.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/imagen.png">
&lt;/figure>
&lt;p>Lo estoy probando en un entorno virtualizado, pero hasta el momento se porta bastante bien. Lo tendré en cuenta si se me llega a ofrecer.&lt;/p>
&lt;h2 id="thunderbird-para-el-correo-electrónico">Thunderbird para el correo electrónico
&lt;/h2>&lt;p>En este punto no hice mucha búsqueda. &lt;a class="link" href="https://www.thunderbird.net/en-US/thunderbird/all/" target="_blank" rel="noopener"
>Thunderbird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ha sido mi cliente de correo electrónico desde hace mucho tiempo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-4.png"
alt="Thunderbird de 32-bit">&lt;figcaption>
&lt;p>Thunderbird de 32-bit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>También tiene disponible una versión de 32 bits y que funciona con conexiones seguras.&lt;/p>
&lt;p>Claro que no vas a tener todas las mejoras de la la última versión pero funciona bastante bien.&lt;/p>
&lt;h2 id="y-el-office">¿Y el Office?
&lt;/h2>&lt;p>Antes de que el Office se convirtiera en un servicio funcionaba muy bien. Creo que todavía se puede &amp;ldquo;conseguir&amp;rdquo; 😉😉 un Office 2007 o un 2003 pero igual que con el navegador estas versiones pueden incluir virus o malware.&lt;/p>
&lt;p>Claro que también esta disponible una versión de LibreOffice de 32 bits, pero no es la más moderna.&lt;/p>
&lt;p>Pude &lt;a class="link" href="http://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/win/x86/LibreOffice_5.4.7.2_Win_x86.msi" target="_blank" rel="noopener"
>descargar la versión de LibreOffice 5.4.7. 2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. y funcionó muy bien.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/libre%5Foffice%5F5%5F4%5F7%5F2.jpg"
alt="LibreOffice 5.4 funcionando en Windows XP.">&lt;figcaption>
&lt;p>LibreOffice 5.4 funcionando en Windows XP.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero volvemos al punto de que el usuario puede o no querer utilizarlo ¿Les ha pasado?&lt;/p>
&lt;p>En fin, opciones hay.&lt;/p>
&lt;h2 id="el-antivirus">El Antivirus
&lt;/h2>&lt;p>Por último le quería instalar un antivirus, pero las opciones tradicionales como Avira o AVG ya no tienen una versión para Windows XP.&lt;/p>
&lt;p>Tampoco quería un antivirus que impactara negativamente en el rendimiento del equipo.&lt;/p>
&lt;p>Y me encontré con un antivirus italiano llamado &lt;a class="link" href="https://www.tgsoft.it/" target="_blank" rel="noopener"
>VirIT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es más feo que la reforma educativa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-6.png"
alt="VirIT un antivirus ligero para Windows XP">&lt;figcaption>
&lt;p>VirIT un antivirus ligero para Windows XP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La selección de colores no es muy afortunada, le faltan algunas etiquetas a la interfaz. Sólo esta disponible en inglés e italiano y a la fecha no le he visto que tenga alguna opción de actualización automática.&lt;/p>
&lt;p>Sin embargo, tiene actualizaciones frecuentes, es muy ligero y tiene un &lt;strong>Monitor&lt;/strong> que revisa la actividad del equipo en búsqueda de virus o actividades sospechosas.&lt;/p>
&lt;p>Funcionó muy bien en Windows XP, pero cuando lo probé en una máquina virtual de Windows 7 el equipo no pudo reiniciar. Afortunadamente tenía un respaldo pero no fue algo agradable. Así que tómelo en cuenta antes de instalar este antivirus en otro sistema que no sea Windows XP.&lt;/p>
&lt;p>No es lo mejor, pero es lo que hay.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>¿Es posible usar Windows XP en la actualidad? Sí.&lt;/p>
&lt;p>¿Es recomendable? pues no mucho.&lt;/p>
&lt;p>¿Es mejor usar Linux? ¡Definitivamente! pero no es para todos.&lt;/p>
&lt;p>Siendo honestos, no vamos a tirar un equipo que funciona decentemente, puede servir muy bien como un procesador de textos, hacer algunas consultas por Internet e imprimir tareas y trabajos.&lt;/p>
&lt;p>Windows ha tenido esa mala tradición de que cada vez que aparece una actualización mayor es necesario cambiar de hardware para que pueda funcionar y eso no esta bien.&lt;/p>
&lt;p>Tengo más de &lt;a class="link" href="https://linuxmanr4.com/2023/01/09/una-decada-con-manjaro/" >10 años con Manjaro&lt;/a>
y no pienso dejarlo. El hardware todavía se desempeña bastante bien y con la mejora de un SSD ha cobrado nueva vida.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-7.jpg">
&lt;/figure>
&lt;p>¿Ustedes mis 4 lectores se han visto en una situación similar? ¿Conocen otros programas que funcionen bien en Windows XP? Los leo en los comentarios.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>¿Qué es una distribución Linux inmutable?</title><link>https://linuxmanr4.com/2024/08/20/que-es-una-distribucion-linux-inmutable/</link><pubDate>Tue, 20 Aug 2024 18:32:02 +0000</pubDate><guid>https://linuxmanr4.com/2024/08/20/que-es-una-distribucion-linux-inmutable/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/linux_inmutable.jpg" alt="Featured image of post ¿Qué es una distribución Linux inmutable?" />&lt;p>El otro día vi un anuncio en el nuevo sitio de Manjaro que decía más o menos así &lt;a class="link" href="https://manjaro.org/news/2024/manjaro-immutable-testing" target="_blank" rel="noopener"
>Manjaro Inmutable disponible para pruebas de la comunidad&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Okeeeey, pero ¿Qué es una distribución inmutable? y sobre todo, ¿Por qué una distribución &lt;em>rolling release&lt;/em> como Manjaro adoptaría algo así? y la respuesta corta está en dos palabras &lt;strong>seguridad&lt;/strong> y &lt;strong>estabilidad&lt;/strong>.&lt;/p>
&lt;h2 id="qué-es-una-distribución-linux-inmutable">¿Qué es una distribución Linux inmutable?
&lt;/h2>&lt;p>Supongamos que nuestra distribución linux es como un edificio. Los cimientos, las columnas principales, el techo y las paredes serán siempre las mismas. No hay forma de modificar estas estructuras que sostienen el edificio, son inamovibles, inmutables.&lt;/p>
&lt;p>Bueno, pues esta estructura no es una estructura cualquiera, ha sido probada a prueba de terremotos, tsunamis, vientos fuertes, vamos que aunque sople el lobo feroz no se va a caer ya que es muy sólida.&lt;/p>
&lt;p>Pues lo mismo ocurre con este tipo de distribuciones linux inmutables. Las partes importantes trabajan bien en su conjunto. Su construcción es sólida y no se puede modificar.&lt;/p>
&lt;p>Eso garantiza que funcione contra viento y marea. Y por lo mismo son más estables y seguras.&lt;/p>
&lt;h2 id="por-qué-son-inmutables">¿Por qué son inmutables?
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Mayor seguridad:&lt;/strong> Al ser de solo lectura, se reduce significativamente la superficie de ataque. Es más difícil que un virus o malware pueda infectar o modificar el sistema operativo.&lt;/li>
&lt;li>&lt;strong>Mayor estabilidad:&lt;/strong> Como no se pueden hacer cambios accidentales en los archivos críticos, se reducen las posibilidades de que el sistema se vuelva inestable o deje de funcionar.&lt;/li>
&lt;li>&lt;strong>Facilidad de recuperación:&lt;/strong> Si algo sale mal, puedes restaurar fácilmente el sistema a un estado anterior, ya que la parte inmutable no ha sido modificada.&lt;/li>
&lt;li>&lt;strong>Actualizaciones más seguras:&lt;/strong> Las actualizaciones solo surten efecto si se completan con éxito. Si algo falla durante el proceso, el sistema se mantiene igual que antes, protegiéndote de posibles problemas.&lt;/li>
&lt;/ul>
&lt;h2 id="y-las-aplicaciones">¿Y las aplicaciones?
&lt;/h2>&lt;p>Muchas distribuciones inmutables utilizan contenedores (como por ejemplo &lt;a class="link" href="https://docs.docker.com/" target="_blank" rel="noopener"
>dockers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) para aislar las aplicaciones y los datos del sistema base, lo que aumenta aún más la seguridad.&lt;/p>
&lt;p>También pueden emplear formatos como &lt;a class="link" href="https://flatpak.org/" target="_blank" rel="noopener"
>Flatpak&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://snapcraft.io/docs" target="_blank" rel="noopener"
>Snap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que permiten instalar aplicaciones de forma aislada y segura, sin necesidad de modificar el sistema de archivos principal.&lt;/p>
&lt;p>Algunas distribuciones inmutables permiten crear capas de usuario donde se pueden instalar aplicaciones de forma más tradicional, pero siempre manteniendo el sistema base protegido.&lt;/p>
&lt;h2 id="para-quién-son-las-distribuciones-linux-inmutables">¿Para quién son las distribuciones Linux inmutables?
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Usuarios que priorizan la seguridad:&lt;/strong> Si buscas un sistema altamente seguro y estable, las distribuciones inmutables son una excelente opción.&lt;/li>
&lt;li>&lt;strong>Desarrolladores:&lt;/strong> Pueden ser útiles para crear entornos de desarrollo aislados y reproducibles.&lt;/li>
&lt;li>&lt;strong>Sistemas embebidos:&lt;/strong> En dispositivos con recursos limitados, la inmutabilidad puede ayudar a garantizar la fiabilidad.&lt;/li>
&lt;li>&lt;strong>Servidores:&lt;/strong> Para servidores que requieren alta disponibilidad y seguridad.&lt;/li>
&lt;/ul>
&lt;p>No cabe duda que este tipo de distribuciones inmutables están orientadas a la industria. Nadie puede evitar un daño catastrófico por fenómenos de la naturaleza o fallas en el &lt;em>hardware&lt;/em> pero para eso ya existen medidas.&lt;/p>
&lt;h2 id="el-fiasco-de-crowdstrike">El fiasco de CrowdStrike
&lt;/h2>&lt;p>Lo que nadie esperó fue un fallo como el que provocó la actualización de &lt;a class="link" href="https://es.wikipedia.org/wiki/Incidente_de_CrowdStrike_de_2024" target="_blank" rel="noopener"
>CrowdStrike&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
el 19 de julio pasado.&lt;/p>
&lt;p>Lo irónico del asunto fue que una &lt;a class="link" href="https://linuxmanr4.com/2014/11/25/actualizar-microsip-con-un-servidor-web-local/" >actualización&lt;/a>
de un programa dedicado a la seguridad diera al traste con miles de servidores de todo el mundo provocando un caos mundial.&lt;/p>
&lt;p>Y si mi memoria no me falla, AVG el antivirus protagonizó algo similar hace unos años al detectar un archivo fundamental en el arranque de Windows como una amenaza y al reiniciar lo dejaba inutilizable, en todos lados se cuecen habas.&lt;/p>
&lt;p>Afortunadamente México no tuvo serias afectaciones, porque hay que reconocer que es poco el software actualizado y con programas de seguridad ¿Cierto Coppel? léase &lt;a class="link" href="https://www.eleconomista.com.mx/finanzaspersonales/Por-falla-en-sistemas-Coppel-perdonara-intereses-moratorios-a-sus-clientes-20240418-0126.html" target="_blank" rel="noopener"
>Por falla en sistemas, Coppel perdonará intereses moratorios a sus clientes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Un sistema linux inmutable sería la respuesta a un caso como el de CrowdStrike.&lt;/p>
&lt;p>¿Usted que opina? ¿Instalaría una Distribución de &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Linux&lt;/a>
Inmutable?&lt;/p></description></item><item><title>Código de error: 0x80070035 en OpenMediaVault</title><link>https://linuxmanr4.com/2024/08/07/codigo-de-error-0x80070035-en-openmediavault/</link><pubDate>Wed, 07 Aug 2024 19:36:37 +0000</pubDate><guid>https://linuxmanr4.com/2024/08/07/codigo-de-error-0x80070035-en-openmediavault/</guid><description>&lt;p>Después de más de una década de servicio y con el fallo de un disco duro llegó el momento de actualizar el NAS con OpenMediaVault, pero otra vez aparecío un feo error, el tristemente célebre 0x80070035.&lt;/p>
&lt;h2 id="contexto">Contexto
&lt;/h2>&lt;p>Verán, durante muchos años como pueden leer en &lt;a class="link" href="https://linuxmanr4.com/2013/10/01/nas-freenas-nas4free-openmediavault/" >FreeNAS vs NAS4Free vs OpenMediaVault&lt;/a>
mi NAS funcionó prácticamente sin problemas, pero nada es eterno y una falla en uno de sus discos duros me dio la oportunidad de actualizarlo.&lt;/p>
&lt;p>Tomé algunos screenshots de la configuración anterior a manera de respaldo, descargué la versión más reciente de &lt;a class="link" href="https://www.openmediavault.org/" target="_blank" rel="noopener"
>OpenMediaVault&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &amp;ldquo;juimonos&amp;rdquo; a la aventura.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image.jpg">
&lt;/figure>
&lt;p>Todo parecía funcionar correctamente. Claro que me tuve que acostumbrar a la nueva interfaz y a la nueva ubicación de las opciones, pero eso era algo que esperaba.&lt;/p>
&lt;h2 id="error-al-abrir-una-carpeta-compartida-de-nas-en-un-cliente-windows-10">Error al abrir una carpeta compartida de NAS en un cliente Windows 10.
&lt;/h2>&lt;p>Lamentablemente en una computadora virtual que tengo con &lt;a class="link" href="https://linuxmanr4.com/2021/10/08/windows7-chrome-neterr_cert_authority_invalid/" >Windows 10 hubo un error&lt;/a>
al intentar abrir las carpetas compartidas del NAS.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/Error-0x80070035-en-Windows-10.jpg">
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Código de error: 0x80070035
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">The network path was not found.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El error 0x80070035 es un código de error común en Windows que suele aparecer cuando intentas acceder a una carpeta o unidad compartida en una red. Básicamente, tu sistema operativo está indicando que no puede encontrar la ruta de red especificada.&lt;/p>
&lt;p>Descarté casi de inmediato un problema con OpenMediaVault ya que sólo un equipo presentaba este error. Lo &lt;a class="link" href="https://linuxmanr4.com/2009/10/17/probando-windows-seven/" >probé con Windows 7&lt;/a>
y con otros equipos con Windows 10 y sin problemas ¡Sólo uno presentaba este error!.&lt;/p>
&lt;p>En los foros de OpenMediaVault es un viejo conocido &lt;a class="link" href="https://forum.openmediavault.org/index.php?thread/42129-windows-giving-me-0x80070035-error-on-my-pc-after-i-ve-tried-most-workaround-my/" target="_blank" rel="noopener"
>Windows giving me 0x80070035 error on my pc after I&amp;rsquo;ve tried most workaround, my wife&amp;rsquo;s pc works flawless&amp;hellip;&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que fue un buen punto de partida, pero que no solucionó el problema.&lt;/p>
&lt;p>Lo malo es que prácticamente con cada cambio tienes que reiniciar el equipo para revisar si el arreglo que quieres intentar funciona o no ¡Típico de Windows!&lt;/p>
&lt;h2 id="la-solución-que-me-funcionó-editar-el-registro">La solución que me funcionó, editar el registro.
&lt;/h2>&lt;p>En Youtube hay varios videos que prometen arreglar este problema y no dudo que en algunos casos si lo solucione, pero no fue mi caso.&lt;/p>
&lt;p>Lo solución que me funcionó involucra editar el Registro de Windows. No está de más recomendar que tengan mucho cuidado al editar el registro, si se hace mal puede ocasionar muchos problemas &amp;hellip; advertidos están.&lt;/p>
&lt;p>Inicio - Ejecutar - &lt;strong>regedit.exe&lt;/strong>&lt;/p>
&lt;p>Luego seguir la siguiente ruta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/Edicion-del-Registro-de-Windows.jpg">
&lt;/figure>
&lt;p>Encontrar el parámetro &lt;strong>AllowInsecureGuestAuth&lt;/strong>&lt;/p>
&lt;p>En mi caso NO estaba presente este parámetro y lo tuve que dar de alta. Presionamos el botón derecho en cualquier parte blanca del lado derecho del editor de Registro, presionamos &lt;strong>New&lt;/strong> - &lt;strong>Dword (32bit) Value&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image.png">
&lt;/figure>
&lt;p>El nombre del valor es &lt;strong>AllowInsecureGuestAuth&lt;/strong> , el value data es &lt;strong>1&lt;/strong> y la base es &lt;strong>Hexadecimal&lt;/strong>. Aquí tienen la imagen para que les sirva de referencia.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/08/image-1.png">
&lt;/figure>
&lt;p>Salimos del editor de Registro y reiniciamos la computadora (por enésima vez).&lt;/p>
&lt;p>Después de aplicar este consejo, pude tener acceso a las carpetas del NAS con Windows 10 en la computadora problemática.&lt;/p>
&lt;p>Por cierto, esta nueva versión de OpenMediaVault hace uso de &lt;a class="link" href="https://www.docker.com/resources/what-container/" target="_blank" rel="noopener"
>dockers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que lo hace muuuuy interesante, pero esa es otra historia ¡Hasta la próxima!&lt;/p></description></item><item><title>Vincular Alexa con Spotify: Un reto inesperado</title><link>https://linuxmanr4.com/2024/06/18/vincular-alexa-con-spotify/</link><pubDate>Tue, 18 Jun 2024 15:23:33 +0000</pubDate><guid>https://linuxmanr4.com/2024/06/18/vincular-alexa-con-spotify/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/06/problemas-al-vincular-alexa-y-spotify.jpg" alt="Featured image of post Vincular Alexa con Spotify: Un reto inesperado" />&lt;p>El fin de semana me pidieron ayuda para vincular la aplicación de Alexa con Spotify.&lt;/p>
&lt;p>Algo que debería de ser de lo más sencillo resultó en un tortuoso camino que lamentablemente no documenté bien.&lt;/p>
&lt;p>Dicho lo anterior, escribo este artículo para que usted no pase demasiado tiempo tratando de resolver un problema que para empezar no debería de existir.&lt;/p>
&lt;h2 id="vincular-la-cuenta-de-alexa-con-spotify">Vincular la cuenta de Alexa con Spotify
&lt;/h2>&lt;p>En teoría, uno debería de abrir la aplicación de Alexa en el celular y agregar el servicio de Spotify ¡Simple! perooo noooooo&lt;/p>
&lt;p>Al avanzar se topa uno con un error que impide la vinculación.&lt;/p>
&lt;p>Lamentablemente no tomé un screenshot, pero dice que no es posible hacer la vinculación y que es necesario actualizar la aplicación de Amazon Alexa.&lt;/p>
&lt;p>Al visitar la Google Play Store para revisar si la &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.amazon.dee.app&amp;amp;pcampaignid=web_share" target="_blank" rel="noopener"
>aplicación de Alexa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tenía instalada en mi celular era la versión más reciente.&lt;/p>
&lt;p>Al revisar los comentarios me doy cuenta de que no soy el único con el problema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/06/image.png">
&lt;/figure>
&lt;h2 id="empezar-por-el-final-abre-spotify">Empezar por el final, abre Spotify
&lt;/h2>&lt;p>Me di cuenta de que estaba en un callejón sin salida. Fue entonces que decidí abrir la aplicación de &lt;a class="link" href="https://linuxmanr4.com/2018/09/03/un-recorrido-nostalgico-por-los-reproductores-musicales-de-mi-vida/" >Spotify&lt;/a>
en el mismo celular. Si no la tiene instalada ¡Hágalo! e ingrese los datos de su cuenta.&lt;/p>
&lt;p>Otra vez no documenté bien el proceso, pero me apareció una opción para agregar Spotify al Alexa, le dije que sí. Después de unos instantes todo fluyó como debía y ¡Voalá! ya estaban vinculadas las apps, así de fácil, como tiene que ser.&lt;/p>
&lt;h2 id="sospechosismos">Sospechosismos
&lt;/h2>&lt;p>Si uno pensara mal, tal parece que Amazon quiere evitar la vinculación para que pagues la suscripción a &lt;a class="link" href="https://music.amazon.com.mx/" target="_blank" rel="noopener"
>Amazon Music&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y se que muchos terminarán haciéndolo sólo para evitar las interrupciones o esos rodeos que toma para no reproducir la canción que tu quieres en ese momento.&lt;/p>
&lt;p>En fin, espero que este consejo les ahorre algo de tiempo ¡Hasta la próxima!&lt;/p></description></item><item><title>Aprendiendo React, Mi experiencia.</title><link>https://linuxmanr4.com/2024/04/26/aprendiendo-react-mi-experiencia/</link><pubDate>Fri, 26 Apr 2024 18:03:58 +0000</pubDate><guid>https://linuxmanr4.com/2024/04/26/aprendiendo-react-mi-experiencia/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/04/aprendiendo-react.jpg" alt="Featured image of post Aprendiendo React, Mi experiencia." />&lt;p>Este es un experimento personal que me sirvió para entender como crear una aplicación con React.&lt;/p>
&lt;p>El propósito del proyecto es Calcular aproximaciones de π usando series infinitas. Un tema del que ya he escrito anteriormente: &lt;a class="link" href="https://linuxmanr4.com/2023/09/07/como-calcular-pi-con-python-metodos-y-ejemplos/" >Cómo calcular Pi con Python: métodos y ejemplos&lt;/a>
.&lt;/p>
&lt;h2 id="videos">Videos
&lt;/h2>&lt;p>Para comenzar vi unos cuantos videos en Youtube, busque que fueran lo más sencillo posible, porque lo primero era configurar Code y entender la mecánica de desarrollo. Me gustó &lt;a class="link" href="https://www.youtube.com/watch?v=wGxDfSWC4Ww" target="_blank" rel="noopener"
>Aprende React en 15 Minutos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Víctor Robles.&lt;/p>
&lt;p>Claro que con esto logro un entendimiento muy básico, pero es un buen comienzo.&lt;/p>
&lt;p>El tutorial de React &lt;a class="link" href="https://es.react.dev/learn/tutorial-tic-tac-toe" target="_blank" rel="noopener"
>Tutorial: Tres en línea&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
empieza bien y de golpe sube tremendamente el nivel y es fácil desanimarse.&lt;/p>
&lt;h2 id="uso-de-ia">Uso de IA
&lt;/h2>&lt;p>Les recomiendo el uso de las IA para aprender un nuevo lenguaje. No solo son útiles para generar código, ayudan a entender porciones de código.&lt;/p>
&lt;p>Usé dos, &lt;a class="link" href="https://gemini.google.com/app" target="_blank" rel="noopener"
>Gemini&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Google y una reciente novedad &lt;a class="link" href="https://duckduckgo.com/?q=DuckDuckGo&amp;amp;ia=chat" target="_blank" rel="noopener"
>AI Chat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de DuckDuckGo.&lt;/p>
&lt;p>Me pareció mucho más sencillo preguntarle mis dudas a estas inteligencias que hacer consultas en los buscadores.&lt;/p>
&lt;h2 id="ventajas-de-react">Ventajas de React
&lt;/h2>&lt;p>Para mi es muy pronto enumerar las ventajas de React. Hablando específicamente de este proyecto puedo decir que el uso de componentes es una maravilla.&lt;/p>
&lt;p>Cada algoritmo de cálculo se hizo individualmente ¡Divide y vencerás!&lt;/p>
&lt;p>El entorno de desarrollo es muy intuitivo, un error y te lo hace saber.&lt;/p>
&lt;p>Y el poder jugar con el parámetro de iteraciones en un entorno de javascript lo hace muy rápido, prácticamente todo se ejecuta en el navegador.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Este es un proyecto muy simple, si hay algo que hice mal por favor hágamelo saber.&lt;/p>
&lt;p>Por el momento estoy revisando &lt;a class="link" href="https://www.freecodecamp.org/news/tag/react/" target="_blank" rel="noopener"
>React en freeCodeCamp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
donde hay temas muy interesantes.&lt;/p>
&lt;p>Pueden ver el resultado de este experimento en &lt;a class="link" href="https://linuxmanr4.com/pi-react/" >Calculando valores de π con React&lt;/a>
&lt;/p>
&lt;p>Si quieren, pueden revisar el código en GitHub &lt;a class="link" href="https://github.com/linuxman/pi-react" target="_blank" rel="noopener"
>Pi-React&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Desactiva las animaciones de inicio de Manjaro ¡Bye bye Plymouth!</title><link>https://linuxmanr4.com/2024/04/06/desactiva-las-animaciones-de-inicio-de-manjaro-bye-bye-plymouth/</link><pubDate>Sat, 06 Apr 2024 16:17:34 +0000</pubDate><guid>https://linuxmanr4.com/2024/04/06/desactiva-las-animaciones-de-inicio-de-manjaro-bye-bye-plymouth/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/04/Desactiva-las-animaciones-de-inicio-de-Manjaro.jpg" alt="Featured image of post Desactiva las animaciones de inicio de Manjaro ¡Bye bye Plymouth!" />&lt;p>Pues nuevamente me enfrenté a un arranque en modo de emergencia. El problema es que durante el arranque, el programa encargado de las animaciones llamado Plymouth no me dejaba ver los problemas durante el arranque.&lt;/p>
&lt;p>Afortunadamente el modo de emergencia me permite manipular los archivos del sistema para intentar arreglar el equipo.&lt;/p>
&lt;h2 id="editar-el-archivo-de-configuración">Editar el archivo de configuración
&lt;/h2>&lt;p>El &lt;strong>sudo&lt;/strong> no es necesario si estas en &lt;a class="link" href="https://linuxmanr4.com/2024/01/18/nvidia-nouveau-congelamientos-y-otras-pesadillas/" >modo emergencia&lt;/a>
, porque ya ingresaste como &lt;em>root&lt;/em>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo nano /etc/default/grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="buscar-la-línea">Buscar la línea
&lt;/h2>&lt;p>Buscar la línea que dice &lt;strong>GRUB_CMDLINE_LINUX_DEFAULT&lt;/strong>&lt;/p>
&lt;p>Y quitar la palabra &lt;strong>splash&lt;/strong> de la línea&lt;/p>
&lt;p>Guardar el archivo presionando &lt;strong>Ctrl + O&lt;/strong> y luego &lt;strong>Ctrl + X&lt;/strong> para salir.&lt;/p>
&lt;h2 id="aplicar-los-cambios-a-grub">Aplicar los cambios a Grub
&lt;/h2>&lt;p>Para aplicar los cambios es necesario teclear lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo grub-mkconfig -o /boot/grub/grub.cfg
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="reiniciar">Reiniciar
&lt;/h2>&lt;p>Para comprobar los cambios&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo reboot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esta forma podrá ver todos los mensajes que aparecen durante el arranque de &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/04/deshabilitar%5Fplymouth.jpg"
alt="Al desactivar plymouth se muestran los mensajes que ocurren durante el arranque.">&lt;figcaption>
&lt;p>Al desactivar plymouth se muestran los mensajes que ocurren durante el arranque.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para revertir los cambios basta con agregar nuevamente la palabra &lt;strong>splash&lt;/strong> y aplicar los cambios.&lt;/p>
&lt;h2 id="bonus-ocultar-el-menú-de-grub">Bonus: Ocultar el menú de Grub
&lt;/h2>&lt;p>También es posible ocultar el menú de GRUB. Nuevamente editamos el archivo &lt;em>/etc/default/grub&lt;/em> pero ahora buscamos esta opción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">GRUB_TIMEOUT_STYLE=menu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y cambiamos &lt;strong>menu&lt;/strong> por &lt;strong>hidden&lt;/strong>&lt;/p>
&lt;p>Aplicamos los cambios y listo.&lt;/p>
&lt;p>Al final resultó que mi equipo estaba teniendo problemas con un &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >disco duro&lt;/a>
, al desconectarlo pude iniciar normalmente.&lt;/p></description></item><item><title>Error reading data from the connection en Microsip</title><link>https://linuxmanr4.com/2024/01/30/error-reading-data-from-the-connection-en-microsip/</link><pubDate>Tue, 30 Jan 2024 22:19:39 +0000</pubDate><guid>https://linuxmanr4.com/2024/01/30/error-reading-data-from-the-connection-en-microsip/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/Error-reading-data-from-the-connection-Microsip.jpg" alt="Featured image of post Error reading data from the connection en Microsip" />&lt;p>¿Te enfrentas al frustrante error &amp;ldquo;Error reading data from the connection&amp;rdquo; en Microsip? No te preocupes, no estás solo.&lt;/p>
&lt;p>Hace un par de semanas apareció este error en una sola computadora que utiliza el sistema Microsip.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/02/error%5Freading%5Fdata%5Ffrom%5Fthe%5Fconnection.jpg">
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Error reading data from the connection.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Era un error particularmente molesto. Se presenta de forma aleatoria y termina por bloqueando el programa. No queda otra opción más que cerrarlo usando el administrador de tareas de Windows.&lt;/p>
&lt;h2 id="el-misterio">El misterio.
&lt;/h2>&lt;p>Pero ¿Qué provoca este error? anteriormente no aparecía. No hubo actualizaciones recientes, además era la única computadora que presentaba ese problema. Las demás que utilizan el mismo sistema no lo presentan.&lt;/p>
&lt;p>Buscando un poco en Internet descubrí que el mensaje era un error de la base de datos &lt;a class="link" href="https://firebirdsql.org/" target="_blank" rel="noopener"
>Firebird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero no daba una posible solución. Además, no podía hacer nada al respecto más que reportar el error al fabricante, pero no me di por vencido.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2018/05/10/python-ping-script-ip/" >Revisé las conexiones de red&lt;/a>
, cambié algunos cables, buscando problemas de red pero tampoco. Ese error se burlaba de mi como un pez que se lleva la carnada sin engancharse en el anzuelo.&lt;/p>
&lt;p>En algún lugar leí que posiblemente se deba a un fallo en la tarjeta de red. Poco probable, pero posible, así que decidí cambiarla pero el mensaje y sus problemas siguieron apareciendo.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>En mi mente rondaba una pregunta ¿Por qué Microsip pierde la conexión con el servidor? Y fue la palabra &lt;strong>conexión&lt;/strong> la que me dio una pista.&lt;/p>
&lt;p>Uno de los primeros pasos al configurar Microsip es precisamente la información de conexión al servidor.&lt;/p>
&lt;p>Este equipo tenía configurado el nombre de la computadora (hostname) y decidí cambiarlo por su dirección IP.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/informacion%5Fde%5Fconexion%5Fmicrosip.jpg"
alt="Información de la conexión al servidor de Microsip.">&lt;figcaption>
&lt;p>Información de la conexión al servidor de Microsip.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y como por arte de magia el problema desapareció y no se ha vuelto a presentar.&lt;/p>
&lt;p>Espero que este artículo le sea de utilidad a alguien más y le ahorre algo de tiempo.&lt;/p></description></item><item><title>NVIDIA, Nouveau, congelamientos y otras pesadillas.</title><link>https://linuxmanr4.com/2024/01/18/nvidia-nouveau/</link><pubDate>Thu, 18 Jan 2024 17:39:23 +0000</pubDate><guid>https://linuxmanr4.com/2024/01/18/nvidia-nouveau/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/nvidia-nouveau-amd-drivers-id.jpg" alt="Featured image of post NVIDIA, Nouveau, congelamientos y otras pesadillas." />&lt;p>Para empezar bien este 2024 les voy a platicar una historia sobre nvidia y sus drivers, si señor, otra vez.&lt;/p>
&lt;p>Actualizar Manjaro es una cosa rutinaria los lunes, tecleo mi &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >alias actualizador&lt;/a>
, voy por un café, quizás un reinicio y unos momentos después a trabajar. Y generalmente las cosas van bien y no, no es sarcasmo, es por eso que tengo más de 10 años con esta distribución (y con la misma computadora).&lt;/p>
&lt;p>Actualizar Manjaro generalmente trae cosas buenas pero hay días queee ¡Uffff! ¿Tienen tiempo?&lt;/p>
&lt;h2 id="congelamientos-y-cierres-de-sesión">Congelamientos y cierres de sesión.
&lt;/h2>&lt;p>Pues empecé a trabajar y sin decir agua va se congela mi computadora. Okeeeeeey, esto es raro, pero me ha pasado en otras ocasiones.&lt;/p>
&lt;p>Después de presionar el botón de reset, continué con mis actividades pero esta vez, en lugar de congelarse mi equipo lo que hizo fue que cerró la sesión de golpe y me pedía nuevamente mi contraseña para ingresar. Y eso amigos lectores, eso nunca me había pasado.&lt;/p>
&lt;p>Si hubiera sido un problema ocasional quizás lo hubiera dejado pasar, pero llegó a ser demasiado frecuente y demasiado inoportuno. Las cosas no podían seguir así.&lt;/p>
&lt;h2 id="inicia-la-investigación">Inicia la investigación.
&lt;/h2>&lt;p>Siempre siempre siempre hay que ir a los foros de manjaro. En particular, los comentarios sobre la actualización &lt;a class="link" href="https://forum.manjaro.org/t/stable-update-2024-01-13-kernels-systemd-qt5-mesa-dbus-firefox-thunderbird/155007" target="_blank" rel="noopener"
>\[Stable Update\] 2024-01-13 - Kernels, Systemd, Qt5, Mesa, Dbus, Firefox, Thunderbird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>No encontré nada relacionado con mi problemática, así que dejé mi comentario y aventuré una posible solución, pero estaba equivocado. Era necesario un mejor análisis.&lt;/p>
&lt;h2 id="hipótesis-de-probables-culpables">Hipótesis de probables culpables.
&lt;/h2>&lt;p>Como no era un problema conocido de la actualización ( &lt;em>Known issues and solutions&lt;/em>) toca el turno hacer hipótesis y confirmarlas.&lt;/p>
&lt;h3 id="la-aceleración-gráfica-de-los-navegadores">La aceleración gráfica de los navegadores.
&lt;/h3>&lt;p>Al principio creí que era un problema de Chrome y la aceleración gráfica, porque el &lt;em>crasheo&lt;/em> parecía coincidir con la reproducción de videos en Youtube.&lt;/p>
&lt;p>Incluso llegué a pensar que en parte era provocado por los nuevos mensajes en la plataforma de videos advirtiendo sobre el uso de bloqueadores de anuncios.&lt;/p>
&lt;p>Instalé otros navegadores, comencé con &lt;a class="link" href="https://brave.com/es/" target="_blank" rel="noopener"
>Brave&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en parte por su sistema integrado de bloqueador de anuncios, pero lo mismo. Y si el problema era Chrome muchos de los navegadores modernos actuales tienen su base en este navegador .&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/image.png"
alt="Opción de aceleración en el navegador Brave.">&lt;figcaption>
&lt;p>Opción de aceleración en el navegador Brave.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo malo es que pasó lo mismo con &lt;a class="link" href="https://www.mozilla.org/es-MX/firefox/new/" target="_blank" rel="noopener"
>Firefox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
así que no importaba que navegador usara con o sin aceleración gráfica el comportamiento era el mismo.&lt;/p>
&lt;p>Sospechoso descartado.&lt;/p>
&lt;h3 id="el-driver-libre-nouveau">El driver libre NOUVEAU.
&lt;/h3>&lt;p>Es tiempo de ser un poco más formal en la investigación ¡Vamos a los logs!&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">journalctl&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">p4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084d&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="n">data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">init&lt;/span> &lt;span class="n">failed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">19&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">coredump&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6898&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">🡕&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">Process&lt;/span> &lt;span class="mi">5915&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Xorg&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">user&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">dumped&lt;/span> &lt;span class="n">core&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Module&lt;/span> &lt;span class="n">linux&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">vdso&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">so&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="n">without&lt;/span> &lt;span class="n">build&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Stack&lt;/span> &lt;span class="n">trace&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">thread&lt;/span> &lt;span class="mi">5915&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#0 0x00007f213e25683c n/a (libc.so.6 + 0x8e83c)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#1 0x00007f213e206668 raise (libc.so.6 + 0x3e668)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#2 0x00007f213e1ee4b8 abort (libc.so.6 + 0x264b8)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#3 0x00005585e6deaa40 OsAbort (Xorg + 0x159a40)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#4 0x00005585e6dead7b FatalError (Xorg + 0x159d7b)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#5 0x00005585e6de2cf6 n/a (Xorg + 0x151cf6)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#6 0x00007f213e206710 n/a (libc.so.6 + 0x3e710)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#7 0x00007f213b970233 n/a (nouveau_dri.so + 0x958233)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#8 0x00007f213b9a1852 n/a (nouveau_dri.so + 0x989852)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#9 0x00007f213b9c1557 n/a (nouveau_dri.so + 0x9a9557)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#10 0x00007f213b9c199d n/a (nouveau_dri.so + 0x9a999d)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#11 0x00007f213b32be02 n/a (nouveau_dri.so + 0x313e02)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#12 0x00007f213d3e1398 n/a (libglamoregl.so + 0x19398)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#13 0x00007f213d3e4241 n/a (libglamoregl.so + 0x1c241)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#14 0x00005585e6d61490 n/a (Xorg + 0xd0490)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#15 0x00005585e6d683ba n/a (Xorg + 0xd73ba)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#16 0x00005585e6ccffee n/a (Xorg + 0x3efee)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#17 0x00007f213e1efcd0 n/a (libc.so.6 + 0x27cd0)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#18 0x00007f213e1efd8a __libc_start_main (libc.so.6 + 0x27d8a)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#19 0x00005585e6cd05a5 _start (Xorg + 0x3f5a5)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Stack&lt;/span> &lt;span class="n">trace&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">thread&lt;/span> &lt;span class="mi">5928&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#0 0x00007f213e2d8bf6 epoll_wait (libc.so.6 + 0x110bf6)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#1 0x00005585e6ddd847 n/a (Xorg + 0x14c847)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#2 0x00005585e6de1699 n/a (Xorg + 0x150699)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#3 0x00007f213e2549eb n/a (libc.so.6 + 0x8c9eb)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#4 0x00007f213e2d87cc n/a (libc.so.6 + 0x1107cc)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Stack&lt;/span> &lt;span class="n">trace&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">thread&lt;/span> &lt;span class="mi">5925&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#0 0x00007f213e2514ae n/a (libc.so.6 + 0x894ae)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#1 0x00007f213e253d40 pthread_cond_wait (libc.so.6 + 0x8bd40)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#2 0x00007f213b12b9dc n/a (nouveau_dri.so + 0x1139dc)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#3 0x00007f213b122d1c n/a (nouveau_dri.so + 0x10ad1c)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#4 0x00007f213e2549eb n/a (libc.so.6 + 0x8c9eb)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#5 0x00007f213e2d87cc n/a (libc.so.6 + 0x1107cc)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ELF&lt;/span> &lt;span class="n">object&lt;/span> &lt;span class="n">binary&lt;/span> &lt;span class="n">architecture&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">AMD&lt;/span> &lt;span class="n">x86&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">64&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">pulseaudio&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6060&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">X11&lt;/span> &lt;span class="n">I&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">O&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">handler&lt;/span> &lt;span class="n">called&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">pulseaudio&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6060&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">X11&lt;/span> &lt;span class="n">I&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">O&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">exit&lt;/span> &lt;span class="n">handler&lt;/span> &lt;span class="n">called&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">preparing&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">tear&lt;/span> &lt;span class="n">down&lt;/span> &lt;span class="n">X11&lt;/span> &lt;span class="n">modules&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1329&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">1.11&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a11y&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">atspi&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Registry&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">2.&lt;/span>&lt;span class="n">service&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="s1">&amp;#39;exit-code&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1329&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">xfce4&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">notifyd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="s1">&amp;#39;exit-code&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">coredump&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6939&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">🡕&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">Process&lt;/span> &lt;span class="mi">6918&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">xfsettingsd&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">user&lt;/span> &lt;span class="mi">1000&lt;/span> &lt;span class="n">dumped&lt;/span> &lt;span class="n">core&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Module&lt;/span> &lt;span class="n">linux&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">vdso&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">so&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="n">without&lt;/span> &lt;span class="n">build&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Stack&lt;/span> &lt;span class="n">trace&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">thread&lt;/span> &lt;span class="mi">6918&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#0 0x00007fa3e3b3f5a3 g_log_writer_default (libglib-2.0.so.0 + 0x675a3)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#1 0x00007fa3e3b39205 g_log_structured_array (libglib-2.0.so.0 + 0x61205)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#2 0x00007fa3e3b39473 g_log_structured_standard (libglib-2.0.so.0 + 0x61473)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#3 0x0000564b008c2348 n/a (xfsettingsd + 0x6348)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#4 0x00007fa3e3917cd0 n/a (libc.so.6 + 0x27cd0)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#5 0x00007fa3e3917d8a __libc_start_main (libc.so.6 + 0x27d8a)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#6 0x0000564b008c2785 n/a (xfsettingsd + 0x6785)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ELF&lt;/span> &lt;span class="n">object&lt;/span> &lt;span class="n">binary&lt;/span> &lt;span class="n">architecture&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">AMD&lt;/span> &lt;span class="n">x86&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">64&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">pulseaudio&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6060&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Error&lt;/span> &lt;span class="n">opening&lt;/span> &lt;span class="n">PCM&lt;/span> &lt;span class="n">device&lt;/span> &lt;span class="n">front&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">No&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">fichero&lt;/span> &lt;span class="n">o&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">directorio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.Thunar.FileManager1.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">name&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.Tumbler.Cache1.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">named&lt;/span> &lt;span class="n">aft&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.Tumbler.Manager1.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">named&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.Tumbler.Thumbnailer1.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">nam&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.xfce4-notifyd.Notifications.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dbus&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">broker&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6981&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Service&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="s1">&amp;#39;/usr/share//dbus-1/services/org.xfce.xfce4-notifyd.Notifyd.service&amp;#39;&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">na&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">31&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">lightdm&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7024&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">gkr&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">pam&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">locate&lt;/span> &lt;span class="n">daemon&lt;/span> &lt;span class="n">control&lt;/span> &lt;span class="n">file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">pulseaudio&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7084&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">GetManagedObjects&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="n">failed&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">freedesktop&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DBus&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Error&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">NameHasNoOwner&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Could&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">activate&lt;/span> &lt;span class="n">remote&lt;/span> &lt;span class="n">pe&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">gnome&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">keyring&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">daemon&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1341&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">asked&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">register&lt;/span> &lt;span class="n">item&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freedesktop&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">secrets&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">collection&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">login&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">but&lt;/span> &lt;span class="n">it&lt;/span>&lt;span class="s1">&amp;#39;s already regi&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">gnome&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">keyring&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1341&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">asked&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">register&lt;/span> &lt;span class="n">item&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freedesktop&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">secrets&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">collection&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">login&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">but&lt;/span> &lt;span class="n">it&lt;/span>&lt;span class="s1">&amp;#39;s already registered&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084d&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="n">data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">init&lt;/span> &lt;span class="n">failed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">19&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y como pueden apreciar el nombre de &lt;strong>nouveau&lt;/strong> aparece por todas partes.&lt;/p>
&lt;p>Una falla en la carga del &lt;em>firmware&lt;/em> seguido por un crash de Xorg.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084d&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="n">data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">47&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">kernel&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">init&lt;/span> &lt;span class="n">failed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">19&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">coredump&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6898&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">🡕&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">Process&lt;/span> &lt;span class="mi">5915&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Xorg&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">user&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">dumped&lt;/span> &lt;span class="n">core&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo de la falla al cargar el firmware de nouveau era un viejo conocido. Eran esos errores ocasionales que les comentaba al principio del artículo. Lo del truene de Xorg era la novedad.&lt;/p>
&lt;p>Centré mi investigación en esos mensajes de error y al final me quedaron dos opciones.&lt;/p>
&lt;ol>
&lt;li>Regresar a los drivers propietarios de nvidia. Para esto aparentemente tenía que compilar mis propios drivers y muy probablemente hacerlo en cada actualización importante léase &lt;a class="link" href="https://forum.manjaro.org/t/howto-get-legacy-340xx-nvidia-drivers-back/46969" target="_blank" rel="noopener"
>\[HowTo\] get legacy 340xx NVIDIA drivers back&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>Probar algo nuevo con una tarjeta gráfica integrada AMD Radeon.&lt;/li>
&lt;/ol>
&lt;h2 id="un-enfoque-nuevo-con-amd">Un enfoque nuevo con AMD.
&lt;/h2>&lt;p>Ya tenía un buen camino recorrido con nvidia y sus drivers. Pero muy poca experiencia con AMD, decidí intentarlo, pero para ellos tenía que hacer el cambio de tarjeta gráfica sobre la marcha y no fue sencillo.&lt;/p>
&lt;p>Le di un repaso al wiki de Manjaro &lt;a class="link" href="https://wiki.manjaro.org/index.php/Configure_Graphics_Cards" target="_blank" rel="noopener"
>Configure Graphics Cards&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
quité la tarjeta nvidia y veamos que pasa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/image-1.jpg"
alt="Tarjeta nvidia 340xx">&lt;figcaption>
&lt;p>Tarjeta nvidia 340xx&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ilusamente creí que con quitar la tarjeta nvidia era más que suficiente, pero no, no iba a ser tan fácil.&lt;/p>
&lt;p>El siguiente arranque fue con un linux en modo de emergencia.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/emergency%5Fmode.jpg">
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">You are in emergency mode. After loggin in , type &amp;#34;journalctl -xb&amp;#34; to view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">system logs, &amp;#34;systemctl reboot&amp;#34; to reboot, or &amp;#34;exit&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">to continue bootup.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Contraseña de root para mantenimiento
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(o pulse Control-D para continuar):_
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que la verdad no era de mucha utilidad. Digo, puedes hacer algunos cambios pero no hay una conexión a Internet para instalar paquetes así que lo mejor era hacer un &lt;a class="link" href="https://linuxmanr4.com/2020/01/29/no-se-pudo-arrancar-la-entrada-predeterminada-ni-la-de-reserva/" >chroot&lt;/a>
.&lt;/p>
&lt;p>&lt;strong>Problemas con un disco duro&lt;/strong>. En este punto me gustaría hacer una aclaración. Días después de escribir este artículo volvió a arrancar mi computadora en el &lt;strong>modo de emergencia&lt;/strong>. Todo parece indicar que fue provocado por un disco duro que agoniza. Una mala sincronización de eventos hizo que el cambio de tarjeta gráfica no fuera tan sencillo como debería. Hecha la aclaración continuamos.&lt;/p>
&lt;p>Descargué el ISO de instalación e hice una &lt;a class="link" href="https://linuxmanr4.com/2017/07/06/usb-de-arranque/" >USB de arranque&lt;/a>
y según yo hice todo lo posible siguiendo el &lt;a class="link" href="https://wiki.manjaro.org/index.php/Main_Page" target="_blank" rel="noopener"
>wiki de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para instalar y configurar mi nueva tarjeta AMD.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/01/image-1-1.jpg"
alt="Nueva tarjeta AMD RS880 \[Radeon HD 4250\]">&lt;figcaption>
&lt;p>&lt;p>Nueva tarjeta AMD RS880 &lt;/p>
\[Radeon HD 4250\]&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero seguía arrancando en el modo de emergencia. Ya estaba a punto de reinstalar todo el sistema cuando &amp;hellip;&lt;/p>
&lt;p>En algún lado leí que era necesario instalar el kernel 6.1 ( &lt;a class="link" href="https://forum.manjaro.org/t/switch-from-nvidia-gpu-to-amd-gpu/154043" target="_blank" rel="noopener"
>Switch from Nvidia gpu to Amd gpu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) cuando menos para que el driver Radeon funcionara y así lo hice (en ese momento estaba usando la versión 5.4) y ¡Voalá! arrancó perfectamente.&lt;/p>
&lt;p>Se que anteriormente he tenido problemas con el kernel 6 y virtualbox, pero ya buscaré una solución a ese problema a largo plazo.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Al momento de escribir esta nota no he tenido congelamientos ni cierres abruptos de sesión. Pero estoy consiente que con el tiempo hay un desfasamiento entre mi &lt;em>hardware&lt;/em> y las versiones más recientes del &lt;em>software&lt;/em>.&lt;/p>
&lt;p>Inicia una nueva experiencia con Radeon que para colmo es igual de antigua que la de nvidia, así que supongo que tendrá sus bemoles.&lt;/p>
&lt;p>La lección aprendida es que cuando el Jefazo dice que nvidia esta haciendo mal las cosas con Linux es porque es cierto.&lt;/p></description></item><item><title>Series de Fibonacci en Python con estos 3 métodos.</title><link>https://linuxmanr4.com/2023/12/14/series-de-fibonacci-en-python/</link><pubDate>Thu, 14 Dec 2023 19:05:24 +0000</pubDate><guid>https://linuxmanr4.com/2023/12/14/series-de-fibonacci-en-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/12/Serie-de-Fibonacci.jpg" alt="Featured image of post Series de Fibonacci en Python con estos 3 métodos." />&lt;p>Leonardo de Pisa, más conocido como &lt;strong>Fibonacci&lt;/strong>, fue un matemático italiano que vivió en el siglo XIII. Es famoso por su libro &amp;quot; &lt;a class="link" href="https://es.wikipedia.org/wiki/Liber_abaci" target="_blank" rel="noopener"
>Liber abaci&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&amp;quot;, que contiene una serie de números que ahora se conocen como la serie de Fibonacci.&lt;/p>
&lt;p>&lt;strong>La serie de Fibonacci&lt;/strong> es una secuencia de números enteros en la que cada número es la suma de los dos anteriores. La secuencia comienza con 0 y 1, y los siguientes números son 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, &amp;hellip;&lt;/p>
&lt;p>La serie de Fibonacci tiene muchas propiedades interesantes. Por ejemplo, la proporción entre dos números consecutivos de la serie se aproxima cada vez más al número áureo, que es un número irracional con una longitud infinita de decimales. El número áureo se considera a menudo una proporción estéticamente agradable, y se encuentra en muchas obras de arte y arquitectura.&lt;/p>
&lt;p>La serie de Fibonacci también se encuentra en la naturaleza. Por ejemplo, la disposición de los pétalos de una flor de girasol, las escamas de una piña o las espirales de una concha de caracol siguen la serie de Fibonacci.&lt;/p>
&lt;p>La serie de Fibonacci ha sido objeto de estudio de matemáticos, biólogos y artistas durante siglos. Es una serie fascinante que tiene aplicaciones en muchas áreas diferentes del conocimiento.&lt;/p>
&lt;h2 id="aplicaciones-de-la-serie-de-fibonacci">&lt;strong>Aplicaciones de la serie de Fibonacci&lt;/strong>
&lt;/h2>&lt;p>La serie de Fibonacci tiene aplicaciones en muchas áreas diferentes del conocimiento, incluyendo:&lt;/p>
&lt;ul>
&lt;li>Matemáticas: la serie de Fibonacci se utiliza en el estudio de los números primos, la teoría de números y la geometría.&lt;/li>
&lt;li>Biología: la serie de Fibonacci se encuentra en la estructura de las plantas, los animales y los organismos vivos.&lt;/li>
&lt;li>Arte: la serie de Fibonacci se utiliza en el diseño artístico, la arquitectura y la música.&lt;/li>
&lt;li>Finanzas: la serie de Fibonacci se utiliza en el análisis técnico de los mercados financieros.&lt;/li>
&lt;/ul>
&lt;h2 id="método-tradicional">Método tradicional
&lt;/h2>&lt;p>Pero este artículo trata sobre Python. El primer método es el más simple y yo lo llamo método tradicional.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">n1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">contador&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">contador&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">n2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">contador&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cómo pueden ver es muy simple. Iniciamos la serie con 0 y 1.&lt;/p>
&lt;p>Posteriormente calculamos el nuevo número sumando n1 y n2. Y luego &lt;a class="link" href="https://linuxmanr4.com/2017/03/28/ajustando-cache-disco-linux/" >ajustamos los valores&lt;/a>
de n1 y n2 para el siguiente ciclo.&lt;/p>
&lt;p>Este es el resultado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">❯ python fibonacci.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">13
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">21
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">34
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">55
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">89
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">144
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">233
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">377
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">610
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">987
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1597
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2584
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4181
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="usando-listas">Usando Listas
&lt;/h2>&lt;p>En Python, una &lt;strong>lista&lt;/strong> es una &lt;strong>estructura de datos&lt;/strong> que permite almacenar una colección de datos de cualquier tipo.&lt;/p>
&lt;p>Se me ocurrió que podría empezar con una lista &lt;/p>
\[0,1\]&lt;p> y calcular el siguiente número jugando un poco con el índice de la lista.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El inicio de la serie&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># agregamos los nuevo valores a la lista.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esta forma, el nuevo elemento de la lista es la suma de los dos elementos anteriores. Simple y elegante.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">❯ python fibonacci_listas.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="método-recursivo">Método Recursivo
&lt;/h2>&lt;p>En programación, la recursividad es una técnica que permite que una función se llame a sí misma. La recursividad se utiliza para resolver problemas que se pueden dividir en subproblemas más pequeños que son similares al problema original.&lt;/p>
&lt;p>Vean este ejemplo de código:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">n&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># muestra como se va generando el número siguiente.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;i=&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;n=&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;+&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;-&amp;gt;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fibonacci_recursivo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En las lineas 6 a la 14 y en la línea 19 agregué unas funciones &lt;strong>print()&lt;/strong> para que se pueda visualizar cuantas veces se visita la función &lt;em>fibonacci_recursivo&lt;/em> antes de poder calcular el siguiente número de la serie.&lt;/p>
&lt;p>En lo personal me parece poco práctico, pero lo pongo porque es uno de los ejemplos clásicos de recursión en programación.&lt;/p>
&lt;p>Este es el resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">-&amp;gt; 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 2 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 3 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 3 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 3 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 4 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 5 3 + 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 5 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 5 3 + 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 6 5 + 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 5 3 + 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 4 2 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 3 1 + 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">i= 6 n= 2 1 + 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-&amp;gt; 8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="graficar-fibonacci-con-matplotlib">Graficar Fibonacci con Matplotlib
&lt;/h2>&lt;p>Matplotlib es una librería de Python que permite crear visualizaciones de datos. Es una herramienta poderosa y flexible que se puede utilizar para crear una amplia variedad de gráficos, incluyendo diagramas de barras, diagramas de dispersión, histogramas, diagramas de líneas, etc.&lt;/p>
&lt;p>Veamos un ejemplo usando el método de listas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">y&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Número de Fibonacci&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Valor del número de Fibonacci&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/12/Fibonacci%5F20.png">
&lt;/figure>
&lt;p>Espero que este artículo les sea de utilidad ¡Hasta la próxima!&lt;/p></description></item><item><title>Cómo calcular Pi con Python: métodos y ejemplos</title><link>https://linuxmanr4.com/2023/09/07/como-calcular-pi-con-python/</link><pubDate>Thu, 07 Sep 2023 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2023/09/07/como-calcular-pi-con-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/09/como-calcular-pi-con-python.jpg" alt="Featured image of post Cómo calcular Pi con Python: métodos y ejemplos" />&lt;p>En este artículo, te mostraré como calcular Pi con Python de varias maneras. Comenzaremos con la forma más sencilla, que es usar la constante Pi de la biblioteca math.&lt;/p>
&lt;p>Abordaremos el método de los polígonos, uno de los más antiguos pero también uno de los más sencillos de entender.&lt;/p>
&lt;p>Luego, veremos cómo calcular Pi usando varios métodos de series infinitas. Por ejemplo el método de Gregory-Leibniz (con algunas variantes) y el método Nilakantha que es una forma más precisa con menos ciclos.&lt;/p>
&lt;p>En cada sección, proporcionaremos ejemplos de código para que puedas ver cómo funciona cada método.&lt;/p>
&lt;p>Tengo que aclarar que este artículo lo escribo por puro gusto personal y en el camino me encontré con algunas sorpresas que ya les contaré más adelante.&lt;/p>
&lt;h2 id="qué-es-pi">¿Qué es Pi?
&lt;/h2>&lt;p>Pi (π) es una constante matemática que representa la relación entre la circunferencia y el diámetro de un círculo.&lt;/p>
&lt;p>No importa el tamaño del círculo, si es pequeño o es enorme, su relación entre el diámetro y la circunferencia es siempre la misma.&lt;/p>
&lt;p>Es un número &lt;strong>irracional&lt;/strong>, lo que significa que &lt;a class="link" href="https://linuxmanr4.com/2010/02/05/como-separar-la-parte-entera-de-un-numero-y-decimales-con-php/" >sus decimales&lt;/a>
no se acaban. Su valor aproximado es &lt;strong>3.14159265358979323846&lt;/strong>&amp;hellip; y así &amp;hellip; ¡Hasta el infinito y más allá!&lt;/p>
&lt;p>Pi es importante en matemáticas, física, geometría, ingeniería y muchas otras áreas. Se utiliza para calcular el perímetro, el área y el volumen de círculos y esferas.&lt;/p>
&lt;p>Pi es una constante fundamental de la naturaleza, y se encuentra en muchas expresiones matemáticas que describen el universo. Por ejemplo, se utiliza para calcular la órbita de los planetas, la forma de las ondas electromagnéticas, la estructura de los átomos y un largo etcétera.&lt;/p>
&lt;h2 id="cómo-calcular-pi">¿Cómo calcular Pi?
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/09/pi%5Fdesenrollado%5Fwikipedia.gif">
&lt;/figure>
&lt;p>Cuando era niño, en la primaria nos encargaron llevar la tapita de un frasco y algo de estambre. Cortamos 3 piezas de estambre del tamaño del diámetro de la tapa y la pegamos en el borde. Siempre faltaba un pedacito para completar la circunferencia. Bueno, pues ese &amp;ldquo;pedacito&amp;rdquo; faltante es todo un tema.&lt;/p>
&lt;p>A lo largo del tiempo se han hecho varios intentos por calcular el valor de Pi.&lt;/p>
&lt;ul>
&lt;li>Los Babilonios allá por 2,000 A.C. calcularon el valor de Pi en 3 + 1/8 = 3.125&lt;/li>
&lt;li>Los Egipcios más o menos por el mismo año en (16/9)² = 3.160 494&lt;/li>
&lt;li>Los chinos por el 1,200 A.C. no batallaron mucho y lo redondearon a 3&lt;/li>
&lt;li>La biblia en el &lt;a class="link" href="https://www.vatican.va/archive/ESL0506/__P8F.HTM" target="_blank" rel="noopener"
>Primer Libro de los Reyes 7:23&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
esboza también un valor de 3: &lt;em>&amp;ldquo;El hizo además el Mar de metal fundido, que medía cinco metros de diámetro y tenía forma circular; su altura era de dos metros y medio, y una cuerda de quince metros medía su circunferencia.&amp;rdquo;&lt;/em>&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Arqu%C3%ADmedes" target="_blank" rel="noopener"
>Arquímedes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el 300 A.C. calcula que π = 211875/67441 = 3.14163&lt;/li>
&lt;/ul>
&lt;p>Y como pueden ver, a partir de los griegos se hizo un gran avance en cuanto al número de decimales de Pi.&lt;/p>
&lt;p>El advenimiento de las calculadoras electrónicas permitió un gran avance en el cálculo de Pi.&lt;/p>
&lt;p>Muchas aproximaciones de Pi se basan en series infinitas, que se vuelven más precisas a medida que se repiten más veces.&lt;/p>
&lt;p>Las computadoras son muy eficientes para repetir cálculos, por lo que han permitido obtener un gran número de decimales de Pi.&lt;/p>
&lt;h2 id="el-módulo-math">El módulo math
&lt;/h2>&lt;p>Creo que es conveniente comenzar diciendo que en Python no es necesario calcular el valor de Pi.&lt;/p>
&lt;p>El &lt;a class="link" href="https://docs.python.org/es/3/library/math.html" target="_blank" rel="noopener"
>módulo math de Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que contiene una buena cantidad de funciones matemáticas lo incluye.&lt;/p>
&lt;p>Veamos un ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">math&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pi&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.141592653589793&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="el-método-de-los-polígonos">El método de los polígonos
&lt;/h2>&lt;p>El método de los polígonos para calcular pi es un método geométrico que consiste en inscribir y circunscribir polígonos regulares en una circunferencia, y calcular el perímetro de estos polígonos para obtener límites inferiores y superiores del valor de pi.&lt;/p>
&lt;p>El método fue desarrollado por el matemático griego Arquímedes en el siglo III A.C., y es el método más antiguo conocido para calcular pi con precisión.&lt;/p>
&lt;p>Para aplicar el método, primero se dibuja una circunferencia con un diámetro dado. Luego, se inscribe (al interior del círculo) un polígono regular de n lados en la circunferencia, y se circunscribe (al exterior del círculo) otro polígono regular de n lados alrededor de la circunferencia.&lt;/p>
&lt;p>El perímetro del polígono inscrito es una aproximación inferior del perímetro de la circunferencia, mientras que el perímetro del polígono circunscrito es una aproximación superior del perímetro de la circunferencia.&lt;/p>
&lt;p>Al dividir el perímetro de cada polígono por el diámetro, se obtiene una aproximación de pi.&lt;/p>
&lt;p>Pero para no hacernos bolas creo que es mejor ver la explicación de este método en un video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/9EJqxZqf63I"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>El método de los polígonos es un método simple y eficaz para calcular pi. Sin embargo, su precisión no es muy buena como podemos ver en los resultados&lt;/p>
&lt;p>Le hice unos ajustes a la función para mostrar en la pantalla valores intermedios. Para ver la evolución del algoritmo y como al calcular un mayor número de lados el resultado se va refinando y aproximando a Pi.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">math&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sqrt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">poligonos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> En este método n funciona como limite máximo de lados.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="c1">#Este es el radio de la circunferencia. Puede ser cualquier valor, pero 1 simplifica mucho los cálculos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">r&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">r&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; lados pi inferior pi superior&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; ===============================================&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">&amp;lt;=&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Imprimo los valores intermedios para ver la evolución del algoritmo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{0:8d}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{1:1.15f}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{2:1.15f}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Regresamos como Pi la media entre el estimado superior y el inferior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">r&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> El valor estimado de pi es: &amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">poligonos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2000000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resultado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lados&lt;/span> &lt;span class="n">pi&lt;/span> &lt;span class="n">inferior&lt;/span> &lt;span class="n">pi&lt;/span> &lt;span class="n">superior&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">===============================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">8&lt;/span> &lt;span class="mf">3.061467458920719&lt;/span> &lt;span class="mf">3.313708498984761&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">16&lt;/span> &lt;span class="mf">3.121445152258053&lt;/span> &lt;span class="mf">3.182597878074529&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">32&lt;/span> &lt;span class="mf">3.136548490545940&lt;/span> &lt;span class="mf">3.151724907429257&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">64&lt;/span> &lt;span class="mf">3.140331156954753&lt;/span> &lt;span class="mf">3.144118385245905&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">128&lt;/span> &lt;span class="mf">3.141277250932773&lt;/span> &lt;span class="mf">3.142223629942458&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">256&lt;/span> &lt;span class="mf">3.141513801144302&lt;/span> &lt;span class="mf">3.141750369168967&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">512&lt;/span> &lt;span class="mf">3.141572940367092&lt;/span> &lt;span class="mf">3.141632080703182&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">1024&lt;/span> &lt;span class="mf">3.141587725277160&lt;/span> &lt;span class="mf">3.141602510256809&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">2048&lt;/span> &lt;span class="mf">3.141591421511200&lt;/span> &lt;span class="mf">3.141595117749589&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">4096&lt;/span> &lt;span class="mf">3.141592345570118&lt;/span> &lt;span class="mf">3.141593269629308&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">8192&lt;/span> &lt;span class="mf">3.141592576584873&lt;/span> &lt;span class="mf">3.141592807599645&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">16384&lt;/span> &lt;span class="mf">3.141592634338563&lt;/span> &lt;span class="mf">3.141592692092254&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">32768&lt;/span> &lt;span class="mf">3.141592648776986&lt;/span> &lt;span class="mf">3.141592663215408&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">65536&lt;/span> &lt;span class="mf">3.141592652386591&lt;/span> &lt;span class="mf">3.141592655996197&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">131072&lt;/span> &lt;span class="mf">3.141592653288993&lt;/span> &lt;span class="mf">3.141592654191394&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">262144&lt;/span> &lt;span class="mf">3.141592653514593&lt;/span> &lt;span class="mf">3.141592653740193&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">524288&lt;/span> &lt;span class="mf">3.141592653570993&lt;/span> &lt;span class="mf">3.141592653627393&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">1048576&lt;/span> &lt;span class="mf">3.141592653585092&lt;/span> &lt;span class="mf">3.141592653599192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">El&lt;/span> &lt;span class="n">valor&lt;/span> &lt;span class="n">estimado&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">pi&lt;/span> &lt;span class="n">es&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">3.14159265359214&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para obtener una mayor precisión, se pueden utilizar polígonos de más lados. Sin embargo, esto requiere un mayor esfuerzo computacional.&lt;/p>
&lt;p>El código me lo encontŕe en C++ en un video de &lt;a class="link" href="https://www.youtube.com/watch?v=DQ5qqHukkAc" target="_blank" rel="noopener"
>Quantum Fracture&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
¡Muchas gracias por la divulgación de la ciencia!&lt;/p>
&lt;h2 id="serie-de-gregory-leibniz">&lt;strong>Serie de Gregory-Leibniz&lt;/strong>
&lt;/h2>&lt;p>Comenzamos con las series infinitas. La serie de Gregory-Leibniz es uno de los algoritmos más famosos para calcular Pi.&lt;/p>
&lt;p>La serie de Gregory-Leibniz es una serie infinita que converge a π. Fue descubierta independientemente por el matemático irlandés James Gregory en 1671 y el matemático alemán Gottfried Leibniz en 1676.&lt;/p>
$$
\sum_{n=0}^{\infty}\frac{(-1)^{n}}{2n+1}=\frac{\pi}{4}
$$&lt;p>O de una forma desarrollada&lt;/p>
$$
1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\cdot \cdot \cdot=\frac{\pi}{4}
$$&lt;p>Esta serie es convergente, lo que significa que sus términos se acercan cada vez más a π a medida que aumenta el número de términos. Sin embargo, la serie converge lentamente, por lo que se necesitan muchos términos para obtener una aproximación precisa de π.&lt;/p>
&lt;p>Veamos el código.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">gregory_leibniz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">term&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">**&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">term&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">sum&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">gregory_leibniz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resultado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.140592653839794&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y después de repetir el proceso 1000 veces apenas tenemos 2 decimales. A mano es una pesadilla, pero con una computadora actual no hay tanto problema.&lt;/p>
&lt;p>¿Notaron la elegancia de que para generar la alternancia entre sumas y restas elevaron -1 a una potencia?&lt;/p>
&lt;p>Hay otras formas de hacer esto, lo dejé porque respeta la expresión de la sumatoria, pero hay otras formas de generar este comportamiento.&lt;/p>
&lt;h3 id="código-en-una-sola-línea">Código en una sola línea
&lt;/h3>&lt;p>Durante el proceso de investigación me encontré que se puede hacer la serie completa en una sola línea gracias a una Expresión de Python.&lt;/p>
&lt;p>Tal parece que va tomando la información de derecha a izquierda. Tengo que confesar que debo de estudiar más este tipo de expresiones, pero lo pongo de todos modos por si se le ofrece a alguno de mis 4 lectores o a mi yo del futuro.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">gregory_leibniz_una_linea&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">sum&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">k&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">k&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">gregory_leibniz_una_linea&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resultado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.140592653839794&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como pueden ver el resultado es exactamente el mismo que el código anterior.&lt;/p>
&lt;h2 id="el-método-misterioso">El método misterioso
&lt;/h2>&lt;p>La semana pasada estaba revisando una &lt;a class="link" href="https://linuxmanr4.com/2011/09/01/programa-python-descargar-imagenes/" >página web&lt;/a>
que mostraba una terminal de linux para hacer prácticas sin la necesidad de tener un linux instalado.&lt;/p>
&lt;p>Al ejecutar el comando ls solo había un par de archivos. Uno de ellos era un programa escrito en &lt;a class="link" href="https://www.lua.org/" target="_blank" rel="noopener"
>Lua&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que precisamente era una aproximación a Pi.&lt;/p>
&lt;p>No tenía la opción para descargar el archivo así que le hice una captura de pantalla.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/09/casi%5FPI%5Flua.jpg">
&lt;/figure>
&lt;p>Como pueden ver el código es muy sencillo y pasarlo a Python no representó mayor problema.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">otra_forma_pi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> Esta forma de calcular Pi me la encontré en una página,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> pero desconozco como se llama el método.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">k&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">k&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mf">0.5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">otra_forma_pi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resultado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.140955969513533&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten que otra forma de obtener una raíz cuadrada es elevar el número a 1/2. Con eso me evito la llamada a la función sqrt del módulo math, pero en un código posterior si lo hago.&lt;/p>
&lt;p>Si algún lector despistado conoce este método de aproximación de Pi le agradezco que me diga como se llama. Intenté encontrarlo pero con muy poco éxito.&lt;/p>
&lt;h2 id="método-de-nilakantha">Método de Nilakantha
&lt;/h2>&lt;p>Me van a disculpar, pero los nombres hindúes si que son complicados.&lt;/p>
&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/Nilakantha_Somayaji" target="_blank" rel="noopener"
>Nilakantha Somayaji&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
fue un matemático y astrónomo indio que vivió en el siglo XV. Es considerado uno de los matemáticos más importantes de la India medieval.&lt;/p>
&lt;p>La serie infinita de Nilakantha para aproximar el número pi es la siguiente:&lt;/p>
$$
3+\frac{4}{2\times 3 \times 4}-\frac{4}{4\times 5 \times 6}+\frac{4}{6 \times 7 \times 8}-\frac{4}{8 \times 9 \times 10}+\cdot \cdot \cdot=\pi
$$&lt;p>Tiene la enorme bondad de que es relativamente simple y con pocas repeticiones logra una excelente aproximación.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">denominadores&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">signo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">**&lt;/span> &lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">signo&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">4&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">denominadores&lt;/span> &lt;span class="o">+=&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">sum&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resultado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.1666666666666665&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.1414067184965018&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.1415924109719824&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mf">3.141592653340544&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="comparemos-los-métodos">Comparemos los métodos
&lt;/h2>&lt;p>Ahora que les parece si comparamos los métodos. Agregué una función más para comparar el resultado de las series con el valor de Pi y revisar que tanto se aproximan a ese valor.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">math&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sqrt&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">poligonos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> En este método n funciona como limite máximo de lados.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="c1">#Este es el radio de la circunferencia. Puede ser cualquier valor, pero 1 simplifica mucho los cálculos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">r&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">r&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">&amp;lt;=&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Regresamos como Pi la media entre el estimado superior y el inferior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">r&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">gregory_leibniz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">term&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">**&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">term&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">sum&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">gregory_leibniz_una_linea&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">sum&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">k&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">k&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">otra_forma_pi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> Esta forma de calcular Pi me la encontré en una página,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> pero desconozco como se llama el método.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">k&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">k&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">denominadores&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">signo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">**&lt;/span> &lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sum&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">signo&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">4&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">denominadores&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">denominadores&lt;/span> &lt;span class="o">+=&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">sum&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pi&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;¿Cuántos términos quieres utilizar? &amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">poligonos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">gl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gregory_leibniz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">glul&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gregory_leibniz_una_linea&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">of&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">otra_forma_pi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nil&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">nilakantha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Valor de pi en python : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pi&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Poligonos : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">%&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pol&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pol&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Gregory-Leibinz : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">%&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">gl&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">gl&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Gregory-Leibinz (una línea) : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">%&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">glul&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">glul&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Otro método que no se su nombre : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">%&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">of&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">of&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Nilakantha : &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s2">%&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nil&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">aproximacion&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nil&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este es el resultado con 1000 repeticiones.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">¿Cuántos términos quieres utilizar? 1000
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Valor de pi en python : 3.141592653589793
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Poligonos : 3.141602510535137 100.00031375631507%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Gregory-Leibinz : 3.140592653839794 99.9681690193394%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Gregory-Leibinz (una línea) : 3.140592653839794 99.9681690193394%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Otro método que no se su nombre : 3.140955969513533 99.97973371641507%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Nilakantha : 3.141592653340544 99.99999999206615%
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="usando-cálculo-integral-regla-de-simpson">Usando Cálculo Integral: Regla de Simpson
&lt;/h2>&lt;p>Antes del siglo XVII, el cálculo de π se basaba casi exclusivamente en métodos geométricos y series aritméticas de convergencia lenta.&lt;/p>
&lt;p>La invención del cálculo infinitesimal por &lt;a class="link" href="https://es.wikipedia.org/wiki/Isaac_Newton" target="_blank" rel="noopener"
>Isaac Newton&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
introdujo un cambio estructural. Newton desarrolló el cálculo en el contexto de las series infinitas, las fluxiones (derivadas) y la integración como proceso inverso. Este nuevo marco permitió expresar funciones trascendentes —incluidas las trigonométricas— como &lt;strong>series de potencias&lt;/strong>, haciendo posible calcular π mediante análisis algebraico en lugar de construcciones geométricas.&lt;/p>
&lt;p>Calcular π con &lt;a class="link" href="https://es.wikipedia.org/wiki/Regla_de_Simpson" target="_blank" rel="noopener"
>la regla de Simpson&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es como medir el área bajo una curva usando piezas curvas en lugar de bloques cuadrados.&lt;/p>
&lt;p>Tenemos esta igualdad matemática&lt;/p>
$$
\pi = 4 \int_{0}^{1} \frac{1}{1 + x^{2}} \, dx
$$&lt;p>Esa integral representa el área bajo una curva entre 0 y 1.&lt;/p>
&lt;p>Como el área exacta es difícil de calcular “a mano”, se aproxima dividiendo el intervalo en partes pequeñas.&lt;/p>
&lt;h3 id="qué-hace-la-regla-de-simpson">¿Qué hace la regla de Simpson?
&lt;/h3>&lt;ul>
&lt;li>Divide el intervalo [0,1] en segmentos iguales.&lt;/li>
&lt;li>En lugar de usar rectángulos, usa parábolas para aproximar la curva.&lt;/li>
&lt;li>Las parábolas se ajustan mejor que líneas rectas, por eso el resultado es más preciso.&lt;/li>
&lt;/ul>
&lt;h3 id="paso-a-paso">Paso a paso
&lt;/h3>&lt;ol>
&lt;li>Parte el intervalo de 0 a 1 en muchos pedacitos iguales.&lt;/li>
&lt;li>Calcula el valor de la función $\frac{4}{1+x^{2}}$ en cada punto.&lt;/li>
&lt;li>Combina esos valores con un patrón fijo:
&lt;ul>
&lt;li>el primero y el último se suman una vez,&lt;/li>
&lt;li>los puntos intermedios se multiplican por 4 o por 2 según su posición.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Multiplica todo por el tamaño del paso dividido entre 3.&lt;/li>
&lt;li>El número resultante es una aproximación de π.&lt;/li>
&lt;/ol>
&lt;h3 id="calcular-pi-con-regla-de-simpson-en-python">Calcular Pi con Regla de Simpson en Python
&lt;/h3>&lt;p>Dicho lo anterior, este sería el programa&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">pi_simpson&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">raise&lt;/span> &lt;span class="ne">ValueError&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;n debe ser par&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">h&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mf">1.0&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="n">n&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">linspace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mf">4.0&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mf">1.0&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">y&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">+&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">+&lt;/span> &lt;span class="mi">4&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sum&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">y&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sum&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">y&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Valor de pi calculado con la regla de Simpson: &amp;#34;&lt;/span>&lt;span class="n">pi_simpson&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10_000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y este es el resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Pi calculado con la regla de Simpson 3.1415926535897936
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este método es mucho más rápido que sumatorias clásicas como Gregory-Leibniz.&lt;/p>
&lt;p>No es el método más rápido conocido, pero es simple, estable y &lt;strong>didáctico&lt;/strong>.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>En conclusión, existen muchos métodos diferentes para calcular pi. Algunos son simples y fáciles de entender, mientras que otros son más complejos y requieren conocimientos matemáticos avanzados.&lt;/p>
&lt;p>El cálculo de pi es un desafío matemático que ha fascinado a los matemáticos durante siglos. A pesar de que no se ha podido calcular el número pi con precisión infinita, los métodos de cálculo actuales permiten calcular millones de decimales de pi.&lt;/p>
&lt;p>¿Quiere experimentar un poco con algunos de estos métodos para calcular π? hice un experimento con &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2024/04/aprendiendo-react.jpg" >React&lt;/a>
.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/pi-react/" >Calculando valores de π con React&lt;/a>
&lt;/p>
&lt;p>¿Qué les pareció este artículo? cualquier comentario y corrección es bienvenido.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Mensajes SMS sospechosos, como evitar caer en una trampa</title><link>https://linuxmanr4.com/2023/08/28/mensajes-sms-sospechosos-como-evitar-caer-en-una-trampa/</link><pubDate>Mon, 28 Aug 2023 21:34:12 +0000</pubDate><guid>https://linuxmanr4.com/2023/08/28/mensajes-sms-sospechosos-como-evitar-caer-en-una-trampa/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/Mensajes-SMS-sospechosos.jpg" alt="Featured image of post Mensajes SMS sospechosos, como evitar caer en una trampa" />&lt;p>Los mensajes SMS, también conocidos como mensajes de texto, son un servicio de mensajería que permite el envío de mensajes de texto cortos (con un límite de caracteres) entre teléfonos móviles.&lt;/p>
&lt;p>Es uno de los servicios de mensajería más antiguos, mucho antes de WhatsApp, del Messenger o del ahora extinto Blackberry era muy común mandar &amp;ldquo;mensajitos&amp;rdquo; (que antiguamente costaban un peso) para comunicarnos.&lt;/p>
&lt;p>Lamentablemente, los mensajes SMS son un medio muy efectivo para engañar a las personas (sobre todo adultos mayores) a caer en trampas o estafas.&lt;/p>
&lt;h2 id="los-peligros-de-los-mensajes-sms">Los peligros de los mensajes SMS.
&lt;/h2>&lt;p>Los &lt;a class="link" href="https://linuxmanr4.com/2016/03/30/fallo-de-envio-al-intentar-mandar-sms/" >mensajes SMS&lt;/a>
, a pesar de ser una herramienta de comunicación conveniente, también pueden presentar algunos peligros. A continuación, se enumeran algunos de los principales:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Phishing&lt;/strong>: Los mensajes SMS pueden ser utilizados para llevar a cabo ataques de phishing, donde los delincuentes se hacen pasar por entidades legítimas para obtener información personal o financiera.&lt;/li>
&lt;li>&lt;strong>Malware&lt;/strong>: Algunos mensajes SMS pueden contener enlaces maliciosos que, al hacer clic en ellos, descargan e instalan malware en el dispositivo del destinatario. Esto puede resultar en la pérdida de datos personales o incluso el control del dispositivo por parte de los ciberdelincuentes.&lt;/li>
&lt;li>&lt;strong>Fraude&lt;/strong>: Los mensajes SMS también pueden ser utilizados para llevar a cabo fraudes, incluyendo estafas de suplantación de identidad o solicitudes de pago falsas.&lt;/li>
&lt;li>&lt;strong>Acoso y bullying&lt;/strong>: Los mensajes SMS también pueden ser utilizados como una herramienta para acosar, intimidar o difamar a otras personas. Esto puede tener un impacto negativo en la salud mental y emocional de los afectados.&lt;/li>
&lt;li>&lt;strong>Spoofing&lt;/strong>: Los mensajes SMS pueden ser fácilmente falsificados, lo que permite a los ciberdelincuentes hacerse pasar por otra persona o entidad de confianza para obtener información confidencial.&lt;/li>
&lt;/ul>
&lt;p>Es importante estar consciente de estos peligros y tomar precauciones al recibir y responder mensajes SMS, como verificar la identidad de los remitentes y evitar hacer clic en enlaces sospechosos o proporcionar información personal sensible.&lt;/p>
&lt;p>El tema no es nada nuevo, pero si hay un aumento considerable en este tipo de ataques &lt;a class="link" href="https://www.forbes.com.mx/mexico-segundo-pais-con-mas-ataques-de-phishing-en-al/" target="_blank" rel="noopener"
>México, segundo país con más ataques de phishing en América Latina (Forbes)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Cada vez más dependemos más del &lt;a class="link" href="https://linuxmanr4.com/2010/03/22/registrar-tu-telefono-celular/" >teléfono celular&lt;/a>
. Los ciberdelincuentes lo saben y están aprovechando la creciente dependencia para lanzar ataques de phishing más sofisticados.&lt;/p>
&lt;p>Y es un movimiento natural. Al reforzar la seguridad por parte de aplicaciones como WhatsApp recurren a los medios menos seguros como los correos electrónicos y los mensajes SMS.&lt;/p>
&lt;h2 id="un-ejemplo-de-un-mensaje-sms-malicioso">Un ejemplo de un mensaje SMS malicioso.
&lt;/h2>&lt;p>El otro día mi esposa me mostró que le llegó un mensaje relacionado con un problema en la entrega de un paquete.&lt;/p>
&lt;blockquote>
&lt;p>Su paquete ha sido puesto en espera debido a que falta un número de calle en el paquete. Por favor actualice la información de entrega: &lt;a class="link" href="https://enlace_a_sitio_malicioso.com" target="_blank" rel="noopener"
>https://enlace_a_sitio_malicioso.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>&lt;/blockquote>
&lt;p>Después de tomarle una foto al mensaje, le pedí que bloqueara el número. El mensaje tiene toda la pinta de ser una trampa y no estaba equivocado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/captura-de-pantalla-del-mensaje-malicioso.jpg"
alt="Un ejemplo clásico de un mensaje SMS malicioso.">&lt;figcaption>
&lt;p>Un ejemplo clásico de un mensaje SMS malicioso.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como lo explique el principio, estamos en claro ataque de &lt;strong>phishing&lt;/strong>. Afortunadamente, no estábamos esperando ningún paquete, pero muchas personas sí, ahora es de lo más común.&lt;/p>
&lt;h2 id="el-acortador-de-url">El acortador de URL
&lt;/h2>&lt;p>Un detalle que suelen acompañar a los mensajes fraudulentos es una URL breve o acortada. Era muy común porque la cantidad de texto que puede incluir el mensaje de texto es limitada. Pero eso sirve para ocultar una dirección que puede levantar sospechas.&lt;/p>
&lt;p>Me di el tiempo de programar un &lt;a class="link" href="https://linuxmanr4.com/desacortador/" >desacortador de urls&lt;/a>
, que ya va en la versión 2, construida con &lt;a class="link" href="https://astro.build/" target="_blank" rel="noopener"
>Astro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(la anterior estaba en &lt;a class="link" href="https://www.php.net/" target="_blank" rel="noopener"
>PHP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/imagen.png">
&lt;/figure>
&lt;p>Bueno, pues ahora ya tengo el enlace al que dirige realmente la dirección del mensaje.&lt;/p>
&lt;h3 id="usando-curl-para-saber-el-destino-de-una-url">Usando curl para saber el destino de una URL
&lt;/h3>&lt;p>Hay una forma de saber el destino de URL con &lt;a class="link" href="https://curl.se/" target="_blank" rel="noopener"
>curl&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y es muy sencillo. Solo hay que poner atención a donde dice &lt;strong>location&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl --head &lt;span class="s2">&amp;#34;https://bit.ly/3qRsCSB&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">HTTP/2 &lt;span class="m">301&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server: nginx
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">date: Tue, &lt;span class="m">29&lt;/span> Aug &lt;span class="m">2023&lt;/span> 16:30:46 GMT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">content-type: text/html&lt;span class="p">;&lt;/span> &lt;span class="nv">charset&lt;/span>&lt;span class="o">=&lt;/span>utf-8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">content-length: &lt;span class="m">110&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cache-control: private, max-age&lt;span class="o">=&lt;/span>&lt;span class="m">90&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">content-security-policy: referrer always&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">location: /
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">referrer-policy: unsafe-url
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">set-cookie: &lt;span class="nv">_bit&lt;/span>&lt;span class="o">=&lt;/span>n7tguK-35158d686f2f5bb37f-00j&lt;span class="p">;&lt;/span> &lt;span class="nv">Domain&lt;/span>&lt;span class="o">=&lt;/span>bit.ly&lt;span class="p">;&lt;/span> &lt;span class="nv">Expires&lt;/span>&lt;span class="o">=&lt;/span>Sun, &lt;span class="m">25&lt;/span> Feb &lt;span class="m">2024&lt;/span> 16:30:46 GMT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">via: 1.1 google
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">alt-svc: &lt;span class="nv">h3&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;:443&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">ma&lt;/span>&lt;span class="o">=&lt;/span>2592000,h3-29&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;:443&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">ma&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">2592000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Para filtrar el resultado podemos usar grep&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl --head &lt;span class="s2">&amp;#34;https://bit.ly/3qRsCSB&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> grep location
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> % Total % Received % Xferd Average Speed Time Time Time Current
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dload Upload Total Spent Left Speed
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="m">0&lt;/span> &lt;span class="m">110&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="m">0&lt;/span> --:--:-- --:--:-- --:--:-- &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">location: /
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="revisando-la-reputación-del-sitio">Revisando la reputación del sitio.
&lt;/h2>&lt;p>Ahora que tengo la dirección real a la que dirige la dirección del mensaje es hora de revisar que reputación que tiene el sitio.&lt;/p>
&lt;p>Veamos que nos dice &lt;a class="link" href="https://www.virustotal.com/gui/home/url" target="_blank" rel="noopener"
>VirusTotal&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/informe%5Fvirustotal.jpg"
alt="Reputación del URL sospechoso en Virustotal.">&lt;figcaption>
&lt;p>Reputación del URL sospechoso en Virustotal.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ok, tenemos un resultado positivo. Ahora veamos lo que nos dice &lt;a class="link" href="https://metadefender.opswat.com/" target="_blank" rel="noopener"
>Metadefender&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/informe%5Fmetadefender.jpg"
alt="Reputación del URL sospechoso en Metadefender.">&lt;figcaption>
&lt;p>Reputación del URL sospechoso en Metadefender.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y vemos que también da un resultado positivo a &lt;strong>Phishing&lt;/strong>. Lo que no me queda muy claro es porque el motor de amenazas de Avira de Virus total lo reporta como Clean. Pero esa es otra historia.&lt;/p>
&lt;p>&lt;strong>Actualización&lt;/strong>. Un día después de escribir este artículo me doy cuenta de que el enlace acortado tiene una pésima reputación en Virus total y eso es excelente. Recuerden &lt;strong>ROJO&lt;/strong> significa &lt;strong>PELIGRO&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/image-2.png">
&lt;/figure>
&lt;p>Por qué hay tanta diferencia entre el URL acortado al que no lo está para mi es un misterio, pero me doy por bien servido si al menos da una señal de alarma.&lt;/p>
&lt;p>Hasta aquí podría ser suficiente y decir ¡Basta! Confirmado que es un mensaje totalmente malicioso ¡Ahhh, pero uno es curioso!&lt;/p>
&lt;h2 id="qué-es-lo-que-buscan-con-ese-mensaje">¿Qué es lo que buscan con ese mensaje?
&lt;/h2>&lt;p>Claro que la recomendación es la de &lt;strong>NO ABRAN EL ENLACE&lt;/strong>. Pero para que se den una idea de lo que pasa si lo abren, bueno, pues pasa esto.&lt;/p>
&lt;p>Al abrir en enlace me aparece ¿Una página del gobierno de México? ¡Oh vamos!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/estado-de-entrega-del-paquete.jpg"
alt="Una página falsa del Gobierno de México.">&lt;figcaption>
&lt;p>Una página falsa del Gobierno de México.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con la información que tengo sé perfectamente que no estoy en el sitio del Gobierno de México. ¿Qué pasa si le doy clic en el botón de Continuar? Pues ahí es donde está lo bueno.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/08/recolecion-de-informacion.jpg"
alt="Recolección de información de la víctima.">&lt;figcaption>
&lt;p>Recolección de información de la víctima.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/10/image.png">
&lt;/figure>
&lt;p>Ahora sí, con total impudicia a recolectar toda la información que se pueda. Nombre, dirección, teléfonos, fechas de nacimiento, correo electrónico y hasta a qué horas va al baño.&lt;/p>
&lt;h2 id="qué-hacen-con-toda-esta-información">¿Qué hacen con toda esta información?
&lt;/h2>&lt;p>Pues le puedo asegurar a mis cuatro lectores que nada bueno.&lt;/p>
&lt;p>Con algunos de estos datos ya se puede calcular una CURP o elaborar un ataque mucho más personalizado y sofisticado. Después de todo ya tienen todos lo datos de esa persona.&lt;/p>
&lt;p>La gente mala es muy creativa y siempre encuentran la forma de aprovecharse, sacar ventaja generalmente para obtener dinero.&lt;/p>
&lt;h2 id="recomendaciones">Recomendaciones
&lt;/h2>&lt;p>Lamentablemente, no hay mucho que hacer. La capacidad de mandar mensajes SMS está disponible en todos los teléfonos celulares, hasta en los más antiguos.&lt;/p>
&lt;p>No es una aplicación que se pueda desinstalar y algunos sitios siguen mandando claves de un solo uso por mensajes SMS al teléfono registrado en el servicio.&lt;/p>
&lt;p>Se puede instalar un antivirus para celular, pero no puedo recomendar alguno de primera mano. Le añade una carga adicional al teléfono y eso puede no ser del agrado de todos.&lt;/p>
&lt;p>Lo único que les puedo recomendar es que no abran ningún enlace o descarguen aplicaciones que vengan en un mensaje SMS, ni los de UNOTV.&lt;/p>
&lt;p>Aplique su sentido común y evite caer en estas trampas.&lt;/p>
&lt;p>¡Suerte!&lt;/p></description></item><item><title>Watchdog en pfSense: Vigila el funcionamiento de los servicios</title><link>https://linuxmanr4.com/2023/07/13/watchdog-en-pfsense/</link><pubDate>Thu, 13 Jul 2023 16:18:00 +0000</pubDate><guid>https://linuxmanr4.com/2023/07/13/watchdog-en-pfsense/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/Watchdog-en-pfSense.jpg" alt="Featured image of post Watchdog en pfSense: Vigila el funcionamiento de los servicios" />&lt;p>&lt;em>Watchdog&lt;/em> en pfSense es una característica esencial que se utiliza para supervisar y garantizar la estabilidad y seguridad del sistema.&lt;/p>
&lt;p>Durante los problemas de actualización de pfSense (léase: &lt;a class="link" href="https://linuxmanr4.com/2023/07/01/actualizar-pfsense-de-2-6-0-a-2-7-0-error-fatal/" >Actualizar pfSense de 2.6.0 a 2.7.0 ¡Error fatal!&lt;/a>
) noté algunas anomalías con &lt;a class="link" href="https://linuxmanr4.com/2021/10/25/agregar-listas-de-pi-hole-a-pfblockerng/" >pfBlockerNG&lt;/a>
, pero más específicamente con el servicio &lt;strong>unbound&lt;/strong> que se encarga de resolver las peticiones de DNS a los usuarios.&lt;/p>
&lt;p>Por alguna razón, después de actualizar las listas de sitios maliciosos o problemáticos el servicio &lt;strong>unbound&lt;/strong> se detenía ocasionando serios problemas a los usuarios.&lt;/p>
&lt;h2 id="qué-es-un-watchdog">¿Qué es un Watchdog?
&lt;/h2>&lt;p>En términos sencillos, el &lt;em>watchdog&lt;/em> es un mecanismo de software que monitorea continuamente el estado de funcionamiento de los servicios de pfSense. Su principal objetivo es detectar y responder automáticamente ante fallos o situaciones anómalas que puedan comprometer funcionamiento del sistema.&lt;/p>
&lt;p>En pfSense el &lt;em>Watchdog&lt;/em> tiene dos funciones importantes:&lt;/p>
&lt;p>&lt;strong>1. Supervisión del sistema&lt;/strong>: El &lt;em>watchdog&lt;/em> vigila constantemente los servicios que se configuren. Puede ser uno o todos si así lo prefiere. Si detecta algún problema, entonces tomará una acción correctiva.&lt;/p>
&lt;p>&lt;strong>2. Recuperación automática&lt;/strong>: Si el &lt;em>watchdog&lt;/em> identifica un fallo, entonces procede a reiniciar automáticamente los servicios afectados. Esta característica garantiza que el sistema vuelva a un estado operativo estable sin la intervención manual de un administrador.&lt;/p>
&lt;h2 id="instalar-watchdog">Instalar Watchdog
&lt;/h2>&lt;p>Instalar &lt;em>Watchdog&lt;/em> es muy sencillo. Hay que ir al menú &lt;strong>System&lt;/strong> - &lt;strong>Package Manager&lt;/strong> - &lt;strong>Available Packages&lt;/strong> y buscar el programa &lt;em>Watchdog&lt;/em> y procede a su instalación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/image.png"
alt="Descripción del programa Watchdog en pfSense.">&lt;figcaption>
&lt;p>Descripción del programa Watchdog en pfSense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La configuración también es muy simple. Basta con ir al menú de &lt;strong>Services&lt;/strong> - &lt;strong>Service Watchdog&lt;/strong> e indicar los servicios que van a ser monitoreados. Guardar los cambios y listo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/image-1.png"
alt="Configuración del Watchdog en pfSense.">&lt;figcaption>
&lt;p>Configuración del Watchdog en pfSense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="configurar-las-notificaciones-en-pfsense">Configurar las notificaciones en pfSense
&lt;/h2>&lt;p>La configuración de las notificaciones es opcional pero es recomendable. El trabajo del watchdog debe de ser ocasional, no es normal que esté funcionando todo el tiempo. Así que es bueno estar enterado.&lt;/p>
&lt;p>El menú de notificaciones está un poco escondido: &lt;strong>System&lt;/strong> - &lt;strong>Advanced&lt;/strong> - &lt;strong>Notifications&lt;/strong>&lt;/p>
&lt;p>Lo más común es configurar las notificaciones vía &lt;strong>Correo electrónico&lt;/strong>, pero hay otras interesantes como &lt;a class="link" href="https://telegram.org/" target="_blank" rel="noopener"
>Telegram&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h3 id="ejemplo-de-notificación-por-correo-electrónico">Ejemplo de notificación por correo electrónico.
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Notifications in this message: 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">================================
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">9:34:00 Service Watchdog detected service unbound stopped. Restarting unbound (DNS Resolver)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero les advierto que van a recibir &lt;strong>TODAS&lt;/strong> las notificaciones del sistema y en ocasiones puede ser un poco abrumador. Activar esta opción se la dejo a su criterio.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>En resumen, el &lt;em>watchdog&lt;/em> en pfSense es una excelente herramienta para mantener la estabilidad y confiabilidad del sistema.&lt;/p>
&lt;p>Ayuda a evitar interrupciones no deseadas y asegura una respuesta rápida ante fallos.&lt;/p>
&lt;p>Para ser sincero, es raro que haya problemas en los servicios de pfSense. Tengo varios años y son contadas las ocasiones. Pero cuando estás buscando un error, no quieres que se detenga el servicio, sobre todo cuando no estás presente.&lt;/p>
&lt;p>Así que lo mejor es prevenir que lamentar.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Actualizar pfSense de 2.6.0 a 2.7.0 ¡Error fatal!</title><link>https://linuxmanr4.com/2023/07/01/actualizar-pfsense-de-2-6-0-a-2-7-0-error-fatal/</link><pubDate>Sat, 01 Jul 2023 18:59:04 +0000</pubDate><guid>https://linuxmanr4.com/2023/07/01/actualizar-pfsense-de-2-6-0-a-2-7-0-error-fatal/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/actualizar-pfSense-270.jpg" alt="Featured image of post Actualizar pfSense de 2.6.0 a 2.7.0 ¡Error fatal!" />&lt;p>La actualización de pfSense a la versión 2.7.0 fue un absoluto desastre. Tengo años usando pfSense y generalmente una actualización es una tarea sencilla que no se lleva más de 5 minutos. Sin embargo esta vez fue todo muy diferente.&lt;/p>
&lt;p>El viernes por la mañana noté que había una actualización de la versión 2.6.0 a la versión 2.7.0&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/pfSense270.png"
alt="pfsense 2.7.0 disponible.">&lt;figcaption>
&lt;p>pfsense 2.7.0 disponible.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Mientras tomaba mi café mañanero y los paquetes se descargaban llegó un momento en que me avisó que se iba a reiniciar. Hasta aquí todo normal.&lt;/p>
&lt;p>Después de confirmar el reinicio y comprobar que el equipo estaba encendido, tenía acceso a él vía SSH, pero dejó de compartir el internet y no tenía acceso vía el WebGUI.&lt;/p>
&lt;h2 id="intentar-arreglar-pfsense">Intentar arreglar pfSense.
&lt;/h2>&lt;p>En este momento estaba contra reloj. Algo de 5 minutos se estaba convirtiendo en horas. Lo más rápido era intentar arreglarlo.&lt;/p>
&lt;p>Después de todo tenía acceso vía SSH al servidor y este tenía internet.&lt;/p>
&lt;p>Al revisar el comunicado de prensa de la nueva versión ( &lt;a class="link" href="https://docs.netgate.com/pfsense/en/latest/releases/2-7-0.html" target="_blank" rel="noopener"
>2.7.0 New Features and Changes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) leo esta advertencia:&lt;/p>
&lt;p>Debido a los grandes cambios en PHP y en las versiones base del sistema operativo, existe una probabilidad mayor de lo habitual de que los paquetes interfieran con el proceso de actualización. Para que una actualización tenga las mayores posibilidades de realizarse sin problemas, &lt;strong>desinstale todos los paquetes antes de iniciar la actualización&lt;/strong>.&lt;/p>
&lt;p>¡Hasta ahora me vengo enterando! Esa advertencia deberían de ponerla &lt;strong>antes&lt;/strong> de iniciar el proceso de actualización, pero yo ni enterado. Lo bueno es que si descargué un respaldo de la configuración, que si no ¡Ufff!&lt;/p>
&lt;p>Primero revisé el archivo log de actualizaciones, pero todo parecía normal.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="nx">conf&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nx">upgrade_log&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">txt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Updating&lt;/span> &lt;span class="nx">repositories&lt;/span> &lt;span class="nx">metadata&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Updating&lt;/span> &lt;span class="nx">pfSense&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">core&lt;/span> &lt;span class="nx">repository&lt;/span> &lt;span class="nx">catalogue&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Fetching&lt;/span> &lt;span class="nx">meta&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">conf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Fetching&lt;/span> &lt;span class="nx">packagesite&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Processing&lt;/span> &lt;span class="nx">entries&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">pfSense&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">core&lt;/span> &lt;span class="nx">repository&lt;/span> &lt;span class="nx">update&lt;/span> &lt;span class="nx">completed&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">7&lt;/span> &lt;span class="nx">packages&lt;/span> &lt;span class="nx">processed&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Updating&lt;/span> &lt;span class="nx">pfSense&lt;/span> &lt;span class="nx">repository&lt;/span> &lt;span class="nx">catalogue&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Fetching&lt;/span> &lt;span class="nx">meta&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">conf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Fetching&lt;/span> &lt;span class="nx">packagesite&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">.........&lt;/span>&lt;span class="p">.&lt;/span> &lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Processing&lt;/span> &lt;span class="nx">entries&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">.........&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">pfSense&lt;/span> &lt;span class="nx">repository&lt;/span> &lt;span class="nx">update&lt;/span> &lt;span class="nx">completed&lt;/span>&lt;span class="p">.&lt;/span> &lt;span class="mi">532&lt;/span> &lt;span class="nx">packages&lt;/span> &lt;span class="nx">processed&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">All&lt;/span> &lt;span class="nx">repositories&lt;/span> &lt;span class="nx">are&lt;/span> &lt;span class="nx">up&lt;/span> &lt;span class="nx">to&lt;/span> &lt;span class="nx">date&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;gt;&amp;gt;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span> &lt;span class="nx">Locking&lt;/span> &lt;span class="kn">package&lt;/span> &lt;span class="nx">pkg&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="nx">done&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Your&lt;/span> &lt;span class="nx">packages&lt;/span> &lt;span class="nx">are&lt;/span> &lt;span class="nx">up&lt;/span> &lt;span class="nx">to&lt;/span> &lt;span class="nx">date&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;gt;&amp;gt;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span> &lt;span class="nx">Unlocking&lt;/span> &lt;span class="kn">package&lt;/span> &lt;span class="nx">pkg&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="nx">done&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Luego Intenté lo que recomienda el manual &lt;a class="link" href="https://docs.netgate.com/pfsense/en/latest/troubleshooting/upgrades.html#forced-pkg-reinstall" target="_blank" rel="noopener"
>Forced pkg Reinstall&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 :&lt;/p>
&lt;p>&lt;em>Limpie el repositorio y reinstale forzosamente los pkg, los datos del repositorio y el script de actualización:&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pkg-static clean -ay; pkg-static install -fy pkg pfSense-repo pfSense-upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Forzar una reinstalación de todo:&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pkg-static upgrade -f
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Nuevamente, completó todas las tareas de forma exitosa, se reinició el servidor, pero tampoco funcionó y quedó todo como al principio.&lt;/p>
&lt;h2 id="si-todo-falla-reinstalar">Si todo falla ¡Reinstalar!
&lt;/h2>&lt;p>Les recuerdo que estoy en contra reloj. A estas alturas los usuarios ya se estaban comportando de forma extraña. Empezaron a platicar entre ellos, algunos salieron a ver la luz del día, unos ¡A trabajar! ¡El apocalipsis!.&lt;/p>
&lt;h3 id="instalar-la-versión-270-desde-cero">Instalar la versión 2.7.0 desde cero.
&lt;/h3>&lt;p>Descargué la versión 2.7.0 pero me encontré con otros problemas.&lt;/p>
&lt;p>Logré instalar la versión 2.7.0 en el equipo, pero al reiniciar se quedaba atorado en una parte del proceso y ni para atrás ni para adelante.&lt;/p>
&lt;p>¿Sería un problema de compatibilidad con el &lt;em>hardware&lt;/em>? 🤔&lt;/p>
&lt;h3 id="regresar-a-la-versión-260">Regresar a la versión 2.6.0.
&lt;/h3>&lt;p>No quedó más remedio de regresar a la versión 2.6.0. Afortunadamente ya tenía la imagen en mi computadora y &lt;a class="link" href="https://linuxmanr4.com/2011/07/14/como-restaurar-un-respaldo-en-elastix/" >restauré el respaldo&lt;/a>
que hice antes de actualizar.&lt;/p>
&lt;p>En este punto todo comenzaba a regresar a la vida. El servidor nuevamente empezó a compartir el internet y poco a poco los usuarios regresaron a sus actividades normales, o sea, ver videos de tiktok.&lt;/p>
&lt;p>Es muy probable que a menos que se cambie de computadora se quede esta versión como fija.&lt;/p>
&lt;p>En &lt;strong>System&lt;/strong> - &lt;strong>Update&lt;/strong> - &lt;strong>Update Settings&lt;/strong> establecí la rama a la versión 2.6.0&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/07/update-settings.png">
&lt;/figure>
&lt;h2 id="ahora-qué-sigue">Ahora ¿Qué sigue?
&lt;/h2>&lt;p>Busqué algo de información en los foros de internet, pero parece que es algo pronto para que haya noticias sobre el tema. Estaré pendiente algunos días.&lt;/p>
&lt;p>Quizás haga algunas pruebas en una máquina virtual, para revisar que pudo salir mal. Pero eso lo va a definir mi carga de trabajo.&lt;/p>
&lt;p>No es la primera vez que tengo &lt;a class="link" href="https://linuxmanr4.com/2021/02/05/pfsense-recuperandome-de-una-falla-en-el-disco-duro/" >problemas con pfSense&lt;/a>
, pero estaban más relacionados con el hardware ¿Será hora de darle un vistazo a &lt;a class="link" href="https://opnsense.org/" target="_blank" rel="noopener"
>OPNsense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
?&lt;/p>
&lt;p>El tiempo dirá si actualizo o no. Mientras tanto, a seguir trabajando.&lt;/p>
&lt;p>Que tengan un agradable fin de semana.&lt;/p>
&lt;p>&lt;em>p.d. No hagan upgrades los viernes.&lt;/em>&lt;/p></description></item><item><title>Ganar dinero dando me gusta a videos de Youtube, suena a estafa.</title><link>https://linuxmanr4.com/2023/06/21/ganar-dinero-dando-me-gusta-a-videos-de-youtube-estafa/</link><pubDate>Wed, 21 Jun 2023 22:16:25 +0000</pubDate><guid>https://linuxmanr4.com/2023/06/21/ganar-dinero-dando-me-gusta-a-videos-de-youtube-estafa/</guid><description>&lt;p>Si usted cree que es muy complicado ganar dinero dando likes a videos de Youtube es porque probablemente lo es.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/07/persona-siendo-estafada-por-whatsapp.jpg">
&lt;/figure>
&lt;p>Me llegaron un par de mensajes a mi Whatsapp de un contacto que no conozco. Lo que más llama la atención es el número con código de país +27 que según una búsqueda rápida corresponde a ¿¡Sudáfrica!?. Como que algo no anda bien 🤔.&lt;/p>
&lt;p>Los mensajes dicen más o menos así:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/06/estafa-por-whatsapp.jpg"
alt="Mensajes de estafa por whatsapp.">&lt;figcaption>
&lt;p>Mensajes de estafa por whatsapp.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>&lt;em>Gracias por su respuesta. Nuestra empresa coopera con los comerciantes de YouTube, y los comerciantes de YouTube están dispuestos a pagar para aumentar su popularidad, por lo que nuestra empresa necesita reclutar una gran cantidad de empleados cooperativos, y puede recibir pagos si le gusta su contenido en YouTube.&lt;/em>&lt;/p>
&lt;p>&lt;em>Este es un trabajo de medio tiempo que no afecta su otro trabajo y no necesita pagar ninguna tarifa inicial. El trabajo es simple, solo necesita dar me gusta a un video de YouTube y enviar una captura de pantalla, y se le pagará. Pagamos 100Mex.$ por tres tareas, puedes darle like al video en tu tiempo libre y ganar hasta 6000Mex.$ por día
¿Estás interesado en trabajar con nosotros?&lt;/em>&lt;/p>
&lt;p>&lt;em>Ahora que ha llegado la era 5G de Internet, muchas personas ya han ganado dinero a través de Internet. Creo que tú también lo sabes. Tengo que unirme para ganar dinero. Si no habla, puede perder oportunidades en puntos de inflexión en su vida. No hay muchas oportunidades. Espero que veas y respondas a mi mensaje.&lt;/em>&lt;/p>&lt;/blockquote>
&lt;p>Me ha llegado otra variante en la que ofrecen una oportunidad de trabajo. En este caso el mensaje providen de Indonesia.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/09/whatsapp%5Fenganoso.jpg">
&lt;/figure>
&lt;blockquote>
&lt;p>Hola, soy el director de recursos humanos de HIT data LTD. Me puse en contacto con usted para informarle sobre los puestos
de tiempo parcial disponibles para trabajar desde casa. ¿Está interesado? Salario diario: 500-3000Mex.$, el salario se liquida inmediatamente.&lt;/p>&lt;/blockquote>
&lt;p>Como ven, este último mensaje es mucho más creíble.&lt;/p>
&lt;p>Incluso me han llegado comentarios en los que les depositan pequeñas cantidades a las víctima para luego pedirles cantidades mayores con la promesa de un pago mucho mayor que nunca llegará.&lt;/p>
&lt;h2 id="ya-me-llegaron-los-mensajes-qué-hago">Ya me llegaron los mensajes ¿Qué hago?
&lt;/h2>&lt;p>Ok, lo primero es &lt;strong>no interactuar&lt;/strong> con los mensajes. Muy probablemente sea un bot el que esté del otro lado esperando a que alguien conteste y va a seguir mandando mensajes cada cierto tiempo hasta lograrlo.&lt;/p>
&lt;p>Muchas de estos engaños por whatsapp tienen como propósito &lt;a class="link" href="https://linuxmanr4.com/2020/03/19/coronavirus-python-pandemia/" >obtener información&lt;/a>
personal o financiera de los usuarios desprevenidos. Por lo tanto, es importante que las personas mantengan una actitud vigilante y &lt;strong>no compartan información confidencial con desconocidos&lt;/strong>.&lt;/p>
&lt;p>Recuerde, si algo suena demasiado bueno como para ser verdad es que muy probablemente no lo sea.&lt;/p>
&lt;p>En resumen:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>NO&lt;/strong> responda a los mensajes.&lt;/li>
&lt;li>&lt;strong>NO&lt;/strong> haga clic a ningún enlace.&lt;/li>
&lt;li>&lt;strong>NO&lt;/strong> instale ninguna aplicación.&lt;/li>
&lt;li>&lt;strong>NO&lt;/strong> comparta información confidencial con desconocidos.&lt;/li>
&lt;/ul>
&lt;h2 id="reportar-el-chat">Reportar el chat.
&lt;/h2>&lt;p>En la parte superior derecha de la conversación está el icono de los 3 puntitos ⋮ Seleccione &lt;strong>Más&lt;/strong> y luego en &lt;strong>Reportar&lt;/strong>&lt;/p>
&lt;p>Esta acción le avisará a Whatsapp que usted considera que algo no está bien. Además se eliminará toda la conversación y se bloqueará el número que le está mandando los mensajes.&lt;/p>
&lt;p>Si tienes dudas revisa &lt;a class="link" href="https://faq.whatsapp.com/414631957536067/" target="_blank" rel="noopener"
>Información sobre la opción de bloquear y reportar contactos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en la ayuda de Whatsapp.&lt;/p>
&lt;p>Si Youtube me diera dinero por dar likes a sus videos ya tendría una buena cantidad de dinero. ¡A que le tiras cuando sueñas mexicano!&lt;/p>
&lt;p>Es comprensible que muchos usuarios de YouTube desearían recibir una compensación por su tiempo y esfuerzo en interactuar con los videos que ven.&lt;/p>
&lt;p>Sin embargo, es importante tener en cuenta que el sistema de likes y visualizaciones de la plataforma está diseñado para medir la popularidad y el interés en un video, no para generar ganancias para los espectadores.&lt;/p>
&lt;h2 id="un-video-que-lo-explica-todo">Un video que lo explica todo
&lt;/h2>&lt;p>Me llegaron comentarios diciendo que si estaban pagando y después de ver este video comprendí que es un juego macabro, te pagan poco, como una forma de reafirmar la confianza en la estafa y luego te piden dinero.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/uOJVK4KUmN4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Si no entregas dinero ya no se ocupan de tí y a buscar una nueva víctima.&lt;/p>
&lt;p>Como pueden ver, aunque paguen al principio, a final de cuentas ellos salen ganando.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/yHgWtDlHb5M"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Marzo de 2024 - Defraudan a una maestra con 100 mil pesos.&lt;/p>
&lt;p>Así que ya saben, no renuncien a su trabajo que el dinero no crece en los árboles ni en los likes de Youtube.&lt;/p></description></item><item><title>Kernel Panic después de actualizar Manjaro: Initramfs unpacking failed</title><link>https://linuxmanr4.com/2023/03/31/kernel-panic-initramfs-unpacking-failed/</link><pubDate>Fri, 31 Mar 2023 23:05:00 +0000</pubDate><guid>https://linuxmanr4.com/2023/03/31/kernel-panic-initramfs-unpacking-failed/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/Kernel-Panic-Initramfs-unpacking-failed.jpg" alt="Featured image of post Kernel Panic después de actualizar Manjaro: Initramfs unpacking failed" />&lt;p>Me salió un Kernel Panic después de instalar Manjaro. El mensaje completo decía:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Initramfs unpacking failed: invalid magic at start of compressed.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Parecía un día normal en la oficina, después de terminar mi tacita de café mañanero vi una notificación del sistema de que había una &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >actualización de Manjaro&lt;/a>
disponible.&lt;/p>
&lt;p>Lo tomé como algo rutinario, la actualización se ejecutó sin mayor problema. Al final vi una advertencia de que para activar los cambios era necesario reiniciar y lo hice.&lt;/p>
&lt;p>Poco tiempo después, se me borró la sonrisa :( En lugar de un arranque normal, en mi pantalla aparecía un bonito Kernel Panic.&lt;/p>
&lt;h2 id="kernel-panic-eso-nunca-es-bueno">Kernel Panic, eso nunca es bueno.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/kernel%5Fpanic%5Finitramfs%5Funpacking%5Ffailed.jpg"
alt="Kernel Panic después de actualizar Manjaro: Initramfs unpacking failed">&lt;figcaption>
&lt;p>Kernel Panic después de actualizar Manjaro: Initramfs unpacking failed&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[ 1.656027] Initramfs unpacking failed: invalid magic at start of compressed archive
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.705457] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.7093221 CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.4.238-1-MANJARO #1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7094461 Hardware name: System manufacturer System Product Name MSA88-M, BIOS 0801 11/18/2011 .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7096081 Call Trace:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.7096581 dump_stack+0x64/0x7c
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.7097201 panic+0x11a/70x30d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7097771 mount_block_root+0x2e2/0x306
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7098511 prepare_namespace +0x136/0x16c
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.7099261 ? rest_init+0xbf/0xbf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7099881 kernel_init+0xa/0x101
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.710050] ret_from_fork+0x35/0x40 ,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L 1.7101951 Kernel Offset: Ox1d000000 from Oxffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.7103891 ———[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]——
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Así que como pueden deducir estaba atascado, ni para adelante ni para atrás. Lo primero que hice fue visitar los foros de Manjaro y como viejo lobo de mar empecé a preparar una USB de arranque con Manjaro, era obvio que la iba a necesitar.&lt;/p>
&lt;p>El problema me apareció en la actualización anunciada en los foros como: &lt;a class="link" href="https://forum.manjaro.org/t/stable-update-2023-03-31-kernels-plasma-5-27-lts-pamac-phosh-mesa-libreoffice/137405" target="_blank" rel="noopener"
>\[Stable Update\] 2023-03-31 - Kernels, Plasma 5.27 LTS, Pamac, Phosh, Mesa, LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Revisé los comentarios y nada, pero no pasó mucho tiempo cuando ¡Bingo! No era el único con el mismo problema &lt;a class="link" href="https://forum.manjaro.org/t/intiramfs-unpacking-failed-invalid-magic-as-start-of-compressed/137451" target="_blank" rel="noopener"
>Initramfs unpacking failed: invalid magic as start of compressed&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="el-origen-del-problema">El origen del problema
&lt;/h2>&lt;p>Leyendo el hilo me pude enterar que hay un problema con la compresión del kernel y el programa &lt;a class="link" href="https://wiki.archlinux.org/title/mkinitcpio" target="_blank" rel="noopener"
>mkinitcpio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Normalmente, se utiliza &lt;a class="link" href="https://es.wikipedia.org/wiki/Gzip" target="_blank" rel="noopener"
>gzip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un veteranazo en linux. Pero por alguna razón cambiaron a &lt;a class="link" href="https://en.wikipedia.org/wiki/Zstd" target="_blank" rel="noopener"
>zstd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un formato de compresión de nueva generación (todo sea por mejorar). Al parecer este algoritmo es mucho más rápido al momento de descomprimir.&lt;/p>
&lt;p>Pues si, muy bonito y todo, pero que susto me dió. En un momento esta todo bien y 3 doritos más tarde un Kernel Panic de miedo.&lt;/p>
&lt;p>El kernel 5.4 no soporta zstd y a partir de la versión 5.10 lo hace sin problemas. Esto deja dos opciones.&lt;/p>
&lt;h2 id="continuar-con-el-kernel-54">Continuar con el kernel 5.4
&lt;/h2>&lt;p>Ahora si, llegó el momento de arrancar mi equipo con la USB de arranque y hacer &lt;a class="link" href="https://linuxmanr4.com/2019/01/04/como-hacer-chroot-en-manjaro/" >chroot&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo manjaro-chroot -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y una vez dentro de mi partición con linux editar el archivo &lt;strong>/etc/mkinitpcio.conf&lt;/strong> para habilitar la opción gzip quitando el &lt;strong>#&lt;/strong> al principio de la línea.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># COMPRESSION
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Use this to compress the initramfs image. By default, gzip compression
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># is used. Use &amp;#39;cat&amp;#39; to create an uncompressed image.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">COMPRESSION=&amp;#34;gzip&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;bzip2&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;lzma&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;xz&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;lzop&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;lz4&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#COMPRESSION=&amp;#34;zstd&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para aplicar los cambios hay que teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkinitcpio -P
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">update-grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciar y ¡Mucha suerte!&lt;/p>
&lt;h2 id="actualizar-a-un-kernel-más-moderno">Actualizar a un kernel más moderno.
&lt;/h2>&lt;p>Yo me decanté por un kernel más moderno. El elegido fue el &lt;strong>6.10 LTS&lt;/strong> que espero que funcione (Recuerden que he tenido problemas con algunos &lt;a class="link" href="https://linuxmanr4.com/2022/06/22/pantallas-azules-y-reinicios-inexplicables-de-un-windows-7-en-virtualbox/" >kernels y Virtualbox&lt;/a>
).&lt;/p>
&lt;p>Nuevamente hice &lt;strong>chroot&lt;/strong> con la USB de arranque y me disponía a &lt;a class="link" href="https://wiki.manjaro.org/index.php/Manjaro_Kernels" target="_blank" rel="noopener"
>instalar un kernel nuevo siguiendo las instrucciones del wiki de manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Pero me dio un error inesperado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">mhwd&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">kernel&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="nx">i&lt;/span> &lt;span class="nx">linux610&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span> &lt;span class="nx">Synchronizing&lt;/span> &lt;span class="kn">package&lt;/span> &lt;span class="nx">databases&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">core&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">###&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">extra&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">###&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">community&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">###&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">multilib&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="err">###&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">error&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nx">no&lt;/span> &lt;span class="nx">targets&lt;/span> &lt;span class="nf">specified&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">use&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="nx">h&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="nx">help&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No pude solventar este error, pero si pude instalar los paquetes usando pamac.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pamac install linux61 linux61-headers
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al hacerlo se encarga de actualizar mkinitcpio y grub.&lt;/p>
&lt;p>Solo hacía falta reiniciar el equipo y seleccionar el kernel 6.10 en el menú de &lt;a class="link" href="https://linuxmanr4.com/2014/02/13/arreglando-grub-con-boot-repair/" >GRUB&lt;/a>
.&lt;/p>
&lt;p>Ahora solo tengo que pensar en una solución a largo plazo. Usar el kernel 5.4 si es que llego a tener problemas con Virtualbox o dejar la versión 6.1 si es que estos desaparecen.&lt;/p>
&lt;p>Vaya forma de terminar el mes de marzo ¡Hasta la próxima!&lt;/p></description></item><item><title>Cómo desactivar la vista previa de las Tabs en Google Chrome</title><link>https://linuxmanr4.com/2023/03/11/como-desactivar-la-vista-previa-de-las-tabs-en-google-chrome/</link><pubDate>Sat, 11 Mar 2023 15:46:54 +0000</pubDate><guid>https://linuxmanr4.com/2023/03/11/como-desactivar-la-vista-previa-de-las-tabs-en-google-chrome/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/Como-desactivar-la-vista-previa-de-las-tabs-en-Google-Chrome.jpg" alt="Featured image of post Cómo desactivar la vista previa de las Tabs en Google Chrome" />&lt;p>En las versiones más recientes de &lt;a class="link" href="https://www.google.com/intl/es_es/chrome/" target="_blank" rel="noopener"
>Google Chrome&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
aparece una nueva opción que muestra una vista previa del contenido de la página al pasar el ratón por encima de su tab.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/vista%5Fprevia%5Ftab%5Fchrome.webp"
alt="Vista previa del tab.">&lt;figcaption>
&lt;p>Vista previa del tab.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A mi me parece un poco molesto y termino por desactivar esta opción, pero cada vez que actualizo Chrome vuelve a aparecer.&lt;/p>
&lt;p>Ahora hay truco, porque la opción quedó oculta en la última versión.&lt;/p>
&lt;p>Primero hay que abrir la página:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chrome://flags/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y &lt;a class="link" href="https://linuxmanr4.com/2014/01/10/habilitar-la-aceleracion-por-hardware-en-chromium/" >&lt;strong>habilitar&lt;/strong> la opción&lt;/a>
que dice &lt;strong>Temporarily unexpire M110 flags&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/chrome%5Fflags.webp">
&lt;/figure>
&lt;p>Una vez que presionemos el botón de &lt;strong>Relaunch&lt;/strong> nuevamente entramos a &lt;strong>chrome://flags/&lt;/strong> y buscamos la opción &lt;strong>Tab Hover Card Images&lt;/strong> y la deshabilitamos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/tab%5Fhover%5Fcard%5Fimages.webp"
alt="Tab Hover Card Images">&lt;figcaption>
&lt;p>Tab Hover Card Images&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Presionamos &lt;strong>Relaunch&lt;/strong> nuevamente y eso es todo.&lt;/p>
&lt;p>Anteriormente sólo tenía que entrar a la página de &lt;strong>flags&lt;/strong> y desactivar &lt;strong>Tab Hover Card Images&lt;/strong>, pero ya no más. Es lo malo de las opciones experimentales del navegador.&lt;/p>
&lt;p>Como referencia &lt;a class="link" href="https://linuxmanr4.com/2015/05/15/ahora-estoy-usando-el-editor-atom/" >estoy usando&lt;/a>
la Versión 111.0.5563.64 (Build oficial) (64 bits) del navegador.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Mis extensiones favoritas para Visual Studio Code</title><link>https://linuxmanr4.com/2023/03/07/mis-extensiones-favoritas-para-visual-studio-code/</link><pubDate>Tue, 07 Mar 2023 20:00:54 +0000</pubDate><guid>https://linuxmanr4.com/2023/03/07/mis-extensiones-favoritas-para-visual-studio-code/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/Mis-extensiones-favoritas-para-Visual-Studio-Code.jpg" alt="Featured image of post Mis extensiones favoritas para Visual Studio Code" />&lt;p>Una de las grandes ventajas de Visual Studio Code es que posee una gran variedad de extensiones para todo propósito que le facilitan la vida al programador.&lt;/p>
&lt;p>Al principio sentí un poco de aversión a este editor pues por &amp;hellip; Microsoft, pero decidí darle una oportunidad. Digo, si tantas personas lo usan algo bueno ha de tener.&lt;/p>
&lt;p>Ahora que tengo algo de tiempo usandolo, empiezo a darme cuenta de todo su potencial.&lt;/p>
&lt;p>En un solo espacio combina el editor para escribir el código, un espacio para la terminal, el uso de extensiones e integración con Git para el manejo de versiones.&lt;/p>
&lt;p>La verdad es un poco intimidante al principio. Hay un montón de información saturando la pantalla con un enorme conjunto de menús y atajos de teclado. Pero una vez que te acostumbras todo es más sencillo.&lt;/p>
&lt;h2 id="visual-studio-code-o-code-oss">Visual Studio Code o Code OSS
&lt;/h2>&lt;p>Cuando empecé a buscar el programa para instalarlo en mi equipoc con Manjaro, me encontré que en lugar de estar disponible un &lt;strong>Visual Studio Code&lt;/strong> me encontré con un &lt;strong>Code OSS&lt;/strong> que para mis fines prácticos es lo mismo &amp;hellip; pero no es igual.&lt;/p>
&lt;p>Aparentemente &lt;a class="link" href="https://github.com/microsoft/vscode" target="_blank" rel="noopener"
>Code OSS es la versión open source&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
sin telemetría a Microsoft. No me extraña nadita que Microsoft haga esto. Y también se por experiencia que a muy pocos desarrolladores les gusta. Sin una versión libre de espías no iba a prosperar mucho en la comunidad.&lt;/p>
&lt;p>También existe &lt;a class="link" href="http://vscodium.com" target="_blank" rel="noopener"
>VSCodium&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que también evita la telemetría a Microsoft. Instalé Code OSS simplemente porque ya formaba parte de los paquetes community de Manjaro.&lt;/p>
&lt;p>Mi punto es que por sus similitudes, para mi es prácticamente lo mismo Visual Code Studio, Code OSS y VSCodium.&lt;/p>
&lt;p>Un detalle adicional, en &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
tuve que instalar un paquete adicional llamado &lt;a class="link" href="https://aur.archlinux.org/packages/code-features" target="_blank" rel="noopener"
>code-features&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Que si la memoria no me falla, es para evitar problemas con el paquete en español del mismo Visual Studio Code &lt;a class="link" href="https://open-vsx.org/extension/MS-CEINTL/vscode-language-pack-es" target="_blank" rel="noopener"
>Spanish Language Pack for Visual Studio Code&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="extensiones-para-jupyter">Extensiones para Jupyter
&lt;/h2>&lt;p>De entrada y recién instalado, el editor ya incluía 5 extensiones para &lt;a class="link" href="https://jupyter.org/" target="_blank" rel="noopener"
>Jupyter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Que para ser honesto no tenía idea de que existía. Me parece interesante porque a mi modo de ver, es una combinación de texto, con código que se puede ejecutar directamente.&lt;/p>
&lt;p>Supongo que en la academia es algo muy útil.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/libro%5Fjupyter.jpg"
alt="Libros de trabajo de Jupyter">&lt;figcaption>
&lt;p>Libros de trabajo de Jupyter&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El texto está escrito en Markdown, el código en Python y el código se ejecuta dentro del mismo documento mostrando sus resultados ¡Cool!&lt;/p>
&lt;h2 id="extensiones-para-revisar-la-ortografía">Extensiones para revisar la ortografía
&lt;/h2>&lt;p>Como uno es obsesivo de la ortografía o cuando menos quiere cometer la menor cantidad de errores posibles me parece indispensable una extensión para darle una checadita.&lt;/p>
&lt;p>Este tipo de extensión es especial, porque una cosa es revisar la ortografía en un documento y otra muy diferente cuando los textos están revueltos con códigos.&lt;/p>
&lt;p>Para esta tarea me gustó la extensión &lt;a class="link" href="https://open-vsx.org/extension/streetsidesoftware/code-spell-checker" target="_blank" rel="noopener"
>Code Spell Checker&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
junto con &lt;a class="link" href="https://open-vsx.org/extension/streetsidesoftware/code-spell-checker-spanish" target="_blank" rel="noopener"
>Spanish - Code Spell Checker&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para agregar el idioma español.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/corrector%5Fortografia.jpg"
alt="Extensión para Visual Studio Code para revisar la ortografía.">&lt;figcaption>
&lt;p>Extensión para Visual Studio Code para revisar la ortografía.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="extensiones-para-python">Extensiones para Python
&lt;/h2>&lt;p>Ok, no es únicamente para Python ya que soporta otros lenguajes, pero ayuda mucho y me refiero a &lt;a class="link" href="https://open-vsx.org/extension/formulahendry/code-runner" target="_blank" rel="noopener"
>Code Runner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que permite la ejecución del código directamente desde el editor presionando las teclas &lt;strong>Alt + Ctrl + N&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/code%5Frunner.jpg"
alt="Extensión para ejecutar código de Python en Visual Studio Code.">&lt;figcaption>
&lt;p>Extensión para ejecutar código de Python en Visual Studio Code.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que puedo hacer lo mismo desde la terminal, pero es mucho más simple de este modo.&lt;/p>
&lt;p>&lt;a class="link" href="https://open-vsx.org/extension/magicstack/MagicPython" target="_blank" rel="noopener"
>MagicPython&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es la extensión que resalta la sintaxis de Python. Dice que no es necesario instalarla, pero la menciono por si las dudas.&lt;/p>
&lt;h2 id="extensiones-para-php">Extensiones para PHP
&lt;/h2>&lt;p>Hace mucho que no programo en PHP, pero quise hacer un mini proyectito para refrescar algunas cosas.&lt;/p>
&lt;p>Instalé &lt;a class="link" href="https://open-vsx.org/extension/bmewburn/vscode-intelephense-client" target="_blank" rel="noopener"
>PHP Intelephense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tiene una versión de pago con más opciones, pero para mi la versión gratuita esta bien. Y caray si que ayuda. Pero noté que se toma muchas libertades a la hora de formatear el código.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/Intelephense.jpg">
&lt;/figure>
&lt;h2 id="extensiones-para-mejorar-el-código">Extensiones para mejorar el código
&lt;/h2>&lt;p>&lt;a class="link" href="https://open-vsx.org/extension/oderwat/indent-rainbow" target="_blank" rel="noopener"
>indent-rainbow&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es una de esas pequeñas cosas que hacen la vida más simple.&lt;/p>
&lt;p>Agrega un poco de color en la indentación del código. De esa forma es más fácil de identificar los bloques de instrucciones. Ayuda mucho, porque en Python la indentación es un tema importante.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/inden-rainbow.jpg"
alt="Indentación colorida.">&lt;figcaption>
&lt;p>Indentación colorida.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://open-vsx.org/extension/shardulm94/trailing-spaces" target="_blank" rel="noopener"
>Trailing Spaces&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
elimina esos espacios que se quedan huérfanos al final de la línea. Como no se ven, es muy probable que se queden .&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/03/trailing%5Fspaces.jpg"
alt="Eliminando los espacios al final de la línea.">&lt;figcaption>
&lt;p>Eliminando los espacios al final de la línea.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En muchos lenguajes no serían problema. Pero creo que si lo son en &lt;em>javascript&lt;/em>. Conmigo pasa algo curioso, ahora que sé que existen, me parece un desperdicio de espacio dejarlos así nada más sin hacer nada.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Algunas de estas extensiones también están disponibles para Sublime mi otro editor de texto favorito. Así que les voy a dar una revisada para integrarlas también a este editor.&lt;/p>
&lt;p>Para tareas sencillas sigo utilizando sublime, pero para cosas más complejas aprovecho las bondades de Visual Studio Code.&lt;/p>
&lt;p>Se que en el mar de extensiones probablemente se me está escapando una que otra. ¿Alguna extensión que me recomienden?&lt;/p></description></item><item><title>Una década con Manjaro</title><link>https://linuxmanr4.com/2023/01/09/una-decada-con-manjaro/</link><pubDate>Mon, 09 Jan 2023 16:56:47 +0000</pubDate><guid>https://linuxmanr4.com/2023/01/09/una-decada-con-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/01/una-decada-con-Manjaro.jpg" alt="Featured image of post Una década con Manjaro" />&lt;p>Se dice fácil, pero han pasado 10 años desde que instalé &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en mi equipo de escritorio.&lt;/p>
&lt;p>El 8 de enero del 2013 inicié mi aventura con Manjaro. Venía de algunos problemas con Ubuntu y creí que era necesario probar algo nuevo.&lt;/p>
&lt;p>En aquellos días me estaba haciendo ojitos Arch Linux, pero no quería tardar demasiado en configurar todo a mano.&lt;/p>
&lt;p>Manjaro me ofreció un sistema listo para trabajar desde el primer arranque y gracias a sus actualizaciones frecuentes se ha sabido mantener en mi computadora con un rendimiento más que decente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/01/10-ANOS-CON-MANJARO.jpg"
alt="10 años con Manjaro">&lt;figcaption>
&lt;p>10 años con Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En estos 10 años claro que he tenido algunos problemas. La mayoría relacionados con &lt;a class="link" href="https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/" >impresoras compartidas en equipos con Windows&lt;/a>
.&lt;/p>
&lt;p>Lo más reciente fue &lt;a class="link" href="https://linuxmanr4.com/2021/06/08/nvidia-a-nouveau-manjaro/" >cambiar los drivers de nVidia por Nouveau&lt;/a>
.&lt;/p>
&lt;p>Y uno que otro susto con pérdida capilar incluida después de una actualización fallida o interrumpida. Mismos que fueron desapareciendo al &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >usar pamac para actualizar Manjaro&lt;/a>
.&lt;/p>
&lt;p>Pero nada que no se pudiera solucionar consultando los &lt;a class="link" href="https://forum.manjaro.org/" target="_blank" rel="noopener"
>foros de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Una vez más se confirma que lo más importante alrededor de una distribución de linux es su comunidad.&lt;/p>
&lt;p>Justo el sábado, un día antes de llegar a la fecha prometida se descompuso mi monitor de tantos años y créanme que sudé frío cuando vi la &lt;a class="link" href="https://linuxmanr4.com/2017/04/05/pantalla-negra-despues-de-intentar-actualizar-manjaro/" >pantalla negra&lt;/a>
. Supongo que el cosmos me quiso jugar una broma.&lt;/p>
&lt;p>Un especial agradecimiento a &lt;strong>&lt;a class="link" href="https://x.com/philmmanjaro" target="_blank" rel="noopener"
>Philip Müller&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> y a todo su equipo por tan excelente trabajo.&lt;/p>
&lt;h2 id="qué-nos-depara-el-futuro">¿Qué nos depara el futuro?
&lt;/h2>&lt;p>Creo que ya es tiempo de una instalación nueva de Manjaro. Estoy pensando en instalar una unidad SSD para lograr un mejor rendimiento. Pero no corre prisa.&lt;/p>
&lt;p>Será una instalación nueva, sobre todo para que reconozca el tipo de disco y haga los ajustes pertinentes.&lt;/p>
&lt;p>¿Durará otros 10 años? No veo porque no, pero no se si yo mismo voy a durar esa cantidad de tiempo. Son las lecciones que aprendimos después de una pandemia.&lt;/p>
&lt;p>¿Recomiendo Manjaro? ¡Claro que sí! No tenga miedo, tome una USB siga esta &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >guía para Instalar Manjaro&lt;/a>
y disfrute de un sistema operativo estable, legal y gratuito.&lt;/p></description></item><item><title>¿Tu Equipo Fue Inhabilitado? Intenta quitar el sysDLL</title><link>https://linuxmanr4.com/2022/12/21/tu-equipo-fue-inhabilitado-sysdll-telcel/</link><pubDate>Wed, 21 Dec 2022 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2022/12/21/tu-equipo-fue-inhabilitado-sysdll-telcel/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/12/Tu-equipo-fue-inhabilitado.webp" alt="Featured image of post ¿Tu Equipo Fue Inhabilitado? Intenta quitar el sysDLL" />&lt;p>¿Les aparece constantemente el mensaje de que tu equipo fue inhabilitado por parte de Telcel? A continuación les platico como lo solucioné.&lt;/p>
&lt;p>Hace unos días llegó un compañero pidiendo ayuda con su teléfono. Y caray ¡Vaya que si era un problema bastante serio!&lt;/p>
&lt;p>Les explico, a cada instante aparecía un mensaje que ocupaba toda la pantalla:&lt;/p>
&lt;p>Estimado Cliente, tu equipo fue inhabilitado debido a que presenta una o más cuotas de equipo pendientes de pago. El equipo será habilitado una vez que se haya registrado el pago. Paga en línea en: &lt;a class="link" href="https://www.mitelcel.com" target="_blank" rel="noopener"
>www.mitelcel.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o en App Mi Telcel. Consulta otras formas de pago en: &lt;a class="link" href="https://www.telcel.com/formasdepago" target="_blank" rel="noopener"
>www.telcel.com/formasdepago&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/12/mensaje-de-telcel-tu-equipo-fue-inhabilitado.jpg"
alt="Mensaje de Telcel. Tu equipo fue inhabilitado.">&lt;figcaption>
&lt;p>Mensaje de Telcel. Tu equipo fue inhabilitado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este mensaje se podía cerrar, pero a los 4 segundos aproximadamente volvía a aparecer. Literalmente secuestraba tu teléfono dejándolo prácticamente inutilizable.&lt;/p>
&lt;p>El problema es que era el teléfono personal del compañero. La línea si era de la empresa y por una de esas razones administrativas que nunca pasan no se había aplicado el pago.&lt;/p>
&lt;p>La irrupción del mensaje era desesperante, no te deja hacer prácticamente nada.&lt;/p>
&lt;p>Busqué un rato y la recomendación era inhabilitar la aplicación &lt;strong>Mi Telcel&lt;/strong> pero no funcionó. Incluso llegué a reiniciar el teléfono, pero invariablemente volvía a aparecer el mensajito insistiendo en que tu equipo fue inhabilitado exigiendo su dinerito.&lt;/p>
&lt;h2 id="la-solución-que-encontré">La solución que encontré
&lt;/h2>&lt;p>Lo que me funcionó fue inhabilitar la aplicación &lt;strong>sysDLL&lt;/strong>, pero esta aplicación no aparece en la lista de aplicaciones de &lt;a class="link" href="https://es.wikipedia.org/wiki/Android" target="_blank" rel="noopener"
>Android&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Voy a explicar esto un poco de memoria. Porque una vez que funcionó mi compañero se fue y ya no me dio oportunidad de documentar bien el proceso. Si hay alguna imprecisión por favor dejen un comentario.&lt;/p>
&lt;p>Aparece el mensaje que bloquea la pantalla.&lt;/p>
&lt;p>Luego presioné el botón en el que aparecen todas las aplicaciones abiertas. Es un cuadrito que está en la parte inferior de la pantalla.&lt;/p>
&lt;p>Busqué la aplicación &lt;strong>sysDLL&lt;/strong> y en la parte superior de la pantalla podrán ver un circulito con tres puntos.&lt;/p>
&lt;p>Aquí es donde &lt;a class="link" href="https://linuxmanr4.com/2015/07/28/centro-historico-de-torreon/" >mis recuerdos&lt;/a>
se ponen borrosos. De alguna forma llegué al menú de la aplicación (tal y como pueden verlo en la imagen) y la &lt;strong>inhabilité&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/12/inhabilitar-sysDLL.jpg"
alt="Esta es la aplicación sysDLL que hay que eliminar.">&lt;figcaption>
&lt;p>Esta es la aplicación sysDLL que hay que eliminar.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todo esto lo tienen que hacer rapidísimo porque el mensajito sigue apareciendo y bloqueando la pantalla.&lt;/p>
&lt;p>La aplicación no se puede eliminar. Supongo que forma parte del &lt;a class="link" href="https://linuxmanr4.com/2016/11/16/firmware-lg-imei/" >firmware del teléfono&lt;/a>
, pero si nos da la opción de inhabilitarla y al hacerlo desaparecen los mensajes intrusivos.&lt;/p>
&lt;p>&lt;strong>sysDLL&lt;/strong> es una herramienta que permite a &lt;strong>Telcel&lt;/strong> gestionar teléfonos inteligentes. La herramienta ofrece una variedad de funciones, incluyendo el seguimiento de celulares con reporte de robo y el bloqueo por pagos pendientes.&lt;/p>
&lt;p>Espero que este consejo les ayude en esta situación ¡Claro que la otra opción es pagar! pero así cualquiera puede ;)&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>NormCap, seleccionar, reconocer, pegar ¡Y listo!</title><link>https://linuxmanr4.com/2022/09/23/normcap-seleccionar-reconocer-pegar-y-listo/</link><pubDate>Fri, 23 Sep 2022 17:21:40 +0000</pubDate><guid>https://linuxmanr4.com/2022/09/23/normcap-seleccionar-reconocer-pegar-y-listo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/09/normcap_lmr4.jpg" alt="Featured image of post NormCap, seleccionar, reconocer, pegar ¡Y listo!" />&lt;p>Normcap es una de esas herramientas que son muy útiles. Este programa aplica OCR a un área del escritorio y lo pega al portapapeles.&lt;/p>
&lt;p>Al iniciar Normcap aparece un área de selección. Usted elige lo que desea copiar, pero no como un &lt;em>screenshot&lt;/em>. Este programa toma una imagen, le aplica un reconocimiento óptico de caracteres ( &lt;a class="link" href="https://es.wikipedia.org/wiki/Reconocimiento_%C3%B3ptico_de_caracteres" target="_blank" rel="noopener"
>OCR&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) y el resultado lo deja a su disposición en el portapapeles.&lt;/p>
&lt;h2 id="compartir-información-en-imágenes">Compartir información en imágenes.
&lt;/h2>&lt;p>No se a ustedes, pero a mi me comparten a cada rato información mediante imágenes.&lt;/p>
&lt;p>Le toman foto a un documento y te lo mandan por Whatsapp. Es muy fácil hacerlo, el problema es que a veces tienes que copiar esa información y más de una vez he transcrito lo que aparece en la imagen a un texto.&lt;/p>
&lt;p>NormCap utiliza &lt;a class="link" href="https://github.com/tesseract-ocr/tesseract" target="_blank" rel="noopener"
>Tesseract&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un veterano en el software libre para el reconocimiento de caracteres. Combinado con &lt;a class="link" href="https://linuxmanr4.com/tags/python/" >Python&lt;/a>
logra una excelente integración con el escritorio.&lt;/p>
&lt;p>Anteriormente usaba &lt;a class="link" href="https://github.com/manisandro/gImageReader" target="_blank" rel="noopener"
>gImageReader&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que hace un buen trabajo pero NormCap es mucho más fácil de utilizar.&lt;/p>
&lt;h2 id="haciendo-un-atajo-de-teclado">Haciendo un atajo de teclado.
&lt;/h2>&lt;p>Para hacer capturas de pantalla tengo asignada la tecla &lt;strong>Impr Pant&lt;/strong> y quise hacer algo similar con NormCap.&lt;/p>
&lt;p>Para ello le asigné la tecla &lt;strong>F12&lt;/strong> que uso muy poco.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/09/atajo%5Fde%5Fteclado%5Fnormcap.jpg"
alt="Atajo de teclado para NormCap.">&lt;figcaption>
&lt;p>Atajo de teclado para NormCap.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://dynobo.github.io/normcap/" target="_blank" rel="noopener"
>NormCap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
está disponible para los 3 principales sistemas operativos, la ventana, el pingüino y la manzanita.&lt;/p>
&lt;p>El programa no es perfecto y muchas veces terminarás corrigiendo a mano alguna imprecisión del reconocimiento, todo depende de la calidad de la imagen y la disposición del texto, pero algo es algo.&lt;/p>
&lt;p>También he notado que tarda un poco en iniciar. Pero no le puedo echar toda la culpa al programa, a veces mi computadora se pone achacosa.&lt;/p>
&lt;p>Apenas acabo de descubrir este tipo de programas y creo que hay otras opciones ¿Ustedes conocen un programa mejor?&lt;/p></description></item><item><title>Descargar el tipo de cambio de Banxico con Python</title><link>https://linuxmanr4.com/2022/09/01/descargar-el-tipo-de-cambio-de-banxico-python/</link><pubDate>Thu, 01 Sep 2022 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2022/09/01/descargar-el-tipo-de-cambio-de-banxico-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/09/tipo_de_cambio_python.jpg" alt="Featured image of post Descargar el tipo de cambio de Banxico con Python" />&lt;p>Me di a la tarea de programar un sencillo script en Python para descargar el &lt;strong>tipo de cambio&lt;/strong> oficial de Banxico.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/09/imagen%5Fdtdc.jpg"
alt="El programa que descarga el tipo de cambio de Banxico.">&lt;figcaption>
&lt;p>El programa que descarga el tipo de cambio de Banxico.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es algo sencillo, más bien didáctico. Todo comenzó con una publicación de Fernando Romo en la que compartía un script para descargar el tipo de cambio usando Perl.&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="es" dir="ltr">Script en Perl para bajar el tipo de cambio de USD a MXN de la página del diario oficial de la federación (México) e insertarlo en una tabla de una BD: &lt;a href="https://t.co/b2vziQgt3p">pic.twitter.com/b2vziQgt3p&lt;/a>&lt;/p>&amp;mdash; Fernando Romo (@El_Pop) &lt;a href="https://x.com/El_Pop/status/1560733213454061568?ref_src=twsrc%5Etfw">August 19, 2022&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;p>Y me dije a mi mismo &amp;hellip; Mi mismo ¿Y si lo haces en Python?&lt;/p>
&lt;p>— ¡Orale! y puse manos en el teclado.&lt;/p>
&lt;h2 id="descargar-buscar-almacenar">Descargar, Buscar, Almacenar.
&lt;/h2>&lt;p>Creo que el proceso es muy sencillo.&lt;/p>
&lt;ol>
&lt;li>Descargar la información de internet.&lt;/li>
&lt;li>Buscar la &lt;strong>fecha&lt;/strong> y el &lt;strong>tipo de cambio&lt;/strong>, en mi caso no necesito nada más.&lt;/li>
&lt;li>Y almacenar esa información en algún lado.&lt;/li>
&lt;/ol>
&lt;p>Lo primero es darle un vistazo a la fuente de información, que es un RSS de Banxico.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-xml" data-lang="xml">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;ISO-8859-1&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nt">&amp;lt;rdf:RDF&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns:rdf=&lt;/span>&lt;span class="s">&amp;#34;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns=&lt;/span>&lt;span class="s">&amp;#34;http://purl.org/rss/1.0/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns:cb=&lt;/span>&lt;span class="s">&amp;#34;http://staging.bis.org/rss-cb/1.0/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns:dc=&lt;/span>&lt;span class="s">&amp;#34;http://purl.org/dc/elements/1.1/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns:dcterms=&lt;/span>&lt;span class="s">&amp;#34;http://purl.org/dc/terms/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xmlns:xsi=&lt;/span>&lt;span class="s">&amp;#34;http://www.w3c.org/2001/XMLSchema-instance&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">xsi:schemaLocation=&lt;/span>&lt;span class="s">&amp;#34;http://www.w3c.org/1999/02/22-rdf-syntax-ns#rdf.xsd&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;channel&lt;/span> &lt;span class="na">rdf:about=&lt;/span>&lt;span class="s">&amp;#34;http://www.banxico.org.mx/rsscb/rss?canal=tipCam&amp;amp;amp;idioma=es&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;title&amp;gt;&lt;/span>Banco de México, Tipo de cambio en dólares de los EE.UU.A. (FIX)&lt;span class="nt">&amp;lt;/title&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;link&amp;gt;&lt;/span>https://www.banxico.org.mx/tipcamb/main.do?page=tip&lt;span class="ni">&amp;amp;amp;&lt;/span>idioma=sp&lt;span class="nt">&amp;lt;/link&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;description&amp;gt;&lt;/span>Tipo de cambio para solventar obligaciones denominadas en dólares de los EE.UU.A., pagaderas en la República Mexicana.&lt;span class="nt">&amp;lt;/description&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dc:language&amp;gt;&lt;/span>es&lt;span class="nt">&amp;lt;/dc:language&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;items&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;rdf:Seq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;rdf:li&lt;/span> &lt;span class="na">rdf:resource=&lt;/span>&lt;span class="s">&amp;#34;http://www.banxico.org.mx/portal-mercado-cambiario/index.html/20220901&amp;#34;&lt;/span>&lt;span class="nt">/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/rdf:Seq&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/items&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/channel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;item&lt;/span> &lt;span class="na">rdf:about=&lt;/span>&lt;span class="s">&amp;#34;http://www.banxico.org.mx/portal-mercado-cambiario/index.html/20220901&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;title&amp;gt;&lt;/span>&lt;span class="cp">&amp;lt;![CDATA[MX: 20.2473 MXN = 1 USD 2022-09-01 BM FIX]]&amp;gt;&lt;/span>&lt;span class="nt">&amp;lt;/title&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;link&amp;gt;&lt;/span>https://www.banxico.org.mx/tipcamb/main.do?page=tip&lt;span class="ni">&amp;amp;amp;&lt;/span>idioma=sp&lt;span class="nt">&amp;lt;/link&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;description&amp;gt;&lt;/span>&lt;span class="cp">&amp;lt;![CDATA[Este tipo de cambio es determinado por el Banco de México los días hábiles bancarios con base en un promedio de las cotizaciones del mercado de cambios al mayoreo para operaciones liquidables el segundo día hábil bancario siguiente.]]&amp;gt;&lt;/span>&lt;span class="nt">&amp;lt;/description&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dc:date&amp;gt;&lt;/span>2022-09-01T12:01:01-05:00&lt;span class="nt">&amp;lt;/dc:date&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dc:language&amp;gt;&lt;/span>es&lt;span class="nt">&amp;lt;/dc:language&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dc:format&amp;gt;&lt;/span>text/html&lt;span class="nt">&amp;lt;/dc:format&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dc:creator&amp;gt;&lt;/span>Banco de México&lt;span class="nt">&amp;lt;/dc:creator&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:simpletitle&amp;gt;&lt;/span>FIX&lt;span class="nt">&amp;lt;/cb:simpletitle&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:statistics&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:country&amp;gt;&lt;/span>MX&lt;span class="nt">&amp;lt;/cb:country&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:institutionAbbrev&amp;gt;&lt;/span>BM&lt;span class="nt">&amp;lt;/cb:institutionAbbrev&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:exchangeRate&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:value&lt;/span> &lt;span class="na">frequency=&lt;/span>&lt;span class="s">&amp;#34;daily business&amp;#34;&lt;/span> &lt;span class="na">decimals=&lt;/span>&lt;span class="s">&amp;#34;4&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>20.2473&lt;span class="nt">&amp;lt;/cb:value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:baseCurrency&amp;gt;&lt;/span>USD&lt;span class="nt">&amp;lt;/cb:baseCurrency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:targetCurrency&amp;gt;&lt;/span>MXN&lt;span class="nt">&amp;lt;/cb:targetCurrency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cb:rateName&amp;gt;&lt;/span>FIX&lt;span class="nt">&amp;lt;/cb:rateName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/cb:exchangeRate&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/cb:statistics&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/item&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nt">&amp;lt;/rdf:RDF&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="elementtree-vs-minidom">ElementTree vs. minidom
&lt;/h2>&lt;p>Ok, estoy trabajando un RSS que es básicamente un archivo &lt;a class="link" href="https://es.wikipedia.org/wiki/Extensible_Markup_Language" target="_blank" rel="noopener"
>XML&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Pues a donde quiera que volteaba el enfoque tradicional es usar &lt;a class="link" href="https://docs.python.org/es/3/library/xml.etree.elementtree.html" target="_blank" rel="noopener"
>ElementTree&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para trabajar con ellos, seguí varios tutoriales, hice algunos ejemplos, pero nada parecía funcionar. Simplemente no logré obtener la información de la fecha y el tipo de cambio.&lt;/p>
&lt;p>Ahora bien, no es la única forma de atacar el problema. En el camino se me ocurrió hacer una búsqueda sencilla, o quizás algo de Expresiones Regulares.&lt;/p>
&lt;p>Me topé entonces con &lt;a class="link" href="https://docs.python.org/es/3/library/xml.dom.minidom.html" target="_blank" rel="noopener"
>minidom&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que para efectos prácticos me resultaba exactamente igual que ElementTree con la pequeña diferencia de que si funcionaba.&lt;/p>
&lt;p>Obtuve lo que quería con un reducido número de líneas de código.&lt;/p>
&lt;h2 id="guardar-la-información-en-una-base-de-datos-sqlite">Guardar la información en una base de datos SQlite
&lt;/h2>&lt;p>En un principio pensé en almacenar la información descargada en una base de datos MySQL, peeeeroooo … es algo que de momento no voy a utilizar. Así que decidí intentar algo nuevo con &lt;a class="link" href="https://www.sqlite.org/" target="_blank" rel="noopener"
>SQlite&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y Wooow… es simple, sencillo, ligero, integrado a Python.&lt;/p>
&lt;p>El destino final de la información lo elige usted, puede ser una base de datos, una hoja de cálculo, enviarlo por correo, hasta un texto delimitado por comas podría funcionar.&lt;/p>
&lt;p>En el código podrán ver algunas líneas extras con comentarios, algunas son para crear la base de datos, borrarla, agregar información.&lt;/p>
&lt;h2 id="el-código">El código
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Descargar el Tipo De Cambio ... dtdc.py&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ----------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Este es un código de ejemplo. Descarga el tipod de cambio de un RSS de Banxico.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">La información la puede almacenar en una base de datos, en una hoja de cálculo
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">o donde usted guste.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Fuente de información:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">https://www.banxico.org.mx/rsscb/rss?BMXC_canal=fix&amp;amp;BMXC_idioma=es
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Referencias:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">- https://docs.python.org/es/3/library/xml.dom.minidom.html?highlight=minidom#module-xml.dom.minidom
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">- https://docs.python.org/es/3/library/sqlite3.html?highlight=sqlite#sqlite3-tutorial
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">xml.dom&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">minidom&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sqlite3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">URL&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;https://www.banxico.org.mx/rsscb/rss?BMXC_canal=fix&amp;amp;BMXC_idioma=es&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivo_xml&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;descarga.xml&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URL&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Guardamos el archivo para consulta y referencia.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># pero es opcional&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo_xml&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">xml&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">minidom&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parseString&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtenemos los valores que deseamos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">fecha&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">xml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getElementsByTagName&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;dc:date&amp;#34;&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">firstChild&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">nodeValue&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">exchange_rate&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">xml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">getElementsByTagName&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;cb:value&amp;#34;&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">firstChild&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">nodeValue&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Y los guardamos en una base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># En este caso SQLite&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">conexion&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sqlite3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;tipos_de_cambio.db&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cur&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cursor&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Si no existe la base de datos, la creamos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;create table tipos_de_cambio (
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> id integer primary key autoincrement,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> fecha text,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> tipo_de_cambio real
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> )&amp;#34;&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Se creo la base de datos.&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">except&lt;/span> &lt;span class="n">sqlite3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">OperationalError&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;La base de datos ya existe&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># En caso de ser necesario borramos la base de datos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># conexion.execute(&amp;#34;drop table tipos_de_cambio&amp;#34;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Insertamos los valores en la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">execute&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;insert into tipos_de_cambio(fecha,tipo_de_cambio) values (?,?)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">exchange_rate&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">commit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mostramos el contenido de la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cursor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;select * from tipos_de_cambio&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">fila&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">cursor&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">fila&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">conexion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Les comentaba al principio este código es más bien didáctico. Un ejercicio útil. Se puede ejecutar mediante una tarea cron cada día si lo quieren poner a trabajar.&lt;/p>
&lt;p>Como siempre estoy abierto a sugerencias. Se que hay más de una forma de atacar un problema. Python es tan vasto que estoy seguro que hay una forma mejor y más sencilla de descargar esta información.&lt;/p>
&lt;p>Saludos y hasta la próxima.&lt;/p></description></item><item><title>Pantallas azules y reinicios inexplicables de un Windows 7 en Virtualbox</title><link>https://linuxmanr4.com/2022/06/22/pantallas-azules-y-reinicios-inexplicables-de-un-windows-7-en-virtualbox/</link><pubDate>Wed, 22 Jun 2022 21:08:56 +0000</pubDate><guid>https://linuxmanr4.com/2022/06/22/pantallas-azules-y-reinicios-inexplicables-de-un-windows-7-en-virtualbox/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/pexels-photo-626158.jpeg" alt="Featured image of post Pantallas azules y reinicios inexplicables de un Windows 7 en Virtualbox" />&lt;p>Virtualbox empezó a comportarse de una manera muy extraña, muy lenta, en ocasiones se quedaba bloqueada, al final presentó pantallazos azules y reinicios espontáneos ¡Una pesadilla! Encontrar el problema no fue fácil.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/error%5Fde%5Fstop%5Fvirtualbox.png"
alt="Error de stop en virtualbox">&lt;figcaption>
&lt;p>Error de stop en virtualbox&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La semana pasada tuve una gran cantidad de problemas con VirtualBox y Windows 7. Tengo años con la máquina virtual, claro que tenía problemas ocasionales, pero nada que una copia de respaldo no solucionara.&lt;/p>
&lt;p>Acomódese en su sillón, dele un trago a su bebida favorita, les cuento &amp;hellip;&lt;/p>
&lt;h2 id="aumento-en-la-temperatura">Aumento en la temperatura
&lt;/h2>&lt;p>Al principio creí que era un problema de temperatura de mi computadora. Estos días ha estado haciendo mucho calor y claro que los equipos resienten el castigo.&lt;/p>
&lt;p>Abrir una máquina virtual con &lt;a class="link" href="https://www.virtualbox.org/" target="_blank" rel="noopener"
>Virtualbox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
supone un gran consumo de recursos. Le exige al CPU, a la memoria, al disco duro y como consecuencia también un aumento en la temperatura.&lt;/p>
&lt;p>Cuando empecé a tener problemas me di cuenta de que uno de los ventiladores adicionales no estaba girando. Así que procedí a darle una aceitada al &lt;a class="link" href="https://linuxmanr4.com/2016/08/22/como-arreglar-el-ventilador-de-una-fuente-de-poder/" >ventilador&lt;/a>
para solucionarlo.&lt;/p>
&lt;p>Y efectivamente la temperatura bajó, pero no solucionó los problemas ¡Neeeeext!&lt;/p>
&lt;h2 id="se-fue-la-luz-otra-vez">Se fue la luz ¡Otra vez!
&lt;/h2>&lt;p>Es difícil solucionar un problema que no se presenta todo el tiempo. Para colmo de males hubo varios cortes de energía eléctrica y todo empeoró.&lt;/p>
&lt;p>Fue cuando empezaron las pantallas azules con diversos mensajes. Uno de ellos decía &lt;strong>MEMORY_MANAGEMENT&lt;/strong> otros eran errores de &lt;strong>STOP&lt;/strong>. Muchos otros ni tuve la oportunidad de verlos. Fue cuando tuve que ponerle mayor atención al problema.&lt;/p>
&lt;p>Recuperé un respaldo que tenía del disco duro creyendo que los apagones habían generado problemas en los archivos. Sobre todo porque al reiniciar varias veces iniciaba con un &lt;em>check disk&lt;/em>.&lt;/p>
&lt;h2 id="para-todo-mal-reinstalar">Para todo mal reinstalar
&lt;/h2>&lt;p>Siguiendo esa bonita tradición de Windows para solucionar los problemas me había resignado a crear una máquina virtual nueva desde cero. Pero al instalar Windows adivine usted que paso &amp;hellip; le doy unos segundos &amp;hellip; ¡Efectivamente! reinicios espontáneos y pantallas azules como si fueran pirotecnia del 16 de septiembre.&lt;/p>
&lt;p>Entonces el problema no estaba dentro de la máquina virtual, estaba en otro lado ¿Pero dónde?&lt;/p>
&lt;h2 id="un-conflicto-poco-común">Un conflicto poco común
&lt;/h2>&lt;p>Este es el tipo de problemas que te encuentras cuando usas una distribución &lt;em>Rolling Release&lt;/em> como &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
y una combinación desafortunada.&lt;/p>
&lt;p>Tuve que buscar en los foros de Virtualbox que no es nada sencillo, pero refinando búsquedas y comportamientos me encontré con esta nota: &lt;a class="link" href="https://forums.virtualbox.org/viewtopic.php?f=7&amp;amp;t=106272&amp;amp;sid=ce91866304b2e71117bc511c6d5885e4" target="_blank" rel="noopener"
>VirtualBox 6.1.34r150636 does not work on Debian Host (kernel 5.10.0-15-amd64)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/virtualbox%5F6%5F1%5F34.jpg"
alt="La versión de virtualbox que tiene problemas con el kernel 5.10">&lt;figcaption>
&lt;p>La versión de virtualbox que tiene problemas con el kernel 5.10&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahí me di cuenta de varias similitudes con mi caso. Un host &lt;strong>Linux&lt;/strong> con el &lt;strong>kernel 5.10&lt;/strong>, la última versión de Virtualbox y comportamientos erráticos.&lt;/p>
&lt;p>Voy al día con mis actualizaciones de Manjaro, es un hábito que tengo y son pocos los problemas. En la última se actualizó el Kernel y también Virtualbox ¡Nunca esperé que no se llevaran bien!&lt;/p>
&lt;p>Ya tenía mucho tiempo con el &lt;strong>kernel 5.10&lt;/strong> así que supongo que el problema radica en la última versión 6.1.34 de Virtualbox.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/nucleos%5Fde%5Flinux.jpg">
&lt;/figure>
&lt;p>Ahora tenía dos opciones: Hacer un &lt;em>downgrade&lt;/em> a Virtualbox o probar con otro Kernel y opté por lo segundo. Lo bueno es que en Manjaro es muy fácil instalar y quitar núcleos de Linux.&lt;/p>
&lt;p>En lugar de usar la versión &lt;strong>5.10&lt;/strong> probé con la &lt;strong>5.4&lt;/strong> y que creeeen ¡Funcionó!&lt;/p>
&lt;p>El demonio fue expulsado, la enfermedad curada, el &lt;em>bug&lt;/em> fumigado y todo regresó a la bendita normalidad.&lt;/p>
&lt;p>Voy a dejar el kernel 5.4 por una buena temporada, no vaya a ser que regrese el chamuco.&lt;/p>
&lt;p>Y ya &amp;hellip; eso fue todo &amp;hellip; ¡Hasta la próxima!&lt;/p>
&lt;h2 id="kernel-515">Kernel 5.15
&lt;/h2>&lt;p>Tengo un par de días trabajando con el &lt;a class="link" href="https://linuxmanr4.com/2021/01/19/failed-to-start-load-kernel-modules-nvidia/" >kernel&lt;/a>
5.15 y &lt;a class="link" href="https://linuxmanr4.com/tags/virtualbox/" >VirtualBox&lt;/a>
Versión &lt;strong>6.1.38 r153438&lt;/strong>. Parece que el bug ya fue corregido y todo está funcionando como debe de ser.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/10/manjaro%5Fkernels%5Foctubre%5F2022.jpg"
alt="Kernels disponibles en Manjaro - octubre 2022.">&lt;figcaption>
&lt;p>Kernels disponibles en Manjaro - octubre 2022.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El kernel 5.15 es LTS (Long Term Support) así que si todo sigue funcionando así tendré un kernel para rato.&lt;/p></description></item><item><title>Borrar correos de Gmail para recuperar espacio</title><link>https://linuxmanr4.com/2022/06/10/borrar-correos-de-gmail-para-recuperar-espacio/</link><pubDate>Fri, 10 Jun 2022 18:14:11 +0000</pubDate><guid>https://linuxmanr4.com/2022/06/10/borrar-correos-de-gmail-para-recuperar-espacio/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/borrar_correos_gmail_espacio.jpg" alt="Featured image of post Borrar correos de Gmail para recuperar espacio" />&lt;p>La verdad no recuerdo desde cuando tengo una cuenta de Gmail. En aquellos días tenías que recibir una invitación para poder tener una. Era un servicio nuevo cuya principal novedad era que ofrecía 1 GB de almacenamiento que para la época era una enormidad de espacio.&lt;/p>
&lt;p>Pero los años pasan, el &lt;a class="link" href="https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/" >correo&lt;/a>
se acumula y llega un momento en que ese espacio se acaba. Actualmente Google ofrece 15 GB de almacenamiento que comparte con Google Drive, Gmail y Google Photos.&lt;/p>
&lt;p>Una vez participé en algo y me regalaron 2 GB adicionales ¡Yeeeeeeeei!&lt;/p>
&lt;p>Pero si estas llegando al límite de almacenamiento como yo, es normal que te llegue un correo de advertencia.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/gmail%5Fcasi%5Flleno.jpg"
alt="Advertencia de almacenamiento casi llego de Gmail.">&lt;figcaption>
&lt;p>Advertencia de almacenamiento casi llego de Gmail.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Viendo un twitt de Miguel Barajas &lt;a class="link" href="https://x.com/gnuowned" target="_blank" rel="noopener"
>@gnuowned&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
donde hizo una excelente &lt;a class="link" href="https://x.com/gnuowned/status/1534540148657905664" target="_blank" rel="noopener"
>recomendación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para eliminar masivamente correos electrónicos.&lt;/p>
&lt;p>¡El tip es tan bueno que apareció en &lt;a class="link" href="https://www.pictoline.com/" target="_blank" rel="noopener"
>Pictoline&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/07/pictoline%5Feliminar%5Fcorreos.jpg">
&lt;/figure>
&lt;p>Y la verdad es muy sencillo. Se trata de hacer búsquedas especiales con una selección masiva de correos.&lt;/p>
&lt;p>¡Manos a la obra!&lt;/p>
&lt;h2 id="búsqueda-selección-y-eliminación">Búsqueda, selección y eliminación.
&lt;/h2>&lt;p>Primero haremos una búsqueda con cualquiera de las siguientes instrucciones:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">older_than:10y
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que buscará todos los correos con más de 10 años de antigüedad.&lt;/p>
&lt;p>Hay otras opciones para esta consulta, por ejemplo como buscar los correos de mayor tamaño:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">larger_than:5MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>O hacer una combinación, como buscar correos que tengan más de 10 años y que tengan un espacio mayor a 5 MB.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">older_than:10y AND larger_than:5MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten que el operador lógico &lt;strong>AND&lt;/strong> está en mayúsculas. Si tienen curiosidad, hay una buena cantidad de &lt;a class="link" href="https://support.google.com/mail/answer/7190?hl=es-419" target="_blank" rel="noopener"
>Operadores de búsqueda&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para Gmail.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/busqueda%5Fgmail.jpg"
alt="Consulta de selección para Gmail">&lt;figcaption>
&lt;p>Consulta de selección para Gmail&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora seguimos con la selección.&lt;/p>
&lt;p>Hacemos clic en el &lt;strong>cuadro de selección&lt;/strong> que está en la esquina superior izquierda. Con eso se seleccionan todos los correos que aparecen en la pantalla.&lt;/p>
&lt;p>Para hacer una selección más amplia hay que hacer clic en donde dice: &lt;strong>Seleccionar todas las conversaciones que coincidan con esta búsqueda&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/06/seleccion%5Fgmail.jpg"
alt="Selección para borrar los correos de Gmail.">&lt;figcaption>
&lt;p>Selección para borrar los correos de Gmail.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Usted decide si quiere ir revisando correo por correo o eliminar todo de un jalón.&lt;/p>
&lt;p>Ya solo le falta presionar el botón de la &lt;strong>Papelera&lt;/strong> y &amp;hellip; ¡Casi listo!&lt;/p>
&lt;p>Aún no recuperamos el espacio. Los archivos eliminados se moverán a la Papelera y se eliminarán automáticamente después de 30 días. O si lo prefiere, la puede vaciar manualmente.&lt;/p>
&lt;p>Yo digo que si no has visto un correo de hace 15 años es que no lo necesitas. La otra opción es comprarle espacio a Google. Dicen comprar, pero más bien es una renta.&lt;/p>
&lt;p>Espero que este consejo les sea de utilidad ¡Hasta la próxima!&lt;/p></description></item><item><title>Bloquear Facebook, TikTok o cualquier red social usando pfBlockerNG</title><link>https://linuxmanr4.com/2022/05/13/bloquear-facebook-tiktok-redes-sociales-pfblockerng/</link><pubDate>Fri, 13 May 2022 19:46:25 +0000</pubDate><guid>https://linuxmanr4.com/2022/05/13/bloquear-facebook-tiktok-redes-sociales-pfblockerng/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/05/pexels-photo-267350.jpeg" alt="Featured image of post Bloquear Facebook, TikTok o cualquier red social usando pfBlockerNG" />&lt;p>Bloquear Facebook , TikTok o prácticamente cualquier red social usando pfBlockerNG es muy sencillo. De hecho di con esta opción de pura casualidad.&lt;/p>
&lt;p>Hace unos días tuve algunos problemas con la actualización de mis listas, así que decidí buscar otras opciones. Ahí fue cuando me encontré con las listas del usuario &lt;a class="link" href="https://github.com/anudeepND" target="_blank" rel="noopener"
>anudeepND&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Github.&lt;/p>
&lt;p>Okeeeey , bloqueo de publicidad ¡Bien! mmm algo de CoinMiner ¡Perfecto! Mmmm ¿Qué es esto de facebook? al principio creí que era para bloquear la publicidad de esa plataforma. Pero nooooo&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/05/anudeep%5Ffacebook%5Flist.jpg"
alt="listasd de anudeepng">&lt;figcaption>
&lt;p>listasd de anudeepng&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al instalar la lista y aplicar los cambios simplemente fue imposible para mis usuarios entrar a Facebook. Claro, a menos que sea por celular, pero esa es otra red y no la puedo controlar.&lt;/p>
&lt;h2 id="como-se-instala-esta-lista">Como se instala esta lista.
&lt;/h2>&lt;p>La verdad el procedimiento es muy sencillo. Es idéntico a &lt;a class="link" href="https://linuxmanr4.com/2021/10/25/agregar-listas-de-pi-hole-a-pfblockerng/" >Agregar listas de Pi-hole a pfBlockerNG&lt;/a>
solo que en esta ocasión agregaremos esta lista:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">https://raw.githubusercontent.com/anudeepND/blacklist/master/facebook.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/05/agregar%5Flista%5Fpfblockerng.jpg"
alt="Agregar la lista a pfBlockerNG para Bloquear Facebook">&lt;figcaption>
&lt;p>Agregar la lista a pfBlockerNG para Bloquear Facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Guardamos los cambios y no olviden aplicarlos haciendo un &lt;strong>Update&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/05/update%5Flists.jpg">
&lt;/figure>
&lt;p>Si todo sale como se espera. Dentro de unos minutos será muy complicado ingresar a Facebook.&lt;/p>
&lt;h2 id="y-tiktok">¿Y TikTok?
&lt;/h2>&lt;p>Pues es lo mismo, me encontré esta lista en una publicación de &lt;a class="link" href="https://www.reddit.com/r/pihole/comments/hi4g08/tiktok_list/?rdt=37498" target="_blank" rel="noopener"
>reddit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">https://raw.githubusercontent.com/superover/TikTok-Blocklist/master/tiktok.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aunque tengo que aclarar que esta última no la he probado. Aunque si he escuchado que TikTok es muy activo enviando información a no se que lugares.&lt;/p>
&lt;h2 id="lo-malo-">Lo malo &amp;hellip;
&lt;/h2>&lt;p>No todo es miel sobre hojuelas. Lo malo es que estas reglas se aplican indiscriminadamente a toda la red que administra pfSense.&lt;/p>
&lt;p>Si aparece algún usuario que &amp;ldquo;necesita&amp;rdquo; con &amp;ldquo;urgencia&amp;rdquo; alguna de estas redes sociales, pues se le van a tener que aplicar configuraciones especiales y así ya no esta padre.&lt;/p>
&lt;p>Se me ocurre que se puede lograr algo similar aplicando &lt;strong>Reglas del Firewall&lt;/strong> que son mucho más flexibles en cuando a que usuarios se le aplican. Pero las listas de sitios son enormes. La de facebook ronda por las 4,000 líneas y se vuelve poco practico. Así que la idea la pondré en modo &lt;em>borrador&lt;/em> a ver si prospera.&lt;/p>
&lt;p>¿A ustedes se les ocurre alguna otra forma? ¿Siguen bloqueando facebook en las escuelas o ya se dieron por vencidos?&lt;/p></description></item><item><title>LibreOffice Calc: Formato de número telefónico a una celda</title><link>https://linuxmanr4.com/2022/03/25/numero-telefonico-celda-libreoffice-calc/</link><pubDate>Fri, 25 Mar 2022 22:33:32 +0000</pubDate><guid>https://linuxmanr4.com/2022/03/25/numero-telefonico-celda-libreoffice-calc/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/formato_celda_numero_telefonico.webp" alt="Featured image of post LibreOffice Calc: Formato de número telefónico a una celda" />&lt;p>Para darle cierta legibilidad y uniformidad a una celda que contiene un número telefónico se puede aplicar el siguiente formato en Libreoffice Calc.&lt;/p>
&lt;p>Botón derecho encima de la celda - &lt;strong>Formato de Celdas &amp;hellip;&lt;/strong>&lt;/p>
&lt;p>En el &lt;strong>código de formato&lt;/strong> teclear lo siguiente: &lt;strong>(###) ###-####&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/formato%5Fcelda%5Fnumero%5Ftelefonico.webp"
alt="Formato de celdas en Libreoffice Calc">&lt;figcaption>
&lt;p>Formato de celdas en Libreoffice Calc&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si quieren revisar más códigos pueden consultar &lt;a class="link" href="https://help.libreoffice.org/latest/es/text/shared/01/05020301.html?&amp;amp;DbPAR=SHARED&amp;amp;System=UNIX" target="_blank" rel="noopener"
>Códigos de formato numérico&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Tarde un poco en encontrar estos códigos en la documentación de &lt;a class="link" href="https://linuxmanr4.com/tags/libreoffice/" >LibreOffice&lt;/a>
, así que espero que este mini artículo les sea de utilidad.&lt;/p></description></item><item><title>Error al instalar las Guest Additions en Virtualbox : Exit code 2</title><link>https://linuxmanr4.com/2022/02/17/error-al-instalar-las-guest-additions-en-virtualbox-exit-code-2/</link><pubDate>Thu, 17 Feb 2022 15:49:57 +0000</pubDate><guid>https://linuxmanr4.com/2022/02/17/error-al-instalar-las-guest-additions-en-virtualbox-exit-code-2/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/02/problemas-con-virtualbox.jpg" alt="Featured image of post Error al instalar las Guest Additions en Virtualbox : Exit code 2" />&lt;p>Hace mucho que utilizo computadoras virtualizadas con Virtualbox. Al paso de los años es normal que surjan algunas complicaciones con las actualizaciones.&lt;/p>
&lt;p>Más o menos el proceso es el siguiente. Hay una nueva versión de Virtualbox en Manjaro y al arrancar la computadora me aparece un mensajito que dice que hay una nueva versión de Guest Additions y que se recomienda actualizarse.&lt;/p>
&lt;p>Durante mucho tiempo lo hice y a otra cosa, pero esta vez me arrojó un problema durante la instalación.&lt;/p>
&lt;p>Este es el registro de la instalación:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/02/fallo-instalacion-guest-additions.webp"
alt="Error durante la instalación de las Guest Additions.">&lt;figcaption>
&lt;p>Error durante la instalación de las Guest Additions.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Stopped logging into separate file
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Program Files\Oracle\VirtualBox Guest Additions
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Version: 6.1.32 (Rev 149290)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Previous version: 6.1.26 (Rev 145957)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Detected OS: Windows 7 (32-bit)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">System Directory: C:\Windows\system32
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Checking for installation requirements for Vista / Windows 7 / Windows 8 …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Program Files\Oracle\VirtualBox Guest Additions
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: DIFxAPI.dll… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxDrvInst.exe… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxVideo.inf… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxVideo.cat… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: iexplore.ico… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Program Files\Oracle\VirtualBox Guest Additions
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Stopping VBoxService …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Stopping VBoxService via SCM …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Stopping VBoxService done
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Stopping VBoxTray …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Stopping VBoxTray done
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Program Files\Oracle\VirtualBox Guest Additions
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxVideo.sys… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: vboxdisp.dll… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxMouse.sys… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxMouse.inf… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: vboxmouse.cat… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxGuest.sys… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxGuest.inf… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: vboxguest.cat… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxTray.exe… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxControl.exe… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxWHQLFake.exe… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Windows\system32
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: VBoxService.exe… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: C:\Windows\system32\drivers\VBoxSF.sys… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Skipped: C:\Windows\system32\VBoxMRXNP.dll
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: C:\Program Files\Oracle\VirtualBox Guest Additions\nsoCC41.tmp… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Rename on reboot: C:\Program Files\Oracle\VirtualBox Guest Additions\nsoCC41.tmp-&amp;gt;C:\Windows\system32\VBoxMRXNP.dll
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Extract: C:\Windows\system32\VBoxHook.dll… 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing drivers …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Output folder: C:\Program Files\Oracle\VirtualBox Guest Additions
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing guest driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Executing: &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe&amp;#34; driver install &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxGuest.inf&amp;#34; &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\install_drivers.log&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">INF-File: C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxGuest.inf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) ENTER: DriverPackageInstallW
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installing INF file &amp;#39;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxGuest.inf&amp;#39; (Plug and Play).
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Looking for Model Section [VBoxGuest]…
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installing devices with Id &amp;#34;PCI\VEN_80EE&amp;amp;DEV_CAFE&amp;amp;SUBSYS_00000000&amp;amp;REV_00&amp;#34; using INF &amp;#34;C:\Windows\System32\DriverStore\FileRepository\vboxguest.inf_x86_neutral_9e624ecf172aef42\VBoxGuest.inf&amp;#34;.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Will force install because driver is not better and force flag is set.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) ENTER UpdateDriverForPlugAndPlayDevices…
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(0) RETURN UpdateDriverForPlugAndPlayDevices.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installation was successful.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(0) Install completed
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) RETURN: DriverPackageInstallW (0x0)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Driver was installed successfully!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">A reboot is needed to complete the driver installation!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Execution returned exit code: 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing video driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Executing: &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe&amp;#34; driver install &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxVideo.inf&amp;#34; &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\install_drivers.log&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">INF-File: C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxVideo.inf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) ENTER: DriverPackageInstallW
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installing INF file &amp;#39;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxVideo.inf&amp;#39; (Plug and Play).
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Looking for Model Section [Model]…
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installing devices with Id &amp;#34;PCI\VEN_80EE&amp;amp;DEV_BEEF&amp;amp;SUBSYS_00000000&amp;amp;REV_00&amp;#34; using INF &amp;#34;C:\Windows\System32\DriverStore\FileRepository\vboxvideo.inf_x86_neutral_8be0e24395635c23\VBoxVideo.inf&amp;#34;.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installation did not occur because the hardware isn&amp;#39;t currently present.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installing devices with Id &amp;#34;PCI\VEN_80EE&amp;amp;DEV_BEEF&amp;amp;SUBSYS_040515AD&amp;amp;REV_00&amp;#34; using INF &amp;#34;C:\Windows\System32\DriverStore\FileRepository\vboxvideo.inf_x86_neutral_8be0e24395635c23\VBoxVideo.inf&amp;#34;.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Will force install because driver is not better and force flag is set.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) ENTER UpdateDriverForPlugAndPlayDevices…
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(0) RETURN UpdateDriverForPlugAndPlayDevices.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Installation was successful.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) Phantom Device with Hardware/Compatible Id &amp;#39;PCI\VEN_80EE&amp;amp;DEV_BEEF&amp;amp;SUBSYS_00000000&amp;amp;REV_00&amp;#39; already has &amp;#39;C:\Windows\System32\DriverStore\FileRepository\vboxvideo.inf_x86_neutral_8be0e24395635c23\VBoxVideo.inf&amp;#39; installed on it.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(0) Install completed
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1) RETURN: DriverPackageInstallW (0x0)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Driver was installed successfully!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">A reboot is needed to complete the driver installation!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Execution returned exit code: 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing mouse driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Executing: &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe&amp;#34; driver install &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxMouse.inf&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Installing driver …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">INF-File: C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxMouse.inf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ERROR (800b0100): No hay ninguna firma presente en el sujeto.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Execution returned exit code: 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error excuting &amp;#34;&amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe&amp;#34; driver install &amp;#34;C:\Program Files\Oracle\VirtualBox Guest Additions\VBoxMouse.inf&amp;#34;&amp;#34; (exit code: 2) -- aborting installation
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Probablemente el problema es que estoy usando un Windows 7 de 32 bits, pero no estoy seguro.&lt;/p>
&lt;h2 id="instalar-una-versión-anterior-de-guest-additions">Instalar una versión anterior de Guest Additions
&lt;/h2>&lt;p>Consulté en varios foros y la recomendación era la misma. Descargar una versión anterior. Al momento de escribir este artículo tengo instalada &lt;strong>VirtualBox Versión 6.1.32 r149290&lt;/strong> y la última versión de &lt;strong>Guest Additions&lt;/strong> que me funcionó fue la &lt;strong>versión 6.1.26&lt;/strong>&lt;/p>
&lt;p>Afortunadamente Virtualbox almacena todas las versiones de sus productos en &lt;a class="link" href="https://download.virtualbox.org/virtualbox/" target="_blank" rel="noopener"
>https://download.virtualbox.org/virtualbox/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y descargar el archivo es muy sencillo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/02/virtualbox-6-1-26.webp">
&lt;/figure>
&lt;p>Lo que hice fue desinstalar la versión que quedó de Guest Additions en la computadora virtualizada, reiniciar, instalar la versión anterior y volver a reiniciar.&lt;/p>
&lt;p>Dejo esto como asunto pendiente con una solución parcial. Los mantendré informados.&lt;/p>
&lt;h2 id="problemas-con-versiones-de-32-bits-de-windows">Problemas con versiones de 32 bits de Windows
&lt;/h2>&lt;p>Va una actualización para empezar bien el 2025. Este es un problema diferente al anterior, pero lo agregó aquí básicamente porque me aparece un mensaje de error muy parecido.&lt;/p>
&lt;p>Intenté actualizar las &lt;strong>Guest Additions&lt;/strong> a la versión &lt;strong>7.1.6&lt;/strong> para mis máquinas virtuales con Windows pero no pudo completar la instalación.&lt;/p>
&lt;p>El archivo &lt;strong>install_ui.log&lt;/strong> muestra la siguiente información:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">VBoxDrvInst 7.1.6 r167084 (verbosity: 0) (Jan 21 2025 13:51:42) release log (x86)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Log opened 2025-02-06T19:42:52.620443400Z
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OS Product: Windows XP Professional
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OS Release: 5.1.2600
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OS Service Pack: 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Executable: C:\Archivos de programa\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Process ID: 2984
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Package type: WINDOWS_32BITS_GENERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Oracle VirtualBox Version 7.1.6 - r167084
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Detected Windows version 5.1.2600 (x86)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">!!Stack cookie corruption!!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">expected666bb0e2, found 007690c8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Execution returned exit code: -1073740791
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error excuting &amp;#34;&amp;#34;C:\Archivos de programa\Oracle\VirtualBox Guest Additions\VBoxDrvInst.exe&amp;#34; --logfile &amp;#34;C:\Archivos de programa\Oracle\VirtualBox Guest Additions\install_drivers.log&amp;#34; install --inf-file &amp;#34;C:\Archivos de programa\Oracle\VirtualBox Guest Additions\VBoxGuestEarlyNT.inf&amp;#34; --ignore-reboot&amp;#34; (exit code: -1073740791) -- aborting installation
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">An error occurred during installation.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Please refer to the log file under &amp;#39;C:\Archivos de programa\Oracle\VirtualBox Guest Additions\install_ui.log&amp;#39; for more information.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y todo parece indicar un problema con las versiones de 32 bits de Windows. Tengo una con Windows 7 y otra con Windows XP y con ambas apareció el error.&lt;/p>
&lt;p>No tuve problemas con Windows 10 y con Windows 7 de 64 bits.&lt;/p>
&lt;p>Afortunadamente todo se solucionó regresando a la versión anterior de las Guest Additions, la versión &lt;strong>7.1.4&lt;/strong>&lt;/p>
&lt;p>Me sigue apareciendo una notificación sobre una actualización, pero puedo vivir con eso.&lt;/p>
&lt;p>Veamos si con el tiempo se corrige este problema o simplemente dejo las cosas como están.&lt;/p></description></item><item><title>Convertir todas las imágenes de una carpeta a Webp</title><link>https://linuxmanr4.com/2022/01/21/convertir-todas-las-imagenes-de-una-carpeta-a-webp/</link><pubDate>Fri, 21 Jan 2022 21:18:18 +0000</pubDate><guid>https://linuxmanr4.com/2022/01/21/convertir-todas-las-imagenes-de-una-carpeta-a-webp/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/01/convertir_webp.jpg" alt="Featured image of post Convertir todas las imágenes de una carpeta a Webp" />&lt;p>Hace poco me di a la tarea de averiguar cómo convertir todas las imágenes de una carpeta a Webp como optimización final antes de subirlas a este blog.&lt;/p>
&lt;p>Estos comandos y scripts son muy útiles para automatizar la conversión de los archivos y ahorrar tiempo.&lt;/p>
&lt;h2 id="mogrify">Mogrify
&lt;/h2>&lt;p>Al principio me fui con la vieja confiable de &lt;a class="link" href="https://imagemagick.org/script/mogrify.php" target="_blank" rel="noopener"
>mogrify&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de ImageMagick.&lt;/p>
&lt;p>Por ejemplo, convertir todos los archivos &lt;em>jpg&lt;/em> de una carpeta es tan sencillo como hacer.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mogrify -format webp *.jpg
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y con eso se soluciona todo &amp;hellip; peeeeeerooooo&amp;hellip; quise investigar si había algunas opciones para optimizar aún más el tamaño de las imágenes.&lt;/p>
&lt;h2 id="cwebp">cwebp
&lt;/h2>&lt;p>En esas andaba cuando me encontré con la herramienta de conversión de Google &lt;a class="link" href="https://developers.google.com/speed/webp/docs/cwebp" target="_blank" rel="noopener"
>cwebp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que funciona excelente. Pero que hasta donde tengo entendido, no puedo &lt;a class="link" href="https://linuxmanr4.com/2012/06/11/convertir-todas-las-imagenes-de-un-directorio-a-pdf-en-linux/" >convertir carpetas completas de imágenes&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">cwebp -m &lt;span class="m">6&lt;/span> -q &lt;span class="m">80&lt;/span> -mt -af -progress test1.png -o test1.webp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>O para simplificar un poco, hice un alias que agregué al archivo &lt;strong>.zshrc&lt;/strong>&lt;/p>
&lt;p>Tuve que programar una función para que aceptara un par de parámetros, el nombre del archivo jpg y el nombre del archivo resultante webp.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">jpg2webp&lt;span class="o">(){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="nv">$#&lt;/span> -lt &lt;span class="m">2&lt;/span> &lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Faltan parámetros. Ejemplo: cjw imagen.jpg imagen.webp&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cwebp -m &lt;span class="m">6&lt;/span> -q &lt;span class="m">80&lt;/span> -mt -af -progress &lt;span class="nv">$1&lt;/span> -o &lt;span class="nv">$2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">cjw&lt;/span>&lt;span class="o">=&lt;/span>jpg2webp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este alias funciona muy bien si lo que quieres hacer es convertir un solo archivo, pero cuando es una carpeta con muchas imágenes es mejor otro enfoque.&lt;/p>
&lt;p>Otra vez pensé hacer un script estilo &lt;em>bash | zsh&lt;/em> que tomara todos los archivos de la carpeta e hiciera la conversión. Pero luego me acordé de un viejo amigo que ya he utilizado anteriormente &lt;a class="link" href="https://linuxmanr4.com/tags/parallel/" >parallel&lt;/a>
.&lt;/p>
&lt;h2 id="parallel">Parallel
&lt;/h2>&lt;p>Con &lt;a class="link" href="https://linuxmanr4.com/2014/02/20/rsync-parallel-bash/" >parallel tengo la ventaja de aplicar el mismo proceso a todos los archivos&lt;/a>
de una carpeta y asignar el número de procesadores que voy a utilizar para hacer las conversiones.&lt;/p>
&lt;p>Dicho esto la instrucción queda más o menos así&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -progress &amp;#39;{}&amp;#39; -o &amp;#39;{.}.webp&amp;#39; ::: *.jpg
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso logro convertir todas las imágenes &lt;strong>jpg&lt;/strong> a &lt;strong>webp&lt;/strong> de una carpeta. Con algunas pequeñas modificaciones hago lo mismo para convertir los &lt;a class="link" href="https://linuxmanr4.com/2013/03/29/optimizar-archivos-png-jpg/" >archivos png&lt;/a>
.&lt;/p>
&lt;h2 id="automatiza-y-avanza">Automatiza y avanza
&lt;/h2>&lt;p>Ya como cereza del pastel, agregué algunos &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >alias&lt;/a>
para hacerme la vida más sencilla.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Conversión de imágenes a webp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">j2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -progress &amp;#39;{}&amp;#39; -o &amp;#39;{.}.webp&amp;#39; ::: *.jpg&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">p2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -lossless -progress &amp;#39;{}&amp;#39; -o &amp;#39;{.}.webp&amp;#39; ::: *.png&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">i2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;j2w; p2w&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a class="link" href="https://youtu.be/WKK8uax2m5k" target="_blank" rel="noopener"
>https://youtu.be/WKK8uax2m5k&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="actualización-un-alias-con-bash">Actualización: Un alias con bash
&lt;/h2>&lt;p>Algo pasó con una actualización de Manjaro que parallel dejó de funcionar :(&lt;/p>
&lt;p>Al ejecutar el alias aparece un mensaje de error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Undefined subroutine &amp;amp;amp;SSHLogin::slurp_or_exit called at /usr/bin/parallel line 8401.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Tuve que buscar una opción más tradicional con Bash.&lt;/p>
&lt;p>Así quedaron los alias correspondientes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">j2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;for file in *.jpg; do if [ -f &amp;#34;$file&amp;#34; ]; then cwebp -q 90 $file -o &amp;#34;${file%.*}.webp&amp;#34; ; fi; done&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">p2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;for file in *.png; do if [ -f &amp;#34;$file&amp;#34; ]; then cwebp -q 90 -lossless $file -o &amp;#34;${file%.*}.webp&amp;#34; ; fi; done&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">i2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;j2w; p2w&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Un alias para &lt;a class="link" href="https://linuxmanr4.com/2020/07/30/convertir-archivos-jpg-a-webp-con-python/" >convertir archivos &lt;strong>jpg&lt;/strong>&lt;/a>
, otro para &lt;strong>png&lt;/strong> y uno más para ambos.&lt;/p>
&lt;p>Hay otra variante si decide elegir varios tipos de archivos en un ciclo for. Intenté varias recomendaciones y la única que funcionó es con un &lt;strong>OR&lt;/strong> al momento de elegir las extensiones, no es lo más elegante, pero sirve:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">i2w&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;for file in *.jpg or file in *.jpeg or file in *.png; do if [ -f &amp;#34;$file&amp;#34; ]; then cwebp -q 90 $file -o &amp;#34;${file%.*}.webp&amp;#34; ; fi; done&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y con eso tengo más que suficiente para optimizar todas las imágenes de cada artículo que publico en este espacio.&lt;/p>
&lt;p>Espero que algo de esta información les sea de utilidad.&lt;/p></description></item><item><title>Nueve años han pasado desde que instalé Manjaro ¡Y lo que falta!</title><link>https://linuxmanr4.com/2022/01/08/nueve-anos-han-pasado-desde-que-instale-manjaro-y-lo-que-falta/</link><pubDate>Sat, 08 Jan 2022 17:22:46 +0000</pubDate><guid>https://linuxmanr4.com/2022/01/08/nueve-anos-han-pasado-desde-que-instale-manjaro-y-lo-que-falta/</guid><description>&lt;p>Hoy cumplo 9 años desde que instalé Manjaro en mi computadora. Tenía varios problemas de desempeño con Ubuntu y decidí probar otras distribuciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/01/cumpleanos9.webp"
alt="9 años con Manjaro">&lt;figcaption>
&lt;p>9 años con Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Arch me parecía muy complicado para configurarlo a mi gusto así que el elegido fue una de sus distribuciones derivadas. Con un buen instalador en poco tiempo tenía un sistema base para trabajar. Y ya con calma podía personalizarlo poco a poco.&lt;/p>
&lt;p>Desde que lo instalé solo lo he actualizado. Varias veces cambie de kernel, cambie de entorno, originalmente tenía Cinnamon, ahora uso &lt;a class="link" href="https://linuxmanr4.com/tags/xfce/" >XFCE&lt;/a>
. Pero no ha sido un camino exento de problemas ¡Noooo señor!&lt;/p>
&lt;p>En varias ocasiones estuve a punto de reinstalarlo, pero gracias a la comunidad en los &lt;a class="link" href="https://forum.manjaro.org/" target="_blank" rel="noopener"
>foros&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Manjaro todos los problemas se han resuelto y en el camino he aprendido mucho sobre Linux.&lt;/p>
&lt;p>¡Gracias Manjaro!&lt;/p>
&lt;p>¡Gracias Comunidad!&lt;/p>
&lt;p>¡Vamos por los 10 años! o hasta que el hardware aguante.&lt;/p></description></item><item><title>Como cambiar el color del panel en XFCE</title><link>https://linuxmanr4.com/2021/12/16/como-cambiar-el-color-del-panel-en-xfce/</link><pubDate>Thu, 16 Dec 2021 17:08:51 +0000</pubDate><guid>https://linuxmanr4.com/2021/12/16/como-cambiar-el-color-del-panel-en-xfce/</guid><description>&lt;p>¿Les ha pasado que quieren probar un tema nuevo y les gusta pero el color del panel no les agrada? Bueno, en esta ocasión les comento como cambiar el color del panel en XFCE.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/12/cambiar%5Fcolor%5Fpanel%5Fxfce.webp"
alt="El panel de XFCE con un color personalizado.">&lt;figcaption>
&lt;p>El panel de XFCE con un color personalizado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>He probado un montón de temas para &lt;a class="link" href="https://www.xfce.org/" target="_blank" rel="noopener"
>XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que me gustan pero que termino quitando porque algunos de ellos cambian el color del panel a colores oscuros y en lo personal a mi me gustan más los paneles de colores claros.&lt;/p>
&lt;p>Se que es un tema menor, pero un buen día dije ¡Basta! y encontré una &lt;a class="link" href="https://linuxmanr4.com/2013/01/11/problema-para-imprimir-en-impresoras-compartidas-de-windows-en-manjaro-solucionado/" >solución que me funcionó y se las comparto&lt;/a>
.&lt;/p>
&lt;p>Hay que buscar el archivo &lt;em>~/.config/gtk-3.0/gtk.css&lt;/em> y si no existe crearlo (en &lt;a class="link" href="https://linuxmanr4.com/tags/manjaro/" >Manjaro&lt;/a>
si existía). Y agregar esto al final del archivo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">xfce4-panel&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#000000&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">xfce4-panel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">background&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nc">tasklist&lt;/span> &lt;span class="nt">button&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nd">hover&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-image&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#cfd8dc&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">xfce4-panel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">background&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nc">tasklist&lt;/span> &lt;span class="nt">button&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nd">checked&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-image&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#f3f3f3&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">xfce4-panel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">background&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nc">tasklist&lt;/span> &lt;span class="nt">button&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-image&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#f3f3f3&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El primero es el color del texto y el resto son los colores del fondo de la barra del panel.&lt;/p>
&lt;p>Ustedes pueden elegir los colores que más les gusten y no importa el tema que utilicen estos valores siempre serán los mismos.&lt;/p>
&lt;p>Para probar los cambios pueden teclear lo siguiente para reiniciar el panel.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">xfce4-panel -r &amp;amp;&amp;amp; xfwm4 --replace &amp;amp;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="bonus-cambiar-el-color-de-la-fuente-del-escritorio">¡BONUS! Cambiar el color de la fuente del escritorio
&lt;/h2>&lt;p>Como bono adicional, si lo que quieres es personalizar el color de la fuente de los iconos del escritorio esto es lo que tienes que agregar:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">XfdesktopIconView&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">view&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nc">label&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c">/* blanco */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#ffffff&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-shadow&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="kc">alpha&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mh">#000000&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.8&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En este caso, cambiará los iconos a color blanco con una ligera sombra.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/12/imagen.jpg">
&lt;/figure>
&lt;p>¡Y listo! es uno de esos pequeños detalles que te hacen más agradable la vida.&lt;/p>
&lt;p>Saludos y hasta la próxima.&lt;/p></description></item><item><title>Función para calcular el ISR anual 2021 en LibreOffice</title><link>https://linuxmanr4.com/2021/11/18/isr-anual-2021-libreoffice/</link><pubDate>Thu, 18 Nov 2021 22:33:39 +0000</pubDate><guid>https://linuxmanr4.com/2021/11/18/isr-anual-2021-libreoffice/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/pexels-photo-6368831.jpeg" alt="Featured image of post Función para calcular el ISR anual 2021 en LibreOffice" />&lt;p>En esta ocasión les traigo una función personalizada para Calc de &lt;a class="link" href="https://es.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que sirve para calcular el ISR anual con la información actualizada para el año 2021.&lt;/p>
&lt;h2 id="la-fórmula">La fórmula
&lt;/h2>&lt;p>Según me explicaron, esta es la fórmula para calcular el ISR anual:&lt;/p>
$$
\text{ISR Anual} = \text{Cuota Fija} + ((\text{Percepciones Gravables} - \text{Limite Inferior})\times \text{Porcentaje Sobre Excedente})
$$&lt;p>Los valores de &lt;strong>Límite inferior&lt;/strong> y el &lt;strong>Porcentaje sobre excedente&lt;/strong> se obtienen a partir de esta &lt;a class="link" href="https://wwwmat.sat.gob.mx/cs/Satellite?blobcol=urldata&amp;amp;blobkey=id&amp;amp;blobtable=MungoBlobs&amp;amp;blobwhere=1461174825594&amp;amp;ssbinary=true" target="_blank" rel="noopener"
>Tabla publicada por el SAT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/Tabla%5Fcalculo%5FISR%5FAnual.webp">
&lt;/figure>
&lt;h2 id="el-código-de-la-función">El código de la función
&lt;/h2>&lt;p>Si quiere agregar manualmente este código, las instrucciones para hacerlo son muy similares a las de este otro artículo &lt;a class="link" href="https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/" >Función para convertir de número a cantidad con letra en LibreOffice Calc&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-basic" data-lang="basic">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">REM ***** BASIC *****&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">Option&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Explicit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">Function&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_Anual_2021&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ByVal&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; FUNCION PARA CALCULAR EL ISPT ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Copyright (C) 2021 Francisco Javier de la Torre &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; LinuxmanR4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; https://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; 2021&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">SUBSIDIO_AL_EMPLEO_ANUAL&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Definición de las tablas iniciales&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;ISR ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;==============================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite inferior&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">7735.00&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">65651.07&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">115375.90&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">134119.41&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">160577.65&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">323862.00&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">510451.00&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">974535.03&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">1299380.04&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">3898140.12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">999999999&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite superior muy alto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Cuota fija&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">148.51&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">3855.14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">9265.20&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">12264.16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">17005.47&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">51883.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">95768.74&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">234993.95&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">338944.34&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">1222522.76&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Porcentaje sobre excedente&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.0192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.064&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1088&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1792&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2136&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2352&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.32&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.34&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.35&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Iniciamos el cálculo del ISR anual.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Buscamos un valor apropiado en la tabla del ISR Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Exit&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Loop&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Until&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISR Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_LimiteInferior&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISR_anual_2021&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ISR&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;000000000000000.00&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Function&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>O si lo prefiere puede descargar el archivo para que lo modifique a su gusto. Le recuerdo que le saldrán algunas &lt;strong>advertencias de seguridad&lt;/strong>, pero es normal porque efectivamente, este archivo sí incluye &lt;strong>macros&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2021/11/ISR_2021.zip" >Descargar archivo ISR_2021.zip&lt;/a>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/funcion%5Fisr%5Fanual%5F2021%5Flibreoffice.webp">
&lt;/figure>
&lt;p>El código base ya estaba hecho, porque se basa en este otro &lt;a class="link" href="https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/" >Función para calcular el ISPT 2014 en Excel y LibreOffice&lt;/a>
solo tuve que cambiar los nombres de algunas variables de ISPT a &lt;strong>ISR&lt;/strong> y actualizar las tablas de cálculo.&lt;/p>
&lt;p>Supongo que es posible ejecutar este código en Excel, pero no quise adentrarme mucho en el tema, porque la verdad es que los Office modernos ya están muy raros.&lt;/p>
&lt;p>Les advierto que no soy contador y no estoy muy al tanto de todos los cambios en materia de impuestos. Así que si notan cualquier error o imprecisión, por favor haganmelo saber en un comentario.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>¡Vámonos de pesca con Fish Shell!</title><link>https://linuxmanr4.com/2021/11/12/fish-shell-linux-terminal/</link><pubDate>Fri, 12 Nov 2021 15:57:19 +0000</pubDate><guid>https://linuxmanr4.com/2021/11/12/fish-shell-linux-terminal/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/fish_shell_unsplash.webp" alt="Featured image of post ¡Vámonos de pesca con Fish Shell!" />&lt;p>El otro día estaba viendo un video en Youtube y salió a colación Fish Shell y me pareció interesante. Digo, cuando empezamos con Linux todos hemos comenzado con Bash y nunca había tenido la curiosidad de probar algo distinto.&lt;/p>
&lt;p>Ahora me pregunto ¿Dónde había estado todo este tiempo? Para empezar esta cosa parece adivinar lo que voy a escribir. Sus sugerencias son muy acertadas y me ahorra una buena cantidad de tiempo. Lo malo es que me esta haciendo algo flojo en la terminal.&lt;/p>
&lt;p>La página web de &lt;a class="link" href="https://fishshell.com/" target="_blank" rel="noopener"
>Fish Shell&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dice &lt;em>“un shell de línea de comandos para los años 90s”&lt;/em> así que solo tengo algunos 30 años de retraso, pero más vale tarde que nunca.&lt;/p>
&lt;p>Todavía le estoy agarrando el modillo, pero en este artículo comentaré lo que le vaya descubriendo.&lt;/p>
&lt;h2 id="convertir-a-fish-en-el-shell-por-default">Convertir a fish en el shell por default.
&lt;/h2>&lt;p>Al principio no quería hacer un cambio muy drástico, quería conservar &lt;a class="link" href="https://es.wikipedia.org/wiki/Bash" target="_blank" rel="noopener"
>Bash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
por si había algún problema de compatibilidad o inesperado, pero quería que fish fuera el interprete de comandos por &lt;em>default&lt;/em> en mi sesión de usuario.&lt;/p>
&lt;p>Para lograrlo hay que agregar esto al archivo &lt;strong>.bashrc&lt;/strong> de mi carpeta &lt;em>home&lt;/em>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="k">$(&lt;/span>ps --no-header --pid&lt;span class="o">=&lt;/span>&lt;span class="nv">$PPID&lt;/span> --format&lt;span class="o">=&lt;/span>cmd&lt;span class="k">)&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;fish&amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> -z &lt;span class="si">${&lt;/span>&lt;span class="nv">BASH_EXECUTION_STRING&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="o">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">exec&lt;/span> fish
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa forma, todas las terminales que abra en mi &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >instalación de Manjaro&lt;/a>
iniciarán con Fish. Si quiero regresar a como estaba antes basta con borrar estas líneas del archivo y como si nada hubiera pasado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/fish%5Fterminal%5Fxfce.webp"
alt="fish shell listo y funcionando.">&lt;figcaption>
&lt;p>fish shell listo y funcionando.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="declarar-un-alias">Declarar un alias
&lt;/h2>&lt;p>Me di cuenta de inmediato de que mi &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >alias de actualización&lt;/a>
de Manjaro no funcionaba en fish, así que tuve que aprender a agregar estos comandos personalizados.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Definir un alias en el shell
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">alias rmi &amp;#34;rm -i&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Definir un alias en el archivo de configuración
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">alias rmi=&amp;#34;rm -i&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Esto equivale a introducir la siguiente función:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">function rmi
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> rm -i $argv
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">end
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Luego, para guardarlo usamos funcsave:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">funcsave rmi
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si teclean el comando &lt;strong>fish_config&lt;/strong> podrán ver todos los alias declarados en la sección &lt;strong>functions&lt;/strong> directamente en el navegador junto con otras opciones de configuración.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/11/functions%5Ffish.webp"
alt="lista de funciones o alias declarados en fish.">&lt;figcaption>
&lt;p>lista de funciones o alias declarados en fish.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="para-personalizar-los-mensajes-de-inicio-de-fish">Para personalizar los mensajes de inicio de fish
&lt;/h2>&lt;p>En el video que les mencioné al principio aparecía el resumen clásico de la computadora al teclear la instrucción &lt;a class="link" href="https://github.com/dylanaraps/neofetch" target="_blank" rel="noopener"
>neofetch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Bueno pues para ejecutar algo al momento de abrir la terminal hay que editar el archivo &lt;code>~/.config/fish/config.fish&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">if status is-interactive
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> # Commands to run in interactive sessions can go here
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> neofetch
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">end
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y si esta vistoso, pero con el tiempo aburre. Digo ¿Qué tan seguido cambio mi equipo? Así que decidí probar algo nuevo.&lt;/p>
&lt;p>¿Se acuerdan de la vaquita que muestra un mensaje? pues decidí mezclarlo con &lt;strong>fortune&lt;/strong> que muestra citas como si fuera una galleta de la fortuna y como la mayoría de esos mensajes están en inglés, pues de una vez traducirlos al español.&lt;/p>
&lt;p>Okey, parece demasiado, pero todo eso se puede resumir con esta instrucción.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fortune -s | trans -b :es | cowsay
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ____________________________________
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/ Excusa BOFH # 15: \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">\ anomalía de enrutamiento temporal /
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ------------------------------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> \ ^__^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> \ (oo)\_______
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> (__)\ )\/\
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ||----w |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> || ||
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y al final quedó así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> status is-interactive
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Commands to run in interactive sessions can go here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> fortune -s &lt;span class="p">|&lt;/span> trans -b :es &lt;span class="p">|&lt;/span> cowsay -f tux
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">end
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="buscar-en-el-historial">Buscar en el historial
&lt;/h2>&lt;p>Como mencioné al principio, esta cosa parece adivinar lo que voy a escribir. Desde la primer letra aparece alguna sugerencia. Si no es la correcta, puedes buscar simplemente presionando la &lt;strong>flecha arriba&lt;/strong> del teclado &lt;strong>↑&lt;/strong>&lt;/p>
&lt;p>O con el comando history&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">history search “búsqueda”
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="regresar-a-bash">Regresar a Bash
&lt;/h2>&lt;p>Me pasó que tuve problemas para iniciar un entorno virtual de Python, me apareció un mensaje muy similar a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">bin/activate (line 47): Unsupported use of &amp;#39;=&amp;#39;. In fish, please use &amp;#39;set VIRTUAL_ENV
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hay dos opciones. Regresar a Bash momentáneamente tecleando en la terminal &lt;strong>bash&lt;/strong> y trabajando normalmente como si nada hubiera pasado o activar el entorno virtual de la siguiente forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">source bin/activate.fish
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="cambiar-el-navegador-por-default">Cambiar el navegador por default
&lt;/h2>&lt;p>El comando &lt;strong>fish_config&lt;/strong> abre una ventana en el navegador por default. Pero el otro día me encontré con el problema de que abría el editor de texto en lugar del navegador. Así que tuve que revisar las variables de entorno y efectivamente había un problema.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">$ printenv | grep BROWSER
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">BROWSER=/usr/bin/chromium
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La variable &lt;strong>BROWSER&lt;/strong> apuntaba a Chromium, mi navegador antiguo en lugar del nuevo y flamante Chrome así que para corregirlo en Manjaro hay que editar el archivo &lt;strong>/etc/environment&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This file is parsed by pam_env module&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Syntax: simple &amp;#34;KEY=VAL&amp;#34; pairs on separate lines&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">LANG&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">es_MX&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">UTF&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">BROWSER&lt;/span>&lt;span class="o">=/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">google&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">chrome&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para poder hacer downgrade a los paquetes de Manjaro.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># export DOWNGRADE_FROM_ALA=1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo amigos, con estos pequeños ajustes me he sentido muy cómodo usando fish, hasta parezco “juaker“ usando la terminal.&lt;/p>
&lt;p>¡Hasta la próxima aventura!&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://fishshell.com/" target="_blank" rel="noopener"
>Fish Shell - fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/title/Fish" target="_blank" rel="noopener"
>Wiki Arch Linux - Fish&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Agregar listas de Pi-hole a pfBlockerNG</title><link>https://linuxmanr4.com/2021/10/25/agregar-listas-de-pi-hole-a-pfblockerng/</link><pubDate>Mon, 25 Oct 2021 20:10:01 +0000</pubDate><guid>https://linuxmanr4.com/2021/10/25/agregar-listas-de-pi-hole-a-pfblockerng/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/pexels-photo-211816.jpeg" alt="Featured image of post Agregar listas de Pi-hole a pfBlockerNG" />&lt;p>Anteriormente ya les había comentado que Pi-hole y &lt;a class="link" href="https://linuxmanr4.com/2021/10/08/pfblockerng-custom-list/" >pfBlockerNG&lt;/a>
eran proyectos muy similares. Ambos utilizan una técnica llamada &lt;a class="link" href="https://es.wikipedia.org/wiki/Sumidero_de_DNS" target="_blank" rel="noopener"
>DNS Sinkhole&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para neutralizar sitios de publicidad o maliciosos.&lt;/p>
&lt;p>Pero entonces me pregunté ¿Puedo usar una lista de PiHole en pfBlockerNG? y la respuesta es un SIIIIII&lt;/p>
&lt;h2 id="agregar-un-grupo-dnsbl">Agregar un grupo DNSBL
&lt;/h2>&lt;p>Primero para separar estas listas personalizadas de otras ya existentes lo primero que hice fue un grupo &lt;strong>DNSBL&lt;/strong> nuevo.&lt;/p>
&lt;p>Para eso hay que ir a &lt;strong>Firewall&lt;/strong> - &lt;strong>pfBlockerNG&lt;/strong> - &lt;strong>DNSBL&lt;/strong> - &lt;strong>DNSBL Groups&lt;/strong> y en la parte inferior de la lista de grupos dar clic en el botón de &lt;strong>Add&lt;/strong>.&lt;/p>
&lt;p>Para dar de alta un grupo primero hay que especificar la ubicación de cuando menos una lista (Source) así que para empezar a hacer las pruebas elegí la de &lt;a class="link" href="https://github.com/StevenBlack" target="_blank" rel="noopener"
>Steven Black&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts" target="_blank" rel="noopener"
>https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Que aparece recomendada en varios sitios relacionados con Pi-hole. Así que la consideré como un buen comienzo.&lt;/p>
&lt;p>Crear el grupo es muy sencillo, si quieren pueden tomar esta imagen como guía.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/pfblockerng-pfblockerng-category-edit.webp">
&lt;/figure>
&lt;p>Lo que sigue es forzar un &lt;strong>Update&lt;/strong> y revisar que no haya problemas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/resultados%5Fpfblockerng.webp">
&lt;/figure>
&lt;h2 id="agregar-más-listas">Agregar más listas
&lt;/h2>&lt;p>Pues ya tenemos un grupo con una lista, lo recomendable sería agregar más listas. Mi recomendación es ir agregando listas poco a poco, ver si no hay problemas y así.&lt;/p>
&lt;p>Encontré &lt;a class="link" href="https://firebog.net/" target="_blank" rel="noopener"
>Firebog.net&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un sitio que recopila listas para Pi-hole y las agrupa por categorías:&lt;/p>
&lt;ul>
&lt;li>Sitios sospechosos&lt;/li>
&lt;li>Publicidad&lt;/li>
&lt;li>Rastreo y telemetría&lt;/li>
&lt;li>Sitios maliciosos&lt;/li>
&lt;/ul>
&lt;p>Ya he agregado varias de cada categoría sin problemas.&lt;/p>
&lt;p>Y si llegara a ocurrir algún problema con alguna de las listas ahora es mucho más fácil desactivarlas individualmente.&lt;/p>
&lt;p>Con el tiempo he visto que algunas listas de pfBlockerNG funcionan de manera intermitente o desaparecen. En ese caso, lo recomendable es desactivarlas, pero luego queda el pendiente de que no hay suficientes listas actualizadas para tener una protección efectiva.&lt;/p>
&lt;p>Me parece excelente que se puedan usar las listas de un proyecto tan activo como Pi-hole para complementar la seguridad que ofrece pfBlockerNG.&lt;/p>
&lt;p>Y eso es todo amigos ¡Happy hacking! y ¡Hasta la próxima!&lt;/p></description></item><item><title>Una consulta de MySQL para filtrar datos por día de la semana</title><link>https://linuxmanr4.com/2021/10/19/mysql-dia-de-la-semana/</link><pubDate>Tue, 19 Oct 2021 19:03:24 +0000</pubDate><guid>https://linuxmanr4.com/2021/10/19/mysql-dia-de-la-semana/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/pexels-photo-5386754.jpeg" alt="Featured image of post Una consulta de MySQL para filtrar datos por día de la semana" />&lt;p>Estoy acostumbrado a hacer consultas que extraen datos entre un rango de fechas, es lo de costumbre.&lt;/p>
&lt;p>Pero se me ofreció hacer una consulta que filtrara los datos por el día de la semana. Sabía que de seguro hay una forma, solo que no la conocía. Afortunadamente no es muy complicado el asunto.&lt;/p>
&lt;h2 id="día-de-la-semana">Día de la semana.
&lt;/h2>&lt;p>Existe una función dentro del mismo &lt;a class="link" href="https://linuxmanr4.com/2021/05/27/python-mysql/" >MySQL&lt;/a>
que nos ayuda a averiguar el día de la semana de una fecha.&lt;/p>
&lt;p>A la función &lt;strong>&lt;a class="link" href="https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_dayofweek" target="_blank" rel="noopener"
>DAYOFWEEK&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> se le entrega una fecha y regresa el valor de 1 si es domingo, 2 si es lunes y así hasta llegar a el sábado con el número 7.&lt;/p>
&lt;p>Dicho esto, sólo hay que agregar una condición a la cláusula &lt;strong>WHERE&lt;/strong>.&lt;/p>
&lt;p>Hice una tabla de ejemplo, que básicamente reúne todas las fechas del mes de Octubre junto con una cantidad.&lt;/p>
&lt;h2 id="fechas">Fechas
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Fecha&lt;/th>
&lt;th>Cantidad&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>2021-10-01&lt;/td>
&lt;td>101&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-02&lt;/td>
&lt;td>102&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-03&lt;/td>
&lt;td>103&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-04&lt;/td>
&lt;td>104&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-05&lt;/td>
&lt;td>105&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-06&lt;/td>
&lt;td>106&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-07&lt;/td>
&lt;td>107&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&amp;hellip;&lt;/td>
&lt;td>&amp;hellip;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-31&lt;/td>
&lt;td>131&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Pero ¿Cuales de estos días ocurrieron el día domingo? pues muy fácil&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">fechas&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DAYOFWEEK&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">ORDER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">BY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ASC&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Fecha&lt;/th>
&lt;th>Cantidad&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>2021-10-03&lt;/td>
&lt;td>103&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-10&lt;/td>
&lt;td>110&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-17&lt;/td>
&lt;td>117&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-24&lt;/td>
&lt;td>124&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2021-10-31&lt;/td>
&lt;td>131&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>¡Dominguito alegre!&lt;/p>
&lt;p>O los sábados y domingos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">fechas&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DAYOFWEEK&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">OR&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">DAYOFWEEK&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">ORDER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">BY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">fecha&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ASC&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/heidisql%5Fconsulta%5Fdayofweek.webp">
&lt;/figure>
&lt;p>La verdad no se cuando voy a volver a utilizar este código, pero lo dejo aquí por si se le ofrece al &lt;em>mí mismo&lt;/em> del futuro.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Windows 7, Chrome y el error NET::ERR_CERT_AUTHORITY_INVALID</title><link>https://linuxmanr4.com/2021/10/08/windows7-chrome-neterr_cert_authority_invalid/</link><pubDate>Fri, 08 Oct 2021 18:59:38 +0000</pubDate><guid>https://linuxmanr4.com/2021/10/08/windows7-chrome-neterr_cert_authority_invalid/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/computadora_antigua_motherboard.webp" alt="Featured image of post Windows 7, Chrome y el error NET::ERR_CERT_AUTHORITY_INVALID" />&lt;p>El comportamiento del problema es más o menos como sigue: Usted intenta abrir un sitio web y no importa que navegador utilice (Chrome, Explorer, Firefox) le mostrará un feo mensaje error declarando un problema con los certificados de seguridad.&lt;/p>
&lt;p>En el caso de Chrome dice: &lt;strong>NET::ERR_CERT_AUTHORITY_INVALID&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/la%5Fconexion%5Fno%5Fes%5Fprivada.webp"
alt="Mensaje de error de Chrome. La conexión no es privada. NET::ERR\_CERT\_AUTHORITY\_INVALID">&lt;figcaption>
&lt;p>Mensaje de error de Chrome. La conexión no es privada. NET::ERR_CERT_AUTHORITY_INVALID&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En otros navegadores el mensaje puede variar pero en esencia es más o menos lo mismo.&lt;/p>
&lt;p>Pero ojo, este problema solo aparece en &lt;strong>Windows 7&lt;/strong>, eso ya me estaba dando mala espina.&lt;/p>
&lt;p>Para descartar algún problema mío, lo primero que hice fue hacer unas pruebas &lt;a class="link" href="https://www.ssllabs.com/ssltest/" target="_blank" rel="noopener"
>SSL Server Test&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y aunque sí existen algunos problemas menores, en general los resultados eran favorables.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/SSL%5FLabs%5FResultados.webp">
&lt;/figure>
&lt;h2 id="el-apagón-del-30-de-septiembre">El apagón del 30 de septiembre.
&lt;/h2>&lt;p>Sabía del apagón digital, pero no sabes de sus consecuencias hasta que te enfrentas a ellas.&lt;/p>
&lt;p>Me tocó un equipo que presentó este problema y aunque tengo otros que también usan Windows 7 no tenían problema alguno.&lt;/p>
&lt;p>Así que supongo que es un tema de &lt;a class="link" href="https://linuxmanr4.com/2021/03/05/algo-anda-muy-mal-con-las-actualizaciones-de-windows-10/" >actualizaciones de Windows&lt;/a>
, una falla al actualizar los certificados de seguridad.&lt;/p>
&lt;p>En particular el certificado &lt;strong>DST Root CA X3&lt;/strong> que caducó el 30 de septiembre del 2021.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/certificado%5Fcaduco.webp">
&lt;/figure>
&lt;p>El problema es que ese certificado esta ligado a &lt;a class="link" href="https://letsencrypt.org/" target="_blank" rel="noopener"
>Let’s Encrypt&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se ha convertido en uno de los Emisores de certificados de seguridad más importantes del mundo.&lt;/p>
&lt;p>Provocando con ello, el error de Certificado Inválido (pues porque ya expiró).&lt;/p>
&lt;p>Ahora el tema no es nuevo, los amigos de Let’s Encrypt tomaron medidas al respecto. Pero Windows 7 dejó de tener soporte desde enero del 2020 así que hay un subconjunto de equipos que usan Windows 7 que probablemente no recibieron alguna actualización y presentan este problema.&lt;/p>
&lt;h2 id="hay-una-solución">¡Hay una solución!
&lt;/h2>&lt;p>Lo bueno es que hay una solución, pero hay que tener cuidado al aplicarla. Primero porque me tardé en encontrarla y no tomé muchas notas al hacerlo.&lt;/p>
&lt;p>Peor es que después de cada intento tenía que reiniciar el equipo y eso no ayuda mucho. Así que tengan muuuucho cuidado al aplicar este consejo.&lt;/p>
&lt;h3 id="fuera-lo-viejo">Fuera lo viejo
&lt;/h3>&lt;p>Lo primero que hay que hacer es desactivar el certificado caduco.&lt;/p>
&lt;p>Inicio - Ejecutar - &lt;strong>certmgr.msc&lt;/strong>&lt;/p>
&lt;p>Eso nos abrirá el Administrador de certificados de Windows.&lt;/p>
&lt;p>En el grupo que dice &lt;strong>Entidades de certificación raíz de confianza&lt;/strong> , en la carpeta &lt;strong>Certificados&lt;/strong> buscamos el certificado problemático &lt;strong>DST Root CA X3&lt;/strong> y lo arrastramos con el mouse a la carpeta &lt;strong>Certificados&lt;/strong> en el grupo que dice &lt;strong>Certificados en los que no se confía&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/certmgr.webp"
alt="Administrador de certificados">&lt;figcaption>
&lt;p>Administrador de certificados&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¡Fácil!&lt;/p>
&lt;p>Reiniciamos y veamos que pasa.&lt;/p>
&lt;h3 id="bienvenido-lo-nuevo">Bienvenido lo nuevo
&lt;/h3>&lt;p>Si con lo anterior no se solucionó el problema, entonces hay que instalar un certificado nuevo.&lt;/p>
&lt;p>Para eso vamos a la siguiente página: &lt;a class="link" href="http://x1.i.lencr.org/" target="_blank" rel="noopener"
>http://x1.i.lencr.org/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Que lo unico que hace es descargar un archivo con la extensión &lt;strong>.cer&lt;/strong>&lt;/p>
&lt;p>En mi caso el archivo &lt;strong>descarga.cer&lt;/strong>&lt;/p>
&lt;p>Hacemos clic en el archivo que iniciará un &lt;strong>Asistente para importación de certificados&lt;/strong>, seguimos esa bonita tradición de siguiente … siguiente … y se instalará el certificado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/asistente%5Fimportacion%5Fcertificados.webp"
alt="Asistente para importación de certificados.">&lt;figcaption>
&lt;p>Asistente para importación de certificados.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Reiniciamos y veamos que pasa. Si puede abrir las páginas ¡Excelente! si no …&lt;/p>
&lt;p>Aquí es donde me falla un poco la memoria. Se que el certificado se instaló, pero ahora hay que confiar en él.&lt;/p>
&lt;p>Nuevamente abrimos el &lt;strong>Administrador de certificados&lt;/strong> con &lt;strong>certmgr.msc&lt;/strong> y buscamos el certificado &lt;strong>ISRG Root X1&lt;/strong>&lt;/p>
&lt;p>Por ahí debe de estar ¡Lo acabamos de instalar! pero hay que moverlo a la carpeta &lt;strong>Certificados&lt;/strong> del grupo &lt;strong>Entidades de certificación raíz de confianza&lt;/strong>.&lt;/p>
&lt;p>Probablemente le salga un mensaje de advertencia y pues ni modo.. no hay de otra más de darle aceptar.&lt;/p>
&lt;p>Creo que puede intuir el siguiente paso, efectivamente, hay que reiniciar y si todo salio bien ya podrá navegar por los sitios que le marcaban error &lt;strong>NET::ERR_CERT_AUTHORITY_INVALID&lt;/strong>&lt;/p>
&lt;h2 id="también-funciona-con-windows-xp">También funciona con Windows XP
&lt;/h2>&lt;p>&lt;strong>Actualización.&lt;/strong> Tuve la oportunidad de probar este consejo y también funcionó en una computadora que usa &lt;strong>Windows XP&lt;/strong> de 32 bits. El proceso fue más o menos el mismo, claro que con algunas variantes menores en la apariencia de los programas.&lt;/p>
&lt;h2 id="que-pasa-con-un-windows-7-recién-instalado">¿Que pasa con un Windows 7 recién instalado?
&lt;/h2>&lt;p>Tenemos que admitirlo, todavía hay muchos Windows 7 (y XP) trabajando. Las computadoras están en buenas condiciones, pero simplemente no pueden con los requerimientos de un moderno y tragón de recursos como lo es Windows 10.&lt;/p>
&lt;p>El otro día me topé con un Windows 7 recién instalado y los problemas con los certificados eran serios. No solamente había problemas con Let&amp;rsquo;s Encrypt, ahora eran un montón de certificados que ya no eran válidos.&lt;/p>
&lt;p>Cuando escribí este artículo el apagón era muy reciente. Ahora ya hay algunas soluciones para este problema.&lt;/p>
&lt;h3 id="windows-7-service-pack-1">Windows 7 Service Pack 1
&lt;/h3>&lt;p>Lo primero que hay que revisar es que esté instalado el Service Pack 1, de lo contrario el parche no se instalará.&lt;/p>
&lt;p>Se supone que estaba disponible usando Windows Update, pero a mi de entrada me marcó un error.&lt;/p>
&lt;p>Afortunadamente todavía esta disponible su descarga en: &lt;a class="link" href="https://www.catalog.update.microsoft.com/Search.aspx?q=KB976932" target="_blank" rel="noopener"
>https://www.catalog.update.microsoft.com/Search.aspx?q=KB976932&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Solo asegúrense de descargar la versión adecuada, ya sea de 32 o 64 bits. Y para evitarme problemas bajé el archivo .exe&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/08/window7%5Fservice%5Fpack%5F1.jpg"
alt="Windows 7 Service Pack 1">&lt;figcaption>
&lt;p>Windows 7 Service Pack 1&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez instalado, ya solo falta descargar e instalar el parche.&lt;/p>
&lt;p>Para Windows 7 – 32 bits
&lt;a class="link" href="https://www.microsoft.com/es-ES/download/details.aspx?id=45588" target="_blank" rel="noopener"
>https://www.microsoft.com/es-ES/download/details.aspx?id=45588&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Para Windows 7 – 64 bits
&lt;a class="link" href="https://www.microsoft.com/es-ES/download/details.aspx?id=45633" target="_blank" rel="noopener"
>https://www.microsoft.com/es-ES/download/details.aspx?id=45633&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y con eso será suficiente.&lt;/p>
&lt;h2 id="no-funcionó-">¿No funcionó? :(
&lt;/h2>&lt;p>Pues hasta aquí llegó mi ciencia. Bienvenido al mundo de la &lt;a class="link" href="https://es.wikipedia.org/wiki/Obsolescencia_programada" target="_blank" rel="noopener"
>obsolescencia programada&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>De hecho dudé mucho al publicar este artículo, primero porque no tenía un procedimiento bien estructurado y segundo, porque es fácil que algo salga mal cuando haces algo a lo que no estas acostumbrado.&lt;/p>
&lt;p>Si este consejo no funciona creo que ya es tiempo de considerar comprar una computadora con Windows 10 (o lo que le siga) o jubilar el equipo instalando alguna distribución de Linux.&lt;/p>
&lt;p>Si quieren investigar un poco más sobre el tema les dejo estos enlaces de referencia.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://community.certifytheweb.com/t/upcoming-expiry-of-dst-root-ca-x3-and-r3-intermediate-for-lets-encrypt/1480" target="_blank" rel="noopener"
>Upcoming expiry of DST Root CA X3 and R3 intermediate for Let’s Encrypt&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://community.letsencrypt.org/t/windows-7-chrome-net-err-cert-date-invalid/161246" target="_blank" rel="noopener"
>Windows 7 Chrome - NET::ERR_CERT_DATE_INVALID&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://docs.certifytheweb.com/docs/kb/kb-202109-letsencrypt/" target="_blank" rel="noopener"
>Certify the web - Let’s Encrypt DST Root CA X3&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>¡Mucha suerte y hasta la próxima!&lt;/p></description></item><item><title>Agregar dominios personalizados a pfBlockerNG en pfSense</title><link>https://linuxmanr4.com/2021/10/08/pfblockerng-custom-list/</link><pubDate>Fri, 08 Oct 2021 14:05:48 +0000</pubDate><guid>https://linuxmanr4.com/2021/10/08/pfblockerng-custom-list/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/phishing.webp" alt="Featured image of post Agregar dominios personalizados a pfBlockerNG en pfSense" />&lt;p>pfBlockerNG es una excelente herramienta disponible en pfSense para aumentar la seguridad de una red.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/" >pfSense&lt;/a>
es una distribución basada en FreeBSD que hace las funciones de &lt;a class="link" href="https://es.wikipedia.org/wiki/Cortafuegos_%28inform%C3%A1tica%29" target="_blank" rel="noopener"
>firewall&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="https://es.wikipedia.org/wiki/Router" target="_blank" rel="noopener"
>enrutador&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y lo hace muy bien ¡Pero allá afuera es una jungla!.&lt;/p>
&lt;p>Constantemente aparecen nuevas amenazas y lo mejor es estar preparados.&lt;/p>
&lt;p>&lt;strong>PfBlockerNG&lt;/strong> es un paquete que es capaz de descargar listas de sitios que pueden ser peligrosos, maliciosos o de publicidad. De forma automática se encarga de gestionar el DNS para redireccionar estos sitios a una dirección IP inexistente para que no hagan daño. Una técnica que se conoce como &lt;a class="link" href="https://es.wikipedia.org/wiki/Sumidero_de_DNS" target="_blank" rel="noopener"
>DNS Sinkhole.&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Es muy parecido a lo que hace &lt;a class="link" href="https://pi-hole.net/" target="_blank" rel="noopener"
>Pi-Hole&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
otro proyecto muy interesante.&lt;/p>
&lt;p>Les voy a comentar lo que pasó el otro día. Un usuario me avisa que le llegó un correo electrónico muy extraño ¡Doy gracias a Dios que me avisan!&lt;/p>
&lt;p>El correo en cuestión era una trampa total, aunque muy bien armado, lo tengo que reconocer.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/correo%5Ffraudulento.webp"
alt="El correo fraudulento.">&lt;figcaption>
&lt;p>El correo fraudulento.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Incluye un enlace en el botón que te manda a una página con el fin de obtener el usuario y la &lt;strong>contraseña&lt;/strong> de tu correo electrónico quien sabe con que propósitos.&lt;/p>
&lt;h2 id="reportar-el-sitio">Reportar el sitio
&lt;/h2>&lt;p>Lo primero es reportar el sitio a Google. Es una costumbre que tengo. Una pequeña contribución para una navegación más segura.&lt;/p>
&lt;p>Existe la página para &lt;a class="link" href="https://safebrowsing.google.com/safebrowsing/report_phish/?hl=es" target="_blank" rel="noopener"
>Denunciar una página de phishing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/reportar%5Fphishing.webp"
alt="Reportar a Google un sitio fraudulento.">&lt;figcaption>
&lt;p>Reportar a Google un sitio fraudulento.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero su efecto no es inmediato, así que tuve que investigar un poco más.&lt;/p>
&lt;h2 id="agregar-un-dominio-a-la-custom-list">Agregar un dominio a la Custom List
&lt;/h2>&lt;p>Al principio creí que tenía que hacer una lista personalizada y agregarla a uno de los grupos ya existentes, pero bieeen escondidito tiene una opción para agregar dominios sin tanto rollo.&lt;/p>
&lt;p>En el menú &lt;strong>Firewall&lt;/strong> - &lt;strong>pfBlockerNG&lt;/strong> - &lt;strong>DNSBL&lt;/strong>- &lt;strong>DNSBL Groups&lt;/strong>&lt;/p>
&lt;p>Hay que editar el primer grupo (de hecho puede ser cualquiera) en este caso &lt;strong>EasyList&lt;/strong> Pssst, es el lápiz azul que esta al lado derecho.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/editar%5Fdnsbl%5Fgroup.webp"
alt="Menú de pfBlockerNG">&lt;figcaption>
&lt;p>Menú de pfBlockerNG&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora en la parte inferior hay una sección que dice &lt;strong>DNSBL Custom_List&lt;/strong>&lt;/p>
&lt;p>Se le da clic al símbolo de &lt;strong>+&lt;/strong> y &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/DNSBL%5FCustom%5FList.webp"
alt="pfBlockerNG Custom List">&lt;figcaption>
&lt;p>pfBlockerNG Custom List&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En ese cuadro se pueden colocar &lt;em>dominios personalizados&lt;/em>.&lt;/p>
&lt;p>Para que los cambios hagan efecto es necesario forzar un &lt;strong>Update&lt;/strong> o esperar que lo haga de forma automática. Yo lo tengo configurado para que lo haga cada hora.&lt;/p>
&lt;p>Los dominios que pongas ahí se irán por el resumidero, así que es una buena opción hacerlo para evitar que las personas caigan en una trampa que ya has detectado.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Programando una Lotería Mexicana en Python</title><link>https://linuxmanr4.com/2021/09/28/loteria-mexicana-python/</link><pubDate>Tue, 28 Sep 2021 17:59:21 +0000</pubDate><guid>https://linuxmanr4.com/2021/09/28/loteria-mexicana-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/loteria_mexicana_python.webp" alt="Featured image of post Programando una Lotería Mexicana en Python" />&lt;p>Uno de los juegos mexicanos más populares es sin duda La Lotería Mexicana. Todos la hemos jugado alguna vez y la verdad es un juego muy divertido para pasar un rato en familia &lt;em>(pero sin celulares por favor)&lt;/em>.&lt;/p>
&lt;p>Una forma de aprender lenguajes de programación es reproduciendo juegos sencillos. En el 2014 ya había hecho este mismo experimento pero usando &lt;a class="link" href="https://linuxmanr4.com/2014/10/23/loteria-mexicana-en-ruby/" >Ruby&lt;/a>
. Pero de un tiempo para acá me he adaptado mucho mejor a Python, así que decidí hacer el mismo ejercicio con este lenguaje.&lt;/p>
&lt;h2 id="el-azar-en-los-juegos">El azar en los juegos
&lt;/h2>&lt;p>El planteamiento es muy sencillo, en una &lt;a class="link" href="https://docs.python.org/es/3/tutorial/datastructures.html" target="_blank" rel="noopener"
>lista&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
almacenare todos los nombres de las &lt;strong>cartas&lt;/strong>. En otra lista voy a almacenar la misma información pero en desorden gracias a la función &lt;a class="link" href="https://docs.python.org/es/3/library/random.html?highlight=sample#random.sample" target="_blank" rel="noopener"
>sample&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
a la que llamare &lt;strong>reborujado&lt;/strong>.&lt;/p>
&lt;p>Para usar la función es necesario importarla de &lt;strong>random&lt;/strong> que es la librería de &lt;a class="link" href="https://linuxmanr4.com/2011/06/01/adivina-el-numero-en-python/" >números pseudoaleatorios de Python&lt;/a>
. Que es lo que le añade esa pizca de azar al juego.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">from random import sample
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo bonito de la función &lt;em>&lt;strong>sample&lt;/strong>&lt;/em> es que puede extraer un subconjunto de la lista cartas. Para eso le paso como parámetro el tamaño total de la lista con la función &lt;strong>len&lt;/strong>, para no excluir ninguna carta.&lt;/p>
&lt;h2 id="una-pausa-por-favor">Una pausa por favor
&lt;/h2>&lt;p>Otra función que agrego al código es &lt;strong>sleep&lt;/strong> para darle una pequeña pausa a la ejecución del código y dar la impresión de que se están cantando las cartas. La librería &lt;a class="link" href="https://docs.python.org/es/3/library/time.html" target="_blank" rel="noopener"
>time&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
incluye algunas funciones relacionadas con el tiempo, pero como se maneja el tiempo en Linux creo que es tema para un artículo completo aparte, ya saben que me obsesionan esos temas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">from time import sleep
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En este caso ajuste la pausa a 3 segundos, pero se puede modificar fácilmente en el código.&lt;/p>
&lt;div class="adsense-wrapper my-8 text-center">
&lt;ins class="adsbygoogle" style="display:block;
text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-4564255988687880" data-ad-slot="8832836978">&lt;/ins>
&lt;script>
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script>
&lt;/div>
&lt;h2 id="el-código">El código
&lt;/h2>&lt;p>Ahora solo falta mostrarlo todo junto.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sample&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">time&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sleep&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">velocidad&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cartas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;1 El Gallo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;2 El Diablito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;3 La Dama&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;4 El catrín&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;5 El paraguas&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;6 La sirena&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;7 La escalera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;8 La botella&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;9 El barril&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;10 El árbol&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;11 El melón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;12 El valiente&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;13 El gorrito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;14 La muerte&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;15 La pera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;16 La bandera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;17 El bandolón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;18 El violoncello&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;19 La garza&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;20 El pájaro&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;21 La mano&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;22 La bota&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;23 La luna&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;24 El cotorro&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;25 El borracho&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;26 El negrito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;27 El corazón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;28 La sandía&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;29 El tambor&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;30 El camarón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;31 Las jaras&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;32 El músico&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;33 La araña&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;34 El soldado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;35 La estrella&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;36 El cazo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;37 El mundo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;38 El apache&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;39 El nopal&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;40 El alacrán&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;41 La rosa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;42 La calavera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;43 La campana&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;44 El cantarito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;45 El venado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;46 El sol&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;47 La corona&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;48 La chalupa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;49 El pino&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;50 El pescado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;51 La palma&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;52 La maceta&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;53 El arpa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;54 La rana&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># A reborujar las cartas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">reborujado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sample&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cartas&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cartas&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Correeeee correeee y se va.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Correeeee correeee y se va !!!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">carta&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">reborujado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sleep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">velocidad&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">carta&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">¡Lotería!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>¡Corre, corre y se vaaaaa!&lt;/p>
&lt;h2 id="lotería">¡Lotería!
&lt;/h2>&lt;p>Gracias al comentario de &lt;strong>CHAPEAU&lt;/strong> mi mente divagó un poco. Con este programa puedo jugar muchas veces ¿Existirá una tabla ganadora? De niños cuando no ganábamos era común cambiar de tabla por que la que teníamos no tenía &amp;ldquo;suerte&amp;rdquo;. Pero ¿Y si no era suerte?.&lt;/p>
&lt;p>Para averiguarlo tuve que conseguir unas tablas, no tenía ninguna a la mano, así que busqué un poco en internet. Las tablas ocupan 16 figuras de las cartas, pero ninguna se repite. Todas las tablas de un juego de lotería son diferentes.&lt;/p>
&lt;p>Para efectos de código decidí omitir los nombres de las figuras y quedarme solamente con los números. Entonces declaré 3 variables principales.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/tablas%5Floteria%5Fcalc.webp">
&lt;/figure>
&lt;ul>
&lt;li>&lt;strong>cartas&lt;/strong>. Una lista de los números de las cartas del 1 al 54.&lt;/li>
&lt;li>&lt;strong>tablas&lt;/strong>. Una matriz con el contenido de figuras de cada tabla.&lt;/li>
&lt;li>&lt;strong>resultados&lt;/strong>. Del lado izquierdo de la matriz voy acumulando las veces que ha ganado esa tabla. En el lado derecho voy juntando los &amp;ldquo;frijolitos&amp;rdquo;.&lt;/li>
&lt;/ul>
&lt;p>Durante el juego cada vez que sale una carta reviso todas las tablas para ver si esta presente. Si es así, entonces le pongo un frijolito a la tabla. Es &lt;strong>tabla llena&lt;/strong> si logra acumular 16 frijolitos.&lt;/p>
&lt;p>En caso de que una tabla sea &lt;strong>tabla llena&lt;/strong> incremento la cantidad de veces que ha ganado. Pero esto lo tengo que revisar en todas las tablas, porque se puede dar el caso de tener más de una tabla ganadora con la misma carta. A todos nos ha pasado.&lt;/p>
&lt;p>Luego tuve que ajustar el código para hacer &lt;strong>procedimientos&lt;/strong> para hacerlo un poco más modular y claro el código.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sample&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para mostrar de una mejor forma las matrices.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">matriz2cadena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">matriz&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cadena&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">matriz&lt;/span>&lt;span class="p">)):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cadena&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s1">&amp;#39;[&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">j&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">matriz&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">])):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cadena&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">{:&amp;gt;4s}&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">matriz&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">j&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cadena&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s1">&amp;#39;]&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">cadena&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Juego completo, hasta encontrar la tabla ganadora.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">juego&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># A reborujar las cartas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">reborujado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sample&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cartas&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cartas&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">carta&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">reborujado&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Buscamos la carta en todas las tablas (puede aparecer en más de una).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">carta&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tablas&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Si aparece, agregamos un frijolito a la tabla.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">tabla_llena&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Dice si ya existe una (o varias tablas) con 16 frijolitos (tabla llena).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">tabla_llena&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">conteo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">resultados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">conteo&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">conteo&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kc">True&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kc">False&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Lleva un contador de las tablas ganadoras.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">acumular_resultados&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">resultados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="c1"># Quita los frijolitos de la tabla.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cartas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">55&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># https://tuloteriamexicana.com/wp-content/uploads/CartasNormal4x4_1_10.pdf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tablas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">19&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">21&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">22&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">28&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">29&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">30&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">31&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">17&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">18&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">24&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">26&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">27&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">35&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">36&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">17&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">18&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">19&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">43&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">44&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">45&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">21&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">52&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">54&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">26&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">31&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">17&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">18&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">36&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">22&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">23&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">24&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">27&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">28&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">29&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">30&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">35&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">37&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">38&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">39&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">21&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">22&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">23&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">24&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">30&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">31&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">39&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">41&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">42&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">49&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">51&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">26&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">27&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">41&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">35&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">36&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">46&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">43&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">44&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">45&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">51&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">52&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">54&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">42&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">43&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">44&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">45&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">47&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">49&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">52&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">54&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">19&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">41&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">42&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">37&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">38&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">51&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">46&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">47&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">39&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">19&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">49&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">28&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">29&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">37&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">38&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">46&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">47&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Del lado izquierdo llevo el conteo de las veces que la tabla ha ganado.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Y en el lado derecho los frijolitos que acumula cada tabla.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">resultados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ejecutamos 100 mil juegos. Veamos que pasa.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">100000&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">juego&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">acumular_resultados&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">matriz2cadena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">resultados&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No sean muy rudos con el código, no está optimizado, pero eso sí, se aceptan sugerencias.&lt;/p>
&lt;div class="adsense-wrapper my-8 text-center">
&lt;ins class="adsbygoogle" style="display:block;
text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-4564255988687880" data-ad-slot="8832836978">&lt;/ins>
&lt;script>
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script>
&lt;/div>
&lt;h2 id="tenemos-un-resultado">¡Tenemos un resultado!
&lt;/h2>&lt;p>Okey, llegó el momento de la verdad. Ejecuté el código con ciclos de 100 juegos varias veces, pero no noté diferencias. En unas ocasiones ganaba una tabla, luego otra, nada concluyente.&lt;/p>
&lt;p>Lo mismo pasó al hacer ciclos de 1000 juegos. Decidí echar toda la carne al asador e hice ciclos de 100 mil juegos. Entonces una tabla empezó a destacar.&lt;/p>
&lt;p>La tabla que ganó en más ocasiones después de 100 mil juegos fue &lt;em>(redoble de tambores)&lt;/em> ¡La &lt;strong>Tabla 08&lt;/strong>!&lt;/p>
&lt;p>Consistentemente fue la más ganadora.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/tabla%5F08.webp">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/10/tabla%5F08%5Ffiguras.webp">
&lt;/figure>
&lt;p>Con pocas modificaciones se puede ajustar a un mayor número de tablas o con distinta distribución. Por el momento, si imprimo estas tablas definitivamente me quedo con la que aparece en la imagen.&lt;/p>
&lt;p>Ahora si, mi mente ya puede descansar un poco, simplemente no me pude quedar con la duda ¿Les ha pasado?&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Una aplicación para almacenar coordenadas GPS con MIT App Inventor</title><link>https://linuxmanr4.com/2021/09/02/una-aplicacion-para-almacenar-coordenadas-gps-con-mit-app-inventor/</link><pubDate>Thu, 02 Sep 2021 18:16:41 +0000</pubDate><guid>https://linuxmanr4.com/2021/09/02/una-aplicacion-para-almacenar-coordenadas-gps-con-mit-app-inventor/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/pexels-photo-1252500.jpeg" alt="Featured image of post Una aplicación para almacenar coordenadas GPS con MIT App Inventor" />&lt;p>Desde hace tiempo tenía la inquietud de hacer una aplicación como esta. Claro que existen otras aplicaciones que permiten almacenar coordenadas GPS como puntos de Interés para consultarlos posteriormente, pero las que conozco son de paga y realmente no requiero mucha sofisticación.&lt;/p>
&lt;p>La lógica del programa es muy simple y es más o menos así: Mostrar mis coordenadas actuales, con la opción de ponerle un nombre y mostrarla en la pantalla.&lt;/p>
&lt;p>Tres botones, uno para agregar esos valores en una lista llamado &lt;strong>Guardar&lt;/strong>. Otro llamado &lt;strong>Limpiar&lt;/strong> que borrará todos los elementos de la lista. Uno más de nombre &lt;strong>Compartir&lt;/strong> que dará la posibilidad de transmitir esa lista a otras aplicaciones instaladas en el teléfono.&lt;/p>
&lt;h2 id="mit-app-inventor">MIT App Inventor
&lt;/h2>&lt;p>&lt;a class="link" href="https://appinventor.mit.edu/" target="_blank" rel="noopener"
>MIT App Inventor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tiene dos partes. Una llamada &lt;strong>Diseñador&lt;/strong> en donde se agregan y configuran los elementos de la interfaz de usuario. Y otra llamada &lt;strong>Bloques&lt;/strong> en donde se programa colocando bloques especiales que utilizan o modifican los elementos puestos en el Diseñador.&lt;/p>
&lt;p>Al principio tarda uno en acostumbrarse, pero con algo de paciencia todo fluye.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/puntos%5Fgps%5FMIT.webp">
&lt;/figure>
&lt;p>Lo primero, al abrir la aplicación, inmediatamente intentará averiguar nuestra posición y la mostrará en forma de coordenadas GPS, &lt;strong>latitud&lt;/strong> y &lt;strong>longitud&lt;/strong>.&lt;/p>
&lt;p>La precisión es importante, porque te dará una idea de lo precisa que es la lectura. Por ejemplo una precisión de 1000 metros podría ser útil, pero vas a estar buscando en el mapa el lugar que intentaste marcar. Una precisión de 8 a 4 metros es buenisima. La aplicación actualiza todo cada 2 segundos.&lt;/p>
&lt;p>Para mi la altitud es un plus, pero puede ser un dato relevante para alguien más.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/bloques%5Freloj.webp">
&lt;/figure>
&lt;p>El botón de &lt;strong>Guardar&lt;/strong> es todo un caso. Es el bloque más grande del proyecto porque hace la &lt;strong>unión&lt;/strong> de mucha información para agregarla a una lista de texto.&lt;/p>
&lt;p>Tardé un tiempo en averiguar cómo agregar más &amp;ldquo;huequitos&amp;rdquo; al bloque &lt;strong>unir&lt;/strong>, con pena tengo que confesar que al principio hice una &lt;em>hidra&lt;/em> de estos bloques concatenando y volviendo a concatenar no no no una cosa horrible.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/bloques%5Fboton%5Fguardar-1.webp">
&lt;/figure>
&lt;p>Un bonito detalle es la construcción de un URL para visualizar el punto marcado en Google Maps ehhhh que tal.&lt;/p>
&lt;p>El objeto &lt;strong>TinyDB&lt;/strong> es una cosa interesante. Sirve para almacenar la información de los puntos aún después de que se cierre la aplicación. De esa forma aparecen todos los puntos almacenados hasta que se presione el botón &lt;strong>Limpiar&lt;/strong>.&lt;/p>
&lt;p>Tengo un &lt;em>bug&lt;/em> en el botón &lt;strong>Compartir&lt;/strong> , no se si les pasará lo mismo a ustedes. La primera vez que toqué el botón me aparecieron todas las aplicaciones disponibles en mi teléfono para compartir el mensaje y en ese momento elegí a Telegram. Pero después ya no me deja elegir e inmediatamente abre Telegram y ya &amp;hellip; no hay otra opción y te aguantas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/09/bloque%5Fcompartir.webp">
&lt;/figure>
&lt;p>No es la primera vez que hago algo con el MIT App Inventor (véase &lt;a class="link" href="https://linuxmanr4.com/2016/03/01/sonidos-divertidos-con-mit-app-inventor/" >Sonidos Divertidos&lt;/a>
) pero este proyecto si es un poquito más complejo.&lt;/p>
&lt;h2 id="listo-para-descargar">Listo para descargar
&lt;/h2>&lt;p>Es austero, pero funciona y es perfectible. Además es una buena aproximación para aprender a desarrollar aplicaciones que se pueden ejecutar en un teléfono o tableta.&lt;/p>
&lt;p>Ya esta disponible en la galería de aplicaciones como &lt;a class="link" href="https://gallery.appinventor.mit.edu/?galleryid=9cd33667-298d-4fbb-b83b-9f88e26d96da" target="_blank" rel="noopener"
>Puntos GPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para que puedan usarlo, estudiarlo y modificarlo a su gusto.&lt;/p>
&lt;p>¡Páseleeeee Páseleeeeee! Lleve su bonita aplicación vaciladora, para el viaje, la excursión, pa turistear, la güerita, bara bara baraaaaaa.&lt;/p></description></item><item><title>La conjetura de Collatz con Python, algoritmo tradicional y recursivo</title><link>https://linuxmanr4.com/2021/08/23/conjetura-collatz-python/</link><pubDate>Mon, 23 Aug 2021 21:08:44 +0000</pubDate><guid>https://linuxmanr4.com/2021/08/23/conjetura-collatz-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/08/Conjetura-de-Collatz.jpg" alt="Featured image of post La conjetura de Collatz con Python, algoritmo tradicional y recursivo" />&lt;p>La conjetura de Collatz es uno de esos problemas matemáticos que son muy fáciles de enunciar pero que encierran una complejidad maravillosa.&lt;/p>
&lt;p>No es la primera vez que me enfrento a este problema, es un clásico como ejercicio para cualquier lenguaje de programación, pero en esta ocasión usaré &lt;a class="link" href="https://linuxmanr4.com/category/lenguajes-de-programacion/python/" >Python&lt;/a>
que es mi favorito últimamente.&lt;/p>
&lt;h2 id="conjetura-de-collatz">Conjetura de Collatz
&lt;/h2>&lt;p>Pero primero lo primero ¿Qué es la conjetura de Collatz?&lt;/p>
&lt;p>Empezamos con un número entero positivo. Lo evaluamos, si el número es &lt;strong>par&lt;/strong> entonces lo &lt;strong>dividimos entre 2&lt;/strong>. Si es &lt;strong>impar&lt;/strong>, entonces &lt;strong>se multiplica por 3 y se le suma 1&lt;/strong>. Al resultado lo volvemos a evaluar y nuevamente aplicamos las operaciones correspondientes.&lt;/p>
&lt;p>Al final, la secuencia de números termina con 4 , 2, 1&lt;/p>
&lt;p>Pero esto no se ha demostrado que ocurra en todos los &lt;a class="link" href="https://linuxmanr4.com/2010/02/05/como-separar-la-parte-entera-de-un-numero-y-decimales-con-php/" >números enteros&lt;/a>
positivos, por eso es una conjetura.&lt;/p>
&lt;p>Veamos un ejemplo muy simple:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">numero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Teclee un número entero positivo : &amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">numero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">numero&lt;/span> &lt;span class="o">//=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;El número que tecleo no es válido&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Un detalle curioso es como se evalúa si un número es par o impar.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">numero&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como pueden ver, se utiliza el operador &lt;a class="link" href="https://es.wikipedia.org/wiki/Operaci%C3%B3n_m%C3%B3dulo" target="_blank" rel="noopener"
>módulo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
% que regresa el residuo de dividir el número entre 2.&lt;/p>
&lt;p>Si el residuo es cero, entonces es par, si es uno entonces es impar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/08/python-true-false.webp"
alt="En Python True es igual a 1, False es igual a cero. Conjetura de Collatz.">&lt;figcaption>
&lt;p>En Python True es igual a 1, False es igual a cero. Conjetura de Collatz.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el &lt;em>if&lt;/em> de una forma prácticamente directa evaluamos si es par o impar.&lt;/p>
&lt;p>Ahora veamos el resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Teclee un número entero positivo : 11
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">34
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">17
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">52
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">26
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">13
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">40
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">20
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">16
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La ejecución del programa se detiene cuando el valor de &lt;strong>numero&lt;/strong> llega a 1.&lt;/p>
&lt;h2 id="ahora-en-modo-recursivo">Ahora en modo recursivo.
&lt;/h2>&lt;p>La recursión es una forma muy interesante de atacar un problema. Porque para llegar a la solución se llama nuevamente a la misma función.&lt;/p>
&lt;p>Si tiene curiosidad haga una pausa y declare una función que haga las operaciones y podrá entender el ejercicio mental que es declarar una función recursiva.&lt;/p>
&lt;p>El peligro es la condición de salida, porque si no se cumple, el programa puede entrar en un bucle infinito y no queremos eso.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">numero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Teclee un número entero positivo : &amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;El número que tecleo no es válido&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Todavía tengo sentimientos encontrados sobre la ubicación de la instrucción &lt;strong>print(numero)&lt;/strong> , si son observadores notarán la diferencia.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Teclee un número entero positivo : 11
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">11
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">34
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">17
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">52
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">26
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">13
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">40
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">20
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">16
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero para lo único que la necesito es para &amp;ldquo;ver&amp;rdquo; el comportamiento de la variable &lt;strong>numero&lt;/strong> durante la ejecución del programa.&lt;/p>
&lt;h2 id="haciendo-pruebas">Haciendo Pruebas
&lt;/h2>&lt;p>¿Ahora que sigue? esto lo voy a hacer como ejercicio personal. Voy a poner todos los resultados intermedios en una variable que sea una lista para mostrarla al final. Y probablemente haré un &lt;strong>test&lt;/strong> que comprobará los resultados.&lt;/p>
&lt;h3 id="doctest">Doctest
&lt;/h3>&lt;p>Pues al final no me quedé con las ganas e incluí algunas pruebas dentro del código. En Python hay varias formas, pero me decidí por la que considero la más integrada y más sencilla para mí &lt;a class="link" href="https://docs.python.org/es/3/library/doctest.html" target="_blank" rel="noopener"
>doctest&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Las pruebas se integran perfectamente a manera de comentarios con datos de entrada y el resultado que se espera.&lt;/p>
&lt;p>Este es el código que incluye las pruebas:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> Regresa en una lista los valores de una serie de Collatz
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;gt;&amp;gt;&amp;gt; collatz(11)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> [11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;gt;&amp;gt;&amp;gt; collatz(12)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> [12, 6, 3, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;gt;&amp;gt;&amp;gt; collatz(27)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> [27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">//=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">resultado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">numero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Teclee un número entero positivo : &amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">numero&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">numero&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;El número que tecleo no es válido&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kn">import&lt;/span> &lt;span class="nn">doctest&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">doctest&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">testmod&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">verbose&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El código se ejecuta de manera normal, así que para invocar las pruebas se hace de la siguiente forma.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">python -m doctest -v collatz.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Teclee un número entero positivo : 7
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Trying:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> collatz(11)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Expecting:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> [11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ok
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Trying:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> collatz(12)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Expecting:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> [12, 6, 3, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ok
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Trying:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> collatz(27)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Expecting:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> [27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ok
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1 items had no tests:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> collatz
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1 items passed all tests:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 3 tests in collatz.collatz
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3 tests in 2 items.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3 passed and 0 failed.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Test passed.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con esto logró dos objetivos pendientes. Almacenar el resultado en una lista y las pruebas del código.&lt;/p>
&lt;p>El tema de la Conjetura de Collatz es fascinante, pero no soy un divulgador así que si quieren saber más del tema les recomiendo este video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/q_dvxXc7d2Y"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Sientanse libres de comentar el código, de esta forma se exploran nuevos enfoques que uno no conoce.&lt;/p>
&lt;p>¡Saludos y hasta el próximo código!&lt;/p></description></item><item><title>4 notas sobre OpenVPN en pfSense para conexiones Roadwarrior</title><link>https://linuxmanr4.com/2021/07/27/openvpn-en-pfsense-roadwarrior/</link><pubDate>Tue, 27 Jul 2021 14:41:48 +0000</pubDate><guid>https://linuxmanr4.com/2021/07/27/openvpn-en-pfsense-roadwarrior/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/servidores-openvpn.webp" alt="Featured image of post 4 notas sobre OpenVPN en pfSense para conexiones Roadwarrior" />&lt;p>Con la pandemia preparé mi servidor para aceptar una conexión &lt;strong>OpenVPN&lt;/strong> en &lt;a class="link" href="https://www.pfsense.org/" target="_blank" rel="noopener"
>pfSense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para establecer conexiones &lt;a class="link" href="https://en.wikipedia.org/wiki/Road_warrior_%28computing%29" target="_blank" rel="noopener"
>Roadwarrior&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para trabajo en casa.&lt;/p>
&lt;p>Afortunadamente, no se ofreció tanto, pero más vale estar preparado.&lt;/p>
&lt;p>Ahora en este artículo no vas a encontrar las instrucciones para la configuración de OpenVPN, mi lector dirá – ¿O sea cómo?, si me explico.&lt;/p>
&lt;p>En su lugar les voy a mostrar este video del maestro &lt;a class="link" href="https://pedropericomoreno.blogspot.com/" target="_blank" rel="noopener"
>Pedro Moreno&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que explica a detalle y paso a paso la configuración de OpenVPN.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/n5UlWf2Va0o"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Ese fue el tutorial que yo seguí para la configuración. Y funcionó perfectamente durante mucho tiempo … Hasta que dejó de hacerlo :(&lt;/p>
&lt;h2 id="openvpn-dejó-de-funcionar">OpenVPN dejó de funcionar
&lt;/h2>&lt;p>Creo que fue a partir de la actualización de pfSense a la versión 2.5 en la que la VPN dejó de funcionar.&lt;/p>
&lt;p>Simplemente, el servidor rechazaba las conexiones, no había manera de lograr una conexión con una configuración que sin moverle funcionó perfectamente por más de un año.&lt;/p>
&lt;p>Investigué en algunos foros sin mucho resultado. Intenté validar algunas hipótesis sin mucho éxito.&lt;/p>
&lt;p>Me estaba quedando sin ideas, así que decidí probar algo un poco arriesgado.&lt;/p>
&lt;h3 id="control-z">Control Z
&lt;/h3>&lt;p>Deshacer el tutorial, para volverlo a hacer paso a paso.&lt;/p>
&lt;p>Primero y antes que nada hay que hacer un respaldo de la configuración &lt;strong>Diagnostics&lt;/strong> - &lt;strong>Backup &amp;amp; Restore&lt;/strong> (Yo lo tengo en inglés porque la traducción en español para mí es algo confusa).&lt;/p>
&lt;p>Entonces, con mucho cuidado, hay que empezar a eliminar las Reglas del &lt;em>firewall&lt;/em>, los alias, el &lt;a class="link" href="https://linuxmanr4.com/2019/11/22/configurar-un-redireccionamiento-de-puertos-con-pfsense/" >redireccionamiento de puertos&lt;/a>
(los pasos del 5 al 10 del video).&lt;/p>
&lt;p>La creación de usuarios y los certificados no fue necesario rehacerlo (pasos 3 y 4) los dejé tal y como estaban.&lt;/p>
&lt;p>Cuanto logres este punto, te recomiendo que hagas otro respaldo, una especie de &lt;em>checkpoint&lt;/em> por si necesitas regresar a este punto.&lt;/p>
&lt;p>Ahora si, a repetir los pasos a partir del &lt;em>Wizard&lt;/em> poniendo atención a todos los detalles.&lt;/p>
&lt;p>Supongo que si usted sigue este tutorial por primera vez funcionará bien, pero tenga en consideración lo que sigue.&lt;/p>
&lt;h2 id="cambiar-la-aplicación-de-android">Cambiar la aplicación de Android
&lt;/h2>&lt;p>Bueno, ahora todo debería de funcionar, ¿cierto? Después de todo para eso se deshizo y rehizo el tutorial ¡PUEEES NO ES CIERTO! ahhhhhhh&lt;/p>
&lt;p>Por alguna razón, la aplicación para Android recomendada en el tutorial tampoco funcionó y no lograba conectarse.&lt;/p>
&lt;p>Un detalle por demás interesante, ya que se trata de aplicación &lt;a class="link" href="https://play.google.com/store/apps/details?id=net.openvpn.openvpn&amp;amp;hl=es_MX&amp;amp;gl=US" target="_blank" rel="noopener"
>OpenVPN&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
“oficial” y que antes de la actualización que mencioné en un principio funcionaba perfectamente.&lt;/p>
&lt;p>En la misma página de OpenVPN de pfSense, en la opción &lt;strong>Client Export&lt;/strong> hacen la recomendación de una aplicación diferente para Android que se llama &lt;a class="link" href="https://play.google.com/store/apps/details?id=de.blinkt.openvpn" target="_blank" rel="noopener"
>OpenVPN for Android de Arne Schwabe&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con una interfaz de usuario más espartana, con una multitud de opciones de configuración, pero que funciona muy bien.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/openvpn-for-android.webp"
alt="OpenVPN en pfSense para Android">&lt;figcaption>
&lt;p>OpenVPN en pfSense para Android&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conectarse-a-openvpn-desde-linux">Conectarse a OpenVPN desde Linux
&lt;/h2>&lt;p>Es curioso, el tutorial en video muestra como conectarse desde Android, Windows pero no desde Linux.&lt;/p>
&lt;p>Al principio intenté con el &lt;strong>Network Manager&lt;/strong> (networkmanager-openvpn) que viene integrado en mi instalación de Manjaro, ¿pero qué creen? No funciona. Probé ajustando un montón de parámetros pero no … no se conecta ¿Qué raro no?&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/network-manager-openvpn-manjaro.webp"
alt="La función openvpn para el network manager no funciona.">&lt;figcaption>
&lt;p>La función openvpn para el network manager no funciona.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final lo más simple es lo mejor. Instalé el paquete &lt;strong>openvpn&lt;/strong> disponible en mi instalación de Manjaro.&lt;/p>
&lt;p>Descargué la configuración en &lt;strong>Client Export&lt;/strong> que dice &lt;strong>Bundled Configuration Archive&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/export-client-archive.webp">
&lt;/figure>
&lt;p>Descomprimí los archivos en una carpeta local. Son 3 archivos, uno con extensión &lt;strong>.ovpn&lt;/strong>, otro con &lt;strong>.key&lt;/strong> y el último &lt;strong>.p12&lt;/strong>.&lt;/p>
&lt;p>Abrí una terminal en esa carpeta y tecleé lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo openvpn --config archivo.ovpn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Me pregunta por mi nombre de usuario en la VPN y su contraseña y si todo sale bien, estaré conectado a mi servidor y tendré acceso a los recursos de esa red como si estuviera localmente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/openvpn-terminal.webp"
alt="openvpn desde la terminal.">&lt;figcaption>
&lt;p>openvpn desde la terminal.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo tengo que minimizar la terminal, Si quiero terminar la conexión con presionar &lt;strong>Ctrl + C&lt;/strong> se cierra.&lt;/p>
&lt;p>Si es un asunto frecuente, puedo hacer un alias para simplificar las cosas.&lt;/p>
&lt;h2 id="options-error-unrecognized-option-or-missing-or-extra-parameters-ncp-disable">Options error: Unrecognized option or missing or extra parameter(s) ncp-disable
&lt;/h2>&lt;p>Esta es una actualización a este artículo (agosto 2021) porque nuevamente tuve problemas para establecer una conexión al servidor OpenVPN.&lt;/p>
&lt;p>Intenté conectarme con mi teléfono celular al servidor OpenVPN, pero me arrojó un mensaje de error. La parte interesante es esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Options error: Unrecognized option or missing or extra parameter(s) in /data/user/0/de.blinkt.openvpn/cache/android.conf:142: ncp-disable (2.5_master)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Use --help for more information.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Process exited with exit value 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Afortunadamente, este error es mucho más sencillo de solucionar. El mismo mensaje de error da la pista sobre la opción &lt;a class="link" href="https://community.openvpn.net/openvpn/wiki/DeprecatedOptions?__cf_chl_jschl_tk__=pmd_622fb2611bae4da1b8629d4ceb9b0b35a6281a62-1628950930-0-gqNtZGzNAfijcnBszQii#Option:--ncp-disable" target="_blank" rel="noopener"
>ncp-disable&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que fue eliminada en las versiones más recientes de OpenVPN.&lt;/p>
&lt;p>Descargué la configuración en &lt;strong>Client Export&lt;/strong> el archivo &lt;strong>Inline Configurations - Android&lt;/strong>.&lt;/p>
&lt;p>Lo abrí con un editor de textos y ahí estaba la opción problemática.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/08/ncp-disable-option.webp">
&lt;/figure>
&lt;p>La solución es muy simple. Eliminé esa línea, guardé el archivo y lo envíe a mi celular para dar de alta el nuevo perfil en la aplicación.&lt;/p>
&lt;p>Hecho esto pude conectarme sin problemas al servidor OpenVPN.&lt;/p>
&lt;p>¿Qué les pareció este artículo? ¿Usan una VPN frecuentemente?&lt;/p>
&lt;p>Cuídense mucho, que el COVID esta juerte oiga.&lt;/p></description></item><item><title>Nuevas formas de actualizar Manjaro, Pamac y yay entran al juego</title><link>https://linuxmanr4.com/2021/07/23/actualizar-manjaro-pamac-yay/</link><pubDate>Fri, 23 Jul 2021 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2021/07/23/actualizar-manjaro-pamac-yay/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/nuevas-formas-de-actualizar-manjaro.jpg" alt="Featured image of post Nuevas formas de actualizar Manjaro, Pamac y yay entran al juego" />&lt;p>Actualizar Manjaro es esencial para mantener tu sistema seguro, estable y con las últimas novedades. Con herramientas como Pamac, Yay y Flatpak, los usuarios tienen opciones flexibles y potentes para gestionar paquetes y aplicaciones.&lt;/p>
&lt;p>En este artículo, exploraremos cómo utilizar estas herramientas para mantener tu sistema Manjaro al día, destacando sus ventajas y pasos clave para un proceso sin complicaciones. ¡Sigue leyendo y descubre cómo sacar el máximo provecho a tu experiencia con Manjaro!&lt;/p>
&lt;p>Las actualizaciones en Manjaro son cosa de dos veces al mes y después de 8 años de actualizar mi equipo ya tenía muy arraigada la forma en la que realizaba mis actualizaciones.&lt;/p>
&lt;p>Pero durante la penúltima actualización tuve un problema. Mi comando acostumbrado me arrojó un &lt;a class="link" href="https://forum.manjaro.org/t/stable-update-2021-07-13-kernels-plasma-5-22-cinnamon-5-gnome-40-libreoffice-mesa-nvidia-pamac/73416/2" target="_blank" rel="noopener"
>problema de dependencias&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="pamac-en-lugar-de-pacman">pamac en lugar de pacman
&lt;/h2>&lt;p>Primero, para revisar si hay actualizaciones:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pamac checkupdate
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La solución recomendada en los foros fue la de utilizar pamac para actualizar el sistema:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pamac update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>en lugar del acostumbrado&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que he utilizado por años, si con algunos problemas, pero nada que no se pudiera solucionar.&lt;/p>
&lt;p>El detalle es que el primer comando es mucho más intuitivo, fácil de recordar y resuelve muy bien los &lt;a class="link" href="https://linuxmanr4.com/2014/09/26/problemas-al-actualizar-manjaro/" >problemas que se presentan durante la actualización&lt;/a>
. Lo he usado un par de veces y me gusta … si … mucho bueno.&lt;/p>
&lt;p>Por el momento estoy explorando todas las opciones que ofrece &lt;a class="link" href="https://wiki.manjaro.org/index.php/Pamac" target="_blank" rel="noopener"
>pamac&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para ver en que más le puedo sacar provecho.&lt;/p>
&lt;p>Pero tenga cuidado, parece que está en constante desarrollo y hay que estar al pendiente de las novedades.&lt;/p>
&lt;h2 id="un-alias-para-actualizar-manjaro">Un alias para actualizar Manjaro
&lt;/h2>&lt;p>Desde hace tiempo declaré un alias en mi archivo &lt;em>.bashrc&lt;/em> para facilitar la tarea de actualizar el sistema.&lt;/p>
&lt;p>Básicamente hace 3 cosas:&lt;/p>
&lt;ul>
&lt;li>Actualiza la lista de &lt;em>mirrors&lt;/em> de los Estados Unidos (léase &lt;a class="link" href="https://linuxmanr4.com/2019/03/29/error-de-gpgme-no-hay-datos-un-problema-recurrente/" >Error de GPGME: No hay datos, un problema recurrente&lt;/a>
).&lt;/li>
&lt;li>Actualiza el sistema completo.&lt;/li>
&lt;li>Conserva las 2 últimas versiones de los paquetes descargados por si es necesario hacer un &lt;em>downgrade&lt;/em> y elimina el resto para ahorrar espacio.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias&lt;/span> &lt;span class="nv">actualizar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;sudo pacman-mirrors -c United_States &amp;amp;&amp;amp; sudo pamac update &amp;amp;&amp;amp; sudo paccache -rk 2&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/-NTozspKRqY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="yay-para-actualizar-los-paquetes-de-aur">yay para actualizar los paquetes de AUR
&lt;/h2>&lt;p>Actualizar los paquetes de &lt;strong>AUR&lt;/strong> no lo incluyo dentro del alias porque no lo hago siempre.&lt;/p>
&lt;p>Y es que a veces no actualizo todos los paquetes de AUR. Me ha pasado que algo se rompe y después ando haciendo maromas para que las cosas vuelvan a funcionar.&lt;/p>
&lt;p>Durante mucho tiempo usé &lt;em>yaourt&lt;/em> para instalar y actualizar paquetes desde AUR si no es que me entero de la existencia de &lt;strong>yay&lt;/strong> lo seguiría usando.&lt;/p>
&lt;p>Lo mejor de &lt;a class="link" href="https://github.com/Jguer/yay" target="_blank" rel="noopener"
>yay&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es que con solo teclearlo (así sin parámetros) entro a un menú interactivo que busca y muestra las actualizaciones disponibles.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/yay-manjaro-update.webp"
alt="actualizando paquetes de AUR con yay">&lt;figcaption>
&lt;p>actualizando paquetes de AUR con yay&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="problemas-con-las-firmas">Problemas con las firmas
&lt;/h2>&lt;p>En un par de ocasiones me ha pasado que al verificar la integridad de los paquetes existen problemas con las firmas, muy similar a esto.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Verificando depósito de llaves (keyring)... [223/223]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Verificando integridad... [223/223]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error: geany: la firma de «Alexander F. Rødseth &amp;lt;xyproto@archlinux.org&amp;gt;» es de confianza mínima
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error: hwinfo: la firma de «Alexander F. Rødseth &amp;lt;xyproto@archlinux.org&amp;gt;» es de confianza mínima
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error: Fallo al cometer la transacción: paquete no válido o dañado:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Entonces la solución que me ha funcionado es refrescar las firmas, tarda un poco, pero vale la pena.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo pacman-key --refresh-keys
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="one-level-up-eliminar-paquetes-huérfanos">¡One level up! Eliminar paquetes huérfanos
&lt;/h2>&lt;p>Pamac también ayuda a eliminar archivos huérfanos, aquellos que ya no están ligados a ningún componente del sistema y solo están &lt;a class="link" href="https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/" >ocupando espacio&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pamac remove -o
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="bonus-actualizar-paquetes-flatpak">¡Bonus! Actualizar paquetes Flatpak
&lt;/h2>&lt;p>Cuando se trata de actualizar tus aplicaciones con &lt;a class="link" href="https://wiki.manjaro.org/index.php/Flatpak" target="_blank" rel="noopener"
>Flatpak&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, la cosa no podría ser más sencilla. Solo tienes que ejecutar un comando en la terminal, y listo, ¡todas tus apps Flatpak se pondrán al día en un momento!&lt;/p>
&lt;p>Lo bueno de Flatpak es que las actualizaciones son totalmente independientes del sistema, así que no te preocupas por conflictos con otros paquetes.&lt;/p>
&lt;p>Además, puedes gestionar todo desde la interfaz gráfica de Pamac si prefieres clics en lugar de comandos.&lt;/p>
&lt;p>O si te gusta la terminal basta con teclear&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo flatpak upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Yo lo agregué a mi alias para actualizar el sistema, así no batallo.&lt;/p>
&lt;h2 id="fallo-al-sincronizar-la-base-de-datos-del-aur-2025">Fallo al sincronizar la base de datos del AUR (2025)
&lt;/h2>&lt;p>Tengo tiempo con un error que me aparecía al ejecutar el alias de actualización, era algo sencillo que no detenía el proceso de actualización.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Fallo al sincronizar la base de datos del AUR
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como no generaba ningún problema y de todos modos mi sistema se actualizaba perfectamente lo fui procastinando. Hasta que un buen día lo volví a ver y puse los dedos en el teclado.&lt;/p>
&lt;p>Resulta que hay una advertencia sobre el uso de &lt;code>sudo&lt;/code> en el comando &lt;code>pamac&lt;/code>. Según la página de &lt;a class="link" href="https://wiki.manjaro.org/index.php/Pamac#Using_the_Pamac_CLI" target="_blank" rel="noopener"
>pamac en el wiki de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>No utilices sudo con pamac.&lt;/strong> El uso de sudo con pamac puede tener efectos indeseables, especialmente al compilar paquetes. También puede provocar problemas de permisos con la base de datos. Pamac solo solicitará derechos elevados si es necesario.&lt;/p>&lt;/blockquote>
&lt;p>Así que tuve que eliminar &lt;code>sudo&lt;/code> en varias partes del alias y al hacerlo desapareció el error.&lt;/p>
&lt;p>Al final quedó así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">alias actualizar=&amp;#39;sudo pacman-mirrors -c United_States &amp;amp;&amp;amp; pamac update &amp;amp;&amp;amp; flatpak upgrade &amp;amp;&amp;amp; yay &amp;amp;&amp;amp; paccache -rk 2 &amp;amp;&amp;amp; yes | yay -Sc -a&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo amigos, disfruten el fin de semana ¡Al fin viernes!&lt;/p></description></item><item><title>Lazy Load rudimentario para sitios que utilizan Pelican</title><link>https://linuxmanr4.com/2021/07/14/lazy-load-rudimentario-para-sitios-que-utilizan-pelican/</link><pubDate>Wed, 14 Jul 2021 14:43:46 +0000</pubDate><guid>https://linuxmanr4.com/2021/07/14/lazy-load-rudimentario-para-sitios-que-utilizan-pelican/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/pexels-photo-4519772.jpeg" alt="Featured image of post Lazy Load rudimentario para sitios que utilizan Pelican" />&lt;p>Si son lectores frecuentes de este espacio sabrán que tengo un sitio web desarrollado con &lt;a class="link" href="https://linuxmanr4.com/tags/pelican/" >Pelican&lt;/a>
.&lt;/p>
&lt;p>En afán de optimizar lo más posible el sitio decidí implementar un &lt;strong>lazy load&lt;/strong> o carga diferida en las imágenes del sitio peeeeeroooo …&lt;/p>
&lt;p>Pues no es tan sencillo como uno esperaba. Verán, el proceso es muy similar a programar.&lt;/p>
&lt;p>Uno escribe los artículos, ajusta el CSS y el refina el código que le da estructura a las páginas. Al “compilar” el resultado son todas las páginas HTML del sitio, no se requieren bases de datos y si juega uno bien sus cartas el resultado es bastante bueno y rápido.&lt;/p>
&lt;h2 id="lazy-load-a-nivel-navegador">Lazy Load a nivel navegador
&lt;/h2>&lt;p>El Lazy Load o carga diferida es un concepto muy simple. No cargues las imágenes que no estas viendo. De esa forma si el usuario no se desplaza por la página las imágenes no son cargadas y esta lista para interactuar con el usuario más rápido.&lt;/p>
&lt;p>Ahora bien, hay varias formas de hacer esto, algunas usan &lt;em>javascript&lt;/em> pero lo descarté ya que no le quiero agregar más programación a la página que la necesaria (Ya tiene suficiente con los scripts de Analytics y Adsense).&lt;/p>
&lt;p>Lo más sencillo es agregar una instrucción a la etiqueta HTML que se encarga de mostrar las imágenes. Más o menos de la siguiente forma.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">img&lt;/span> &lt;span class="n">loading&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;lazy&amp;#34;&lt;/span> &lt;span class="n">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="err">“&lt;/span>&lt;span class="n">imagen&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">jpg&lt;/span>&lt;span class="err">”&lt;/span> &lt;span class="err">…&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si el navegador no soporta esta instrucción, pues no pasa nada, pero la mayoría de los navegadores modernos si lo hace.&lt;/p>
&lt;p>¿Y como implemento algo similar en Pelican? pues si alguien lo sabe se los agradecería. Busqué en los &lt;a class="link" href="https://github.com/pelican-plugins" target="_blank" rel="noopener"
>plugins de Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero no encontré uno que hiciera algo similar.&lt;/p>
&lt;h2 id="buscar-y-reemplazar">Buscar y reemplazar
&lt;/h2>&lt;p>Así que por lo pronto hice lo que me pareció más sencillo y a veces lo más sencillo es lo mejor.&lt;/p>
&lt;p>Después de generar mi sitio web con la instrucción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">make publish
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hice una búsqueda con el comando &lt;strong>find&lt;/strong> de todos los archivos &lt;em>index.html&lt;/em> de la carpeta &lt;em>output&lt;/em> de mi proyecto.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">find&lt;/span> &lt;span class="o">./&lt;/span>&lt;span class="n">output&lt;/span>&lt;span class="o">/&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">name&lt;/span> &lt;span class="s2">&amp;#34;index.html&amp;#34;&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">exec&lt;/span> &lt;span class="n">sed&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="s1">&amp;#39;s/&amp;lt;img/&amp;lt;img loading=&amp;#34;lazy&amp;#34;/g&amp;#39;&lt;/span> &lt;span class="p">{}&lt;/span> \&lt;span class="p">;&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="nb">print&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>o todo junto en una sola línea.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">make&lt;/span> &lt;span class="n">publish&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="n">find&lt;/span> &lt;span class="o">./&lt;/span>&lt;span class="n">output&lt;/span>&lt;span class="o">/&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">name&lt;/span> &lt;span class="s2">&amp;#34;index.html&amp;#34;&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">exec&lt;/span> &lt;span class="n">sed&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="s1">&amp;#39;s/&amp;lt;img/&amp;lt;img loading=&amp;#34;lazy&amp;#34;/g&amp;#39;&lt;/span> &lt;span class="p">{}&lt;/span> \&lt;span class="p">;&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="nb">print&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/lazy-load-pelican.jpg"
alt="Lazy Load funcionando.">&lt;figcaption>
&lt;p>Lazy Load funcionando.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¡Y listo! Funciona perfectamente.&lt;/p></description></item><item><title>Acelerar tu sitio web vs Google adsense, no se puede todo en la vida</title><link>https://linuxmanr4.com/2021/07/08/acelerar-tu-sitio-web-vs-google-adsense-no-se-puede-todo-en-la-vida/</link><pubDate>Thu, 08 Jul 2021 18:03:17 +0000</pubDate><guid>https://linuxmanr4.com/2021/07/08/acelerar-tu-sitio-web-vs-google-adsense-no-se-puede-todo-en-la-vida/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/pexels-photo-1148820.jpeg" alt="Featured image of post Acelerar tu sitio web vs Google adsense, no se puede todo en la vida" />&lt;p>Las nuevas reglas del SEO según Google dicen que tu sitio web debe de ser rápido, pero al incluir anuncios de adsense el rendimiento cae.&lt;/p>
&lt;p>La exigencia más reciente es que tu sitio web debe ser rápido, entre más rápido mejor estarás posicionado en el buscador y por lo tanto tendrás más visitas. Okey vamos a optimizarlo.&lt;/p>
&lt;p>He pasado más de un mes intentando extraer hasta el último byte extra de rendimiento en mis sitios web pero hay algo que simplemente echa a perder todo el trabajo y me refiero a los anuncios de adsense.&lt;/p>
&lt;p>No es que gane mucho dinero, pero es lo que paga el &lt;a class="link" href="https://manage.banahosting.com/aff.php?aff=3351" target="_blank" rel="noopener"
>hosting&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y los dominios. Durante años este sitio se ha mantenido autosustentable, es decir, no me cuesta escribir en él, a mi me sirve para hacer muchos experimentos y después de tantos años pues ya le tengo cariño.&lt;/p>
&lt;p>Pero cada año se vuelve más difícil darle de comer al gigante que siendo honestos, pues es el que trae más visitas a este sitio.&lt;/p>
&lt;h2 id="core-web-vitals-o-en-español-la-experiencia-de-usuario">Core Web Vitals o en español La experiencia de usuario
&lt;/h2>&lt;p>Existe una herramienta oficial para medir el desempeño de tu sitio web, me refiero al &lt;a class="link" href="https://developers.google.com/web/tools/lighthouse?hl=es" target="_blank" rel="noopener"
>Google Lighthouse&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ahí podrás ver que tan bien (o mal) se comporta y hará las recomendaciones pertinentes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/bajo%5Fperformance.jpg">
&lt;/figure>
&lt;p>Existen en Internet muchos recursos con información sobre cómo optimizar tu página web.&lt;/p>
&lt;h3 id="recomendaciones-para-mejorar-el-rendimiento">Recomendaciones para mejorar el rendimiento.
&lt;/h3>&lt;p>Va a depender mucho de que herramientas utilices. En mi caso, uso &lt;strong>Wordpress&lt;/strong> y me ayudo mucho del plugin &lt;a class="link" href="https://es.wordpress.org/plugins/litespeed-cache/" target="_blank" rel="noopener"
>LiteSpeed Cache&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Lo más básico es &lt;strong>Optimizar las imágenes&lt;/strong>. Una imagen pequeña se carga rápido, así de simple.&lt;/p>
&lt;p>En Wordpress uso el plugin &lt;a class="link" href="https://es-mx.wordpress.org/plugins/ewww-image-optimizer/" target="_blank" rel="noopener"
>EWWW Image Optimizer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Tengo otro sitio en el que uso &lt;a class="link" href="https://blog.getpelican.com/" target="_blank" rel="noopener"
>Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como generador de contenido, en este caso convertí todas las imágenes a &lt;a class="link" href="https://es.wikipedia.org/wiki/WebP" target="_blank" rel="noopener"
>WebP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con un script en Python que yo mismo programé &lt;/p>
\[véase [Convertir archivos JPG a WebP con Python](/2020/07/30/convertir-archivos-jpg-a-webp-con-python/)\]&lt;p>Ayuda mucho un buen plugin de caché para wordpress. Hay varios disponibles, como el famoso &lt;a class="link" href="https://es-mx.wordpress.org/plugins/w3-total-cache/" target="_blank" rel="noopener"
>W3 Total Cache&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o el &lt;a class="link" href="https://es-mx.wordpress.org/plugins/wp-super-cache/" target="_blank" rel="noopener"
>WP Super Cache&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Estos programas le quitan carga a su servidor al generar contenido estático optimizado.&lt;/p>
&lt;p>En el sitio que utilizo Pelican no es tan necesario, porque prácticamente todo su contenido es estático.&lt;/p>
&lt;p>Al final puedo obtener excelentes resultados, pero no importa lo que haga, en el momento que pongo anuncios de adsense el rendimiento se hunde como el Titanic.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/recursos%5Falentan%5Fperformance.jpg">
&lt;/figure>
&lt;h2 id="limitar-los-anuncios">¿Limitar los anuncios?
&lt;/h2>&lt;p>Es lo lógico, si el problema son los anuncios, entonces lo lógico sería limitar el número de estos ¿Suena bien no?¡Pues no es cierto! ya verán.&lt;/p>
&lt;p>Hace tiempo que adsense liberó los &lt;strong>Anuncios Automáticos&lt;/strong> en el que agregas un código especial y este toma la decisión de cuales anuncios aparecen y en donde.&lt;/p>
&lt;p>Si ven una página web saturada de anuncios probablemente es por que esta usando anuncios automáticos.&lt;/p>
&lt;p>La solución sería volver al método antiguo. Copiar el código de adsense de cada anuncio dónde quieres que aparezca y claro, al haber menos anuncios el rendimiento mejora pero hay un problema. Los ingresos se desploman.&lt;/p>
&lt;p>¡Simplemente no se puede ganar! O tienes un sitio rápido sin anuncios o uno lento con anuncios.&lt;/p>
&lt;h2 id="entonces-que-se-puede-hacer">¿Entonces que se puede hacer?
&lt;/h2>&lt;p>Pues no mucho, de nuestra parte. Adsense podría mejorar su algoritmo para evitar añadir demasiada carga a los sitios web o que le exigiera algo de optimización a los anunciantes.&lt;/p>
&lt;p>Me ha tocado ver imágenes enormes en los anuncios que bien pudieron aligerar con anterioridad, pero ese no es problema del anunciante, porque ellos no quieren mejorar su posición en el buscador, sólo quieren que aparezca su anuncio.&lt;/p>
&lt;h2 id="inestabilidad-es-el-nombre-del-juego">Inestabilidad es el nombre del juego.
&lt;/h2>&lt;p>Actualmente creo que le dedico más tiempo al SEO que a escribir.&lt;/p>
&lt;p>Cada cierto tiempo aparecen actualizaciones al algoritmo del buscador de Google o Wordpress con sus actualizaciones automáticas que modifican los resultados, es un sistema inestable que se modifica continuamente.&lt;/p>
&lt;p>Lo que queda es revisar cada cierto tiempo si hay caídas bruscas en el performance o en los ingresos, pero a veces los cambios son tan variables que no se puede estar seguro si una modificación tendrá un impacto positivo.&lt;/p>
&lt;p>¿Ustedes que opinan mis 4 lectores? ¿Ven alguna solución a este dilema?&lt;/p></description></item><item><title>Cambiando de los drivers propietarios de Nvidia a los libres Nouveau</title><link>https://linuxmanr4.com/2021/06/08/nvidia-a-nouveau-manjaro/</link><pubDate>Tue, 08 Jun 2021 16:12:34 +0000</pubDate><guid>https://linuxmanr4.com/2021/06/08/nvidia-a-nouveau-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/06/monitores-fotis-fotopoulos-DuHKoV44prg-unsplash.jpg" alt="Featured image of post Cambiando de los drivers propietarios de Nvidia a los libres Nouveau" />&lt;p>Lo malo de tener una computadora que tiene 8 años con la misma instalación de Linux es que algunos elementos se empiezan a quedar atrás.&lt;/p>
&lt;p>El &lt;em>hardware&lt;/em> es el mismo, no cambia o no cambia mucho, pero al usar &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
(una distribución &lt;em>rolling release&lt;/em>) las actualizaciones son constantes y a veces es un poco complicado estar al día.&lt;/p>
&lt;p>En enero de este año (léase &lt;a class="link" href="https://linuxmanr4.com/2021/01/19/failed-to-start-load-kernel-modules-nvidia/" >Actualizar Manjaro, Failed to start Load Kernel Modules ¡Gulp!&lt;/a>
) sabrán que tuve un problema serio con los drivers propietarios de Nvidia.&lt;/p>
&lt;p>Mi tarjeta de video funciona perfectamente, pero los drivers deben de estar a la par del kernel de Linux. El kernel avanza (nunca se va a detener) pero se vuelve complicado mantener a esas tarjetas viejitas y hay dos opciones.&lt;/p>
&lt;p>En enero de este año tomé la primer opción. Instalar nuevamente los drivers propietarios de Nvidia con las recomendaciones de &lt;a class="link" href="https://manjaro.org/team/" target="_blank" rel="noopener"
>Philip Müller&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Para evitar futuros problemas decidí dejar de cambiar la versión del kernel y las actualizaciones futuras de los drivers.&lt;/p>
&lt;p>De esa forma pretendí curarme en salud y durante varios meses funcionó bastante bien… hasta ayer.&lt;/p>
&lt;h2 id="nouveau-significa-nuevo">Nouveau significa nuevo
&lt;/h2>&lt;p>La actualización de ayer transcurrió sin problemas y tengo la costumbre de reiniciar mi equipo después de una actualización grande. Al encender mi equipo me encontré con una pantalla negra y un tímido cursor parpadeando en la esquina superior izquierda.&lt;/p>
&lt;p>Era algo que había pospuesto, pero ya no quedaba de otra, era tiempo de instalar el driver libre &lt;a class="link" href="https://wiki.freedesktop.org/nouveau/" target="_blank" rel="noopener"
>nouveau&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero no fue tan sencillo como esperaba.&lt;/p>
&lt;p>Encontré mi tarjeta en la &lt;a class="link" href="https://wiki.freedesktop.org/nouveau/CodeNames/" target="_blank" rel="noopener"
>lista de tarjetas soportadas por nouveau&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y al ser una tarjeta viejita estaba bien soportada, bueno pues a instalar.&lt;/p>
&lt;h2 id="instalar-nouveau">Instalar nouveau
&lt;/h2>&lt;p>Manjaro tiene una opción para instalar tarjetas gráficas que simplifica mucho la tarea, pero creo que algo falló en mi caso y a lo mejor a alguién más le puede llegar a suceder.&lt;/p>
&lt;p>Para instalar nouveau hay que elegir la opción libre. Según el wiki de Manjaro &lt;a class="link" href="https://wiki.manjaro.org/index.php/Configure_Graphics_Cards" target="_blank" rel="noopener"
>Configure Graphics Cards&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
la instrucción es como sigue:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -a pci free 0300
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y después hacer varias cosas, reinicié mi equipo y nada … no funcionó. Ni modo, a leer un poco más.&lt;/p>
&lt;h2 id="cuando-todo-falla-el-wiki-de-arch">Cuando todo falla, el wiki de Arch
&lt;/h2>&lt;p>Bueno, intenté el método tradicional, pero por experiencia propia me he dado cuenta de que el wiki de Arch &lt;a class="link" href="https://wiki.archlinux.org/title/nouveau" target="_blank" rel="noopener"
>Nouveau (Español)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es más completo para resolver algunos problemas.&lt;/p>
&lt;p>Y revisé las instrucciones de instalación y los posibles problemas.&lt;/p>
&lt;p>Al teclear&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo modprobe nouveau
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Algo sucedió en la pantalla, eso quiere decir que el driver esta instalado, pero no se carga durante el arranque.&lt;/p>
&lt;p>Así que leyendo nuevamente me di cuenta de que el driver nouveau estaba en una lista negra, por eso no cargaba durante el arranque.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/06/nouveau-blacklist.jpg"
alt="nouveau en la lista negra del archivo mhwd-gpu.conf">&lt;figcaption>
&lt;p>nouveau en la lista negra del archivo mhwd-gpu.conf&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el archivo &lt;strong>/etc/modprobe.d/mhwd-gpu.conf&lt;/strong> aparecía en la lista negra el driver nouveau.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">#
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Generated by mhwd - Manjaro Hardware Detection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">##
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># blacklist nouveau
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">blacklist ttm
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">blacklist drm_kms_helper
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">blacklist drm
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Comenté esa línea y parecía que ya todo iba a funcionar ¡Iluso de mi!&lt;/p>
&lt;h2 id="el-archivo-de-configuración-xorg">El archivo de configuración xorg
&lt;/h2>&lt;p>Va el resumen, ya instalé el driver, el módulo se carga durante el arranque, pero sigue sin funcionar.&lt;/p>
&lt;p>Recordé el famoso comando &lt;strong>startx&lt;/strong> para iniciar la pantalla en modo gráfico y me dio unos mensajes de error interesantes.&lt;/p>
&lt;p>Entonces revisé el archivo de configuración, en la carpeta &lt;strong>/etc/X11/xorg.conf.d&lt;/strong>&lt;/p>
&lt;p>Intenté un consejo creando un archivo &lt;strong>20-nouveau.conf&lt;/strong> pero no funcionó, así que revisé el archivo &lt;strong>90-mhwd.conf&lt;/strong> y me di cuenta de que todavía hacía uso del driver de nvidia.&lt;/p>
&lt;p>Lo modifiqué para que usara nouveau es la sección Device del archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Section &amp;#34;Device&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;Device0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Driver &amp;#34;nouveau&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> VendorName &amp;#34;NVIDIA Corporation&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;NoLogo&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciar … redoble de tambores … un poco de suspenso ¡Funcionooooooo!&lt;/p>
&lt;p>Mi equipo arrancó de forma normal, funcionó la interfaz gráfica, hice login y para comprobar teclee: &lt;strong>inxi -G&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Graphics&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Device&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">NVIDIA&lt;/span> &lt;span class="n">GT218&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">GeForce&lt;/span> &lt;span class="mi">8400&lt;/span> &lt;span class="n">GS&lt;/span> &lt;span class="n">Rev&lt;/span>&lt;span class="o">.&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">driver&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="n">v&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">kernel&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Display&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">x11&lt;/span> &lt;span class="n">server&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">X&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Org&lt;/span> &lt;span class="mf">1.20&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="n">driver&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">loaded&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">nouveau&lt;/span> &lt;span class="n">resolution&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1440&lt;/span>&lt;span class="n">x900&lt;/span>&lt;span class="o">~&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="n">Hz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">OpenGL&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">renderer&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">NVA8&lt;/span> &lt;span class="n">v&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">3.3&lt;/span> &lt;span class="n">Mesa&lt;/span> &lt;span class="mf">21.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="eliminar-lo-que-ya-no-se-necesita">Eliminar lo que ya no se necesita
&lt;/h2>&lt;p>Como un plus, creo que ya no es necesario conservar y actualizar paquetes de nvidia que ya no se van a utilizar. Para hacer una lista de estos paquetes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pamac list -i | grep nvidia
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eliminar la mayoría de los paquetes de esa lista. Hubo un par que no se pudo eliminar por dependencias, pero los dejé, no creo que causen mayor problema.&lt;/p>
&lt;h2 id="problemas-con-kernels-nuevos">Problemas con kernels nuevos
&lt;/h2>&lt;p>Parece que el driver libre no se lleva bien con los kernels más modernos, estoy hablado de las versiones superiores a la 5.4&lt;/p>
&lt;p>En momentos random la computadora se congela, el audio se sigue escuchando por unos instantes, el puntero del mouse se sigue moviendo pero no reacciona a los clics.&lt;/p>
&lt;p>No es posible cambiar a entornos no gráficos presionando las teclas Ctrl + Alt + F2. La única alternativa es reiniciar presionando el botón de Reset de la computadora.&lt;/p>
&lt;p>Los mensajes de diagnóstico muestran lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Direct&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">nouveau&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">nva8_fuc084d&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="nb">load&lt;/span> &lt;span class="n">firmware&lt;/span> &lt;span class="n">data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nouveau&lt;/span> &lt;span class="mi">0000&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mf">00.0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">msvld&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">init&lt;/span> &lt;span class="n">failed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">19&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Estos problemas son muy similares a los que se detallan en &lt;a class="link" href="https://unix.stackexchange.com/questions/712639/linux-mint-20-3-laptop-freezes-randomly-because-of-nouveau-driver" target="_blank" rel="noopener"
>Linux Mint 20.3 laptop freezes randomly because of nouveau driver&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/01/manjaro-kernel-54.jpg">
&lt;/figure>
&lt;p>Por el momento lo he solucionado instalando el Kernel 5.4 que es &lt;strong>LTS&lt;/strong> y eso también ayuda a evitar &lt;a class="link" href="https://linuxmanr4.com/2022/06/22/pantallas-azules-y-reinicios-inexplicables-de-un-windows-7-en-virtualbox/" >algunos problemas que he tenido con Virtualbox&lt;/a>
.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Escribo estas notas a un día de hecho el cambio. No he notado problemas mayores, algunos detalles menores en la decoración de las ventanas y configuración de fondos de escritorio pero nada más. La reproducción de videos es fluida y a simple vista no he notado una diferencia entre los drivers propietarios y los libres.&lt;/p>
&lt;p>Este cambio me libera de futuros problemas con las actualizaciones del &lt;em>kernel&lt;/em> y del driver nouveau, así que espero tener unos años extra de estabilidad o hasta que el &lt;em>hardware&lt;/em> aguante.&lt;/p></description></item><item><title>Python, MySQL y como mezclarlos para hacer consultas</title><link>https://linuxmanr4.com/2021/05/27/python-mysql/</link><pubDate>Thu, 27 May 2021 16:12:14 +0000</pubDate><guid>https://linuxmanr4.com/2021/05/27/python-mysql/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/pexels-photo-612964.jpeg" alt="Featured image of post Python, MySQL y como mezclarlos para hacer consultas" />&lt;p>Siempre es interesante juntar Python y MySQL, de esta mezcla pueden resultar programas muy útiles.&lt;/p>
&lt;p>Por ejemplo, se pueden hacer consultas a una base de datos y el resultado enviarlo por Telegram, guardarlo en una hoja de cálculo, enviar esa información por correo, hacer cálculos o simplemente mostrarlo en pantalla.&lt;/p>
&lt;p>La potencia de una base de datos es guardar grandes cantidades de información para luego filtrarla a gran velocidad, las ventajas con muchas.&lt;/p>
&lt;p>En este artículo verán un ejemplo sencillo de como hacer una consulta con Python a una base de datos MySQL ¡Comenzamos!&lt;/p>
&lt;h2 id="pymysql-es-el-que-hace-la-magia">PyMySQL es el que hace la magia
&lt;/h2>&lt;p>Hacer consultas con &lt;a class="link" href="https://linuxmanr4.com/2020/07/30/convertir-archivos-jpg-a-webp-con-python/" >Python&lt;/a>
es relativamente sencillo. Para lograr una conexión a una base de datos usé la librería &lt;a class="link" href="https://pypi.org/project/PyMySQL/" target="_blank" rel="noopener"
>PyMySQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es importante recalcar que esta librería sirve tanto para &lt;strong>MySQL&lt;/strong> como para &lt;a class="link" href="https://mariadb.org/" target="_blank" rel="noopener"
>MariaDB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y no hay muchas diferencias en cuanto a su uso.&lt;/p>
&lt;p>Para instalarla solo es necesario:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">python3 -m pip install PyMySQL
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hecho esto lo que sigue es puro código.&lt;/p>
&lt;h2 id="importar-la-librería-y-establecer-la-conexión">Importar la librería y establecer la conexión.
&lt;/h2>&lt;p>Claro que para que este código funcione primero hay que tener un &lt;a class="link" href="https://linuxmanr4.com/2009/04/18/mysql-tuner-un-asesor-en-el-rendimiento-de-servidores-mysql/" >servidor MySQL&lt;/a>
junto con un usuario y contraseña que permita una conexión.&lt;/p>
&lt;p>Veamos el siguiente ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pymysql&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Variables generales de conexión a la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">servidor_ip&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;192.168.10.40&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">usuario&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;usuariodb&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">contraseña&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;12345678&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">base_de_datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;world&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Establecemos la conexión con el servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">db&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pymysql&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">host&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">servidor_ip&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">user&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">usuario&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">password&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">contraseña&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">database&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">base_de_datos&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">charset&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;utf8&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cursorclass&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">pymysql&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cursors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DictCursor&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="sql-entra-en-acción">SQL entra en acción
&lt;/h2>&lt;p>Llegó el momento de ponerse serios, el verdadero poder de un servidor de base de datos son las consultas.&lt;/p>
&lt;p>A mi me gusta trabajar las consultas con editor gráfico como &lt;a class="link" href="https://www.heidisql.com/" target="_blank" rel="noopener"
>HeidiSQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para luego copiarla en el código.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/heidisql-editor-de-consultas.jpg"
alt="heidisql y su editor de consultas.">&lt;figcaption>
&lt;p>heidisql y su editor de consultas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esta es una base de datos de ejemplo que guarda información de países, ciudades y sus idiomas. Es la famosa &lt;a class="link" href="https://dev.mysql.com/doc/index-other.html" target="_blank" rel="noopener"
>base de datos World&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se puede descargar para practicar.&lt;/p>
&lt;p>Supongamos que queremos una lista de países que hablan Español. La consulta quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El cursor nos permite trabajar con la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cursor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">db&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cursor&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># SQL entra en acción.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">consulta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;SELECT country.Name &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;FROM country &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;INNER JOIN countrylanguage ON countrylanguage.CountryCode = Code &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;WHERE Language = &amp;#39;Spanish&amp;#39;;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="los-resultados-de-la-consulta">Los resultados de la consulta
&lt;/h2>&lt;p>Ahora viene lo interesante, ejecutar la consulta y guardar los resultados en una variable en la que podamos trabajar.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ejecutamos la consulta :)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cursor&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">consulta&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Y los resultados los almacenamos en la variable datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cursor&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fetchall&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">datos&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero si sólo hago un &lt;em>print(datos)&lt;/em> el resultado es el siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Aruba&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Andorra&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Argentina&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Belize&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Bolivia&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Canada&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Chile&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Colombia&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Costa Rica&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Cuba&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Dominican Republic&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Ecuador&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Spain&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;France&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Guatemala&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Honduras&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Mexico&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Nicaragua&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Panama&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Peru&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Puerto Rico&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Paraguay&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;El Salvador&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Sweden&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Uruguay&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;United States&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Venezuela&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s1">&amp;#39;Virgin Islands, U.S.&amp;#39;&lt;/span>&lt;span class="p">}]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que visualmente no es muy agradable, así que vamos a enchular un poco el resultado de la consulta recorriendo el diccionario datos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">datos&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que da como resultado una salida mucho más legible:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Aruba&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Andorra&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Argentina&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Belize&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Bolivia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Canada&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Chile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Colombia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Costa&lt;/span> &lt;span class="n">Rica&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Cuba&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dominican&lt;/span> &lt;span class="n">Republic&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Ecuador&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Spain&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">France&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Guatemala&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Honduras&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mexico&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Nicaragua&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Panama&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Peru&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Puerto&lt;/span> &lt;span class="n">Rico&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Paraguay&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">El&lt;/span> &lt;span class="n">Salvador&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sweden&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Uruguay&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">United&lt;/span> &lt;span class="n">States&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Venezuela&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Virgin&lt;/span> &lt;span class="n">Islands&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">U&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">S&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="cierre-la-puerta-al-salir">Cierre la puerta al salir
&lt;/h2>&lt;p>Claro que una vez que todo termina, es una buena idea cerrar la conexión. Para evitar que el servidor le siga asignando recursos y este atento a las peticiones.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">db&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="todo-junto">Todo junto
&lt;/h2>&lt;p>Al final todo el código sería así&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pymysql&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Variables generales de conexión a la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">servidor_ip&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;192.168.10.40&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">usuario&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;usuariodb&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">contraseña&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;12345678&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">base_de_datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;world&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Establecemos la conexión con el servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">db&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pymysql&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">host&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">servidor_ip&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">user&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">usuario&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">password&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">contraseña&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">database&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">base_de_datos&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">charset&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;utf8&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cursorclass&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">pymysql&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cursors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DictCursor&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El cursor nos permite trabajar con la base de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cursor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">db&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cursor&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># SQL entra en acción.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">consulta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;SELECT country.Name &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;FROM country &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;INNER JOIN countrylanguage ON countrylanguage.CountryCode = Code &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;WHERE Language = &amp;#39;Spanish&amp;#39; &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;ORDER BY Name;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ejecutamos la consulta :)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cursor&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">consulta&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Y los resultados los almacenamos en la variable datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cursor&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fetchall&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">datos&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;Name&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cerrar la conexión al terminar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">db&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/ejecucion%5Fscript.gif"
alt="python mysql el programa funcionando">&lt;figcaption>
&lt;p>python mysql el programa funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Como ven las posibilidades son muchas, no solamente para hacer consultas, también es posible alimentar una base de datos de diversas fuentes, archivos de texto, hojas de cálculo, incluso desde la misma terminal.&lt;/p>
&lt;p>¿Qué les pareció este artículo?&lt;/p>
&lt;p>¿Saben de otra forma de hacer &lt;a class="link" href="https://linuxmanr4.com/2021/10/19/mysql-dia-de-la-semana/" >consultas a una base de datos MySQL&lt;/a>
con Python?&lt;/p></description></item><item><title>fping para monitorear la salud de las conexiones de red.</title><link>https://linuxmanr4.com/2021/04/07/fping-para-monitorear-la-salud-de-las-conexiones-de-red/</link><pubDate>Wed, 07 Apr 2021 15:58:33 +0000</pubDate><guid>https://linuxmanr4.com/2021/04/07/fping-para-monitorear-la-salud-de-las-conexiones-de-red/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/04/fping_ip.jpg" alt="Featured image of post fping para monitorear la salud de las conexiones de red." />&lt;p>No es la primera vez que uso &lt;a class="link" href="https://fping.org/" target="_blank" rel="noopener"
>fping&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, anteriormente lo usé en un &lt;a class="link" href="https://linuxmanr4.com/2018/05/10/python-ping-script-ip/" >script python&lt;/a>
para revisar periódicamente varios elementos importantes de mi red.&lt;/p>
&lt;p>Pero ahora era ligeramente distinto, un punto de acceso inalámbrico se reiniciaba espontáneamente (bueno, todavía lo hace ocasionalmente), pero no sabía la causa. El problema era que no sabía con exactitud el momento del reinicio.&lt;/p>
&lt;p>Me di cuenta del problema con un ping normal, pero la información que entrega no me servía de mucho. Así que buscando un poco en la documentación de fping logré una instrucción que cumple con mis necesidades.&lt;/p>
&lt;h2 id="como-usar-fping">Como usar fping
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fping -l -D -i 5000 192.168.10.1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>-l o loop&lt;/strong> lo que hace es un ciclo infinito de pruebas, se interrumpe al presionar Ctrl + C o cerrar la terminal.&lt;/p>
&lt;p>&lt;strong>−D&lt;/strong> muestra un &lt;em>timestamp&lt;/em> , lamentablemente esta en &lt;a class="link" href="https://es.wikipedia.org/wiki/Tiempo_Unix" target="_blank" rel="noopener"
>formato Unix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero una visita al sitio &lt;a class="link" href="https://www.epochconverter.com/" target="_blank" rel="noopener"
>Epoch Converter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ayuda a establecer con presición la fecha y hora de la prueba.&lt;/p>
&lt;p>&lt;strong>-i&lt;/strong> Establece un tiempo entre pruebas en milisegundos.&lt;/p>
&lt;p>El resultado es más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[1617807863.33112] 192.168.10.1 : [125], 64 bytes, 2.35 ms (2.48 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807868.33372] 192.168.10.1 : [126], 64 bytes, 1.54 ms (2.47 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807873.33884] 192.168.10.1 : [127], 64 bytes, 1.53 ms (2.46 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807878.34463] 192.168.10.1 : [128], 64 bytes, 2.20 ms (2.46 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807883.34692] 192.168.10.1 : [129], 64 bytes, 1.50 ms (2.45 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807888.35214] 192.168.10.1 : [130], 64 bytes, 1.59 ms (2.45 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807893.35752] 192.168.10.1 : [131], 64 bytes, 2.01 ms (2.44 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807898.36118] 192.168.10.1 : [132], 64 bytes, 1.60 ms (2.44 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807903.36450] 192.168.10.1 : [133], 64 bytes, 2.31 ms (2.44 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807908.36855] 192.168.10.1 : [134], 64 bytes, 3.04 ms (2.44 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807913.37070] 192.168.10.1 : [135], 64 bytes, 1.86 ms (2.44 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807918.37358] 192.168.10.1 : [136], 64 bytes, 1.47 ms (2.43 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807923.37871] 192.168.10.1 : [137], 64 bytes, 1.49 ms (2.42 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807928.38358] 192.168.10.1 : [138], 64 bytes, 1.42 ms (2.41 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807933.38729] 192.168.10.1 : [139], 64 bytes, 1.78 ms (2.41 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807938.39223] 192.168.10.1 : [140], 64 bytes, 1.59 ms (2.40 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[1617807943.39726] 192.168.10.1 : [141], 64 bytes, 1.75 ms (2.40 avg, 0% loss)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">^C
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">192.168.10.1 : xmt/rcv/%loss = 142/142/0%, min/avg/max = 1.35/2.40/16.4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Me muestra la fecha y hora (en formato Unix), dirección IP que se esta probando, número de pruebas, tiempo de respuesta, tiempo promedio y porcentaje de falla. Y al final, un resumen ¡Genial!&lt;/p>
&lt;p>¿Qué les parece este método? ¿Saben de uno mejor? ¿Ustedes cuál utilizan?&lt;/p></description></item><item><title>Algo anda muy mal con las actualizaciones de Windows 10</title><link>https://linuxmanr4.com/2021/03/05/algo-anda-muy-mal-con-las-actualizaciones-de-windows-10/</link><pubDate>Fri, 05 Mar 2021 18:16:41 +0000</pubDate><guid>https://linuxmanr4.com/2021/03/05/algo-anda-muy-mal-con-las-actualizaciones-de-windows-10/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/03/20210304_091607.jpg" alt="Featured image of post Algo anda muy mal con las actualizaciones de Windows 10" />&lt;p>Algo tiene que estar muy mal cuando se tienen que invertir 3 días en actualizar un equipo con Windows 10.&lt;/p>
&lt;p>Verán, hace unos días me trajeron una portátil HP que tiene instalado Windows 10 porque dejaron de funcionar los dispositivos USB y la tarjeta de red WiFi.&lt;/p>
&lt;p>No encontré problema alguno con los &lt;em>drivers&lt;/em>. Así que por ese lado no era.&lt;/p>
&lt;h2 id="las-actualizaciones">Las actualizaciones.
&lt;/h2>&lt;p>Al parecer el problema apareció después de una actualización. Ya saben, apagas la computadora y de buenas a primeras aparece un mensaje de que esta actualizando y no apagues el equipo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/06/apagar%5Fpc.jpg">
&lt;/figure>
&lt;p>Y parece que es un problema frecuente: &lt;a class="link" href="https://answers.microsoft.com/en-us/windows/forum/all/all-my-usb-ports-stopped-working-after-windows/ab1657fa-650f-49e9-9459-20c2af0c8369" target="_blank" rel="noopener"
>All my usb ports stopped working after windows update&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero los consejos sobre su solución son algo confusos.&lt;/p>
&lt;p>Así que si que pensé una actualización lo descompuso, probablemente otra actualización lo arregle.&lt;/p>
&lt;p>Conecté a Internet la portátil con un cable de red y empezó un camino de 3 días para instalar las actualizaciones que indicaba el equipo.&lt;/p>
&lt;h2 id="windows-10-20h2">Windows 10 20H2
&lt;/h2>&lt;p>Al avanzar con las actualizaciones me topé con una actualización mayor &lt;a class="link" href="https://support.microsoft.com/es-es/windows/consigue-la-actualizaci%C3%B3n-de-octubre-de-2020-de-windows-10-7d20e88c-0568-483a-37bc-c3885390d212" target="_blank" rel="noopener"
>Consigue la Actualización de octubre de 2020 de Windows 10&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Supongo que es algo así como un Service Pack de antes.&lt;/p>
&lt;p>Pues agárrense, que esto si es cosa seria, se invirtieron varias horas y muchos reinicios para lograr que terminara la actualización y cuando creí que todo había terminado y tenía el equipo actualizado me topé ¿Con que creen? &amp;hellip; adivinaron &amp;hellip; con más actualizaciones.&lt;/p>
&lt;h2 id="linux-es-mejor">Linux es mejor
&lt;/h2>&lt;p>Tengo que reconocer que estoy muy desacostumbrado a Windows. Y las comparaciones son odiosas. Estoy acostumbrado a correr un par de instrucciones en la terminal … bueno en realidad ya las agrupé en un sólo comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-mirrors -c United_States &amp;amp;&amp;amp; sudo pacman -Syyu &amp;amp;&amp;amp; sudo paccache -rk 2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que al final convertí en un alias:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">alias actualizar=&amp;#39;sudo pacman-mirrors -c United_States &amp;amp;&amp;amp; sudo pacman -Syyu &amp;amp;&amp;amp; sudo paccache -rk 2&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y listo, un comando, a lo mejor un reinicio y eso es todo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/03/actualizacion-linux.jpg"
alt="Actualización de Manjaro desde la terminal.">&lt;figcaption>
&lt;p>Actualización de Manjaro desde la terminal.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Un amigo me dice que eso es para usuarios &amp;ldquo;avanzados&amp;rdquo; y probablemente tenga algo de razón, pero nada evita que Microsoft diseñe un mejor sistema de actualizaciones.&lt;/p>
&lt;h3 id="el-usuario-inicia-la-actualización">El usuario inicia la actualización.
&lt;/h3>&lt;p>Y dicen que las comparaciones son odiosas, por ejemplo, en Linux abro una terminal, tecleo el comando y lo dejo trabajar.&lt;/p>
&lt;p>En Windows una actualización causó un problema con dispositivos que funcionaban perfectamente ¿Quién decidió que era el momento de actualizar?&lt;/p>
&lt;p>Además, esas actualizaciones son memorables porque llegan justo cuando tienes más prisa. Esos mensajitos de &amp;ldquo;No apague su equipo mientras se esta actualizando&amp;rdquo; siempre llegan en el peor momento y duran una eternidad.&lt;/p>
&lt;h3 id="en-todo-momento-se-en-que-etapa-del-proceso-estoy">En todo momento se en que etapa del proceso estoy.
&lt;/h3>&lt;p>El comando que tecleo en la terminal me informa de todas las etapas del proceso de actualización, la descarga de los archivos, posibles conflictos entre paquetes, instalación, etc.&lt;/p>
&lt;p>En Windows el proceso queda totalmente oculto al usuario y lo poco visible es inexacto.&lt;/p>
&lt;p>Varias veces vi que el avance de la actualización brincaba de un 99% a un 1%. Vamos que ya es una broma.&lt;/p>
&lt;p>&lt;a class="link" href="https://twitter.com/linuxmanR4/status/1367213544891166720" target="_blank" rel="noopener"
>https://twitter.com/linuxmanR4/status/1367213544891166720&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>De hecho el avance era tan lento que tuve que abrir el administrador de tareas ( taskmgr ) para poder ver la actividad en el CPU, el disco duro y la tarjeta de red.&lt;/p>
&lt;p>Incluso hubo un momento en el que no estaba seguro si apagar el equipo o dejarlo prendido toda la noche.&lt;/p>
&lt;h3 id="al-terminar-tengo-un-equipo-actualizado">Al terminar tengo un equipo actualizado.
&lt;/h3>&lt;p>En Linux al terminar el proceso, reinicio mi equipo y listo, eso es todo. Ya tengo en equipo con los programas actualizados, al menos hasta ese momento.&lt;/p>
&lt;p>Pero en Windows, después de 3 días de un proceso interminable y cuando parecía que había llegado a la meta llamada &lt;strong>Windows 10 20H2&lt;/strong> me di cuenta de que había más actualizaciones disponibles. Vamos que es cuento de nunca acabar.&lt;/p>
&lt;p>&lt;a class="link" href="https://twitter.com/linuxmanR4/status/1367863754885595139" target="_blank" rel="noopener"
>https://twitter.com/linuxmanR4/status/1367863754885595139&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="linux-también-tiene-problemas-pero-son-diferentes">Linux también tiene problemas pero son diferentes.
&lt;/h2>&lt;p>Se que no todo es perfecto, justo me acaba de pasar un problema con un driver de nVidia durante una actualización de Linux (véase &lt;a class="link" href="https://linuxmanr4.com/2021/01/19/failed-to-start-load-kernel-modules-nvidia/" >Actualizar Manjaro, Failed to start Load Kernel Modules ¡Gulp!&lt;/a>
) pero no fue difícil recuperarme gracias a el apoyo de la comunidad en los foros de Manjaro.&lt;/p>
&lt;p>A la fecha, parece que después de tantas actualizaciones se corrigió el problema con los puertos USB y la tarjeta WiFi y sí &amp;hellip; sigo instalando actualizaciones.&lt;/p>
&lt;p>¿Ustedes también tienen este tipo de problemas? o solo es que estoy muy mal acostumbrado a Linux.&lt;/p></description></item><item><title>pfSense, recuperándome de una falla en el disco duro</title><link>https://linuxmanr4.com/2021/02/05/pfsense-recuperandome-de-una-falla-en-el-disco-duro/</link><pubDate>Fri, 05 Feb 2021 17:19:38 +0000</pubDate><guid>https://linuxmanr4.com/2021/02/05/pfsense-recuperandome-de-una-falla-en-el-disco-duro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/02/errores-hdd.jpg" alt="Featured image of post pfSense, recuperándome de una falla en el disco duro" />&lt;p>La semana pasada tuve un problema serio con mi instalación de pfSense. Los problemas empezaron de una forma muy sutil, incluso tenía Internet y eso era lo más desconcertante.&lt;/p>
&lt;p>Al principio algunos usuarios me reportaban que no podía entrar a algunos sitios, pero otros si funcionaban. Otros me reportaban que sus celulares no se podían conectar a la red WiFi y eso estaba más raro todavía.&lt;/p>
&lt;p>El colmo fue que para cuando quise entrar a la página de mi pfSense no lo pemitió !!!! okeeeey, quise entrar por SSH y tampoco. En ese momento se prendieron todos los focos rojos 🚩🚩🚩&lt;/p>
&lt;p>Reinicié el servidor y funcionó bien por un tiempo, mismo que invertí para averiguar las causas del mal funcionamiento.&lt;/p>
&lt;h2 id="disco-duro-agonizante">Disco duro agonizante
&lt;/h2>&lt;p>Tuve que trasladarme físicamente a la ubicación del servidor con un monitor y un teclado. Solamente al conectar la pantalla vi una imagen nada halagadora.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/02/errores-hdd.jpg"
alt="Mensajes de error de lectura en el disco.">&lt;figcaption>
&lt;p>Mensajes de error de lectura en el disco.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Durante la lucidez que le dió el reinicio del equipo logré conectarme a la página web y hacer una prueba &lt;a class="link" href="https://es.wikipedia.org/wiki/S.M.A.R.T." target="_blank" rel="noopener"
>SMART&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
avisándome de una falla inminente en menos de 24 horas OKEEEEEY, ahora si ya estoy preocupado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/02/fallo-inminente-hdd.jpg"
alt="El disco duro fallará en menos de 24 horas ¡GUARDE TODA LA INFORMACIÓN!">&lt;figcaption>
&lt;p>El disco duro fallará en menos de 24 horas ¡GUARDE TODA LA INFORMACIÓN!&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aproveché para hacer un respaldo de la configuración que es producto de 3 años de pequeños ajustes que francamente no creo recordar.&lt;/p>
&lt;p>Mientras tanto el internet seguía funcionando, claro que con el tiempo el servicio se degradaba cada vez más. Desactivé &lt;a class="link" href="http://www.squid-cache.org/" target="_blank" rel="noopener"
>squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para evitar accesos al disco duro y ganar algo de tiempo. Es increíble el tiempo que logró funcionar solamente con lo que cargó en memoria.&lt;/p>
&lt;p>Conseguí un disco duro de 120 GB, más que suficiente para los &lt;a class="link" href="https://www.pfsense.org/products/" target="_blank" rel="noopener"
>requerimientos de pfSense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Lo bueno de guardar todo es que este disco duro no sería útil para las necesidades de un usuario, pero para estos propósitos es excelente.&lt;/p>
&lt;p>Ahora lo que necesitaba es un plan de acción.&lt;/p>
&lt;h2 id="plan-a-clonar-el-disco-duro">Plan A. Clonar el disco duro
&lt;/h2>&lt;p>Me pareció que lo más sencillo y rápido era clonar el disco duro con &lt;a class="link" href="https://clonezilla.org/" target="_blank" rel="noopener"
>Clonezilla&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ya lo había usado en otras ocasiones con excelentes resultados.&lt;/p>
&lt;p>Para hacer todo más rápido intenté una copia de disco a disco pero no fue lo que esperaba. Tal parece que el sistema de archivos &lt;a class="link" href="https://es.wikipedia.org/wiki/ZFS_%28sistema_de_archivos%29" target="_blank" rel="noopener"
>ZFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
no esta soportado y en ese caso se hace un vaciado usando &lt;em>dd&lt;/em> que ralentizó todo el proceso. En una estimación decía que tardaría más de 11 horas en clonar el disco y eso era inaceptable.&lt;/p>
&lt;h2 id="plan-b-reinstalar-y-subir-el-respaldo">Plan B. Reinstalar y subir el respaldo
&lt;/h2>&lt;p>Como el plan A no funcionó como lo esperaba no me quedó más que hacer una instalación desde cero y subir el respaldo que había descargado anteriormente.&lt;/p>
&lt;p>La instalación fue rápidisima y sin problemas. Inmediatamente entré a la página de administración (por cierto, las credenciales por default son: usuario: &lt;em>admin&lt;/em> contraseña: &lt;em>pfsense&lt;/em> ) y subir el respaldo.&lt;/p>
&lt;p>&lt;strong>¡ADVERTENCIA!&lt;/strong> Antes de subir el respaldo asegúrese de tener internet en el equipo.&lt;/p>
&lt;p>Después de subir el respaldo me apareció un mensaje en el que me decía que comenzaría la descarga de los paquetes adicionales en segundo plano y que esperara un par de horas a que terminara el proceso.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/02/reinstalacion-de-paquetes.jpg"
alt="Reinstalación de paquetes">&lt;figcaption>
&lt;p>Reinstalación de paquetes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lamentablemente no hay un indicador de progreso. La única pista de que estaba trabajando fue el incesante parpadeo de las luces led de las tarjetas de red y los switches.&lt;/p>
&lt;p>Pasaron un poco más de dos horas y nuevamente tuve un problema con el internet, el parpadeo de las luces led disminuyeron notablemente, era tiempo de reiniciar.&lt;/p>
&lt;h2 id="habemus-pflazarus">¡Habemus pfLazarus!
&lt;/h2>&lt;p>Al reiniciar mi servidor había vuelto a la vida. Todas las configuraciones, incluyendo la de los paquetes adicionales estaban como las había dejado.&lt;/p>
&lt;p>Aunque no todo era idéntico. Al conectarme por SSH me lanzó la advertencia de que las claves habían cambiado, algo que es perfectamente normal.&lt;/p>
&lt;p>También cambió el &lt;strong>Device key&lt;/strong> en la opción de &lt;strong>Auto Configuration Backup&lt;/strong> para que lo anoten nuevamente y lo tengan en cuenta. Esta opción te puede salvar la vida si no puedes descargar un respaldo.&lt;/p>
&lt;h2 id="qué-ha-cambiado">¿Qué ha cambiado?
&lt;/h2>&lt;p>Afortunadamente hago copias de respaldo semanales de la configuración de pfSense, aparte tengo activada la opción de respaldo automático, en cierto modo, estaba protegido de un fallo catastrófico.&lt;/p>
&lt;p>Pero para evitarme otra sorpresa como esta, puse el &lt;em>widget&lt;/em> SMART Status en un lugar más visible del &lt;em>Dashboard&lt;/em>.&lt;/p>
&lt;p>Ahorita mismo estoy habilitando las notificaciones por correo electrónico que estan ocultas en el menú &lt;em>System - Advanced - Notifications&lt;/em>. Aunque no se si me prevengan de un fallo en el disco duro.&lt;/p>
&lt;p>El disco duro que puse es un gallito que espero que pase sus últimos años funcionando sin parar hasta que colapse, sólo que esta vez estaré mejor preparado.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Actualizar Manjaro, Failed to start Load Kernel Modules ¡Gulp!</title><link>https://linuxmanr4.com/2021/01/19/failed-to-start-load-kernel-modules-nvidia/</link><pubDate>Tue, 19 Jan 2021 22:31:15 +0000</pubDate><guid>https://linuxmanr4.com/2021/01/19/failed-to-start-load-kernel-modules-nvidia/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/01/pexels-photo-3764958.jpeg" alt="Featured image of post Actualizar Manjaro, Failed to start Load Kernel Modules ¡Gulp!" />&lt;p>Inicia el día, hay actualizaciones nuevas para Manjaro, voy por un café, todo transcurre con aparente normalidad, reinicio y en mi mente suena aquella canción muy popular en Tik Tok, esa de ¡Oh nooo, Oh nooo no no no no!.&lt;/p>
&lt;p>Era una de esas actualizaciones importantes. La estaba esperando desde el &lt;a class="link" href="https://xfce.org/about/news/?post=1608595200" target="_blank" rel="noopener"
>anuncio de la nueva versión de XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
así que cuando vi que estaba disponible la actualización ni tardo ni perezoso abrí la terminal para iniciar la actualización.&lt;/p>
&lt;p>Al tratarse de una actualización de muchos paquetes acostumbro reiniciar el sistema, fue cuando ví este bonito mensaje: [FAILED] Failed to start &lt;strong>Load Kernel Modules&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/01/failed-to-start-load-kernel-modules.jpg"
alt="Failed to start Load Kernel Modules">&lt;figcaption>
&lt;p>Failed to start Load Kernel Modules&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de recoger el cabello que se me cayó del susto hice lo acostumbrado, ir a los &lt;a class="link" href="https://forum.manjaro.org/" target="_blank" rel="noopener"
>foros de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para ver si alguien había tenido un problema similar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/01/anuncio-foros-manjaro.jpg"
alt="El anuncio en los foros de Manjaro explicando el problema con los drivers de nvidia.">&lt;figcaption>
&lt;p>El anuncio en los foros de Manjaro explicando el problema con los drivers de nvidia.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y no, no era el único, al parecer una buena cantidad de usuarios había presentado un problema similar al mío.&lt;/p>
&lt;h2 id="nvidia-lo-hizo-de-nuevo">Nvidia lo hizo de nuevo.
&lt;/h2>&lt;p>Bueno &lt;a class="link" href="https://linuxmanr4.com/2014/10/14/problemas-con-la-tarjeta-nvidia-al-actualizar-manjaro/" >Nvidia&lt;/a>
y el tiempo, todo parece indicar que el famoso fabricante de chips gráficos dejó de dar soporte a sus tarjetas más antiguas, mientras tanto el desarrollo del kernel continua dejando rezagados a los drivers.&lt;/p>
&lt;p>Afortunadamente tuve una combinación ganadora, mi equipo utiliza el &lt;strong>kernel 5.4&lt;/strong> y los drivers de &lt;strong>Nvidia 340xx&lt;/strong> y adelantándose a los problemas, el mero mero de Manjaro Philip Müller publicó una serie de instrucciones para compilar manualmente los drivers.&lt;/p>
&lt;h2 id="las-instrucciones">Las instrucciones.
&lt;/h2>&lt;p>A continuación voy a transcribir las instrucciones, no esta de más tenerlas a la mano por si vuelve a ocurrir una situación similar.&lt;/p>
&lt;p>Lo primero que hice fue teclear &lt;strong>Ctrl + Alt + F2&lt;/strong> para poder abrir una terminal en mi equipo.&lt;/p>
&lt;h3 id="preparar-el-equipo-para-compilar-los-drivers">Preparar el equipo para compilar los drivers.
&lt;/h3>&lt;p>Instalar las herramientas de desarrollo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S git base-devel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y los headers del kernel (necesarios para la compilación)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S $(mhwd-kernel -li | grep &amp;#39;*&amp;#39; | cut -d &amp;#39; &amp;#39; -f5 | awk &amp;#39;{print $0,&amp;#34;-headers&amp;#34;}&amp;#39; | sed s&amp;#39;/ //&amp;#39;g)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="descargar-el-código">Descargar el código.
&lt;/h3>&lt;p>Es importante aclarar que este código es para los drivers &lt;strong>340xx&lt;/strong> de Nvidia y para los kernels &lt;strong>5.4&lt;/strong> al &lt;strong>5.10&lt;/strong>&lt;/p>
&lt;p>Hice una carpeta nueva que llamé &lt;em>nvidia-drivers&lt;/em> y en ella ejecuté los siguientes comandos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">git clone https://gitlab.manjaro.org/packages/extra/nvidia-340xx-utils.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git clone https://gitlab.manjaro.org/packages/multilib/lib32-nvidia-340xx-utils.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git clone https://github.com/philmmanjaro/nvidia-340xx-dkms.git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="a-compilar">A compilar
&lt;/h3>&lt;p>Ahora si a compilar, basta con seguir las instrucciones que aparecen en la pantalla.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cd nvidia-340xx-utils &amp;amp;&amp;amp; makepkg -si
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cd ../lib32-nvidia-340xx-utils &amp;amp;&amp;amp; makepkg -si
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cd ../nvidia-340xx-dkms &amp;amp;&amp;amp; makepkg -si
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Una vez terminada la ejecución de cada uno de estos comandos solo tuve que reiniciar y hacer changuitos.&lt;/p>
&lt;h2 id="lecciones-aprendidas">Lecciones aprendidas.
&lt;/h2>&lt;p>Todo parece que me voy a quedar anclado a la versión 5.4 del kernel, probablemente me pueda mover hasta la versión 5.10 pero ahorita no quiero tentar mucho a la suerte.&lt;/p>
&lt;p>No estoy seguro si en la próxima actualización voy a tener que ejecutar los mismos pasos, pero gracias a este artículo los podré consultar desde mi celular y aplicarlos en caso de ser necesario.&lt;/p>
&lt;p>Este año cumplo 8 años con la mi &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >instalación de Manjaro&lt;/a>
, desde el 8 de enero del 2013 solo lo he actualizado, no sin algunos sustos como este, pero siempre me he recuperado. Pero todo parece indicar que tarde o temprano será necesario cambiar de equipo. Veamos hasta donde llega.&lt;/p>
&lt;h4 id="referencias">Referencias.
&lt;/h4>&lt;ul>
&lt;li>&lt;a class="link" href="https://xfce.org/about/news/?post=1608595200" target="_blank" rel="noopener"
>Anuncio de la nueva versión de XFCE 4.16&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://forum.manjaro.org/t/stable-update-2021-01-19-kernels-xfce-plasma-pulseaudio-pipewire-mesa-firefox-thunderbird-kde-apps/49391" target="_blank" rel="noopener"
>[Stable Update] 2021-01-19 - Kernels, XFCE, Plasma, PulseAudio, Pipewire, Mesa, Firefox, Thunderbird, KDE Apps&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://nvidia.custhelp.com/app/answers/detail/a_id/3142" target="_blank" rel="noopener"
>Support timeframes for Unix legacy GPU releases&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Wiki de Manjaro: &lt;a class="link" href="https://wiki.manjaro.org/index.php/Configure_Graphics_Cards" target="_blank" rel="noopener"
>Configure Graphics Cards&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Páginas de error 404 personalizadas en Pelican</title><link>https://linuxmanr4.com/2020/11/19/paginas-de-error-404-personalizadas-en-pelican/</link><pubDate>Thu, 19 Nov 2020 17:44:11 +0000</pubDate><guid>https://linuxmanr4.com/2020/11/19/paginas-de-error-404-personalizadas-en-pelican/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/11/404-img.jpg" alt="Featured image of post Páginas de error 404 personalizadas en Pelican" />&lt;p>Cuando comencé mi aventura con el generador de contenido estático &lt;a class="link" href="https://blog.getpelican.com/" target="_blank" rel="noopener"
>Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
cometí muchas equivocaciones, por eso al principio me aparecían muchos &lt;a class="link" href="https://es.wikipedia.org/wiki/HTTP_404" target="_blank" rel="noopener"
>errores 404&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de páginas o recursos no encontrados.&lt;/p>
&lt;p>Al principio, el servidor web me mostraba una página de error genérica, pero lo mejor es ofrecer una página personalizada que ofrezca algún tipo de ayuda.&lt;/p>
&lt;p>En mi caso, puse un enlace al &lt;strong>archivo general&lt;/strong> donde están enlazados todos los artículos del sitio y un cuadro de búsqueda.&lt;/p>
&lt;p>Pero vámonos por pasos.&lt;/p>
&lt;h2 id="crear-la-página-personalizada">Crear la página personalizada
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/11/404-md.jpg"
alt="Edición del archivo 404.md">&lt;figcaption>
&lt;p>Edición del archivo 404.md&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la carpeta &lt;strong>content&lt;/strong> / &lt;strong>pages&lt;/strong> de mi proyecto hice un archivo con el nombre &lt;strong>404.md&lt;/strong> con un contenido muy similar a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Title: Archivo no encontrado
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Status: hidden
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Save_as: 404.html
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">El artículo solicitado no pudo ser localizado.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Tal vez quiera revisar el [Archivo general](https://centaurodelnorte.com/archivo.html).
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten los encabezados, son importantes.&lt;/p>
&lt;h2 id="informar-al-servidor-web">Informar al servidor web
&lt;/h2>&lt;p>Ahora hay que informarle al servidor web que existe una página personalizada para mostrar cuando existan estos errores.&lt;/p>
&lt;p>Si estan usando un servidor web Apache o similar (en mi caso uso el servidor &lt;a class="link" href="https://www.litespeedtech.com/products/litespeed-web-server" target="_blank" rel="noopener"
>LiteSpeed&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
). Para eso hay que modificar el archivo &lt;strong>.htaccess&lt;/strong> (o crearlo si no existe) y agregar esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Error 404
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ErrorDocument 404 /404.html
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso será suficiente.&lt;/p>
&lt;h2 id="un-tip-adicional">Un tip adicional
&lt;/h2>&lt;p>Esto lo descubrí un poco a la mala. El archivo &lt;strong>.htaccess&lt;/strong> no se genera automáticamente en &lt;em>Pelican&lt;/em> a menos que así lo configuren.&lt;/p>
&lt;p>Para eso, hice un archivo llamado &lt;strong>htaccess.txt&lt;/strong> en la carpeta &lt;strong>content&lt;/strong> / &lt;strong>assets&lt;/strong> con todas las modificaciones que le he hecho a mi archivo &lt;strong>.htaccess&lt;/strong> (incluyendo la anterior).&lt;/p>
&lt;p>En el archivo de configuración de Pelican me encontré con el diccionario &lt;a class="link" href="https://docs.getpelican.com/en/stable/settings.html?highlight=EXTRA_PATH_METADATA#metadata" target="_blank" rel="noopener"
>EXTRA_PATH_METADATA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y agregué el archivo &lt;strong>htaccess.txt&lt;/strong> como se muestra a continuación.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">EXTRA_PATH_METADATA = {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;assets/robots.txt&amp;#39;: {&amp;#39;path&amp;#39;: &amp;#39;robots.txt&amp;#39;},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;assets/favicon.ico&amp;#39;: {&amp;#39;path&amp;#39;: &amp;#39;favicon.ico&amp;#39;},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;assets/htaccess.txt&amp;#39;: {&amp;#39;path&amp;#39;: &amp;#39;.htaccess&amp;#39;},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa forma toma el contenido del archivo &lt;strong>htaccess.txt&lt;/strong> y lo copia correctamente como un archivo &lt;strong>.htaccess&lt;/strong> en la carpeta &lt;strong>output&lt;/strong> del proyecto.&lt;/p>
&lt;p>Y lo seguirá haciendo cada vez que genere el contenido estático de mi sitio.&lt;/p>
&lt;p>¿Le han dado un vistazo a Pelican? en estos días de tanta amenaza informática vale la pena considerar este tipo de herramientas.&lt;/p>
&lt;p>¡Hasta la próxima!.&lt;/p></description></item><item><title>Error al obtener la información del descriptor del archivo</title><link>https://linuxmanr4.com/2020/11/03/error-al-obtener-la-informacion-del-descriptor-del-archivo/</link><pubDate>Tue, 03 Nov 2020 17:55:25 +0000</pubDate><guid>https://linuxmanr4.com/2020/11/03/error-al-obtener-la-informacion-del-descriptor-del-archivo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/11/toner-581905_1280.jpg" alt="Featured image of post Error al obtener la información del descriptor del archivo" />&lt;p>El mes pasado me topé con un problema al intentar copiar archivos a carpetas compartidas en Windows o carpetas en equipos Linux configuradas con &lt;a class="link" href="https://en.wikipedia.org/wiki/Server_Message_Block" target="_blank" rel="noopener"
>CIFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El error dice más o menos así:&lt;/p>
&lt;blockquote>
&lt;p>Error al obtener la información del descriptor del archivo.&lt;/p>
&lt;p>Resultado numérico fuera de rango.&lt;/p>
&lt;p>¿Quiere omitirlo?&lt;/p>&lt;/blockquote>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/11/error.png"
alt="Mensaje de error de Thunar: Error al obtener la información del descriptor del archivo">&lt;figcaption>
&lt;p>Mensaje de error de Thunar: Error al obtener la información del descriptor del archivo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y no importaba que administrador de archivos utilizara para copiar, lo mismo ocurría con Nautilus, Nemo o Thunar.&lt;/p>
&lt;p>Esto no ocurre al hacer copias entre carpetas de mi mismo equipo, solamente ocurre con carpetas compartidas con algún protocolo de Windows usando un &lt;strong>administrador de archivos&lt;/strong>.&lt;/p>
&lt;p>Sin embargo, podía copiar archivos sin problemas usando la terminal con cp, rsync o &lt;a class="link" href="https://midnight-commander.org/" target="_blank" rel="noopener"
>midnight commander&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un veterano disponible en la mayoría de las distribuciones linux.&lt;/p>
&lt;p>Al principio, creí que era un problema relacionado con este otro &lt;a class="link" href="https://linuxmanr4.com/2019/12/18/error-al-unir-el-archivo-un-problema-al-copiar-archivos-grandes-a-una-usb/" >Error al unir el archivo&lt;/a>
, pero no es el caso.&lt;/p>
&lt;p>En la búsqueda de una solución, se recomendaba darle un &lt;em>downgrade&lt;/em> al paquete &lt;strong>glibs2&lt;/strong> a la versión anterior, en este caso la número 2.64.5 pero eso me provocó problemas durante el arranque de mi equipo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/11/downgrade-glib2.jpg"
alt="Hacer un downgrade no solucionó el problema.">&lt;figcaption>
&lt;p>Hacer un downgrade no solucionó el problema.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en este hilo &lt;a class="link" href="https://forum.manjaro.org/t/glib2-v2-66-breaks-cifs-operation-in-filemanager/29457" target="_blank" rel="noopener"
>Glib2 V2.66 breaks cifs operation in filemanager&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
después de revertir este cambio pude iniciar mi equipo y dejé por la paz durante un tiempo la caza de este bug.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Pasó un mes sin mucho movimiento, de hecho ya me había acostumbrado a darle la vuelta al problema usando &lt;em>midnight commander&lt;/em> hasta que hubo comentarios nuevos en los foros de Manjaro ¡Por eso son importantes los foros!&lt;/p>
&lt;p>Después de que se identificó el problema al parecer ya está corregido en la siguiente versión.&lt;/p>
&lt;p>Mientras llega la versión actualizada a los mirrors de Manjaro pueden descargar la nueva versión de &lt;a class="link" href="https://www.archlinux.org/packages/core/x86_64/glib2/download/" target="_blank" rel="noopener"
>glibs 2.66&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para instalarlo manualmente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">pacman&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">U&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">www&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">archlinux&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">packages&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">x86_64&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">glib2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">download&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esta es la solución que me ha funcionado ¡Hasta la próxima!&lt;/p></description></item><item><title>Error al hacer una copia con rsync: File exists (17)</title><link>https://linuxmanr4.com/2020/08/11/error-al-hacer-una-copia-con-rsync-file-exists-17/</link><pubDate>Tue, 11 Aug 2020 17:43:45 +0000</pubDate><guid>https://linuxmanr4.com/2020/08/11/error-al-hacer-una-copia-con-rsync-file-exists-17/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/08/copiar-archivos.jpg" alt="Featured image of post Error al hacer una copia con rsync: File exists (17)" />&lt;p>Uso Linux la mayor parte del tiempo pero en ocasiones tengo que arrancar una máquina virtual con Windows para poder realizar algunas tareas.&lt;/p>
&lt;p>Ya saben como es esto, empiezas con un disco duro de 10 GB, que luego resulta que no es suficiente. Aumentas el tamaño a 20 GB y para no hacer el cuento largo, actualmente uno de los discos duros virtuales es de 30 GB.&lt;/p>
&lt;p>Todas las semanas hago una copia simple de los archivos &lt;em>.vdi&lt;/em> a manera de respaldo con &lt;a class="link" href="https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/" >rsync&lt;/a>
, y todo estaba funcionado perfectamente hasta que me empezaron a salir una serie de errores.&lt;/p>
&lt;p>Después de hacer el último ajuste de tamaño empecé a ver un problema al copiar los archivos con rsync del tipo &lt;strong>File exists (17)&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sent 134,815,726 bytes received 6,719 bytes 1,057,430.94 bytes/sec
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">total size is 126,432,193,215 speedup is 937.77
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sending incremental file list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">10GB.vdi
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 10,716,446,720 100% 11.16MB/s 0:15:15 (xfr#1, to-chk=15/18)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Windows 7 Ultimate.vdi
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 32,138,960,896 100% 11.40MB/s 0:44:49 (xfr#2, to-chk=6/18)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rsync: [receiver] rename &amp;#34;/respaldos/virtualbox/.10GB.vdi.G0Vx0b&amp;#34; -&amp;gt; &amp;#34;10GB.vdi&amp;#34;: File exists (17)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rsync: [receiver] rename &amp;#34;/respaldos/virtualbox/.Windows 7 Ultimate.vdi.tdPBjd&amp;#34; -&amp;gt; &amp;#34;Windows 7 Ultimate.vdi&amp;#34;: File exists (17)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sent 42,865,871,109 bytes received 350 bytes 11,659,423.76 bytes/sec
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">total size is 192,383,238,656 speedup is 4.49
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1287) [sender=3.2.2]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="buscando-una-solución">Buscando una solución
&lt;/h2>&lt;p>Me tomó un poco en encontrar una solución, primero por la falta de tiempo ocupado en otras tareas y segundo porque hacer una prueba se lleva su tiempo, en mi caso no es raro que se tarde más de 45 minutos en completar el respaldo.&lt;/p>
&lt;p>Intenté varias opciones con poco éxito. Intenté este consejo &lt;a class="link" href="https://lists.samba.org/archive/rsync/2006-May/015641.html" target="_blank" rel="noopener"
>rsync fails if it cannot stat destination file&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;blockquote>
&lt;p>Esto se debe a la utilización de un directorio temporal en un sistema de archivos diferente al del archivo de destino. En este caso, rsync intenta renombrar el archivo terminado en su lugar, pero si no puede, lo copia en su lugar y luego debe terminar de actualizar los permisos, la propiedad, etc. después de la copia. Si el archivo desaparece durante esta actualización, rsync se quejará de ello.&lt;/p>&lt;/blockquote>
&lt;p>Básicamente recomienda agregar el parámetro &lt;em>&amp;ndash;temp-dir&lt;/em> para que apunte a una carpeta &lt;strong>en el mismo disco duro que sirve como destino de los archivos&lt;/strong>.&lt;/p>
&lt;p>La instrucción quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">rsync -avuP --temp-dir=/respaldos/tmp /home/usuario/virtualbox/ /respaldos/virtualbox/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero no funcionó, parece que justo al finalizar la copia ocurre el error. Simplemente no puede renombrar el archivo temporal a el archivo final, por eso tuve que buscar otra opción.&lt;/p>
&lt;h2 id="las-opciones-inplace-y-whole-file">Las opciones inplace y whole-file
&lt;/h2>&lt;p>La solución que mejor me ha funcionado es combinar los parámetros &lt;a class="link" href="https://linux.die.net/man/1/rsync" target="_blank" rel="noopener"
>inplace&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y whole-file. Que ví aquí: &lt;a class="link" href="https://stackoverflow.com/questions/22626214/rsync-without-creating-hidden-file-in-destination" target="_blank" rel="noopener"
>Rsync without creating hidden file in destination&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;strong>inplace&lt;/strong> evita la creación de un archivo temporal, trabaja directamente con el archivo de destino. De esa forma evito ese problema al final de la copia durante la transición de archivo temporal a archivo definitivo.&lt;/p>
&lt;p>&lt;strong>whole-file&lt;/strong> copia todo el archivo, lo vi en un consejo sobre copias de archivos grandes. Sospecho que todo mi problema tiene algo que ver con &lt;a class="link" href="https://linuxmanr4.com/2019/12/18/error-al-unir-el-archivo-un-problema-al-copiar-archivos-grandes-a-una-usb/" >Error al unir el archivo, un problema al copiar archivos grandes a una USB.&lt;/a>
Error que todavía me ocurre pero tengo una esperanza de solución con el kernel 5.8.&lt;/p>
&lt;p>Dicho esto, la instrucción quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">rsync -avuPW --inplace /home/usuario/virtualbox/ /respaldos/virtualbox/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con este ajuste parece que todo ha vuelto a la normalidad y el error File exists (17) ha desaparecido.&lt;/p>
&lt;p>De todos modos estaré al pendiente de los resultados del &lt;em>script&lt;/em> de respaldos por si aparece este u otros errores.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Convertir archivos JPG a WebP con Python</title><link>https://linuxmanr4.com/2020/07/30/convertir-archivos-jpg-a-webp-con-python/</link><pubDate>Thu, 30 Jul 2020 16:28:11 +0000</pubDate><guid>https://linuxmanr4.com/2020/07/30/convertir-archivos-jpg-a-webp-con-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/07/acuarelas-moran-lcNOgk19b7w-unsplash.jpg" alt="Featured image of post Convertir archivos JPG a WebP con Python" />&lt;p>Ahora les quiero compartir un pequeño programa en Python para convertir archivos JPG a WebP.&lt;/p>
&lt;p>Primero que nada les ofrezco una disculpa a mis 4 lectores, con la depresión de la pandemia no dan muchas ganas de escribir, pero esto ya está durando mucho y no se puede estar tanto tiempo preocupado, lo que sigue es un proceso de adaptación a la nueva realidad y ni modo ¡A darle átomos!&lt;/p>
&lt;p>Decidí dejar de estar ocioso y aprender una nueva habilidad. Desde hace tiempo me ha estado haciendo ojitos &lt;a class="link" href="https://blog.getpelican.com/" target="_blank" rel="noopener"
>Pelican&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un generador de sitios web que utiliza &lt;a class="link" href="https://linuxmanr4.com/category/lenguajes-de-programacion/python/" >Python&lt;/a>
(¡Obvio!).&lt;/p>
&lt;p>Migrar este blog sería algo en exceso complicado (aunque no lo descarto), por eso decidí hacer pruebas con algo más pequeño, mi otro blog &lt;a class="link" href="https://centaurodelnorte.com/" target="_blank" rel="noopener"
>Centauro del Norte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Las ventajas son muchas, el sitio generado no requiere una base de datos, tienes un mayor control de todos los aspectos del sitio, carga mucho más rápido, aunque eso si, requiere de más conocimientos técnicos.&lt;/p>
&lt;h2 id="webp-el-formato-gráfico-de-google">WebP el formato gráfico de Google
&lt;/h2>&lt;p>Durante la migración quise probar algo nuevo, cambiar todos los archivos de &lt;strong>JPG&lt;/strong> a &lt;a class="link" href="https://developers.google.com/speed/webp/" target="_blank" rel="noopener"
>WebP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. En general son archivos más pequeños, aunque he tenido resultados mixtos en este punto. Dicen que tienen una carga más rápida y aparentemente es cierto. Lo he probado en Chrome y con Firefox y las imágenes aparece como de rayo.&lt;/p>
&lt;p>Sin embargo, convertir las imágenes no era algo sencillo. Wordpress guarda todas las imágenes en una carpeta que se llama &lt;strong>uploads&lt;/strong> y para conservar algo de orden almacena los archivos en subcarpetas de año y mes.&lt;/p>
&lt;p>Probablemente hay otras formas de abordar este problema pero a mi se me ocurrió hacer un programa en Python inspirado en programas que ya había hecho para otros fines.&lt;/p>
&lt;p>Lo primero es establecer un directorio de trabajo, luego hacer un barrido a esa carpeta y sus subcarpetas.&lt;/p>
&lt;p>Si encuentra un archivo JPG inicia una conversión y genera un archivo del mismo nombre pero con extensión WebP.&lt;/p>
&lt;p>Veamos el código.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PIL&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">carpeta_raiz&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;/carpeta/de/trabajo/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Localizar los archivos jpg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">root&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">dirs&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">files&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">walk&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">carpeta_raiz&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">file&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">endswith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;.jpg&amp;#34;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">path&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">root&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">file&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">archivo_nuevo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">archivo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">replace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;.webp&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Convertirlos a WebP&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">im&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Image&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">convert&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;RGB&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">im&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo_nuevo&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;webp&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo_nuevo&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;¡Trabajo terminado!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como pueden ver es un código muy sencillo, se puede adaptar para otro tipo de conversiones sin problemas.&lt;/p>
&lt;p>Una vez que tuve los archivos WebP, lo único que tuve que hacer es una búsqueda y reemplazo en los archivos &lt;a class="link" href="https://es.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener"
>markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que sirven para generar los artículos del sitio.&lt;/p>
&lt;p>Ejemplos los pueden ver en: &lt;a class="link" href="https://centaurodelnorte.com/ex-hacienda-la-loma-cuna-de-la-division-del-norte/" target="_blank" rel="noopener"
>Ex Hacienda La Loma, cuna de la División del Norte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y en &lt;a class="link" href="https://centaurodelnorte.com/mercado-municipal-general-francisco-villa/" target="_blank" rel="noopener"
>Mercado Municipal General Francisco Villa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ambos artículos contienen una buena cantidad de imágenes en formato WebP y creo que tienen un tiempo de carga mucho más que razonable. Bueno, eso digo yo, porque después de la primer carga entran en el juego los cachés de los navegadores.&lt;/p>
&lt;p>Espero que les sea de utilidad y procuraré escribir más seguido, que también a mi me hace falta.&lt;/p></description></item><item><title>Mat2 una herramienta para eliminar los metadatos de los archivos</title><link>https://linuxmanr4.com/2020/06/18/mat2-una-herramienta-para-eliminar-los-metadatos-de-los-archivos/</link><pubDate>Thu, 18 Jun 2020 15:28:11 +0000</pubDate><guid>https://linuxmanr4.com/2020/06/18/mat2-una-herramienta-para-eliminar-los-metadatos-de-los-archivos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/markus-spiske-qjnAnF0jIGk-unsplash.jpg" alt="Featured image of post Mat2 una herramienta para eliminar los metadatos de los archivos" />&lt;p>Hace unos días vimos en los noticieros nacionales un lamentable y penoso intento de cortina de humo con la aparición de un documento de origen y autenticidad dudosos en la que se destapaba un Bloque Opositor Amplio, el famoso &lt;a class="link" href="https://www.excelsior.com.mx/opinion/leo-zuckermann/el-boa/1387271" target="_blank" rel="noopener"
>BOA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Una simple inspección de los metadatos del archivo indicaron que el origen del documento era interno, dentro del mismo gobierno federal. Y por eso ya no se ha hablado del tema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/metadatos-del-documento-BOA.cleaned.jpg">
&lt;/figure>
&lt;p>Sin embargo, este oso mediatico nos da pie para tratar un tema importante, los metadatos.&lt;/p>
&lt;h2 id="que-son-los-metadatos">¿Que son los metadatos?
&lt;/h2>&lt;p>Los &lt;strong>metadatos&lt;/strong> es información adicional incluida en los archivos que responden a preguntas básicas como Quien, Cuando, Donde y Como fue creado un archivo.&lt;/p>
&lt;p>Probablemente los metadatos más conocidos sean los de las fotografías o la información &lt;a class="link" href="https://es.wikipedia.org/wiki/Exchangeable_image_file_format" target="_blank" rel="noopener"
>Exif&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Que nos dice que cámara usaste (a veces incluye hasta el número de serie de la cámara), en que condiciones, en donde (si tienes activada la opción del GPS), etc.&lt;/p>
&lt;p>Estos metadatos nos ayudan a organizar los archivos, buscarlos o simplemente, rastrear su origen.&lt;/p>
&lt;p>Como ejemplo hice un archivo PDF usando el programa Writer de LibreOffice.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/lorem%5Fipsum%5Fpdf.png">
&lt;/figure>
&lt;p>Como pueden ver en la imagen, se pueden ver los detalles de la fecha y hora de creación del archivo, las tipografías utilizadas y con que programa se hizo.&lt;/p>
&lt;h2 id="mat-metadata-anonymisation-toolkit">MAT (Metadata Anonymisation Toolkit)
&lt;/h2>&lt;p>MAT ya tiene tiempo en linux, pero ahora hay una versión 2 en beta que vale la pena probar.&lt;/p>
&lt;p>El propósito de &lt;a class="link" href="https://0xacab.org/jvoisin/mat2" target="_blank" rel="noopener"
>mat2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es muy simple, eliminar los metadatos.&lt;/p>
&lt;p>Soporta una gran cantidad de tipos de archivos: avi, bmp, css, epub/ncx, flac, gif, jpeg, m4a/mp2/mp3/…, mp4, odc/odf/odg/odi/odp/ods/odt/…, off/opus/oga/spx/…, pdf,
png, ppm, pptx/xlsx/docx/…, svg/svgz/…, tar/tar.gz/tar.bz2/tar.xz/…, tiff, torrent, wav, wmv, zip.&lt;/p>
&lt;p>Pero hace la aclaración de que no es perfecto.&lt;/p>
&lt;p>En mi experimento se puede ver que efectivamente, eliminó una buena cantidad de la información almacenada en los metadatos, pero adicionalmente, vi un incremento en el tamaño del archivo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/pdf%5Flimpio.png">
&lt;/figure>
&lt;p>Al parecer, convirtió cada hoja en un archivo jpg de calidad media, de esa forma, también se eliminó la información de las tipografías utilizadas en el documento.&lt;/p>
&lt;p>Use esta herramienta sabiamente, no le vayan a desbaratar su compló en 3 patadas.&lt;/p></description></item><item><title>Cambiar el lector de libros predeterminado de Calibre</title><link>https://linuxmanr4.com/2020/06/16/cambiar-el-lector-de-libros-predeterminado-de-calibre/</link><pubDate>Tue, 16 Jun 2020 15:06:17 +0000</pubDate><guid>https://linuxmanr4.com/2020/06/16/cambiar-el-lector-de-libros-predeterminado-de-calibre/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/eugenio-mazzone-6ywyo2qtaZ8-unsplash.jpg" alt="Featured image of post Cambiar el lector de libros predeterminado de Calibre" />&lt;p>Calibre es una de esas joyas del software libre que permite organizar nuestra biblioteca de libros electrónicos, pero su lector de libros es bastante feo, la verdad.&lt;/p>
&lt;p>Nadie niega las bondades de &lt;a class="link" href="https://calibre-ebook.com/" target="_blank" rel="noopener"
>Calibre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y no habría buscado alternativas hasta que me topé con &lt;a class="link" href="https://johnfactotum.github.io/foliate/" target="_blank" rel="noopener"
>Foliate&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que siendo honesto le da 3 vueltas a &lt;strong>ebook-viewer&lt;/strong>, el lector de libros electrónicos incluido en Calibre.&lt;/p>
&lt;p>Las ventajas principales de Foliate son principalmente visuales, la forma en que se muestra un libro es importante.&lt;/p>
&lt;p>Por mencionar solo algunas, puedo elegir el tipo de letra, resaltar textos con comentario, un diccionario y también traducir el texto resaltado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/foliate-epub.jpg"
alt="Foliate">&lt;figcaption>
&lt;p>Foliate&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="como-cambiar-el-lector-predeterminado">Como cambiar el lector predeterminado.
&lt;/h2>&lt;p>Navegar por las opciones de Calibre no es fácil, en mi mente esperaba ver algún cuadro de texto que me permitiera hacer el cambio como ocurre en muchos otros programas.&lt;/p>
&lt;p>Al final la solución fue algo indirecta.&lt;/p>
&lt;p>Primero establecí a Foliate como mi lector de libros predeterminado en &lt;a class="link" href="https://www.xfce.org/" target="_blank" rel="noopener"
>XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, eso es muy sencillo, aparece presionando el botón derecho sobre un libro y elijo a Foliate para que abra ese tipo de archivos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/foliate-como-lector-predeterminado.jpg"
alt="Foliate como lector predeterminado de archivos EPUB.">&lt;figcaption>
&lt;p>Foliate como lector predeterminado de archivos EPUB.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo segundo que hay que hacer es menos intuitivo. Hay que ir a &lt;strong>Preferencias&lt;/strong> - &lt;strong>Comportamiento&lt;/strong> y desactivar a &lt;strong>EPUB&lt;/strong> en donde dice &lt;em>Usar visor interno para&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/06/comportamiento-de-calibre.jpg"
alt="Quitar EPUB de la lista.">&lt;figcaption>
&lt;p>Quitar EPUB de la lista.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa forma, en lugar de usar &lt;em>ebook-viewer&lt;/em> para abrir los archivos EPUB usará el lector asociado con la extensión del &lt;a class="link" href="https://linuxmanr4.com/2009/11/18/lxde-un-entorno-de-escritorio-ligero/" >entorno de escritorio&lt;/a>
, en mi caso Foliate.&lt;/p>
&lt;p>Ahora si, todos contentos, libros organizados y visualmente atractivos en la pantalla.&lt;/p>
&lt;h3 id="referencias">Referencias.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://manual.calibre-ebook.com/es/viewer.html#customizing-the-look-and-feel-of-your-reading-experience" target="_blank" rel="noopener"
>Documentación de Calibre en español&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>El libro &lt;a class="link" href="https://hnarayanan.github.io/springer-books/" target="_blank" rel="noopener"
>The Python Workbook&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo pueden descargar gratuitamente.&lt;/li>
&lt;/ul></description></item><item><title>Folding at home, mi computadora ayuda a investigar el COVID-19.</title><link>https://linuxmanr4.com/2020/04/16/folding-at-home-mi-computadora-ayuda-a-investigar-el-covid-19/</link><pubDate>Thu, 16 Apr 2020 16:32:15 +0000</pubDate><guid>https://linuxmanr4.com/2020/04/16/folding-at-home-mi-computadora-ayuda-a-investigar-el-covid-19/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/investigacion-covid-19.jpg" alt="Featured image of post Folding at home, mi computadora ayuda a investigar el COVID-19." />&lt;p>Son tiempos difíciles y el Covid-19 llegó para quedarse, no va a desaparecer de un día para otro. Es un enemigo invisible que está acechando constantemente. Aparte del distanciamiento social se pueden hacer otras cosas, por eso, un proyecto como folding at home se vuelve relevante.&lt;/p>
&lt;h2 id="que-es-folding-at-home">¿Que es folding at home?
&lt;/h2>&lt;p>El &lt;em>folding&lt;/em> se refiere a la forma en que la proteínas humanas se &lt;em>pliegan&lt;/em> en las células que componen su cuerpo. Dependemos de las proteínas para mantenernos sanos y se ensamblan por sí mismas al plegarse. Pero cuando se pliegan mal, puede haber serias consecuencias para la salud de una persona.&lt;/p>
&lt;p>El proyecto &lt;a class="link" href="https://foldingathome.org/" target="_blank" rel="noopener"
>Folding@home (FAH)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se dedica a comprender el plegamiento de las proteínas, las enfermedades que resultan de la falta de plegamiento y agregación de las proteínas y las nuevas formas de cálculo para desarrollar nuevos medicamentos en general.&lt;/p>
&lt;p>El problema es que esta investigación requiere mucho poder de cálculo. De forma similar al proyecto &lt;a class="link" href="https://linuxmanr4.com/2009/11/24/busqueda-de-inteligencia-extraterrestre-en-casa/" >SETI&lt;/a>
@Home, se le pide a los participantes que &amp;ldquo;donen&amp;rdquo; esa capacidad de sus computadoras personales en lugar de comprar una supercomputadora que son carísimas.&lt;/p>
&lt;p>El proceso es muy sencillo, el programa descarga un paquete de datos, lo procesa, regresa los resultados y pide un nuevo paquete para procesar ¡Simple!&lt;/p>
&lt;h2 id="cómo-se-instala">¿Cómo se instala?
&lt;/h2>&lt;p>Folding at home esta disponible para las 3 plataformas principales, Linux, Windows y Mac.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/folding-en-linux.png"
alt="Folding at home esta disponible en las principales distribuciones linux.">&lt;figcaption>
&lt;p>Folding at home esta disponible en las principales distribuciones linux.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Yo uso &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, así que estas instrucciones son para esta distribución, supongo que también funcionan con Arch.&lt;/p>
&lt;p>Para &lt;a class="link" href="https://linuxmanr4.com/2017/10/27/sin-espacio-yaourt/" >instalar el paquete&lt;/a>
nada como buscar el AUR.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt foldingathome
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/foldingathome-en-aur.png"
alt="folding at home en AUR.">&lt;figcaption>
&lt;p>folding at home en AUR.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Durante el proceso de instalación recomienda.&lt;/p>
&lt;blockquote>
&lt;p>Please cd to &lt;strong>/opt/fah/&lt;/strong> and execute &lt;strong>./FAHClient &amp;ndash;configure&lt;/strong>
as root to configure your settings. If you are using systemd,
then run &amp;ldquo;systemctl enable foldingathome.service&amp;rdquo; to enable
the folding service. If you would like join the Arch Linux
team, use team number 45032.&lt;/p>&lt;/blockquote>
&lt;p>Así que siguiendo las recomendaciones:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cd /opt/fah/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo ./FAHClient --configure
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo systemctl enable foldingathome.service
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo systemctl start foldingathome.service
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo systemctl status foldingathome.service
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El primer systemctl habilita el servicio, el segundo lo inicia y el tercero comprueba que este activo.&lt;/p>
&lt;h2 id="revisar-su-funcionamiento-y-configuración">Revisar su funcionamiento y configuración.
&lt;/h2>&lt;p>Si todo salio bien, al abrir la página &lt;a class="link" href="https://client.foldingathome.org/" target="_blank" rel="noopener"
>https://client.foldingathome.org/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
verán algo similar a esto:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/folding-equipo-manjaro.jpg"
alt="Panel de control de la aplicación.">&lt;figcaption>
&lt;p>Panel de control de la aplicación.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pueden participar de forma anónima o solicitar un &lt;a class="link" href="https://apps.foldingathome.org/paskey/create/" target="_blank" rel="noopener"
>passkey&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
El número de equipo para Manjaro es el &lt;strong>261159&lt;/strong>.&lt;/p>
&lt;p>Folding at home realiza investigación para varias enfermedades como Cáncer, Alzheimer y Parkinson. Si quieres ayudar específicamente para COVID-19 elige &lt;strong>&lt;em>Any disease&lt;/em>&lt;/strong> , en estos momentos tiene prioridad.&lt;/p>
&lt;p>Por último y dependiendo del equipo que tengas es probable que quieras hacer ajustes en la sección de &lt;strong>Power&lt;/strong> y &lt;strong>When&lt;/strong>. Mi máquina no es muy potente, al principio lo puse en &lt;em>&lt;strong>Medium&lt;/strong>&lt;/em> pero en esta opción vi que utilizaba mis 4 núcleos a full y me alentaba un poco la computadora.&lt;/p>
&lt;p>En &lt;strong>&lt;em>Light&lt;/em>&lt;/strong> solo hace uso de 1 núcleo (eso sí, al 100%) y parece que el desempeño de mi equipo es aceptable.&lt;/p>
&lt;p>Dejé que el servicio funcione todo el tiempo, si veo que afecta en algo lo cambiaré a que trabaje solamente cuando mi computadora este libre, en fin, ya veremos como se comporta.&lt;/p>
&lt;p>Ahora si, siento que estoy poniendo mi granito de arena.&lt;/p>
&lt;h2 id="si-tienen-problemas-">Si tienen problemas &amp;hellip;
&lt;/h2>&lt;p>Tengo mala suerte con temas relacionados con el COVID-19. Después de unos días de funcionar todo a la perfección hice una actualización de rutina de mis paquetes de AUR y algo se rompió tal y como pueden leer aquí.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/foldingathome-beta.png">
&lt;/figure>
&lt;p>La buena es que todo se soluciona sustituyendo &lt;strong>foldingathome&lt;/strong> por el paquete &lt;strong>foldingathome-beta&lt;/strong> y siguiendo básicamente las mismas instrucciones.&lt;/p></description></item><item><title>COVID-19 y Python para obtener información sobre la pandemia.</title><link>https://linuxmanr4.com/2020/03/19/coronavirus-python-pandemia/</link><pubDate>Thu, 19 Mar 2020 21:17:53 +0000</pubDate><guid>https://linuxmanr4.com/2020/03/19/coronavirus-python-pandemia/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/coronavirus-covid19.jpg" alt="Featured image of post COVID-19 y Python para obtener información sobre la pandemia." />&lt;p>En estos días no se habla de otra cosa que no sea del Coronavirus aka el COVID-19. Es prácticamente imposible que pasen 5 minutos sin ver una nota, meme, audio o canción relacionado con el tema.&lt;/p>
&lt;p>El colmo es que me enteré de que ya hicieron un módulo para &lt;a class="link" href="https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/" >Python&lt;/a>
que obtiene los datos de como va avanzando la pandemia en el mundo con gracias a la información proporcionada por la Universidad &lt;a class="link" href="https://coronavirus.jhu.edu/" target="_blank" rel="noopener"
>John Hopkins&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Trasteando un poco hice un pequeño programa para monitorear el avance del coronavirus en México. El programa muestra los casos confirmados, los muertos y la tasa de mortalidad en México y el mundo.&lt;/p>
&lt;h2 id="instalar-covid">Instalar covid
&lt;/h2>&lt;p>Para poder usar el módulo hay que instalarlo con pip.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pip install covid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El código es el siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">covid&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Covid&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">covid&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Covid&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">covid&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_data&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">casos_mexico&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">covid&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_status_by_country_name&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;mexico&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">confirmados_mexico&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">casos_mexico&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;confirmed&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">muertos_mexico&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">casos_mexico&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;deaths&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">fechahora&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">time&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">%a&lt;/span>&lt;span class="s2">, &lt;/span>&lt;span class="si">%d&lt;/span>&lt;span class="s2"> %b %Y %H:%M:%S %Z&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">time&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">localtime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">casos_mexico&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;last_update&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; MÉXICO&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; ========&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; Última actualización :&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fechahora&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; Casos confirmados : &lt;/span>&lt;span class="si">%i&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">confirmados_mexico&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; Muertos : &lt;/span>&lt;span class="si">%i&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">muertos_mexico&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tasa_letalidad_mexico&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">muertos_mexico&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">confirmados_mexico&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; Tasa de letalidad : &lt;/span>&lt;span class="si">%4.2f&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">tasa_letalidad_mexico&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">confirmed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">covid&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_total_confirmed_cases&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">deaths&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">covid&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_total_deaths&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tasa_letalidad_mundial&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">deaths&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="n">confirmed&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; Tasa de letalidad mundial : &lt;/span>&lt;span class="si">%4.2f&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">tasa_letalidad_mundial&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/python-covid-19-03-2020-13-12.gif">
&lt;/figure>
&lt;p>Como pueden ver el código es bien sencillo. Tuve más problemas en mostrar de forma correcta la fecha y hora de la última actualización que en consultar la información.&lt;/p>
&lt;p>Un programa como este puede ser muy útil para recolectar información e ir construyendo gráficas.&lt;/p>
&lt;p>El único problema que tengo es que no creo en las cifras oficiales. El sistema de salud mexicano viene de problemas serios de falta de medicamentos para tratamiento de niños con cáncer, cáncer de mama, falta de vacunas y un líder moral que cree que la mejor protección contra el coronavirus es un Detente del Sagrado Corazón de Jesús (no no es broma).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/detente-amlo-sagrado-corazon.jpg">
&lt;/figure>
&lt;p>En estos días se dio a conocer que el costo de una &lt;a class="link" href="https://web.archive.org/web/20201024005644/https://www.noticiasdelsoldelalaguna.com.mx/local/torreon/pruebas-de-coronavirus-cuestan-8-mil-pesos-en-torreon-4990630.html" target="_blank" rel="noopener"
>prueba para el COVID-19 ronda en los 8 mil pesos mexicanos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, así que no creo que este gobierno con su &amp;ldquo;austeridad republicana&amp;rdquo; &lt;em>(porque si hay dinero pero para otras cosas cof dos bocas cooof tren maya cooooof Santa Lucía cooof camionetas para la guardia nacional y recontra cooof)&lt;/em> tenga la intención o el compromiso de aplicar pruebas a una población que todos los años se enfrenta a influenza, AH1N1, zika, chikunguña, dengue, sarampión o envenenamiento súbito por plomo &lt;em>(o sea unos buenos balazos)&lt;/em>. Pero en fin, eso es otro tema.&lt;/p>
&lt;p>Por cierto, ¿Alguien sabe donde venden esos Detente? es para una investigación.&lt;/p>
&lt;h2 id="covidify">Covidify
&lt;/h2>&lt;p>&lt;strong>Actualización 4-abr-2020&lt;/strong>. Lamentablemente el módulo &lt;strong>covid&lt;/strong> dejó de funcionar hace un par de días (espero que no se haya enfermado). Y al estar buscando alguna solución di con &lt;strong>Covidify&lt;/strong> (ya no disponible en github) que hace un mucho mejor trabajo que el módulo anterior.&lt;/p>
&lt;p>Extrae la información, hace gráficas y lo entrega todo en un resumen en Excel (se puede abrir en LibreOffice).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/mexico-covid19-20200403.png"
alt="Resumen de datos para México sobre el COVID19.">&lt;figcaption>
&lt;p>Resumen de datos para México sobre el COVID19.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/Mexico%5Fconfirmed%5Fcases%5Fstacked%5Fbar.png">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/Mexico%5Fconfirmed%5Ftrendline.png">
&lt;/figure>
&lt;p>Para utilizarlo primero tiene que instalar covidify:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pip install covidify
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y directamente desde la terminal iniciar la recolección de datos. En mi caso fue algo así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">covidify run --country=&amp;#34;Mexico&amp;#34; --output=&amp;#34;/directorio/de/salida/&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En el directorio de salida que especifiquen se van a encontrar con todos los archivos que generó el programa, pero el resumen están en el archivo en Excel.&lt;/p>
&lt;p>Y hoy que estuve analizando los datos, parece que hay menos enfermos de COVID19, o es eso, o se les terminaron las pruebas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/Mexico%5Fcurrently%5Finfected%5Fbar.png">
&lt;/figure>
&lt;p>Recuerden seguir las recomendaciones. Quedarse en casa, lavarse frecuentemente las manos, evitar lugares concurridos y guardar la sana distancia.&lt;/p></description></item><item><title>Notable, un programa para tomar notas usando markdown</title><link>https://linuxmanr4.com/2020/03/12/notable-un-programa-para-tomar-notas-usando-markdown/</link><pubDate>Thu, 12 Mar 2020 21:29:48 +0000</pubDate><guid>https://linuxmanr4.com/2020/03/12/notable-un-programa-para-tomar-notas-usando-markdown/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/Notable-Ejemplo-Lorem-Ipsum.jpg" alt="Featured image of post Notable, un programa para tomar notas usando markdown" />&lt;p>Hoy voy a comentarles sobre Notable, un editor de notas que utiliza &lt;a class="link" href="https://es.wikipedia.org/wiki/Markdown" target="_blank" rel="noopener"
>markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>A veces cuando hago una investigación tomo notas en un archivo de texto y generalmente uso markdown para darle un poco de formato. Todo lo escrito lo guardaba en una carpeta, incluyendo las imágenes, el material adicional y eso era todo.&lt;/p>
&lt;p>Bueno pues Notable hace todo eso pero mucho mejor. Notable organiza mis anotaciones cronológicamente, le puedo agregar etiquetas, archivos agregados como &lt;em>attachments&lt;/em>, su editor es de primer nivel con una interfaz realmente simple.&lt;/p>
&lt;p>Me gustó el hecho de que todo lo que escriba se almacena en la carpeta que yo elija como archivos con extensión md, así que lo puedo abrir con cualquier editor de textos o con un editor de markdown más especializado como &lt;a class="link" href="https://typora.io/" target="_blank" rel="noopener"
>Typora&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="lo-mejor">Lo mejor
&lt;/h2>&lt;p>Llevo un mes trabajando con Notable y tengo que decir que su buscador es muy bueno. Aunque existen las etiquetas y la posibilidad de ordenar las notas de forma cronológica su buscador &lt;em>fuzzy&lt;/em> es la onda.&lt;/p>
&lt;p>Un buscador &lt;em>fuzzy&lt;/em> no hace búsquedas exactas, va entregando resultados aunque no exista una coincidencia exacta y eso ayuda mucho a la hora de buscar entre un montón de archivos.&lt;/p>
&lt;p>Otro punto bueno es su acordeón de &lt;a class="link" href="https://linuxmanr4.com/2014/01/02/haroopad-otro-editor-con-soporte-para-markdown/" >Markdown&lt;/a>
. Digo, se lo básico, pero si quiero hacer una tabla por ejemplo, necesito algo de ayuda. Simplemente le doy un vistazo a la &lt;em>cheatsheet&lt;/em>, copio el código y lo adapto a mis necesidades.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/el-acordeon-de-markdown-siempre-a-la-mano.png"
alt="La cheatsheet de markdown.">&lt;figcaption>
&lt;p>La cheatsheet de markdown.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con markdown es posible generar archivos estructurados y visualmente atractivos. Así que se agradece poder exportarlos fácilmente a PDF para compartirlos con otras personas, enviarlos por correo o simplemente imprimirlos.&lt;/p>
&lt;h2 id="lo-raro">Lo raro
&lt;/h2>&lt;p>Tiene una opción para compartir que en un principio no me quedó del todo clara. Para probarla hice un documento de prueba y lo que hace es copiar el documento a un sitio web del mismo notable. A cambio me entrega un enlace que puedo pegar en una conversación o mandarla por correo. Suena práctico para algunos casos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/compartir-archivos-notable.jpg"
alt="Un ejemplo de un archivo compartido en notable.">&lt;figcaption>
&lt;p>Un ejemplo de un archivo compartido en notable.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="lo-que-le-falta-a-notable">Lo que le falta a Notable.
&lt;/h2>&lt;p>Me gustaría un corrector ortográfico. Por ejemplo, estoy escribiendo este artículo en el mismo notable y tengo que esperar a publicarlo en Wordpress para poder darle una revisadita, siempre hay una tecla que se barre, ya saben &lt;a class="link" href="http://titivillus.es/in-culpa-est/" target="_blank" rel="noopener"
>Titivillus in culpa est&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Por el momento estoy muy a gusto usando Notable. Mis anotaciones están a la mano, busco la información rápidamente y hacer correcciones es muy simple. No puedo pedir más.&lt;/p>
&lt;p>¿Ustedes que programa usan para guardar sus notas?&lt;/p></description></item><item><title>Peppermint y SliTaz, Linux ligero para equipos viejitos y no tan viejitos.</title><link>https://linuxmanr4.com/2020/02/24/peppermint-y-slitaz-linux-ligero-para-equipos-viejitos-y-no-tan-viejitos/</link><pubDate>Mon, 24 Feb 2020 18:54:27 +0000</pubDate><guid>https://linuxmanr4.com/2020/02/24/peppermint-y-slitaz-linux-ligero-para-equipos-viejitos-y-no-tan-viejitos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/instalando-peppermint.jpg" alt="Featured image of post Peppermint y SliTaz, Linux ligero para equipos viejitos y no tan viejitos." />&lt;p>Hace poco escribí sobre mi pequeña lapita &lt;a class="link" href="https://linuxmanr4.com/2010/10/05/acer-aspire-one-ao751h-con-jolicloud/" >Acer Aspire One&lt;/a>
(aka &lt;a class="link" href="https://linuxmanr4.com/2012/05/21/crunchbang-linux-en-mi-acer-ao751h/" >AO751H&lt;/a>
) y como había regresado a la vida &lt;a class="link" href="https://linuxmanr4.com/2019/11/14/resucitando-a-jolios-levantate-y-anda/" >reinstalandole JoliOS&lt;/a>
.&lt;/p>
&lt;blockquote>
&lt;p>Me encanta el olor a distro nueva por la mañana.&lt;/p>&lt;/blockquote>
&lt;p>Pero aunque el desempeño gráfico mejoró mucho, en realidad no la uso para entretenimiento y durante el experimento quedó pendiente el tema de las conexiones seguras al abrir algunos sitios (entre ellos mi blog).&lt;/p>
&lt;h2 id="slitaz-una-distro-súper-mínima">SliTaz una distro súper mínima.
&lt;/h2>&lt;p>Así que si era un tema pendiente. En twitter me movieron el tapete con una distribución súper minimalista que se llama &lt;a class="link" href="http://www.slitaz.org/es/" target="_blank" rel="noopener"
>SliTaz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
a la que le vi bastantes posibilidades.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2020/02/SliTaz-Menu.jpg" >&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2020/02/SliTaz-Menu.jpg?ssl=1"
loading="lazy"
>&lt;/a>
&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2020/02/SliTaz-TazPanel.jpg" >&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2020/02/SliTaz-TazPanel.jpg?ssl=1"
loading="lazy"
>&lt;/a>
&lt;/p>
&lt;p>Con una descarga de apenas 50 MB (si, leyó usted bien) y unos requerimientos minúsculos de apenas unos 256 MB en RAM. Hice algunas pruebas con virtualbox y vi que la instalación no era muy complicada, así que rápidamente la instalé en la lapita.&lt;/p>
&lt;p>Pero hubo un gran problema, no me reconoció la tarjeta de red wifi. Lo raro es que hace mucho tiempo que no tenía &lt;a class="link" href="https://linuxmanr4.com/2011/04/29/problema-con-las-tarjetas-broadcom-bcm43xx-en-ubuntu-1104/" >problemas con una tarjeta broadcom&lt;/a>
, me parecía que era un tema superado por muchas distribuciones linux, pero no fue así en mi caso.&lt;/p>
&lt;p>Intenté todos los consejos que me encontré en los foros de SliTaz, pero nada. Así que lo dejé por la paz.&lt;/p>
&lt;h2 id="peppermint-se-ve-bien">Peppermint se ve bien.
&lt;/h2>&lt;p>&lt;a class="link" href="https://x.com/zola_garcia/status/1230867493469724676" target="_blank" rel="noopener"
>Rodolfo Zolá&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me sugirió &lt;a class="link" href="https://peppermintos.com/" target="_blank" rel="noopener"
>Peppermint Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
así que descargué la ISO y a hacer pruebas.&lt;/p>
&lt;p>La instalación fue de lo más sencillo al ser una distribución basada en Ubuntu. De entrada reconoció sin problemas la tarjeta gráfica GMA500 que siempre ha sido un dolor de cabeza y la tarjeta de red Wifi ¡Excelente!.&lt;/p>
&lt;p>Probablemente la &lt;a class="link" href="https://linuxmanr4.com/2012/12/17/manjaro-y-la-tarjeta-grafica-gma500-poulsbo/" >GMA500&lt;/a>
sea una excelente tarjeta de video en Windows (XP), pero los fabricantes no fueron muy benévolos al compartir información o liberar un driver decente para linux, ya saben, la historia de siempre.&lt;/p>
&lt;p>Al menos reconoce bien toda la pantalla a una resolución correcta. En mi caso tuve que desactivar los efectos especiales como transparencias y esas cosas en aras de velocidad a la hora de mostrar los elementos en la pantalla.&lt;/p>
&lt;p>De entrada Peppermint se ve bien y se siente bien. Tiene una interfaz bien cuidada con tonos rojizos, que curiosamente combina a la perfección con el color de la lapita.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/Actualizaci%C3%B3n-del-sistema-con-apt.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/Peppermint-reci%C3%A9n-instalado.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/Peppermint-Settings-Panel.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/Gestor-de-software-de-Peppermint.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/screenfetch-de-peppermint.jpg">
&lt;/figure>
&lt;p>Al ser una distribución basada en Ubuntu me adapté rápidamente. Actualizar e instalar paquetes con &lt;em>apt-get&lt;/em>. Pero aparte ofrece varias amenidades como un Panel de control conocido como el &lt;strong>Peppermint Settings Panel&lt;/strong> que agrupa todo lo necesario para poner a tono la distribución.&lt;/p>
&lt;p>En ese mismo panel vi una opción que llamó mi atención llamada &lt;strong>Advert Blocker&lt;/strong> que prometía &lt;a class="link" href="https://linuxmanr4.com/2019/01/25/pfblockerng-ayuda-a-bloquear-publicidad-sitios-maliciosos-y-otras-amenazas/" >bloquear sitios de publicidad&lt;/a>
. Y me dije a mi mismo… mi mismo… va. Pero a que calai calai calai me quedé sin internet ¡No podía ni conectarme ni a Google!. Afortunadamente desactivar esa opción fue muy sencillo, pero no me quedaron ganas de volverla a activar.&lt;/p>
&lt;p>También tiene una bonita tienda de aplicaciones conocida como &lt;strong>Gestor de software&lt;/strong> que facilita y sugiere la instalación de aplicaciones.&lt;/p>
&lt;h2 id="no-hay-peor-lucha-que-la-que-no-se-hace">No hay peor lucha que la que no se hace.
&lt;/h2>&lt;p>A la fecha le he instalado a este equipo:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2019/11/14/resucitando-a-jolios-levantate-y-anda/" >JoliOS&lt;/a>
&lt;/strong>, en su tiempo fue lo mejor, pero ahora tiene problemas con conexiones seguras.&lt;/li>
&lt;li>&lt;strong>Ubuntu Netbook&lt;/strong>, pobre desempeño gráfico por el driver de la tarjeta GMA500.&lt;/li>
&lt;li>&lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2012/05/21/crunchbang-linux-en-mi-acer-ao751h/" >CrunchBang Linux&lt;/a>
&lt;/strong> excelente distribución, lástima que su creador dejó el proyecto.&lt;/li>
&lt;li>&lt;strong>BunsenLabs Linux&lt;/strong> Tomó la estafeta de CrunchBang, excelente distro pero subsiste el problema del desempeño gráfico.&lt;/li>
&lt;li>&lt;strong>SliTaz&lt;/strong> prometía mucho, pero no funcionó la tarjeta WiFi y así nomás no se puede.&lt;/li>
&lt;/ul>
&lt;p>Por el momento &lt;strong>Peppermint&lt;/strong> se queda en mi equipo. Se ve bien, se siente bien. No espero el rendimiento de un equipo de escritorio pero es bastante aceptable. Además con Linux alargo la vida útil de un equipo que todavía funciona y puede ofrecer algo al usuario.&lt;/p></description></item><item><title>No se pudo arrancar la entrada predeterminada ni la de reserva.</title><link>https://linuxmanr4.com/2020/01/29/no-se-pudo-arrancar-la-entrada-predeterminada-ni-la-de-reserva/</link><pubDate>Wed, 29 Jan 2020 22:22:41 +0000</pubDate><guid>https://linuxmanr4.com/2020/01/29/no-se-pudo-arrancar-la-entrada-predeterminada-ni-la-de-reserva/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/arrancando-manjaro-linux.jpg" alt="Featured image of post No se pudo arrancar la entrada predeterminada ni la de reserva." />&lt;p>Tengo una portátil en la que actualización del sistema es una lotería. No se que le pasa que a veces se queda congelada y todos sabemos que la actualización es un momento crítico.&lt;/p>
&lt;p>En este caso, parece que terminó bien la actualización, pero a la hora de reiniciar me apareció este bonito mensaje:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Arrancando «Manjaro Linux»
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: fichero «/vmlinuz-4.19-x86_64» no encontrado.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: se debe cargar primero el núcleo.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Presione cualquier tecla para continuar...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> No se pudo arrancar la entrada predeterminada ni la de reserva.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Presione cualquier tecla para continuar...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="sin-kernel-no-hay-arranque">Sin kernel no hay arranque.
&lt;/h2>&lt;p>Al ver la palabra &lt;strong>núcleo&lt;/strong> entendí que era un problema grave. ¿Cómo pasó eso? es un auténtico misterio. Afortunadamente no es la primera vez que esta portátil me hace una trastada, así que saqué una usb y a cargarle una &lt;a class="link" href="https://linuxmanr4.com/2017/07/06/usb-de-arranque/" >imagen de Manjaro&lt;/a>
.&lt;/p>
&lt;p>El &lt;a class="link" href="https://linuxmanr4.com/2008/03/14/problema-con-grub-falta-ntldr/" >problema me lo muestra GRUB&lt;/a>
, debido a que no puede arrancar con el kernel, en concreto no encuentra un archivo, así que la solución es obvia. Instalarle un kernel.&lt;/p>
&lt;h2 id="chroot-al-rescate">Chroot al rescate.
&lt;/h2>&lt;p>Me paso algo curioso, ya había escrito un artículo sobre &lt;a class="link" href="https://linuxmanr4.com/2019/01/04/como-hacer-chroot-en-manjaro/" >chroot&lt;/a>
, pero al intentar seguir esas instrucciones algo no funcionó (supongo que tuvo algo que ver la actualización). Pero afortunadamente encontré algo más sencillo.&lt;/p>
&lt;p>Después de iniciar la computadora con la &lt;a class="link" href="https://linuxmanr4.com/2012/12/13/creando-una-usb-de-arranque-para-manjaro/" >usb de arranque&lt;/a>
, abrí una terminal y tecleé o siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo manjaro-chroot -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/manjaro-chroot.jpg"
alt="Manjaro chroot para solucionar el problema: No se pudo arrancar la entrada predeterminada">&lt;figcaption>
&lt;p>Manjaro chroot para solucionar el problema: No se pudo arrancar la entrada predeterminada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y sin más complicaciones ya estaba en modo chroot ¡Excelente!.&lt;/p>
&lt;h2 id="administrando-los-kernels">Administrando los kernels.
&lt;/h2>&lt;p>Llegó la hora de consultar el Wiki de Manjaro el tema de &lt;a class="link" href="https://wiki.manjaro.org/index.php/Manjaro_Kernels" target="_blank" rel="noopener"
>administración de los kernels&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Lo más raro, es que me decía que estaba instalado el kernel 4.19 aunque no funcionaba.&lt;/p>
&lt;p>Aprovechando, le instalé el kernel 5.4&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mhwd-kernel -i linux54
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/listado-de-kernels-instalados.jpg"
alt="Listado de los kernels instalados.">&lt;figcaption>
&lt;p>Listado de los kernels instalados.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de que el comando hiciera su magia, llegó el momento de la verdad y después de reiniciar ¡Arrancó la portátil!.&lt;/p>
&lt;h2 id="quitar-lo-que-no-sirve">Quitar lo que no sirve.
&lt;/h2>&lt;p>Lo peor ya había pasado, al listar los &lt;a class="link" href="https://linuxmanr4.com/2010/03/05/eliminando-los-kernels-instalados-con-ubuntu-tweak/" >kernels instalados&lt;/a>
me di cuenta que ahí seguía el kernel 4.19, así que de una vez lo eliminé.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mhwd-kernel -r linux419
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/listado-y-eliminacion-del-kernel-danado.jpg"
alt="Quitando el kernel que no funciona. ">&lt;figcaption>
&lt;p>Quitando el kernel que no funciona.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final solo quedó el kernel 5.4 y veamos que sorpresa me da en la próxima actualización.&lt;/p>
&lt;p>Otra vez me salvé de reinstalar todo el sistema :)&lt;/p>
&lt;h2 id="referencias">Referencias.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.manjaro.org/index.php/Restore_the_GRUB_Bootloader" target="_blank" rel="noopener"
>GRUB/Restore the GRUB Bootloader&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.manjaro.org/index.php/Manjaro_Kernels" target="_blank" rel="noopener"
>Manjaro Kernels&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>Rumbos y Azimutales, un script en Python para convertirlos.</title><link>https://linuxmanr4.com/2020/01/17/rumbos-y-azimutales-un-script-en-python-para-convertirlos/</link><pubDate>Fri, 17 Jan 2020 18:26:42 +0000</pubDate><guid>https://linuxmanr4.com/2020/01/17/rumbos-y-azimutales-un-script-en-python-para-convertirlos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/brujula-topografica.jpg" alt="Featured image of post Rumbos y Azimutales, un script en Python para convertirlos." />&lt;p>Todos hemos visto una brújula, pero pocos saben usarla correctamente (me incluyo). El detalle es que actualmente la mayoría de los teléfonos celulares cuentan con una brújula en la que la lectura es &lt;strong>azimutal&lt;/strong> (de 0 a 360º). De esa forma es sencillo establecer una dirección (o rumbo) a partir de nuestra posición.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/Brujula-Android-GPS-Test.jpg"
alt="Brújula de una aplicación en android - Rumbos y Azimutales">&lt;figcaption>
&lt;p>Brújula de una aplicación en android - Rumbos y Azimutales&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero existe la costumbre de establecer un rumbo partiendo de cuadrantes, empezando por el norte o sur, indicando un número de grados hacia el este o el oeste. Por ejemplo, &lt;strong>281º&lt;/strong> azimutales serían &lt;strong>N 79º W&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/brujula%5F360%5Fgrados%5F79%5FNW.png">
&lt;/figure>
&lt;p>Si, lo se, suena algo complicado, pero este tipo de problemas me gustan mucho, mezclar algo de geometría con programación es la onda. Así que me puse a hacer un pequeño programa en &lt;a class="link" href="https://linuxmanr4.com/2018/09/29/gps-kml-python/" >Python&lt;/a>
que haga la conversión entre un rumbo azimutal (o circular) a un rumbo cuadrantal.&lt;/p>
&lt;p>Las operaciones son diferentes dependiendo de en que cuadrante se encuentre la lectura azimutal. Agregué los rumbos francos que son el norte, sur, este y el oeste. Y además un mensaje de error en caso de que se introduzca un valor fuera de rango.&lt;/p>
&lt;h2 id="el-código">El código
&lt;/h2>&lt;p>Una vez que hice la función, me di a la tarea de construirle una sencilla interfaz gráfica usando &lt;a class="link" href="https://pysimplegui.readthedocs.io/en/latest/" target="_blank" rel="noopener"
>PySimpleGUI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, no es la interfaz más bonita, pero es realmente sencillo de hacer, me tomó una mañana más o menos entenderle a la construcción de la interfaz y al manejo de eventos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#! /usr/bin/env python3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">PySimpleGUI&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">sg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Esta función hace la conversión de grados azimutales a rumbos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">azimutal_rumbo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Rumbos Francos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">360&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;N&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">azimutal&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">90&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;E&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">azimutal&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">180&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;S&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">azimutal&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">270&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;W&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#Identificar los cuadrantes.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#Cuadrante I&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">90&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;N &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s1">&amp;#39;º E&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#Cuadrante II&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">90&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">180&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;S &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">180&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">azimutal&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s1">&amp;#39;º E&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#Cuadrante III&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">180&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">270&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;S &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">180&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s1">&amp;#39;º W&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#Cuadrante IV&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">270&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">azimutal&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">360&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;N &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">360&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">azimutal&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s1">&amp;#39;º W&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rumbo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;Valor Incorrecto&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">rumbo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Construir la interfaz gráfica.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">theme&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;SystemDefault&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">layout&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Teclear el rumbo azimutal [0-360º]:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">font&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Default 12&amp;#39;&lt;/span>&lt;span class="p">)],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">InputText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;-GRADOSAZ-&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">font&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Default 12&amp;#39;&lt;/span>&lt;span class="p">)],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Button&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Convertir&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">font&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Default 12&amp;#39;&lt;/span>&lt;span class="p">)],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">font&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Default 18 bold&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;-RUMBO-&amp;#39;&lt;/span>&lt;span class="p">)]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">window&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sg&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Window&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Azimutales a Rumbos&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Layout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">layout&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="c1"># The Event Loop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">event&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">values&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">window&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># print(event, values)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">event&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kc">None&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;Exit&amp;#39;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">event&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;Convertir&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Update the &amp;#34;output&amp;#34; text element to be the value of &amp;#34;input&amp;#34; element&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">azimutal_rumbo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;-GRADOSAZ-&amp;#39;&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">window&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;-RUMBO-&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">update&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">resultado&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">window&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/programa-en-python-para-convertir-rumbos.jpg"
alt="El programa haciendo la conversión de azimutales a rumbos.">&lt;figcaption>
&lt;p>El programa haciendo la conversión de azimutales a rumbos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les quiero pedir disculpas si no uso los términos adecuados, no soy topógrafo, así que si existe una mejor manera de nombrar las cosas o si ofrecen algún consejo en cuanto a la programación les agradeceré su comentario.&lt;/p>
&lt;h2 id="para-entender-mejor">Para entender mejor.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://doblevia.wordpress.com/2007/03/19/rumbo-y-azimut/" target="_blank" rel="noopener"
>Rumbo y Azimut&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://farusacremoto.blogspot.com/2014/08/convertir-azimuts-rumbos.html" target="_blank" rel="noopener"
>Convertir Azimuts a Rumbos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>Error al unir el archivo, un problema al copiar archivos grandes a una USB.</title><link>https://linuxmanr4.com/2019/12/18/error-al-unir-el-archivo-un-problema-al-copiar-archivos-grandes-a-una-usb/</link><pubDate>Wed, 18 Dec 2019 22:04:23 +0000</pubDate><guid>https://linuxmanr4.com/2019/12/18/error-al-unir-el-archivo-un-problema-al-copiar-archivos-grandes-a-una-usb/</guid><description>&lt;p>Llevo tiempo luchando con este problema. No me pasa frecuentemente, así que se puede decir que es uno de esos detalles escurridizos de Linux.&lt;/p>
&lt;p>Les cuento, al copiar archivos grandes, digamos de más de 1 GB en un dispositivo USB, justo antes de terminar la copia aparece el siguiente error:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/error-al-unir-el-archivo.jpg"
alt="error al unir el archivo">&lt;figcaption>
&lt;p>error al unir el archivo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>&lt;strong>Error al unir el archivo.&lt;/strong>&lt;/p>
&lt;p>Error de entrada/salida&lt;/p>
&lt;p>¿Quiere omitirlo?&lt;/p>&lt;/blockquote>
&lt;p>Lo puedo intentar varias veces y nada, incluso he eliminado archivos para hacerle más espacio y lo mismo.&lt;/p>
&lt;p>Si por ejemplo, intento copiar 2 GB en archivos pequeños, en ese caso nunca he tenido problemas, sólo en archivos individuales de gran tamaño.&lt;/p>
&lt;p>Al principio creí que era un detalle en la memoria USB, algún problema con la electrónica, pero ya intenté copiar los archivos después de formatearla y vuelve a aparecer el error. Lo mismo ocurre con dispositivos USB de distintas marcas y capacidades.&lt;/p>
&lt;p>Lo que le añade un grado extra de dificultad para encontrar una solución es que no siempre pasa, a veces sí, otras no. Me mortifica un poco porque me hace perder tiempo.&lt;/p>
&lt;p>Luego pensé que podría ser un bug de &lt;a class="link" href="https://docs.xfce.org/xfce/thunar/start" target="_blank" rel="noopener"
>Thunar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
el administrador de archivos de XFCE, pero luego de instalar y hacer algunas pruebas con &lt;a class="link" href="https://apps.gnome.org/es/Nautilus/" target="_blank" rel="noopener"
>Archivos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ocurre algo muy similar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/archivos-gnome.png"
alt="Error al unir el archivo - Files">&lt;figcaption>
&lt;p>Error al unir el archivo - Files&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hasta el momento, lo único que me ha funcionado sin falla es copiar los archivos con &lt;a class="link" href="https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/" >rsync&lt;/a>
, de esa forma, la copia funciona perfectamente. Ya sean un archivo grande o muchos pequeños rsync sale airoso.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/copia-exitosa-con-rsync.jpg">
&lt;/figure>
&lt;p>Si no son los manejadores de archivos, se me ocurre que puede ser un problema con alguna opción del kernel. Pero no he encontrado en internet algo que respalde esta teoría.&lt;/p>
&lt;p>Podría ser algún problemilla con &lt;a class="link" href="https://linuxmanr4.com/2015/04/20/revisar-una-unidad-usb-con-fat32-en-linux/" >FAT32&lt;/a>
el sistema de archivos que uso en las USB por tema de compatibilidad, pero rsync completa la tarea sin mayor problema.&lt;/p>
&lt;p>¿Les ha pasado algo similar? Cualquier sugerencia será bienvenida.&lt;/p></description></item><item><title>Exception in thread Unsupported major.minor version 52.0, otra vez Java.</title><link>https://linuxmanr4.com/2019/12/05/exception-in-thread-unsupported-major-minor-version-52-0-otra-vez-java/</link><pubDate>Thu, 05 Dec 2019 15:36:16 +0000</pubDate><guid>https://linuxmanr4.com/2019/12/05/exception-in-thread-unsupported-major-minor-version-52-0-otra-vez-java/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/java-coffee.jpg" alt="Featured image of post Exception in thread Unsupported major.minor version 52.0, otra vez Java." />&lt;p>Este error no es nuevo para mi, por ejemplo &lt;a class="link" href="https://angryip.org/" target="_blank" rel="noopener"
>Angry IP Scanner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dejó de funcionar, pero supuse que era algún problema con alguna actualización. Algo que es muy frecuente en una distribución &lt;em>rolling release&lt;/em>.&lt;/p>
&lt;p>El colmo fue que ayer intenté instalar el &lt;a class="link" href="https://www.arduino.cc/en/main/software" target="_blank" rel="noopener"
>IDE de Arduino&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y al intentar ejecutar me di cuenta de dos cosas, que el software esta escrito en Java y que como es tradición trae sus problemas.&lt;/p>
&lt;p>El error completo es como este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Picked&lt;/span> &lt;span class="n">up&lt;/span> &lt;span class="n">JAVA_TOOL_OPTIONS&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exception&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">thread&lt;/span> &lt;span class="s2">&amp;#34;main&amp;#34;&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lang&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">UnsupportedClassVersionError&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">processing&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">app&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Base&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">Unsupported&lt;/span> &lt;span class="n">major&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">minor&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="mf">52.0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lang&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">defineClass1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Native&lt;/span> &lt;span class="n">Method&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lang&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">defineClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">808&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">security&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">SecureClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">defineClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">SecureClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">142&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">defineClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">443&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">access&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">65&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="mf">1.&lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">355&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="mf">1.&lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">349&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">security&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">AccessController&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">doPrivileged&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Native&lt;/span> &lt;span class="n">Method&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">findClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URLClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">348&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lang&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loadClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">430&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">sun&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">misc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Launcher&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">AppClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loadClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Launcher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">323&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">java&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lang&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loadClass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ClassLoader&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">363&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">at&lt;/span> &lt;span class="n">sun&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">launcher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">LauncherHelper&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">checkAndLoadMain&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">LauncherHelper&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">482&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="err">`&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="el-problema-es-la-versión-de-java">El problema es la versión de Java.
&lt;/h2>&lt;p>El mismo mensaje de error menciona un problema de versión de Java. Así que me fui a buscar información por ese lado. Dí con la página del Wiki de Arch (en Manjaro no encontré algo equivalente) relacionada con &lt;a class="link" href="https://wiki.archlinux.org/index.php/Java_%28Espa%C3%B1ol%29" target="_blank" rel="noopener"
>Java&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Lo primero es identificar cuantas versiones de Java están instaladas y me llevé una sorpresa.&lt;/p>
&lt;p>Al ejecutar el comando &lt;code>archlinux-java status&lt;/code> me indicó que tenía instalado en mi equipo no una, ni dos, ¡si no tres versiones de Java!.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Available Java environments:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> java-11-openjdk
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> java-7-openjdk/jre (default)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> java-8-openjdk
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La verdad es que no tenía idea de este dato, pero en fin.&lt;/p>
&lt;p>El problema se soluciona cambiando el default a una versión más reciente. Con la versión 8 funciona, con la versión 11 también. Así que dejé esta última con el siguiente comando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo archlinux-java set java-11-openjdk
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/arduino-ide.png"
alt="Arduino IDE trabajando después de ajustar Java. Unsupported major.minor version 52.0">&lt;figcaption>
&lt;p>Arduino IDE trabajando después de ajustar Java. Unsupported major.minor version 52.0&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hecho esto, el IDE de Arduino funciona y también &lt;a class="link" href="https://linuxmanr4.com/2019/10/25/averiguar-la-direccion-ip-de-un-equipo-por-su-hostname/" >Angry IP Scanner&lt;/a>
así que se puede dar este problema como solucionado.&lt;/p></description></item><item><title>Configurar un redireccionamiento de puertos con pfSense</title><link>https://linuxmanr4.com/2019/11/22/configurar-un-redireccionamiento-de-puertos-con-pfsense/</link><pubDate>Fri, 22 Nov 2019 15:48:51 +0000</pubDate><guid>https://linuxmanr4.com/2019/11/22/configurar-un-redireccionamiento-de-puertos-con-pfsense/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/redireccionamiento-de-puertos-pfsense.jpg" alt="Featured image of post Configurar un redireccionamiento de puertos con pfSense" />&lt;p>Hacer un redireccionamiento de puertos es algo que ya tenía dominado con ipCop, pero con pfSense no lo había intentado. Tampoco es que sea muy difícil, solo hay que llenar el formulario con la información y en el sitio correcto.&lt;/p>
&lt;h2 id="qué-es-un-redireccionamiento-de-puertos">¿Qué es un redireccionamiento de puertos?
&lt;/h2>&lt;p>Un &lt;a class="link" href="https://es.wikipedia.org/wiki/Redirecci%C3%B3n_de_puertos" target="_blank" rel="noopener"
>redireccionamiento de puertos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es lograr que un puerto que está en un equipo protegido por nuestro firewall (en este caso pfSense) sea visible y se pueda trabajar desde el exterior.&lt;/p>
&lt;p>Por ejemplo, puede ser un servidor Web (puerto 80) que está funcionando en un servidor dentro de mi red local y que quiero que sea visible desde el exterior.&lt;/p>
&lt;h2 id="configurando-el-redireccionamiento-de-puertos">Configurando el redireccionamiento de puertos.
&lt;/h2>&lt;p>En mi novatez y experiencia previa con ipCop creí que lo conducente era crear una regla en el firewall (menú Firewall - Rules), pero eso no funcionó. Lo apropiado es ir al menú &lt;strong>Firewall&lt;/strong> - &lt;strong>NAT&lt;/strong> y agregamos una regla en la parte que dice &lt;strong>&lt;a class="link" href="https://docs.netgate.com/pfsense/en/latest/nat/forwarding-ports-with-pfsense.html" target="_blank" rel="noopener"
>Port Forward&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong>, que dicho sea de paso, la información que tecleamos en esta sección también crea una regla en el firewall, pero eso lo hace en automático.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/firewall-nat-por-forward-edit.png"
alt="Agregando la regla del redireccionamiento de puertos.">&lt;figcaption>
&lt;p>Agregando la regla del redireccionamiento de puertos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En realidad es muy simple:&lt;/p>
&lt;ul>
&lt;li>Primero hay que elegir la &lt;strong>Interface Exterior (WAN)&lt;/strong>.&lt;/li>
&lt;li>El protocolo, que puede ser &lt;strong>TCP&lt;/strong> o &lt;strong>UDP&lt;/strong> (o ambos).&lt;/li>
&lt;li>El puerto o el rango de puertos que va a escuchar del lado exterior. Por ejemplo, un servidor web sería el puerto 80.&lt;/li>
&lt;li>La &lt;strong>dirección IP del equipo interno&lt;/strong> que va a escuchar las peticiones del puerto 80.&lt;/li>
&lt;li>El &lt;strong>Redirect target port&lt;/strong> generalmente es el mismo que elegiste en la parte exterior, pero no necesariamente.&lt;/li>
&lt;li>Y un comentario no vendría mal, a veces ayuda a no confundir algunas reglas con otras.&lt;/li>
&lt;/ul>
&lt;p>Guardar los cambios y aplicarlos.&lt;/p>
&lt;h2 id="algunas-pruebas">Algunas pruebas.
&lt;/h2>&lt;p>Para revisar si el redireccionamiento funciona se puede echar mano de un escaneador de puertos online. Me gustó &lt;a class="link" href="https://hidemy.name/es/ports/" target="_blank" rel="noopener"
>HideMy.Name&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que usa nmap.&lt;/p>
&lt;p>Si el puerto en cuestión dice &lt;strong>OPEN&lt;/strong>, ya podemos decir que el redireccionamiento fue todo un éxito.&lt;/p></description></item><item><title>Resucitando a JoliOS ¡Levántate y anda!</title><link>https://linuxmanr4.com/2019/11/14/resucitando-a-jolios-levantate-y-anda/</link><pubDate>Thu, 14 Nov 2019 19:50:58 +0000</pubDate><guid>https://linuxmanr4.com/2019/11/14/resucitando-a-jolios-levantate-y-anda/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/jolios-funcionando-en-el-2019.jpg" alt="Featured image of post Resucitando a JoliOS ¡Levántate y anda!" />&lt;p>Hace 10 años que tengo este equipo &lt;a class="link" href="https://linuxmanr4.com/2010/10/05/acer-aspire-one-ao751h-con-jolicloud/" >Acer Aspire One&lt;/a>
(AO751h) en mi poder. Le he instalado muchas distribuciones de Linux, pero sólo una reconocio completamente su tarjeta de video, la famos &lt;a class="link" href="https://es.wikipedia.org/wiki/Jolicloud#Compatibildad" target="_blank" rel="noopener"
>GMA500&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Intel que no era de Intel, pero bueno, esa es otra historia.&lt;/p>
&lt;p>Hace poco le instalé &lt;a class="link" href="https://mxlinux.org/" target="_blank" rel="noopener"
>MX Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con la esperanza de reactivarla. Esta distribución esta en los primeros lugares de Distro Watch y me dio mucha curiosidad. Y aunque es una buena distribución (un poco verde para mi gusto) otra vez salió el tema de la tarjeta de video. Así que me dije a mi mismo ¿Y si le reinstalas JoliOS nuevamente?.&lt;/p>
&lt;h2 id="descargar-jolios">Descargar JoliOS
&lt;/h2>&lt;p>Lo primero fue buscar el iso de JoliOS, el creador de esta distribución cerró el proyecto, así que ya no estaba disponible en el sitio original. Afortunadamente encontré otro lugar que ofrece la descarga en &lt;a class="link" href="https://archiveos.org/jolios/" target="_blank" rel="noopener"
>ArchiveOS - Jolicloud&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="instalar-jolios">Instalar JoliOS
&lt;/h2>&lt;p>Instalar Linux y en particular esta distribución no es complicado. Sólo hay que tener cuidado con un detalle durante la instalación. Hay una parte donde se queda atorada. Creo que intenta actualizar los repositorios, esto se soluciona desconectando la tarjeta de red para que finalice el proceso. Con eso después de un tiempo termina la instalación y pide reiniciar.&lt;/p>
&lt;h2 id="deshabilitar-el-menú-de-aplicaciones">Deshabilitar el menú de aplicaciones.
&lt;/h2>&lt;p>Por default JoliOS tiene un menú de aplicaciones medio raro que ocupa todo el escritorio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/image-1.png"
alt="Así se veía JoliOS.">&lt;figcaption>
&lt;p>Así se veía JoliOS.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Bueno pues ese menú ya no existe y en su lugar se queda una pantalla blanca (luego se convertirá en negra). Para desactivarlo solo hay que deshabilitar su arranque al inicio.&lt;/p>
&lt;p>Si se presiona la tecla de &lt;strong>menú contextual&lt;/strong> del lado derecho del teclado, que está entre la tecla &lt;strong>windows&lt;/strong> y &lt;strong>control&lt;/strong> aparece un pequeño menú, es el que uso para iniciar las aplicaciones.&lt;/p>
&lt;p>Luego al menú &lt;strong>Sistema&lt;/strong> - &lt;strong>Preferencias&lt;/strong> - &lt;strong>Aplicaciones al inicio&lt;/strong>. Y se deshabilita la opción &lt;strong>Jolicloud Launcher&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/image-2.jpg"
alt="Al desactivar Jolicloud launcher desaparece el lanzador original.">&lt;figcaption>
&lt;p>Al desactivar Jolicloud launcher desaparece el lanzador original.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ajustar-los-repositorios">Ajustar los repositorios.
&lt;/h2>&lt;p>Muchos de los repositorios que incluye JoliOS ya no existen y dan errores al intentar actualizarlos. Para evitar eso hay que editar varios archivos, primero hice una copia de respaldo y luego deshabilite todos los repositorios, si ¡TODOS!&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/etc/apt/sources.list.d/ubuntu.list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/etc/apt/sources.list.d/jolicloud.list
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Agregué estos que son de &lt;strong>Ubuntu Lucid Lynx&lt;/strong> en el archivo &lt;strong>ubuntu.list&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># newer versions of the distribution.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Major bug fix updates produced after the final release of the
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## distribution.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid-updates main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid-updates main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## team. Also, please note that software in universe WILL NOT receive any
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## review or updates from the Ubuntu security team.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid-updates universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid-updates universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## team, and may not be under a free licence. Please satisfy yourself as to
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## your rights to use the software. Also, please note that software in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## multiverse WILL NOT receive any review or updates from the Ubuntu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## security team.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu/ lucid-updates multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu/ lucid-updates multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Uncomment the following two lines to add software from the &amp;#39;backports&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## repository.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## N.B. software from this repository may not have been tested as
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## extensively as that contained in the main release, although it includes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## newer versions of some applications which may provide useful features.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Also, please note that software in backports WILL NOT receive any review
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## or updates from the Ubuntu security team.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># deb http://old-releases.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># deb-src http://old-releases.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Uncomment the following two lines to add software from Canonical&amp;#39;s
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## &amp;#39;partner&amp;#39; repository.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## This software is not part of Ubuntu, but is offered by Canonical and the
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## respective vendors as a service to Ubuntu users.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># deb http://old-releases.ubuntu.com/ubuntu lucid partner
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># deb-src http://old-releases.ubuntu.com/ubuntu lucid partner
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu lucid-security main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu lucid-security main restricted
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu lucid-security universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu lucid-security universe
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb http://old-releases.ubuntu.com/ubuntu lucid-security multiverse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">deb-src http://old-releases.ubuntu.com/ubuntu lucid-security multiverse
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso es posible actualizar el sistema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/image-2-2.jpg"
alt="actualizando el sistema con los nuevos repositorios.">&lt;figcaption>
&lt;p>actualizando el sistema con los nuevos repositorios.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y también es posible instalar algunas aplicaciones.&lt;/p>
&lt;p>En mi caso, instalé el famoso &lt;a class="link" href="https://www.videolan.org/vlc/" target="_blank" rel="noopener"
>VLC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como reproductor de video, &lt;a class="link" href="https://www.geany.org/" target="_blank" rel="noopener"
>Geany&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para editar archivos de texto y &lt;strong>Docky&lt;/strong> como lanzador de aplicaciones.&lt;/p>
&lt;h2 id="un-navegador-de-32-bits-por-favor">Un navegador de 32 bits por favor.
&lt;/h2>&lt;p>Todo parecía pintar bien, pero, bueno siempre hay un pero. Me falta un navegador &amp;ldquo;moderno&amp;rdquo; de 32 bits. Todo porque algunas conexiones SSL no funcionan en navegadores viejitos, incluyendo mi blog ( &lt;em>música triste por favor&lt;/em>).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/image-2-1.jpg">
&lt;/figure>
&lt;p>Intenté de todo, instalé otros navegadores como Firefox, Opera o Vivaldi con poco éxito. Intenté emular alguno de windows con wine, ¡Hasta versiones portables! pero nada. Así que esto se queda como materia pendiente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/11/image-2-3.jpg">
&lt;/figure>
&lt;p>Al final el resultado fue mixto. Hay muchas cosas que no puedo hacer, pero otras que sí. El desempeño es bueno a pesar de la edad y las limitaciones de la computadora y lo más importante, su desempeño gráfico es más que aceptable.&lt;/p>
&lt;p>Por cierto ¿saben de algún navegador moderno de 32 bits? se los agradecería mucho.&lt;/p></description></item><item><title>Averiguar la dirección IP de un equipo por su hostname.</title><link>https://linuxmanr4.com/2019/10/25/averiguar-la-direccion-ip-de-un-equipo-por-su-hostname/</link><pubDate>Fri, 25 Oct 2019 18:35:57 +0000</pubDate><guid>https://linuxmanr4.com/2019/10/25/averiguar-la-direccion-ip-de-un-equipo-por-su-hostname/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/10/marvin-meyer-laptops-celulares-unsplash.jpg" alt="Featured image of post Averiguar la dirección IP de un equipo por su hostname." />&lt;p>La situación es un poco complicada, verán, tengo un usuario que ocasionalmente me pide ayuda y para ello me conecto de manera remota a su equipo, le ayudo en lo que necesite y fin de la historia, peeeeroooooo&amp;hellip;&lt;/p>
&lt;p>Este usuario tiene un pequeño detalle, salta de una dirección IP a otra. Supongo que prende poco su equipo, sólo cuando lo necesita y en cada ocasión el servidor DHCP le asigna una dirección diferente, el problema es saber cuál.&lt;/p>
&lt;p>Claro que puedo consultar la lista de &lt;a class="link" href="https://docs.netgate.com/pfsense/en/latest/dhcp/dhcp-leases.html" target="_blank" rel="noopener"
>préstamos de DHCP de PfSense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero me ocupa demasiado tiempo. Entonces usé &lt;a class="link" href="https://angryip.org/" target="_blank" rel="noopener"
>Angry IP Scanner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con buenos resultados, un ligero escaneo a mi red local para localizar el equipo, peeeeroooo&amp;hellip;&lt;/p>
&lt;p>Un buen día Angry IP Scanner ( &lt;strong>ipscan&lt;/strong> para los cuates) dejó de funcionar. Supongo que fue un problema durante la actualización de &lt;strong>Manjaro&lt;/strong>, es algo que pasa todo el tiempo, al parecer un problema con Java y con solo mencionar ese nombre me salen ronchas.&lt;/p>
&lt;p>Entonces me di a la tarea de buscar alguna alternativa, el objetivo es relativamente simple averiguar la &lt;strong>dirección IP&lt;/strong> de un equipo por su &lt;strong>hostname&lt;/strong>. perooooo &amp;hellip;&lt;/p>
&lt;h2 id="qué-comando-usar">¿Qué comando usar?
&lt;/h2>&lt;p>Durante mi investigación surgieron varios nombres, intenté cuanto comando se me puso enfrente. En algunos me acercaba bastante, pero los resultados no eran los que esperaba, probé con:&lt;/p>
&lt;ul>
&lt;li>arp&lt;/li>
&lt;li>ping&lt;/li>
&lt;li>nslookup&lt;/li>
&lt;li>nmap&lt;/li>
&lt;li>samba&lt;/li>
&lt;/ul>
&lt;h2 id="samba-fue-el-ganador">Samba fue el ganador
&lt;/h2>&lt;p>Contra todo pronóstico el ganador fue &lt;a class="link" href="https://es.wikipedia.org/wiki/Samba_%28software%29" target="_blank" rel="noopener"
>samba&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con el comando &lt;a class="link" href="https://www.samba.org/samba/docs/current/man-html/nmblookup.1.html" target="_blank" rel="noopener"
>nmblookup&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Este comando hace precisamente lo que estoy necesitando. Como conozco el hostname del equipo que estoy buscando todo se resume a un simple comando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nmblookup hostname
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y voalá, la IP correspondiente aparece en mi terminal.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[inguanzo]$ nmblookup equipo1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">192.168.0.175 equipo1&amp;lt;00&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora se que esto es un poco &lt;em>triki&lt;/em>, porque el &lt;strong>hostname&lt;/strong> también es el &lt;strong>NetBIOS name&lt;/strong> (que no es lo mismo, pero es igual). Y como ocurre en muchas de mis investigaciones, una vez que obtengo un resultado satisfactorio, detengo la investigación y sigo con otra cosa.&lt;/p>
&lt;p>¿Ustedes saben otra forma de obtener la dirección IP de un equipo de red mediante su hostname? Espero sus comentarios.&lt;/p>
&lt;p>Por lo pronto, ¡Feliz fin de semana!.&lt;/p>
&lt;p>&lt;em>Imagen principal de &lt;a class="link" href="https://unsplash.com/@marvelous?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Marvin Meyer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 en &lt;a class="link" href="https://unsplash.com/s/photos/network?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Unsplash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/em>&lt;/p></description></item><item><title>Automatizando la apertura de Tilix al inicio de la sesión.</title><link>https://linuxmanr4.com/2019/10/21/automatizando-la-apertura-de-tilix-al-inicio-de-la-sesion/</link><pubDate>Mon, 21 Oct 2019 13:59:29 +0000</pubDate><guid>https://linuxmanr4.com/2019/10/21/automatizando-la-apertura-de-tilix-al-inicio-de-la-sesion/</guid><description>&lt;p>Tengo que reconocer que he escrito poco últimamente. Las actualizaciones de Manjaro se han completado sin problemas, mi equipo se ejecuta suavemente y de las principales noticias del software libre creo que hay otros sitios que se encargan de eso y lo hacen muy bien.&lt;/p>
&lt;p>Es parte de mi rutina abrir una ventana de &lt;a class="link" href="https://gnunn1.github.io/tilix-web/" target="_blank" rel="noopener"
>Tilix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y por lo general abro 3 mosaicos, en uno esta &lt;a class="link" href="https://es.wikipedia.org/wiki/Htop" target="_blank" rel="noopener"
>htop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para monitorear mis procesos, en otra mi herramienta de &lt;a class="link" href="https://linuxmanr4.com/2018/05/10/python-ping-script-ip/" >Python Ping&lt;/a>
para monitorear el funcionamiento de los equipos de la red y una más vacía para teclear los comandos que necesite.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/10/tilix-mosaico-de-terminales.png"
alt="Tilix con su mosaico de terminales.">&lt;figcaption>
&lt;p>Tilix con su mosaico de terminales.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esto lo hacía todos los días, así que un buen dia, le invertí un poco de tiempo a la apertura de Tilix con esta configuración desde el inicio con aceptables resultados.&lt;/p>
&lt;h2 id="crear-un-archivo-bash">Crear un archivo Bash.
&lt;/h2>&lt;p>Lo primero que se me ocurrió fue hacer un archivo Bash que luego mandaría llamar desde el inicio de sesión de XFCE y así lo hice.&lt;/p>
&lt;p>El archivo Bash no es complicado, le agregué algunas pausas, porque noté que si no lo hacía, en lugar de abrir una sola ventana con sus mosaicos correspondientes abría ventanas individuales.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tilix -w /home/usuario/scripts/ -e ./python_ping3.py &lt;span class="p">&amp;amp;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sleep &lt;span class="m">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tilix -a session-add-right -x &lt;span class="s2">&amp;#34;htop&amp;#34;&lt;/span> &lt;span class="p">&amp;amp;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sleep &lt;span class="m">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tilix -a session-add-down &lt;span class="p">&amp;amp;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sleep &lt;span class="m">4&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En el código se pueden ver varios &lt;a class="link" href="https://gnunn1.github.io/tilix-web/manual/cliactions/" target="_blank" rel="noopener"
>parámetros&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se pueden utilizar al momento de ejecutar tilix, como establecer su posición o de una vez, ejecutar algún comando o script.&lt;/p>
&lt;p>A veces me sigue mostrando un par de ventanas individuales, pero luego lo que hago es arrastrar las ventanas hacía la otra, hasta dejar el arreglo como me gusta.&lt;/p>
&lt;h2 id="ejecutar-el-script-al-iniciar-la-sesión-en-xfce">Ejecutar el script al iniciar la sesión en XFCE.
&lt;/h2>&lt;p>Con el script listo, lo único que falta es que se ejecute al iniciar la sesión, para eso arrancamos el programa &lt;strong>Sesión e inicio&lt;/strong> y lo agregamos a la lista.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/10/iniciar-el-script-de-tilix.jpg"
alt="Ejecutar el script en bash al iniciar la sesión.">&lt;figcaption>
&lt;p>Ejecutar el script en bash al iniciar la sesión.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y con eso queda automatizada la tarea.&lt;/p>
&lt;p>¡Saludos y hasta la próxima!&lt;/p></description></item><item><title>El misterio del archivo en formato ASCII, caso de la vida real.</title><link>https://linuxmanr4.com/2019/09/26/el-misterio-del-archivo-en-formato-ascii-caso-de-la-vida-real/</link><pubDate>Thu, 26 Sep 2019 14:34:53 +0000</pubDate><guid>https://linuxmanr4.com/2019/09/26/el-misterio-del-archivo-en-formato-ascii-caso-de-la-vida-real/</guid><description>&lt;p>Este problema ha estado rondando por mi cabeza durante varios días y aún no le encuentro una solución que me satisfaga. Les cuento para que me den su opinión al respecto.&lt;/p>
&lt;p>El otro día un usuario vino a mi preguntándome sobre un archivo en formato &lt;a class="link" href="https://es.wikipedia.org/wiki/ASCII" target="_blank" rel="noopener"
>ASCII&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y mi mente viajó a los años 90&amp;rsquo;s. Hasta recordé una fotocopia con los códigos de los caracteres porque en aquellos días usábamos ciertos símbolos para construir cajas en los menús de nuestros programas &lt;em>(aullaron coyotes en el cerro)&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/el-codigo-ascii.jpg"
alt="Copia del Código ASCII">&lt;figcaption>
&lt;p>Copia del Código ASCII&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Le pedí que me mostrara los requisitos requeridos (la lista completa la pueden leer aquí: &lt;a class="link" href="http://www.sat.gob.mx/gobmx/Paginas/SAT_01_052-40CFF.html" target="_blank" rel="noopener"
>Inscripción en el RFC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
). Hasta llegar al requisito en cuestión que es el número 4.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/archivo-en-formato-ascii.png"
alt="archivo en formato ascii">&lt;figcaption>
&lt;p>archivo en formato ascii&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>4. El formato del archivo debe ser en Código Estándar Americano para Intercambio de Información (ASCII).&lt;/p>&lt;/blockquote>
&lt;h2 id="archivo-de-texto-obvio">¿Archivo de texto? ¡Obvio!
&lt;/h2>&lt;p>Aunque no lo menciona es claro que el archivo a entregar es un &lt;strong>archivo de texto&lt;/strong>. Incluso los dos puntos anteriores nos dan una pista del contenido del archivo:&lt;/p>
&lt;ul>
&lt;li>Sin tabuladores.&lt;/li>
&lt;li>Únicamente mayúsculas.&lt;/li>
&lt;/ul>
&lt;p>Para generar un archivo de texto hay un montón de programas. Mis favoritos en Linux &lt;a class="link" href="https://www.sublimetext.com/" target="_blank" rel="noopener"
>Sublime&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://www.geany.org/" target="_blank" rel="noopener"
>Geany&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://wiki.gnome.org/Apps/Gedit" target="_blank" rel="noopener"
>Gedit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, y en Windows el famoso &lt;a class="link" href="https://notepad-plus-plus.org/" target="_blank" rel="noopener"
>Notepad++&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, vamos que por editores no paramos.&lt;/p>
&lt;p>Y con eso podemos generar el archivo, sin embargo ¿A que se refiere con eso de &lt;strong>formato ASCII&lt;/strong>?.&lt;/p>
&lt;h2 id="será-la-codificación-del-archivo">¿Será la codificación del archivo?
&lt;/h2>&lt;p>A lo mejor el requisito se refiere a la codificación del archivo. Pero como pueden ver en la siguiente imagen hay un montón de opciones y ninguna de ellas es &lt;strong>ASCII&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/editor-notepad-plus-plus-mostrando-las-opciones-de-codificacion.png"
alt="Notepad&amp;#43;&amp;#43; mostrando las opciones de codificación.">&lt;figcaption>
&lt;p>Notepad++ mostrando las opciones de codificación.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La codificación de los archivos es importante para que se interpreten apropiadamente los textos, por ejemplo léase: &lt;a class="link" href="https://linuxmanr4.com/2011/12/30/los-subtitulos-muestran-letras-raras/" >Los subtítulos muestran letras raras&lt;/a>
.&lt;/p>
&lt;p>Quiero suponer que a lo mejor lo que quieren es que no aparezcan &lt;strong>vocales acentuadas&lt;/strong> o &lt;strong>la letra Ñ&lt;/strong> del español. Pero incluso esas limitantes del código ASCII original fueron resueltas mediante &lt;a class="link" href="https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_437" target="_blank" rel="noopener"
>páginas de códigos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Este es un caso más para el pingüino que investiga. Aunque para ser sincero creo que es un callejón sin salida.&lt;/p>
&lt;p>Ustedes que opinan ¿Cúal es su mejor teoría? ¿Qué es lo que habrán querido decir con este requisito?.&lt;/p>
&lt;h2 id="misterio-resuelto">Misterio resuelto.
&lt;/h2>&lt;p>Gracias al comentario de &lt;a class="link" href="https://linuxmanr4.com/2019/09/26/el-misterio-del-archivo-en-formato-ascii-caso-de-la-vida-real/#comment-43153" >Traktek&lt;/a>
parece que se ha resuelto el misterio, al menos de manera no oficial.&lt;/p>
&lt;p>Él menciona el comando &lt;strong>file&lt;/strong> para saber el tipo del archivo. Bueno, pues utilizando la codificación UTF-8 hice un sencillo archivo de prueba.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/texto-en-ascii.png"
alt="Archivo de prueba ASCII">&lt;figcaption>
&lt;p>Archivo de prueba ASCII&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El comando &lt;strong>file&lt;/strong> lo identifica como &lt;strong>ASCII&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/file-ascii.png"
alt="Y el resultado es que lo identifica como ASCII">&lt;figcaption>
&lt;p>Y el resultado es que lo identifica como ASCII&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero si al archivo le agrego una Ñ, la cosa cambia a &lt;strong>UTF-8&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/archivo-utf8.png"
alt="Archivo de prueba UTF8">&lt;figcaption>
&lt;p>Archivo de prueba UTF8&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/file-utf8.png"
alt="El resultado es que file lo identifica como UTF-8">&lt;figcaption>
&lt;p>El resultado es que file lo identifica como UTF-8&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y con eso ya tiene algo de sustento la teoría de que el archivo &lt;strong>no debe de incluir&lt;/strong> letras acentuadas o la letra Ñ.&lt;/p>
&lt;p>¡Muchas gracias &lt;strong>Traktek&lt;/strong> por tu comentario!.&lt;/p></description></item><item><title>Contraseña para restablecer un celular Lanix U210</title><link>https://linuxmanr4.com/2019/09/10/contrasena-para-restablecer-un-celular-lanix-u210/</link><pubDate>Tue, 10 Sep 2019 15:02:26 +0000</pubDate><guid>https://linuxmanr4.com/2019/09/10/contrasena-para-restablecer-un-celular-lanix-u210/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/20190910_084423.jpg" alt="Featured image of post Contraseña para restablecer un celular Lanix U210" />&lt;p>El celular &lt;a class="link" href="https://lanix.com/" target="_blank" rel="noopener"
>Lanix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
U210 es un celular económico que se vende por alrededor de 300 a 400 pesos mexicanos. Es un celular que cumple con las funciones más básicas de hacer y recibir llamadas, enviar mensajes y algo de reproducción de música.&lt;/p>
&lt;p>Estes es un &lt;a class="link" href="https://linuxmanr4.com/2016/03/30/fallo-de-envio-al-intentar-mandar-sms/" >teléfono de la vieja guardia&lt;/a>
, generalmente no presenta problemas hasta que los tiene.&lt;/p>
&lt;p>Muchas veces los problemas se solucionan reseteandolo a sus valores de fábrica.&lt;/p>
&lt;h2 id="la-contraseña">La contraseña.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/09/Lanix-U210-Restablecer-valores.jpg"
alt="Lanix U210 - Restablecer valores">&lt;figcaption>
&lt;p>Lanix U210 - Restablecer valores&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sin embargo, para poder hacerlo se requiere de una contraseña por default que no aparece por ningún lado. La busqué en varios lados, probé algunas combinaciones y sin mucho esfuerzo la encontré.&lt;/p>
&lt;p>Para restablecer el celular a sus valores de fábrica hay que ir a &lt;strong>Ajustes&lt;/strong> - &lt;strong>Restablecer valores&lt;/strong> y cuando pida la contraseña, teclear 4 ceros, o sea &lt;strong>0000&lt;/strong>.&lt;/p>
&lt;p>Después se reinicia solito el teléfono y eso es todo.&lt;/p></description></item><item><title>Semana de las Tecnologías de la Información BATEIL 2019</title><link>https://linuxmanr4.com/2019/08/23/semana-de-las-tecnologias-de-la-informacion/</link><pubDate>Fri, 23 Aug 2019 14:20:44 +0000</pubDate><guid>https://linuxmanr4.com/2019/08/23/semana-de-las-tecnologias-de-la-informacion/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/20190823_0918358807915427722191272.jpg" alt="Featured image of post Semana de las Tecnologías de la Información BATEIL 2019" />&lt;p>Es viernes, tempranito por la mañana y me encuentro en el &lt;a class="link" href="http://www.bateil.edu.mx/" target="_blank" rel="noopener"
>Bachillerato Técnico Industrial de la Laguna&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dándole una plática a los alumnos sobre Linux y Software Libre.&lt;/p>
&lt;p>De hecho este artículo es para hacerles una pequeña demostración de lo que es &lt;a class="link" href="https://wordpress.org/" target="_blank" rel="noopener"
>Wordpress&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como manejador de contenido en sitios web.&lt;/p>
&lt;h2 id="atendiendo-dudas">Atendiendo dudas.
&lt;/h2>&lt;p>Durante la plática fueron surgiendo algunas dudas que espero aclarar.&lt;/p>
&lt;h3 id="cómo-instalar-un-servidor-web">¿Cómo instalar un servidor web?
&lt;/h3>&lt;p>Se me ocurre que pueden usar &lt;a class="link" href="https://www.apachefriends.org/es/index.html" target="_blank" rel="noopener"
>XAMPP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es un servidor web apache e incluye PHP, MariaDB y Perl, es excelente para practicar o desarrollar un prototipo antes de instalar un servidor web en forma. Además esta disponible para Windows, Linux y Mac.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/xampp.png">
&lt;/figure>
&lt;h3 id="licencias-libres-en-android">Licencias libres en Android.
&lt;/h3>&lt;p>Como la plática es de software libre, encontré en mi teléfono la lista de programas con sus licencias de código abierto. Me fui a &lt;strong>Ajustes&lt;/strong> - &lt;strong>Acerca del teléfono&lt;/strong> - &lt;strong>Información Legal&lt;/strong> - &lt;strong>Licencias de código abierto&lt;/strong> y encontré esta información.&lt;/p>
&lt;p>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/licencias-de-codigo-abierto.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/licencia-apache.jpg">
&lt;/figure>
&lt;/p>
&lt;h3 id="la-llamada-de-issabel">La llamada de Issabel.
&lt;/h3>&lt;p>Al momento de hacer la llamada de demostración de Issabel no se que pasó que el teléfono nunca sonó.&lt;/p>
&lt;p>Las dos extensiones estaban conectadas al conmutador, pero nunca se realizó la llamada. No se si fue la red, la luna, el calor, no lo se, pero al momento de probar todo nuevamente (no me iba a quedar con la duda) todo funcionó correctamente.&lt;/p>
&lt;p>Lo que debió de haber pasado.&lt;/p>
&lt;h3 id="python-y-kml">Python y KML.
&lt;/h3>&lt;p>¿Se acuerdan del último ejemplo de Pyhton? el que convertía las coordenadas de &lt;a class="link" href="https://es.wikipedia.org/wiki/Sistema_de_coordenadas_universal_transversal_de_Mercator" target="_blank" rel="noopener"
>Mercator&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en un archivo &lt;a class="link" href="https://linuxmanr4.com/2018/09/29/gps-kml-python/" >KML&lt;/a>
que se puede abrir en Google Earth.&lt;/p>
&lt;p>Bueno pues este es el resultado que no se pudo ver porque algo le pasó al internet:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/area-natural-protegida-El-Sarnoso.jpg"
alt="Área Natural Protegida El Sarnoso">&lt;figcaption>
&lt;p>Área Natural Protegida El Sarnoso&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para los que quieran adentrarse un poco más en Python les recomiendo el libro &lt;a class="link" href="https://inventwithpython.com/es/" target="_blank" rel="noopener"
>Inventa tus propios juegos de computadora con Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esta disponible en varios formatos y en español.&lt;/p>
&lt;p>Si hay alguna duda pendiente, por favor dejen un comentario y se las responderé con mucho gusto.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Buscar y eliminar archivos en una sola línea con find.</title><link>https://linuxmanr4.com/2019/07/05/buscar-y-eliminar-archivos-en-una-sola-linea-con-find/</link><pubDate>Fri, 05 Jul 2019 20:43:19 +0000</pubDate><guid>https://linuxmanr4.com/2019/07/05/buscar-y-eliminar-archivos-en-una-sola-linea-con-find/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/07/borradores-find.jpg" alt="Featured image of post Buscar y eliminar archivos en una sola línea con find." />&lt;p>&lt;strong>find&lt;/strong> es de esos comandos en linux que demuestran el poder de la terminal de Linux. Se que a veces no parece lo más intuitivo, pero si se domina correctamente, una sola línea en la terminal ahorra mucho tiempo.&lt;/p>
&lt;p>Tratando de economizar algo de espacio en varios discos duros me encontré con esos archivitos &lt;strong>Thumb.db&lt;/strong>. Estos archivos generados automáticamente (creo que desde Windows XP) contienen las miniaturas de las &lt;a class="link" href="https://linuxmanr4.com/2022/01/21/convertir-todas-las-imagenes-de-una-carpeta-a-webp/" >imágenes de una carpeta&lt;/a>
. Entiendo que tienen su propósito, pero en &lt;a class="link" href="https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/" >Linux no los ocupo&lt;/a>
.&lt;/p>
&lt;p>Menciono a los archivos Thumb.db como ejemplo, pero este consejo se puede aplicar a cualquier grupo de archivos que pueda encontrar &lt;strong>find&lt;/strong>.&lt;/p>
&lt;h2 id="busca-y-encuentra">Busca y encuentra.
&lt;/h2>&lt;p>No es mala idea primero buscar los archivos que se quieren eliminar, digo, solo por seguridad, no vaya a ser que en el primer intento se eliminen archivos que quieres conservar.&lt;/p>
&lt;p>Supongamos que quieres buscar en una carpeta con Imágenes todos los archivos Thumbs.db, entonces tecleamos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">find /MiCarpetaConImagenes -name &amp;#34;Thumbs.db&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y te dará como resultado todos los archivos (incluyendo la ruta) que encontró.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/MiCarpetaConImagenes/Carpeta1/Thumbs.db
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/MiCarpetaConImagenes/Carpeta2/Thumbs.db
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/MiCarpetaConImagenes/Carpeta3/Thumbs.db
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">/MiCarpetaConImagenes/CarpetaN/Thumbs.db
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si todo parece correcto, entonces pasamos al siguiente paso.&lt;/p>
&lt;h2 id="busca-y-destruye">Busca y destruye.
&lt;/h2>&lt;p>Si quieres eliminar los archivos que encontraste, entonces agrega esto al final de tu comando de búsqueda.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">-exec rm -rf {} \;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa forma, la instrucción quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">find /MiCarpetaConImagenes -name &lt;span class="s2">&amp;#34;Thumbs.db&amp;#34;&lt;/span> -exec rm -rf &lt;span class="o">{}&lt;/span> &lt;span class="se">\;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y si ejecutan la búsqueda nuevamente, lo más probable es que ya no arroje resultados, pues porque esos archivos ya fueron eliminados.&lt;/p>
&lt;h3 id="la-opción-delete">La opción delete.
&lt;/h3>&lt;p>En las versiones más modernas de &lt;strong>find&lt;/strong> existe la opción &lt;strong>-delete&lt;/strong> que &lt;a class="link" href="https://linuxmanr4.com/2014/05/08/borrar-archivos-de-manera-segura-en-linux/" >borra los archivos&lt;/a>
que encuentra, pero si no funciona, pueden usar el consejo anterior.&lt;/p>
&lt;p>Dicho esto, en lugar de agregar la opción &lt;strong>-exec&lt;/strong> con sus argumentos, basta con incluir la opción &lt;strong>-delete&lt;/strong> para borrar los archivos y si quieres ver cuales son los archivos eliminados añade la opción &lt;strong>-print&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">find /MiCarpetaConImagenes -name &lt;span class="s2">&amp;#34;Thumbs.db&amp;#34;&lt;/span> -delete -print
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="busca-y-actúa">Busca y actúa
&lt;/h2>&lt;p>Como verán &lt;strong>find&lt;/strong> abre un montón de posibilidades. Se pueden buscar archivos para borrarlos, copiarlos, moverlos, jugar con &lt;a class="link" href="https://linuxmanr4.com/2014/08/19/expresiones-regulares-con-ruby/" >expresiones regulares&lt;/a>
, bueno, lo que guste y mande. Hay una parte de búsqueda y otra de acción. Lo que quieran hacer con los archivos es posible.&lt;/p>
&lt;h3 id="eliminar-archivos-de-respaldo-antiguos">Eliminar archivos de respaldo antiguos
&lt;/h3>&lt;p>Por ejemplo, se me ocurrió incluir en mi script de respaldos una rutina que elimine los archivos con una antigüedad mayor de 90 días.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">find /CarpetaRespaldos/ -type f -mtime +90 -delete -print
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El manual de &lt;a class="link" href="http://man7.org/linux/man-pages/man1/find.1.html" target="_blank" rel="noopener"
>find&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es muy completo, se los dejo para futuras referencias.&lt;/p></description></item><item><title>La historia de la tarjeta SIM que no era reconocida por su celular.</title><link>https://linuxmanr4.com/2019/06/21/la-historia-de-la-tarjeta-sim-que-no-era-reconocida-por-su-celular/</link><pubDate>Fri, 21 Jun 2019 22:13:25 +0000</pubDate><guid>https://linuxmanr4.com/2019/06/21/la-historia-de-la-tarjeta-sim-que-no-era-reconocida-por-su-celular/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/06/tarjeta-sim-precortada.jpg" alt="Featured image of post La historia de la tarjeta SIM que no era reconocida por su celular." />&lt;p>Mis usuarios no dejan de sorprenderme. Hace unos días me trajeron un teléfono de esos que tienen doble chip. El problema es que no reconocía la tarjeta SIM y por lo tanto no podía hacer llamadas.&lt;/p>
&lt;p>Parecía un problema sencillo (jajaja iluso de mí), al abrir el teléfono para revisarlo me di cuenta de que la tarjeta SIM fue recortada. No hay problema, debería de funcionar, yo mismo he recortado tarjetas SIM para que cupieran en espacios más pequeños. ( véase: &lt;a class="link" href="https://linuxmanr4.com/2013/01/21/como-recortar-una-tarjeta-sim-a-una-nanosim-para-el-iphone5/" >Cómo recortar una tarjeta SIM a NanoSIM para el iPhone5&lt;/a>
).&lt;/p>
&lt;p>La idea original era acomodar la tarjeta en un lugar adecuado, para luego fijarla con un poco de cinta adhesiva. Pero no importaba lo que hiciera no había señal. Definitivamente algo andaba mal con el teléfono.&lt;/p>
&lt;p>Afortunadamente era un teléfono que utiliza tornillos de cruz, así que busqué mis &lt;a class="link" href="https://web.archive.org/web/20210615010029/https://es.ifixit.com/Tienda/Tools/Essential-Electronics-Toolkit/IF145-348?o=2" target="_blank" rel="noopener"
>desarmadores de precisión&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para abrirlo y echarle un vistazo al interior.&lt;/p>
&lt;p>Sabes que algo anda mal cuando al abrir un aparato saltan piezas. En este caso, era una pieza, pero de la tarjeta SIM ¡OMG!.&lt;/p>
&lt;h2 id="el-problema-tarjeta-sim-precortada">El problema: tarjeta SIM precortada.
&lt;/h2>&lt;p>Las tarjetas SIM nuevas vienen precortadas, de esa forma tu eliges el tamaño adecuado y asunto arreglado ¿O no?. El problema es que si eres de esas personas que mudan frecuentemente de teléfono celular con el tiempo terminas con una tarjeta SIM para armar.&lt;/p>
&lt;p>Pues pasó que la tarjeta SIM se desarmó en el interior y una parte se atoró con los pines que deberían de hacer contacto con la parte dorada del chip. Todo parece indicar que el usuario intentó sacar la tarjeta usando demasiada fuerza lo que provocó que los pines fueran “guillotinados”.&lt;/p>
&lt;p>Así que mi usuario convirtió un celular de doble chip a chip sencillo. Lo bueno es que aún le quedaba un espacio, que si funcionaba.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/06/SIM-1-y-SIM-2.jpg"
alt="SIM 1 y SIM 2.">&lt;figcaption>
&lt;p>SIM 1 y SIM 2.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="limpieza-de-la-tarjeta-sim">Limpieza de la tarjeta SIM.
&lt;/h2>&lt;p>Un tip, para limpiar un chip y asegurarnos que haga un buen contacto con el teléfono lo que utilizo es una goma de borrar de migajón hasta recuperar un poco el brillo de los contactos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/06/limpieza-de-la-tarjeta-sim.jpg">
&lt;/figure>
&lt;p>Es importante quitar todos los residuos del borrador con un cepillo de dientes usado o algo similar.&lt;/p>
&lt;p>Mi recomendación es que le pongas un poco de cinta adhesiva transparente antes de colocar la tarjeta para que todo se conserve en su lugar y no en partes en el interior de tu teléfono.&lt;/p></description></item><item><title>Existe en el sistema de archivos : Problema al actualizar Manjaro.</title><link>https://linuxmanr4.com/2019/05/14/existe-en-el-sistema-de-archivos-problema-al-actualizar-manjaro/</link><pubDate>Tue, 14 May 2019 15:47:15 +0000</pubDate><guid>https://linuxmanr4.com/2019/05/14/existe-en-el-sistema-de-archivos-problema-al-actualizar-manjaro/</guid><description>&lt;p>La primera vez que me topé con el problema de &amp;ldquo;Existe en el sistema de archivos&amp;rdquo; eran pocos los archivos con este conflicto. En su momento lo que hice fue eliminar esos archivos, actualizar normalmente y seguir adelante.&lt;/p>
&lt;p>Al borrar los archivos que me daban problemas se desaparecía el motivo del error y el sistema se actualizaba sin problemas.&lt;/p>
&lt;p>Sin embargo, esta vez me tocó actualizar una portátil que tenía ya bastante tiempo sin usar y el listado de archivos con este conflicto resultó numeroso. Era tiempo de cambiar de enfoque.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/05/archivo-existe-en-el-sistema-de-archivos.jpg"
alt="archivo existe en el sistema de archivos.">&lt;figcaption>
&lt;p>archivo existe en el sistema de archivos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Después de probar varios consejos encontré en este artículo de los foros de Manjaro: &lt;em>Can’t Update - lots of errors KDE&lt;/em> Manjaro una solución que me funcionó.&lt;/p>
&lt;p>Para actualizar usé &lt;strong>pacman&lt;/strong> con los siguientes parámetros.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyuu --overwrite &amp;#39;*&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esta forma, al encontrar un archivo con conflicto, lo que hace es sobreescribirlo y continúa sin problemas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/05/Actualizaci%C3%B3n-del-sistema-exitosa.png"
alt="Actualización del sistema exitosa.">&lt;figcaption>
&lt;p>Actualización del sistema exitosa.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El problema &lt;strong>Existe en el sistema de archivos&lt;/strong> no es frecuente. Pero si me ha pasado en más de una ocasión.&lt;/p>
&lt;p>Espero que este consejo les ayude a solucionar este problema.&lt;/p>
&lt;h3 id="otros-problemas-al-actualizar-manjaro">Otros problemas al actualizar Manjaro.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2014/10/14/problemas-con-la-tarjeta-nvidia-al-actualizar-manjaro/" >Problemas con la tarjeta nVidia al actualizar Manjaro&lt;/a>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2019/03/29/error-de-gpgme-no-hay-datos-un-problema-recurrente/" >Error de GPGME: No hay datos, un problema recurrente&lt;/a>
.&lt;/li>
&lt;/ul></description></item><item><title>Como agregar tareas a Cron en pfSense</title><link>https://linuxmanr4.com/2019/04/26/agregar-tareas-cron-pfsense/</link><pubDate>Fri, 26 Apr 2019 20:47:38 +0000</pubDate><guid>https://linuxmanr4.com/2019/04/26/agregar-tareas-cron-pfsense/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/04/cron-jobs-en-pfsense.jpg" alt="Featured image of post Como agregar tareas a Cron en pfSense" />&lt;p>Si una tarea se vuelve rutinaria, lo mejor es buscar una forma de automatizarla.&lt;/p>
&lt;p>Soy nuevo con pfSense, constantemente le estoy haciendo ajustes, pero hubo una tarea que empecé a hacer todos los días. Para evitar el uso de Internet fuera del horario de oficina decidí desactivar la tarjeta de red, algo que puedo hacer sin problemas desde la página web de pfSense.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/04/Habilitando-una-interface.png"
alt="Habilitar una interface en pfSense.">&lt;figcaption>
&lt;p>Habilitar una interface en pfSense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Basta con ir al menú &lt;strong>Interfaces&lt;/strong>, elegir la tarjeta de red del proveedor de internet y deshabilitarla.&lt;/p>
&lt;p>En la mañana se vuelve a activar y listo ¡Internet para todos!. Pero hacer eso todos los días era algo tedioso. Así que llegó la hora de automatizar la tarea.&lt;/p>
&lt;h2 id="habemus-cronos">¡Habemus Cronos!
&lt;/h2>&lt;p>Para empezar tuve que investigar un poco, ¿Recuerdan que [pfSense](/category/&amp;ldquo;linux y software libre&amp;rdquo;/pfsense/) está basado en &lt;a class="link" href="https://www.freebsd.org/" target="_blank" rel="noopener"
>FreeBSD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
?. Y aunque puede haber muchas similitudes con Linux no necesariamente tiene que ser igual.&lt;/p>
&lt;p>Tuve suerte, parece que no hay muchas diferencias con &lt;a class="link" href="https://www.freebsd.org/doc/en/books/handbook/configtuning-cron.html" target="_blank" rel="noopener"
>cron en FreeBSD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y más aún, pfSense incluye un paquete que ayuda a configurar las tareas ¡Excelente!.&lt;/p>
&lt;p>El paquete se llama &lt;strong>Cron&lt;/strong> (no se la complicaron con el nombre) y se puede instalar desde el &lt;strong>Package Manager&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/04/Paquete-Cron-en-pfSense.png"
alt="El paquete Cron ya instalado en pfSense.">&lt;figcaption>
&lt;p>El paquete Cron ya instalado en pfSense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Cron&lt;/strong> aparece en el menú &lt;strong>Services&lt;/strong> y realmente es muy sencillo agregar una tarea.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/04/agregar-un-cronjob-a-pfsense.png">
&lt;/figure>
&lt;p>Si se pierden un poco con la configuración de los trabajos pueden consultar esta página: &lt;a class="link" href="https://crontab.guru/" target="_blank" rel="noopener"
>Crontab Gurú&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, sobre todo si sus necesidades de programar eventos son algo exóticas.&lt;/p>
&lt;p>En mi caso es muy sencillo, necesitaba apagar la tarjeta de red por las tardes y en la mañana volverla a encender.&lt;/p>
&lt;h2 id="cómo-habilitar-una-tarjeta-de-red-en-pfsense">Cómo habilitar una tarjeta de red en pfSense.
&lt;/h2>&lt;p>Con Cron ya instalado ahora solo me falta saber el comando adecuado para activar y desactivar una tarjeta de red.&lt;/p>
&lt;p>Primero es importante saber el nombre de la tarjeta de red, se puede consultar en el mismo menú &lt;strong>Interfaces&lt;/strong>, en mi caso es la tarjeta &lt;strong>ste0&lt;/strong>.&lt;/p>
&lt;h3 id="para-apagar-una-tarjeta">Para apagar una tarjeta
&lt;/h3>&lt;p>Hay que teclear esto en la parte que dice &lt;strong>Command&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ifconfig ste0 down
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="para-activar-una-tarjeta-de-red">Para activar una tarjeta de red.
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ifconfig ste0 up
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Así de simple. Para más información pueden consultar &lt;a class="link" href="https://www.cyberciti.biz/tips/freebsd-how-to-start-restart-stop-network-service.html" target="_blank" rel="noopener"
>FreeBSD: How To Start / Stop / Restart Network and Routing Services&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Espero que este artículo les sea de utilidad.&lt;/p></description></item><item><title>Error de GPGME: No hay datos, un problema recurrente.</title><link>https://linuxmanr4.com/2019/03/29/error-de-gpgme-no-hay-datos-un-problema-recurrente/</link><pubDate>Fri, 29 Mar 2019 16:46:07 +0000</pubDate><guid>https://linuxmanr4.com/2019/03/29/error-de-gpgme-no-hay-datos-un-problema-recurrente/</guid><description>&lt;p>Ya me había aparecido el Error de GPGME: No hay datos. Lo solucioné en su momento pero no tomé notas. Volvió a aparecer, les comento como lo solucioné.&lt;/p>
&lt;p>Al principio intenté con mi propio consejo: &lt;a class="link" href="https://linuxmanr4.com/2014/09/26/problemas-al-actualizar-manjaro/" >Problemas al actualizar Manjaro&lt;/a>
pero no funcionó, parece que el origen del problema es muy diferente.&lt;/p>
&lt;h2 id="el-error">El error.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/03/Error-GPGME-No-hay-datos.png"
alt="Error GPGME: No hay datos.">&lt;figcaption>
&lt;p>Error GPGME: No hay datos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al intentar actualizar el sistema con &lt;strong>sudo pacman -Syyu&lt;/strong> aparece el error.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:: Sincronizando las bases de datos de los paquetes...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> core 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> core.sig 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: no se pudo actualizar core (base de datos no válida o dañada (firma PGP))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> extra 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> extra.sig 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: no se pudo actualizar extra (base de datos no válida o dañada (firma PGP))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> community 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> community.sig 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: no se pudo actualizar community (base de datos no válida o dañada (firma PGP))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> multilib 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> multilib.sig 43.0 B 0.00B/s 00:00 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: no se pudo actualizar multilib (base de datos no válida o dañada (firma PGP))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: no se pudo sincronizar ninguna base de datos
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El problema es que no puedes actualizar o instalar paquetes. Y eso si que es un problema.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;h3 id="los-mirrors">¿Los Mirrors?
&lt;/h3>&lt;p>Al principio intenté actualicé la lista de mirrors con &lt;strong>sudo pacman-mirrors -g&lt;/strong> pero esto no soluciona el problema. Al intentar actualizar me apareció el mismo mensaje de error, pero me estaba acercando.&lt;/p>
&lt;h3 id="el-país">¿El País?
&lt;/h3>&lt;p>En los foros de &lt;strong>manjaro&lt;/strong> sugerían actualizar la lista de mirrors cercanos geográficamente.&lt;/p>
&lt;p>Para obtener la lista de países hay que teclear: &lt;strong>pacman-mirrors &amp;ndash;country-list&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pacman-mirrors --country-list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Australia
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Austria
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Bangladesh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Belarus
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Belgium
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Brazil
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Bulgaria
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Canada
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Chile
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">China
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Colombia
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Costa_Rica
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Czech
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Denmark
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Ecuador
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">France
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Georgia
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Germany
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Greece
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Hong_Kong
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Hungary
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Indonesia
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Iran
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Italy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Japan
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Kenya
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Netherlands
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">New_Zealand
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Philippines
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Poland
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Portugal
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Russia
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Singapore
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">South_Africa
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">South_Korea
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Spain
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Sweden
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Taiwan
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Turkey
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Ukraine
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">United_Kingdom
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">United_States
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Vietnam
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lamentablemente México no aparece en la lista de países y lo más cercano que tengo son los Estados Unidos, así que ni modo, con su permisito Mr. Trump.&lt;/p>
&lt;p>Para actualizar la lista de mirrors usando sólamente los de Estados Unidos tecleamos: &lt;strong>sudo pacman-mirrors -c United_States&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">mirrors&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">repo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">org&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">User&lt;/span> &lt;span class="n">generated&lt;/span> &lt;span class="n">mirror&lt;/span> &lt;span class="n">list&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="o">------------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Custom&lt;/span> &lt;span class="n">mirror&lt;/span> &lt;span class="n">file&lt;/span> &lt;span class="n">saved&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pacman&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">custom&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Using&lt;/span> &lt;span class="n">default&lt;/span> &lt;span class="n">mirror&lt;/span> &lt;span class="n">file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Querying&lt;/span> &lt;span class="n">mirrors&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">This&lt;/span> &lt;span class="n">may&lt;/span> &lt;span class="n">take&lt;/span> &lt;span class="n">some&lt;/span> &lt;span class="n">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">1.687&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">repo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ialab&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dsu&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">0.231&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">repo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ialab&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dsu&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">0.989&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">distro&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ibiblio&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">2.821&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ocf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">berkeley&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">2.500&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirror&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">math&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">princeton&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pub&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">1.945&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gigenet&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">0.232&lt;/span> &lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gigenet&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Writing&lt;/span> &lt;span class="n">mirror&lt;/span> &lt;span class="n">list&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">repo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ialab&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dsu&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gigenet&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">distro&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ibiblio&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirror&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">math&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">princeton&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pub&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">United_States&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">mirrors&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ocf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">berkeley&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">edu&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manjaro&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">stable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">::&lt;/span>&lt;span class="n">INFO&lt;/span> &lt;span class="n">Mirror&lt;/span> &lt;span class="n">list&lt;/span> &lt;span class="n">generated&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">saved&lt;/span> &lt;span class="n">to&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pacman&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">mirrorlist&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Una vez hecho esto la actualización funcionó sin problemas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: Error de GPGME: No hay datos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:: Sincronizando las bases de datos de los paquetes...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> core 147.9 KiB 162K/s 00:01 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> extra 1867.1 KiB 205K/s 00:09 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> community 5.2 MiB 290K/s 00:18 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> multilib 183.7 KiB 273K/s 00:01 [----------------------------------------------------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:: Iniciando actualización completa del sistema...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">...el sistema ya está actualizado.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="referencias">Referencias
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.manjaro.org/Pacman-mirrors" target="_blank" rel="noopener"
>Pacman-mirrors Wiki de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://forum.manjaro.org/t/issues-while-updating-upgrading-system-error-gpgme-error-no-data/91779" target="_blank" rel="noopener"
>Issues while updating/upgrading system (Error: GPGME Error: No data)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Torreón antiguo una comunidad de Google Plus.</title><link>https://linuxmanr4.com/2019/02/19/torreon-antiguo-comunidad-google-plus/</link><pubDate>Tue, 19 Feb 2019 15:44:43 +0000</pubDate><guid>https://linuxmanr4.com/2019/02/19/torreon-antiguo-comunidad-google-plus/</guid><description>&lt;p>Desde el año pasado avisaron el cierre de Google Plus tal y como la conocemos. Para muchos, esta noticia pasaría sin pena ni gloria, de hecho, una de las razones de su cierre es la baja popularidad de esta red social.&lt;/p>
&lt;p>Sin embargo, hubo una comunidad que me pareció necesario rescatar de la papelera de Google.&lt;/p>
&lt;p>&lt;strong>Torreón Antiguo&lt;/strong> es una comunidad que habla sobre el pasado y presente de mi terruño. Esta comunidad explota la nostalgia de los recuerdos, devela secretos de los edificios y pone el dedo en la llaga cuando debe de hacerlo.&lt;/p>
&lt;h2 id="el-respaldo-de-google-plus">El respaldo de Google Plus.
&lt;/h2>&lt;p>Recibí un correo en el que daban las instrucciones para hacer y descargar un respaldo de las distintas opciones de Google Plus. Tuve miedo de exceder algún límite de tamaño, así que hice un respaldo solamente de las comunidades, pero ¡oh decepción!, en lugar de recibir un respaldo con las imágenes y los textos, recibí una lista de enlaces a cada publicación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/02/listado-de-publicaciones.png"
alt="Un listado de los artículos publicados en Torreón Antiguo.">&lt;figcaption>
&lt;p>Un listado de los artículos publicados en Torreón Antiguo.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No se si esos enlaces seguirán funcionando después de marzo del 2019. No me podía arriesgar a a perderlo todo, así que hice un pequeño respaldo de las publicaciones.&lt;/p>
&lt;p>Para eso usé la herramienta &lt;a class="link" href="https://linuxmanr4.com/2017/01/31/copiar-un-sitio-web-para-leerlo-fuera-de-linea/" >HTTrack&lt;/a>
para hacer un respaldo fuera de línea. El respaldo no es perfecto pero algo es algo.&lt;/p>
&lt;p>Para respaldar las páginas usé el listado de URL’s que me entregó Google, con un poco de paciencia el respaldo estaba más o menos listo.&lt;/p>
&lt;h2 id="python-y-beatifulsoup">Python y BeatifulSoup
&lt;/h2>&lt;p>El respaldo estaba hecho, pero la lista de enlaces eran por decir lo menos &lt;em>“poco amigables”&lt;/em> , así que aproveché la potencia de &lt;strong>Python&lt;/strong> y &lt;strong>BeatifulSoup&lt;/strong> para hacer un pequeño programa que cambiara la descripción de los enlaces por los títulos de cada publicación. Hacerlo a mano era una locura.&lt;/p>
&lt;p>De esa forma, queda mucho más claro el tema relacionado con cada artículo publicado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/02/python-y-beatifulsoup.png"
alt="El código en Python que logró mejorar la descripción de los enlaces. ">&lt;figcaption>
&lt;p>El código en Python que logró mejorar la descripción de los enlaces.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="bootstrap">Bootstrap
&lt;/h2>&lt;p>Ahora solo faltaba unir todo en un mismo lugar, para eso aproveché un plantilla gratuita de &lt;a class="link" href="https://web.archive.org/web/20190411085221/https://bootstrapious.com/landing-pages" target="_blank" rel="noopener"
>Bootstrapious&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que son una maravilla. Se aprende mucho viendo su código.&lt;/p>
&lt;p>Desde hace tiempo quería hacer algo con &lt;a class="link" href="https://es.wikipedia.org/wiki/Bootstrap_%28framework%29" target="_blank" rel="noopener"
>bootstrap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y este mini-proyecto me dio la oportunidad de utilizarlo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/02/presentacion-de-la-comunidad.jpg"
alt="La portada de la página de Torreón Antiguo.">&lt;figcaption>
&lt;p>La portada de la página de Torreón Antiguo.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-resultado">El resultado
&lt;/h2>&lt;p>Poniendo todas las piezas de este rompecabezas en su lugar, solo falta subirlo a la red para que estuviera disponible y aquí lo tienen.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/torreon/" >Torreón Antiguo, una comunidad de Google Plus&lt;/a>
&lt;/p>
&lt;p>Cualquier corrección o comentario favor de hacérmelo saber, este fue un proyecto relámpago así que supongo que todavía se le pueden hacer ajustes.&lt;/p></description></item><item><title>pfBlockerNG ayuda a bloquear publicidad, sitios maliciosos y otras amenazas.</title><link>https://linuxmanr4.com/2019/01/25/pfblockerng-ayuda-a-bloquear-publicidad-sitios-maliciosos-y-otras-amenazas/</link><pubDate>Fri, 25 Jan 2019 18:02:45 +0000</pubDate><guid>https://linuxmanr4.com/2019/01/25/pfblockerng-ayuda-a-bloquear-publicidad-sitios-maliciosos-y-otras-amenazas/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/pfblockerng-en-accion.jpg"
alt="pfBlockerNG en acción.">&lt;figcaption>
&lt;p>pfBlockerNG en acción.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para los que siguen este humilde espacio sabrán que cambie &lt;a class="link" href="https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/" >ipCop por pfSense&lt;/a>
. Todo va tiempo en popa, todavía me estoy acostumbrando a su interfaz y manera de hacer las cosas.&lt;/p>
&lt;p>Por ejemplo, ya tengo configurado el Proxy con Squid, también está listo &lt;a class="link" href="https://en.wikipedia.org/wiki/SquidGuard" target="_blank" rel="noopener"
>squidGuard&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para bloquear sitios web, pero &lt;a class="link" href="https://www.pfsense.org/" target="_blank" rel="noopener"
>pfSense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ofrece más opciones que merecen darles un vistazo y al revisar la lista de paquetes disponibles me encontré con &lt;strong>pfBlockerNG&lt;/strong>.&lt;/p>
&lt;p>Siempre es una buena idea invertir en seguridad. Internet ya no es aquel lugar tranquilo en el que solía pasear por las tardes. Ahora parece más bien un callejón oscuro en el que estas esperando a que te asalten.&lt;/p>
&lt;p>Las noticias sobre vulnerabilidades y robo de contraseñas son cada vez más frecuentes. Simplemente, no hace mucho se hizo pública la filtración conocida como &lt;a class="link" href="https://www.troyhunt.com/the-773-million-record-collection-1-data-reach/" target="_blank" rel="noopener"
>Collection #1&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con un número importante de cuentas comprometidas.&lt;/p>
&lt;p>Y ya no hablemos del &lt;a class="link" href="https://es.wikipedia.org/wiki/Ransomware" target="_blank" rel="noopener"
>ramsonware&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el que tus archivos son secuestrados hasta el pago de cierta cantidad o la creatividad mostrada por el &lt;a class="link" href="https://es.wikipedia.org/wiki/Phishing" target="_blank" rel="noopener"
>phishing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
cuando te llega un correo avisando que hay &lt;a class="link" href="https://linuxmanr4.com/2014/07/18/hsbc-y-su-correo-de-notificacion-de-transferencia-de-fondos-su-favor/" >dinero que no se ha podido depositar&lt;/a>
en tu cuenta.&lt;/p>
&lt;h2 id="cómo-funciona-pfblockerng">¿Cómo funciona pfBlockerNG?
&lt;/h2>&lt;p>Trataré de explicarlo de una forma sencilla. Supongamos por un momento que usted detecta un &lt;a class="link" href="https://linuxmanr4.com/2012/11/09/respaldando-un-sitio-web-con-wget/" >sitio web&lt;/a>
poco confiable y quiere que los clientes de la red no tengan acceso a ese sitio.&lt;/p>
&lt;p>Una forma de evitarlo es bloqueando el acceso a ese sitio configurando una regla en el &lt;em>firewall&lt;/em>(Recuerden que pfSense es un &lt;a class="link" href="https://es.wikipedia.org/wiki/Cortafuegos_%28inform%C3%A1tica%29" target="_blank" rel="noopener"
>cortafuegos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) y asunto resuelto.&lt;/p>
&lt;p>Hacer esto sitio por sitio e identificar los lugares peligrosos en internet es lo realmente complicado.&lt;/p>
&lt;p>Es ahí donde entra pfBlockerNG, este software se encarga de descargar listas de sitios de distintas categorías y fuentes de forma automática y además se encarga de establecer las reglas en el firewall que protegerán a los usuarios ¡Genial!.&lt;/p>
&lt;h2 id="algunas-recomendaciones-al-instalar-pfblockerng">Algunas recomendaciones al instalar pfBlockerNG.
&lt;/h2>&lt;p>pfBlockerNG ya tiene algo de tiempo, pero para mi es algo totalmente nuevo. Así que cuando me tocó hacer mi investigación me encontré con varios tutoriales que no estaban muy actualizados.&lt;/p>
&lt;p>Aunque en esencia la filosofía de pfBlockerNG es la misma, solo hay que seguir algunas recomendaciones.&lt;/p>
&lt;h3 id="primero-actualizar-pfsense">Primero, actualizar pfSense.
&lt;/h3>&lt;p>Antes de instalar pfBlockerNG es importante actualizar a la versión más reciente de pfSense, sobre todo porque hubo un cambio en la versión de PHP (ahora usa la versión 7) y no actualizar podría romper algunas cosas si intenta instalar pfBlockerNG.&lt;/p>
&lt;p>Al momento de escribir este artículo tengo instalada la versión 2.4.4 para que lo tomen en cuenta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/actualizar-pfsense.png"
alt="actualizar a la versión más reciente de pfsense.">&lt;figcaption>
&lt;p>actualizar a la versión más reciente de pfsense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="instala-la-versión-de-desarrollo">Instala la versión de desarrollo.
&lt;/h3>&lt;p>La versión de desarrollo es lo suficientemente estable como para usarse en producción.&lt;/p>
&lt;p>La principal ventaja que tiene la versión de desarrollo es que es mucho más fácil de configurar y vale la pena. Es fácil perderse con tantas opciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/pfblockerng-de-desarrollo.png"
alt="El paquete se llama pfBlockerNG-devel.">&lt;figcaption>
&lt;p>El paquete se llama pfBlockerNG-devel.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="sigue-al-hechicero">Sigue al hechicero.
&lt;/h3>&lt;p>Por la misma razón, de que es muy fácil romper algo al configurar pfBlockerNG es que existe un &lt;strong>Wizard&lt;/strong>.&lt;/p>
&lt;p>Este asistente hace una configuración inicial muy sencilla que funciona y que además, en el caso de una emergencia (o sea, si te pasaste de &lt;em>&amp;ldquo;creativo&amp;rdquo;&lt;/em>) te puede ayudar a regresar al inicio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/wizard-de-pfblockerng.png"
alt="El asistente de configuración.">&lt;figcaption>
&lt;p>El asistente de configuración.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo tengan cuidado, porque la configuración anterior será eliminada. Usa esta herramienta sabiamente.&lt;/p>
&lt;h3 id="empieza-poco-a-poco">Empieza poco a poco.
&lt;/h3>&lt;p>Bueno, ya tienes un firewall funcionando que empieza a bloquear sitios peligrosos y así. Probablemente vas a querer empezar a agregar algunas listas y hacer algunos ajustes y esta bien.&lt;/p>
&lt;p>Sólo hay que tener en cuenta que algunas opciones de este programa pueden ser grandes consumidores de memoria.&lt;/p>
&lt;p>Algunas listas son enormes y no te vas a dar cuenta hasta que baje el desempeño del equipo que tienes configurado. En lo personal, después de instalar pfBlockerNG si noté un aumento en el consumo, pero creo que todavía tengo margen de maniobra.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/consumo-de-memoria.png"
alt="Después de instalar pfBlockerNG. El consumo de RAM aumentó un poco, pero todo bien.">&lt;figcaption>
&lt;p>Después de instalar pfBlockerNG. El consumo de RAM aumentó un poco, pero todo bien.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="preparate-para-atender-llamadas-de-usuarios">Preparate para atender llamadas de usuarios.
&lt;/h2>&lt;p>De que se van a quejar, se van a quejar. Algunos sitios piden amablemente que habilites la publicidad y muestran un enorme mensaje. Otros están bien con eso.&lt;/p>
&lt;p>Lo peor es cuando te enteras que no pueden entrar a algunos sitios que si disparan algunas alarmas en tu cabeza. Hay que explicar la situación y sobre todo, decirles que es para su propia seguridad.&lt;/p>
&lt;p>Existe una opción en Firewall / pfBlockerNG / &lt;strong>DNSBL&lt;/strong> que se llama &lt;strong>TOP1M Whitelist&lt;/strong>. Es una opción un poco controvertida. Básicamente es una lista blanca de sitios populares y si, algunos incluyen publicidad, no se puede quitar todo de golpe.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/TOP1M-Whitelist.png"
alt="La opción TOP1M para evitar dolores de cabeza.">&lt;figcaption>
&lt;p>La opción TOP1M para evitar dolores de cabeza.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="estar-al-pendiente">Estar al pendiente.
&lt;/h2>&lt;p>Para estar al pendiente (y asustarme un poco), decidí colocar en la pantalla principal el conteo de bloqueos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/reportes.png"
alt="Reporte de bloqueos.">&lt;figcaption>
&lt;p>Reporte de bloqueos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me llamo la atención tener 19 bloqueos de &lt;a class="link" href="https://es.malwarebytes.com/cryptojacking/" target="_blank" rel="noopener"
>Cryptojackers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, una nueva modalidad de minar criptomonedas usando los recursos de las computadoras que visitan algunos sitios. ¿Se acuerdan de &lt;a class="link" href="https://www.xataka.com/empresas-y-economia/si-visitas-the-pirate-bay-podrias-estar-minando-criptomonedas-para-ellos-sin-saberlo" target="_blank" rel="noopener"
>Piratebay&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
?.&lt;/p>
&lt;h2 id="en-resumen">En resumen.
&lt;/h2>&lt;p>pfBlockerNG está disponible en pfSense, no instalarlo sería como desperdiciar una muy buena opción de seguridad. A menos que se disponga de un equipo muy limitado en recursos pfBlockerNG vale totalmente la pena el tiempo que le inviertan en la configuración.&lt;/p>
&lt;h2 id="referencias">Referencias.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://x.com/BBcan177" target="_blank" rel="noopener"
>Twitter de BBCan177&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://www.patreon.com/pfBlockerNG" target="_blank" rel="noopener"
>BBcan177 is creating pfBlockerNG: A Firewall - IP and Domain Management package!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.linuxincluded.com/block-ads-malvertising-on-pfsense-using-pfblockerng-dnsbl/" target="_blank" rel="noopener"
>Block Ads &amp;amp; Malvertising on PFSense Using pfBlockerNG (DNSBL)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>Como hacer chroot en Manjaro</title><link>https://linuxmanr4.com/2019/01/04/como-hacer-chroot-en-manjaro/</link><pubDate>Fri, 04 Jan 2019 20:12:16 +0000</pubDate><guid>https://linuxmanr4.com/2019/01/04/como-hacer-chroot-en-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/chroot.jpg" alt="Featured image of post Como hacer chroot en Manjaro" />&lt;p>Ahí les va la historia con la que comienzo este año. Me disponía a instalar felizmente las actualizaciones en una portátil que tengo con Manjaro.&lt;/p>
&lt;p>Ya había descargado todos los paquetes y se encontraba en el proceso de instalación de los mismos. Lo de rutina pues. Al voltear a ver como iba el proceso me di cuenta de que no avanzaba, se había detenido ¡Empezaron a sonar las sirenas!.&lt;/p>
&lt;p>El sistema se había congelado por completo, a veces lo hace, es un equipo viejo, pero lo hizo en el peor momento. Tuve que reiniciar el equipo a lo rudo y como era de esperarse, el sistema no arrancó. ¡Vaya forma de comenzar el año!.&lt;/p>
&lt;p>La solución más fácil era reinstalar el sistema (como en Windows ;) ). Lo malo es que ya tengo el equipo muy configurado para ciertas situaciones y valoré el tiempo que iba a invertir en regresarlo a ese estado. Así que la mejor opción era intentar recuperar el arranque del sistema.&lt;/p>
&lt;h2 id="chroot-al-rescate">chroot al rescate.
&lt;/h2>&lt;p>Tratar de explicar &lt;a class="link" href="https://es.wikipedia.org/wiki/Chroot" target="_blank" rel="noopener"
>chroot&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
puede ser complicado. En mi caso, utilizo &lt;strong>chroot&lt;/strong> para poder acceder y trabajar en la carpeta raíz que está en mi disco duro (no en la usb de arranque).&lt;/p>
&lt;p>Para lograr hacer chroot voy a explicar el proceso por partes. ¿Listo? ¡Empezamos!.&lt;/p>
&lt;h2 id="arrancar-manjaro-desde-una-usb">Arrancar Manjaro desde una USB.
&lt;/h2>&lt;p>Al usar Manjaro no tengo que reinstalar todo el sistema frecuentemente, así que no tenía una memoria usb de arranque a la mano.&lt;/p>
&lt;p>Al buscar la imagen de Manjaro veo que el sitio ha cambiado mucho. Descargué la versión XFCE de 64 bits.&lt;/p>
&lt;p>&lt;a class="link" href="https://manjaro.org/download/xfce/" target="_blank" rel="noopener"
>Manjaro XFCE 64 bits&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Un consejo, utilicen el archivo &lt;em>torrent&lt;/em> para la descarga. Es lo mejor cuando se trata de archivos grandes.&lt;/p>
&lt;p>Lo que sigue es grabar la imagen que descargamos a un dispositivo USB. Para eso les recomiendo leer &lt;a class="link" href="https://linuxmanr4.com/2017/07/06/usb-de-arranque/" >Varias formas de hacer una USB de arranque&lt;/a>
.&lt;/p>
&lt;p>Conectar la memoria a la computadora, iniciar Manjaro desde la USB y esperar que arranque el equipo.&lt;/p>
&lt;h2 id="identificar-las-particiones">Identificar las particiones.
&lt;/h2>&lt;p>Es importante identificar la &lt;a class="link" href="https://linuxmanr4.com/2014/03/20/aumentar-el-tamano-de-la-particion-root-en-ipcop-2/" >partición de root&lt;/a>
que esta en el disco duro. Para eso abrí una terminal y teclee lo siguiente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo su
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para que todos los siguientes comandos se ejecuten como el &lt;strong>superusuario&lt;/strong> y no tener problemas de permisos. Y luego &amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">blkid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/Identificar-las-particiones.jpg"
alt="Encuentra la partición raíz.">&lt;figcaption>
&lt;p>Encuentra la partición raíz.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen, mi partición raíz es &lt;strong>sda2&lt;/strong>, claro que la etiqueta &lt;strong>ManjaroRoot&lt;/strong> da una buena pista.&lt;/p>
&lt;h2 id="montar-la-carpeta-raíz">Montar la carpeta raíz.
&lt;/h2>&lt;p>Una vez identificada la partición que contiene mi instalación de Manjaro lo que sigue es montarla en la carpeta &lt;strong>/mnt&lt;/strong> (en mi caso ya estaba creada).&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mount /dev/sda2 /mnt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/montar-mnt.jpg"
alt="Monjate de la carpeta raíz en la carpeta /mnt">&lt;figcaption>
&lt;p>Monjate de la carpeta raíz en la carpeta /mnt&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="instalar-mhwd-chroot">Instalar mhwd-chroot.
&lt;/h2>&lt;p>Esta parte es la más &lt;em>tricky&lt;/em> del asunto. Este programa automatiza una buena parte del proceso y vale la pena instalarlo. Para hacerlo ejecutamos&amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pacman -Sy mhwd-chroot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/instalar-mhwd-chroot.jpg"
alt="mhwd-chroot instalado.">&lt;figcaption>
&lt;p>mhwd-chroot instalado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ejecutar-mhwd-chroot">Ejecutar mhwd-chroot
&lt;/h2>&lt;p>Una vez instalado &lt;strong>mhwd-chroot&lt;/strong> solo falta ejecutarlo y verán que se abre una terminal nueva.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/chroot-listo.jpg"
alt="chroot listo y funcionando.">&lt;figcaption>
&lt;p>chroot listo y funcionando.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora si, en la ventana nueva puedo escribir comandos para rescatar el arranque de mi instalación de Manjaro.&lt;/p>
&lt;p>En mi caso fue terminar la actualización del sistema, reinstalar el kernel de linux y crear un nuevo menú de grub. No hago una descripción detallada de estas tareas porque pueden variar mucho dependiendo de cada caso.&lt;/p>
&lt;p>Y con esto mis estimados 4 lectores finalizo el primer artículo del año.&lt;/p>
&lt;h2 id="referencias">Referencias.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://medium.com/@cecildt/fixing-manjaro-linux-boot-error-unable-to-find-root-device-25d59998a8b8" target="_blank" rel="noopener"
>Fixing Manjaro Linux Boot Error — Unable to find root device&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul>
&lt;p>&lt;em>Si este consejo no funciona, por favor lean este otro artículo: &lt;a class="link" href="https://linuxmanr4.com/2020/01/29/no-se-pudo-arrancar-la-entrada-predeterminada-ni-la-de-reserva/" >No se pudo arrancar la entrada predeterminada ni la de reserva&lt;/a>
. Ahí encontrarán otro modo de ejecutar chroot.&lt;/em>&lt;/p></description></item><item><title>Mis inicios con pfSense, comienza la aventura ¡Ahora sin Linux!</title><link>https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/</link><pubDate>Fri, 07 Dec 2018 19:46:33 +0000</pubDate><guid>https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/12/thomas-jensen-1074967-unsplash-switch.jpg" alt="Featured image of post Mis inicios con pfSense, comienza la aventura ¡Ahora sin Linux!" />&lt;p>Inicie un proceso de transición de [ipCop](/category/&amp;ldquo;linux y software libre&amp;rdquo;/ipcop-2/) a &lt;strong>pfSense&lt;/strong>, no es que ipCop fallara, sigue haciendo lo suyo sin queja, pero hubo dos razones que provocaron el cambio.&lt;/p>
&lt;p>La primera es que parece que le dieron fin al proyecto de &lt;a class="link" href="https://es.wikipedia.org/wiki/IPCop" target="_blank" rel="noopener"
>ipCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ha pasado mucho tiempo desde la última actualización. El sitio web ya no muestra la información de la distribución y los foros también están muertos.&lt;/p>
&lt;p>He intentado buscar alguna declaración oficial, pero no la he encontrado. &lt;a class="link" href="https://distrowatch.com/table.php?distribution=ipcop" target="_blank" rel="noopener"
>Distrowatch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dice que el &lt;em>status&lt;/em> de la distribución es &lt;strong>descontinuado&lt;/strong>. Es una lástima porque era una excelente distribución.&lt;/p>
&lt;p>Como dije, el sistema sigue funcionando y haciendo su labor, pero en el caso de los firewalls es importante que estén actualizados por cuestiones de seguridad. Como ejemplo está el reciente caso de los ruteadores MikroTik ( &lt;a class="link" href="https://blog.mikrotik.com/security/new-exploit-for-mikrotik-router-winbox-vulnerability.html" target="_blank" rel="noopener"
>New exploit for Mikrotik router winbox vulnerability&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
). Al parecer, aprovecharon esta vulnerabilidad para minar criptomonedas.&lt;/p>
&lt;p>La segunda razón es un experimento personal. Como una forma de mejorar la conexión de internet del trabajo se hizo un servidor pfSense con una configuración MultiWAN. O sea, que soporta más de un proveedor de internet y a la fecha ha funcionado muy bien.&lt;/p>
&lt;p>ipCop no tiene esta opción así que ya era tiempo de migrar a otros rumbos.&lt;/p>
&lt;h2 id="qué-es-pfsense">¿Qué es pfSense?
&lt;/h2>&lt;p>Para empezar, pfSense no está basado en Linux, en su lugar usa &lt;a class="link" href="https://es.wikipedia.org/wiki/FreeBSD" target="_blank" rel="noopener"
>FreeBSD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es una versión de UNIX de código abierto desarrollado por la Universidad de Berkeley.&lt;/p>
&lt;blockquote>
&lt;p>pfSense es un sistema operativo derivado de m0n0wall. Usa filtrado de paquetes, FreeBSD 6.x (o a DragonFly BSD cuando ALTQ y CARP estén terminados), ALTQ para un excelente encolado de paquetes y un sistema gestor de paquetes integrado para expandir el ambiente mediante nuevas características.&lt;/p>
&lt;p>DistroWatch.&lt;/p>&lt;/blockquote>
&lt;p>La función de &lt;strong>pfSense&lt;/strong> es funcionar como un &lt;em>firewall&lt;/em> y &lt;em>ruteador&lt;/em> con el fin de  mejorar la seguridad y la administración del internet de una red local.&lt;/p>
&lt;p>En lo particular usar FreeBSD no me causa mayor problema, pero eran de esperar algunas diferencias.  Afortunadamente la instalación es muy sencilla y si todo fluye correctamente, el contacto directo con FreeBSD no es necesario. La mayor parte del trabajo diario ocurre en su aplicación web.&lt;/p>
&lt;h2 id="problemas-durante-la-instalación">Problemas durante la instalación.
&lt;/h2>&lt;p>Todo mi experimento estuvo a punto de arruinarse debido a un problema durante la instalación de pfSense.&lt;/p>
&lt;p>Durante el arranque de la USB de instalación me apareció un error&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">error&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">lba&lt;/span> &lt;span class="mi">1244608&lt;/span> &lt;span class="n">no&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">boot&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">loader&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Investigué en los foros de pfSense, con poco éxito. Creo que dí con la solución de casualidad especificando en el BIOS un &lt;strong>HDD Mode&lt;/strong> del dispositivo USB.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/12/pfsense-HDD-Mode.jpg"
alt="HDD Mode en un BIOS Phoenix.">&lt;figcaption>
&lt;p>HDD Mode en un BIOS Phoenix.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hecho este ajuste, el error desapareció y pude empezar con la instalación.&lt;/p>
&lt;h2 id="ufs-vs-zfs">UFS vs ZFS.
&lt;/h2>&lt;p>No pienso escribir una guía de instalación. Hay muchas en internet, pero si quiero comentar mi primer disyuntiva al momento de instalar pfSense.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/EIZ9AYP79zc" target="_blank" rel="noopener"
>https://youtu.be/EIZ9AYP79zc&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>El canal de Manuel Cabrera Caballero tiene una lista de videos sobre pfSense muy recomendables.&lt;/p>
&lt;p>pfSense utiliza &lt;a class="link" href="https://es.wikipedia.org/wiki/Unix_File_System" target="_blank" rel="noopener"
>UFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es el sistema de archivos por &lt;em>default&lt;/em> de FreeBSD. Pero leí que este sistema de archivos tiene muchos problemas cuando hay cortes de energía inesperados.&lt;/p>
&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/ZFS_%28sistema_de_archivos%29" target="_blank" rel="noopener"
>ZFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un viejo conocido en Linux, desarrollado por Sun Microsystems para su sistema Solaris ya tiene algo de tiempo en el mercado. Tiene muchas ventajas, pero en los foros de pfSense ( &lt;a class="link" href="https://forum.netgate.com/topic/107242/pfsense-2-4-zfs-file-system" target="_blank" rel="noopener"
>Pfsense 2.4 ZFS File System&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) tiene la fama de ser un gran consumidor de memoria.&lt;/p>
&lt;p>Para mis pruebas decidí empezar con 1 GB en RAM y de ser necesario, subir a 2 GB que es lo que tengo disponible. Pero hasta el momento no ha sido necesario. Tengo configurada mi red, la instalación básica y mi inseparable &lt;a class="link" href="http://www.squid-cache.org/" target="_blank" rel="noopener"
>Squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como proxy y todavía no veo un consumo elevado en la memoria RAM o algún problema asociado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/12/pfsense-consumo-de-memoria.png"
alt="Gráficas de consumo de recursos en pfSense.">&lt;figcaption>
&lt;p>Gráficas de consumo de recursos en pfSense.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Igual le instalo 1 GB de RAM adicional solamente por precaución.&lt;/p>
&lt;h2 id="primeras-impresiones">Primeras impresiones.
&lt;/h2>&lt;p>Han sido muchos años de ipCop, muchos de sus problemas los resolvía hasta con los ojos cerrados (generalmente reiniciando el equipo jejejeje). Todos los menús me los sabía de memoria y algunas tareas eran ya cosa de rutina. Ahora tengo que ajustarme a una nueva forma de hacer las cosas.&lt;/p>
&lt;p>El cambio ha sido bueno, pfSense tiene opciones que no estaban disponibles con ipCop, como la posibilidad de conectar 2 proveedores de Internet distintos.&lt;/p>
&lt;p>El cuestión de desempeño no he tenido queja, pfSense no es muy exigente de recursos, usé una máquina modesta para probarlo. Microprocesador Celeron, 1GB en RAM, 70 GB en disco duro y se ha portado de maravilla. Es una buena forma de jubilar un equipo veterano.&lt;/p>
&lt;p>Durante mucho tiempo le estuve dando vueltas a pfSense y cuando por fin lo instalo me doy cuenta de otro proyecto igual de interesante que se llama &lt;a class="link" href="https://opnsense.org/" target="_blank" rel="noopener"
>OPNSense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, les paso el dato por si quieren darle un vistazo.&lt;/p>
&lt;p>Seguramente este será el primer artículo de varios en el que escriba sobre pfSense.&lt;/p>
&lt;p>&lt;em>Imagen principal de&lt;/em> &lt;a class="link" href="https://unsplash.com/@thomasjsn" target="_blank" rel="noopener"
>&lt;em>Tomas Jensen&lt;/em>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;em>.&lt;/em>&lt;/p></description></item><item><title>S.O.S. Phone In Recovery Mode en un Linksys SPA942</title><link>https://linuxmanr4.com/2018/11/23/s-o-s-phone-in-recovery-mode-en-un-linksys-spa942/</link><pubDate>Fri, 23 Nov 2018 15:08:03 +0000</pubDate><guid>https://linuxmanr4.com/2018/11/23/s-o-s-phone-in-recovery-mode-en-un-linksys-spa942/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/11/SOS-PhoneInRecoveryMode.jpg" alt="Featured image of post S.O.S. Phone In Recovery Mode en un Linksys SPA942" />&lt;p>Me ha pasado algo muy curioso, uno de los teléfonos Linksys SPA942 que ha funcionado por años ha amanecido con un grito de ayuda.&lt;/p>
&lt;p>No se porque ha ocurrido esto. Supongo que alguna sobrecarga eléctrica ha sido la causante. No sería la primera vez que algo similar ocurre. En ocasiones he tenido que reconfigurar aparatos que olvidan su configuración después de una tormenta o aire fuerte.&lt;/p>
&lt;h2 id="de-sipura-pasando-por-linksys-y-llegando-a-cisco">De Sipura pasando por Linksys y llegando a CISCO.
&lt;/h2>&lt;p>El problema es que estos equipos ya tienen sus añitos. Parece que estos teléfonos fueron desarrollados por una compañia de nombre &lt;a class="link" href="https://en.wikipedia.org/wiki/Sipura_Technology" target="_blank" rel="noopener"
>Sipura Technology&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que fue adquirida por &lt;a class="link" href="https://www.linksys.com/" target="_blank" rel="noopener"
>Linksys&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y esta a su vez por &lt;a class="link" href="https://en.wikipedia.org/wiki/Cisco_Systems" target="_blank" rel="noopener"
>CISCO&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Cuando comencé a buscar ayuda me topé con un montón de enlaces  apuntando a sitios que ya no existen en Internet.&lt;/p>
&lt;p>Algo le había pasado al &lt;em>firmware&lt;/em> del teléfono que lo dejó inutilizable. La misión era encontrar la descarga en algún lado de internet.&lt;/p>
&lt;h2 id="en-busca-del-firmware-correcto">En busca del firmware correcto.
&lt;/h2>&lt;p>Tuve que cavar hondo en Google para encontrar el &lt;em>firmware&lt;/em> correcto. Descargué varios archivos que no funcionaron hasta que me topé con el que estaba buscando.&lt;/p>
&lt;p>La solución la encontré en la ayuda de un modelo similar en los foros Community de CISCO ( &lt;a class="link" href="https://community.cisco.com/t5/voice-systems/spa962-in-sos-recovery-mode/td-p/3243319" target="_blank" rel="noopener"
>CISCO SPA962 in SOS Recovery Mode&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>El archivo que utilicé es &lt;a class="link" href="https://community.cisco.com/kxiwq67737/attachments/kxiwq67737/5706-discussions-smb-voice-systems/10572/1/66132-rec-spa942-6-1-3a.zip" target="_blank" rel="noopener"
>66132-rec-spa942-6-1-3a.zip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>No era una actualización normal. Primero hizo algo de &amp;ldquo;magia&amp;rdquo; para lograr la actualización del dispositivo. Me pidió el número de serie del teléfono (algo inusual) pero la actualización la realizó sin problemas.&lt;/p>
&lt;p>Durante la actualización es normal que prendan todos los foquitos del teléfono como serie navideña. Les comento porque me asusté un poco al principio. Al final todo regresa a la normalidad y no tuve que configurarlo nuevamente.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/krtuMU4tKa8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Es una actualización muy festiva :).&lt;/p>
&lt;p>¿Alguien todavía utiliza estos teléfonos?¿Hay mejores opciones? Creo que ya es tiempo de considerar otros modelos de otras marcas porque no creo encontrar refacciones para estos.&lt;/p></description></item><item><title>Descargar videos de Youtube es fácil con youtube-dl</title><link>https://linuxmanr4.com/2018/10/22/youtube-dl/</link><pubDate>Mon, 22 Oct 2018 13:43:10 +0000</pubDate><guid>https://linuxmanr4.com/2018/10/22/youtube-dl/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/youtube-hello-i-m-nik.jpg" alt="Featured image of post Descargar videos de Youtube es fácil con youtube-dl" />&lt;p>Me ha pasado que tengo que descargar videos de Youtube para poder verlos fuera de línea en mi teléfono celular. Esta tarea es muy sencilla con &lt;a class="link" href="https://rg3.github.io/youtube-dl/" target="_blank" rel="noopener"
>youtube-dl&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un programa escrito en Python que se ocupa de descargar videos de Youtube y &lt;a class="link" href="https://rg3.github.io/youtube-dl/supportedsites.html" target="_blank" rel="noopener"
>otros sitios&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de internet.&lt;/p>
&lt;p>&lt;strong>youtube-dl&lt;/strong> es un programa que se utiliza desde la terminal, tiene una gran cantidad de opciones, pero en este artículo sólo tocaré lo básico.&lt;/p>
&lt;h2 id="obtener-la-lista-de-formatos-disponibles-de-un-video">Obtener la lista de formatos disponibles de un video.
&lt;/h2>&lt;p>Youtube ajusta la calidad de video de acuerdo al ancho de banda disponible en el momento de la reproducción, pero a veces esto provoca descargas de archivos muy grandes.&lt;/p>
&lt;p>La opción &lt;strong>-F&lt;/strong> permite ver la lista de formatos disponibles para su descarga.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl -F &amp;lt;&amp;lt;URL del video&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/youtube-dl-opcion-F.jpg"
alt="youtube-dl lista de formatos disponibles.">&lt;figcaption>
&lt;p>youtube-dl lista de formatos disponibles.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="descargar-un-formato-en-particular">Descargar un formato en particular.
&lt;/h2>&lt;p>Para seleccionar un formato en particular está la opción &lt;strong>-f&lt;/strong> (en minúsculas) seguido del código de formato.&lt;/p>
&lt;p>Por ejemplo, si se quiere descargar el formato 18,  que es un archivo de tamaño mediano quedaría así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl -f 18 &amp;lt;&amp;lt;URL del video&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="antes-de-descargar-hagamos-una-prueba">Antes de descargar, hagamos una prueba.
&lt;/h2>&lt;p>Para hacer una prueba sin descargar el video existe la opción &lt;strong>&amp;ndash;simulate&lt;/strong>&lt;/p>
&lt;p>Esta opción se puede agregar en cualquier instrucción y te dirá si existe algún problema antes de descargar, por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl -f 18 --simulate &amp;lt;&amp;lt;URL del video&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En lugar de &lt;strong>&amp;ndash;simulate&lt;/strong> se puede utilizar simplemente &lt;strong>-s&lt;/strong> tú decides.&lt;/p>
&lt;h2 id="descargar-los-videos-de-una-lista-contenida-en-un-archivo">Descargar los videos de una lista contenida en un archivo.
&lt;/h2>&lt;p>Supongamos que quieres descargar varios videos, puedes guardar las URL en un archivo de texto y luego decirle a youtube-dl que tome esa información para descargar los videos.&lt;/p>
&lt;p>En este caso, sería la opción &lt;strong>&amp;ndash;batch-file&lt;/strong> , por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl --batch-file=&amp;#39;/ruta/al/archivo.txt&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="limitar-el-ancho-de-banda">Limitar el ancho de banda.
&lt;/h2>&lt;p>A veces es necesario limitar el ancho de banda de la descarga, para eso usamos la opción &lt;strong>-r&lt;/strong> , por ejemplo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl -r 100K &amp;lt;&amp;lt;URL del video&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="bonus-descargar-el-audio-de-un-video-en-formato-mp3">Bonus: Descargar el audio de un video en formato mp3.
&lt;/h2>&lt;p>A nadie sorprende la cantidad de videos musicales disponibles en Youtube, pero a veces, no quieres el video, sólo quieres el audio.&lt;/p>
&lt;p>También es posible, la instrucción quedaría así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">youtube-dl --extract-audio --audio-format mp3 &amp;lt;&amp;lt;URL del video&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>Los ejemplos incluidos en este artículo son los que más utilizo y son una especie de guía rápida.&lt;/p>
&lt;p>Claro que no son todas las opciones que tiene este programa. Afortunadamente tiene una excelente &lt;a class="link" href="https://github.com/rg3/youtube-dl/blob/master/README.md#readme" target="_blank" rel="noopener"
>documentación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, así que si tienes dudas o curiosidad siempre puedes consultarla.&lt;/p>
&lt;p>Como youtube-dl está programado en &lt;a class="link" href="https://linuxmanr4.com/tags/python/" >Python&lt;/a>
prácticamente se puede &lt;a class="link" href="https://rg3.github.io/youtube-dl/download.html" target="_blank" rel="noopener"
>descargar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para cualquier sistema operativo.&lt;/p>
&lt;p>&lt;em>Imagen principal gracias a &lt;a class="link" href="https://unsplash.com/@helloimnik" target="_blank" rel="noopener"
>Hello I&amp;rsquo;m Nik&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/em>&lt;/p></description></item><item><title>Desbloquear el depósito de llaves en Manjaro</title><link>https://linuxmanr4.com/2018/10/05/desbloquear-el-deposito-de-llaves-manjaro/</link><pubDate>Fri, 05 Oct 2018 14:40:27 +0000</pubDate><guid>https://linuxmanr4.com/2018/10/05/desbloquear-el-deposito-de-llaves-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/20181005_081537.jpg" alt="Featured image of post Desbloquear el depósito de llaves en Manjaro" />&lt;p>Siempre que cambio mis contraseñas en [Manjaro](/category/&amp;ldquo;linux y software libre&amp;rdquo;/manjaro/) es la misma historia. Necesito desbloquear el depósito de llaves porque al iniciar &lt;a class="link" href="https://es.wikipedia.org/wiki/Chromium_%28navegador%29" target="_blank" rel="noopener"
>chromium&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me aparece este cuadro de diálogo con la siguiente leyenda:&lt;/p>
&lt;h2 id="el-problema">El problema
&lt;/h2>&lt;blockquote>
&lt;p>Desbloquear depósito.&lt;/p>
&lt;p>&lt;strong>Introduzca la contraseña para desbloquearlo.&lt;/strong>&lt;/p>
&lt;p>Una aplicación quiere acceder al depósito de claves &amp;laquo;Default keyring&amp;raquo;, pero esta bloqueado.&lt;/p>&lt;/blockquote>
&lt;p>Se soluciona tecleando la contraseña anterior y no me lo vuelve a pedir hasta la próxima vez que inicie sesión.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>A mi en lo personal no me gusta que aparezca este mensaje por eso hago lo siguiente.&lt;/p>
&lt;p>Inicio la aplicación &lt;strong>seahorse&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/20181005%5F082052.jpg"
alt="En el programa Seahorse encontramos la opción para desbloquear el depósito de llaves.">&lt;figcaption>
&lt;p>En el programa Seahorse encontramos la opción para desbloquear el depósito de llaves.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la parte superior izquierda elijo la opción de &lt;strong>cambiar contraseña&lt;/strong> con el botón derecho del mouse en donde dice &lt;strong>Default Keyring&lt;/strong>.&lt;/p>
&lt;p>Tecleo la contraseña anterior y cuando me pide una nueva contraseña la dejo en blanco.&lt;/p>
&lt;p>Aparece una advertencia de que las contraseñas no se van a guardar (valga la redundancia) con contraseña. Y eso es todo.&lt;/p>
&lt;p>El cuadro ya no vuelve a aparecer. Claro, hasta la próxima vez que cambie mi contraseña de usuario.&lt;/p></description></item><item><title>Generar un archivo KML a partir de coordenadas GPS con Python</title><link>https://linuxmanr4.com/2018/09/29/gps-kml-python/</link><pubDate>Sat, 29 Sep 2018 17:36:14 +0000</pubDate><guid>https://linuxmanr4.com/2018/09/29/gps-kml-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/09/pexels-photo-1203808.jpeg" alt="Featured image of post Generar un archivo KML a partir de coordenadas GPS con Python" />&lt;p>En ocasiones tengo que marcar lugares en Google Earth. Es divertido cuando son 3 o 4. Cuando son 10 o más ya es cosa seria, pero marcar más de mil puntos ya no es práctico hacerlo de forma manual.&lt;/p>
&lt;p>Por eso decidí hacer un programa en &lt;a class="link" href="https://linuxmanr4.com/tags/python/" >Python&lt;/a>
que a partir de las coordenadas almacenadas en un archivo CSV pudiera generar un par de archivos &lt;a class="link" href="https://es.wikipedia.org/wiki/KML" target="_blank" rel="noopener"
>KML&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se abren sin problemas en &lt;a class="link" href="https://www.google.com.mx/intl/es/earth/" target="_blank" rel="noopener"
>Google Earth&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y muestran la ubicación de esos puntos en el planeta.&lt;/p>
&lt;h2 id="simplekml-y-csv">SimpleKML y CSV
&lt;/h2>&lt;p>Una de las muchas ventajas de Python es que no tienes que empezar desde cero. Para importar la información del archivo usé el módulo &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2006/03/01/concatenar-archivos-texto-windows-linux/" >CSV&lt;/a>
&lt;/strong>. Es muy fácil de utilizar. Al barrer el contenido del archivo, por cada coordenada se agrega su punto correspondiente en el archivo KML.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivocsv&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newline&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">File&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">reader&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">csv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reader&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">File&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">row&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">reader&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">longlat&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">coordenadas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">longlat&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">kml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">newpoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">coords&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">longlat&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hay varios módulos para generar archivos KML en Python, pero &lt;strong>simpleKML&lt;/strong> me pareció, haciendo honor a su nombre, el más sencillo.&lt;/p>
&lt;p>Su código de ejemplo así lo demuestra:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">simplekml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">simplekml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Kml&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">newpoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Kirstenbosch&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">coords&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[(&lt;/span>&lt;span class="mf">18.432314&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">33.988862&lt;/span>&lt;span class="p">)])&lt;/span> &lt;span class="c1"># lon, lat, optional height&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;botanicalgarden.kml&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora solo tenía que adaptar ese código con la información almacenada en el archivo CSV.&lt;/p>
&lt;p>Al principio me llevé un gran susto, porque el resultado me apareció en el polo sur. Y es que, para este caso, primero va la longitud y luego la latitud.&lt;/p>
&lt;p>Una vez que invertí el orden de las coordenadas el resultado fue el esperado.&lt;/p>
&lt;h2 id="ejemplo">Ejemplo
&lt;/h2>&lt;p>Como ejemplo, tengo la información de 4 puntos que rodean a la Isla Guadalupe, el punto más occidental de México.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">1,29.189462,-118.553373
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2,29.254561,-118.124540
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3,28.806708,-118.080127
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4,28.777603,-118.459080
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/09/isla-guadalupe-marcas-de-posici%C3%B3n.jpg"
alt="Los 4 puntos ahora se pueden ver en Google Earth.">&lt;figcaption>
&lt;p>Los 4 puntos ahora se pueden ver en Google Earth.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El programa no solo genera los puntos, también genera un polígono (o si somos más exactos un &lt;em>Linear Ring&lt;/em>).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/09/isla-guadalupe-poligono.jpg"
alt="Linear Ring conecta el perímetro de los 4 puntos y lo muestra en Google Earth.">&lt;figcaption>
&lt;p>Linear Ring conecta el perímetro de los 4 puntos y lo muestra en Google Earth.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esto lo hace en archivos KML por separado, usted elige si quiere importar un archivo u otro o ambos.&lt;/p>
&lt;h3 id="forma-de-uso">Forma de uso.
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">python gps2kml.py archivo.csv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esta instrucción  genera 2 archivos KML:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">archivo-puntos.kml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">archivo-LR.kml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hice una prueba y este código me hizo el favor de generar los archivos KML con información de 1800 puntos en un par de segundos  ¡A eso le llamo velocidad!.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#! /usr/bin/python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">simplekml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">csv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># nombre del archivo como parametro.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Falta el archivo csv: gps2kml.py archivo.csv&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivocsv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nombre_archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">archivocsv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;.&amp;#34;&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">coordenadas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">simplekml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Kml&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivocsv&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newline&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">File&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">reader&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">csv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reader&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">File&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">row&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">reader&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">longlat&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">coordenadas&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">longlat&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">kml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">newpoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">coords&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">longlat&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nombre_archivo&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s1">&amp;#39;-puntos.kml&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Generación de un poligono&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml_pol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">simplekml&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Kml&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">kml_pol&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">newpolygon&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pol&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">outerboundaryis&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">coords&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">coordenadas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kml_pol&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nombre_archivo&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;-LR.kml&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;puntos y poligono generados.&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Espero que esta información les sea de utilidad, uno nunca sabe.&lt;/p>
&lt;h2 id="para-saber-más">Para saber más.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://docs.python.org/3/library/csv.html" target="_blank" rel="noopener"
>CSV File Reading and Writing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://code.tutsplus.com/es/tutorials/how-to-read-and-write-csv-files-in-python--cms-29907" target="_blank" rel="noopener"
>Cómo Leer y Escribir Archivos CSV en Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://simplekml.readthedocs.io/en/latest/gettingstarted.html#" target="_blank" rel="noopener"
>simpleKML - Quick Example&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Isla_Guadalupe" target="_blank" rel="noopener"
>Isla Guadalupe (wikipedia)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>Enviar correos electrónicos con Python</title><link>https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/</link><pubDate>Tue, 17 Jul 2018 13:34:48 +0000</pubDate><guid>https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/07/enviar-correos-electronicos-con-python.jpg" alt="Featured image of post Enviar correos electrónicos con Python" />&lt;p>Incluir una función para enviar correos electrónicos en Python puede ser muy útil. Agregué esta función en el programa que utilizo para monitorear mis equipos de red para que me mande un correo electrónico en caso de alguna falla (léase &lt;a class="link" href="https://linuxmanr4.com/2018/05/10/python-ping-script-ip/" >Python Ping, un script que revisa las direcciones IP de tu red&lt;/a>
 ).&lt;/p>
&lt;p>Combinando esta función con una base de datos se puede aprovechar para mandar correos personalizados.  Para notificar cambios en el sistema, como un cambio de contraseña, o avisar de alguna situación. En fin que las aplicaciones son muchas y muy útiles.&lt;/p>
&lt;p>Pero pongamos manos a la obra con un ejemplo.&lt;/p>
&lt;h2 id="importar-módulos">Importar módulos.
&lt;/h2>&lt;p>Una de las cosas que más me gusta de python es que si no tiene una opción se puede incluir importando un módulo que de otro modo tardarías mucho tiempo en desarrollar.&lt;/p>
&lt;p>Para lograr que mi script mande correos electrónicos incluí estas líneas al comienzo del programa.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">email.mime.text&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">MIMEText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">smtplib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">SMTP&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="la-función-manda_correo">La función manda_correo
&lt;/h2>&lt;p>El trabajo pesado lo hace la función &lt;em>manda_correo&lt;/em> cuyo trabajo se puede dividir en 3 partes.&lt;/p>
&lt;p>La primera junta información, ¿Quién manda el correo?, ¿A cuál dirección se va a mandar? y el cuerpo del mensaje.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl"> &lt;span class="n">from_address&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;origen@correo.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">to_address&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">direccion&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;Hola &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34;, &lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Este correo es solo para saludarte.&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">Atentamente,&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">Tu función que manda correos desde Python.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La segunda que se encarga de construir un correo electrónico con la información que le proporcionaste&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">MIMEText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;plain&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;From&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">from_address&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;To&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">to_address&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;Subject&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;Saludos &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">nombre&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y por último, la parte que se encarga de negociar con el servidor y mandar el correo electrónico.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">SMTP&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;servidordecorreo.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">587&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">login&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;usuario&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;contraseña&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendmail&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">from_address&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">to_address&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mime_message&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">as_string&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Los parámetros de la función son totalmente personalizables y en mi caso sólo usé un nombre coloquial para el saludo y la dirección de correo de destino.&lt;/p>
&lt;p>Aquí pueden leer el código completo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># envia_correo.py&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ---------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">email.mime.text&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">MIMEText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">smtplib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">SMTP&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">manda_correo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nombre&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">direccion&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">from_address&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;origen@correo.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">to_address&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">direccion&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;Hola &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34;, &lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Este correo es solo para saludarte.&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">Atentamente,&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">Tu función que manda correos desde Python.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">MIMEText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;plain&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;From&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">from_address&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;To&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">to_address&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mime_message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;Subject&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;Saludos &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">nombre&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">SMTP&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;servidordecorreo.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">587&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">login&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;usuario&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;contraseña&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendmail&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">from_address&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">to_address&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mime_message&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">as_string&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">manda_correo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Francisco&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;destino@correo.com&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/07/funcion-que-envia-correos-en-python.jpg"
alt="funcion que envia correos en python">&lt;figcaption>
&lt;p>funcion que envia correos en python&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ahora-con-html">Ahora con HTML.
&lt;/h2>&lt;p>Me preguntaron &lt;a class="link" href="https://plus.google.com/u/0/108009231243004251711/posts/A3cWvdAsEUQ" target="_blank" rel="noopener"
>como hacer para mandar correos con estilo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y eso se logra con HTML. Para lograrlo hay que hacer algunos ajustes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/07/enviar-correos-con-html.png"
alt="enviar correos con html con python">&lt;figcaption>
&lt;p>enviar correos con html con python&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la línea &lt;strong>16&lt;/strong> hay que cambiar de &lt;strong>plain&lt;/strong> a &lt;strong>html&lt;/strong> y claro, incluir los códigos HTML  en el cuerpo del mensaje.&lt;/p>
&lt;p>Y así de simple, de golpe y porrazo ya tenemos una función que manda correos electrónicos desde Python.&lt;/p>
&lt;h2 id="enviar-correos-usando-una-conexión-ssl">Enviar correos usando una conexión SSL
&lt;/h2>&lt;p>Para lograr enviar correos electrónicos con un servidor &lt;strong>SMTP&lt;/strong> que utiliza el &lt;strong>puerto 465&lt;/strong> con una conexión &lt;a class="link" href="https://es.wikipedia.org/wiki/Seguridad_de_la_capa_de_transporte" target="_blank" rel="noopener"
>SSL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
hay que agregar algunas cosas.&lt;/p>
&lt;p>Por ejemplo, importar la &lt;strong>librería ssl&lt;/strong>, darle un poco de forma al &lt;strong>mensaje_mime&lt;/strong> y por último enviar el correo.&lt;/p>
&lt;p>Creo que este código de ejemplo lo explica bastante bien.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: utf-8 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">smtplib&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">ssl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">email.mime.text&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">MIMEText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Información de conexión al servidor SMTP&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">servidor_smtp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;smtp.servidor.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">puerto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">465&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">usuario_login&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;usuario&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">password&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;contraseña&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">contexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ssl&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">create_default_context&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Origen, destino y mensaje&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">direccion_origen&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;de@correo.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">direccion_destino&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;para@correo.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Hola,&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Este es un correo de prueba.&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">¡Saludos!
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje_mime&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">MIMEText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mensaje&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;plain&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje_mime&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;From&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">direccion_origen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje_mime&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;To&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">direccion_destino&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje_mime&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;Reply-to&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">direccion_origen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensaje_mime&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;Subject&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;Correo de prueba&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Envio del correo electrónico&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">with&lt;/span> &lt;span class="n">smtplib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">SMTP_SSL&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">servidor_smtp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">puerto&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">context&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">contexto&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">server&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">server&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">login&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">usuario_login&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">password&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">server&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendmail&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">direccion_origen&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">direccion_destino&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mensaje_mime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">as_string&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="para-saber-más">Para saber más.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://docs.python.org/3.4/library/email-examples.html" target="_blank" rel="noopener"
>Email example: Python Documentation&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Configurar una impresora LPD en Windows para imprimir desde Linux</title><link>https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/</link><pubDate>Wed, 30 May 2018 13:57:59 +0000</pubDate><guid>https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/05/printer-test-page-cups.jpg" alt="Featured image of post Configurar una impresora LPD en Windows para imprimir desde Linux" />&lt;p>Me da vergüenza decirlo, llevo años mandando mis trabajos de impresión a una impresora que usa Windows (no tenía otra alternativa). Y me da más pena decir que durante esos mismos años batallé para que funcionara.&lt;/p>
&lt;p>Incluso varios artículos de este blog tratan sobre el tema, como pueden ver en &lt;a class="link" href="https://linuxmanr4.com/2017/11/10/impresora-samba-usuario-contrasena/" >Impresora compartida con samba pide usuario y contraseña&lt;/a>
 o en &lt;a class="link" href="https://linuxmanr4.com/2016/05/03/puedo-imprimir-en-una-impresora-compartida-windows/" >Problemas al imprimir en una impresora compartida en windows desde linux&lt;/a>
.&lt;/p>
&lt;p>Pero con el tiempo mi equipo se ha ido actualizando y los demás equipos no provocando una serie de incompatibilidades casi siempre relacionadas con el tema de la seguridad.&lt;/p>
&lt;p>Siempre había logrado resolver esos problemas invirtiendo una o dos horas, pero ayer llegué al límite. No puedo estar haciendo circo, maroma y teatro cada vez que actualizo mi computadora con &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Llegó la hora de buscar otra opción.&lt;/p>
&lt;h2 id="lpd-line-printer-daemon">LPD (Line Printer Daemon)
&lt;/h2>&lt;p>En algún momento de mi vida ví algo sobre &lt;a class="link" href="https://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol" target="_blank" rel="noopener"
>LDP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero lo pasé por alto. Al ver las opciones de conexión que ofrece el asistente de CUPS lo recordé y me puse a investigar sobre el tema.&lt;/p>
&lt;p>LPD es un protocolo de red para enviar trabajos de impresión a una impresora remota y se entiende perfectamente con &lt;a class="link" href="https://en.wikipedia.org/wiki/CUPS" target="_blank" rel="noopener"
>CUPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El único problema es que la impresora esta conectada a un equipo con Windows (7 en este caso).&lt;/p>
&lt;h3 id="instalar-lpd-en-windows">Instalar LPD en Windows.
&lt;/h3>&lt;p>Afortunadamente LPD esta incluido en Windows pero no esta habilitado por &lt;em>default&lt;/em>, para eso hay que instalarlo.&lt;/p>
&lt;p>Vamos al &lt;strong>Panel de control&lt;/strong>, luego a la sección de &lt;strong>Programas&lt;/strong> posteriormente a donde dice &lt;strong>Activar o desactivar las características de Windows&lt;/strong> y finalmente activamos la opción que dice &lt;strong>Servicio de impresión LPD&lt;/strong> y eso es todo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/05/Servicio-de-impresi%C3%B3n-LPD.jpg"
alt="Servicio de impresión LPD">&lt;figcaption>
&lt;p>Servicio de impresión LPD&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recuerdo que en mi caso la impresora ya tenía un nombre de recurso compartido y de hecho, si alguien manda imprimir desde otro equipo en Windows sigue funcionando.&lt;/p>
&lt;h2 id="configurar-la-impresora-en-linux">Configurar la impresora en Linux.
&lt;/h2>&lt;p>Para evitar problemas que he tenido en el pasado, utilizo el configurador de CUPS ( http://localhost:631 ).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/cups%5Flocalhost.jpg">
&lt;/figure>
&lt;p>Doy de alta la impresora de manera normal, me va a preguntar un nombre, descripción, pero a la hora de especificar la conexión lo hago de la siguiente forma.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">lpd://dirección.IP/nombreImpresora
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Llegó el momento de la verdad. Si todo salió bien podrán imprimir desde linux en una impresora compartida en un equipo con windows usando LPD en lugar de &lt;a class="link" href="https://es.wikipedia.org/wiki/Samba_%28software%29" target="_blank" rel="noopener"
>Samba&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p></description></item><item><title>Python Ping, un script que revisa las direcciones IP de tu red</title><link>https://linuxmanr4.com/2018/05/10/python-ping-script-ip/</link><pubDate>Thu, 10 May 2018 18:06:57 +0000</pubDate><guid>https://linuxmanr4.com/2018/05/10/python-ping-script-ip/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/05/python-ping.jpg" alt="Featured image of post Python Ping, un script que revisa las direcciones IP de tu red" />&lt;p>La mejor forma de aprender un lenguaje de programación es tomando un proyecto y resolviendo sus problemas. En el proceso se investiga como hacer las cosas, resolver algunas dudas, depurar el código y probar su funcionalidad.&lt;/p>
&lt;p>Soy fan de Python, pero no soy un experto. Python Ping es un programa que toma un archivo CSV (delimitado por comas) que tiene dos datos, una descripción del equipo y su dirección IP.&lt;/p>
&lt;p>El programa toma esa información y hace ping, si el equipo responde, muestra un mensaje de OK, de lo contrario, reproduce un sonido y muestra un mensaje de error.&lt;/p>
&lt;p>Hace una pausa de 10 minutos y vuelve a empezar. De esa forma es posible detectar problemas en la red, su ubicación y su frecuencia.&lt;/p>
&lt;p>En una operación normal, todo debería de estar OK, pero todos sabemos que eso no siempre es así.&lt;/p>
&lt;h2 id="el-archivo-csv">El archivo CSV.
&lt;/h2>&lt;p>Lo bonito de almacenar la información en un archivo &lt;a class="link" href="https://es.wikipedia.org/wiki/Valores_separados_por_comas" target="_blank" rel="noopener"
>CSV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 es que es muy sencillo de editar, actualizar y mantener.&lt;/p>
&lt;p>Para ejemplo de este artículo elegí servidores que todos conocemos:&lt;/p>
&lt;p>Archivo &lt;strong>servidores.csv&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Google , google.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Bing , bing.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Facebook , facebook.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Twitter , twitter.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Wikipedia , wikipedia.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Una descripción, luego una coma y al final una dirección. Para el ejemplo puse los dominios, pero se pueden reemplazar por las direcciones IP. Eso lo hago porque a mi me interesa revisar una red local.&lt;/p>
&lt;h2 id="desmenuzando-el-programa">Desmenuzando el programa.
&lt;/h2>&lt;p>Al final del artículo pondré el código completo, aquí voy a ir desmenuzando algunas de las partes del mismo.&lt;/p>
&lt;h3 id="import">Import
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">csv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">colorama&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Fore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">datetime&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esta es la lista de los import del programa. Para que algunas cosas funcionen es necesario declararlas primero.&lt;/p>
&lt;p>&lt;strong>os&lt;/strong> lo utilizo para ejecutar instrucciones como si estuviera en la terminal.&lt;/p>
&lt;p>&lt;strong>csv&lt;/strong> para importar la información del archivo CSV en una variable dentro del programa.&lt;/p>
&lt;p>&lt;strong>colorama&lt;/strong> le da color, poniendo los errores en rojo, lo que esta bien en verde, los textos en blanco.&lt;/p>
&lt;p>&lt;strong>time&lt;/strong> y &lt;strong>datetime&lt;/strong> los uso para formatear algunas salidas de tiempo.&lt;/p>
&lt;h3 id="check_ping">check_ping
&lt;/h3>&lt;p>La función &lt;strong>check_ping&lt;/strong> es la que hace el trabajo pesado. Quiero hacer notar que en lugar de utilizar el comando ping tradicional uso el comando &lt;a class="link" href="https://fping.org/" target="_blank" rel="noopener"
>fping&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que es más rápido y se adapta mejor cuando se llama desde un script.&lt;/p>
&lt;p>La instrucción fping hace 10 reintentos antes de declarar un error de conexión.&lt;/p>
&lt;h3 id="sonido_alerta">sonido_alerta
&lt;/h3>&lt;p>Esta función es un plus. No voy a estar viendo la pantalla todo el tiempo durante la ejecución del script. Así que si hay un error hace un sonido. Como pueden ver en el código, lo que hace es reproducir un archivo mp3 a su elección.&lt;/p>
&lt;h2 id="el-loop">El loop
&lt;/h2>&lt;p>El programa se repite indefinidamente en un ciclo haciendo una pausa de 10 minutos. De esta forma está revisando continuamente la red y avisa si hay algún problema. Para terminar el ciclo hay que presionar &lt;strong>Control + C&lt;/strong> y se interrumpe la ejecución.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/python3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># python_ping.py - Hace ping a ciertos elementos de la red.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ---------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa es software libre. Puede redistribuirlo y/o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># modificarlo bajo los términos de la Licencia Pública General&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># de GNU según es publicada por la Free Software Foundation,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># bien de la versión 2 de dicha Licencia o bien (según su&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># PROPÓSITO PARTICULAR. Para más detalles, véase la Licencia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pública General de GNU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Autor: LinuxmanR4 http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 1.0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">csv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">colorama&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Fore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">datetime&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">check_ping&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hostname&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;fping -r 10 -q &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">hostname&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34; &amp;gt;/dev/null&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">response&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check_ping&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;[OK]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check_ping&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;[Error]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">check_ping&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">sonido_alerta&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;play -q ent_communicator1.mp3&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Lee los datos del archivo y los guarda en una variable.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivo_servidores&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;servidores.csv&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">servidores_reader&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">csv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reader&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo_servidores&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">datos_servidores&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">servidores_reader&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Prueba si hay conexión en todos los servidores&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">contador&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">)):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">servidorTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">servidorIP&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">check_ping&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">resultado&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;[Error]&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{0:30}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{1:17}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{2:7}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">WHITE&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">servidorTexto&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">servidorIP&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">RED&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">resultado&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sonido_alerta&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{0:30}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{1:17}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{2:7}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">WHITE&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">servidorTexto&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">servidorIP&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">GREEN&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">resultado&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">contador&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">BLUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">{0}&lt;/span>&lt;span class="s1"> {1:%H:%M:%S} &lt;/span>&lt;span class="si">{2}&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">contador&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;________________________________________&amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Pausa de 10 minutos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">time&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sleep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">600&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/05/python-ping-Peek-11-05-2018-10-12.gif"
alt="python\_ping en acción">&lt;figcaption>
&lt;p>python_ping en acción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, el programa es relativamente sencillo. Estoy consciente de que hay muchas cosas que se pueden mejorar, así que estoy abierto a sus comentarios. Si desean utilizarlo, lo pueden hacer respetando claro la licencia pública general GNU, que permite utilizar, distribuir y modificar este código.&lt;/p>
&lt;h2 id="python-ping-la-versión-20">Python Ping la versión 2.0
&lt;/h2>&lt;p>Hace 7 años que publiqué este programa y funciono muy bien, pero en ese tiempo aprendí algunos trucos nuevos.&lt;/p>
&lt;p>Por ejemplo, aprendí a manejar las dependencias con &lt;a class="link" href="https://linuxmanr4.com/2024/11/13/poetry-comandos-basicos-python/" >Poetry&lt;/a>
y eso me ayudó bastante, sobre todo durante las &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/actualizar-manjaro-pamac-yay/" >actualizaciones de Manjaro&lt;/a>
. También quise probar un enfoque más basado en funciones.&lt;/p>
&lt;p>Esta nueva versión toma la información de un archivo CSV, ejecuta las pruebas y cuando termina muestra los resultados.&lt;/p>
&lt;p>Da la apariencia de que se ejecuta más rápido, pero la verdad es que solo está trabajando desde un segundo plano.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/python3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">csv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">colorama&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Fore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">datetime&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">subprocess&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtener la lista de servidores del archivo CSV&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;servidores.csv&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">archivo_servidores&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">servidores_reader&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">csv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reader&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo_servidores&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">datos_servidores&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[(&lt;/span>&lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">row&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">servidores_reader&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Formatos de color&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">COLORES&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;ok&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">GREEN&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;[OK]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;error&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">RED&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;[Error]&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;header&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">BLUE&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;texto&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Fore&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">WHITE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">verificar_estado_red&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Obtener todas las IPs de una vez&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ips&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">servidor&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Ejecutar un solo comando fping para todas las IPs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">resultado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">subprocess&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;fping&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;-r&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;3&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">ips&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">stdout&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">subprocess&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">PIPE&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">stderr&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">subprocess&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">STDOUT&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">text&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">parsear_resultado_fping&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">resultado&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">stdout&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Error al ejecutar fping: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">imprimir_estados&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">estados&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">time&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sleep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">120&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">parsear_resultado_fping&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">output&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Parsear resultados de fping para crear diccionario de estados&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">linea&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">output&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;alive&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">linea&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="s1">&amp;#39;unreachable&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">linea&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">partes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">linea&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">split&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ip&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">partes&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;[OK]&amp;#34;&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;alive&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">linea&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="s2">&amp;#34;[Error]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estados&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ip&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">estado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">estados&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">imprimir_estados&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">estados&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">nombre&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ip&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">datos_servidores&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">estado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">estados&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ip&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;[Error]&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">color&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">COLORES&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;ok&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="n">estado&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;[OK]&amp;#34;&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="n">COLORES&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;error&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">COLORES&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;texto&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="si">}{&lt;/span>&lt;span class="n">nombre&lt;/span>&lt;span class="si">:&lt;/span>&lt;span class="s2">25&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ip&lt;/span>&lt;span class="si">:&lt;/span>&lt;span class="s2">17&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">color&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">tiempo_actual&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">datetime&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strftime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;%H:%M:%S&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">COLORES&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;header&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="si">}{&lt;/span>&lt;span class="n">tiempo_actual&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="s1">&amp;#39;_&amp;#39;&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="mi">40&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">verificar_estado_red&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La primera versión es más simple definitivamente. La segunda me parece más modular por el uso de las funciones.&lt;/p>
&lt;p>¿A ustedes qué versión les gusta más?&lt;/p></description></item><item><title>La Capilla Sixtina en Torreón</title><link>https://linuxmanr4.com/2018/03/20/la-capilla-sixtina-en-torreon/</link><pubDate>Tue, 20 Mar 2018 21:20:08 +0000</pubDate><guid>https://linuxmanr4.com/2018/03/20/la-capilla-sixtina-en-torreon/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/03/Capilla-Sixtina-en-Torre%C3%B3n.jpg"
alt="Capilla Sixtina en Torreón.">&lt;figcaption>
&lt;p>Capilla Sixtina en Torreón.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En las instalaciones de la feria de Torreón se ha instalado una réplica de la Capilla Sixtina. Si es de las personas que como yo no tiene la intención de viajar a Roma para apreciar el arte de Miguel Ángel es una oportunidad que no puede dejar pasar.&lt;/p>
&lt;h2 id="boletos">Boletos.
&lt;/h2>&lt;p>La entrada es &lt;strong>totalmente gratuita&lt;/strong>, pero es aconsejable solicitar los boletos en el sitio de SuperPase Capilla Sixtina en México - Torreón.&lt;/p>
&lt;p>La capilla está abierta de martes a domingo desde las 10 de la mañana y hasta las 7:40 de la tarde. Hay acceso a la capilla cada 20 minutos. El último día será el domingo 15 de abril del 2018.&lt;/p>
&lt;p>Aunque cuando fui noté que había una fila para el acceso en general,  no estoy tan seguro de cuáles son sus reglas u horarios.&lt;/p>
&lt;p>Muchos imprimimos nuestro boleto, pero también notamos que algunos lo mostraban en sus &lt;a class="link" href="https://linuxmanr4.com/2010/03/22/registrar-tu-telefono-celular/" >teléfonos&lt;/a>
celulares. Lo más importante es guardar cierto orden.&lt;/p>
&lt;h2 id="recomendaciones">Recomendaciones.
&lt;/h2>&lt;blockquote class="twitter-tweet">&lt;p lang="es" dir="ltr">Para todas las personas que asistirán a la Réplica de la Capilla Sixtina en Torreón, les tenemos algunas recomendaciones y prohibiciones a considerar durante su visita.&lt;a href="https://x.com/hashtag/Torre%C3%B3nCiudadEnEquipo?src=hash&amp;amp;ref_src=twsrc%5Etfw">#TorreónCiudadEnEquipo&lt;/a>&lt;a href="https://x.com/hashtag/MoviendoCorazones?src=hash&amp;amp;ref_src=twsrc%5Etfw">#MoviendoCorazones&lt;/a>&lt;a href="https://x.com/hashtag/CapillaSixtinaEnTorre%C3%B3n?src=hash&amp;amp;ref_src=twsrc%5Etfw">#CapillaSixtinaEnTorreón&lt;/a> &lt;a href="https://t.co/OUwMGT4Pq5">pic.twitter.com/OUwMGT4Pq5&lt;/a>&lt;/p>&amp;mdash; DIF Torreón (@DIFTorreon_) &lt;a href="https://x.com/DIFTorreon_/status/974471114301870080?ref_src=twsrc%5Etfw">March 16, 2018&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;p>Aparte de las recomendaciones que acompaña el tweet anterior, dependiendo de la hora le recomiendo que se lleve una botellita de agua o un abanico. El interior de la Capilla no tiene muy buena ventilación que digamos y aunque el recorrido es breve si se llega a sentir el calor, sobre todo en las horas que el sol lagunero esta a mayor intensidad.&lt;/p>
&lt;p>Por favor, si le dicen que no se puedes tomar fotos ni video en el interior de la Capilla haga caso. A mi la verdad me dio pena ajena cuando regañaron a un par de personas que lo intentaron. Lo entiendo de la primera, a lo mejor no escucho la indicación en la entrada ¿Pero la segunda?, después de la regañada que se escuchó en toda la Capilla intentarlo ya era necedad, pero no entienden.&lt;/p>
&lt;p>A la salida de la Capilla hay una tienda de recuerdos oficial, pero prepárese, los precios son algo elevados. Más adelante hay un pequeño tianguis de recuerdos y artículos regionales que está mucho más accesible.&lt;/p>
&lt;p>No se si se repetirá una visita de la Capilla Sixtina a la región, por eso, no deje de ir la oportunidad de visitarla.&lt;/p>
&lt;h2 id="para-saber-más-">Para saber más &amp;hellip;
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.museivaticani.va/content/museivaticani/es/collezioni/musei/cappella-sistina.html" target="_blank" rel="noopener"
>Museo Vaticano - Capilla Sixtina&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Capilla_Sixtina" target="_blank" rel="noopener"
>Capilla Sixtina&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Miguel_%C3%81ngel" target="_blank" rel="noopener"
>Miguel Ángel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/La_creaci%C3%B3n_de_Ad%C3%A1n" target="_blank" rel="noopener"
>La creación de Adán&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/El_Juicio_Final_%28Capilla_Sixtina%29" target="_blank" rel="noopener"
>El juicio final&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul>
&lt;p>Si no tiene oportunidad de ir o para complementar la visita les recomiendo este documental.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/BwA9rgRpPx0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>Problemas con KeepassX, Auto-Type y Twitter</title><link>https://linuxmanr4.com/2018/03/09/keepassx-autotype/</link><pubDate>Fri, 09 Mar 2018 22:03:53 +0000</pubDate><guid>https://linuxmanr4.com/2018/03/09/keepassx-autotype/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/03/Problemas-con-KeepassX-Auto-Type-y-Twitter.png" alt="Featured image of post Problemas con KeepassX, Auto-Type y Twitter" />&lt;p>Este artículo va a ser muy breve, porque el problema es muy sencillo. Verán utilizo el programa &lt;a class="link" href="https://www.keepassx.org/" target="_blank" rel="noopener"
>KeepassX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para generar, almacenar y proteger mis contraseñas y hasta hoy se me ocurrió utilizar la opción &lt;strong>Auto-Type&lt;/strong> que sin entrar mucho en detalles, escribe automáticamente el nombre de usuario y contraseña al activar un atajo de teclado.&lt;/p>
&lt;p>No les voy a decir como usar KeepassX, para eso hay un montón de artículos en internet.&lt;/p>
&lt;h2 id="el-misterio">El misterio.
&lt;/h2>&lt;p>Ahora ahí les va el misterio. Después de configurar mi atajo de teclado y configurar todo de manera que pareciera de forma correcta ¡NO FUNCIONABA!.  Nada, acceso incorrecto Bla bla bla &amp;hellip;&lt;/p>
&lt;p>Al principio lo intenté con Twitter, pero por miedo a bloquear la cuenta, mejor hice unas pruebas con un programa que tengo en mi red local y ahí funcionaba todo perfectamente.&lt;/p>
&lt;p>Busqué un rato en Google y nada, me dije a mi mismo&amp;hellip; &amp;ldquo;mi mismo&amp;rdquo;, no puedes ser el único con este problema.&lt;/p>
&lt;p>Intenté hacerlo a mano con el famoso &lt;em>copy-paste&lt;/em> y funcionaba perfectamente. ¿Qué rayos estaba pasando?.&lt;/p>
&lt;p>No era el usuario (se veía claramente en la pantalla), tampoco la contraseña (funcionaba si la pegaba),  &lt;em>música de la dimensión desconocida por favor&lt;/em>.&lt;/p>
&lt;h2 id="momento-que-voy-lento">Momento que voy lento.
&lt;/h2>&lt;p>Leyendo la documentación sobre la herramienta &lt;a class="link" href="https://keepass.info/help/base/autotype.html" target="_blank" rel="noopener"
>Auto-Type&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 di con la sección &lt;strong>Special Keys&lt;/strong> y me di cuenta de que existe una opción que se llama &lt;strong>DELAY&lt;/strong>. ¿Y si lo estaba tecleando demasiado rápido?.&lt;/p>
&lt;p>Si lo hacía de forma manual me tardaba en copiar y pegar la contraseña, unos 2 o 3 segundos y funcionaba perfectamente. ¿Y si le agregaba una pequeña pausa?&lt;/p>
&lt;p>Esta es la secuencia por default la secuencia para  ingresar un nombre de &lt;a class="link" href="https://linuxmanr4.com/2017/11/10/impresora-samba-usuario-contrasena/" >usuario y contraseña&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Auto-Type: {USERNAME}{TAB}{PASSWORD}{ENTER}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La opción que me funcionó (supongo que se puede mejorar) fue la de agregar medio segundo después de &amp;ldquo;teclear&amp;rdquo; el usuario y otro medio segundo después de la contraseña. La secuencia quedó de esta forma.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Auto-Type: {USERNAME}{DELAY 500}{TAB}{PASSWORD}{DELAY 500}{ENTER}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/03/Configurando-el-auto-type-en-keepassx.png"
alt="Así quedó el Auto-Type , con una pequeña pausa.\| keepassx auto-type">&lt;figcaption>
&lt;p>Así quedó el Auto-Type , con una pequeña pausa.| keepassx auto-type&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Así que el truco fue &amp;ldquo;teclear&amp;rdquo; el usuario y la contraseña así como habla &amp;ldquo;Ya saben quien&amp;rdquo;.&lt;/p>
&lt;p>Este consejo me ha funcionado en otros sitios que no aceptan la contraseña a la primera.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>En época de lluvias, una oración para los truenos.</title><link>https://linuxmanr4.com/2018/02/23/en-epoca-lluvias-una-oracion-para-los-truenos/</link><pubDate>Fri, 23 Feb 2018 17:12:04 +0000</pubDate><guid>https://linuxmanr4.com/2018/02/23/en-epoca-lluvias-una-oracion-para-los-truenos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/nubes-que-traen-lluvia.jpg" alt="Featured image of post En época de lluvias, una oración para los truenos." />&lt;p>Cuando era niño, al iniciar cualquier periodo vacacional escolar, mi familia hacía las maletas y salíamos pitando al que considero mi pueblo natal por adopción, el bellísimo pueblo mágico de Jerez Zacatecas.&lt;/p>
&lt;p>Jerez tiene un clima muy especial, no es ni demasiado caluroso, ni demasiado frío. En las casas no hay aparatos de aire acondicionado y tampoco existen las chimeneas o calentones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/Las-fuentes-del-jard%C3%ADn.jpg"
alt="Jardín principal de Jerez Zacatecas.">&lt;figcaption>
&lt;p>Jardín principal de Jerez Zacatecas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Las construcciones de adobe y techos altos se encargan de mantener a raya el calor y basta con abrir o cerrar las puertas para obtener una temperatura agradable en el interior de las casas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/botas-de-hule-azules-suela-amarilla.jpg"
alt="botitas de hule azules con suela amarilla">&lt;figcaption>
&lt;p>botitas de hule azules con suela amarilla&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De todas las épocas del año, mi favorita sin duda era la de lluvias. Si las precipitaciones eran de consideración se podía ver como el agua corría de banqueta a banqueta buscando su cauce natural hacía el río.&lt;/p>
&lt;p>Mi madre tenía unas pequeñas botitas de hule de color azul y suela amarilla con las que podía salir a jugar sin mojarme los pies. Mi diversión favorita era construir un barco de papel que navegaría entre mil obstáculos antes de hundirse.&lt;/p>
&lt;p>No era el único, muchos niños salíamos a mojarnos, a chapotear entre los charcos, aunque después tuviéramos que pagar el precio de un buen baño y un cambio de ropa, pero valía la pena.&lt;/p>
&lt;p>A veces eran tantas mis ganas de jugar en el agua que le rezaba a una pequeña imagen de &lt;a class="link" href="https://es.wikipedia.org/wiki/Mart%C3%ADn_de_Porres" target="_blank" rel="noopener"
>San Martín de Porres&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que estaba en la recámara pidiéndole algo de lluvia ¡Y me lo concedía! no recuerdo que me fallara ni una sola vez.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/san-mart%C3%ADn-de-porres.jpg"
alt="San Martín de Porres">&lt;figcaption>
&lt;p>San Martín de Porres&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero en otras, la furia de la naturaleza se desataba, los truenos sonaban tan fuerte que parecía que le habían caído al vecino. Eran frecuentes las historias de aparatos de televisión fundidos por un rayo.&lt;/p>
&lt;p>En ocasiones la tormenta hacía que se fuera la luz. Entonces mi abuelita sacaba una lámpara de petróleo.&lt;/p>
&lt;p>Un quinqué que tenía en el tocador de su recámara. Con calma quitaba la bombilla de vidrio, sacaba la mecha haciendo girar una rueda para luego encenderla con un cerillo. Hacía unos pequeños ajustes y volvía a colocar la pieza de cristal logrando con ello un gran brillo de la lámpara.&lt;/p>
&lt;p>Si la tormenta estaba realmente fea, la cosa se ponía solemne y mi abuela junto con mi mamá rezaban una oración especial para la ocasión.&lt;/p>
&lt;h2 id="bartolomé">Bartolomé
&lt;/h2>&lt;blockquote>
&lt;p>Bartolomé se levantó&lt;br>
cuando el primer gallo cantó&lt;br>
con Jesucristo encontró&lt;br>
¿A dónde vas Bartolomé?&lt;br>&lt;/p>
&lt;p>Señor, contigo me iré&lt;br>
regrésate Bartolomé&lt;br>
a tu casa y tu rincón&lt;br>
Que Dios te dará un don&lt;br>&lt;/p>
&lt;p>En la casa que fueras mentado&lt;br>
No caerá trueno ni rayo&lt;br>
ni morirá niño de espanto&lt;br>
Amén.&lt;br>&lt;/p>&lt;/blockquote>
&lt;p>Y así 3 veces. Mis hermanos y yo nos quedábamos muy en paz. No es que nos asustaran los truenos, pero algunos eran tan fuertes que hacían vibrar las ventanas.&lt;/p>
&lt;p>El año pasado hubo tormentas particularmente fuertes en la Comarca Lagunera. Los estruendos eran hasta perturbadores. Las autoridades les llamaron lluvias atípicas, grandes cantidades de agua en un periodo muy corto de tiempo. Las afectaciones en la ciudad fueron de consideración.&lt;/p>
&lt;p>Al escuchar esos truenos tan inusuales, vinieron a mi mente un montón de recuerdos incluyendo la oración que antes mencioné.&lt;/p>
&lt;p>Tengo que confesar que no me la sabía, busque en mi memoria, pero solo se alcanzaban a asomar algunos fragmentos. El otro día que estaba con mi mamá le pregunté sobre la oración y la apunté.&lt;/p>
&lt;p>Se las comparto como un ejercicio para mi memoria y uno nunca sabe cuando se podrá necesitar, sobre todo ahora que las lluvias “atípicas” se están convirtiendo en “normales”.&lt;/p></description></item><item><title>Puerta trasera abierta en una impresora laserjet 100 color m175nw</title><link>https://linuxmanr4.com/2018/02/01/puerta-trasera-abierta-laserjet-100-color-m175nw/</link><pubDate>Thu, 01 Feb 2018 15:58:04 +0000</pubDate><guid>https://linuxmanr4.com/2018/02/01/puerta-trasera-abierta-laserjet-100-color-m175nw/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/Un-vistazo-general-de-la-ubicacion-de-las-piezas.jpg" alt="Featured image of post Puerta trasera abierta en una impresora laserjet 100 color m175nw" />&lt;p>Los atascos de papel en una impresora son cosa común, a nadie sorprenden. Lo inusual es, que al intentar solucionar uno de estos atascos  salten dos piezas de la impresora provocando un error de &lt;strong>Puerta trasera abierta&lt;/strong>.&lt;/p>
&lt;p>Estos modelos oscuros de impresoras HP son todo un caso. Tal parece que entre menos color de impresora mejor diseño. Recuerdo una línea de impresoras HP de color blanco (creo que era una laserjet 1000) que eran a prueba de bombas!!!.&lt;/p>
&lt;p>Luego las hicieron grises y salieron más o menillos. Pero las de color negro ¡UFFF!. He tenido que arreglar unos problemitas de diseño que bueeeeno (véase &lt;a class="link" href="https://linuxmanr4.com/2015/05/19/impresora-hp-p1102w-imprime-toda-la-hoja-en-negro/" >Impresora HP p1102w imprime toda la hoja en negro&lt;/a>
 ). Y el caso de hoy no se queda atrás.&lt;/p>
&lt;h2 id="una-pieza-blanca-y-una-negra">Una pieza blanca y una negra.
&lt;/h2>&lt;p>La &lt;a class="link" href="https://linuxmanr4.com/2005/05/04/capturar-el-puerto-de-la-impresora-en-windows-xp/" >puerta trasera de la impresora&lt;/a>
está ahí para solucionar fácilmente atascos de papel y se agradece. Al intentar abrirla sientes que algo se atora y al lograrlo saltan dos piezas, una de color blanco y otra de color negro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/la-famosa-pieza-negra.jpg"
alt="Un acercamiento a la pieza negra.">&lt;figcaption>
&lt;p>Un acercamiento a la pieza negra.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al cerrar la puerta trasera y encender la impresora te aparece un bonito mensaje en el panel que dice &lt;strong>Puerta trasera abierta&lt;/strong>. Entonces te das cuenta de que las piezas son importantes.&lt;/p>
&lt;p>Lo primero que hice fue buscar en los foros de soporte de HP sin mucho éxito. Un amigo tuvo más o menos el mismo problema con una impresora modelo &lt;strong>MFP M176n&lt;/strong> (véase &lt;a class="link" href="https://web.archive.org/web/20201223014519/https://h30467.www3.hp.com/t5/Impresi%C3%B3n-escaneo-fax-y-copia/Puerta-abierta-trasera-con-partes-sueltas/m-p/799574" target="_blank" rel="noopener"
>Puerta abierta trasera con partes sueltas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) y la recomendación era llevar la impresora a un centro de servicio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/La-famosa-pieza-blanca.jpg"
alt="La solicitud de ayuda en los foros de HP. Muestra la famosa pieza blanca.">&lt;figcaption>
&lt;p>La solicitud de ayuda en los foros de HP. Muestra la famosa pieza blanca.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Encontrar la ubicación de esas piezas es como jugar un rompecabezas tridimensional. Al menos la pieza blanca ofrece algo de contraste, pero colocar una pieza negra en un tablero negro no es cosa sencilla.&lt;/p>
&lt;p>Me tuve que armar de mucha paciencia y de una pequeña lámpara para ubicar la posición de estas piezas rogando a Dios que al salir disparadas no se hubiera roto algo.&lt;/p>
&lt;h2 id="pieza-blanca-a-la-izquierda-pieza-negra-a-la-derecha">Pieza blanca a la izquierda, pieza negra a la derecha.
&lt;/h2>&lt;p>Tardé como una hora en encontrar la ubicación de estas piezas. Ambas están más o menos a la misma altura.&lt;/p>
&lt;p>La pieza blanca va del lado izquierdo y se acopla con un pequeño resorte metálico que la mantiene en su ubicación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/ubicaci%C3%B3n-de-la-pieza-blanca.jpg"
alt="Esta es la ubicación de la pieza blanca, al lado izquierdo de la puerta trasera.">&lt;figcaption>
&lt;p>Esta es la ubicación de la pieza blanca, al lado izquierdo de la puerta trasera.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La pieza negra fue todo un caso. Va del lado derecho y no la detiene absolutamente nada. Solo hay que colocarla en su sitio. Creo que la ausencia de esta pieza es la culpable del mensaje de error de &lt;strong>Puerta trasera abierta&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/ubicaci%C3%B3n-de-la-pieza-negra.jpg"
alt="Ubicación de la pieza negra.">&lt;figcaption>
&lt;p>Ubicación de la pieza negra.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez colocadas, el cierre de la puerta debe de ser suave. Si al hacerlo, lo hace de manera forzada, probablemente una de las piezas esté mal colocada. Espero que las imágenes sirvan de guía.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/02/Un-vistazo-general-de-la-ubicacion-de-las-piezas.jpg"
alt="Un vistazo general de la ubicación de las piezas">&lt;figcaption>
&lt;p>Un vistazo general de la ubicación de las piezas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me sorprende que ambas piezas salten sin mayor problema, eso indica problemas de diseño de parte de los ingenieros de HP.&lt;/p>
&lt;p>Entiendo que el exterior negro sea parte de una moda en el diseño de los dispositivos, pero el interior lo pudieron hacer de cualquier otro color.&lt;/p>
&lt;p>Colocar una pieza negra en una impresora negra requiere de una buena iluminación y mucha paciencia.&lt;/p>
&lt;p>Escribo este artículo porque en ningún lado encontré la ubicación de estas piezas. Sirva de guía para aquellos que tienen el mismo problema, antes de considerar tirar la impresora. Una pequeña pieza hace inservible toda la impresora.&lt;/p></description></item><item><title>Mejorar el tiempo de arranque de Manjaro</title><link>https://linuxmanr4.com/2018/01/26/mejorar-el-tiempo-de-arranque-de-manjaro/</link><pubDate>Fri, 26 Jan 2018 15:41:35 +0000</pubDate><guid>https://linuxmanr4.com/2018/01/26/mejorar-el-tiempo-de-arranque-de-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/01/pexels-photo-3422964.jpeg" alt="Featured image of post Mejorar el tiempo de arranque de Manjaro" />&lt;p>Ayer estaba leyendo esta nota en la Mirada del Replicante: &lt;a class="link" href="https://lamiradadelreplicante.com/2018/01/23/canonical-quiere-que-ubuntu-arranque-mas-rapido/" target="_blank" rel="noopener"
>Canonical quiere que Ubuntu arranque más rápido&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
¡Y yo también!, pero existe el problema de que yo no utilizo Ubuntu desde hace varios años. En su lugar tengo instalado &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como mi distro linuxera de cabecera para mis equipos de uso personal.&lt;/p>
&lt;p>No es que mi equipo arranque lento, generalmente enciendo el equipo, me voy a preparar un café y cuando llego ya esta la pantalla que me pide iniciar sesión. Unos minutos después ya estoy listo para empezar a trabajar.&lt;/p>
&lt;p>De hecho vino a mi memoria un momento en el que Ubuntu arrancaba endemoniadamente rápido, pero no era con &lt;a class="link" href="https://es.wikipedia.org/wiki/Systemd" target="_blank" rel="noopener"
>systemd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
así que ese dato no me era útil.&lt;/p>
&lt;h2 id="updatedb-y-man-db">updatedb y man-db.
&lt;/h2>&lt;p>Investigando di con otro artículo de La mirada del replicante: &lt;a class="link" href="https://lamiradadelreplicante.com/2014/02/16/analizar-el-tiempo-de-arranque-de-tu-sistema-con-systemd-analize/" target="_blank" rel="noopener"
>Analizar el tiempo de arranque de tu sistema con systemd-analize&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ahí fue donde conocí el comando &lt;strong>systemd-analyze.&lt;/strong>&lt;/p>
&lt;p>Al ejecutar el comando &lt;strong>systemd-analyze blame&lt;/strong> en la terminal me di cuenta de dos procesos que en conjunto ocupaban ¡más de 5 minutos del arranque!.&lt;/p>
&lt;p>Estos son los culpables:&lt;/p>
&lt;ul>
&lt;li>updatedb.service&lt;/li>
&lt;li>man-db.service&lt;/li>
&lt;/ul>
&lt;p>El servicio &lt;strong>updatedb&lt;/strong> se encarga actualizar una base de datos que sirve para localizar archivos (es parte del paquete mlocate).&lt;/p>
&lt;p>&lt;strong>man-db&lt;/strong> se utiliza para inicializar o actualizar las cachés de la base de datos que normalmente son mantenidas por &lt;em>man&lt;/em> (que muestra las ayudas de los comandos de la terminal).&lt;/p>
&lt;p>Updatedb le agregaba en mi caso más de 4 minutos al proceso de arranque, man-db sólo 1, pero comparado con los demás procesos que se inician durante el arranque que duran segundos simplemente era demasiado.&lt;/p>
&lt;h2 id="tuneando-systemd">Tuneando systemd
&lt;/h2>&lt;p>Me di cuenta que no era el único con este problema. Después de buscar un poco en Google di con una solución sencilla que fue indicarle a &lt;strong>systemd&lt;/strong> que ejecutara esos servicios a cierta hora o mucho después de iniciado el proceso de arranque.&lt;/p>
&lt;p>Para eso es necesario crear estos archivos.&lt;/p>
&lt;p>Nota: Las carpetas &lt;strong>man-db.timer.d&lt;/strong> y &lt;strong>updatedb.timer.d&lt;/strong> no existen hay que crearlos desde la terminal.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># /etc/systemd/system/man-db.timer.d/man-db.timer.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[Timer]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnCalender=
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnCalendar=13:00
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnBootSec=120
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># /etc/systemd/system/updatedb.timer.d/updatedb.timer.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[Timer]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnCalender=
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnCalendar=13:05
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">OnBootSec=180
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Claro que estos valores son ajustables. De esta forma logré disminuir mi tiempo de arranque a tan solo 1 minuto y medio, que no esta nada mal cuando se requiere un arranque veloz.&lt;/p>
&lt;p>Espero que este artículo les sea de utilidad.&lt;/p>
&lt;h3 id="enlaces-de-interés">Enlaces de interés.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.reddit.com/r/archlinux/comments/36fqzh/updatedbservice_and_mandbservice_increases_boot/" target="_blank" rel="noopener"
>updatedb.service and man-db.service increases boot time&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Long startup time because of updatedb.service and man-db.service&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/title/Systemd/Timers" target="_blank" rel="noopener"
>Wiki Arch systemd/Timers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Convertir imágenes de formato HEIC a JPG con Linux</title><link>https://linuxmanr4.com/2018/01/11/heic-jpg-linux/</link><pubDate>Thu, 11 Jan 2018 17:57:59 +0000</pubDate><guid>https://linuxmanr4.com/2018/01/11/heic-jpg-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/01/apple-medhat-dawoud-353792.jpg" alt="Featured image of post Convertir imágenes de formato HEIC a JPG con Linux" />&lt;p>Hace unos días tuve un problema muy interesante. Les cuento, ustedes saben que buena parte del negocio de Apple es aumentar el tamaño del espacio de almacenamiento rentado en iCloud.&lt;/p>
&lt;p>Me parece que de inicio dan 5 GB que es claramente insuficiente y se llena con mucha facilidad. Es por eso que muchas personas optan por comprar un plan de almacenamiento que varía un poco de país en país.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/01/Planes-de-almacenamiento-de-iCloud.png"
alt="Planes de almacenamiento de iCloud">&lt;figcaption>
&lt;p>Planes de almacenamiento de iCloud&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Un compañero llegó a mi por una advertencia de que su espacio en iCloud ya estaba lleno. Le expliqué que si quería almacenar sus fotos en iCloud tendría que pagar a menos que …&lt;/p>
&lt;h2 id="google-fotos">Google Fotos
&lt;/h2>&lt;p>Se que existe una versión de Google Fotos para iOS, solo se necesita una cuenta de Google para que empiece a almacenar las fotos que se toman en el iPhone o en el iPad y se sincronizan automáticamente.&lt;/p>
&lt;p>Tengo entendido que el espacio es ilimitado si se guardan en formato de alta calidad, pero no muy alta calidad (estos aparatos nuevos abusan).&lt;/p>
&lt;p>Mi compañero me dijo que no importaba, solo quería tener un respaldo de sus fotos por si algún dispositivo se pierde o descompone.&lt;/p>
&lt;p>Y funcionó muy bien !!! De inmediato las fotos se empezaron a subir a la nube de Google, lo mejor es que también tiene acceso mediante el sitio web así que todo era miel sobre hojuelas hasta que un día …&lt;/p>
&lt;h2 id="heic-qué-demonios-es-eso">HEIC ¿Qué demonios es eso?
&lt;/h2>&lt;p>Un buen día quiso descargar un álbum de imágenes selectas y ¡Oh sorpresa! nos dimos cuenta de que los archivos tenían una extensión extraña, todos las imágenes tenían la extensión heic .&lt;/p>
&lt;p>Pues resulta que &lt;strong>HEIC&lt;/strong> (High Efficiency Image File Format) es el nuevo formato que utilizan los dispositivos Apple, creo que a partir de iOS 11. Y por lo visto todavía no es muy conocido y algunos no están muy contentos con “la novedad” (léase &lt;a class="link" href="https://discussions.apple.com/thread/8093989" target="_blank" rel="noopener"
>HEIC file format is Unwelcomed!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>Google Fotos no tiene problemas para mostrar los archivos, pero al descargarlos lo hace en su formato original y actualmente no es muy conocido. Ninguno de mis programas para visualizar imágenes en Linux lo reconocía ¡Ni siquiera GIMP! y eso amigos, eso si que es un problema.&lt;/p>
&lt;p>Intenté un cambio de formato con ImageMagick pero tampoco. Así que era tiempo de buscar opciones.&lt;/p>
&lt;h2 id="tifig">Tifig
&lt;/h2>&lt;p>Afortunadamente me encontré en GitHub con un programa muy verde pero que en mi caso funcionó muy bien llamado &lt;a class="link" href="https://github.com/monostream/tifig" target="_blank" rel="noopener"
>tifig&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Tuve que instalarlo a mano, porque todavía no existe un paquete en AUR para este programa. Hay un repositorio para Ubuntu, pero en mi caso tuve que instalar algunos programas dependientes.&lt;/p>
&lt;p>En la misma página del proyecto se ofrecen las distintas opciones de instalación.&lt;/p>
&lt;h2 id="de-heic-a-jpg-por-montones">De HEIC a JPG por montones
&lt;/h2>&lt;p>Una vez instalado &lt;strong>tifig&lt;/strong> todo es más sencillo.&lt;/p>
&lt;p>Forma de uso:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Converts iOS 11 HEIC images to practical formats
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Usage:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tifig [OPTION...] input_file [output_file]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -i, --input arg Input HEIF image
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -o, --output arg Output image path
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -q, --quality [=arg(=90)] Output JPEG quality (default: 90)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -v, --verbose Verbose output
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -w, --width arg Width of output image
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -h, --height arg Height of output image
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -c, --crop Smartcrop image to fit given size
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -p, --parallel Decode tiles in parallel
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -t, --thumbnail Use embedded thumbnail
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --version Show tifig version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sin embargo, ejecutar un comando por cada archivo es tardado y tedioso. Al principio pensé en alguna solución con &lt;strong>Bash&lt;/strong>, pero luego apareció &lt;strong>parallel&lt;/strong> como una alternativa más eficiente.&lt;/p>
&lt;p>Por ejemplo, esta instrucción convierte todos los archivos .heic del directorio actual a jpg y además los redimensiona a 1200 pixeles de ancho.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">parallel -j 3 --eta tifig -w 1200 &amp;#39;{}&amp;#39; &amp;#39;{.}.jpg&amp;#39; ::: *.heic
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A &lt;strong>parallel&lt;/strong> le indiqué que utilizara 3 núcleos del microprocesador con &lt;strong>-j 3&lt;/strong> (tengo un microprocesador de 4 núcleos) y que me mostrara un tiempo aproximado de finalización con &lt;strong>–eta&lt;/strong>.&lt;/p>
&lt;p>De este modo la conversión es mucho más veloz.&lt;/p>
&lt;h2 id="la-solución-web">La solución web
&lt;/h2>&lt;p>Existe una página que ofrece la conversión de &lt;strong>heic&lt;/strong> a &lt;strong>jpg&lt;/strong> que se llama &lt;a class="link" href="https://heictojpg.com/" target="_blank" rel="noopener"
>heictojpg.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que hace un excelente trabajo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/heictojpg.jpg">
&lt;/figure>
&lt;p>El único problema es que esta limitado a 50 imágenes por lote.&lt;/p>
&lt;p>Supongo que con el tiempo el formato &lt;strong>heic&lt;/strong> se agregará a los formatos soportados por los principales programas de edición gráfica. Pero por el momento esto es lo que hay.&lt;/p>
&lt;p>¡Felices conversiones!&lt;/p>
&lt;p>Imagen destacada de &lt;a class="link" href="https://unsplash.com/photos/f-3mUXFLY2o?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Medhat Dawoud&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 en &lt;a class="link" href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Unsplash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Impresora compartida con samba pide usuario y contraseña</title><link>https://linuxmanr4.com/2017/11/10/impresora-samba-usuario-contrasena/</link><pubDate>Fri, 10 Nov 2017 21:23:20 +0000</pubDate><guid>https://linuxmanr4.com/2017/11/10/impresora-samba-usuario-contrasena/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/11/impresora-bank-phrom-352283.jpg" alt="Featured image of post Impresora compartida con samba pide usuario y contraseña" />&lt;p>A lo mejor el título de este artículo no es muy claro. Voy a intentar explicar la situación. Generalmente mando mis trabajos de impresión a la impresora compartida de un equipo que utiliza Windows 7. Usualmente no había tenido problemas hasta después de la última actualización de Manjaro en la que para mandar imprimir me pide un nombre de usuario y una contraseña.&lt;/p>
&lt;p>Al principio creí que era la contraseña de &lt;em>root&lt;/em>, pero luego me la volvía a pedir. Intenté con mi usuario de linux y tampoco. Lo único que funcionó era el nombre de usuario y &lt;a class="link" href="https://linuxmanr4.com/2008/07/22/cuando-no-tienes-la-contrasena-de-la-computadora-con-windows/" >contraseña de la computadora con Windows&lt;/a>
. Bueno ya era un avance.&lt;/p>
&lt;p>En ocasiones anteriores este tipo de problemas se arreglaban solos o bastaba con dar de alta nuevamente la impresora para que desaparecieran pero ese no fue el caso.&lt;/p>
&lt;p>Durante más de una semana me acostumbré a teclear el usuario y la contraseña. Funcionaba pero era poco práctico, ya era hora de buscar una solución.&lt;/p>
&lt;h2 id="configuración-de-impresión">Configuración de impresión.
&lt;/h2>&lt;p>Manjaro tiene un programa que se llama &lt;strong>Configuración de impresión&lt;/strong> que es donde administro las impresoras que tengo dadas de alta en mi sistema. Supuse que la solución era un poco obvia, decirle a mi Manjaro que almacenara el nombre de usuario y contraseña en lugar de teclearlo cada vez que quería imprimir.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/11/Cambiar-el-URI-del-dispositivo-impresora-samba.png"
alt="Cambiar el URI del dispositivo">&lt;figcaption>
&lt;p>Cambiar el URI del dispositivo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Incluso existe un espacio en donde se puede especificar un usuario y contraseña en donde dice &lt;strong>Autenticación&lt;/strong>, lamentablemente después de varios intentos me di cuenta de que no guarda esa información y en la siguiente impresión la vuelve a pedir. Así que era necesario probar otro enfoque.&lt;/p>
&lt;h2 id="mediante-la-página-de-cups">Mediante la página de CUPS.
&lt;/h2>&lt;p>Para entrar a la página de &lt;a class="link" href="https://es.wikipedia.org/wiki/Common_Unix_Printing_System" target="_blank" rel="noopener"
>CUPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
solo hay que visitar &lt;strong>http://localhost:631/&lt;/strong> , luego el menú &lt;strong>Administración&lt;/strong> &amp;hellip; &lt;strong>Administrar Impresoras&lt;/strong> .. &lt;strong>Mantenimiento&lt;/strong> &amp;hellip; &lt;strong>Modificar Impresora&lt;/strong>(o ya de plano dar de alta una nueva impresora).  Seleccionar la opción que dice: &lt;strong>Windows Printer via SAMBA&lt;/strong> y en ese lugar se le puede especificar el usuario y contraseña de la conexión a la impresora.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/11/Modificar-impresora-en-CUPS.png"
alt="Modificar impresora en CUPS">&lt;figcaption>
&lt;p>Modificar impresora en CUPS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La conexión quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">smb://usuario:contraseña@ip_computadora/impresora_compartida
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Me pasó que el nombre de usuario de la computadora con Windows incluía un espacio, en ese caso, se agrega un &lt;strong>%20&lt;/strong> en el lugar donde va el espacio, algo más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">smb://usuario%20con%20espacio:contraseña@ip_computadora/impresora_compartida
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo que sigue es guardar los cambios, hacer algunas pruebas y si todo salio bien, ya no pedirá el usuario y la contraseña. Bueno, hasta la próxima actualización de Manjaro.&lt;/p>
&lt;p>Espero que este consejo les sea de utilidad. ¡Hasta la próxima!.&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/CUPS_%28Espa%C3%B1ol%29" target="_blank" rel="noopener"
>CUPS en el Wiki de Arch Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>Imagen principal de &lt;a class="link" href="https://unsplash.com/photos/Tzm3Oyu_6sk?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Bank Phrom&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 en &lt;a class="link" href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Unsplash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Sin espacio en el dispositivo al instalar un paquete con yaourt</title><link>https://linuxmanr4.com/2017/10/27/sin-espacio-yaourt/</link><pubDate>Fri, 27 Oct 2017 21:28:01 +0000</pubDate><guid>https://linuxmanr4.com/2017/10/27/sin-espacio-yaourt/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/sin-espacio.jpg" alt="Featured image of post Sin espacio en el dispositivo al instalar un paquete con yaourt" />&lt;p>En mi artículo anterior les platicaba a mis queridos 4 lectores un problema al descargar un paquete desde AUR.&lt;/p>
&lt;p>Imaginen ahora el nivel de emoción cuando por fin se logró completar la descarga y luego la frustración que vino después de leer que el paquete no se había podido instalar por falta de espacio en el dispositivo.&lt;/p>
&lt;h2 id="tmp-de-temporal">Tmp de temporal.
&lt;/h2>&lt;p>Después de recoger mi cabello del piso tuve que pensar en algo. Bien dice que todo problema nos deja una enseñanza. El mensaje decía que la partición &lt;strong>tmp&lt;/strong> se había quedado sin espacio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/comando-df.png"
alt="comando df">&lt;figcaption>
&lt;p>comando df&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Gracias al comando &lt;a class="link" href="https://linux.die.net/man/1/df" target="_blank" rel="noopener"
>df&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 me pude dar cuenta que el directorio /tmp estaba al 100% (en la imagen apenas muestra un 1% de uso). Vamos, que no le cabía ni un solo bit más y ese era el problema.&lt;/p>
&lt;p>También el comando muestra que la carpeta tmp es del tipo &lt;a class="link" href="https://es.wikipedia.org/wiki/Tmpfs" target="_blank" rel="noopener"
>tmpfs&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y eso dice mucho. Los tmpfs no ocupan espacio en ningún disco duro, viven en la memoria RAM. En el caso de manjaro el tamaño por default de esta partición es la mitad de la memoria RAM instalada y parece que 4GB no fueron suficientes para el programa que quería instalar.&lt;/p>
&lt;p>Que el directorio &lt;em>tmp&lt;/em> sea &lt;em>tmpfs&lt;/em> supone varias ventajas. La compilación es mucho más rápida y el espacio se recupera después de reiniciar el equipo y funciona la gran mayoría de las veces excepto cuando no &lt;em>(música triste de violines aquí por favor)&lt;/em>.&lt;/p>
&lt;h2 id="más-espacio-por-favor">Más espacio por favor.
&lt;/h2>&lt;p>Tenía dos opciones: Hacer la partición &lt;em>tmp&lt;/em> más grande, que ya no fuera &lt;em>tmpfs&lt;/em>, por lo tanto, ocuparía algo de espacio en el disco. Pero también tenía un aspecto negativo. Todos los demás programas que quisieran usar la carpeta &lt;em>tmp&lt;/em> estarían en el mismo lugar, sin los beneficios de una carpeta temporal en RAM mucho más rápida.&lt;/p>
&lt;p>La segunda opción es indicarle a &lt;em>yaourt&lt;/em> que usara otra carpeta para la instalación de los paquetes. Al final opté por esto último.&lt;/p>
&lt;p>A fin de cuentas solo se usaría cuando instalara paquetes del AUR. No era mucho problema.&lt;/p>
&lt;p>Para lograrlo solo hay que indicarle a yaourt que utilice otra carpeta. El archivo a editar es &lt;strong>/etc/yaourtrc&lt;/strong> .&lt;/p>
&lt;p>Y ajustar esta línea más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">TMPDIR=&amp;#34;/home/$USER/tmp&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La variable de entorno &lt;strong>$USER&lt;/strong> hará los ajustes para cada usuario del sistema.&lt;/p>
&lt;p>¿Creían que eso era suficiente? jajajajaaja, ¡PUES NO!. Me tuve que dar otro tope con la pared y hacer un ajuste más en la configuración de nuestro viejo amigo, el archivo de configuración de &lt;strong>Makepkg&lt;/strong> (léase &lt;a class="link" href="https://linuxmanr4.com/2017/10/20/mejorar-la-descarga-de-programas-desde-aur/" >Mejorar la descarga de programas desde AUR&lt;/a>
). Y también decirle que usara una carpeta temporal diferente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="err">#&lt;/span>&lt;span class="o">--&lt;/span> &lt;span class="nx">Specify&lt;/span> &lt;span class="nx">a&lt;/span> &lt;span class="nx">directory&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="kn">package&lt;/span> &lt;span class="nx">building&lt;/span>&lt;span class="p">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">BUILDDIR&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;/home/$USER/tmp/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con estos ajustes pude al fin instalar el programa que quería desde AUR.&lt;/p>
&lt;h2 id="los-archivos-temporales-son-sólo-eso-y-nada-más">Los archivos temporales son sólo eso y nada más.
&lt;/h2>&lt;p>Como un plus al éxito obtenido agregué un comando de limpieza que se ejecutará al iniciar mi sesión de XFCE. De esa forma no acumularía archivos temporales.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/borrar-temporales.png"
alt="borrar temporales">&lt;figcaption>
&lt;p>borrar temporales&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Usualmente todo funciona bien en Manjaro. Situaciones como esta son casos excepcionales derivado de mis necesidades de programas de &lt;a class="link" href="https://aur.archlinux.org/" target="_blank" rel="noopener"
>AUR&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Pero si alguna vez tienen este problema espero que les sea de utilidad esta información.&lt;/p>
&lt;h3 id="enlaces-de-referencia">Enlaces de referencia:
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/archlinuxfr/yaourt/issues/47" target="_blank" rel="noopener"
>yaourt - tmpfs error: No space left on device&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Imagen destacada de &lt;a class="link" href="https://unsplash.com/@alfonsmc10" target="_blank" rel="noopener"
>Alfons Morales&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>Mejorar la descarga de programas desde AUR</title><link>https://linuxmanr4.com/2017/10/20/mejorar-la-descarga-de-programas-desde-aur/</link><pubDate>Fri, 20 Oct 2017 13:43:44 +0000</pubDate><guid>https://linuxmanr4.com/2017/10/20/mejorar-la-descarga-de-programas-desde-aur/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/axel-aur-1.jpg" alt="Featured image of post Mejorar la descarga de programas desde AUR" />&lt;p>La semana pasada tuve muchos problemas para descargar un paquete desde AUR que necesitaba, pero por una u otra razón no lograba descargar.&lt;/p>
&lt;p>La descarga del archivo representaba más de 500 MB y una conexión a internet inestable no ayudaba mucho.&lt;/p>
&lt;p>Anteriormente había configurado pacman para que usara gestores de descarga como &lt;a class="link" href="https://linuxmanr4.com/2014/11/18/pacman-con-wget/" >wget&lt;/a>
o &lt;a class="link" href="https://linuxmanr4.com/2016/03/14/pacman-aria2-paquetes-manjaro/" >aria2&lt;/a>
. Pero ese consejo no aplica a yaourt, la herramienta que utilizo en manjaro para descargar programas desde &lt;strong>AUR&lt;/strong>.&lt;/p>
&lt;p>Después de una breve investigación logré hacer el ajuste ganador. Curiosamente no fue con &lt;a class="link" href="https://curl.haxx.se/" target="_blank" rel="noopener"
>curl&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, ni con wget, tampoco con mi campeón &lt;a class="link" href="https://aria2.github.io/" target="_blank" rel="noopener"
>aria2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, no, en esta ocasión el ganador fue &lt;a class="link" href="https://github.com/axel-download-accelerator/axel" target="_blank" rel="noopener"
>axel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="configurar-yaourt-para-que-use-axel">Configurar yaourt para que use axel.
&lt;/h2>&lt;p>Lograr que yaourt utilice &lt;em>axel&lt;/em> para manejar las descargas de los archivos no fue difícil. Un detalle curioso, esta modificación no es en el archivo de configuración de &lt;em>yaourt&lt;/em>, en su lugar, se edita el archivo de configuración de &lt;em>makepkg&lt;/em> que es el que se encarga de las descargas de los archivos.&lt;/p>
&lt;p>Para cambiar el gestor de descargas hay que editar el archivo &lt;strong>makepkg.conf&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/makepkg.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Se puede comentar o reemplazar esto&amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">DLAGENTS=(&amp;#39;ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;rsync::/usr/bin/rsync --no-motd -z %u %o&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;scp::/usr/bin/scp -C %u %o&amp;#39;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>por esto otro&amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">DLAGENTS=(&amp;#39;ftp::/usr/bin/axel -n 5 -v -a -s 102400 %u -o %o&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;http::/usr/bin/axel -n 5 -v -a -s 102400 %u -o %o&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;https::/usr/bin/axel -n 5 -v -a -s 102400 %u -o %o&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;rsync::/usr/bin/rsync -z %u %o&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;scp::/usr/bin/scp -C %u %o&amp;#39;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como pueden ver, se cambia el programa encargado dependiendo del protocolo. Axel maneja sin problemas &lt;em>http&lt;/em>, &lt;em>https&lt;/em> y &lt;em>ftp&lt;/em>.&lt;/p>
&lt;p>Además con &lt;em>-s 102400&lt;/em> limito la velocidad de la descarga a 100 kbps, para no saturar mi inestable conexión a internet.&lt;/p>
&lt;p>Hechos los cambios solo falta descargar los programas que necesitemos en AUR usando &lt;em>yaourt&lt;/em> y eso es todo.&lt;/p>
&lt;p>Axel tiene la ventaja de acelerar un poco las descargas ya que usa múltiples conexiones (divide y vencerás).  Además de que es bastante tolerante a los problemas de conexión.&lt;/p>
&lt;p>Aún con todos estos cambios tuve que hacer varios intentos. Al parecer era un problema en el servidor que tenía alojado el archivo porque después de unos días de intentarlo se descargó sin mayor novedad.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/Connection-time-out.png"
alt="Connection time out \| descarga de programas desde AUR" width="645">&lt;figcaption>
&lt;p>Connection time out | descarga de programas desde AUR&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Son las mismas instrucciones para cambiar el gestor a &lt;em>wget&lt;/em> o &lt;em>aria2&lt;/em>, pero hay que tener cuidado con los parámetros, porque son distintos para cada programa.&lt;/p>
&lt;p>Luego tuve otros problemas, pero eso será tema de otro artículo.&lt;/p>
&lt;p>¡Hasta la próxima!.&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/axel-download-accelerator/axel" target="_blank" rel="noopener"
>Axel - Light command line download accelerator for Linux and Unix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://bbs.archlinux.org/viewtopic.php?id=90639" target="_blank" rel="noopener"
>Can I make yaourt use aria2 instread of wget?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.manjaro.org/index.php/Arch_User_Repository" target="_blank" rel="noopener"
>AUR Arch User Repository&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Respaldos en Linux, los programas que he utilizado</title><link>https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/</link><pubDate>Mon, 02 Oct 2017 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/</guid><description>&lt;img src="https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/respaldos-linux.webp" alt="Featured image of post Respaldos en Linux, los programas que he utilizado" />&lt;p>Llevo mucho tiempo usando Linux y hago frecuentemente respaldos de mis archivos. Siempre es una mejor política hacer respaldos que intentar recuperarlos. Para hacer respaldos en Linux he utilizado varios programas. En este artículo voy a comentar algunos de sus pros y sus contras.&lt;/p>
&lt;h2 id="deja-dup">Deja Dup.
&lt;/h2>&lt;p>Durante mucho tiempo utilicé &lt;a class="link" href="https://launchpad.net/deja-dup" target="_blank" rel="noopener"
>Deja dup&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, venía incluido en Cinnamon y me pareció la opción natural. Es muy fácil de configurar, solo hay que responder algunas preguntas, decirle cuáles carpetas respaldar y eso es todo.&lt;/p>
&lt;p>Diariamente ejecuta un respaldo de los archivos de una forma prácticamente imperceptible. Ocasionalmente me aparecía una notificación para informarme que había terminado el respaldo o me pedía que pusiera una contraseña para verificar que todo estaba bien.&lt;/p>
&lt;p>Un buen día se me ofreció recuperar un archivo y ese fue el final de deja dup en mi escritorio. No pude lograr que me apareciera un archivo para restaurar. Lo intenté de varias formas pero el tiempo que invertía en la tarea no era aceptable. Y al parecer no era el único con el mismo problema: &lt;a class="link" href="https://askubuntu.com/questions/321447/how-can-i-fix-deja-dup-hanging-on-restore" target="_blank" rel="noopener"
>How can i fix Deja Dup hanging on restore?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://bugs.launchpad.net/deja-dup/&amp;#43;bug/1075092" target="_blank" rel="noopener"
>Recovery search for files is very slow&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Afortunadamente no era un archivo de vida o muerte, pero no iba a esperar a caer en una situación crítica. Era tiempo de buscar otras opciones.&lt;/p>
&lt;h2 id="duplicati">Duplicati.
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.duplicati.com/" target="_blank" rel="noopener"
>Duplicati&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es similar en varios aspectos a deja-dup, solo que tiene muchas más opciones y eso no es necesariamente malo.&lt;/p>
&lt;p>En Windows tiene el problema de alentar los equipos durante el respaldo. Pero eso no quiere decir que lo haga en Linux. Ya sabes lo que dicen, más vale malo por conocido que bueno por conocer. Sin embargo en Linux tuve problemas para instalarlo.&lt;/p>
&lt;p>Además, estaba habituado a la configuración de la versión 1 de &lt;a class="link" href="https://linuxmanr4.com/2013/10/21/duplicati-respaldos/" >duplicati&lt;/a>
y los cambios que hicieron en la versión 2 fueron demasiados para mi gusto. Algunos ajustes que funcionaban para mi los ocultaron, en fin, que nadie me obliga a usarlo.&lt;/p>
&lt;p>Como en gustos no hay nada escrito se los dejo tal cual. A lo mejor a alguien le gusta y lo hace su programa de respaldos.&lt;/p>
&lt;h2 id="rsync">Rsync
&lt;/h2>&lt;p>Un clásico que no falla. &lt;a class="link" href="https://linuxmanr4.com/2012/02/27/reciclando-un-ipod-como-unidad-de-respaldo/" >Rsync&lt;/a>
es la herramienta para copiar archivos por excelencia.&lt;/p>
&lt;p>Tiene la ventaja de que es muy fácil de integrar a un script en bash y para hacer un respaldo solo se tiene que ejecutar el archivo. Opcionalmente se puede programar una tarea regularmente y ¡Voalá!, respaldos automáticos simples y confiables.&lt;/p>
&lt;p>Cuando se requiere hacer copias de archivos de manera masiva rsync es la herramienta de la terminal que tienes que elegir pero, bueno siempre hay un pero.&lt;/p>
&lt;p>El único problema que tiene es en el manejo de versiones. Supongamos por ejemplo que necesitas una versión de un archivo de la semana pasada. No la de ayer, no la antier, la de la semana pasada exactamente. Ahí es donde entra nuestro siguiente programa participante.&lt;/p>
&lt;h2 id="back-in-time">Back in Time.
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/bit-team/backintime" target="_blank" rel="noopener"
>Back in Time&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es uno de esos programas que tiene justo lo que estaba buscando. No es tan minimalista como Deja-dup ni tampoco es tan complicado como manejar las opciones de un comando en la terminal.&lt;/p>
&lt;p>Back in time utiliza dos de mis herramientas favoritas en software libre, python 3 y rsync para crear lo que se llaman Instantáneas (o snapshots).&lt;/p>
&lt;p>Las instantáneas tienen una fecha, de esa forma es posible regresar a versiones anteriores del mismo archivo.&lt;/p>
&lt;p>El impacto en la computadora, al menos con Linux es mínimo. No me notifica nada, solo aparece un discreto icono azul en la barra de tareas. Hace lo que tiene que hacer y eso es todo, al terminar el ícono desaparece como un fantasma.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/10/back-in-time-trabajando.png"
alt="back in time trabajando" width="253">&lt;figcaption>
&lt;p>back in time trabajando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aprendiendo de mi experiencia con Deja-dup he recuperado algunos archivos para comprobar que funciona y así ha sido.&lt;/p>
&lt;p>Configurar un respaldo requiere un poco de esfuerzo pero no es nada complicado. Afortunadamente cuenta con una buena &lt;a class="link" href="https://backintime.readthedocs.io/en/latest/index.html" target="_blank" rel="noopener"
>documentación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 . Me recuerda un poco a duplicati, me permite establecer opciones como el encriptado, las carpetas a respaldar, cuales hay que excluir y la frecuencia de las instantáneas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/09/configuraci%C3%B3n-general.png"
alt="Configuración de un respaldo con Back in Time." width="742">&lt;figcaption>
&lt;p>Configuración de un respaldo con Back in Time.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El único problema con Back in Time es que al guardar varias versiones de los mismos archivos el espacio ocupado por el respaldo tiende a crecer un poco más que al hacer una copia simple.&lt;/p>
&lt;h2 id="backrest">Backrest
&lt;/h2>&lt;p>Antes de hablar de Backrest primero tenemos que mencionar a &lt;a class="link" href="https://restic.net/" target="_blank" rel="noopener"
>restic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es el programa que hace la chamba.&lt;/p>
&lt;p>Restic es un programa de respaldo &lt;a class="link" href="https://es.wikipedia.org/wiki/Deduplicaci%C3%B3n_de_datos" target="_blank" rel="noopener"
>deduplicado&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, cifrado y eficiente escrito en &lt;a class="link" href="https://go.dev/" target="_blank" rel="noopener"
>Go&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Funciona como un solo binario estático (no necesita instalar dependencias complicadas) y no requiere un servidor central.&lt;/p>
&lt;p>Crea instantáneas de tus archivos y carpetas, guardando solo los cambios (incremental por bloques/chunks), lo que ahorra mucho espacio y tiempo.&lt;/p>
&lt;p>Pero es un programa que se ejecuta en la terminal que tiene sus complejidades. Y tu no quieres eso en un programa de respaldos.&lt;/p>
&lt;p>Lo que quieres es configurar y que todo fluya.&lt;/p>
&lt;p>Ahí es donde entra &lt;a class="link" href="https://github.com/garethgeorge/backrest" target="_blank" rel="noopener"
>Backrest&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es una interfaz web para Restic que facilita enormemente la configuración de los respaldos.&lt;/p>
&lt;p>En Manjaro esta disponible en AUR.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">yay -Sy backrest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y para habilitar el servicio&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo systemctl &lt;span class="nb">enable&lt;/span> --now backrest@&lt;span class="nv">$USER&lt;/span>.service
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hecho esto, lo que sigue es configurar &lt;strong>Repositorios&lt;/strong> el lugar donde se van a guardar los archivos y los &lt;strong>Planes&lt;/strong> Frecuencia, carpetas, exclusiones y demás configuraciones.&lt;/p>
&lt;p>Guías hay muchas, pero a mi me gustó esta: &lt;a class="link" href="https://elblogdelazaro.org/backrest-una-interfaz-web-para-restic-backup/" target="_blank" rel="noopener"
>Backrest, una interfaz Web para Restic Backup - El Blog de Lázaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/backrest-plan-home-linux.webp"
width="747"
height="310"
srcset="https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/backrest-plan-home-linux_hu_333d8fab0c6266e4.webp 480w, https://linuxmanr4.com/2017/10/02/respaldos-en-linux-los-programas-que-he-utilizado/backrest-plan-home-linux_hu_1cbc5856949eaeaa.webp 1024w"
loading="lazy"
alt="El plan que respalda mis archivos de trabajo en Manjaro"
class="gallery-image"
data-flex-grow="240"
data-flex-basis="578px"
>&lt;/p>
&lt;p>Con el tiempo he sustituido mis respaldos con Back in Time y Rsync y dejando solamente Backrest para ahorrar espacio.&lt;/p>
&lt;p>¿Cuál programa de respaldos utilizan? ¿Les gusta el peligro y practican la computación extrema?. Por favor comenten :)&lt;/p></description></item><item><title>Varias formas de hacer una USB de arranque</title><link>https://linuxmanr4.com/2017/07/06/usb-de-arranque/</link><pubDate>Thu, 06 Jul 2017 16:56:28 +0000</pubDate><guid>https://linuxmanr4.com/2017/07/06/usb-de-arranque/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/07/probando-la-usb-de-arranque.jpg" alt="Featured image of post Varias formas de hacer una USB de arranque" />&lt;p>Mi buen amigo Miguel tiene varios problemas con su equipo y le sugerí cambiar de distribución (igual no soluciona nada, pero se entretiene). Me dijo que no podía quemar un DVD con la imagen ISO (ese es uno de sus problemas) y  le comenté que quemar un CD o DVD ya era cosa del pasado, lo de hoy es hacer una usb de arranque.&lt;/p>
&lt;p>Le iba a recomendar un artículo de mi blog, pero me di cuenta de que ya tienen mucho tiempo y mejor decidí escribir uno nuevo más actualizado con varios programas.&lt;/p>
&lt;h2 id="si-usas-windows-intenta-con-rufus">Si usas windows intenta con Rufus
&lt;/h2>&lt;p>Este pequeño programita funciona de maravilla y es mi primera recomendación para alguien que viene de Windows y quiere hacer su usb de arranque para instalar Linux.&lt;/p>
&lt;p>Es muy simple,  pequeño (¡menos de 1Mb!), hace bien su trabajo, vamos que es una lástima que no tenga una versión para linux.&lt;/p>
&lt;p>Es más, creo que ni siquiera requiere de instalación, solo lo ejecutas y ya. ¿Mencioné que también es software libre?&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/07/Rufus.png"
alt="Rufus" width="586">&lt;figcaption>
&lt;p>Rufus&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El punto medular es seleccionar la opción que dice: &lt;strong>Crear disco de arranque con Imagen ISO&lt;/strong> y luego elegir la imagen de la distribución de Linux que quieran grabar en el dispositivo USB.&lt;/p>
&lt;p>&lt;a class="link" href="https://rufus.akeo.ie/" target="_blank" rel="noopener"
>Descarga Rufus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="mintstick">mintstick
&lt;/h2>&lt;p>Una de las cosas buenas que me dejó mi paso por Cinnamon fue &lt;a class="link" href="https://github.com/linuxmint/mintstick" target="_blank" rel="noopener"
>mintstick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Una herramienta súper minimalista, solo hace dos preguntas, ¿Dónde está el archivo ISO? y ¿En cual dispositivo USB lo quieres grabar?.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/07/mintstick.png"
alt="mintstick" width="892">&lt;figcaption>
&lt;p>mintstick&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En manjaro está disponible en &lt;a class="link" href="https://wiki.manjaro.org/index.php/Arch_User_Repository" target="_blank" rel="noopener"
>AUR&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y el paquete se llama &lt;strong>mintstick-git&lt;/strong>. Supongo que también estará disponible en otras plataformas, será cosa de buscarle.&lt;/p>
&lt;h2 id="no-puede-faltar-la-terminal">No puede faltar la terminal.
&lt;/h2>&lt;p>Antes de todo existió la terminal. Se puede crear perfectamente una USB de arranque solo que hay que tener algunas precauciones extras.&lt;/p>
&lt;p>Lo primero que hay que hacer es averiguar EXACTAMENTE cuál es tu USB en el sistema. Para eso nos vamos a auxiliar del comando &lt;strong>blkid&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/07/blkid.png"
alt="blkid" width="997">&lt;figcaption>
&lt;p>blkid&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen, la usb esta en la carpeta &lt;em>/dev/sdd&lt;/em>  . El número indica que es la primer particion de la unidad y no es necesario para el comando &lt;em>dd&lt;/em>.&lt;/p>
&lt;p>Así que para crear nuestro usb de arranque basta y sobra con invocar al comando &lt;em>dd&lt;/em> y teclear algo más o menos así.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dd bs=4M if=/ruta/del/archivo.iso of=/dev/sdd
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de unos instantes y si todo sale bien, copiará la información al dispositivo usb y podrá usarse como una usb de arranque.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/07/usb-de-arranque-lista.png"
alt="usb de arranque lista" width="997">&lt;figcaption>
&lt;p>usb de arranque lista&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora podrán iniciar su computadora con la usb. La forma varía de equipo a equipo, algunos es con la tecla &lt;em>Esc&lt;/em> durante el arranque, o puede ser &lt;em>F8&lt;/em>, &lt;em>F11&lt;/em> o &lt;em>F12&lt;/em> depende del fabricante del BIOS.&lt;/p>
&lt;p>Si saben de otra forma para crear una usb de arranque, no duden en comentar.&lt;/p></description></item><item><title>Adiós Elastix, bienvenida Issabel</title><link>https://linuxmanr4.com/2017/05/05/bienvenida-issabel/</link><pubDate>Fri, 05 May 2017 14:05:11 +0000</pubDate><guid>https://linuxmanr4.com/2017/05/05/bienvenida-issabel/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/05/telefonos-comunicaciones.jpg" alt="Featured image of post Adiós Elastix, bienvenida Issabel" />&lt;p>El año pasado me enteré de la compra venta de Elastix, la distribución de Linux que utilizo como conmutador telefónico. La noticia me tomó por sorpresa.&lt;/p>
&lt;h2 id="quién-compró-a-elastix">¿Quién compró a Elastix?
&lt;/h2>&lt;p>En diciembre del año pasado sonaba como bomba la noticia de que la empresa &lt;a class="link" href="https://www.3cx.es/" target="_blank" rel="noopener"
>3CX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
había comprado a Elastix, una de las distribuciones más importantes en el ramo de comunicaciones.&lt;/p>
&lt;p>3CX ya ofrecía un conmutador telefónico para Windows. Cuando estuve investigando sobre el tema llegué a considerarlo, pero luego vino el tema del pago de licencias, límites de extensiones, programas exclusivos y &lt;a class="link" href="https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/" >venía huyendo precisamente de todo eso&lt;/a>
.&lt;/p>
&lt;p>En la última versión de Elastix (ya en manos de 3CX) se hizo el anuncio de que era &amp;ldquo;gratis&amp;rdquo; (pero no libre) hasta cierto punto. Después de eso hay que pagar ¿Cuanto? no lo se, realmente se pierde el interés cuando empiezas a llenar un formulario para obtener una &lt;em>free license key&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/05/Elastix-5-gratis-pero-con-limites.png"
alt="Elastix 5 gratis pero con limites">&lt;figcaption>
&lt;p>Elastix 5 gratis pero con limites&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Muchos desarrolladores se sienten defraudados al contribuir en un proyecto en el que creían para que lo empaquetaran, vendieran y lo cerraran. Y eso amigos, no se vale.&lt;/p>
&lt;h2 id="la-comunidad-al-rescate">La comunidad al rescate.
&lt;/h2>&lt;p>Pero una de las ventajas del software libre es que la comunidad puede hacer un &lt;a class="link" href="https://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_%28desarrollo_de_software%29" target="_blank" rel="noopener"
>fork&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y deslindarse de un l proyecto para continuar hacia otro rumbo y eso fue lo que hicieron con &lt;a class="link" href="http://www.issabel.org/es.html" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Me había tardado mucho en escribir sobre el tema principalmente porque no tenían ninguna forma de instalación. Vamos que la iniciativa todavía estaba muy verde. Pero hace poco se liberó la primera versión beta del proyecto y todo parece que pinta para bien.&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="en" dir="ltr">We are on campaign! Share the love - Download Issabel Beta (IP PBX Server) For Free. Link: &lt;a href="https://t.co/ipZmE3wCTn">https://t.co/ipZmE3wCTn&lt;/a> &lt;a href="https://t.co/aZWhWneKn6">pic.twitter.com/aZWhWneKn6&lt;/a>&lt;/p>&amp;mdash; Issabel (@IssabelIP) &lt;a href="https://x.com/IssabelIP/status/840303681128038400?ref_src=twsrc%5Etfw">March 10, 2017&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;p>Ha tenido una buena recepción por parte de la comunidad y tal parece que Elastix suena cada vez menos.&lt;/p>
&lt;p>Curiosamente todavía tengo instalada y funcionando la versión uno de Elastix y ya sabes lo que dicen «Si no esta roto, no lo arregles», así que seguirá ahí hasta que el hardware se rinda.&lt;/p>
&lt;p>Si estás pensando en construir un IP PBX no dejes de darle un vistazo a Issabel.&lt;/p>
&lt;h2 id="enlaces-de-interés">Enlaces de interés.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.issabel.org/" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://x.com/IssabelIP" target="_blank" rel="noopener"
>Twitter de Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.issabel.com/en/get-issabel/" target="_blank" rel="noopener"
>Descargar Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Pantalla negra después de intentar actualizar Manjaro</title><link>https://linuxmanr4.com/2017/04/05/pantalla-negra-despues-de-intentar-actualizar-manjaro/</link><pubDate>Wed, 05 Apr 2017 20:27:53 +0000</pubDate><guid>https://linuxmanr4.com/2017/04/05/pantalla-negra-despues-de-intentar-actualizar-manjaro/</guid><description>&lt;p>Ayer empecé mi día actualizando mi computadora con Manjaro. Todo parecía desarrollarse de manera normal, pero luego tuve problemas para abrir algunos programas. Bueno llegó al punto de que tomé la decisión de reiniciar.&lt;/p>
&lt;p>Con el tiempo he aprendido que puedo cancelar una actualización siempre y cuando lo haga durante la descarga de los paquetes ¡Jamás durante la instalación de los mismos!.&lt;/p>
&lt;h2 id="la-pantalla-negra">La pantalla negra.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/04/atorado-durante-el-arranque.jpg"
alt="Atorado durante el arranque.">&lt;figcaption>
&lt;p>Atorado durante el arranque.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para mi mala fortuna mi computadora no reinició normalmente. Se quedaba en una parte del proceso de arranque y de ahí ni para atrás, ni para adelante.&lt;/p>
&lt;p>Ante este tipo de situaciones lo mejor es revisar los foros oficiales de Manjaro, por si hay algún consejo y efectivamente, me encontré una recomendación de parte de &lt;a class="link" href="https://x.com/philmmanjaro" target="_blank" rel="noopener"
>Philip Müller&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en la que indica que la actualización se hiciera por terminal usando el comando pacman.&lt;/p>
&lt;p>Lo curioso es que esta recomendación no me sirve de mucho, porque siempre actualizo usando la terminal. Pero también leí que varios amigos habían resuelto el problema reanudando la actualización. Así que manos a la obra.&lt;/p>
&lt;h2 id="no-tan-difunto">No tan difunto.
&lt;/h2>&lt;p>A pesar de que mi equipo estaba atorado en algún punto del arranque no estaba muerto. Pude entrar a una terminal presionando las teclas &lt;strong>Ctrl + Alt + F3&lt;/strong>, luego me pidió mi nombre de usuario y contraseña. ¡Listo! estaba dentro del sistema. Así que todo era cosa de reiniciar la actualización con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syuu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="custom-mirrors">Custom Mirrors.
&lt;/h3>&lt;p>Luego tuve otro problema, al parecer los servidores de Manjaro estaban muy saturados. Ejecuté manualmente un par de veces el comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-mirrors -g
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sin mucho éxito. Iniciaba la actualización, pero en algún punto se perdía la conexión y me tiraba mi trabajo. Estoy acostumbrado a ese tipo de problemas por conexiones pobres. Así que apliqué mi consejo de hacer la descarga de los paquetes con &lt;a class="link" href="https://linuxmanr4.com/2016/03/14/pacman-aria2-paquetes-manjaro/" >Aria2&lt;/a>
 y luego me topé con otro consejo muy útil.&lt;/p>
&lt;p>Aplicando el comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-mirrors -g --interactive
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hace las pruebas a los servidores y al final te permite elegir solo los mejores.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/04/pacman-custom-mirrors.jpg"
alt="pacman-mirrors -g --interactive">&lt;figcaption>
&lt;p>pacman-mirrors -g &amp;ndash;interactive&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa forma pude seleccionar los mirrors con mejor respuesta que para mi sorpresa ¡No estaban en Estados Unidos! (¿Habrá un muro digital?).&lt;/p>
&lt;p>De esa forma, la descarga de paquetes se realiza en solo los 5 mejores &lt;em>mirrors&lt;/em> y no en toda la lista. ¡Genial!.&lt;/p>
&lt;p>Una vez terminada la actualización mi equipo arrancó como si no hubiera pasado nada.&lt;/p>
&lt;p>He leído algunos comentarios que dicen que este problema es una falta de cuidado de parte de los desarrolladores de Manjaro. Pero les recuerdo que esta es una distro basada en Arch y que es &lt;a class="link" href="https://es.wikipedia.org/wiki/Liberaci%C3%B3n_continua" target="_blank" rel="noopener"
>&lt;em>rolling release&lt;/em>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, por lo tanto, este tipo de problemas se pueden presentar.&lt;/p>
&lt;p>Esto no es Debian o Ubuntu. No, no señores, &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
aunque facilita mucho las cosas, no niega sus orígenes y al final de cuentas es para usuarios un poco más experimentados.&lt;/p>
&lt;p>Mientras tanto, mi computadora ya va para 4 años con la misma instalación de Manjaro y espero que cumpla muchos más en mi equipo.&lt;/p></description></item><item><title>Ajustando algunos valores del caché de disco en linux</title><link>https://linuxmanr4.com/2017/03/28/ajustando-cache-disco-linux/</link><pubDate>Tue, 28 Mar 2017 17:56:02 +0000</pubDate><guid>https://linuxmanr4.com/2017/03/28/ajustando-cache-disco-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/03/configuraci%C3%B3n-de-manjaro-y-gestor-de-tareas.jpg" alt="Featured image of post Ajustando algunos valores del caché de disco en linux" />&lt;p>No es la primera vez que juego con la memoria virtual de linux o &lt;a class="link" href="https://es.wikipedia.org/wiki/Espacio_de_intercambio" target="_blank" rel="noopener"
>swap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Conforme pasa el tiempo mi situación se ve afectada por diversos factores. Por ejemplo, en este año he dejado el entorno &lt;a class="link" href="https://www.linuxmint.com/" target="_blank" rel="noopener"
>Cinnamon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 por un entorno mucho más ligero, austero pero funcional y que es el entorno elegido por Manjaro como su escritorio principal el famoso &lt;a class="link" href="https://www.xfce.org/" target="_blank" rel="noopener"
>XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El cambio lo hice sin reinstalar el sistema operativo. Eso me incomoda un poco, porque tal parece que he dejado instalados muchos paquetes de Gnome/Cinnamon que están realizando alguna función (al menos eso espero). Me explico, instalar XFCE es sencillo, una instrucción y san se acabó, pero quitar Cinnamon no es tan fácil, porque tendría que desinstalar muchos paquetes y eso genera un conflicto con las dependencias. Así que ahora tengo un sistema XFCE con vestigios de Gnome y Cinnamon.&lt;/p>
&lt;p>Eso sí, el sistema es ligero, instalé &lt;a class="link" href="https://es.wikipedia.org/wiki/Compiz" target="_blank" rel="noopener"
>Compiz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para algunas animaciones chulas pero sin abusar. Algunos ajustes por aquí, por allá y después de unas semanas tengo un sistema muy de mi agrado.&lt;/p>
&lt;h2 id="la-ram-está-para-usarse">La RAM está para usarse.
&lt;/h2>&lt;p>El problema viene cuando utilizo muchos programas demandantes de memoria. Tengo 8GB en RAM que no es poco, pero cuando inicio una máquina con VirtualBox, abro una aplicación que utiliza JAVA y tengo que editar una imagen en alta resolución con GIMP el sistema empieza a parir chayotes.&lt;/p>
&lt;p>Los accesos al disco duro son tan intensos que deja inutilizable el sistema. Eso pasa porque el sistema intenta superar la carga con la memoria virtual.&lt;/p>
&lt;p>Anteriormente he intentado &lt;a class="link" href="https://linuxmanr4.com/2014/04/03/desactivar-la-particion-de-swap/" >Desactivar la partición swap&lt;/a>
 y funciona perfectamente hasta que alcanzo un punto crítico. El sistema no sabe qué hacer y todo se alenta. Supongo que con 16 o 32 GB en RAM el sistema estaría mucho más holgado. Así que he dejado de usar este consejo, siempre tengo activada una partición swap.&lt;/p>
&lt;p>Luego está moverle al valor &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >swappiness&lt;/a>
. De esa forma no evito el uso de la memoria virtual, solo cuando es estrictamente necesario y como último recurso. Lo que se puede observar es una &lt;a class="link" href="https://linuxmanr4.com/2012/04/06/maximizar-el-uso-de-la-memoria-ram/" >memoria RAM&lt;/a>
muy ocupada y la swap casi sin utilizar. Pero eso sí, cuando se necesita más memoria el acceso a la swap lo hace con una urgencia endemoniada.&lt;/p>
&lt;h2 id="ajustes-finos-al-caché-de-disco">Ajustes finos al caché de disco.
&lt;/h2>&lt;p>De vez en cuando me doy una vuelta a los foros oficiales de Manjaro para ver qué novedades hay (casi siempre las actualizaciones). Y buscando alguna optimización me encontré con &lt;em>How to reduce swapiness in manjaro linux&lt;/em>.&lt;/p>
&lt;p>Y me encontré con nuevos ajustes aparte del &lt;em>swapiness&lt;/em>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">vm.dirty_ratio = 10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vm.dirty_background_ratio = 5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vm.dirty_expire_centisecs = 2000
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vm.dirty_writeback_centisecs = 1000
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vm.swappiness = 20
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vm.vfs_cache_pressure = 70
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para activarlos solo hay que agregar estos valores en el archivo &lt;strong>/etc/sysctl.d/100-manjaro.conf&lt;/strong>  (si no existe se puede crear) y se activan después de reiniciar el equipo.&lt;/p>
&lt;p>Una explicación a estos valores los encontré en el artículo: &lt;a class="link" href="https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/" target="_blank" rel="noopener"
>Better Linux Disk Caching &amp;amp; Performance with vm.dirty_ratio &amp;amp; vm.dirty_background_ratio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que explica todo a profundidad y da algunos consejos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/03/configuraci%C3%B3n-de-manjaro-y-gestor-de-tareas.jpg"
alt="configuración de manjaro y gestor de tareas \| caché de disco">&lt;figcaption>
&lt;p>configuración de manjaro y gestor de tareas | caché de disco&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para empezar dejé el valor &lt;strong>wm.swapiness&lt;/strong> con un valor de 60  y lo iré ajustando hasta encontrar un valor que me agrade.&lt;/p>
&lt;p>Si aplican estos ajustes me gustaría leer sus comentarios. ¡Hasta la próxima!&lt;/p></description></item><item><title>Android casi alcanza a windows como el SO más utilizado en Internet</title><link>https://linuxmanr4.com/2017/03/09/android-casi-alcanza-a-windows/</link><pubDate>Thu, 09 Mar 2017 19:22:09 +0000</pubDate><guid>https://linuxmanr4.com/2017/03/09/android-casi-alcanza-a-windows/</guid><description>&lt;p>Hoy veo una nota titulada &lt;a class="link" href="http://gs.statcounter.com/press/android-challenges-windows-as-worlds-most-popular-operating-system" target="_blank" rel="noopener"
>Android challenges Windows as world’s most popular operating system in terms of internet usage&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que llamó poderosamente mi atención y quisiera comentarla con ustedes.&lt;/p>
&lt;p>En la gráfica se puede ver un descenso enorme en la popularidad de Windows seguido de un aumento considerable para Android (Apple tiene sus seguidores, pero no aumentan).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/03/sistemas-operativos-2012-2017-statcounter.png"
alt="sistemas operativos 2012-2017 statcounter" width="1340">&lt;figcaption>
&lt;p>sistemas operativos 2012-2017 statcounter&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recuerdo que la gráfica mide la popularidad de estos sistemas operativos cuando se utilizan para internet. O dicho en otras palabras, si se conecta a Internet ¿Qué sistema operativo utiliza?.&lt;/p>
&lt;p>No veo ninguna razón por la cual se detenga el crecimiento de Android y si veo muchos problemas con los productos que ofrece Microsoft ¿Se acuerdan de Nokia Lumia?¿Alguién dijo Surface?.&lt;/p>
&lt;h2 id="la-batalla-ahora-es-móvil">La batalla ahora es móvil.
&lt;/h2>&lt;p>Windows sigue ganando en el escritorio, pero tal parece que el campo de batalla se ha trasladado hacia los dispositivos móviles (tabletas, celulares, etc.). Un lugar en el que Android gana terreno cada día por la enorme multitud de propuestas que aparecen cada día y sus principales competidores no tienen contendientes que estén a la altura.&lt;/p>
&lt;p>La tendencia parece irreversible, dentro de poco habrá más dispositivos Android conectados a Internet que equipos con Windows.&lt;/p>
&lt;h2 id="el-mal-acecha">El mal acecha.
&lt;/h2>&lt;p>Se acuerdan que hace unos años decíamos que en Linux no había malware simplemente porque éramos muy pocos. Bueno Android se esta volviendo blanco de software malintencionado al por mayor.&lt;/p>
&lt;p>Todos los días veo programas en Google Play que me hacen dudar si es apropiado instalarlos o no. Peor aún, el software de reputación tiene políticas de seguridad cuestionable, abundantes permisos o según las últimas noticias de &lt;a class="link" href="https://x.com/wikileaks" target="_blank" rel="noopener"
>Wikileaks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 tienen más puertas traseras y vulnerabilidades que la Matrix.&lt;/p>
&lt;p>Un nuevo panorama se contempla. La seguridad informática tomará nuevos tintes. Las vulnerabilidades y actualizaciones serán el pan nuestro de cada día, pero ahora basadas en sistemas Linux ya no en Windows.&lt;/p>
&lt;p>Sume usted el &lt;a class="link" href="https://es.wikipedia.org/wiki/Internet_de_las_cosas" target="_blank" rel="noopener"
>Internet de las cosas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 un segmento también dominado por sistemas abiertos gracias a su plasticidad y que no requiere el pago de licencias.&lt;/p>
&lt;p>Vamos que hay tema para rato.&lt;/p>
&lt;h2 id="cambio-de-habilidades">Cambio de habilidades.
&lt;/h2>&lt;p>La tecnología dominante es la que impone sus reglas y eso implica un cambio de habilidades. Todo cambia, los lenguajes, las herramientas de desarrollo, software de colaboración, las ideologías, el hardware. Lo que era necesario en Windows ya no lo es en Linux.&lt;/p>
&lt;p>Incluso el mismo Microsoft ha coqueteado con Linux, supongo que se está dando cuenta de que la tendencia es por este lado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/03/microsoft-loves-linux.jpg"
alt="microsoft loves linux" width="1200">&lt;figcaption>
&lt;p>microsoft loves linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="porque-androidlinuxapple-y-no-windows">¿Porque Android/Linux/Apple y no Windows?
&lt;/h2>&lt;p>Creo que la respuesta es muy simple, porque funcionan y funcionan bien. Recuerdo que un amigo celebraba el hecho de que las nuevas &lt;a class="link" href="https://linuxmanr4.com/2015/09/01/problemas-con-la-tableta-aprende-mx-con-windows-8-1/" >tabletas de la SEP&lt;/a>
 utilizaran Windows 8. Está de más mencionar que fueron una pesadilla para alumnos, maestros y soporte técnico comparadas con sus contrapartes Linux/Android.&lt;/p>
&lt;p>Windows se ha quedado estancado en temas de compatibilidad, &lt;a class="link" href="https://es.wikipedia.org/wiki/Malware" target="_blank" rel="noopener"
>malware&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, rendimiento decreciente y problemas al por mayor. Súmele a lo anterior problemas de privacidad. El usuario que más me visita tiene Windows 10 ¿Coincidencia? no lo creo.&lt;/p>
&lt;p>¿Usted qué opina? Empieza a notar un movimiento hacia la utilización de Linux/Android.&lt;/p></description></item><item><title>Copiar un sitio web para leerlo fuera de línea</title><link>https://linuxmanr4.com/2017/01/31/copiar-un-sitio-web-para-leerlo-fuera-de-linea/</link><pubDate>Tue, 31 Jan 2017 21:42:03 +0000</pubDate><guid>https://linuxmanr4.com/2017/01/31/copiar-un-sitio-web-para-leerlo-fuera-de-linea/</guid><description>&lt;p>Se te puede ofrecer tener  una copia de un sitio web para poder revisarlo cuando no estás conectado a internet.  Puede ser un manual que quieres conservar en tu celular o tableta o un libro que quieres leer en el camión o durante un viaje.&lt;/p>
&lt;p>Anteriormente les había recomendado una instrucción con &lt;a class="link" href="https://linuxmanr4.com/2012/11/09/respaldando-un-sitio-web-con-wget/" >wget&lt;/a>
que funciona, pero a veces quieres automatizar un poco más la tarea.&lt;/p>
&lt;h2 id="httrack-al-rescate">HTTrack al rescate
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.httrack.com/" target="_blank" rel="noopener"
>HTTrack&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es una herramienta sencilla que tiene mucho tiempo en el mundo linuxero. Disponible para Windows, Linux, Apple y Android ¡No se puede pedir más!.&lt;/p>
&lt;p>Existe como una orden de la terminal pero muchos prefieren (incluyendome) usar su interfaz gráfica.&lt;/p>
&lt;p>La distribución de Linux que utilizo es  Manjaro y usé &lt;a class="link" href="https://octopiproject.wordpress.com/" target="_blank" rel="noopener"
>Octopi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para buscar los paquetes necesarios tanto en los repositorios normales como en &lt;a class="link" href="https://wiki.archlinux.org/index.php/Arch_User_Repository_%28Espa%C3%B1ol%29" target="_blank" rel="noopener"
>AUR&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/octopi-htttrack.png"
alt="Buscando los programas de httrack con Octopi." width="820">&lt;figcaption>
&lt;p>Buscando los programas de httrack con Octopi.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que si quieren usar la terminal para instala los paquetes entonces sería algo más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S httrack
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S httraqt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="el-asistente">El asistente
&lt;/h2>&lt;p>Usando la interfaz gráfica todo se simplifica, pero tengan cuidado, porque pueden terminar descargando más de lo que estaban buscando.&lt;/p>
&lt;p>Si siguen las opciones por default tendrán un buen resultados.&lt;/p>
&lt;p>El asistente básicamente sirve para responder algunas interrogantes:&lt;/p>
&lt;ul>
&lt;li>El Nombre del proyecto.&lt;/li>
&lt;li>La carpeta en dónde se van a almacenar los archivos.&lt;/li>
&lt;li>Los URL que se quieren descargar.&lt;/li>
&lt;/ul>
&lt;p>El resto es dejar que el programa haga su chamba.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/Esperar-a-que-httrack-haga-su-trabajo.png"
alt="httrack copiando un sitio" width="1186">&lt;figcaption>
&lt;p>httrack copiando un sitio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que sigue es explorar la carpeta donde se descargaron los archivos, abrir el archivo &lt;strong>index.html&lt;/strong> y listo !!!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/archivos-descargados.png"
alt="archivos descargados por httrack" width="636">&lt;figcaption>
&lt;p>archivos descargados por httrack&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El proyecto se queda guardando así que es posible pausar las descargas, programar que el equipo se apague cuando termine o simplemente volverlo a ejecutar para actualizar los archivos.&lt;/p>
&lt;p>Supongo que puede ser útil para llevar sitios a comunidades que no tienen una buena conexión a internet, en fin, usen esta consejo sabiamente :) .&lt;/p></description></item><item><title>Buscar archivos con catfish en thunar</title><link>https://linuxmanr4.com/2017/01/24/buscar-archivos-catfish-thunar/</link><pubDate>Tue, 24 Jan 2017 15:07:17 +0000</pubDate><guid>https://linuxmanr4.com/2017/01/24/buscar-archivos-catfish-thunar/</guid><description>&lt;p>Empecé este año con un cambio de escritorio, abandoné el Cinnamon que me había acompañado hasta hace poco para sustituirlo con &lt;a class="link" href="https://www.xfce.org/" target="_blank" rel="noopener"
>XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es el entorno de escritorio elegido por &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Linux.&lt;/p>
&lt;p>Hubo varios motivos, pero el principal es que muchos recursos eran gastados en efectos y decoraciones que no me aportaban nada. Prefiero mil veces una interfaz rápida a una bonita.&lt;/p>
&lt;p>Lo bueno es que XFCE no es tan primitivo, una vez enchulado es visualmente agradable con la ventaja de que es muy ligero.&lt;/p>
&lt;h2 id="cómo-buscar-archivos">¿Cómo buscar archivos?
&lt;/h2>&lt;p>Claro que con el cambio empiezas a extrañar algunas cosas. Por ejemplo,  &lt;a class="link" href="http://docs.xfce.org/xfce/thunar/start" target="_blank" rel="noopener"
>Thunar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 no tiene un buscador de archivos. Con Nemo (el administrador de archivos de Cinnamon) sólo tenía que presionar &lt;em>Ctrl + F&lt;/em> y listo, a buscar el archivo que necesitaba. Bueno Thunar no tiene nada de eso, al menos no lo tiene incluido por &lt;em>default&lt;/em>.&lt;/p>
&lt;h3 id="catfish">catfish
&lt;/h3>&lt;p>Claro que hay herramientas para buscar archivos,  una de ellas es &lt;a class="link" href="https://launchpad.net/catfish-search/&amp;#43;download" target="_blank" rel="noopener"
>catfish&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero es una herramienta independiente. El truco es integrar esta aplicación a Thunar y para eso tenemos &amp;hellip; &lt;em>(redoble de tambores)&lt;/em> &amp;hellip; las &lt;strong>Acciones Personalizadas&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/Editar-acci%C3%B3n-Acciones-personalizadas-Thunar.png"
alt="Editar acción Acciones personalizadas Thunar">&lt;figcaption>
&lt;p>Editar acción Acciones personalizadas Thunar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo hay que ir al menú &lt;strong>Editar&lt;/strong> - &lt;strong>Configurar acciones personalizadas&lt;/strong> y llenar los espacios como sigue:&lt;/p>
&lt;ul>
&lt;li>Nombre: Buscar&lt;/li>
&lt;li>Descripción: Para buscar archivos (opcional)&lt;/li>
&lt;li>Orden: &lt;code>catfish --path=%f&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Si todo se hizo correctamente verán una nueva opción en el menú &lt;strong>Archivo&lt;/strong> o si presionan el botón del mouse sobre un área vacía de Thunar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/buscar-menu-contextual.png"
alt="Listo como menú contextual">&lt;figcaption>
&lt;p>Listo como menú contextual&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Un consejo, tengan cuidado de lo que señalan al momento de llamar a &lt;strong>catfish&lt;/strong>, el directorio donde se inicia la búsqueda puede ser un poco complicado al principio, ya sabrán de que les hablo cuando lo pongan en práctica.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/catfish.png"
alt="catfish">&lt;figcaption>
&lt;p>catfish&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Catfish tiene una interfaz limpia, simple y lo mejor es que incluye filtros para tipos de archivo o por fecha. Algo que no tienen las búsquedas con Nemo.&lt;/p>
&lt;p>Las acciones personalizadas pueden servir  a otros propósitos. Denle un vistazo al wiki de Arch &lt;a class="link" href="https://wiki.archlinux.org/index.php/Thunar#Custom_actions" target="_blank" rel="noopener"
>Custom actions&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para explorar otras posibilidades.&lt;/p></description></item><item><title>El diálogo de abrir o guardar archivo tarda mucho tiempo aparecer</title><link>https://linuxmanr4.com/2017/01/09/dialogo-abrir-guardar-archivo-tarda-mucho-tiempo-en-aparecer/</link><pubDate>Mon, 09 Jan 2017 16:02:24 +0000</pubDate><guid>https://linuxmanr4.com/2017/01/09/dialogo-abrir-guardar-archivo-tarda-mucho-tiempo-en-aparecer/</guid><description>&lt;p>Nada mejor para empezar bien el año que un problema de esos que no tienen explicación.&lt;/p>
&lt;p>Les cuento,  de buenas a primeras tuve un problema bastante molesto. Al abrir un archivo o guardar uno nuevo el cuadro de diálogo que aparece y que te permite elegir o darle nombre al archivo tardaba más de 20 segundos enaparecer y era una verdadera molestia.&lt;/p>
&lt;h2 id="los-problemas-del-cambio">Los problemas del cambio.
&lt;/h2>&lt;p>El año pasado cambié mi escritorio principal de Cinnamon a &lt;a class="link" href="https://www.xfce.org/" target="_blank" rel="noopener"
>XFCE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 principalmente porque es un escritorio más ligero y cumple bastante bien con mis actividades.&lt;/p>
&lt;p>Le invertí unos días en quitar algunos elementos de Cinnamon e instalar otros de XFCE hasta que me quedó un entorno de trabajo a mi gusto. Y estaba trabajando bien, hasta que se presentó este problema.&lt;/p>
&lt;h2 id="la-actualización">La actualización
&lt;/h2>&lt;p>Luego creí que era un &lt;a class="link" href="https://linuxmanr4.com/2019/05/14/existe-en-el-sistema-de-archivos-problema-al-actualizar-manjaro/" >problema de actualización&lt;/a>
. A veces pasa que no todos los paquetes se acoplan perfectamente. Tengo más de 2 años con esta instalación de &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
  y es normal que no todo se ajuste a la primera.&lt;/p>
&lt;p>Creía que era un problema de actualización porque el problema se presentó justo después de actualizar.  Aunque después pude averiguar que no tenía nada que ver.&lt;/p>
&lt;p>Tuve un pequeño problema con la actualización pero fue porque el ciclo de vida del kernel 4.7 había llegado a su fin. Así que lo quité usando el &lt;strong>Manjaro Settings Manager&lt;/strong> para quedarme con la versión &lt;strong>4.4&lt;/strong> que es la versión recomendada.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2017/01/kernel-4-en-manjaro-settings-manager.png"
alt="kernel 4.4 en Manjaro settings manager">&lt;figcaption>
&lt;p>kernel 4.4 en Manjaro settings manager&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="intentando-reproducir-el-problema">Intentando reproducir el problema.
&lt;/h2>&lt;p>Como no encontraba información que me ayudara a solucionar este problema intenté reproducirlo para pedir ayuda en los &lt;a class="link" href="https://forum.manjaro.org/" target="_blank" rel="noopener"
>foros de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Verán, lo primero que hice fue abrir &lt;a class="link" href="https://www.gimp.org/" target="_blank" rel="noopener"
>GIMP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y seleccionar el menú &lt;em>Abrir&lt;/em> - &lt;em>Archivo&lt;/em> y esperar unos 20 segundos a que apareciera el cuadro de diálogo.  Una vez que se mostraba en pantalla trabajaba normalmente.&lt;/p>
&lt;p>Si volvía a abrir o guardar un archivo ya no había demora alguna. Pero si cerraba GIMP y hacía lo mismo, nuevamente me aparecía el retraso.&lt;/p>
&lt;p>Ejecuté GIMP desde la terminal y me apareció este mensaje:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gimp: gimp_wire_read(): error Error creating proxy: Error al llamar StartSereviceByName para org.gtk.vfs.UDisks2VolumeMonitor: Se alcanzó el tiempo de expiración (g-io-error-quark, 24)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="una-solución-y-una-sorpresa">Una solución y una sorpresa.
&lt;/h2>&lt;p>Bueno pues este mensaje me dio un poco más de luz sobre el problema.Aunque para ser justos no les había mencionado un pequeñísimo detalle.&lt;/p>
&lt;p>Uno de mis servidores falleció anteriormente y había estado muy ocupado mudando los servicios a un nuevo equipo. Una vez que relacioné mentalmente este evento y el mensaje de error fue como dí con la solución.&lt;/p>
&lt;p>Lo que pasó es que murió el servidor y en mi computadora había declarado que se &lt;a class="link" href="https://linuxmanr4.com/2013/01/17/montar-automaticamente-compartidos-de-red-windows-en-manjaro-linux/" >montaran automáticamente algunas carpetas&lt;/a>
de este servidor usando el archivo &lt;em>fstab&lt;/em>.&lt;/p>
&lt;p>¡Y ese era el problema!, que mi equipo intentaba encontrar esas carpetas del servidor sin éxito hasta que llegaba a el tiempo límite.&lt;/p>
&lt;p>Una vez que comenté las líneas que relacionaban al servidor en el archivo &lt;em>fstab&lt;/em> y reiniciar mi computadora todo regresó a la normalidad.&lt;/p>
&lt;p>Y que bueno porque ya estaba considerando reinstalar Manjaro, sospechando de un problema de convivencia entre XFCE, &lt;a class="link" href="https://es.wikipedia.org/wiki/Cinnamon" target="_blank" rel="noopener"
>Cinnamon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="https://www.gnome.org/" target="_blank" rel="noopener"
>Gnome&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al final no había problema alguno en mi computadora. Espero que este artículo le sirva a alguien, al menos para mirar en esta dirección y le ahorre algo de tiempo.&lt;/p></description></item><item><title>Obtener el Firmware de teléfonos LG mediante el IMEI</title><link>https://linuxmanr4.com/2016/11/16/firmware-lg-imei/</link><pubDate>Wed, 16 Nov 2016 18:16:18 +0000</pubDate><guid>https://linuxmanr4.com/2016/11/16/firmware-lg-imei/</guid><description>&lt;p>Hoy me llegó un teléfono &lt;a class="link" href="https://www.lg.com/mx/moviles/mc-announcement/" target="_blank" rel="noopener"
>&lt;strong>LG&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con serios problemas. Lo primero que intenté fue buscar y descargar el firmware adecuado para este modelo, pero fue toda una odisea.&lt;/p>
&lt;blockquote
class="instagram-media"
data-instgrm-captioned
data-instgrm-permalink="https://www.instagram.com/p/BM4CeJnh2SK"
data-instgrm-version="14"
style="
background: #fff;
border: 0;
border-radius: 3px;
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5), 0 1px 10px 0 rgba(0, 0, 0, 0.15);
margin: 1px;
max-width: 540px;
min-width: 326px;
padding: 0;
width: 99.375%;
width: -webkit-calc(100% - 2px);
width: calc(100% - 2px);
"
>
&lt;div style="padding: 16px">
&lt;a
href="https://www.instagram.com/p/BM4CeJnh2SK"
style="
background: #ffffff;
line-height: 0;
padding: 0 0;
text-align: center;
text-decoration: none;
width: 100%;
"
target="_blank"
>
&lt;div style="display: flex; flex-direction: row; align-items: center">
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
flex-grow: 0;
height: 40px;
margin-right: 14px;
width: 40px;
"
>&lt;/div>
&lt;div
style="
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
"
>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
margin-bottom: 6px;
width: 100px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
width: 60px;
"
>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div style="padding: 19% 0">&lt;/div>
&lt;div
style="display: block; height: 50px; margin: 0 auto 12px; width: 50px"
>
&lt;svg
width="50px"
height="50px"
viewBox="0 0 60 60"
version="1.1"
xmlns="https://www.w3.org/2000/svg"
xmlns:xlink="https://www.w3.org/1999/xlink"
>
&lt;g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
&lt;g transform="translate(-511.000000, -20.000000)" fill="#000000">
&lt;g>
&lt;path
d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"
>&lt;/path>
&lt;/g>
&lt;/g>
&lt;/g>
&lt;/svg>
&lt;/div>
&lt;div style="padding-top: 8px">
&lt;div
style="
color: #3897f0;
font-family: Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 550;
line-height: 18px;
"
>
View this post on Instagram
&lt;/div>
&lt;/div>
&lt;div style="padding: 12.5% 0">&lt;/div>
&lt;div
style="
display: flex;
flex-direction: row;
margin-bottom: 14px;
align-items: center;
"
>
&lt;div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
height: 12.5px;
width: 12.5px;
transform: translateX(0px) translateY(7px);
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
height: 12.5px;
transform: rotate(-45deg) translateX(3px) translateY(1px);
width: 12.5px;
flex-grow: 0;
margin-right: 14px;
margin-left: 2px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
height: 12.5px;
width: 12.5px;
transform: translateX(9px) translateY(-18px);
"
>&lt;/div>
&lt;/div>
&lt;div style="margin-left: 8px">
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
flex-grow: 0;
height: 20px;
width: 20px;
"
>&lt;/div>
&lt;div
style="
width: 0;
height: 0;
border-top: 2px solid transparent;
border-left: 6px solid #f4f4f4;
border-bottom: 2px solid transparent;
transform: translateX(16px) translateY(-4px) rotate(30deg);
"
>&lt;/div>
&lt;/div>
&lt;div style="margin-left: auto">
&lt;div
style="
width: 0px;
border-top: 8px solid #f4f4f4;
border-right: 8px solid transparent;
transform: translateY(16px);
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
flex-grow: 0;
height: 12px;
width: 16px;
transform: translateY(-4px);
"
>&lt;/div>
&lt;div
style="
width: 0;
height: 0;
border-top: 8px solid #f4f4f4;
border-left: 8px solid transparent;
transform: translateY(-4px) translateX(8px);
"
>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div
style="
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
margin-bottom: 24px;
"
>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
margin-bottom: 6px;
width: 224px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
width: 144px;
"
>&lt;/div>&lt;/div
>&lt;/a>
&lt;/div>
&lt;/blockquote>&lt;script async src="https://www.instagram.com/embed.js">&lt;/script>
&lt;p>Me encontré con &lt;a class="link" href="https://linuxmanr4.com/2019/01/25/pfblockerng-ayuda-a-bloquear-publicidad-sitios-maliciosos-y-otras-amenazas/" >sitios&lt;/a>
que me obligaban a desactivar los programas bloqueadores de publicidad, luego con sitios &amp;ldquo;raros&amp;rdquo; de dudosa reputación y el sitio oficial no ofrece ninguna descarga. En su lugar LG ofrece una herramienta oficial que no soluciona el problema.&lt;/p>
&lt;p>Afortunadamente para mi encontré un consejo que funciona perfectamente.&lt;/p>
&lt;h2 id="búsqueda-del-firmware-mediante-el-imei">Búsqueda del firmware mediante el IMEI
&lt;/h2>&lt;p>La solución es muy sencilla, basta con completar el siguiente &lt;a class="link" href="https://es.wikipedia.org/wiki/Localizador_de_recursos_uniforme" target="_blank" rel="noopener"
>URL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
agregando al final (después del signo de igual) el &lt;a class="link" href="https://linuxmanr4.com/2012/07/24/obtener-el-imei-para-reportar-celulares-robado-o-extraviados/" >IMEI&lt;/a>
del teléfono sin guiones:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si lo hicieron correctamente verán una página similar a esta con información del teléfono y un enlace que iniciará la descarga del firmware correcto para su teléfono, un archivo con extensión &lt;strong>kdz&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/11/LG-Firmware-KDZ.png"
alt="LG Firmware KDZ IMEI">&lt;figcaption>
&lt;p>LG Firmware KDZ IMEI&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo siguiente será subir el software al teléfono, pero esa amigos, esa es otra historia.&lt;/p>
&lt;p>Al menos lo más complicado y difícil que es la búsqueda del firmware ya está solucionado.&lt;/p>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Pues después de mucho batallar&amp;hellip; ¡ESTÁ VIVO!, pero no creo que tenga una larga vida :S Digo, por si estaban con el pendiente :) .&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/11/LG-D290G%5Flinuxmanr4.jpg"
alt="LG-D290G">&lt;figcaption>
&lt;p>LG-D290G&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me despido con un consejo, no le compren celulares a los niños si después se van a quejar de no los cuidan. ¡Hasta la próxima!.&lt;/p></description></item><item><title>Como arreglar el botón del mouse</title><link>https://linuxmanr4.com/2016/11/15/como-arreglar-el-boton-del-mouse/</link><pubDate>Tue, 15 Nov 2016 16:00:26 +0000</pubDate><guid>https://linuxmanr4.com/2016/11/15/como-arreglar-el-boton-del-mouse/</guid><description>&lt;p>Esta vez voy a ir un paso más allá del deber y les voy a enseñar cómo arreglar el botón del mouse, no importa si es el izquierdo o el derecho.&lt;/p>
&lt;p>Muchos de nosotros tenemos un mouse que ha dejado de funcionar correctamente. El botón hace clic, pero nada sucede en la computadora. Instintivamente, apretamos más fuerte el botón ¡Y a veces funciona!, pero lo más probable es que empeore con el tiempo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/11/switches-del-mouse.jpg"
alt="Como arreglar el botón del mouse.">&lt;figcaption>
&lt;p>Como arreglar el botón del mouse.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En un artículo anterior les enseñé &lt;a class="link" href="https://linuxmanr4.com/2016/02/08/sustituir-los-botones-mouse/" >como cambiar un botón defectuoso de un mouse&lt;/a>
. Antes de intentarlo creo que lo mejor será intentar limpiar el botón del mouse, y si aún no funciona entonces cambiarlo.&lt;/p>
&lt;h2 id="herramientas">Herramientas
&lt;/h2>&lt;p>Para este procedimiento van a necesitar.&lt;/p>
&lt;ul>
&lt;li>Un desarmador (para abrir el mouse).&lt;/li>
&lt;li>Un exacto o navaja fina.&lt;/li>
&lt;li>Alcohol isopropilico o líquido limpiador de cristales.&lt;/li>
&lt;li>Un palillo de dientes, clip, o lo que tengan a la mano.&lt;/li>
&lt;li>Una lupa o lente de aumento.&lt;/li>
&lt;li>Papel de cocina o alguno que no deje pelusa.&lt;/li>
&lt;li>Un pulso a toda prueba.&lt;/li>
&lt;li>Una buena cantidad de paciencia.&lt;/li>
&lt;/ul>
&lt;h2 id="procedimiento">Procedimiento
&lt;/h2>&lt;p>Lo primero es abrir el mouse con el desarmador, una vez abierto podrás ver los botones.&lt;/p>
&lt;p>Para abrir los botones es necesario liberar el seguro que tienen en el centro. Con un exacto podrás hacerlo, ten paciencia y mucho cuidado.&lt;/p>
&lt;p>Al abrir el botón puede salir disparada la pieza que está en la parte superior (en color rojo). Si la pierdes estás frito.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/11/microswitch.png"
alt="microswitch botón mouse \| Cómo arreglar el botón del mouse">&lt;figcaption>
&lt;p>microswitch botón mouse | Cómo arreglar el botón del mouse&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora viene lo realmente complicado, en el interior del botón podrás ver una plaquita de cobre, ten mucho cuidado al manipularla porque es muy flexible.&lt;/p>
&lt;blockquote
class="instagram-media"
data-instgrm-captioned
data-instgrm-permalink="https://www.instagram.com/p/BMpRIcuhANh"
data-instgrm-version="14"
style="
background: #fff;
border: 0;
border-radius: 3px;
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5), 0 1px 10px 0 rgba(0, 0, 0, 0.15);
margin: 1px;
max-width: 540px;
min-width: 326px;
padding: 0;
width: 99.375%;
width: -webkit-calc(100% - 2px);
width: calc(100% - 2px);
"
>
&lt;div style="padding: 16px">
&lt;a
href="https://www.instagram.com/p/BMpRIcuhANh"
style="
background: #ffffff;
line-height: 0;
padding: 0 0;
text-align: center;
text-decoration: none;
width: 100%;
"
target="_blank"
>
&lt;div style="display: flex; flex-direction: row; align-items: center">
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
flex-grow: 0;
height: 40px;
margin-right: 14px;
width: 40px;
"
>&lt;/div>
&lt;div
style="
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
"
>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
margin-bottom: 6px;
width: 100px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
width: 60px;
"
>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div style="padding: 19% 0">&lt;/div>
&lt;div
style="display: block; height: 50px; margin: 0 auto 12px; width: 50px"
>
&lt;svg
width="50px"
height="50px"
viewBox="0 0 60 60"
version="1.1"
xmlns="https://www.w3.org/2000/svg"
xmlns:xlink="https://www.w3.org/1999/xlink"
>
&lt;g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
&lt;g transform="translate(-511.000000, -20.000000)" fill="#000000">
&lt;g>
&lt;path
d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"
>&lt;/path>
&lt;/g>
&lt;/g>
&lt;/g>
&lt;/svg>
&lt;/div>
&lt;div style="padding-top: 8px">
&lt;div
style="
color: #3897f0;
font-family: Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 550;
line-height: 18px;
"
>
View this post on Instagram
&lt;/div>
&lt;/div>
&lt;div style="padding: 12.5% 0">&lt;/div>
&lt;div
style="
display: flex;
flex-direction: row;
margin-bottom: 14px;
align-items: center;
"
>
&lt;div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
height: 12.5px;
width: 12.5px;
transform: translateX(0px) translateY(7px);
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
height: 12.5px;
transform: rotate(-45deg) translateX(3px) translateY(1px);
width: 12.5px;
flex-grow: 0;
margin-right: 14px;
margin-left: 2px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
height: 12.5px;
width: 12.5px;
transform: translateX(9px) translateY(-18px);
"
>&lt;/div>
&lt;/div>
&lt;div style="margin-left: 8px">
&lt;div
style="
background-color: #f4f4f4;
border-radius: 50%;
flex-grow: 0;
height: 20px;
width: 20px;
"
>&lt;/div>
&lt;div
style="
width: 0;
height: 0;
border-top: 2px solid transparent;
border-left: 6px solid #f4f4f4;
border-bottom: 2px solid transparent;
transform: translateX(16px) translateY(-4px) rotate(30deg);
"
>&lt;/div>
&lt;/div>
&lt;div style="margin-left: auto">
&lt;div
style="
width: 0px;
border-top: 8px solid #f4f4f4;
border-right: 8px solid transparent;
transform: translateY(16px);
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
flex-grow: 0;
height: 12px;
width: 16px;
transform: translateY(-4px);
"
>&lt;/div>
&lt;div
style="
width: 0;
height: 0;
border-top: 8px solid #f4f4f4;
border-left: 8px solid transparent;
transform: translateY(-4px) translateX(8px);
"
>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div
style="
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
margin-bottom: 24px;
"
>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
margin-bottom: 6px;
width: 224px;
"
>&lt;/div>
&lt;div
style="
background-color: #f4f4f4;
border-radius: 4px;
flex-grow: 0;
height: 14px;
width: 144px;
"
>&lt;/div>&lt;/div
>&lt;/a>
&lt;/div>
&lt;/blockquote>&lt;script async src="https://www.instagram.com/embed.js">&lt;/script>
&lt;p>Con el palillo (o el clip) vas a tener que envolverlo en un poco de papel de cocina y humedecerlo con el alcohol isopropílico.&lt;/p>
&lt;p>Otra opción es utilizar una delgada tira de papel de lija, pero tiene que ser de un grano muy fino.&lt;/p>
&lt;p>Intenta simular que estás apretando el botón rojo, al presionar levemente la plaquita verás en la laminilla un par de contactos, esos son los que tienes que limpiar.&lt;/p>
&lt;p>Hazlo con mucho cuidado, en mi caso noté que los contactos estaban de un color oscuro, al terminar de limpiarlos regresó ese bonito color metálico.&lt;/p>
&lt;p>Espera a que se evapore el alcohol y regresa la tapa del botón a su lugar. No se te olvide colocar nuevamente el plástico que corresponde al pequeño botón rojo.&lt;/p>
&lt;p>Llegó el momento de la verdad, arma nuevamente el mouse y &lt;a class="link" href="http://unixpapa.com/js/testmouse.html" target="_blank" rel="noopener"
>revisa si hace clic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Si todo funciona como debiera, notarás ese sonido de &amp;ldquo;clic&amp;rdquo; característico y el funcionamiento en tu equipo.&lt;/p>
&lt;p>Un consejo, nunca quites la plaquita de cobre del mecanismo, volverla a poner como se debe, pondrá a prueba tu paciencia y tu habilidad. Si tienes pulso de maraquero ¡Ni lo intentes!&lt;/p></description></item><item><title>Ajustando las opciones de máscara rápida en GIMP</title><link>https://linuxmanr4.com/2016/10/28/opciones-mascara-rapida-gimp/</link><pubDate>Fri, 28 Oct 2016 17:27:33 +0000</pubDate><guid>https://linuxmanr4.com/2016/10/28/opciones-mascara-rapida-gimp/</guid><description>&lt;p>La máscara rápida es mi método de selección favorito en GIMP. Lo utilizo mucho para quitar el fondo de los objetos que les tomo fotos.&lt;/p>
&lt;p>Con el tiempo he desarrollado una técnica que me ha dado muy buenos resultados.&lt;/p>
&lt;p>Siempre he preferido utilizar los atajos de teclado para activar la mayor parte de las opciones. Es una forma de trabajo que me ha funcionado. Atajos de teclado con la mano izquierda, selecciones y pinceladas con el mouse en la mano derecha.&lt;/p>
&lt;p>Por eso desde hace mucho tiempo utilizo el atajo &lt;strong>Mayús+Q&lt;/strong>  para activar la &lt;a class="link" href="https://docs.gimp.org/es/gimp-image-window-qmask-button.html" target="_blank" rel="noopener"
>máscara rápida&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al activar la máscara rápida inmediatamente cubre la imagen con una capa en un tono rojizo y ese era precisamente mi problema.&lt;/p>
&lt;p>Al seguir el contorno de los objetos el color rojizo evitaba que viera correctamente el borde porque son de un color muy claro.&lt;/p>
&lt;h2 id="dónde-están-las-opciones-para-la-máscara-rápida">¿Dónde están las opciones para la máscara rápida?
&lt;/h2>&lt;p>Le invertí algo de tiempo y jamás caí en cuenta que un pequeño botón en la parte inferior izquierda del área de trabajo era el botón de la herramienta.&lt;/p>
&lt;p>Si presionaba el botón derecho del ratón sobre dicho botón, aparecerían como por arte de magia las opciones de la herramienta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/10/Configurar-m%C3%A1scara-r%C3%A1pida-en-GIMP_linuxmanr4.jpg"
alt="opciones máscara rápida GIMP">&lt;figcaption>
&lt;p>opciones máscara rápida GIMP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y eso era todo. En lugar de ese molesto tono rojizo elegí un tono oscuro que contrasta perfectamente con el objeto.&lt;/p>
&lt;p>Ahora todo era diferente, no tenía que forzar demasiado la vista para delinear la imagen y hacer una selección más precisa.&lt;/p>
&lt;p>Aunque la &lt;a class="link" href="https://docs.gimp.org/es/index.html" target="_blank" rel="noopener"
>documentación de GIMP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 es excelente y está en un claro español tarde un tiempo en descubrir dónde se podía ajustar las opciones de la máscara rápida.&lt;/p>
&lt;p>Al momento de escribir este artículo no he encontrado una forma de hacer estos ajustes permanente, pero en cuanto lo sepa se los haré saber.&lt;/p>
&lt;p>Espero que este consejo les sea de utilidad y les ahorre algo de tiempo. ¡Felices ediciones!.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Gracias al amable comentario de Ugo Yak que nos dice donde están las opciones de la máscara rápida.&lt;/p>
&lt;p>Hay que ir al menú &lt;strong>Editar&lt;/strong> - &lt;strong>Preferencias&lt;/strong> - &lt;strong>Imagen predeterminada&lt;/strong> y en la parte inferior verán los ajustes a la máscara rápida.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/10/Opciones-de-m%C3%A1scara-r%C3%A1pida-en-GIMP_linuxmanr4.png"
alt="Opciones de máscara rápida en GIMP">&lt;figcaption>
&lt;p>Opciones de máscara rápida en GIMP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esta forma el cambio se hace permanente cada vez que inicies GIMP ¡Gracias Ugo! :)&lt;/p></description></item><item><title>Dial pattern para el 911 en conmutadores telefónicos Elastix</title><link>https://linuxmanr4.com/2016/10/03/dial-pattern-911-elastix/</link><pubDate>Mon, 03 Oct 2016 20:49:24 +0000</pubDate><guid>https://linuxmanr4.com/2016/10/03/dial-pattern-911-elastix/</guid><description>&lt;p>Hoy 3 de octubre inicia operaciones el teléfono &lt;strong>911&lt;/strong> en 16 estados de la República Mexicana.&lt;/p>
&lt;p>El número &lt;strong>911&lt;/strong> es para atender todo tipo de &lt;strong>emergencias&lt;/strong> como solicitar el apoyo de fuerzas policiales, bomberos, protección civil o la &lt;a class="link" href="http://cruzrojamexicana.org.mx/" target="_blank" rel="noopener"
>Cruz Roja&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/10/911-mexico.png"
alt="911 México \| dial pattern 911 elastix">&lt;figcaption>
&lt;p>911 México | dial pattern 911 elastix&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El número entra en operación en Baja California, Coahuila, Colima, Chiapas, Chihuahua, Durango, Guanajuato, Morelos, Nayarit, Nuevo León, Oaxaca, Quintana Roo, Sonora, Tlaxcala, Puebla y Zacatecas.&lt;/p>
&lt;p>El resto del país será hasta el 9 de enero del año entrante.&lt;/p>
&lt;h2 id="establecer-el-dial-pattern">Establecer el Dial Pattern
&lt;/h2>&lt;p>Si tenemos un conmutador telefónico con Elastix es importante revisar si existe un &lt;em>Dial Pattern&lt;/em> que permita hacer llamadas a este servicio.&lt;/p>
&lt;p>La configuración de un conmutador Elastix puede variar mucho de una instalación a otra, así que estas indicaciones son una guía, pero pueden o no funcionar.&lt;/p>
&lt;p>Por ejemplo, en mi caso, para poder hacer una llamada al exterior se tiene que marcar el número 9 al principio.&lt;/p>
&lt;p>Entonces hay que entrar a la página de configuración, en el tab de &lt;strong>PBX&lt;/strong> - &lt;strong>Rutas Salientes&lt;/strong> , revisar las rutas que tengamos configuradas (yo solo tengo una). Y agregar el &lt;strong>Dial pattern&lt;/strong> siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">9|911
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/10/dial-pattern-911.png"
alt="dial pattern 911 elastix">&lt;figcaption>
&lt;p>dial pattern 911 elastix&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa forma me da acceso al exterior y permite la marcación a tal número.&lt;/p>
&lt;p>Probablemente, hay personas que tienen un Dial Pattern mucho más relajado como:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">9|.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Que prácticamente funciona para cualquier combinación de números al exterior también funciona.&lt;/p>
&lt;p>Si quieren saber más sobre Dial Patterns pueden leer &lt;a class="link" href="http://www.voip-info.org/wiki/view/Asterisk&amp;#43;Dialplan&amp;#43;Patterns" target="_blank" rel="noopener"
>Asterisk Dialplan Patterns&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En general, no está demás revisar si la marcación al  &lt;strong>911&lt;/strong> funciona en cualquier tipo de conmutador telefónico, no vaya a ser el caso que ocurra una emergencia y no se puedan comunicar.&lt;/p></description></item><item><title>4 puntos clave para un buen afeitado</title><link>https://linuxmanr4.com/2016/09/13/4-puntos-clave-para-un-buen-afeitado-clasico/</link><pubDate>Tue, 13 Sep 2016 20:32:07 +0000</pubDate><guid>https://linuxmanr4.com/2016/09/13/4-puntos-clave-para-un-buen-afeitado-clasico/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/4-puntos-claves-para-un-buen-afeitado.jpg" alt="Featured image of post 4 puntos clave para un buen afeitado" />&lt;p>Es frecuente que los recién llegados al afeitado clásico tengan muchas dudas y es perfectamente normal. Muchos aprendieron a afeitarse con las máquinas desechables y están acostumbrados a no tener el cuidado y el respeto necesario al momento de pasar un objeto extremadamente filoso en su cara.&lt;/p>
&lt;p>Hacer el cambio al afeitado clásico puede suponer un reto importante para los neófitos. Algunos creen que están haciendo mal algo, las cortadas y la irritación es frecuente o creen que sus artilugios de afeitado están defectuosos, pero un buen afeitado depende de varios factores y evaluarlos de forma aislada es un error.&lt;/p>
&lt;p>Por eso les voy a comentar los que a mi consideración son los 4 puntos clave para un buen &lt;a class="link" href="https://linuxmanr4.com/2013/03/06/afeitado-tradicional-clasico-navaja-barbero/" >afeitado clásico&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/Un%5Fbuen%5Fafeitado%5FclsicoLinuxmanR4%5Fcom%5Flinuxmanr4.png"
alt="Mapa mental: Un buen afeitado clásico">&lt;figcaption>
&lt;p>Mapa mental: Un buen afeitado clásico&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="rostro">Rostro
&lt;/h2>&lt;p>Los que estamos en el rollo del afeitado tradicional tenemos un dicho: &lt;strong>&amp;ldquo;Cada cara es un mundo&amp;rdquo;&lt;/strong> y lo que a unos les gusta unos es probable que a otros no.&lt;/p>
&lt;p>Por ejemplo hay a quien les gusta las hojas de afeitar &lt;a class="link" href="https://treetcorp.com/blades-razors/" target="_blank" rel="noopener"
>Treet&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero yo no las tolero, quizás me tocó una mala navaja pero no las puedo ni voltear a ver, siento que me estoy afeitando con un vidrio.&lt;/p>
&lt;p>Algunos dicen pestes de las hojas de afeitar &lt;a class="link" href="https://dorcousa.com/" target="_blank" rel="noopener"
>Dorco&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero a mi me gustan, son económicas, las encuentro fácilmente y me gusta su desempeño, para gustos hay colores.&lt;/p>
&lt;p>Dicho esto, &lt;strong>la cara es la que manda&lt;/strong>, la apreciación general de un buen afeitado dependerá únicamente de tus gustos y experiencias personales.&lt;/p>
&lt;p>Encontrarás unas cosas más agradables que otras y así poco a poco se irá formando un criterio de que es lo que te gusta y que es lo que no.&lt;/p>
&lt;p>También hay que considerar el aspecto dermatológico. Hay personas que se afeitan tres veces al día (bueno a lo mejor exagero) pero hay pieles que no aguantan tanto castigo, con ello vienen las irritaciones, áreas enrojecidas y otras molestias, lo mejor es tomar un descanso.&lt;/p>
&lt;p>Personas que tienen problemas en la piel como &lt;a class="link" href="https://medlineplus.gov/spanish/ency/article/000823.htm" target="_blank" rel="noopener"
>foliculitis&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 o &lt;a class="link" href="https://medlineplus.gov/spanish/acne.html" target="_blank" rel="noopener"
>acné&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 deben de tener un especial cuidado. Nadie quiere empeorar un problema. En estos casos la prudencia es lo mejor y no está de más buscar la ayuda de un especialista.&lt;/p>
&lt;h2 id="herramientas">Herramientas
&lt;/h2>&lt;p>Las herramientas son importantes, un kit básico de afeitado tradicional se puede formar con una brocha, un jabón de afeitar y el elemento cortante de tu preferencia, que puede ser una máquina de afeitar, una shavette o una navaja barbera.&lt;/p>
&lt;p>Considero importante dominar primero lo más básico para luego ir agregando otros elementos como los aceites, lociones, accesorios, cremas y un largo etcétera.&lt;/p>
&lt;p>Conseguir unas  buenas herramientas es fundamental, pero considero importante recalcar que &lt;strong>una buena herramienta no es necesariamente costosa&lt;/strong>.&lt;/p>
&lt;p>Por ejemplo, tengo dos máquinas de afeitar, una &lt;a class="link" href="https://linuxmanr4.com/2013/07/26/navajas-jabones-lociones-accesorios-afeitado/" >Lord&lt;/a>
de 25 pesos y una &lt;a class="link" href="https://linuxmanr4.com/2014/09/29/limpiar-y-restaurar-una-maquina-de-afeitar/" >Gillette Super Speed&lt;/a>
que restauré, a mi gusto prefiero la Lord, tiene un nivel de exposición de hoja que me resulta muy agradable. He hecho varios intentos con la &lt;a class="link" href="https://linuxmanr4.com/2015/07/22/gillette-super-speed-o-gillette-relampago/" >Gillette&lt;/a>
, tratando de encontrar el ajuste perfecto, pero aún no le encuentro el modillo.&lt;/p>
&lt;p>Tengo dos shavettes, una que parece una lámina doblada en triángulo y una &lt;a class="link" href="https://linuxmanr4.com/2015/09/04/estrenando-jabon-brocha-shavette-y-afters/" >Parker&lt;/a>
. En este caso, no hay vuelta de hoja, definitivamente me gusta mucho más la Parker, tengo un mejor control de la hoja y la experiencia me es mucho más placentera.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/shavette-parker%5Flinuxmanr4.jpg"
alt="Shavette Parker">&lt;figcaption>
&lt;p>Shavette Parker&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo importante es que cada elemento haga bien su función, las hojas de afeitar deben de cortar suavemente y sin jalones, el jabón debe de proteger la piel y facilitar el deslizamiento de la navaja, si un elemento no hace bien su trabajo, no importa el precio que tenga, no sirve.&lt;/p>
&lt;p>En este mundo del afeitado clásico se van a encontrar con una enorme variedad de opciones con un amplio rango de precios. Por eso insisto que al final el que dicta el rumbo a seguir es tu &lt;strong>propia y única experiencia&lt;/strong>.&lt;/p>
&lt;p>No estoy cerrado a probar nuevos productos, tanto así que le encontré un gustillo regiomontano al &lt;a class="link" href="https://linuxmanr4.com/2016/05/26/jabon-de-calabaza-jabon-afeitar/" >jabón de calabaza&lt;/a>
 muy a pesar de la comunidad que casi casi me linchan por herejía :P,  siendo sincero, ya lo destiné a su función original que es la de limpiar mis artículos de piel porque al final del día me agrada complementar mi afeitado con un buen aroma.&lt;/p>
&lt;h2 id="tiempo">Tiempo
&lt;/h2>&lt;p>Un buen afeitado requiere tiempo, el necesario para completar todo el ritual, un baño, quizás un aceite pre-afeitado, preparar todas las herramientas, asentar la navaja, hacer la espuma con calma buscando el punto, afeitarse como Dios manda, enjuagarse, mi esposa dice en tono de broma que es cuando me &amp;ldquo;pongo los tubos&amp;rdquo;.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/Las-mejorescosas-de-la-vidatoman-su-tiempoun-buen-afeitadotambi%C3%A9n.jpg">
&lt;/figure>
&lt;p>Bueno no me refería a esos tubos. Pero la idea es que un buen afeitado se disfruta y es lógico querer alargar la experiencia el mayor tiempo posible.&lt;/p>
&lt;p>Un afeitado hecho a las carreras no sirve, no se goza y se hace de mal modo. En más de una ocasión me he dado un arañazo por las prisas.&lt;/p>
&lt;h2 id="técnica">Técnica
&lt;/h2>&lt;p>Si vienes de usar desechables te voy a decir que vas a tener que aprender a afeitarte de nuevo. Lamentablemente en las desechables se adquieren malos hábitos como pasar repetida y descuidadamente la máquina de afeitar o aplicar demasiada presión en el rostro, errores que al final te pueden pasar la factura.&lt;/p>
&lt;p>Quiero aclarar que esto es afeitado, &lt;strong>NO depilado&lt;/strong>, con esto quiero decir que no hay que exagerar, no se trata de arrancar el vello facial con todo y piel.&lt;/p>
&lt;p>Dicen que la práctica hace al maestro y poco a poco con repetición se adquiere la destreza necesaria para un buen afeitado. Usar un rastrillo es relativamente sencillo, es encontrar el ángulo de corte y deslizar la navaja.&lt;/p>
&lt;p>Las shavettes y las barberas son más difíciles, lograr la destreza necesaria para usar estas herramientas lleva su tiempo, pero no es forzoso que empieces desde cero, hay excelentes tutoriales en youtube como los del gurú del afeitado &lt;a class="link" href="https://www.youtube.com/user/mantic59" target="_blank" rel="noopener"
>Mantic59&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 o el gran &lt;a class="link" href="https://youtu.be/V5T1EcHU6bg" target="_blank" rel="noopener"
>Maestro Livi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que te pueden servir de guía.&lt;/p>
&lt;p>A veces la técnica que se utiliza en un producto, puede o no aplicarse en otro.&lt;/p>
&lt;p>Por ejemplo, en el caso de los jabones, en unos obtienes una espuma excelente casi sin batallar y en otros te puedes pasar las horas sin obtener el merengue que buscas.&lt;/p>
&lt;p>Una última recomendación, si tienes una mala experiencia con el afeitado clásico, considera todo lo expuesto en este artículo, verás que con un poco de perseverancia lograrás convertir esa tarea rutinaria en el mejor momento del día.&lt;/p></description></item><item><title>Agregar texto a una imagen con ImageMagick</title><link>https://linuxmanr4.com/2016/09/05/agregar-texto-imagen-imagemagick/</link><pubDate>Mon, 05 Sep 2016 14:18:09 +0000</pubDate><guid>https://linuxmanr4.com/2016/09/05/agregar-texto-imagen-imagemagick/</guid><description>&lt;p>Hice un pequeño script en Bash para agregar texto a una imagen con ImageMagick.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/agregartexto-script-en-bash%5Flinuxmanr4.jpg"
alt="agregartexto script en bash \| Agregar texto a una imagen con ImageMagick">&lt;figcaption>
&lt;p>agregartexto script en bash | Agregar texto a una imagen con ImageMagick&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Bueno en realidad hace un poco más que eso. En el momento en el que se ejecuta, le agrega un texto en la parte inferior derecha de la imagen, si es muy grande la redimensiona y al final la optimiza para que sea de un tamaño adecuado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># agregartexto.sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Agrega un texto en la parte inferior derecha a todos los archivos jpg del&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># directorio en el que se ejecuta.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># La imagen que voy a utilizar.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">IMAGEN&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El texto que le quiero añadir.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">TEXTO&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$2&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Para obtener el nombre y la extensión del archivo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">NOMBRE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IMAGEN&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> cut -d&lt;span class="s1">&amp;#39;.&amp;#39;&lt;/span> -f1&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">EXTENSION&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IMAGEN&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> cut -d&lt;span class="s1">&amp;#39;.&amp;#39;&lt;/span> -f2&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">DESTINO&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">NOMBRE&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>_linuxmanr4.&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">EXTENSION&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Una copia del archivo para trabajar.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IMAGEN&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DESTINO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Se redimensiona la imagen si es muy grande.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mogrify -resize &lt;span class="s2">&amp;#34;1200&amp;gt;&amp;#34;&lt;/span> -quality &lt;span class="m">90&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DESTINO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Agregamos el texto a la imagen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">convert &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DESTINO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -gravity SouthEast -font TeXGyreAdventor-Regular -pointsize &lt;span class="m">25&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -fill &lt;span class="s1">&amp;#39;#00000080&amp;#39;&lt;/span> -draw &lt;span class="s2">&amp;#34;text 13,1 \&amp;#34;&lt;/span>&lt;span class="nv">$TEXTO&lt;/span>&lt;span class="s2">\&amp;#34;&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -fill white -draw &lt;span class="s2">&amp;#34;text 14,2 \&amp;#34;&lt;/span>&lt;span class="nv">$TEXTO&lt;/span>&lt;span class="s2">\&amp;#34;&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DESTINO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">leanify &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DESTINO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Listo !!!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="buscar-el-nombre-de-las-fuentes">Buscar el nombre de las fuentes
&lt;/h2>&lt;p>Sin embargo, mientras encontraba la instrucción &lt;strong>convert&lt;/strong> que hiciera lo que yo quería con la imagen, me di cuenta de que quería usar un tipo de letra en específico. Me gustó una fuente que se llama &lt;a class="link" href="https://www.fontsquirrel.com/fonts/tex-gyre-adventor" target="_blank" rel="noopener"
>Tex Gyre Adventor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y que no encontraba como nombrarla adecuadamente en el script. Intenté poniendo el nombre con comillas, sin espacios, pero nada, en cada ejecución me daba un error.&lt;/p>
&lt;p>Para saber como nombrar las fuentes instaladas en su equipo puede teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">identify -list font
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aunque claro, pasará la lista completa en la terminal muy rápidamente, así que se puede generar una lista redireccionando la salida a un archivo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">identify -list font &amp;gt; fuentes.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Así fue como encontré que el nombre de la fuente que quería utilizar era &lt;strong>TeXGyreAdventor-Regular&lt;/strong>.&lt;/p>
&lt;h2 id="en-realidad-son-dos-textos">En realidad son dos textos.
&lt;/h2>&lt;p>Otro problema que tuve fue que dependiendo de si la imagen era oscura o clara era probable que el texto fuera o no claramente visible. Por eso busqué la forma de agregar una sombra que me ayudara con este detalle.&lt;/p>
&lt;p>Encontré en &lt;a class="link" href="https://usage.imagemagick.org/fonts/" target="_blank" rel="noopener"
>ImageMagick v6 Examples Compound Font Effects&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 esta instrucción que me gustó&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">convert -size 320x100 xc:lightblue -font Candice -pointsize &lt;span class="m">72&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -fill black -draw &lt;span class="s2">&amp;#34;text 28,68 &amp;#39;Anthony&amp;#39;&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -fill white -draw &lt;span class="s2">&amp;#34;text 25,65 &amp;#39;Anthony&amp;#39;&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> font_shadow.jpg
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como pueden ver, en realidad se agregan dos veces el mismo texto con diferentes colores y un ligero desplazamiento para crear ese efecto de sombra.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/font%5Fshadow.jpg"
alt="Efecto Hard Shadow">&lt;figcaption>
&lt;p>Efecto Hard Shadow&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sin embargo,  en el script hice algunos cambios para suavizar la sombra, en lugar de elegir un color sólido en el sombreado preferí hacerlo un poco transparente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/font%5Fshadow2.jpg"
alt="Sombreado transparente">&lt;figcaption>
&lt;p>Sombreado transparente&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="la-optimización-de-la-imagen">La optimización de la imagen
&lt;/h2>&lt;p>Usé &lt;a class="link" href="https://github.com/JayXon/Leanify" target="_blank" rel="noopener"
>Leanify&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para optimizar la imagen ya que es un programa que utiliza una técnica &lt;em>lossless&lt;/em> (sin pérdidas) y se puede aplicar sin problemas tanto a imágenes JPG como PNG.&lt;/p>
&lt;p>Leanify no solo sirve para optimizar imágenes, de hecho soporta una gran variedad de &lt;a class="link" href="https://github.com/JayXon/Leanify#file-formats" target="_blank" rel="noopener"
>formatos de archivos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="ejecutando-el-script">Ejecutando el script
&lt;/h2>&lt;p>Al principio, hice un script que &lt;a class="link" href="https://linuxmanr4.com/2017/01/24/buscar-archivos-catfish-thunar/" >buscaba todos los archivos JPG&lt;/a>
del directorio, pero durante el proceso de depuración me di cuenta de que era poco práctico.&lt;/p>
&lt;p>Por eso decidí pasar desde la terminal los dos parámetros que son, el nombre de la imagen y el texto que se quiere agregar quedando más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">./agregartexto.sh &amp;#34;archivo_imagen.jpg&amp;#34; &amp;#34;¡Hola mundo!&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/archivo%5Fimagen%5Flinuxmanr4.png"
alt="¡Hola mundo!">&lt;figcaption>
&lt;p>¡Hola mundo!&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Cuando hago este tipo de &lt;a class="link" href="https://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/" >script en Bash&lt;/a>
, me gusta copiarlos a la carpeta &lt;em>/usr/bin&lt;/em> para que los pueda llamar desde cualquier carpeta de mi equipo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/09/cielo-azul-cielo-nublado%5Flinuxmanr4.jpg"
alt="cielo azul cielo nublado \| Agregar texto a una imagen con ImageMagick">&lt;figcaption>
&lt;p>cielo azul cielo nublado | Agregar texto a una imagen con ImageMagick&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¿Qué les parece? se aceptan sugerencias, comentarios, críticas, cervezas o un café.&lt;/p>
&lt;h2 id="referencias">Referencias
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.imagemagick.org/script/index.php" target="_blank" rel="noopener"
>ImageMagick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://usage.imagemagick.org/fonts/#hard_shadow" target="_blank" rel="noopener"
>ImageMagick v6 Examples, Compound Font Effects&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://ubuntulife.wordpress.com/2010/11/06/anadiendo-un-titulo-a-una-imagen-con-imagemagick/" target="_blank" rel="noopener"
>Añadiendo un titulo a una imágen con Imagemagick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Controlar el ancho de banda por dirección IP en Linux</title><link>https://linuxmanr4.com/2016/08/30/controlar-el-ancho-de-banda-ip-linux/</link><pubDate>Tue, 30 Aug 2016 22:26:12 +0000</pubDate><guid>https://linuxmanr4.com/2016/08/30/controlar-el-ancho-de-banda-ip-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/controlar-el-ancho-de-banda-por-direcci%C3%B3n-IP-en-linux.png" alt="Featured image of post Controlar el ancho de banda por dirección IP en Linux" />&lt;p>Se me planteó el de problema de intentar controlar el ancho de banda de cada uno de mis clientes de la red. De preferencia por dirección IP y me llevó algo de tiempo encontrar una solución.&lt;/p>
&lt;p>El propósito es evitar que un cliente acapare de todo el ancho de banda disponible y anule o limite a los demás.&lt;/p>
&lt;p>A lo mejor puede sonar algo trivial, considerando que actualmente existen proveedores de internet que pueden llegar a ofrecer 100 Mbps de descarga o cantidades así, pero en donde estoy solo disponemos de 3 Mbps que tengo que hacer rendir.&lt;/p>
&lt;p>Lamentablemente por nuestra ubicación no tenemos otras opciones y si las hay son inestables o costosas, así que no queda más que leer para ver que se puede hacer.&lt;/p>
&lt;p>&lt;strong>IPCop&lt;/strong> como tal no ofrece ninguna opción para controlar el ancho de banda, de hecho he considerado varias veces en cambiarme a &lt;a class="link" href="https://www.pfsense.org/" title="pFsense"
target="_blank" rel="noopener"
>pFsense&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero le tengo aprecio a esta herramienta, nunca me ha fallado y me parece un poco ingrato cambiarlo por otro software.&lt;/p>
&lt;h2 id="tctraffic-control">tc (traffic control)
&lt;/h2>&lt;p>Existe un programa en linux que se llama &lt;a class="link" href="https://en.wikipedia.org/wiki/Tc_%28Linux%29" target="_blank" rel="noopener"
>tc&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
  que permite controlar el tráfico de paquetes que circula en una interfaz de red.&lt;/p>
&lt;p>Haciendo un símil, imaginen que la tarjeta de red es una carretera, los automóviles son los paquetes que fluyen libremente intercambiando información entre su equipo y sus vecinos.&lt;/p>
&lt;p>Básicamente tc permite establecer los mecanismos que controlan la transmisión y recepción de paquetes. Es como poner límites de velocidad a la carretera de la información.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/controlar-el-ancho-de-banda-por-direcci%C3%B3n-IP-en-linux.png"
alt="controlar el ancho de banda por dirección IP en linux">&lt;figcaption>
&lt;p>controlar el ancho de banda por dirección IP en linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Mejor que eso, en lugar de establecer un ancho de banda máximo permitido en toda “la carretera”, se puede establecer un límite de velocidad dependiendo del destino al que quieren llegar los paquetes, de esta forma es posible controlar la cantidad de paquetes que consumen cada uno de los destinos (o clientes).&lt;/p>
&lt;p>Creo que ni yo me entendí pero la idea es esa.&lt;/p>
&lt;h2 id="instalación">Instalación
&lt;/h2>&lt;p>Les recuerdo que utilizo &lt;a class="link" href="https://manjaro.github.io/" title="Manjaro Linux"
target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una distribución de linux basada en Arch. El paquete que contiene a &lt;strong>tc&lt;/strong> se llama &lt;strong>iproute2&lt;/strong>. IPCop lo tiene instalado por default y Manjaro también, así que probablemente ya lo tienen y ni cuenta se han dado.&lt;/p>
&lt;h2 id="el-script">El script
&lt;/h2>&lt;p>Leí mucho sobre el tema hasta que me encontré con un sencillo script en bash que hace lo que necesito en &lt;a class="link" href="https://serverfault.com/questions/191560/how-can-i-do-traffic-shaping-in-linux-by-ip/" target="_blank" rel="noopener"
>How can I do traffic shaping in Linux by IP?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Sólo tenía que hacerle algunos ajustes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#! /bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="nv">NETCARD&lt;/span>&lt;span class="o">=&lt;/span>eth0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">MAXBANDWIDTH&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">100000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># reinit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tc qdisc del dev &lt;span class="nv">$NETCARD&lt;/span> root handle &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tc qdisc add dev &lt;span class="nv">$NETCARD&lt;/span> root handle 1: htb default &lt;span class="m">9999&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># create the default class&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tc class add dev &lt;span class="nv">$NETCARD&lt;/span> parent 1:0 classid 1:9999 htb rate &lt;span class="k">$((&lt;/span> &lt;span class="nv">$MAXBANDWIDTH&lt;/span> &lt;span class="k">))&lt;/span>kbit ceil &lt;span class="k">$((&lt;/span> &lt;span class="nv">$MAXBANDWIDTH&lt;/span> &lt;span class="k">))&lt;/span>kbit burst 5k prio &lt;span class="m">9999&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># control bandwidth per IP&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">declare&lt;/span> -A ipctrl
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># define list of IP and bandwidth (in kilo bits per seconds) below&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.1&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.2&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.3&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.4&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.5&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.6&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.7&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.8&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.9&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.10&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.11&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.12&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.13&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.14&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.15&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.16&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.17&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.18&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.19&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.20&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.21&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.22&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.23&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.24&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.25&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.26&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.27&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.28&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.29&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.30&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.31&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.32&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.33&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.34&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.35&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.36&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.37&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.38&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.39&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.40&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.41&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.42&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.43&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.44&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.45&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.46&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.47&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.48&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.49&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.50&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.51&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.52&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.53&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.54&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.55&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.56&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.57&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.58&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.59&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.60&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.61&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.62&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.63&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.64&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.65&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.66&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.67&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.68&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.69&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.70&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.71&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.72&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.73&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.74&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.75&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.76&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.77&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.78&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.79&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.80&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.81&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.82&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.83&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.84&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.85&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.86&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.87&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.88&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.89&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.90&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.91&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.92&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.93&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.94&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.95&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.96&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.97&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.98&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.99&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.100&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.101&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.102&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.103&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.104&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.105&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.106&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.107&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.108&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.109&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.110&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.111&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.112&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.113&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.114&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.115&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.116&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.117&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.118&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.119&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.120&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.121&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.122&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.123&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.124&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.125&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.126&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.127&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.128&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.129&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.130&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.131&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.132&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.133&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.134&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.135&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.136&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.137&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.138&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.139&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.140&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.141&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.142&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.143&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.144&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.145&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.146&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.147&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.148&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.149&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.150&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.151&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.152&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.153&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.154&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.155&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.156&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.157&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.158&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.159&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.160&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.161&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.162&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.163&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.164&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.165&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.166&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.167&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.168&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.169&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.170&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.171&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.172&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.173&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.174&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.175&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.176&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.177&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.178&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.179&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.180&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.181&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.182&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.183&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.184&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.185&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.186&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.187&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.188&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.189&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.190&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.191&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.192&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.193&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.194&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.195&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.196&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.197&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.198&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.199&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.200&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.201&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.202&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.203&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.204&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.205&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.206&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.207&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.208&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.209&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.210&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.211&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.212&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.213&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.214&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.215&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.216&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.217&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.218&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.219&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.220&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.221&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.222&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.223&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.224&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.225&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.226&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.227&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.228&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.229&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.230&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.231&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.232&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.233&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.234&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.235&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.236&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.237&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.238&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.239&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.240&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.241&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.242&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.243&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.244&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.245&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.246&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.247&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.248&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.249&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.250&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.251&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.252&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.253&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ipctrl&lt;span class="o">[&lt;/span>192.168.1.254&lt;span class="o">]=&lt;/span>&lt;span class="s2">&amp;#34;256&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">mark&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> ip in &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="p">!ipctrl[@]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">mark&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$((&lt;/span> mark &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span> &lt;span class="k">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">bandwidth&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ipctrl&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nv">$ip&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="si">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># traffic shaping rule&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tc class add dev &lt;span class="nv">$NETCARD&lt;/span> parent 1:0 classid 1:&lt;span class="nv">$mark&lt;/span> htb rate &lt;span class="k">$((&lt;/span> &lt;span class="nv">$bandwidth&lt;/span> &lt;span class="k">))&lt;/span>kbit ceil &lt;span class="k">$((&lt;/span> &lt;span class="nv">$bandwidth&lt;/span> &lt;span class="k">))&lt;/span>kbit burst 5k prio &lt;span class="nv">$mark&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># netfilter packet marking rule&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> iptables -t mangle -A INPUT -i &lt;span class="nv">$NETCARD&lt;/span> -s &lt;span class="nv">$ip&lt;/span> -j CONNMARK --set-mark &lt;span class="nv">$mark&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># filter that bind the two&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tc filter add dev &lt;span class="nv">$NETCARD&lt;/span> parent 1:0 protocol ip prio &lt;span class="nv">$mark&lt;/span> handle &lt;span class="nv">$mark&lt;/span> fw flowid 1:&lt;span class="nv">$mark&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;IP &lt;/span>&lt;span class="nv">$ip&lt;/span>&lt;span class="s2"> is attached to mark &lt;/span>&lt;span class="nv">$mark&lt;/span>&lt;span class="s2"> and limited to &lt;/span>&lt;span class="nv">$bandwidth&lt;/span>&lt;span class="s2"> kbps&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#propagate netfilter marks on connections&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables -t mangle -A POSTROUTING -j CONNMARK --restore-mark
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Por ejemplo en donde dice, &lt;strong>NETCARD&lt;/strong> no es eth0, IPCop lo llama &lt;strong>lan-1&lt;/strong>. Luego en donde se define el array &lt;strong>ipctrl&lt;/strong> lo ajuste a un valor adecuado de para mis direcciones IP, por ejemplo alguien tendrá direcciones del tipo &lt;em>192.168.0.x&lt;/em> o &lt;em>192.168.1.x&lt;/em> y en el ejemplo le di un valor por default de 256 kbps a cada uno, pero esto es lo bonito de este script, que se puede personalizar individualmente el ancho de banda y eso es una maravilla.&lt;/p>
&lt;p>Claro que tiene que guardar el script en un archivo, darle permisos de ejecución, que se ejecute durante el arranque y todas esas cosas que hacemos los &lt;a class="link" href="https://linuxmanr4.com/2009/07/31/dia-del-administrador-de-sistemas/" >administradores de sistemas&lt;/a>
.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Tengo algunos puntos de acceso inalámbricos a los que les voy a establecer un límite, total para mandar un mensaje por el Whatsapp no se requiere mucho ancho de banda ¿cierto?, pero una actualización de dispositivo (y si me refiero a tí Apple !!!)  eso es muy diferente ¿Ahora me entienden?.&lt;/p>
&lt;p>Intento reservar el ancho de banda para donde lo creo más prioritario. De esa forma todos mis usuarios tiene internet, pero a distintas velocidades.&lt;/p>
&lt;p>Como siempre, lo interesante de compartir estas ideas es la posibilidad de recibir sugerencias, señalar errores o analizar otros enfoques. Espero ansioso sus comentarios.&lt;/p>
&lt;h2 id="referencias">Referencias
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://tldp.org/HOWTO/Traffic-Control-HOWTO/index.html" target="_blank" rel="noopener"
>Traffic Control HOWTO&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://serverfault.com/questions/191560/how-can-i-do-traffic-shaping-in-linux-by-ip/" target="_blank" rel="noopener"
>How can I do traffic shaping in Linux by IP?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Advanced_traffic_control" target="_blank" rel="noopener"
>Advanced traffic control (wiki arch linux)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como arreglar el ventilador de una fuente de poder</title><link>https://linuxmanr4.com/2016/08/22/como-arreglar-el-ventilador-de-una-fuente-de-poder/</link><pubDate>Mon, 22 Aug 2016 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2016/08/22/como-arreglar-el-ventilador-de-una-fuente-de-poder/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/fuente-de-poder.webp" alt="Featured image of post Como arreglar el ventilador de una fuente de poder" />&lt;p>En el mejor de los casos, el ventilador de la fuente de poder empieza a hacer ruidos raros, como un motor que batalla en arrancar. En el peor, no hace ningún ruido.&lt;/p>
&lt;p>El problema es que el ventilador deja de girar o lo hace muy lentamente y  no logra el flujo de aire necesario para enfriar los componentes de la fuente de poder provocando cortes de energía o la muerte de la fuente de poder.&lt;/p>
&lt;p>Si se detecta este problema a tiempo, muchas veces se puede solucionar fácilmente lubricando el motor del ventilador. Si se hace con cuidado es una reparación sencilla que requiere poca inversión y estará listo en muy poco tiempo.&lt;/p>
&lt;p>&lt;strong>Advertencia&lt;/strong>: En el interior de la fuente de poder hay componentes que pueden dar una descarga eléctrica, así que tenga cuidado. Pero si le da miedo mejor no lo intente.&lt;/p>
&lt;h2 id="retirarla-fuente-de-poder">Retirar la fuente de poder
&lt;/h2>&lt;p>Es necesario quitar la fuente de poder de la computadora para poder desarmarla. Hay que tomar nota de todas las conexiones que se retiran. Si no están familiarizados con su equipo es una buena idea tomar fotos de como están organizadas las conexiones antes de comenzar a retirarla.&lt;/p>
&lt;p>Básicamente será una conexión a la motherboard, otra más pequeña que alimenta al CPU y la alimentación a los discos duros y a las unidades ópticas (CD, DVD, etc.) si es que están presentes.&lt;/p>
&lt;p>Afortunadamente, muchos de estos elementos sólo se pueden conectar de una manera, así que con tomar algunas notas será más que suficiente.&lt;/p>
&lt;h2 id="abrir-la-fuente-de-poder">Abrir la fuente de poder
&lt;/h2>&lt;p>Lo que sigue es abrir la fuente de poder. En muchos modelos que he visto basta con retirar 4 pequeños tornillos de la parte superior de la fuente para que sea posible abrirla. En ocasiones será necesario romper el sello de garantía o de control de calidad. Un jaloncito hacia arriba y podrán ver los componentes de la fuente de poder.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/El-interior-de-la-fuente-de-poder.jpg"
alt="El interior de la fuente de poder">&lt;figcaption>
&lt;p>El interior de la fuente de poder&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="quitar-el-ventilador">Quitar el ventilador
&lt;/h2>&lt;p>El ventilador está sujeto a la fuente de poder con 4 tornillos gruesos. Para poder lubricar el ventilador es necesario retirarlo de la fuente de poder. Basta con quitar los tornillos para lograrlo. Es normal un poco de fuerza extra para desatornillarlos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/Tornillos-que-sujetan-el-ventilador.jpg"
alt="Tornillos que sujetan el ventilador">&lt;figcaption>
&lt;p>Tornillos que sujetan el ventilador&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="lubricar-el-ventilador">Lubricar el ventilador
&lt;/h2>&lt;p>Ahora si, llegó la hora de lubricar el ventilador. En la parte frontal notarán una etiqueta, la tienen que quitar parcialmente y abajo verán un pequeño sello de goma. Con un desarmador pequeño retiren el sello y verán el eje del ventilador.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/Punto-de-lubricaci%C3%B3n-del-ventilador.jpg"
alt="Punto de lubricación del ventilador">&lt;figcaption>
&lt;p>Punto de lubricación del ventilador&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Coloque el ventilador en posición horizontal y aplique como máximo 3 gotas de un aceite lubricante. A mi me gusta el clásico aceite 3 en 1 de toda la vida, pero pueden usar cualquier aceite similar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/Aceite-3-en-1.jpg"
alt="Aceite 3 en 1">&lt;figcaption>
&lt;p>Aceite 3 en 1&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Dejen que el aceite repose por un minuto. Antes de rearmar la fuente sería recomendable &lt;a class="link" href="https://linuxmanr4.com/2014/07/11/probar-una-fuente-de-poder/" >comprobar la fuente de poder&lt;/a>
.&lt;/p>
&lt;p>Si el remedio funcionó, se notará inmediatamente la diferencia. El ventilador girará a buena velocidad, de forma silenciosa y con un flujo de aire perceptible al acercar la mano.&lt;/p>
&lt;p>Actualización. Últimamente, he estado usando un &lt;a class="link" href="https://www.steren.com.mx/lubricante-de-silicon-uso-universal.html" target="_blank" rel="noopener"
>Lubricante de silicón de baja viscosidad&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es más caro, pero da unos excelentes resultados.&lt;/p>
&lt;p>Para rearmar la fuente solo se tienen que seguir los pasos en orden inverso y volver a instalarla en la computadora.&lt;/p>
&lt;p>Con un poco de tiempo y un poco de aceite, la fuente de poder podrá seguir funcionando sin problemas unos años más.&lt;/p></description></item><item><title>Publicidad molesta en mi celular con android</title><link>https://linuxmanr4.com/2016/08/09/publicidad-molesta-en-mi-celular-android/</link><pubDate>Tue, 09 Aug 2016 16:22:08 +0000</pubDate><guid>https://linuxmanr4.com/2016/08/09/publicidad-molesta-en-mi-celular-android/</guid><description>&lt;p>Es la tercera vez que me llega un celular con este problema. Continuamente aparecen mensajes de publicidad a pantalla completa en los momentos más inoportunos. Lo que hace característico este comportamiento es una animación de círculos azules que se conectan unos a otros de una forma fluida. Cuando veo eso se que voy a tener problemas.&lt;/p>
&lt;p>En las dos primeras ocasiones, no encontré al culpable. Desinstalé un montón de aplicaciones &amp;ldquo;raras&amp;rdquo; o sospechosas. Llegué incluso a Restaurar el equipo a su configuración de fábrica y seguía apareciendo. Lo que me llevó incluso a formatear la memoria &lt;a class="link" href="https://es.wikipedia.org/wiki/MicroSD" target="_blank" rel="noopener"
>microsd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Solucionó el problema, pero creo que utilicé una opción nuclear solo para aniquilar al culpable.&lt;/p>
&lt;p>Se que ese tipo de programas los instala el usuario o son rémoras que vienen incluidas con otra aplicación, pero en ese momento no logré identificarlo.&lt;/p>
&lt;h2 id="android-communication-sync">Android Communication Sync
&lt;/h2>&lt;p>La tercera vez que me llegó un teléfono con los círculos azules me tomé un poco más de tiempo. Instalé &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.piriform.ccleaner&amp;amp;hl=es_419" target="_blank" rel="noopener"
>CCleaner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 una herramienta de limpieza que utilizo mucho en el escritorio de Windows y que tiene una versión para Android.&lt;/p>
&lt;p>Después de hacer una limpieza general, fui a la opción &lt;strong>Administrador de aplicaciones&lt;/strong>. Este teléfono no tenía muchas apps instaladas y las que había eran las habituales. Todas excepto una con el nombre de &lt;strong>Android Communication Sync&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/08/Android-Communication-Sync-en-la-lista-de-aplicaciones.jpg"
alt="El programa sospechoso en la lista de aplicaciones. Publicidad molesta en mi celular">&lt;figcaption>
&lt;p>El programa sospechoso en la lista de aplicaciones. Publicidad molesta en mi celular&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo curioso es que esta aplicación nunca la ví en la opción de &lt;strong>Aplicaciones&lt;/strong> en los &lt;strong>Ajustes&lt;/strong> del teléfono. Y esto encendió todos mis focos rojos de alerta incluidas las sirenas.&lt;/p>
&lt;p>Una aplicación que se oculta a si misma no puede indicar algo bueno. Al principio creí que se trataba de alguna aplicación del sistema por mostrar como icono el robotito de Android, pero si ese fuera el caso, CCleaner no la mostraría como desinstalable.&lt;/p>
&lt;p>Es de todos conocidos que muchas aplicaciones viven de la publicidad que muestran, incluso algunos llegan a ofrecer aplicaciones de pago que no muestran anuncios, pero se le advierte al usuario desde un principio, antes de instalarlas. Sobre aviso no hay engaño.&lt;/p>
&lt;p>Al quitar la aplicación no ha vuelto a mostrar esa molesta publicidad. La recomendación de siempre es que estén muy atentos a las aplicaciones que instalan en Android, desafortunadamente Google Play no tiene un control muy estricto de aplicaciones maliciosas porque diariamente se publican miles.&lt;/p>
&lt;h2 id="y-la-memoria-microsd">¿Y la memoria microsd?
&lt;/h2>&lt;p>Les ha pasado que restauran el teléfono a su &lt;em>configuración de fábrica&lt;/em> y al poco tiempo están otra vez en la misma situación. Una recomendación es que respalden las fotos de la memoria microsd y la formateen fuera del teléfono usando una computadora.&lt;/p>
&lt;p>A lo mejor es una recomendación un poco paranoica, pero no esta de más, sobre todo si se presenta publicidad molesta frecuentemente.&lt;/p>
&lt;h2 id="la-publicidad-que-ocupa-toda-la-pantalla">La publicidad que ocupa toda la pantalla.
&lt;/h2>&lt;p>La semana pasada me llegaron dos teléfonos con un problema muy similar. En la pantalla se muestra una publicidad que ocupa todo el espacio de la pantalla y no deja hacer otra cosa. No se pueden acceder a las aplicaciones o al botón de inicio.&lt;/p>
&lt;p>Lo peor es que al parecer la publicidad te suscribe a un servicio de paga y como ocupa toda la pantalla es muy fácil hacerle clic por error.&lt;/p>
&lt;p>No me fue posible evadir esa pantalla de publicidad y tampoco logré averiguar cual era la aplicación que causa este comportamiento.&lt;/p>
&lt;p>Opté por &lt;strong>Restaurar a sus valores de fábrica&lt;/strong> a ambos equipos. A veces no queda de otra.&lt;/p>
&lt;p>Ahora si, a disfrutar del teléfono sin tantas interrupciones intrusivas.&lt;/p></description></item><item><title>Como reparar fugas de agua en albercas</title><link>https://linuxmanr4.com/2016/06/30/reparar-fugas-agua-en-albercas/</link><pubDate>Thu, 30 Jun 2016 20:46:21 +0000</pubDate><guid>https://linuxmanr4.com/2016/06/30/reparar-fugas-agua-en-albercas/</guid><description>&lt;p>En esta temporada de calor son muy populares las albercas portátiles o pequeñas que no requieren instalaciones especiales. El problema es que a veces tienen pequeños orificios por donde se escapa el agua. Por eso hoy les comento mi experiencia sobre como reparar fugas de agua en albercas.&lt;/p>
&lt;h2 id="albercas-no-inflables">Albercas no inflables.
&lt;/h2>&lt;p>Un buen día llega mi chaparrita con una mega alberca de segunda mano pero en buenas condiciones. Quiero aclarar que no es de las inflables, es de las que están construidas con una tela de &lt;a class="link" href="https://es.wikipedia.org/wiki/Policloruro_de_vinilo" target="_blank" rel="noopener"
>PVC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que las hace más resistentes pero que no las hace invulnerables a pinchaduras.&lt;/p>
&lt;p>Después de armarla y agregarle un poco de agua nos dimos cuenta de que tenía pequeños orificios por los que se filtraba el agua. Vamos que más bien parecía una fuente que una alberca. Como la idea no es desperdiciar agua, ahí es donde tuve que aplicar el ingenio y la paciencia.&lt;/p>
&lt;p>Supongo que existen kits especializados para reparar este tipo de desperfectos, pero no conseguí ninguno en el lugar donde vivo (o no busqué lo suficiente) así que estos consejos se los paso al costo.&lt;/p>
&lt;h2 id="parches-para-bicicleta">Parches para bicicleta.
&lt;/h2>&lt;p>Mi primer opción que funcionó fue utilizar parches de bicicleta y funcionan bastante bien. Se consiguen fácilmente y no son muy caros. Los parches consisten en una lija (que yo no utilicé) un tubo con pegamento y los parches de hule con un plástico que se desprende como si fuera una calcomanía.&lt;/p>
&lt;p>Lo primero que hay que hacer es limpiar y secar muy bien el lugar donde van a colocar el parche. Apliqué un poco de pegamento tanto en la pared interna de la alberca como en el parche al que le quité el plástico previamente.&lt;/p>
&lt;p>Coloqué el parche, apliqué un poco de presión y dejé que se secara una noche. A lo mejor exageré con el tiempo de secado, pero no tenía prisa.&lt;/p>
&lt;p>Es importante colocar el parche por dentro, lo intenté por fuera y no funcionó, al principio parece que va a estar bien, pero la presión del agua hace que se desprenda el parche.&lt;/p>
&lt;h2 id="cinta-para-ducto-y-silicón">Cinta para ducto y silicón.
&lt;/h2>&lt;p>El problema fue que la alberca tenía demasiados agujeros y pronto me terminé mi dotación de parches para bicicleta. Conforme fuimos llenando la alberca y aumentando el nivel del agua fueron apareciendo más agujeros. A este ritmo parecía que no iba a terminar nunca.&lt;/p>
&lt;p>Pensando en otras opciones hice algunas pruebas con la cinta para ducto. Es fuerte, resistente, apropiada para exteriores, pero el agua no perdona y terminaba desprendiendo el remiendo. Al otro día me encontraba con la cinta flotando, un hilillo de agua escurriendo y un charco como testigo de la fuga.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/cinta-para-ducto.jpg"
alt="cinta para ducto" width="600">&lt;figcaption>
&lt;p>cinta para ducto&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Entonces recordé que en la caja de herramientas tenía un poco de silicón, ya no recuerdo en que lo había utilizado. Es perfecto, a prueba de agua, es durable y flexible. Así que combiné la cinta para ducto y el silicón para hacer un equivalente al parche de bicicleta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/silicon-para-ba%C3%B1os-y-cocinas.jpg"
alt="silicon para baños y cocinas" width="610">&lt;figcaption>
&lt;p>silicon para baños y cocinas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sequé nuevamente bien el área. Corté un pedazo de cinta para ducto al que le apliqué un poco de silicón. Hice lo mismo en la pared interna de la alberca. Y una vez que estuvo bien colocado el parche le aplique un poco más en el borde del parche para que sellara. Nuevamente lo dejé secar una noche.&lt;/p>
&lt;h2 id="sin-fugas">Sin fugas
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/parche-con-cinta-para-ducto.jpg"
alt="parche con cinta para ducto" width="840">&lt;figcaption>
&lt;p>parche con cinta para ducto&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Antes de publicar este artículo esperé unas tres semanas para probar la efectividad de la mexicanada ¡Funciona!. Quizás no es un arreglo permanente, pero hasta el día de hoy no hay fugas en la alberca y me doy por bien servido si no las hay mientras dura la &lt;a class="link" href="https://es.wikipedia.org/wiki/Can%C3%ADcula" target="_blank" rel="noopener"
>canícula&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Como limpiar una memoria usb</title><link>https://linuxmanr4.com/2016/06/15/limpiar-una-memoria-usb/</link><pubDate>Wed, 15 Jun 2016 13:45:31 +0000</pubDate><guid>https://linuxmanr4.com/2016/06/15/limpiar-una-memoria-usb/</guid><description>&lt;p>En esta ocasión les voy a contar cómo limpiar una memoria usb y no me refiero a limpiarla de bichos, virus o malware, ese es otro tema, si no a limpiarla de polvo, suciedad u otros contaminantes.&lt;/p>
&lt;p>Tengo un par de métodos que he utilizado durante mucho tiempo, uso uno u otro dependiendo de las características físicas de la memoria usb.&lt;/p>
&lt;p>A veces pasa que una memoria usb aun después de conectada se niega a aparecer en la lista de dispositivos conectados. Es cuando comienza un ritual que parece que aprendimos desde niños. Sacar la memoria, soplarle, intentar conectarla, te equivocaste de lado, la giras, tampoco queda, luego la regresas a como estaba y esta vez sí entra, esperas a ver si la computadora haga algún gesto ¿No funciona? repites el procedimiento hasta que lo haga y yo me pregunto ¿No se les ha ocurrido limpiar los contactos de la memoria?&lt;/p>
&lt;h2 id="si-puedes-ver-los-contactos-de-la-memoria-usb">Si puedes ver los contactos de la memoria usb
&lt;/h2>&lt;p>Si tu memoria usb es de esas en las que puedes ver los contactos entonces te recomiendo que utilices un borrador de migajón. Tengo un borrador especialmente para este propósito, te recomiendo que sea de migajón por lo suave. No utilices la goma de borrar del lápiz o la clásica rosa con azul ya que este tipo de borradores contienen ácidos que podrían reaccionar con los metales.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/limpiando-contactos-con-un-borrador.jpg"
alt="limpiando contactos con un borrador">&lt;figcaption>
&lt;p>limpiando contactos con un borrador&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Talla suavemente con el borrador los contactos hasta que se vean de un color amarillo brillante. No se te olvide quitar las migajas del borrador.&lt;/p>
&lt;p>Este método lo puedes aplicar a otros dispositivos como memorias de computadora, tarjetas PCI, chips de celular, cables de apple, es un método muy seguro y funciona muy bien.&lt;/p>
&lt;h2 id="si-no-se-ven-los-contactos">Si no se ven los contactos
&lt;/h2>&lt;p>Si los contactos no son accesibles como para usar un borrador entonces podemos usar el siguiente método. Necesitamos un trapo, un poco de &lt;a class="link" href="https://es.wikipedia.org/wiki/2-Propanol" target="_blank" rel="noopener"
>alcohol isopropílico&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un clip o un palillo o lo que tengamos a la mano.&lt;/p>
&lt;p>Algunos usan cotonetes de algodón, pero tengo problema con las fibras que sueltan, si ven que esto no ocurre pueden utilizarlos. El alcohol isopropílico también es un poco dificil de conseguir. Se que se puede comprar en las tiendas de electrónica como limpiador pero su costo es algo elevado. Una lata de alcohol isopropílico en aerosol puede costar 120 pesos.&lt;/p>
&lt;p>Si no lo tienen a la mano lo pueden sustituir sin mayor problema con liquido limpiador de lentes o de vidrios, básicamente tiene este alcohol en su formulación, hace el mismo trabajo y al evaporarse no deja residuos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/Para-limpiar-memorias-usb-con-alcohol.jpg"
alt="Para limpiar memorias usb con alcohol">&lt;figcaption>
&lt;p>Para limpiar memorias usb con alcohol&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Recuerden que hay que mojar el trapo en alcohol, no apliquen el alcohol directamente a la memoria usb. Con el trapo húmedo pueden limpiar los contactos que hay en el interior ayudándose con el clip.&lt;/p>
&lt;p>Si es posible, vean si están limpios los contactos, recuerden que deben de quedar de un color amarillo brillante.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/contactos-limpios-amarillo-brillante.jpg"
alt="contactos limpios amarillo brillante">&lt;figcaption>
&lt;p>contactos limpios amarillo brillante&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esto resuelve muchos problemas de conexión o conexiones intermitentes. Un detallito más, si ven que falta metal en los contactos pues no hay mucho que limpiar y si tienen problemas con su memoria usb esta puede ser la causa.&lt;/p></description></item><item><title>El mejor cliente SIP para Android</title><link>https://linuxmanr4.com/2016/06/07/el-mejor-cliente-sip-para-android/</link><pubDate>Tue, 07 Jun 2016 18:03:12 +0000</pubDate><guid>https://linuxmanr4.com/2016/06/07/el-mejor-cliente-sip-para-android/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/el-mejor-cliente-sip-para-android.png" alt="Featured image of post El mejor cliente SIP para Android" />&lt;p>Un cliente SIP es una aplicación que te permite enlazarte a un conmutador telefónico que utiliza el protocolo &lt;a class="link" href="https://es.wikipedia.org/wiki/Session_Initiation_Protocol" target="_blank" rel="noopener"
>SIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para hacer o recibir llamadas como cualquier otra extensión telefónica de tu instalación.&lt;/p>
&lt;p>Les recuerdo que en mi caso utilizo &lt;a class="link" href="https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/" >Elastix&lt;/a>
que es una distribución de Linux basada en &lt;a class="link" href="https://www.centos.org/" target="_blank" rel="noopener"
>CentOS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
especializada en &lt;a class="link" href="https://es.wikipedia.org/wiki/PBX" target="_blank" rel="noopener"
>PBX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o lo que es lo mismo, en conmutadores telefónicos pero que utilizan software libre.&lt;/p>
&lt;p>Tener una aplicación de estas en tu teléfono puede resultar muy cómodo, es como si tuvieras un teléfono inalámbrico a la mano, siempre y cuando te localices en un área que tenga cobertura WiFi. Yo lo uso mucho si me tengo que alejar de mi escritorio, entonces activo el desvío de llamadas a la extensión que tengo configurada en mi celular y de ese modo sigo recibiendo llamadas.&lt;/p>
&lt;h2 id="para-tener-en-cuenta-zoiper-softphone">Para tener en cuenta: Zoiper Softphone
&lt;/h2>&lt;p>Durante mucho tiempo fue mi app favorita solamente por una razón. Esta aplicación permite configurar extensiones &lt;a class="link" href="https://es.wikipedia.org/wiki/IAX2" target="_blank" rel="noopener"
>IAX2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que es un protocolo desarrollado específicamente para &lt;a class="link" href="http://www.asterisk.org/" target="_blank" rel="noopener"
>asterisk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y técnicamente es muy superior a SIP. Sin embargo, por alguna extraña razón, de un tiempo a la fecha, esta aplicación empezó a crecer mucho en tamaño y en permisos. Lo peor es que después de una actualización comenzó a &lt;em>crashear&lt;/em> continuamente y así no se puede trabajar. No tuve más alternativa que quitarla de mi teléfono. Es un claro ejemplo de que no todas las actualizaciones son buenas. Pero de igual modo lo pueden probar, uno nunca sabe :)&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/zoiper.png"
alt="zoiper, cliente SIP para Android">&lt;figcaption>
&lt;p>zoiper, cliente SIP para Android&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://play.google.com/store/apps/details?id=com.zoiper.android.app&amp;amp;hl=es_419" target="_blank" rel="noopener"
>&lt;strong>Zoiper en Google Play&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="el-mejor-cliente-sip-para-androidcsipsimple">El mejor cliente SIP para Android: CSipSimple
&lt;/h2>&lt;p>Y ahora mismo les explico porque lo considero la mejor opción. Para empezar se trata de un proyecto Open Source GPL muy robusto. Su tamaño es adecuado para una gran variedad de teléfonos y con todas las opciones que incluye y su configuración es muy sencilla.&lt;/p>
&lt;p>Además está disponible en la tienda de aplicaciones F-Droid que tiene un extenso catálogo de aplicaciones FOSS (Free and Open Source Software).&lt;/p>
&lt;p>Esta limitado a extensiones con protocolo SIP, pero lo que hace lo hace muy bien y lo mejor de todo, es que no se me ha bloqueado ni una sola vez desde que la instalé.&lt;/p>
&lt;h3 id="como-se-configura-csipsimple">Como se configura CSipSimple.
&lt;/h3>&lt;h4 id="instalar-csipsimple">Instalar CSipSimple
&lt;/h4>&lt;p>Primero hay que instalar la aplicación y lo pueden hacer desde Google Play o usando el catálogo de F-Droid.&lt;/p>
&lt;p>&lt;a class="link" href="https://code.google.com/archive/p/csipsimple/" target="_blank" rel="noopener"
>&lt;strong>CSipSimple en Google Code Archive&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h4 id="dar-de-alta-una-extensión-en-elastix">Dar de alta una extensión en Elastix
&lt;/h4>&lt;p>Pueden dar de alta una extensión nueva en elastix (es lo que prefiero) o identificarse con una que ya esté dada de alta. En lo personal me gusta distinguir entre una extensión de escritorio y una móvil.&lt;/p>
&lt;p>Tomen nota del &lt;strong>número de extensión&lt;/strong> y del &lt;strong>secret&lt;/strong> de la extensión que es la contraseña.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/Configuraci%C3%B3n-de-la-extensi%C3%B3n.png"
alt="Configuración de la extensión">&lt;figcaption>
&lt;p>Configuración de la extensión&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h4 id="configurar-la-extensión-en-el-teléfono">Configurar la extensión en el teléfono
&lt;/h4>&lt;p>Abrimos la aplicación y seleccionamos el ícono que está en la parte inferior izquierda, la que tiene forma de llave.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/El-men%C3%BA-de-opciones.png"
alt="Agregar cuentas">&lt;figcaption>
&lt;p>Agregar cuentas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nos dará la oportunidad de agregar una cuenta, buscamos la opción que dice &lt;strong>Asistentes Genéricos&lt;/strong> y luego en &lt;strong>Basic&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/Asistentes-genericos.png"
alt="Asistentes genericos">&lt;figcaption>
&lt;p>Asistentes genericos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el asistente Básico llenamos los campos con los valores que necesita&amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/06/Opciones-de-configuraci%C3%B3n-de-la-cuenta.png"
alt="Opciones de configuración de la cuenta">&lt;figcaption>
&lt;p>Opciones de configuración de la cuenta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si todo lo llenaste correctamente inmediatamente después de guardar la cuenta te aparecerá una notificación informándote que tu cuenta está conectada y por lo tanto podrás hacer y recibir llamadas como cualquier otra extensión telefónica de tu instalación.&lt;/p>
&lt;p>¿Conoces otro cliente SIP para Android mejor? ¡Me gustaría darle un vistazo!&lt;/p></description></item><item><title>Mi celular no carga, los puntos que debes de revisar antes de llevarlo a reparar.</title><link>https://linuxmanr4.com/2016/05/30/mi-celular-no-carga/</link><pubDate>Mon, 30 May 2016 16:31:59 +0000</pubDate><guid>https://linuxmanr4.com/2016/05/30/mi-celular-no-carga/</guid><description>&lt;p>&lt;strong>¿Tu celular no carga y no prende?&lt;/strong> revisa estos puntos antes de llevarlo a reparar o a garantía, muchas veces estos consejos solucionan el problema y tu celular vuelve a prender.&lt;/p>
&lt;p>A veces me traen teléfonos que no quieren agarrar carga y por lo tanto no encienden. Este problema es muy común y creo que se está volviendo cada vez más frecuente. Las causas pueden ser muy variadas.&lt;/p>
&lt;p>En ocasiones logro que arranquen nuevamente, en otras no queda más remedio de mandarlo a un servicio especializado.&lt;/p>
&lt;p>Los siguientes puntos de revisión los pueden comprobar fácilmente, algunos requieren de un multímetro para hacer algunas mediciones y eso sería lo más complicado.&lt;/p>
&lt;p>Si su celular no carga, por favor revise cada uno de estos puntos, están ordenados por lo más sencillo hasta lo más complicado, ¿Listos? ¿Se sienten con suerte?&amp;hellip; ¡Empezamos!&lt;/p>
&lt;h2 id="el-cargador">El cargador.
&lt;/h2>&lt;p>No siempre me traen el cargador para revisarlo, pero cuando lo hacen es importante revisar sus condiciones físicas, la parte que es el eliminador rara vez tiene problemas, son mucho más frecuentes los daños en el cable y en el conector.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/aislante-defectuoso-cables-expuestos.jpg"
alt="Si tu celular no carga, revisa un aislante defectuoso">&lt;figcaption>
&lt;p>Si tu celular no carga, revisa un aislante defectuoso&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>He visto de todo, desde cables pelones, extremos torcidos, conectores mordidos ¿mordidos? pues si, se notan las marcas. parece que alguien les dijo que hicieran eso para &amp;ldquo;apretar&amp;rdquo; el conector y que hiciera un mejor contacto, esto no es plomería, por favor ¡No hagan eso!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Revisando-el-cable.jpg"
alt="Si tu celular no carga revisa el cable del cargador.">&lt;figcaption>
&lt;p>Si tu celular no carga revisa el cable del cargador.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Los cables muchas veces se dañan porque no saben enredarlos, y eso si los enredan, pero el punto más sensible es al extremo del conector, ese punto que da vueltas y vueltas buscando la forma correcta muchas veces termina tan torcido que rompe el cable en su interior.&lt;/p>
&lt;p>Dele un vistazo completo al cargador, de punta a punta, si esta en buenas condiciones físicas pruébelo con otro teléfono y revise si cambia el ícono de la batería para indicar que está cargando.&lt;/p>
&lt;h2 id="el-conector-del-teléfono">El conector del teléfono
&lt;/h2>&lt;p>Se puede dar el caso de que el conector del teléfono esté sucio, lo traen en la bolsa del pantalón o en la bolsa para dama y con el tiempo empieza acumular pelusa. Cada vez que conecta el cargador esa pelusa se compacta hasta formar una especie de tope que a simple vista no se ve.&lt;/p>
&lt;p>Fíjese al momento de conectar el cargador, ¿No llega a hacer clic?, ¿Se safa fácilmente?, mugre en el conector puede ser la causa.&lt;/p>
&lt;p>Con un alambrito fino, un alfiler o una aguja, raspe suavemente el fondo del conector y prepárese, se puede llegar a asombrar con la cantidad de mugre que puede llegar a tener.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Revisando-el-conector-del-tel%C3%A9fono.jpg"
alt="Si tu celular no carga revisa el conector del teléfono">&lt;figcaption>
&lt;p>Si tu celular no carga revisa el conector del teléfono&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Vuelva a conectar el cargador, revise que esté firmemente sujeto. ¿Ya carga su teléfono? ¿No? vamos al siguiente punto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Ajuste-perfecto-del-cable-y-el-conector.jpg"
alt="Ajuste perfecto del cable y el conector">&lt;figcaption>
&lt;p>Ajuste perfecto del cable y el conector&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="las-fundas">Las fundas
&lt;/h2>&lt;p>Las fundas sirven para proteger al celular contra impactos, o bueno eso dicen, lo malo es que hay tantos modelos y las fundas son de calidad regular que a veces no permite que el conector del cargador se ajuste adecuadamente. Me ha tocado tener que hacer más grande el orificio donde entra el cargador para que pueda ajustar adecuadamente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Abertura-lo-suficientemente-grande.jpg"
alt="Abertura lo suficientemente grande">&lt;figcaption>
&lt;p>Abertura lo suficientemente grande&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Dependiendo del material del que este hecho puede usar un exacto o una lima fina. O también le puede quitar la funda al momento de cargar el teléfono, si esto es muy complicado lo mejor es agrandar el orificio.&lt;/p>
&lt;h2 id="la-batería">La batería
&lt;/h2>&lt;p>Actualmente un celular moderno usa una batería de &lt;a class="link" href="https://es.wikipedia.org/wiki/Bater%C3%ADa_de_ion_de_litio" target="_blank" rel="noopener"
>ion litio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que tiene muchas ventajas, es compacto, de buena capacidad, no tiene efecto de memoria como las antiguas de &lt;a class="link" href="https://es.wikipedia.org/wiki/Bater%C3%ADa_de_n%C3%ADquel_cadmio" target="_blank" rel="noopener"
>Niquel Cadmio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 , pero tiene un pequeño defecto, para que funcione adecuadamente debe de tener todo el tiempo una pequeña carga residual.&lt;/p>
&lt;p>Si una batería se descarga completamente deja de funcionar. Es por eso que cuando el teléfono se va a quedar sin carga, deja una pequeña cantidad y se apaga, de lo contrario no podrá iniciar un nuevo ciclo de carga aunque el cargador esté bien y el conector también, vamos que ni con una misa cantada. Créanme, lo sé por experiencia (léase &lt;a class="link" href="https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/" >Cingular 8125 se niega a arrancar (o problemas con la batería)&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Bater%C3%ADa-de-ion-litio-3.8-voltios.jpg"
alt="Batería de ion litio 3.8 voltios">&lt;figcaption>
&lt;p>Batería de ion litio 3.8 voltios&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para revisar una batería vamos a necesitar el multímetro, por ejemplo, esta batería dice que es de 3.8 voltios. Identificamos los conectores positivo y negativo de la batería y veamos que lectura se obtiene.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Voltaje-correcto.jpg"
alt="Voltaje correcto">&lt;figcaption>
&lt;p>Voltaje correcto&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si dice que tiene los 3.8 voltios y el celular no arranca entonces no es por falta de energía y el problema puede estar en el teléfono, esas no son buenas noticias.&lt;/p>
&lt;p>Si la lectura es muy baja o de plano es cero entonces podemos intentar algo pero les advierto que es bajo su propio riesgo.&lt;/p>
&lt;p>&lt;strong>Advertencia&lt;/strong>: Nunca hagan esto por demasiado tiempo, la batería se puede calentar, explotar o dañar permanentemente.&lt;/p>
&lt;p>Tengo un eliminador antiguo de 5 voltios que utilizo para estos menesteres, pele el cable de los extremos e identifique cuál de los dos es el positivo y cual es el negativo.&lt;/p>
&lt;p>En algunos cables el positivo está identificado por una delgada línea blanca, pero si quieren estar seguros conecten el multímetro, este tiene dos cables uno rojo (positivo) y otro negro (negativo), si corresponde la lectura será positiva, de lo contrario será negativa (con un signo de menos) y están al revés.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Pas%C3%A1ndole-energ%C3%ADa-a-la-bater%C3%ADa.jpg"
alt="Pasándole energía a la batería">&lt;figcaption>
&lt;p>Pasándole energía a la batería&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Conecta el positivo del eliminador al positivo de la batería, el negativo con el negativo, vamos a &amp;ldquo;pasarle corriente&amp;rdquo; a la batería. Hazlo por unos 30 segundos. Cuando termine el tiempo inmediatamente coloca la batería en el teléfono e intenta cargarlo normalmente.&lt;/p>
&lt;p>Si no funciona, revisa nuevamente el voltaje de la batería, si se movió un poco intenta nuevamente el paso anterior por otros 30 segundos, no necesitas llegar a los 3.8 voltios, solamente lo suficiente para lograr que se cargue normalmente el celular en condiciones normales.&lt;/p>
&lt;p>¿No funcionó? puede ser que la batería ya haya llegado al final de su vida útil ¿Puedes conseguir otra batería?, revisa que tu celular encienda, si no lo hace ya no hay muchos puntos que revisar, prepárate para lo peor.&lt;/p>
&lt;h2 id="el-teléfono">El teléfono
&lt;/h2>&lt;p>Llegó la hora de sincerarse&amp;hellip; ¿Le has dado una mala vida a tu teléfono? ¿Se te ha caído? ¿Se ha &lt;a class="link" href="https://linuxmanr4.com/2013/04/08/como-saber-si-un-celular-fue-mojado/" >mojado&lt;/a>
? ¿Lo dejaste demasiado tiempo sin cargar?.&lt;/p>
&lt;p>En este punto ya no hay muchas opciones, puede ser un problema de hardware, humedad, maltrato físico. Si puedes, intenta hacer efectiva la garantía, pero si el celular fue mojado o llevado más allá de sus límites no esperes que te lo cambien :).&lt;/p>
&lt;p>Arreglar un teléfono celular que tiene problemas en el hardware requiere herramienta especializada y refacciones que no son fáciles de conseguir.&lt;/p>
&lt;p>Si optas por llevarlo a que te lo reparen, que primero que te digan cuanto cuesta la reparación, porque a veces son tan costosas que no vale la pena arreglarlo. Por regla general, si una reparación vale más de la mitad que lo que cuesta un equipo nuevo, lo mejor es comprar uno nuevo.&lt;/p>
&lt;h2 id="tienes-un-aifon-6-plus">¿Tienes un aifon 6 plus?.
&lt;/h2>&lt;p>Como te podrás haber dado cuenta, estos consejos no aplican a los celulares de la manzanita. La razón es muy sencilla. No hay mucho que puedas hacer por tu cuenta.  Si tienes un &lt;strong>iPhone&lt;/strong> de modelo reciente, lo mejor es que lo lleves a un centro de servicio autorizado.&lt;/p>
&lt;p>Si tienes un &lt;strong>iPhone&lt;/strong> viejito de esos que al verlo tus amigos te preguntan si ya comiste. No creo que el centro de servicio autorizado sea una opción.&lt;/p>
&lt;p>Lo podrán arreglar, pero el costo ya será un factor importante y tu sabrás si vale la pena o no. Lo mejor es llevarlo a una de esas plazas de la Tecnología en las que le pongan una batería compatible. Ellos tienen la herramienta necesaria para abrir estos cacharros y las baterías que podrían funcionar.&lt;/p>
&lt;p>Con eso podrás extender un poco la vida útil de un iPhone que de otro modo terminaría en la basura.&lt;/p>
&lt;p>Espero que este artículo te sirva y logres iniciar nuevamente tu teléfono, de lo contrario ¡Mejor suerte para la próxima!.&lt;/p></description></item><item><title>Conflictos entre freetype2 y freetype2-infinality</title><link>https://linuxmanr4.com/2016/05/17/conflictos-freetype2-freetype2-infinality/</link><pubDate>Tue, 17 May 2016 21:13:02 +0000</pubDate><guid>https://linuxmanr4.com/2016/05/17/conflictos-freetype2-freetype2-infinality/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/freetype2.png" alt="Featured image of post Conflictos entre freetype2 y freetype2-infinality" />&lt;p>En la última actualización de Manjaro me marcó conflictos entre &lt;strong>freetype2&lt;/strong> y &lt;strong>freetype2-infinality&lt;/strong>. Ambos programas se encargan de mostrar adecuadamente las fuentes en la pantalla.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/manjaro-1606rc1.png"
alt="manjaro-1606rc1">&lt;figcaption>
&lt;p>manjaro-1606rc1&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El 15 de mayo anunciaron esta actualización &lt;em>Manjaro 16.06 - first release candidate released&lt;/em> y por lo tanto procedí a actualizar mi sistema utilizando el script &lt;strong>allservers&lt;/strong> . Lo malo fue que al revisar conflictos me aparece este mensaje.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">freetype2 and freetype2-infinality are in conflict. Remove freetype2-infinality? [y/N]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y no hay &lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >forma de continuar con la actualización&lt;/a>
. Al parecer el paquete &lt;strong>freetype2&lt;/strong> es requerido por una gran cantidad de programas que se utilizan en Cinnamon.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Esperé unos días y encontré un problema muy similar al mío en los nuevos foros de Manjaro &lt;em>\[Testing Update\] 2016-05-11 - KDE Apps 16.04.1, Plasma 5.6.4, Gnome 3.20.2, MSM, Calamares&lt;/em> en el que más adelante daban una posible solución que consiste en regresar a Manjaro a una configuración más natural (o sea que sin tantas personalizaciones de mi parte).&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S --asdeps freetype2 cairo fontconfig
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa forma pude quitar el paquete &lt;strong>freetype2-infinality&lt;/strong> y continuar con la actualización sin problemas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Leyenda:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(OK):descarga completada.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(3/3) comprobando las claves del depósito [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(3/3) verificando la integridad de los paquetes [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(3/3) cargando los archivos de los paquetes [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(3/3) comprobando conflictos entre archivos [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(4/4) comprobando el espacio disponible en el ... [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">:: Procesando los cambios de los paquetes...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1/1) quitando freetype2-infinality [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> freetype2-infinality was removed.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(1/3) instalando freetype2 [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(2/3) reinstalando fontconfig [----------------------] 100%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">updating font cache... done.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(3/3) reinstalando cairo [----------------------] 100%
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Espero que este consejo les sirva, si es que llegan a tener este conflicto entre paquetes.&lt;/p></description></item><item><title>IPCop sin internet ¡Un misterio por resolver!</title><link>https://linuxmanr4.com/2016/05/06/ipcop-sin-internet-misterio-resolver/</link><pubDate>Fri, 06 May 2016 20:54:09 +0000</pubDate><guid>https://linuxmanr4.com/2016/05/06/ipcop-sin-internet-misterio-resolver/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/it-crowd-moss-fire-server.jpg" alt="Featured image of post IPCop sin internet ¡Un misterio por resolver!" />&lt;p>Durante 3 días tuve un servidor IPCop sin internet, sin razón aparente dejó de funcionar o más bien funcionaba pero no compartía el internet. Como se pueden imaginar, fue todo un caos en el trabajo y aunque le dediqué todo mi tiempo no pude resolverlo inmediatamente. Los invito a que me acompañen durante este viaje para dar con el asesino de mi conexión a internet.&lt;/p>
&lt;h2 id="comportamiento-extraño">Comportamiento extraño.
&lt;/h2>&lt;p>Lo normal al llegar al trabajo es encender la computadora, cuando hago esto automáticamente se ejecuta un script que se llama &lt;a class="link" href="https://linuxmanr4.com/2014/11/04/ruby-ping/" >rubyping&lt;/a>
 y que revisa que estén activos los elementos más importantes de mi red, si algo esta mal, entonces me manda un correo electrónico avisándome de algún problema, pero esa mañana estaba todo normal.&lt;/p>
&lt;p>Después de un rato ¡PUFFF! se esfumó el internet, hago ping a la interfaz &lt;strong>GREEN&lt;/strong> (red local) de IPcop y todo bien. Hago &lt;a class="link" href="https://linuxmanr4.com/2018/05/10/python-ping-script-ip/" >ping a una dirección&lt;/a>
IP conocida de mi proveedor de internet y me indica que tengo conexión y tiempos de respuesta adecuados. Entonces ¿Qué pasó? ¿A dónde &lt;em>&amp;amp;%$@!&lt;/em> se fue el Internet?&lt;/p>
&lt;h2 id="primer-sospechoso-mi-proveedor-de-internet">Primer sospechoso, mi proveedor de Internet.
&lt;/h2>&lt;p>Tengo instalado &lt;a class="link" href="http://www.cyberciti.biz/networking/nload-linux-command-to-monitor-network-traffic-bandwidth-usage/" target="_blank" rel="noopener"
>nload&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para vigilar el ancho de banda que ocupa en tiempo real mi servidor IPCop y me di cuenta de que aunque la conexión con mi proveedor estaba activa el flujo de datos era ridículamente pequeño, sólo algunos cuantos kbps lograban salir por la tarjeta de red &lt;strong>RED&lt;/strong> (red pública).&lt;/p>
&lt;p>Así que marque el teléfono de soporte y parece que hicieron algunos ajustes, mejoraba un poco pero se volvía a ir después de un tiempo. Tuvieron que venir a mis instalaciones a verificar lo que estaba pasando y que creen ¡En la laptop del personal de soporte funcionaba PERFECTAMENTE!. Navegación ¡Claro!, un &lt;a class="link" href="http://beta.speedtest.net/" target="_blank" rel="noopener"
>Speedtest&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 ¡Por supuesto!, regresan el cablecito a mi servidor IPCop y pueeeesnnn, regular, más o menos y como se podrán imaginar, en cuanto se fueron los amigos, con ellos se fue el internet. ¡GRRRRRRRR!&lt;/p>
&lt;p>Seguí revisando mi servidor IPCop y nada, les volví a hablar y regresaron más tarde, cambiaron el radio, hicieron varias pruebas y todo parecía funcionar correctamente, conecté el cable a mi servidor y parecía que todo estaba funcionando correctamente, pero solo en apariencia. Tuve que soportar los comentarios de que mejor me cambiara a Windows que Linux no servía y cosas por el estilo, algo que no me hizo mucha gracia que digamos.&lt;/p>
&lt;h2 id="le-toca-el-turno-al-hardware">Le toca el turno al hardware.
&lt;/h2>&lt;p>Al llegar parecía que la emergencia había pasado, inicié operaciones normalmente, revisar algunos correos y como a eso de las 9 de la mañana ¡PUUUUUM! otra vez se fue el Internet, mismo comportamiento que el día anterior, pero ya no le podía achacar la culpa a mi proveedor de Internet, después de todo un día antes ya me había demostrado la calidad del enlace así que tenía que buscar por otro lado.&lt;/p>
&lt;p>Si la conexión estaba perfecta el siguiente sospechoso en turno era el hardware y era muy posible porque es un equipo que ya tiene varios años en funcionamiento. Lo primero fue cambiar la tarjeta de red que se encarga de &lt;strong>RED&lt;/strong>, puesto que a mi juicio la tarjeta asignada a la red &lt;strong>GREEN&lt;/strong> funcionaba bien. Bueno terminé cambiando las dos y nada.&lt;/p>
&lt;p>A estas alturas ya era el segundo día sin conexión a Internet y la presión de los usuarios se estaba acumulando peligrosamente. Para descartar cualquier falla del servidor junté todo lo necesario para hacer otro de emergencia. Afortunadamente IPCop no es muy exigente en cuanto a los requerimientos mínimos del sistema. Ya con mi servidor de emergencia armado me di a la tarea de instalarlo, pero con muy poca suerte, en cuanto lo enchufé le pasó exactamente lo mismo que al anterior.&lt;/p>
&lt;h2 id="mi-red">¿Mi red?
&lt;/h2>&lt;p>Si no era mi proveedor y no era el servidor ¿Podría ser algo en mi red que estuviera afectando el servicio?, tenía algo de lógica, por eso funcionaba con la laptop del ingeniero de servicio pero con mi red dejaba de hacerlo casi de inmediato.&lt;/p>
&lt;p>Además en otra ocasión tuve un caso similar en la que un usuario tumbó mi red por una ocurrencia de su parte. Aunque esta vez no veía un tráfico elevado, al contrario, estaba teniendo poco.&lt;/p>
&lt;p>Así que al día siguiente decidí desconectar todos los elementos de mi red y conectarlos de uno por uno hasta detectar a un posible culpable. Básicamente destejí toda mi red para recrearla poco a poco, pero tampoco funcionó :-? .&lt;/p>
&lt;p>Ya era el tercer día y me di cuenta de varios detalles curiosos. El primero que noté es que el Internet desaparecía y regresaba en horarios más o menos establecidos, alrededor de las 9 de la mañana para volver a las 5 o 6 de la tarde y continuar perfectamente durante toda la noche.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/internet-de-noche.png"
alt="internet de noche">&lt;figcaption>
&lt;p>internet de noche&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>También noté que tenía respuesta si hacía ping a la ip de mi proveedor de internet, pero un ping a google.com daba como resultado que no encontraba la dirección del dominio ¡Eso no tiene lógica!.&lt;/p>
&lt;p>Me estaba quedando sin opciones, estuve a punto de comprar un ruteador de emergencia, pero después de todo, mi servidor IPCop había funcionado bien por años sin mayores dificultades y aún desconocía que era lo que provocaba la falla, sabía los efectos pero no la causa.&lt;/p>
&lt;h2 id="al-tercer-día-habemus-internet">Al tercer día ¡Habemus Internet!
&lt;/h2>&lt;p>Al tercer día, ya sin muchas opciones le hablé a mi proveedor de Internet para probar una teoría improbable.&lt;/p>
&lt;p>Dormido (si, soy de los que se lleva los problemas a la almohada) se me ocurrió que podría haber un conflicto de IP&amp;rsquo;s, así que le comenté eso al mero mero, al que &lt;em>sí sabe&lt;/em>, al jefazo, al &lt;em>sysadmin,&lt;/em> al &lt;em>BOFH&lt;/em> de mi ISP ese detalle y me sugirió que intercambiaramos direcciones IP.&lt;/p>
&lt;p>¡Magia! en cuanto se activaron los cambios regresó el Internet con los bríos acostumbrados, todo regresaba a la normalidad y al fin pude respirar con tranquilidad. Ahora la pelota estaba del otro lado de la cancha, tenía mucho trabajo dejando todo como estaba y mientras tanto monitoreaba que todo siguiera funcionando correctamente.&lt;/p>
&lt;p>Ese mismo día recibí una llamada, al parecer un ingeniero &amp;ldquo;creativo&amp;rdquo; configuró mal su router que prendía al llegar al trabajo y apagaba al salir, el resultado fueron 3 días de terror para mi departamento de sistemas (o sea yo). Al final, la falla estaba fuera de mis instalaciones, en algún lugar de la Comarca Lagunera, ¡Todo un caso de estudio!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Offended-Seriously-Computer-Guy-Meme.gif"
alt="Offended-Seriously-Computer-Guy-Meme">
&lt;/figure>
&lt;h2 id="lo-que-aprendí-de-esta-experiencia">Lo que aprendí de esta experiencia.
&lt;/h2>&lt;p>Primero, que el comando &lt;strong>setup&lt;/strong> en IPCop sirve para ajustar la configuración del servidor de forma muy sencilla y aplicar cambios inmediatamente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/setup-en-ipcop.png"
alt="setup en ipcop">&lt;figcaption>
&lt;p>setup en ipcop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y lo segundo es que nunca, nunca, pero nunca voy a desconfiar de mi Linux, claro que puede haber problemas, pero tiene que haber una causa, identificarla es lo más importante.&lt;/p>
&lt;p>Espero no haberlos aburrido mucho con esta historia, pero es que en serio, fue un problema que me volvió loco por días enteros y si alguien, por alguna extraña razón, tiene un problema similar a este, espero que lo arregle en poco tiempo sin perder la razón y el pelo.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Problemas al imprimir en una impresora compartida en Windows desde Linux</title><link>https://linuxmanr4.com/2016/05/03/puedo-imprimir-en-una-impresora-compartida-windows/</link><pubDate>Tue, 03 May 2016 16:06:11 +0000</pubDate><guid>https://linuxmanr4.com/2016/05/03/puedo-imprimir-en-una-impresora-compartida-windows/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/bugs-en-samba.png" alt="Featured image of post Problemas al imprimir en una impresora compartida en Windows desde Linux" />&lt;p>Después de la última actualización de Manjaro tuve serios problemas al  imprimir en una impresora compartida en Windows desde Linux.&lt;/p>
&lt;p>En un principio no supe qué pasó, después de todo no le había movido para nada a la configuración y antes de actualizar estaba imprimiendo muy bien. Pero cada vez que mandaba un trabajo a imprimir invariablemente me pedía usuario y contraseña.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/se-requiere-autenticaci%C3%B3n-para-la-impresi%C3%B3n-del-documento.png"
alt="Se requiere autenticación para la impresión del documento">&lt;figcaption>
&lt;p>Se requiere autenticación para la impresión del documento&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No importa que pusiera, simplemente no podía avanzar de esta pantalla. La página de administración de CUPS me dio otra pista.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/NT%5FSTATUS%5FACCESS%5FDENIED.png"
alt="NT\_STATUS\_ACCESS\_DENIED">&lt;figcaption>
&lt;p>NT_STATUS_ACCESS_DENIED&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Anteriormente, ya había tenido problemas para  imprimir después de una actualización en Manjaro, pero esto se estaba complicando demasiado.&lt;/p>
&lt;h2 id="rumba-samba-mambo-">Rumba, Samba, Mambo !!!
&lt;/h2>&lt;p>Llegué a la conclusión de que el problema era Samba y es que, aunque no es obligatorio instalar Samba para navegar por carpetas compartidas de Windows, si se requiere si necesitas imprimir en una impresora compartida en una computadora que tiene Windows, cosas del &lt;a class="link" href="https://es.wikipedia.org/wiki/Common_Unix_Printing_System" target="_blank" rel="noopener"
>CUPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y así.&lt;/p>
&lt;p>Busqué problemas de configuración y nada, de hecho, me di cuenta de que tampoco podía acceder a las carpetas compartidas de otras máquinas con Windows.&lt;/p>
&lt;p>Dejé pasar unos días y aunque encontraba en los foros algún comportamiento similar al mío no daba con una solución al problema.&lt;/p>
&lt;h2 id="bichos-bichos-everywhere-">Bichos, bichos everywhere &amp;hellip;
&lt;/h2>&lt;p>Fue hasta que encontré este reporte de bug en el que todo tomó sentido&lt;br>
&lt;a class="link" href="https://bugs.archlinux.org/task/48987" target="_blank" rel="noopener"
>FS#48987 - \[smbclient\] Unable to connect to a samba share with a file browser with 4.4.2-1&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 ¡Y ahí estaba todo claro! justo era la versión de samba (o en este caso smbclient) que estaba utilizando. La solución era sencilla, hacer un downgrade a los paquetes involucrados.&lt;/p>
&lt;p>Primero quise hacer un downgrade a los paquetes &lt;strong>smbclient&lt;/strong> y &lt;strong>libwbclient&lt;/strong> , pero no se dejó debido a un problema de dependencias con el paquete &lt;strong>samba&lt;/strong>. Así que primero tuve que desinstalar &lt;strong>samba&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -R samba
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora si no tuve problemas para hacer el &lt;a class="link" href="https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/" >downgrade&lt;/a>
de los otros paquetes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">downgrade smbclient
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">downgrade libwbclient
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como para poder imprimir sigo necesitando samba, en lugar de instalarlo, utilizo el mismo &lt;em>downgrade&lt;/em> para instalarlo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">downgrade samba
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y elijo en todos los casos la versión &lt;strong>4.4.0-1&lt;/strong> que es la que no tiene problemas. Esto último es muy importante.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/05/Instalando-samba-en-la-versi%C3%B3n-correcta.png"
alt="Instalando samba en la versión correcta">&lt;figcaption>
&lt;p>Instalando samba en la versión correcta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final les pregunta si quieren agregar esos paquetes a una lista que evita que se actualicen, así que le respondí que sí, después de todo, si está funcionando no veo la razón para actualizar.&lt;/p>
&lt;p>Para estar seguro de que todos los cambios se aplicaran, reinicié mi equipo, mandé imprimir y listo!!!! Todo regresó a la normalidad.&lt;/p>
&lt;p>Encontrarse con este tipo de &lt;em>bugs&lt;/em> es lo que se gana uno por usar una distribución de linux &lt;a class="link" href="https://es.wikipedia.org/wiki/Liberaci%C3%B3n_continua" target="_blank" rel="noopener"
>&lt;em>rolling release&lt;/em>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como lo es Manjaro, pero aun así no lo cambio por nada. :)&lt;/p></description></item><item><title>Draftsight sin menús y sin barras de herramientas</title><link>https://linuxmanr4.com/2016/04/16/draftsight-sin-menus-sin-barras-herramientas/</link><pubDate>Sat, 16 Apr 2016 17:04:52 +0000</pubDate><guid>https://linuxmanr4.com/2016/04/16/draftsight-sin-menus-sin-barras-herramientas/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/04/draftsight-sin-men%C3%BAs.png" alt="Featured image of post Draftsight sin menús y sin barras de herramientas" />&lt;p>Después de la última actualización completa de mi instalación de Manjaro me encontré con un ligero problemita con Draftsight, me apareció sin menús y sin barras de herramientas tal y como pueden ver en la imagen.&lt;/p>
&lt;p>Anteriormente tenía un problema de desempeño, el ratón se arrastraba sobre la pantalla del programa, al parecer era un problema con la configuración de la tarjeta de video nVidia pero todo parece indicar que eso quedó en el pasado.&lt;/p>
&lt;p>Me gusta &lt;a class="link" href="https://www.3ds.com/products-services/draftsight-cad-software/" target="_blank" rel="noopener"
>Draftsight&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 porque es una buena alternativa a Autocad, tiene un buen desempeño en linux y abre hasta los formatos más actuales. Luego es un problema intentar abrir los archivos de autocad 2020 cuando tu te quedaste en la versión de estudiante, por citar tan sólo un ejemplo.&lt;/p>
&lt;h2 id="la-solución-en-los-foros">La solución en los foros
&lt;/h2>&lt;p>Encontré la solución que me funcionó en los mismos foros del programa &lt;a class="link" href="https://web.archive.org/web/20211022001437/https://forum.solidworks.com/message/226489" target="_blank" rel="noopener"
>Draftsight toolbar problem&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 con la diferencia de que la ofrecen para el programa en su versión de Windows.&lt;/p>
&lt;p>Así que solo tuve que deducir una solución similar para Linux. Busqué un directorio de configuración del programa en mi directorio &lt;em>home&lt;/em> y encontré dos carpetas en el directorio &lt;strong>.config&lt;/strong> &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2016/04/directorios-draftsight.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/04/directorios-draftsight.png"
loading="lazy"
alt="directorios draftsight"
>&lt;/a>
&lt;/p>
&lt;p>Para revisar que fuera seguro eliminarlas les cambié el nombre.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2016/04/cambiando-el-nombre-de-las-carpetas-de-draftsight.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/04/cambiando-el-nombre-de-las-carpetas-de-draftsight.png"
loading="lazy"
alt="cambiando el nombre de las carpetas de draftsight"
>&lt;/a>
&lt;/p>
&lt;p>Cuando inicié nuevamente el programa ¡Tadaaaaaan! todos los menús y barras de herramientas estaban ahí.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/04/draftsight-con-todos-sus-men%C3%BAs.png"
alt="draftsight con todos sus menús" width="1197">&lt;figcaption>
&lt;p>draftsight con todos sus menús&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Así que pude eliminar las carpetas &lt;em>old&lt;/em> sin mayores problemas.&lt;/p>
&lt;p>&lt;strong>Draftsight&lt;/strong> está disponible en &lt;strong>AUR&lt;/strong> &lt;em>(Arch User Repository)&lt;/em>, para instalarlo en Manjaro solo hace falta recurrir al programa &lt;a class="link" href="https://wiki.manjaro.org/index.php/Arch_User_Repository" target="_blank" rel="noopener"
>yaourt&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que se encarga de la descarga del programa y la instalación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/04/draftsight-disponible-en-AUR.png"
alt="draftsight esta disponible en AUR." width="943">&lt;figcaption>
&lt;p>draftsight esta disponible en AUR.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se que &lt;strong>Draftsight&lt;/strong> no es libre, pero es gratuito y se ejecuta razonablemente bien en Linux. Si no están buscando todas esas funciones &amp;ldquo;sofisticadas&amp;rdquo; puede ser una buena opción para aprender algo de dibujo técnico sin tener que pagar una licencia de Autocad.&lt;/p></description></item><item><title>Fallo de envío al intentar mandar mensajes SMS</title><link>https://linuxmanr4.com/2016/03/30/fallo-de-envio-al-intentar-mandar-sms/</link><pubDate>Wed, 30 Mar 2016 15:10:45 +0000</pubDate><guid>https://linuxmanr4.com/2016/03/30/fallo-de-envio-al-intentar-mandar-sms/</guid><description>&lt;p>Hoy me trajeron un teléfono de esos de gama super baja, de esos que salen en el Maizoro, de los que compras en una gasolinera para emergencias y que para mala fortuna no puede mandar mensajes SMS, cada vez que intentaba mandar un mensaje aparecía la leyenda &lt;strong>&amp;ldquo;Fallo de envío&amp;rdquo;&lt;/strong> y ya no hacía más.&lt;/p>
&lt;h2 id="xyn-305">XYN 305
&lt;/h2>&lt;p>El teléfono en cuestión es de la marca &lt;a class="link" href="http://www.nyxmobile.com/" target="_blank" rel="noopener"
>nyx mobile&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
modelo &lt;strong>xyn 305&lt;/strong> distribuido por &lt;strong>Telcel&lt;/strong>. Un teléfono super básico que solo sirve para hacer y recibir llamadas, recibir mensajes de texto (porque si los recibe) pero no para mandar mensajes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/xyn305.png"
alt="Teléfono xyn 305">&lt;figcaption>
&lt;p>Teléfono xyn 305&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Cuando lo estaba revisando me quedé asombrado porque decía que tenía una cámara de 13 megapíxeles, pero no, revisándolo más a fondo se puede notar un minúsculo puntito.&lt;/p>
&lt;p>Realmente no hay mucho que moverle a este teléfono, el menú de configuración es muy básico, así que no me quedó de otra que marcar el &lt;strong>*264&lt;/strong> para pedir ayuda (y que no me mandaran al Centro de Atención a clientes).&lt;/p>
&lt;p>En la primer llamada me dejaron colgado, digo, para variar. No se escuchaba ruido alguno, pero la llamada seguía activa, como me dejaron así por varios minutos mejor finalicé la llamada.&lt;/p>
&lt;p>En el segundo intento la señorita muy amablemente me dijo iban a hacer unos ajustes al sistema, que reiniciara el teléfono y si seguía teniendo problemas volviera a llamar.&lt;/p>
&lt;p>Como se podrán imaginar mis estimados 4 lectores, seguía sin poder mandar mensajes así que a la tercera va la vencida. Esta vez me atendió un joven que sí entendió mi problema y me hizo las preguntas correctas, después de una breve espera me dijo que hiciera esto:&lt;/p>
&lt;ul>
&lt;li>Ir al menú&lt;/li>
&lt;li>Mensajes&lt;/li>
&lt;li>Opciones&lt;/li>
&lt;li>Ajustes SMS&lt;/li>
&lt;li>Centro de mensajes&lt;/li>
&lt;li>En ese lugar del menú, eliminar el valor que tenía y en su lugar escribiera este:  &lt;strong>+5294100001410&lt;/strong>(incluyendo el signo de más + ).&lt;/li>
&lt;/ul>
&lt;p>Que apagara 2 minutos y que hiciera el intento de mandar un mensaje y esta vez sí funcionó. ¡Yeeeeeeeeeei!&lt;/p>
&lt;p>Me preocupa el hecho que Telcel venda un teléfono mal configurado para algo tan básico como mandar mensajes, sobre todo en un teléfono que no tiene más opciones solo las de hacer llamadas y mandar mensajes.&lt;/p>
&lt;p>Si se topan con este problema ahora ya saben como arreglarlo, porque en una de esas no se topan con el que &lt;em>&amp;ldquo;si sabe&amp;rdquo;&lt;/em> y los tengan a la llame y llame o peor aún, a la vuelta y vuelta.&lt;/p></description></item><item><title>Como incluir fórmulas matemáticas en Inkscape</title><link>https://linuxmanr4.com/2016/03/21/como-incluir-formulas-matematicas-en-inkscape/</link><pubDate>Mon, 21 Mar 2016 18:07:18 +0000</pubDate><guid>https://linuxmanr4.com/2016/03/21/como-incluir-formulas-matematicas-en-inkscape/</guid><description>&lt;p>Estaba leyendo sobre el premio que le van a entregar a &lt;a class="link" href="http://www.microsiervos.com/archivo/ciencia/andrew-wiles-premio-abel-2016.html" target="_blank" rel="noopener"
>Andrew Wiles&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
por haber resuelto el &lt;a class="link" href="https://es.wikipedia.org/wiki/%C3%9Altimo_teorema_de_Fermat" target="_blank" rel="noopener"
>último teorema de Fermat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y quise hacer una imagen para celebrar el evento, pero me topé con un pequeño problema&amp;hellip; ¿Cómo incluir fórmulas matemáticas en Inkscape?.&lt;/p>
&lt;p>Supongo que en su momento pude haber hecho los exponentes por separado, hacerlos más pequeños y colocarlos individualmente para aparentar que la fórmula estaba bien escrita, total, solo son 3 exponentes, pero en otras situaciones sería algo muy complicado de realizar.&lt;/p>
&lt;h2 id="textext">TexText
&lt;/h2>&lt;p>Afortunadamente existe una extensión para inkscape que se llama &lt;a class="link" href="https://textext.github.io/textext/" target="_blank" rel="noopener"
>TexText&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que permite generar fórmulas matemáticas usando &lt;a class="link" href="https://linuxmanr4.com/2015/11/24/aprendiendo-a-generar-documentos-con-latex/" >LaTeX&lt;/a>
 y lo mejor es que de ser necesario permite editar las fórmulas posteriormente.&lt;/p>
&lt;p>En Manjaro esta disponible el paquete en AUR, así que para instalar esta extensión solo hay que teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S textext
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al iniciar Inkscape verán una nueva opción en el menú &lt;em>Extensiones - Tex Text.&lt;/em>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/Men%C3%BA-Tex-Text.png"
alt="Menú Tex Text">&lt;figcaption>
&lt;p>Menú Tex Text&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el cuadro de diálogo es donde pondremos nuestra fórmula, se que es complicado si no estás familiarizado con la notación de LaTeX, pero mientras aprendes puedes usar un editor en línea como &lt;a class="link" href="http://www.hostmath.com/" target="_blank" rel="noopener"
>HostMath&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 o el &lt;a class="link" href="https://www.codecogs.com/latex/eqneditor.php" target="_blank" rel="noopener"
>Online LaTex Equation Editor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que ayudan a construir fácilmente las ecuaciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/Editor-en-l%C3%ADnea-de-ecuaciones.png"
alt="Editor en línea de ecuaciones">&lt;figcaption>
&lt;p>Editor en línea de ecuaciones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez que tienes el código en LaTeX, solo lo tienes que pegar en la extensión de Inkscape para generar la ecuación correspondiente en formato SVG que es totalmente editable.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="sb">\[&lt;/span>&lt;span class="nb">x^{n}&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">y^{n}&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb">z^{n}&lt;/span>&lt;span class="s">\]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/Editando-la-ecuaci%C3%B3n.png"
alt="Editando la ecuación">&lt;figcaption>
&lt;p>Editando la ecuación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez que se obtiene la ecuación en la pantalla de Inkscape, se puede hacer lo que guste y mande, cambiar tamaños, colores, incluirlo en donde usted quiera.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/ultimo-teorema-de-fermat.png"
alt="Editando la ecuación">&lt;figcaption>
&lt;p>Editando la ecuación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora ya saben cómo incluir ecuaciones matemáticas en inkscape, nunca se sabe cuando se pueda necesitar.&lt;/p></description></item><item><title>Pacman con Aria2 para descargar los paquetes de Manjaro</title><link>https://linuxmanr4.com/2016/03/14/pacman-aria2-paquetes-manjaro/</link><pubDate>Mon, 14 Mar 2016 15:56:26 +0000</pubDate><guid>https://linuxmanr4.com/2016/03/14/pacman-aria2-paquetes-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/pacman-con-aria2.png" alt="Featured image of post Pacman con Aria2 para descargar los paquetes de Manjaro" />&lt;p>Se conjuntaron dos cosas, el problema de wget para resolver los dominios (léase: &lt;a class="link" href="https://linuxmanr4.com/2016/03/09/wget-se-pudo-resolver-la-direccion-del-equipo/" >wget no se pudo resolver la dirección del equipo&lt;/a>
 ) y que últimamente he utilizado mucho el programa Aria2 para descargar &lt;em>firmwares&lt;/em> de varios equipos (léase: &lt;a class="link" href="https://linuxmanr4.com/2014/07/23/como-descargar-el-firmware-de-apple-con-aria2/" >Como descargar el firmware de Apple con Aria2&lt;/a>
) que me he encariñado mucho con este programa y quise averiguar si existía alguna forma de hacer de &lt;a class="link" href="https://aria2.github.io/" target="_blank" rel="noopener"
>Aria2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 mi manejador de descargas de paquetes de Manjaro.&lt;/p>
&lt;h2 id="haciendo-los-cambios">Haciendo los cambios.
&lt;/h2>&lt;p>Encontré algo de información en el wiki de Arch Linux &lt;a class="link" href="https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#aria2" target="_blank" rel="noopener"
>Pacman/Tips and tricks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 algo de información al respecto.&lt;/p>
&lt;p>Antes que nada, si no tienen &lt;strong>Aria2&lt;/strong> instalado, lo pueden hacer con la instrucción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S aria2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Las modificaciones al sistema no son nada del otro mundo, para hacer el cambio se edita el archivo &lt;em>/etc/pacman.conf&lt;/em> y en la sección &lt;em>Options&lt;/em> se agrega una línea como esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">XferCommand&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">aria2c&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">allow&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">overwrite&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="bp">true&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="k">continue&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="bp">true&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">file&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">allocation&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">none&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">log&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">level&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">error&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">tries&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">connection&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">per&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">file&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="ow">not&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">found&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">min&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">split&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="n">M&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">overall&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">download&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">limit&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="n">K&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">no&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">conf&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">remote&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">time&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="bp">true&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">summary&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">interval&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">60&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">timeout&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">dir&lt;/span>&lt;span class="o">=/&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">out&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="n">o&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="n">u&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/pacman.conf-con-aria2.jpg"
alt="pacman.conf con aria2" width="1106">&lt;figcaption>
&lt;p>pacman.conf con aria2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Agregué de mi cosecha el modificador&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">overall&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">download&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">limit&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="n">K&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para que la velocidad total de la descarga no supere los 100 Kbps y con ello evitar que la actualización de &lt;a class="link" href="https://manjaro.github.io/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ocupe todo el ancho de banda disponible.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/aria2-funcionando-como-manejador-de-descargas-de-pacman.jpg"
alt="aria2 funcionando como manejador de descargas de pacman" width="717">&lt;figcaption>
&lt;p>aria2 funcionando como manejador de descargas de pacman&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Los motivos para hacer este cambio son los mismos que cuando hice el cambio a &lt;em>wget&lt;/em>, las descargas son más confiables a pesar de tener una conexión inestable, si ocurre algún problema, &lt;strong>Aria2&lt;/strong> se encarga de manejarlo reintentando la descarga desde el lugar donde se quedó y no desde el principio.&lt;/p>
&lt;p>Ya he actualizado un par de veces el sistema usando &lt;strong>Aria2&lt;/strong> y la actualización se ha completado sin ningún problema.&lt;/p>
&lt;p>Si ustedes gustan intentar este tip no dejen de comentarme como les va con este manejador de descargas.&lt;/p></description></item><item><title>wget no se pudo resolver la dirección del equipo</title><link>https://linuxmanr4.com/2016/03/09/wget-se-pudo-resolver-la-direccion-del-equipo/</link><pubDate>Wed, 09 Mar 2016 21:53:18 +0000</pubDate><guid>https://linuxmanr4.com/2016/03/09/wget-se-pudo-resolver-la-direccion-del-equipo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/wget-problema-con-el-dns.jpg" alt="Featured image of post wget no se pudo resolver la dirección del equipo" />&lt;p>Ayer como tarea rutinaria intentaba actualizar mi distribución de Manjaro cuando me di cuenta de varios mensajes de error extraños.&lt;/p>
&lt;p>Después de moverle un rato a la terminal deduje que el problema era &lt;strong>wget&lt;/strong> que por alguna extraña razón no lograba resolver adecuadamente las direcciones de los dominios. Continuamente recibía mensajes de error similares a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">wget: no se pudo resolver la dirección del equipo &amp;#34;dominio.com&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El problema era serio ya que no podía resolver ningún dominio, por lo tanto no podía descargar los archivos de actualización de Manjaro o instalar cualquier paquete.&lt;/p>
&lt;h2 id="buscando-una-solución">Buscando una solución.
&lt;/h2>&lt;p>La situación se puso más extraña ya que tengo instalado un caché de DNS local (véase: &lt;a class="link" href="https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/" >dnsmasq como servidor local de DNS&lt;/a>
) que estaba funcionando perfectamente y ningún otro programa tenía problemas para resolver los dominios de internet.&lt;/p>
&lt;p>Revisando en internet me encontré una sugerencia en la que decían que el problema podría estar en el archivo &lt;a class="link" href="http://man7.org/linux/man-pages/man5/nsswitch.conf.5.html" target="_blank" rel="noopener"
>nsswitch.conf&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un archivo para determinar el origen (y el orden) para obtener información de las bases de datos de la red.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2016/03/error-wget-fallo-en-el-dns.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/error-wget-fallo-en-el-dns.png"
loading="lazy"
alt="error wget fallo en el dns"
>&lt;/a>
&lt;/p>
&lt;p>Esta línea es la que causaba todo el problema con wget.&lt;/p>
&lt;p>Casi por intuición me fije en la línea &lt;strong>hosts&lt;/strong> y cambié el orden del cual obtener información, coloque &lt;strong>dns&lt;/strong> adelante de &lt;strong>wins&lt;/strong> y parece que eso resolvio todo el problema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/problema-con-el-dns-y-wget-solucionado.png"
alt="problema con el dns y wget solucionado" width="1095">&lt;figcaption>
&lt;p>problema con el dns y wget solucionado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Parece increíble que algo tan sencillo pueda causar tantos problemas, bueno solamente con &lt;strong>wget&lt;/strong>(aparentemente), tampoco se porque dejó de funcionar, es uno de esos detallitos que se tienen al elegir una distribución de linux &lt;em>rolling release&lt;/em> (aunque sea la rama estable).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/pacman-con-wget-vuelve-a-funcionar.png"
alt="pacman con wget vuelve a funcionar" width="1095">&lt;figcaption>
&lt;p>pacman con wget vuelve a funcionar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No estaba dispuesto a renunciar a las ventajas que me da &lt;strong>wget&lt;/strong> sin dar algo de pelea, afortunadamente la solución no fue difícil de encontrar.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Sonidos divertidos con MIT App Inventor</title><link>https://linuxmanr4.com/2016/03/01/sonidos-divertidos-con-mit-app-inventor/</link><pubDate>Tue, 01 Mar 2016 21:18:33 +0000</pubDate><guid>https://linuxmanr4.com/2016/03/01/sonidos-divertidos-con-mit-app-inventor/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/sonidos-divertidos-mit-app-inventor.jpg" alt="Featured image of post Sonidos divertidos con MIT App Inventor" />&lt;p>Hace tiempo que tenía ganas de hacer algo con &lt;a class="link" href="http://appinventor.mit.edu/explore/index-2.html" target="_blank" rel="noopener"
>MIT App Inventor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, quería que fuera algo sencillo, solo para probar el desarrollo de aplicaciones para android con esta divertida plataforma de desarrollo, el resultado fue la App &lt;strong>Sonidos Divertidos&lt;/strong>.&lt;/p>
&lt;h2 id="descripción-de-la-aplicación">Descripción de la aplicación.
&lt;/h2>&lt;p>En una reunión alguien empezó a contar una historia muy triste y para quitarle impacto busque un video en youtube de violines tristes para musicalizar el relato, claro que el resultado fue una sonora carcajada de los asistentes y una mirada de desaprobación del narrador, pero no importa, el daño ya estaba hecho :).&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/nunca-brillaras-en-sociedad.jpg"
loading="lazy"
alt="nunca brillaras en sociedad"
>&lt;/p>
&lt;p>Pero abrir videos de youtube no es algo práctico, necesitas internet y para cuando lo abres ya pasó &amp;ldquo;el momento&amp;rdquo; gracioso.&lt;/p>
&lt;h2 id="mit-app-inventor">MIT App Inventor
&lt;/h2>&lt;p>El MIT App Inventor quizás no es el mejor ambiente de desarrollo, pero es muy sencillo, se diseña una pantalla, se agregan controles, para luego pasar a los bloques, que básicamente son eventos y sus acciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/MIT-App-Inventor-Designer.jpg"
alt="MIT App Inventor Designer" width="1412">&lt;figcaption>
&lt;p>MIT App Inventor Designer&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero lo que más me gustó fue la posibilidad de sincronizar mi aplicación con mi teléfono y de esa forma probarla en un dispositivo real casi casi de inmediato.&lt;/p>
&lt;p>La aplicación que diseñe es en extremo sencilla, cuatro botones (pienso agregar unos cuantos más) con una imagen que al presionar reproduce un sonido y al dejarlo de presionar lo detiene.&lt;/p>
&lt;p>Un grillito para los silencios incómodos, un remate de chistes con batería, latigazo para el compañero al que le habla su mujer reclamándole que llegue a casa y una melodía triste para cuando se ponen &lt;em>melalcóholicos(sic).&lt;/em>&lt;/p>
&lt;p>Me tomó más tiempo preparar las imágenes (PNG de 100 x 100 px) y convertir los sonidos en formato &lt;a class="link" href="https://es.wikipedia.org/wiki/Ogg" target="_blank" rel="noopener"
>Ogg&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 (sólo por mantener el espiritú libre) que desarrollar la aplicación. Una vez que haces los bloques de un botón, los demás se vuelven repetitivos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/03/MIT-App-Inventor-Blocks.jpg"
alt="MIT App Inventor Blocks" width="1412">&lt;figcaption>
&lt;p>MIT App Inventor Blocks&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="herramienta-para-el-aprendizaje-de-programación">Herramienta para el aprendizaje de programación
&lt;/h2>&lt;p>Pero creo que en donde verdaderamente explota el &lt;strong>MIT App Inventor&lt;/strong> es en el terreno educativo, enseñar programación puede ser realmente inspirador con este entorno de desarrollo.&lt;/p>
&lt;p>Imaginen un niño o un joven que de golpe y porrazo puede ejecutar la aplicación que está desarrollando en ese momento en su teléfono celular, mostrarsela a sus padres, modificarla con sus compañeros, aportar nuevas opciones, el cielo es el límite. Adiós a la enseñanza de lenguajes estructurados lo de hoy son objetos y eventos.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Vdo8UdkgDD8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Si quieren empezar a hacer sus propios proyectos este es un buen lugar para comenzar &lt;a class="link" href="http://appinventor.mit.edu/explore/get-started.html" target="_blank" rel="noopener"
>Getting Started with MIT App Inventor 2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, si quieren instalar la aplicación &lt;a class="link" href="https://www.dropbox.com/s/egtbevmeaqo6p5b/SonidosDivertidos.apk?dl=0" target="_blank" rel="noopener"
>Sonidos Divertidos pueden descargar el apk de instalación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(md5sum: 8eded7955dc1e3f1a4979a9129131e67) o también pueden hacer sus propias modificaciones abriendo la aplicación &lt;a class="link" href="http://ai2.appinventor.mit.edu/?galleryId=5374553894682624" target="_blank" rel="noopener"
>Sonidos Divertidos versión 1.1&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
desde la galería de App Inventor.&lt;/p>
&lt;p>Tengo pensado agregarle el sonido de aplausos y una bulla &amp;hellip; ¿Ustedes que agregarían? :)&lt;/p></description></item><item><title>Como descargar el programa DIOT</title><link>https://linuxmanr4.com/2016/02/22/descargar-el-programa-diot-2014/</link><pubDate>Mon, 22 Feb 2016 20:39:00 +0000</pubDate><guid>https://linuxmanr4.com/2016/02/22/descargar-el-programa-diot-2014/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/Como-descargar-el-programa-DIOT.jpg" alt="Featured image of post Como descargar el programa DIOT" />&lt;p>Uno de mis usuario me solicitó que le ayudara a descargar el programa DIOT (Declaración Informativa para Operaciones con Terceros) que parece su versión más reciente es la 2014.&lt;/p>
&lt;p>Al principio me extrañó que pidieran mi ayuda pero al intentar descargarlo me di cuenta de la razón por la que estaban teniendo tantos problemas.&lt;/p>
&lt;h2 id="el-sitio-ftp-ya-no-funciona">El sitio FTP ya no funciona
&lt;/h2>&lt;p>&lt;em>El sitio FTP ya no funciona. Al final del artículo verá una actualización para obtener un enlace de descarga más actualizado.&lt;/em>&lt;/p>
&lt;p>Vámonos por partes, el sitio original para la descarga es una página del &lt;a class="link" href="https://linuxmanr4.com/2022/04/21/obtener-la-constancia-de-situacion-fiscal-usando-la-aplicacion-sat-id/" >SAT&lt;/a>
&lt;a class="link" href="https://web.archive.org/web/20180613035646/http://www.sat.gob.mx:80/informacion_fiscal/software/Paginas/diot.aspx" target="_blank" rel="noopener"
>Declaración Informativa de Operaciones con Terceros (DIOT) A-29&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y el enlace de descarga hace referencia a un vetusto servidor &lt;a class="link" href="https://es.wikipedia.org/wiki/File_Transfer_Protocol" target="_blank" rel="noopener"
>FTP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/Enlace-de-descarga-del-DIOT-2014.png"
alt="Página del SAT oficial para descargar el programa DIOT">&lt;figcaption>
&lt;p>Página del SAT oficial para descargar el programa DIOT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No se que le pasa a este servidor FTP (parece que es un Windows) que corta la conexión en algún punto de la descarga, a veces al principio, otras a la mitad, total que no conseguía descargar completo el programa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/escaneo-del-servidor-ftp.jpg"
alt="Resultado del escaneo al servidor del SAT.">&lt;figcaption>
&lt;p>Resultado del escaneo al servidor del SAT.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Primero intenté con el navegador, después de varios intentos no pudo, luego probé usando &lt;strong>wget&lt;/strong> y tampoco, una vez más ahora usando el programa &lt;strong>&lt;a class="link" href="https://aria2.github.io/" target="_blank" rel="noopener"
>aria2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> y después de varios reintentos por fin logre descargar los 16 MB del archivo completo y sin errores &lt;strong>.&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">aria2c -x3 -k1M &amp;#34;ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/programas/diot14/DIOT_2014.exe&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para evitar futuras complicaciones guardé una copia del archivo y les comparto el enlace de descarga.&lt;/p>
&lt;p>El programa &lt;strong>DIOT&lt;/strong> es totalmente rupestre, es un programa realizado en el tantas veces odiado y parchado &lt;a class="link" href="https://www.java.com/es/download/" target="_blank" rel="noopener"
>JAVA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, ¡Es una pesadilla!, lo malo es que muchas páginas de servicios del gobierno están codificados en este lenguaje y lo peor es que muchos ya están quedando caducos (no por nada el programa DIOT tiene el año 2014).&lt;/p>
&lt;p>Urge replantear todos los servicios de &lt;a class="link" href="https://linuxmanr4.com/2013/03/20/uso-de-software-libre-en-el-gobierno-mexicano/" >gobierno a código abierto con software libre&lt;/a>
, una comisión que se encargue de establecer los estándares para que todos los servicios sean uniformes y consistentes y que se actualicen periódicamente. Se que es mucho pedir y mientras se da el cambio no nos queda más que batallar.&lt;/p>
&lt;h2 id="actualización-marzo-2023">Actualización (marzo 2023)
&lt;/h2>&lt;p>Claro que el tiempo pasa y ya existe una una actualización al programa DIOT. La última vez que revisé en este &lt;strong>2023&lt;/strong> (marzo) la versión más reciente es la que dice &lt;strong>2019&lt;/strong>.&lt;/p>
&lt;p>Visualmente son muy similares así que supongo que solo es una renovación menor. Está disponible en la página &lt;strong>Presenta tu declaración informativa de operaciones con terceros (DIOT)&lt;/strong>.&lt;/p>
&lt;p>El enlace esta un poco escondido, esta en el lado derecho de la pantalla en la sección &lt;strong>Contenidos Relacionados&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/04/descargar-diot-2019.png">
&lt;/figure>
&lt;h2 id="actualización-febrero-2025">Actualización Febrero 2025
&lt;/h2>&lt;p>¡Ojitoooo! Desde el 3 de febrero, el SAT estrena una plataforma nueva para los que tienen que reportar la DIOT (esa declaración donde avisas cómo manejaste el IVA con tus proveedores). Esto aplica tanto a personas como a empresas, y básicamente ahí vas a detallar si pagaste, retuviste, acreditaste o pasaste el IVA en tus transacciones con ellos ¡No se les escapa nada!, este es el comunicado &lt;a class="link" href="https://www.gob.mx/sat/prensa/sat-lanza-nuevas-plataformas-para-presentacion-de-diot-y-pagos-provisionales-o-definitivos-06-2025?idiom=es" target="_blank" rel="noopener"
>SAT lanza nuevas plataformas para presentación de DIOT y pagos provisionales o definitivos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Así que si no disponen otra cosa, creo que podemos dejar por terminado el tema del programa DIOT escrito en Java y a ver con que nos sorprenden los amigos del SAT.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Como sustituir los botones del mouse que no funcionan</title><link>https://linuxmanr4.com/2016/02/08/sustituir-los-botones-mouse/</link><pubDate>Mon, 08 Feb 2016 17:52:19 +0000</pubDate><guid>https://linuxmanr4.com/2016/02/08/sustituir-los-botones-mouse/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/herramientas-sobre-la-mesa.jpg" alt="Featured image of post Como sustituir los botones del mouse que no funcionan" />&lt;p>Más o menos esta es la situación: Estás trabajando tranquilamente en tu computadora y de buenas a primeras te das cuenta de que a pesar de hacer clic en algún lugar de la pantalla no funciona y lo tienes que repetir. Al principio solo es una falla ocasional, luego es cada vez más y más frecuente, el doble clic se convierte en triple, cuadruple o quintuple, tu semblante empieza a tornarse iracundo y al final te encuentras apoyando todo tu peso en el botón del mouse para que este reaccione. A estas alturas tu querido ratón se vuelve un accesorio inútil y  por más que lo intentes resucitar entró en línea mortal y amerita una misa cantada.&lt;/p>
&lt;p>Casi siempre el botón que falla es el botón izquierdo del mouse ya que es el botón al que se le exige un mayor trabajo, simplemente con hacer clic y doble clic es fácil acumulan mucho trabajo. &lt;a class="link" href="https://linuxmanr4.com/2016/11/15/como-arreglar-el-boton-del-mouse/" >A veces se pueden arreglar&lt;/a>
, pero si esto último no funciona es relativamente sencillo y no se requiere de mucha experiencia solo un poco de cuidado y si no se arregla, de todos modos ibas a comprar otro.&lt;/p>
&lt;h2 id="los-materiales">Los materiales.
&lt;/h2>&lt;p>Para reemplazar el botón del mouse vas a necesitar:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/cautin-y-extractor-listos.jpg"
alt="Cautín y Desoldador \| sustituir los botones del mouse ">&lt;figcaption>
&lt;p>Cautín y Desoldador | sustituir los botones del mouse&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>Cautín&lt;/li>
&lt;li>Soldadura&lt;/li>
&lt;li>Pasta para soldar&lt;/li>
&lt;li>Un &lt;a class="link" href="https://www.steren.com.mx/desoldador-de-succion-chico.html" target="_blank" rel="noopener"
>desoldador&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Un botón nuevo (o de medio uso), en realidad se trata de un micro switch.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/dimensiones-del-microswitch.jpg"
alt="Dimensiones del microswitch \| sustituir los botones del mouse ">&lt;figcaption>
&lt;p>Dimensiones del microswitch | sustituir los botones del mouse&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Un buen consejo&lt;/strong>: Si no estás familiarizado con los componentes de tu ratón, lo mejor es tomarle una fotografía antes de comenzar a quitarle las piezas, así si tienes dudas de cómo estaban colocadas las podrás consultar más tarde.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/detalle-de-la-tableta-de-circuitos.jpg"
alt="Detalle de la tableta de circuitos">&lt;figcaption>
&lt;p>Detalle de la tableta de circuitos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El cautín, soldadura, la pasta para soldar y el extractor los puedes conseguir en cualquier tienda de electrónica y te pueden servir para reparar otras cosas. Siempre es bueno invertir en herramientas que ayuden a reparar cosas antes de tirarlas a la basura.&lt;/p>
&lt;p>El botón también lo puedes conseguir en una tienda de electrónica, solo asegurate que sea del mismo tipo y las mismas dimensiones o se lo puedes quitar a otro mouse que ya no funcione. Si tienes tienes tanto tiempo como yo en esto seguramente tienes uno que dejaste de usar por las mismas razones. Un mouse generalmente tiene 3 botones, izquierdo, derecho y el de la ruedita, así que puedes recuperar esas piezas sin mayor problema.&lt;/p>
&lt;h2 id="quitar-el-botón-dañado">Quitar el botón dañado.
&lt;/h2>&lt;p>Quitar el botón dañado es sencillo, tendrás que retirar la soldadura de 3 puntos, asegurate de identificarlos bien, con cuidado se calienta cada punto y presione el botón del extractor encima del punto cuando la soldadura aún está líquida.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/02/La-soldadura-ya-fue-removida-de-la-placa-de-circuitos.jpg"
alt="Los puntos ya sin soldadura.">&lt;figcaption>
&lt;p>Los puntos ya sin soldadura.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este video les puede ayudar con la técnica.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/JkbtpOLcJ58"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="soldar-el-botón-nuevo">Soldar el botón nuevo.
&lt;/h2>&lt;p>Ahora solo falta poner el botón nuevo, &lt;a class="link" href="https://linuxmanr4.com/2016/05/30/mi-celular-no-carga/" >antes de colocar la soldadura revisen&lt;/a>
bien la posición del botón porque estos micro switches tienen dos posiciones NO (Normalmente Abierto) y NC (Normalmente Cerrado), pero si tienen dudas solo consulten las fotografías que tomaron antes de quitarlo.&lt;/p>
&lt;p>Si tienen problemas para soldar, la práctica hace al maestro :) practiquen un poco antes de comenzar.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/tkfvpgrXNU0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Si todo sale bien, tendrás un mouse que va a funcionar nuevamente por largo tiempo.&lt;/p></description></item><item><title>Mapa mental: Cómo hacer preguntas de manera inteligente</title><link>https://linuxmanr4.com/2016/01/28/mapa-mental-como-hacer-preguntas-de-manera-inteligente/</link><pubDate>Thu, 28 Jan 2016 22:02:14 +0000</pubDate><guid>https://linuxmanr4.com/2016/01/28/mapa-mental-como-hacer-preguntas-de-manera-inteligente/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/mapa-mental-imagen-destacada.png" alt="Featured image of post Mapa mental: Cómo hacer preguntas de manera inteligente" />&lt;p>Tenía la inquietud de hacer un &lt;a class="link" href="https://es.wikipedia.org/wiki/Mapa_mental" target="_blank" rel="noopener"
>mapa mental&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 , al parecer esta herramienta se está empezando a utilizar en la educación para facilitar la comprensión de temas complejos. Para elaborar el mapa mental instalé dos programas que son referentes para esta tarea, &lt;a class="link" href="https://www.xmind.net/" target="_blank" rel="noopener"
>Xmind&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="http://freemind.sourceforge.net/wiki/index.php/Main_Page" target="_blank" rel="noopener"
>Freemind&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero al final el ganador fue otro.&lt;/p>
&lt;p>Como tema para el mapa mental elegí el texto clásico de &lt;a class="link" href="https://es.wikipedia.org/wiki/Eric_S._Raymond" target="_blank" rel="noopener"
>Eric S. Raymond&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
: Como hacer preguntas de manera inteligente ( &lt;a class="link" href="http://www.catb.org/~esr/faqs/smart-questions.html" target="_blank" rel="noopener"
>How To Ask Questions The Smart Way&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
), una guía que todo recién llegado al software libre debe de leer cuando tiene dudas y pretende resolverlas pidiendo ayuda a la comunidad.&lt;/p>
&lt;h2 id="xmind">Xmind
&lt;/h2>&lt;p>Xmind fue mi primer opción, es ampliamente utilizado y parece que tiene una buena base de seguidores, no voy a adentrar mucho en este programa porque mi paso por él fue fugaz, no me gustó que algunas opciones fueran de pago así que casi de inmediato fui con su competidor.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/Mi-primer-mapa-mental-con-xmind.jpg"
alt="Mi primer mapa mental con xmind">&lt;figcaption>
&lt;p>Mi primer mapa mental con xmind&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="freemind-o-this-is-sparta">Freemind o ¡This is Sparta!
&lt;/h2>&lt;p>Freemind tiene buenas opciones, la elaboración de un mapa mental es rápida, pero el resultado es espartano ¡Auuuuuu auuuu auuuuu!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/C%C3%B3mo-hacer-preguntas-de-manera-inteligente-ahora-con-Freemind.jpg"
alt="Cómo hacer preguntas de manera inteligente ahora con Freemind">&lt;figcaption>
&lt;p>Cómo hacer preguntas de manera inteligente ahora con Freemind&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que estaba buscando era algo que fuera fácil de usar y que tuviera una agradable presentación y lo conseguí pero con una aplicación en la web.&lt;/p>
&lt;h2 id="el-ganador-fue-coggle">El ganador fue Coggle
&lt;/h2>&lt;p>&lt;a class="link" href="http://coggle.it" target="_blank" rel="noopener"
>Coggle&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 es una aplicación web que genera mapas mentales de manera sencilla y agradables a la vista. El mapa mental que aparece a continuación me tomó alrededor de media hora hacerlo y vean ustedes el resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/C%C3%B3mo-hacer-preguntas-de-manera-inteligente.png"
alt="Cómo hacer preguntas de manera inteligente">&lt;figcaption>
&lt;p>Cómo hacer preguntas de manera inteligente&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo único que pide es entrar con una cuenta de Google y tiene más opciones que son de pago, pero con la cuenta básica los resultados son bastante buenos, tal y como pueden ver en la imagen.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/YC4O4vb7IXo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Se pueden hacer mapas mentales con otras personas, tiene control de versiones y pude exportar el resultado en PDF, PNG, en un archivo de texto y en el formato de Freemind.&lt;/p>
&lt;p>He leído que los niños a los que el gobierno les regaló tabletas han tenido problemas con xmind, con Coogle no necesitan instalar nada, además que todos sus mapas mentales se guardan en la nube.&lt;/p>
&lt;p>¿Conocen otra herramienta para generar mapas mentales digna de considerar?&lt;/p></description></item><item><title>Spotify con Blockify = música sin comerciales</title><link>https://linuxmanr4.com/2016/01/21/spotify-con-blockify-musica-sin-comerciales/</link><pubDate>Thu, 21 Jan 2016 21:27:31 +0000</pubDate><guid>https://linuxmanr4.com/2016/01/21/spotify-con-blockify-musica-sin-comerciales/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/blockify-en-acci%C3%B3n.jpg" alt="Featured image of post Spotify con Blockify = música sin comerciales" />&lt;p>Hicieron una pregunta en la comunidad de &lt;a class="link" href="https://plus.google.com/u/0/communities/109795179751647817387" target="_blank" rel="noopener"
>Manjaro en Español&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
sobre como instalar &lt;a class="link" href="https://linuxmanr4.com/2011/02/21/canciones-megamente/" >Spotify&lt;/a>
y para averiguar el nombre correcto del paquete hice una consulta con &lt;strong>yaourt&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/Consulta-de-spotify-en-yaourt.jpg"
alt="Consulta de spotify en yaourt - Spotify con blockify">&lt;figcaption>
&lt;p>Consulta de spotify en yaourt - Spotify con blockify&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me di cuenta de un paquete que se llama &lt;a class="link" href="https://github.com/mikar/blockify" target="_blank" rel="noopener"
>blockify&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
  que tiene bastante popularidad y me llamó la atención, sobre todo por la descripción: &amp;quot; &lt;em>Mutes Spotify advertisements&lt;/em>.&amp;quot; y eso ya de por sí suena interesante.&lt;/p>
&lt;h2 id="cómo-funciona-blockify">Cómo funciona Blockify
&lt;/h2>&lt;p>Me parece un enfoque ridículamente sencillo, pero funciona muy bien. &lt;strong>Blockify&lt;/strong> no hace un bloqueo estrico de la publicidad, lo que hace es que le pone &lt;em>mute&lt;/em> mientras se reproduce el comercial,  así que no se escucha. Al regresar las canciones deja el volumen como estaba y todos contentos. Claro que hay una pausa, pero si no estás al pendiente ni lo notas.  Los comerciales de Spotify no me parecen tan intrusivos, lo malo es que son muy repetitivos, escuchar el mismo comercial una y otra vez llega a ser molesto.&lt;/p>
&lt;h2 id="para-instalar-blockify">Para instalar Blockify
&lt;/h2>&lt;p>Para instalarlo en [Manjaro](/category/&amp;ldquo;linux y software libre&amp;rdquo;/manjaro/) basta con llamar a la herramienta yaourt (ya que no es un paquete oficial) , en una terminal se teclea:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S blockify
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para no tener que iniciarlo manualmente planeo agregarlo a la lista de aplicaciones que se cargan al inicio de Cinnamon.&lt;/p>
&lt;h2 id="con-interfaz-gráfica">Con interfaz gráfica
&lt;/h2>&lt;p>Si ejecutan el comando &lt;em>blockify-ui&lt;/em> tendrán acceso a una simple interfaz gráfica, desde la cual se pueden hacer operaciones sencillas en spotify, además si el icono cambia a color rojo quiere decir que en ese momento se esta reproduciendo un comercial.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/controlando-spotify-desde-blockify.jpg">
&lt;/figure>
&lt;p>Anteriormente había probado otros bloqueadores de publicidad de Spotify, pero sin mucho éxito y por eso no había escrito sobre ellos (por ejemplo &lt;a class="link" href="https://github.com/SecUpwN/Spotify-AdKiller" target="_blank" rel="noopener"
>Spotify-Adkiller&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
). La mayoría utilizaba un enfoque en el que se bloqueaba el acceso a internet a los sitios que contenían la publicidad, pero supongo que funcionaba en un principio y luego dejaba de hacerlo.&lt;/p></description></item><item><title>Algo malo esta pasando con el software de Apple</title><link>https://linuxmanr4.com/2016/01/13/algo-pasa-con-el-software-de-apple/</link><pubDate>Wed, 13 Jan 2016 19:54:23 +0000</pubDate><guid>https://linuxmanr4.com/2016/01/13/algo-pasa-con-el-software-de-apple/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/abejas-comiendo-una-manzana.jpg" alt="Featured image of post Algo malo esta pasando con el software de Apple" />&lt;p>Primero quiero aclarar que de manera personal no tengo un equipo Apple, ni iPhone, ni Mac, ni siquiera un iPod, para mi gusto son equipos demasiado caros, pero si vienen a preguntarme algunas veces sobre algunos detalles de sus aparatitos y ahí es cuando me doy cuenta de que el software de Apple ya no es lo que era antes.&lt;/p>
&lt;h2 id="itunes-no-quiere-iniciar">iTunes no quiere iniciar.
&lt;/h2>&lt;p>Un ejemplo, le dediqué dos días a buscar un problema con iTunes que se negaba a iniciar, después de darle doble clic al escritorio nada, revisé en la lista de procesos y efectivamente, ahí estaba &lt;em>itunes.exe&lt;/em> para luego de unos segundos desaparecer sin tan siquiera un mensaje de error.&lt;/p>
&lt;p>Luego intenté con el &lt;strong>modo seguro&lt;/strong> que consiste en iniciar el programa y presionar repetidamente las teclas &lt;strong>Mayús&lt;/strong> y &lt;strong>Ctrl&lt;/strong> pero tampoco funcionó.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/itunes-modo-seguro.png"
alt="iTunes en modo seguro" width="743">&lt;figcaption>
&lt;p>iTunes en modo seguro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Probé desinstalando todos los programas que tuvieran la marca &lt;strong>Apple&lt;/strong> , eliminé sus carpetas de programas, reinstalé el iTunes y nada, para este punto ya estaba profundamente molesto.&lt;/p>
&lt;p>Al final instalé una versión anterior de iTunes (la versión 12.1.3) que funcionó sin problemas.&lt;/p>
&lt;h2 id="las-actualizaciones-corrigen-errores">Las actualizaciones corrigen errores.
&lt;/h2>&lt;p>Recapitulando recordé que no hace mucho le había permitido la actualización de iTunes mediante el programa &lt;em>Apple Software Update&lt;/em> y no lo había iniciado hasta hace un par de días, por eso no había relacionado el problema con la actualización.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/Apple-Software-Update.png"
alt="Apple Software Update mostrando la actualización problemática." width="637">&lt;figcaption>
&lt;p>Apple Software Update mostrando la actualización problemática.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Necesitaba el iTunes para poder restaurar un iPad, pero para colmo de males algo falló y aunque la descarga del software (se tardó 5 horas) fue exitosa, la actualización no, parece que es un problema del equipo donde se quiso realizar (tiene Windows Vista) y el nuevo iTunes exige que se instale en un equipo con Windows 7 o mayor.&lt;/p>
&lt;p>Quiere uno pensar que las actualizaciones corrigen errores, no generan más, todos estos problemas  tienen serias consecuencias en la confianza de los usuarios.&lt;/p>
&lt;h2 id="el-capitan-así-sin-acento">El Capitan (así, sin acento).
&lt;/h2>&lt;p>Mi estimado lector podrá decir que todo es culpa de Windows y probablemente tiene razón, una de las ventajas de los equipos de la manzanita es que no solo controlan el &lt;em>software&lt;/em>, también tienen control sobre las especificaciones y el diseño del &lt;em>hardware&lt;/em> y ese conocimiento hace que la experiencia final sea muy agradable&amp;hellip; o eso era antes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2016/01/comentarios-sobre-el-capitan.png"
alt="Comentarios sobre la actualización a El Capitan" width="729">&lt;figcaption>
&lt;p>Comentarios sobre la actualización a El Capitan&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La reputación del software de Apple está en esos niveles que genera desconfianza. Ultimamente esta teniendo tantos problemas y errores de seguridad que incluso he visto comentarios de personas que se niegan a actualizar a &lt;strong>El Capitan&lt;/strong> bajo la filosofía de &amp;ldquo;si funciona, no lo arregles&amp;rdquo;.&lt;/p>
&lt;p>Solo me resta decir que estas cosas no pasaban con &lt;strong>Steve Jobs&lt;/strong>&amp;hellip; como que se le empieza a extrañar.&lt;/p></description></item><item><title>Fraudes en ventas por facebook</title><link>https://linuxmanr4.com/2015/12/23/fraudes-en-ventas-facebook/</link><pubDate>Wed, 23 Dec 2015 17:23:06 +0000</pubDate><guid>https://linuxmanr4.com/2015/12/23/fraudes-en-ventas-facebook/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/fraudes-en-facebook.jpg" alt="Featured image of post Fraudes en ventas por facebook" />&lt;p>Tengo que confesar que siento feo escribir este tipo de artículos con la Navidad a la vuelta de la esquina, pero creo que es urgentemente necesario que se cuiden de hacer compras a sitios de facebook. En esta época llueven las ofertas increíbles, los &amp;ldquo;buenos negocios&amp;rdquo;, las rebajas espectaculares y algunas veces las personas no son tan cuidadosas como debieran y son víctimas de estafadores.&lt;/p>
&lt;h2 id="facebook-no-es-un-sitio-de-compras-por-internet">Facebook no es un sitio de compras por internet
&lt;/h2>&lt;p>Quiero empezar diciendo que no todo es malo, muchos de mis artículos de afeitado clásico los he conseguido por mis contactos en facebook, pero son perfiles reales, gente con la que platico frecuentemente y que tienen buena reputación en el grupo.&lt;/p>
&lt;p>Pero siendo honestos, facebook no es un sitio de compras por internet, no tienen un sistema de reclamaciones o de reputación del vendedor que se puede ver en otros sitios como &lt;strong>Mercado Libre&lt;/strong> o tienen un nombre como &lt;strong>Amazon&lt;/strong> en el URL. &lt;strong>Facebook&lt;/strong> es una red social a la que sus usuarios le han dado un sentido comercial y como sucede muchas veces las malas personas encuentran los puntos débiles del sistema y se aprovechan de la buena voluntad de las personas para defraudarlos.&lt;/p>
&lt;h2 id="caso-de-estudio-alicia-garcía-barrera">Caso de estudio: Alicia García Barrera
&lt;/h2>&lt;p>Veamos el caso de &lt;strong>Alicia García Barrera&lt;/strong>, un perfil que ofrece artículos electrónicos de alto perfil a un &amp;ldquo;super precio&amp;rdquo;. Parece un perfil normal hasta que te das cuenta de los pequeños detalles.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/perfil-en-facebook-de-Alicia-Garcia-Barrera.jpg"
alt="perfil en facebook de Alicia Garcia Barrera">&lt;figcaption>
&lt;p>perfil en facebook de Alicia Garcia Barrera&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="prometer-pero-noentregar">Prometer pero no entregar
&lt;/h3>&lt;p>Una falla en el sentido común de las personas es el mayor activo para las personas que se dedican a defraudar por internet. Si una oferta es demasiado buena para ser verdad probablemente es falsa. Muchos de los tratos se realizan por &lt;strong>inbox&lt;/strong> con un &lt;em>&amp;ldquo;servicio al cliente&amp;rdquo;&lt;/em> espectacular hasta que se realiza el pago, la historia cambia, las cosas no llegan, dejan de contestar los mensajes y es cuando el sentido común despierta y te da la señal de alerta de que algo anda mal.&lt;/p>
&lt;h3 id="no-hay-comentarios-públicos">No hay comentarios públicos
&lt;/h3>&lt;p>Lo único que se ve son algunos &lt;em>Likes&lt;/em> de algunas personas, pero no hay comentarios públicos y casi les puedo asegurar, si es que hay comentarios son todos favorables alabando el buen servicio y la calidad de la entrega. Lo malo es que todos son de paleros al más puro estilo &amp;ldquo;comelonches&amp;rdquo;, ese es el gancho que anima a hacer un trato.&lt;/p>
&lt;h3 id="un-sitio-en-internet">Un sitio en internet
&lt;/h3>&lt;p>En este caso el perfil promociona una tienda virtual que se llama &lt;strong>Electronic Advance&lt;/strong>, que tiene pinta de ser una tienda legítima pero noten las sutilezas. No tiene una dirección fisica, la información de contacto es solo un correo electrónico e incluso el mapa no muestra información de la tienda, solo es una parte de la ciudad de Tijuana.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/electronic-advance.jpg"
alt="Electronic Advance">&lt;figcaption>
&lt;p>Electronic Advance&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="imágenes-robadas">Imágenes robadas
&lt;/h3>&lt;p>Lo que me llamó mucho la atención fue que las imagenes de los artículos tenian algo en común, todos parecían ser de artículos en bodega recién desempacados y después de hacer una breve búsqueda en Google Images me di cuenta de que las fotos fueron tomadas de otros sitios.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/imagenes-tomadas-de-otros-sitios.jpg"
alt="imagenes tomadas de otros sitios">&lt;figcaption>
&lt;p>imagenes tomadas de otros sitios&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="denunciar-el-perfil">Denunciar el perfil
&lt;/h3>&lt;p>Lamentablemente denunciar el perfil no funciona, lo único que se logra es que te bloqueen y poder seguir buscando incautos. Facebook no hace ninguna investigación al respecto ni te ofrece ningún tipo de solución.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/bloqueo-de-facebook.png"
alt="bloqueo de facebook">&lt;figcaption>
&lt;p>bloqueo de facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="google-es-tu-amigo">Google es tu amigo
&lt;/h3>&lt;p>Si algo enciende las alarmas en tu cabeza y crees que algo anda mal, una búsqueda en google te puede ahorrar una amarga (y a veces costosa) decepción.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/12/Busqueda-en-Google-alicia-garcia-barrera.png"
alt="Busqueda en Google - alicia garcia barrera">&lt;figcaption>
&lt;p>Busqueda en Google - alicia garcia barrera&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen, el perfil se ha denunciado varias veces en distintos sitios advirtiendo sobre sus malas prácticas.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Como pueden deducir, en el caso de estudio, hay varios factores de alerta que hacen que se enciendan los focos rojos, lamentablemente muchas personas siguen siendo víctimas de esta clase de engaños y recuperar el dinero se vuelve una posibilidad remota.&lt;/p>
&lt;p>Pueden intentar poner una denuncia ante &lt;a class="link" href="https://www.gob.mx/profeco" target="_blank" rel="noopener"
>PROFECO&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o a la Policía Cibernética de su estado, pero puede ser un proceso largo y al final no hay garantías de que les devuelvan su dinero, aunque si existe la remota posibilidad de que atrapen a estas personas para que ya no sigan estafando a más gente.&lt;/p>
&lt;p>Bueno, creo que este será mi último artículo del año, así que no me queda más que desearles una muy Feliz Navidad y Año Nuevo. Recuerden que lo más importante es el dinero, la salud va y viene ¿o cómo era?.&lt;/p>
&lt;h2 id="actualización-2020-sacando-provecho-a-la-pandemia">Actualización 2020: Sacando provecho a la pandemia.
&lt;/h2>&lt;p>Este tipo de cosas me pone realmente triste, parece que hay personas aprovechando la necesidad de la alta demanda de productos de limpieza y desinfección para hacer su agosto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/negociando-por-messenger.jpg">
&lt;/figure>
&lt;p>El &lt;em>modus operandi&lt;/em> es el siguiente. Primero clonan una tienda válida con su imagen, logotipo e información de ubicación física para dar la apariencia de un negocio legítimo.&lt;/p>
&lt;p>Hacen los negocios por medio del &lt;em>messenger&lt;/em> y piden el depósito correspondiente. Una vez hecho el depósito, te bloquean o si alguien denuncia a la página por suplantación abren otra y vuelven a defraudar a las andadas.&lt;/p>
&lt;p>En mi investigación apareció un tal &lt;strong>Juan Antonio Parada Veliz&lt;/strong> , te da la información de la tarjeta y CLABE interbancaria, todo esto inspira algo de confianza.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/04/cuentas-juan-antonio-parada-veliz.jpg">
&lt;/figure>
&lt;p>Tal parece que es alguien que se dedica a esto, porque en otra &lt;a class="link" href="https://www.facebook.com/carlos.medrano.5/posts/2409240189176880" target="_blank" rel="noopener"
>publicación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un usuario de facebook se quejaba de un fraude con el mismo nombre y las mismas cuentas pero en esta vez era una tienda de regalos.&lt;/p>
&lt;p>La creación de este tipo de páginas clonadas requiere muy poco esfuerzo por parte del delincuente. Si algo falla, abre una cuenta nueva y listo.&lt;/p>
&lt;p>El articulo inicial lo escribí en el 2015 y tal parece que las cosas no han cambiado mucho en cinco años.&lt;/p>
&lt;p>Aquellos que estén considerando hacer una compra en facebook deben de tener en cuenta que &lt;strong>el riesgo es elevado&lt;/strong> y facebook no hará mucho por apoyarlos si hay problemas.&lt;/p>
&lt;p>Recuerde, si algo es demasiado bueno para ser verdad, probablemente no lo es.&lt;/p></description></item><item><title>Aprendiendo a generar documentos con LaTeX</title><link>https://linuxmanr4.com/2015/11/24/aprendiendo-a-generar-documentos-con-latex/</link><pubDate>Tue, 24 Nov 2015 16:38:01 +0000</pubDate><guid>https://linuxmanr4.com/2015/11/24/aprendiendo-a-generar-documentos-con-latex/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/11/Aprendiendo-a-generar-documentos-con-LaTeX.png" alt="Featured image of post Aprendiendo a generar documentos con LaTeX" />&lt;p>Tengo que confesar que jamás he tenido la necesidad de trabajar con &lt;strong>LaTeX,&lt;/strong> pero el otro día me preguntaron sobre él y no supe bien qué contestar, más o menos tenía una idea pero como nunca había generado un documento con LaTeX no sabía ni por dónde empezar así que estoy investigando sobre el tema. Seque es un sistema ampliamente utilizado sobre todo en el entorno académico pero que tiene muchas más complejidades que &lt;a class="link" href="https://linuxmanr4.com/tags/markdown/" >Markdown&lt;/a>
 con el que me he defendido bastante bien por mucho tiempo.&lt;/p>
&lt;h2 id="qué-es-latex-y-para-qué-sirve">¿Qué es LaTeX y para qué sirve?
&lt;/h2>&lt;p>Lo primero que tuve que hacer fue investigar qué es LaTeX y en que se utiliza.&lt;/p>
&lt;p>Según la Wikipedia:&lt;/p>
&lt;blockquote>
&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/LaTeX" target="_blank" rel="noopener"
>LaTeX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un sistema de composición de textos, &lt;strong>orientado a la creación de documentos escritos&lt;/strong> que presenten una alta calidad tipográfica. Por sus características y posibilidades, es usado de forma especialmente intensa en la generación de &lt;strong>artículos y libros científicos&lt;/strong> que incluyen, entre otros elementos, &lt;strong>expresiones matemáticas&lt;/strong>.&lt;/p>&lt;/blockquote>
&lt;p>Entonces recordé que LaTeX es muy socorrido precisamente por la creación de documentos con fórmulas matemáticas, ya que se ven bien representadas y también recordé que es muy popular su exportación a documentos en formato PDF para compartirlos e imprimirlos.&lt;/p>
&lt;p>La principal ventaja de LaTeX es que al ir formando el documento, el autor se concentra en la estructura y contenido del mismo, dejándole a LaTeX la forma, la presentación y la legibilidad, que dicho sea de paso, es muy profesional.&lt;/p>
&lt;h2 id="una-guía-por-favor">Una guía ¡Por favor!.
&lt;/h2>&lt;p>Una guía que hay que tener a la mano es &lt;a class="link" href="http://mirror.ctan.org/info/lshort/spanish/lshort-a4.pdf" target="_blank" rel="noopener"
>La introducción no tan corta a LaTeX(PDF)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es excelente. Habla sobre la historia y da material más que suficiente para crear un documento en LaTeX. Leyendo sus páginas junté todo lo necesario para hacer un documento sencillo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/11/La-introducci%C3%B3n-no-tan-corta-de-LaTeX-libro-en-PDF.jpg"
alt="La introducción no tan corta de LaTeX (libro en PDF)">&lt;figcaption>
&lt;p>La introducción no tan corta de LaTeX (libro en PDF)&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="los-programas">Los programas.
&lt;/h2>&lt;h3 id="el-editor-atom">El Editor Atom
&lt;/h3>&lt;p>No es necesario un programa especializado para escribir un documento en LaTeX , cualquier editor de textos puede servir y para eso hay muchas alternativas, pero como tengo &lt;a class="link" href="https://linuxmanr4.com/2015/05/15/ahora-estoy-usando-el-editor-atom/" >Atom&lt;/a>
instalado decidí probar con él.&lt;/p>
&lt;p>Revisando en los paquetes disponibles para Atom instalé los siguientes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">apm install language-latex latex latexer linter-chktex
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Claro que también se pueden instalar desde el mismo Atom, pero usando la terminal es más rápido. El paquete &lt;strong>language-latex&lt;/strong> resalta la sintaxis de LaTeX en el documento,  &lt;strong>linter-chktex&lt;/strong> revisa el documento y detecta errores o hace sugerencias. El paquete &lt;strong>latex&lt;/strong> compila el documento y genera el pdf y &lt;strong>latexer&lt;/strong>, todavía no estoy muy seguro de lo que hace, creo que ayuda en la redacción.&lt;/p>
&lt;p>Construí un pequeño ejemplo con mis escasos conocimientos.&lt;/p>
&lt;p>Como pueden ver, Atom hace un buen manejo del documento, desde el resaltado de la sintaxis, sugerencias y creación del archivo PDF.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/11/Trabajando-un-documento-en-Latex-con-Atom.jpg"
alt="Trabajando un documento en Latex con Atom">&lt;figcaption>
&lt;p>Trabajando un documento en Latex con Atom&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="texstudio">TexStudio
&lt;/h3>&lt;p>El programa &lt;a class="link" href="http://www.texstudio.org/" target="_blank" rel="noopener"
>TexStudio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es como un IDE para LaTeX, tiene de todo y todo esta a la mano, incluye asistentes, accesos rápidos a las funciones más utilizadas, está disponible en para las plataformas más importantes (incluyendo una versión portable), corrector ortográfico, asistentes, vamos que es lo ideal para familiarizarse con LaTeX. Si apenas esta empezando a crear documentos en este plataforma este programa es ideal para principiantes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/11/Trabajando-un-documento-en-Latex-con-TexStudio.png"
alt="Trabajando un documento en Latex con TexStudio">&lt;figcaption>
&lt;p>Trabajando un documento en Latex con TexStudio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden suponer, este artículo no es una guía en sí para generar un documento con LaTeX, pero es un buen comienzo para ir juntando todo lo necesario.  Espero que les sea de utilidad.&lt;/p>
&lt;h2 id="actualización-video-tutoriales-de-latex">Actualización: Video tutoriales de LaTeX.
&lt;/h2>&lt;p>En un comentario los amigos de Escuelas Linux nos comparten una serie de video tutoriales para aprender a desarrollar documentos con LaTeX ¡Muchas Gracias!&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/tyA7ddnGInM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>La bocina de mi celular no se escucha ¡Prueba primero esto!</title><link>https://linuxmanr4.com/2015/10/23/mi-celular-no-se-escucha/</link><pubDate>Fri, 23 Oct 2015 16:59:18 +0000</pubDate><guid>https://linuxmanr4.com/2015/10/23/mi-celular-no-se-escucha/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/10/bocina-del-auricular.png" alt="Featured image of post La bocina de mi celular no se escucha ¡Prueba primero esto!" />&lt;p>Ayer me pasó un caso curioso, me trajeron para que revisara un teléfono ya que según el usuario, no se escucha el auricular del iPhone, en sus propias palabras me dijo que se escuchaba muy bajito y a veces entrecortado. Me lo dejó y procedí a revisarlo.&lt;/p>
&lt;h2 id="problemas-de-señal">¿Problemas de señal?
&lt;/h2>&lt;p>Al principio creí que se trataba de un problema de señal o mala recepción, aunque se me hizo raro, ya que los teléfonos de la manzanita no suelen tener este tipo de problemas.&lt;/p>
&lt;p>Recuerdo el caso del &lt;em>antenagate&lt;/em> en el que el mismo &lt;a class="link" href="https://es.wikipedia.org/wiki/Steve_Jobs" target="_blank" rel="noopener"
>Steve Jobs&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ponía los puntos sobre las íes y declaro que el que no estuviera conforme con su teléfono tenía la total libertad de regresarlo y creo que muy pocos lo hicieron.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/10/steve-jobs-explicando-el-antennagate.jpg"
alt="steve jobs explicando el antennagate">&lt;figcaption>
&lt;p>steve jobs explicando el antennagate&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hice un par de llamadas para escuchar de primer oído el problema y efectivamente, se escuchaba muy mal, las voces se apreciaban muy lejanas a pesar de que le subí &lt;strong>todo el volumen&lt;/strong>.&lt;/p>
&lt;h2 id="la-bocina-se-escucha-muy-bajito">La bocina se escucha muy bajito.
&lt;/h2>&lt;p>Intenté con el altavoz con un resultado totalmente diferente, el sonido era fuerte y claro y  la voz de mi interlocutor se apreciaba perfectamente. Mi mente empezó a jugar con varias opciones ¿sería un problema de configuración o un problema con la bocina del auricular?. Afortunadamente no fue ni lo uno ni lo otro.&lt;/p>
&lt;div class="adsense-wrapper my-8 text-center">
&lt;ins class="adsbygoogle" style="display:block;
text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-4564255988687880" data-ad-slot="8832836978">&lt;/ins>
&lt;script>
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script>
&lt;/div>
&lt;h2 id="una-limpieza-de-vez-en-cuando-no-hace-daño">Una limpieza de vez en cuando no hace daño.
&lt;/h2>&lt;p>Después de inspeccionar minuciosamente el iPhone me di cuenta de que tenía como pelusa en la bocina, saqué mi lupa y al revisar detenidamente me di cuenta de que se podían apreciar como pequeñas fibras, como de tela muy finas que bloqueaban los orificios de la bocina.&lt;/p>
&lt;p>El iPhone tiene una minúscula oquedad  en donde va la bocina del auricular, eso provoca que la suciedad y la mugre se acumule y bloquee el sonido.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/10/acercamiento-al-auricular-del-iphone.jpg"
alt="acercamiento al auricular del iphone \| mi celular no se escucha">&lt;figcaption>
&lt;p>acercamiento al auricular del iphone | mi celular no se escucha&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Identificado el problema solo quedaba la pregunta de como resolverlo. Descartado el uso de aire comprimido o cotonetes con algún solvente, esto puede provocar daños en la bocina y no queremos eso.&lt;/p>
&lt;p>Lo más simple fue lo más indicado, con un cepillo de dientes &amp;ldquo;barrí&amp;rdquo; toda la mugre acumulada hasta que pudiera ver nuevamente los microscópicos orificios del auricular. Y la diferencia en la calidad de la voz durante las llamadas fue más que notable, un sencillo arreglo y todo vuelve a la normalidad.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/10/un-cepillo-de-dientes-usado-para-la-limpieza.jpg"
alt="un cepillo de dientes usado para la limpieza \| mi celular no se escucha">&lt;figcaption>
&lt;p>un cepillo de dientes usado para la limpieza | mi celular no se escucha&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Antes de llevar a garantía su iPhone por un problema similar a este, revise este pequeño detalle o déjelo como esta, total cada año estrenan un modelo nuevo y así tiene la excusa perfecta para cambiarlo :) .&lt;/p>
&lt;p>El mismo consejo se puede aplicar a otros celulares, solo es cosa de revisar si el orificio del auricular esta muy saturado de pelusa.&lt;/p></description></item><item><title>Hojas de afeitar Super-Max Titanium</title><link>https://linuxmanr4.com/2015/09/25/hojas-de-afeitar-super-max-titanium/</link><pubDate>Fri, 25 Sep 2015 16:30:40 +0000</pubDate><guid>https://linuxmanr4.com/2015/09/25/hojas-de-afeitar-super-max-titanium/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Super-max-Titanium.jpg" alt="Featured image of post Hojas de afeitar Super-Max Titanium" />&lt;p>El otro día estaban comentando en &lt;a class="link" href="https://www.facebook.com/groups/1457801384478004/" target="_blank" rel="noopener"
>Afeitado en México&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
sobre las hojas de afeitar Super-Max Platinum y les comentaba que para mi gusto eran mejor las Super-Max &lt;strong>Titanium.&lt;/strong>&lt;/p>
&lt;p>Cuando empecé con esto del afeitado clásico compré un paquete de estas hojas de afeitar y todavía tengo un par de ellas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Super-max-Titanium-reverso-de-la-caja.jpg"
alt="Super-max Titanium reverso de la caja">&lt;figcaption>
&lt;p>Super-max Titanium reverso de la caja&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="afeitadocon-suavidad">Afeitado con suavidad
&lt;/h2>&lt;p>Puse una mitad en mi &lt;a class="link" href="http://wiki.badgerandblade.com/Disposable_Straight" target="_blank" rel="noopener"
>shavette&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Parker. Tuve la misma impresión que antes, una afeitada suave y sin irritación. El único problema para mi es su duración, pero a muchos no parece importarles demasiado este detalle, para mi es un indicador de la calidad del acero y su capacidad para mantener el filo.&lt;/p>
&lt;p>También es indicador de su costo, por ejemplo en barberías o peluquerías solo les interesa que sea un &lt;a class="link" href="https://linuxmanr4.com/2016/09/13/4-puntos-clave-para-un-buen-afeitado-clasico/" >buen afeitado&lt;/a>
solo una vez porque se supone que la hoja de afeitar será desechada después de usarla con el cliente, pero entonces su precio debe de ser muy económico.&lt;/p>
&lt;p>A mi me gusta que como mínimo me den 3 afeitadas de calidad, el récord  personal lo tengo con las hojas de afeitar &lt;em>Feather&lt;/em> que me dieron más de 10 afeitadas disfrutables, hago este comentario solo por establecer una comparación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Super-max-Titanium-Hoja-de-afeitar.jpg"
alt="Super-max Titanium Hoja de afeitar">&lt;figcaption>
&lt;p>Super-max Titanium Hoja de afeitar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Un detalle curioso es que al parecer las hojas son hechas en la India pero distribuidas por Reino Unido. Lo malo es que no las he vuelto a ver en las tiendas  !!!&lt;/p></description></item><item><title>Buscar y reemplazar un texto desde la terminal</title><link>https://linuxmanr4.com/2015/09/22/buscar-y-reemplazar-un-texto-desde-la-terminal/</link><pubDate>Tue, 22 Sep 2015 14:51:48 +0000</pubDate><guid>https://linuxmanr4.com/2015/09/22/buscar-y-reemplazar-un-texto-desde-la-terminal/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/pexels-photo-6615076.jpeg" alt="Featured image of post Buscar y reemplazar un texto desde la terminal" />&lt;p>Uno podría suponer que una tarea de buscar una cadena de texto y reemplazarla desde un programa editor sería una tarea trivial, pero hay veces que no.&lt;/p>
&lt;p>El otro día tuve la necesidad de reemplazar una cadena por otra en un archivo de texto simple y llano, nada fuera de lo ordinario, para esto estaba utilizando el editor &lt;a class="link" href="https://linuxmanr4.com/2015/05/15/ahora-estoy-usando-el-editor-atom/" >Atom&lt;/a>
 y según la búsqueda de la cadena tenía un total de un poco más de mil coincidencias, pulsé el botón &lt;em>Replace All&lt;/em>  y nada pasó !!!&lt;br>
Dejé pasar un poco de tiempo y nada, para colmo si intentaba &amp;ldquo;apresurar&amp;rdquo; el proceso recibía como respuesta un mesaje de &lt;em>Editor is not responding&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Editor-is-not-responding.jpg"
alt="Editor is not responding - Reemplazar el texto de un archivo desde la terminal">&lt;figcaption>
&lt;p>Editor is not responding - Reemplazar el texto de un archivo desde la terminal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Intenté bajar la apuesta usando un editor más simple, lo intenté con &lt;strong>gedit&lt;/strong> y el resultado fue muy similar. Al menos &lt;strong>Atom&lt;/strong> presentaba mejor el archivo y podía trabajar más a gusto con el archivo, pero al llegar al momento de buscar y reemplazar era jugar un albur. A veces lo lograba si presionaba el botón &lt;em>Keep Waiting&lt;/em>, pero otras veces no.&lt;/p>
&lt;p>Mi computadora tiene recursos más que suficientes para completar la tarea, me parecía imposible que una simple búsqueda y sustitución de una cadena de texto representara tal reto. Además si iba a hacer esto de manera rutinaria tenía que encontrar una solución más eficiente.&lt;/p>
&lt;h2 id="domina-la-terminal-domina-el-mundo">Domina la terminal, domina el mundo.
&lt;/h2>&lt;p>Al principio pensé en utilizar un editor más ligero pero no puede haber nada más ligero que la terminal y supuse que debería de existir algún comando que hiciera la tarea.&lt;/p>
&lt;p>Para buscar y reemplazar un texto desde la terminal use el comando &lt;em>sed (stream editor for filtering and transforming text)&lt;/em> que con una instrucción muy sencilla hizo el trabajo en menos de un segundo !!! _&lt;br>
_&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sed -i &amp;#39;s/original/nuevo/g&amp;#39; archivo.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Donde:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>-i&lt;/strong> ( &lt;em>in place&lt;/em>) Es decir, el resultado lo guarda en el archivo original.&lt;/li>
&lt;li>&lt;strong>s&lt;/strong> ( &lt;em>substitute&lt;/em>) Busca una cadena y lo que encuentra lo reemplaza por otra.&lt;/li>
&lt;li>&lt;strong>original&lt;/strong> Es la cadena de texto que va a buscar&lt;/li>
&lt;li>&lt;strong>nuevo&lt;/strong> Es la cadena de texto que va a sustituir a &lt;em>original&lt;/em>&lt;/li>
&lt;li>&lt;strong>g&lt;/strong> Quiere decir global, o sea que hará el cambio en todas las coincidencias que encuentre en el archivo&lt;/li>
&lt;li>Y por último &lt;strong>archivo.txt&lt;/strong> es el nombre del archivo sobre el cual va a trabajar.&lt;/li>
&lt;/ul>
&lt;p>O si lo prefiere, puede aplicar este mismo comando a todos los archivos txt usando comodines y créanme que esto puede ahorrar mucho tiempo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sed -i &amp;#39;s/original/nuevo/g&amp;#39; *.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y este es tan solo un ejemplo de lo que puede hacer &lt;em>sed,&lt;/em> tiene una gran variedad de opciones incluyendo el uso de expresiones regulares y lo mejor es que si es necesario, se puede programar en &lt;a class="link" href="https://es.wikipedia.org/wiki/Bash" target="_blank" rel="noopener"
>bash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para automatizar tareas que de otro modo se tardarían una eternidad.&lt;/p>
&lt;p>Guardaré este comando en mi caja de herramientas linuxeras hasta que lo vuelva a necesitar, por el momento fue de gran ayuda.&lt;/p>
&lt;h2 id="el-método-vi-actualización">El método vi (actualización)
&lt;/h2>&lt;p>Poco tiempo después de publicar este artículo el buen amigo &lt;a class="link" href="https://plus.google.com/u/0/106178595557053869389/posts" target="_blank" rel="noopener"
>Rodolfo Zola&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
hizo un &lt;a class="link" href="https://plus.google.com/u/0/108009231243004251711/posts/JJLrEakkzM1" target="_blank" rel="noopener"
>comentario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 en el que me recomienda el uso de &lt;a class="link" href="https://es.wikipedia.org/wiki/Vi" target="_blank" rel="noopener"
>vi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que también es editor de textos de terminal. Curiosamente la instrucción es muy similar a la de &lt;em>sed.&lt;/em>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/buscar-y-reemplazar-con-vim.jpg"
alt="buscar y reemplazar con vim">&lt;figcaption>
&lt;p>buscar y reemplazar con vim&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el ejemplo pueden ver que sustituye la cadena &lt;em>em&lt;/em> por &lt;em>am&lt;/em> en un texto &lt;a class="link" href="https://es.wikipedia.org/wiki/Lorem_ipsum" target="_blank" rel="noopener"
>Lorem Ipsum&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 de buen tamaño y lo hizo instantáneamente.&lt;/p></description></item><item><title>Bloquear Facebook con las reglas del firewall de IPCop</title><link>https://linuxmanr4.com/2015/09/10/bloquear-facebook-firewall-ipcop/</link><pubDate>Thu, 10 Sep 2015 21:04:36 +0000</pubDate><guid>https://linuxmanr4.com/2015/09/10/bloquear-facebook-firewall-ipcop/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/bloquear-facebook-con-una-regla-de-firewall-de-ipcop.jpg" alt="Featured image of post Bloquear Facebook con las reglas del firewall de IPCop" />&lt;p>Bloquear Facebook con las reglas del firewall de IPCop no es complicado, si acaso será un poco laborioso dar de alta las direcciones IP y las direcciones Mac de los futuros desterrados.&lt;/p>
&lt;p>A los administradores de redes no es que nos guste bloquear Facebook, muchas veces nos piden que lo hagamos porque hay que reconocer que existen personas que invierten más tiempo en la red social que haciendo sus labores.  Es el eterno distractor en el que muchas veces no está justificado su uso.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/951.gif"
alt="Facebook el gran distractor">&lt;figcaption>
&lt;p>Facebook el gran distractor&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si el usuario tiene Facebook en su celular gracias a un plan de datos, esa es otra historia y quizás haya que ajustar las políticas de la empresa al respecto.  Lo cierto es que sobre todo las mujeres están muy enganchadas a Facebook y harán hasta lo imposible para no perder detalle de los chismes y novedades de sus amigas (es una realidad no se hagan).&lt;/p>
&lt;h2 id="https-es-el-problema">HTTPS es el problema.
&lt;/h2>&lt;p>El problema es que ahora se accesa a Facebook usando el protocolo &lt;a class="link" href="https://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure" target="_blank" rel="noopener"
>HTTPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que es un enlace seguro, y este tipo de tráfico no es procesado por &lt;a class="link" href="http://www.squid-cache.org/" target="_blank" rel="noopener"
>Squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y por lo tanto no puede ser filtrado con &lt;strong>Filtro URL&lt;/strong> ( &lt;a class="link" href="https://en.wikipedia.org/wiki/SquidGuard" target="_blank" rel="noopener"
>squidGuard&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) que tiene instalado &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Entonces lo que sigue es bloquear todo el tráfico que tenga como destino los servidores de facebook no importando si utilizan &lt;strong>HTTP&lt;/strong> o &lt;strong>HTTPS.&lt;/strong>&lt;/p>
&lt;p>También podría &amp;ldquo;envenenar&amp;rdquo; el DNS de IPCop para que respondiera con un sitio equivocado cada vez que un equipo quisiera saber la dirección IP del dominio de Facebook, pero no podría ser selectivo con este engaño y toda mi red estaría comprometida, además no falta el usuario vivo que ponga sus propios DNS en su equipo, no sabrán imprimir pero que tal brincarse las restricciones :) .&lt;/p>
&lt;h2 id="averiguar-las-direcciones-ip-de-facebook">Averiguar las direcciones IP de Facebook
&lt;/h2>&lt;p>Para &lt;a class="link" href="https://linuxmanr4.com/2013/09/11/bloquear-facebook-con-ipcop-iptables/" >bloquear Facebook&lt;/a>
primero tenemos que averiguar las direcciones IP de destino del dominio. Intenté hacerlo con el dominio pero IPCop me marca un error al intentar dar de alta las direcciones.&lt;/p>
&lt;p>Encontré 3 direcciones, dos usando la herramienta &lt;em>nslookup&lt;/em> y una más por casualidad haciendo &lt;em>ping&lt;/em> a &lt;em>facebook.com&lt;/em>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/direcciones-ip-del-dominio-de-facebook.jpg"
alt="direcciones ip del dominio de facebook">&lt;figcaption>
&lt;p>direcciones ip del dominio de facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>&lt;em>usando ping&lt;/em> → 31.13.69.197&lt;/li>
&lt;li>&lt;em>facebook.com →&lt;/em> 173.252.74.22&lt;/li>
&lt;li>&lt;em>&lt;a class="link" href="https://www.facebook.com" target="_blank" rel="noopener"
>www.facebook.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 →&lt;/em> 31.13.66.1&lt;/li>
&lt;/ul>
&lt;h2 id="dar-de-alta-las-direcciones">Dar de alta las direcciones
&lt;/h2>&lt;p>Con esta información ya es posible empezar a trabajar en las reglas del firewall. Primero hay que ir al menú de &lt;strong>Firewall&lt;/strong> de IPCop en donde dice &lt;strong>Direcciones&lt;/strong> y se dan de alta una por una las direcciones que encontramos de Facebook.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/agregar-una-direcci%C3%B3n-ip-de-facebook.png"
alt="agregar una dirección ip de facebook">&lt;figcaption>
&lt;p>agregar una dirección ip de facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Revisen en sus localidades porque las direcciones que obtengan ustedes pueden ser diferentes a las mías o cambiar con el tiempo.&lt;/p>
&lt;p>De manera similar damos de alta las &lt;strong>direcciones MAC&lt;/strong> de los condenados al destierro social, prefiero usar las direcciones MAC porque las direcciones IP pueden cambiar en el servidor DHCP pero las MAC son las mismas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Agregando-una-direcci%C3%B3n-MAC-de-un-equipo-a-bloquear.png"
alt="Agregando una dirección MAC de un equipo a bloquear">&lt;figcaption>
&lt;p>Agregando una dirección MAC de un equipo a bloquear&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="crear-dos-grupos-de-direcciones">Crear dos grupos de direcciones.
&lt;/h2>&lt;p>Ahora se van a crear dos grupos en el menú &lt;strong>Firewall&lt;/strong> - &lt;strong>Grupos de direcciones.&lt;/strong> Uno de ellos contendrá las direcciones IP del dominio de Facebook y otro será el grupo de direcciones MAC de los equipos bloqueados. Al primero le puse &lt;strong>facebook&lt;/strong> y al segundo &lt;strong>facebook bloq.&lt;/strong> Pero supongo que ustedes pueden elegir mejores nombres :) .&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/agregando-direcciones-al-grupo-de-facebook.png"
alt="agregando direcciones al grupo de facebook">&lt;figcaption>
&lt;p>agregando direcciones al grupo de facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En este punto los elementos de cada grupo de direcciones se pueden ver en la parte inferior de la página.&lt;/p>
&lt;h2 id="agregaruna-regla-en-el-firewall">Agregar una regla en el firewall
&lt;/h2>&lt;p>A estas alturas ya solo nos falta agregar una regla en el firewall. Tenemos nuestros tráfico de origen, el grupo &lt;strong>facebook bloq&lt;/strong> y el destino de este tráfico que es el grupo &lt;strong>facebook&lt;/strong>.&lt;/p>
&lt;p>Vamos al menú &lt;strong>Firewall&lt;/strong>  - &lt;strong>Reglas del Firewall&lt;/strong> y presionamos el botón que dice &lt;strong>Tráfico saliente&lt;/strong>.&lt;/p>
&lt;p>Más o menos debe de quedar como muestra la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Regla-del-firewall-Tr%C3%A1fico-saliente-Para-bloquear-facebook.png"
alt="Bloquear facebook firewall ipcop">&lt;figcaption>
&lt;p>Bloquear facebook firewall ipcop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En este caso el orden de las reglas si afecta el resultado, así que es posible que para activar el bloqueo sea necesario subir la regla para que se aplique antes que las que siguen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/asi-aparece-listada-la-regla-en-el-firewall.png"
alt="asi aparece listada la regla en el firewall">&lt;figcaption>
&lt;p>asi aparece listada la regla en el firewall&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Si todo se hizo de la manera correcta verán que es imposible abrir el sitio de facebook en los equipos que aparecen en el listado de los bloqueados.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/bloqueo-listo-y-funcionando.png"
alt="Bloqueo listo y funcionando.">&lt;figcaption>
&lt;p>Bloqueo listo y funcionando.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La administración de la regla de bloqueo se simplifica mucho, porque para agregar un equipo a la lista basta con agregar una dirección MAC y agregarla al grupo de bloqueados. Del mismo modo, si llegara a aparecer una nueva dirección de Facebook, basta con agregarla a las demás para que funcione nuevamente.&lt;/p>
&lt;p>El mismo principio se puede aplicar a otros sitios, tengo a Youtube en la mira, sin temor a equivocarme es el responsable de una gran cantidad de tráfico en mi red.&lt;/p>
&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/Bastard_Operator_from_Hell" target="_blank" rel="noopener"
>BOFH&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Forever !!!&lt;/p></description></item><item><title>Problemas con la tableta aprende.mx con windows 8.1</title><link>https://linuxmanr4.com/2015/09/01/problemas-con-la-tableta-aprende-mx-con-windows-8-1/</link><pubDate>Tue, 01 Sep 2015 20:17:49 +0000</pubDate><guid>https://linuxmanr4.com/2015/09/01/problemas-con-la-tableta-aprende-mx-con-windows-8-1/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/tabletas-aprende-mx-con-windows.png" alt="Featured image of post Problemas con la tableta aprende.mx con windows 8.1" />&lt;h2 id="actualización-de-desbloqueo-de-tabletas-y-netbooks-2020">Actualización de desbloqueo de tabletas y netbooks 2020
&lt;/h2>&lt;p>Si llegaste a este punto, mis respetos. Has cuidado de un equipo destinado para niños por 5 años.&lt;/p>
&lt;p>Los amigos de &lt;a class="link" href="https://sistemasumma.com/2020/08/11/desbloquear-tabletas-y-netbooks-mx-en-el-2020/" target="_blank" rel="noopener"
>Sistemas Umma&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
informan que hay una opción para desbloquear los equipos que funciona en este caótico 2020.&lt;/p>
&lt;p>Lo que tienen que hacer es enviar un correo a esta dirección: &lt;a class="link" href="mailto:ctelaguna@gmail.com" >ctelaguna@gmail.com&lt;/a>
&lt;/p>
&lt;p>Los datos que deben de adjuntar en el correo son los siguientes:&lt;/p>
&lt;ul>
&lt;li>Número de serie: (parte posterior de la tableta)&lt;/li>
&lt;li>&lt;strong>Hardware ID:&lt;/strong> (en pantalla)&lt;/li>
&lt;li>&lt;strong>Boot Tick:&lt;/strong> (en pantalla)&lt;/li>
&lt;li>Últimos seis dígitos de S/N:&lt;/li>
&lt;li>Nombre del alumno&lt;/li>
&lt;li>Localidad&lt;/li>
&lt;li>Municipio&lt;/li>
&lt;li>Estado&lt;/li>
&lt;li>Escuela donde fue otorgada la tablet&lt;/li>
&lt;/ul>
&lt;p>¡Suerte!&lt;/p>
&lt;hr>
&lt;p>Desde que hicieron el anuncio de las &lt;a class="link" href="https://linuxmanr4.com/2014/03/14/como-instalar-windows-las-computadoras-mx-de-la-sep/" >computadoras mx&lt;/a>
en apoyo a la educación de los niños mexicanos he seguido el tema bastante cerca. Al principio motivado porque los equipos se entregaron con una &lt;a class="link" href="https://linuxmanr4.com/2013/11/26/micompumx-linux-argentina/" >versión bizarra de linux&lt;/a>
, más tarde entregaron tabletas con android, movimiento más que razonable considerando que son más fáciles de transportar para un infante y que estos adaptan rapidísimo a esta tecnología.&lt;/p>
&lt;p>No hace mucho me enteré que las nuevas tabletas tendrían como sistema operativo Windows (véase &lt;a class="link" href="http://sistemasumma.com/2015/07/15/primeros-datos-de-tablets-prende-mx-2015/" target="_blank" rel="noopener"
>Primeros datos de tablets @prende.mx (2015)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 ) y aunque me mostré renuente al principio consideré que era mejor que los niños usaran los equipos que no pudo vender Microsoft a que terminaran en la basura contaminando el ambiente.&lt;/p>
&lt;p>Como es normal consideré los problemas que la experiencia nos dicta al usar Windows, la posibilidad de virus, que los equipos se alenten, malware al por mayor en un ambiente escolar y los errores de capa 8. Pero jamás mi mente consideró un escenario tan malo.&lt;/p>
&lt;h2 id="simplementeno-arrancan">Simplemente no arrancan.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/lamentaci%C3%B3n.jpg"
alt="tableta aprende.mx con windows 8.1 - lamentación">&lt;figcaption>
&lt;p>tableta aprende.mx con windows 8.1 - lamentación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me suscribí a estos dos temas de los amigos de Sistemasumma: &lt;a class="link" href="http://sistemasumma.com/2015/07/15/primeros-datos-de-tablets-prende-mx-2015" target="_blank" rel="noopener"
>Primeros datos de tablets @prende.MX (2015)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y &lt;a class="link" href="http://sistemasumma.com/2015/08/26/resetear-tablet-aprende-mx-con-windows-8-1/" target="_blank" rel="noopener"
>Resetear Tablet aprende.mx con Windows 8.1&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y los comentarios son poco alentadores.&lt;/p>
&lt;p>Las tabletas tienen precargado todo el material didáctico de la SEP para el ciclo escolar y eso esta perfecto, el problema es que le deja poco espacio libre disponible a la tableta.&lt;/p>
&lt;p>El problema viene con la primer actualización, es tan grande la descarga que deja a la tableta con muy poco espacio y falla al momento de aplicarla. El resultado es un bonito pisapapeles con lucecitas.&lt;/p>
&lt;h2 id="para-todo-mal-reinstalar">Para todo mal reinstalar
&lt;/h2>&lt;p>Para arreglarla es necesario aplicar la primera ley de windows &amp;ldquo;Para todo mal reinstalar y para todo bien también&amp;rdquo;, pero no solo eso, después de resetearla se vuelve obligatorio &lt;strong>desactivar las actualizaciones automáticas&lt;/strong> del sistema operativo la tableta, una opción que esta activada por &lt;em>default&lt;/em>. Para evitar esto y hacer algo de espacio en la tableta les recomiendo leer &lt;a class="link" href="http://sistemasumma.com/2015/10/26/recuperar-espacio-de-almacenamiento-en-tablet-aprende-mx-windows/" target="_blank" rel="noopener"
>Recuperar espacio de almacenamiento en tablet aprende.mx (Windows)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 ahí explican como desactivar las actualizaciones automáticas y liberar algo de espacio para que no ocurra este problema.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/LRpLitYGBGg"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>El proceso de resetear los equipos a su configuración de fábrica no es muy complicado, pero para algunos niños o sus padres puede ser una tarea realmente épica y más si consideramos que para completar el procedimiento tienen que comprar un cable OTG que no viene incluido.&lt;/p>
&lt;p>Pedir ayuda por teléfono es complicado hay un número 800 en la tableta que nadie contesta y el de la SEP que si funciona esta saturado porque tiene que atender un &lt;em>tsunami&lt;/em> de personas molestas con sus equipos que dejaron de funcionar simplemente porque se actualizaron o se bloquearon (véase:  &lt;a class="link" href="http://sistemasumma.com/2015/08/28/desbloquear-tablet-prende-mx-por-programa-antirrobo-y-dejar-que-se-agote-la-bateria/" target="_blank" rel="noopener"
>Desbloquear tablet @prende.mx por programa antirrobo y por dejar que se agote la batería&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>Una total pesadilla para alumnos, padres de familia y los maestros que hacen lo que pueden para ayudar a sus discípulos.&lt;/p>
&lt;p>El colmo es que algunos padres sin escrúpulos ya las están vendiendo en facebook !!! Hágame usted el favor !!!. ¿No me cree? &lt;a class="link" href="http://www.proceso.com.mx/414085/2015/08/29/regalan-tablets-a-estudiantes-y-sus-padres-las-venden-en-redes-sociales" target="_blank" rel="noopener"
>Regalan ‘tablets’ a estudiantes… y sus padres las venden en redes sociales&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 .&lt;/p>
&lt;p>Lo curioso es que a pesar de que hubo mucha resistencia en los equipos que se entregaron con Linux, ni por asomo daban tantos problemas como estas tabletas con Windows 8.1&lt;/p>
&lt;h2 id="la-tablet-no-enciende">La tablet no enciende.
&lt;/h2>&lt;p>Quiero agradecer el comentario de &lt;a class="link" href="https://linuxmanr4.com/2015/09/01/problemas-con-la-tableta-aprende-mx-con-windows-8-1/#comment-40683" >Carlos&lt;/a>
, un buen amigo docente que está al pie del aula y que batalla a diario con estos equipos. Su sugerencia para una tablet que no enciende es:&lt;/p>
&lt;p>Para todos aquellos que no les enciende basta con conectar el cargador y dejar presionado el botón de encendido durante 30 segundos, y si no responde repetir, hasta que encienda.(véase &lt;a class="link" href="http://sistemasumma.com/2015/12/18/tablet-aprende-mx-no-enciende-y-se-queda-con-led-naranja/" target="_blank" rel="noopener"
>Tablet aprende.mx no enciende y se queda con Led naranja&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;h2 id="bloqueo-por-descarga-total-de-la-batería">Bloqueo por descarga total de la batería.
&lt;/h2>&lt;p>Me trajeron una de estas tabletas para que les ayudara a desbloquearla.La pantalla era muy clara, El equipo se bloqueo por descarga total de la batería. Tal parece que el pequeño arrumbo el equipo durante las vacaciones y al querer utilizarla nuevamente le salio una pantalla como esta:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/tableta-aprendemx-bloqueo-por-descarga-total-de-la-bateria%5Flinuxmanr4.jpg"
alt="Bloqueo por descarga total de la batería.">&lt;figcaption>
&lt;p>Bloqueo por descarga total de la batería.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para desbloquearla tiene dos opciones, llamar al &lt;strong>01 800 2000 842&lt;/strong> o recibir asistencia mediante la Ayuda en línea.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/09/Chat-de-la-mesa-de-ayuda.jpg"
alt="Chat de la mesa de ayuda">&lt;figcaption>
&lt;p>Chat de la mesa de ayuda&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Eso sí, prepárese para el interrogatorio, porque a mi me pidieron esta información:&lt;/p>
&lt;ul>
&lt;li>Número de serie del equipo (se encuentra al reverso del equipo arriba del código de barras).&lt;/li>
&lt;li>&lt;em>Hardware ID&lt;/em> (Sin guiones ni espacios, por favor).&lt;/li>
&lt;li>&lt;em>Boot Tick&lt;/em> .&lt;/li>
&lt;li>Los 6 últimos dígitos del &lt;em>S/N&lt;/em> o &lt;em>PROVISION NUMBER&lt;/em> (que se encuentra en la pantalla del equipo).&lt;/li>
&lt;li>Estado, Municipio y Localidad donde le entregaron el equipo.&lt;/li>
&lt;li>Nombre completo de quien reporta.&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2018/07/17/enviar-correos-electronicos-con-python/" >Correo electrónico&lt;/a>
.&lt;/li>
&lt;li>Parentesco con el propietario.&lt;/li>
&lt;li>Nombre completo del alumno propietario.&lt;/li>
&lt;li>Nombre de la escuela en la que le entregaron el equipo.&lt;/li>
&lt;li>Turno escolar.&lt;/li>
&lt;li>Grado escolar en el que le entregaron el equipo.&lt;/li>
&lt;li>CCT de la Escuela. Clave del Centro de Trabajo. Lo puede localizar en alguna credencial del alumno o en la boleta de calificaciones.&lt;/li>
&lt;/ul>
&lt;p>Lo más complicado fue el CCT, pero a mi me lo perdonaron, como quien dice saqué 9.5 en el exámen y subí a 10 :P .&lt;/p>
&lt;p>Después de un momento les darán un número con el que podrán desbloquear el equipo, pero con la advertencia de que dicho número sólo puede ser utilizado una vez. Así que por favor, no dejen que se agote la batería.&lt;/p>
&lt;h2 id="termina-el-soporte-a-las-tabletas-aprendemx-marzo-2017">Termina el soporte a las tabletas aprende.mx (marzo 2017)
&lt;/h2>&lt;p>Todo llega a su fin, llevo un par de semanas recibiendo comentarios de que en el teléfono de ayuda a las tabletas aprende.mx no contestan y tampoco funciona el chat de la mesa de ayuda.&lt;/p>
&lt;p>No he encontrado un comunicado oficial al respecto. Parece que simplemente les llegó la orden, recogieron los papeles, apagaron la luz y cerraron la oficina.&lt;/p>
&lt;p>El cierre afecta a todos aquellos que necesiten los &lt;strong>códigos de desbloqueo&lt;/strong> de los equipos. Sin estos códigos las tabletas quedan inutilizables y me consterna que después de hacer una inversión tan grande en dinero, tiempo y recursos los equipos queden en calidad de basura tecnológica.&lt;/p>
&lt;p>Busqué algo de información sobre la continuación de este proyecto, pero parece que todo ha quedado en buenas intenciones ya que no hay información reciente que indique que nuevamente se van a repartir tabletas o portátiles.&lt;/p>
&lt;p>En fin, fue bonito mientras duró. Espero que los alumnos hayan aprendido algo en el trayecto que es a fin de cuentas los que más importan.&lt;/p>
&lt;h3 id="no-todo-está-perdido-nuevos-teléfonos-de-la-mesa-de-ayuda">¡No todo está perdido! Nuevos teléfonos de la mesa de ayuda.
&lt;/h3>&lt;p>Como pueden ver, en el encabezado anterior, se eliminó la mesa de ayuda a nivel nacional y en su lugar abrieron líneas de télefono estatales. La calidad del servicio disminuyó, pero algo es algo.&lt;/p>
&lt;ul>
&lt;li>Chihuahua: (614) 429 3300, ext. 15641&lt;/li>
&lt;li>Durango: (618) 812 9898 y (618) 137 6351&lt;/li>
&lt;li>Hidalgo: (771) 717 3688&lt;/li>
&lt;li>Nayarit: (311) 218 7204 y (311) 213 6338&lt;/li>
&lt;li>Puebla: (222) 229 6900, ext. 5561&lt;/li>
&lt;li>Quintana Roo: 01 800 832 60 32&lt;/li>
&lt;li>Sinaloa: (667) 8464 200&lt;/li>
&lt;li>Sonora: (662) 289 7600, ext. 2050, 2356 y 2357&lt;/li>
&lt;li>Tabasco: 01 800 8908 877 y (993) 313 6320&lt;/li>
&lt;li>Tlaxcala: 01 800 7187 440&lt;/li>
&lt;li>Yucatán: 01 (999) 9303 950, ext. 51141&lt;/li>
&lt;li>También puedes comunicarte 01 (55) 4739-0045 en horario lunes a viernes de 9:00 a 20:00 horas.&lt;/li>
&lt;/ul>
&lt;p>Lamentablemente hay varios reportes de que no contestan, así que tenga paciencia y mucha suerte.&lt;/p>
&lt;p>Un agradecimiento especial a &lt;a class="link" href="https://sistemasumma.com/2017/03/29/nuevos-telefonos-mesa-de-ayuda-aprende-mx-2017/" target="_blank" rel="noopener"
>Sistemasumma&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que siempre comparte este tipo de información.&lt;/p>
&lt;h2 id="archivos-para-desbloquear-las-tabletas--jun-2017">Archivos para desbloquear las tabletas ( jun-2017).
&lt;/h2>&lt;p>Como todo se fue al carajo y en los teléfonos estatales rara vez contestan los amigos de sistemasumma comparten los &lt;a class="link" href="https://sistemasumma.com/2017/06/07/archivos-tcp-para-desbloquear-tabletas-aprende-mx/" target="_blank" rel="noopener"
>archivos para desbloquear las tabletas aprende.mx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 .&lt;/p>
&lt;p>Les advierto que nunca he realizado este procedimiento porque no tengo una tableta a la mano, pero no pierden nada con intentarlo.&lt;/p>
&lt;p>Lo primero es descargar los archivos:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.mediafire.com/file/p5t81710eohpv8k/tcp01.rar" target="_blank" rel="noopener"
>http://www.mediafire.com/file/p5t81710eohpv8k/tcp01.rar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.mediafire.com/file/5edud1icymv1bad/tcopp.bin.zip" target="_blank" rel="noopener"
>http://www.mediafire.com/file/5edud1icymv1bad/tcopp.bin.zip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.mediafire.com/file/p9ph7cdbd51gd3t/tcopp.bin_3.zip" target="_blank" rel="noopener"
>http://www.mediafire.com/file/p9ph7cdbd51gd3t/tcopp.bin_3.zip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.mediafire.com/file/11ho6ad5enhhfkb/tcopp.bin_2.zip" target="_blank" rel="noopener"
>http://www.mediafire.com/file/11ho6ad5enhhfkb/tcopp.bin_2.zip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Luego descomprimirlos y copiarlos en un dispositivo &lt;a class="link" href="https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/" >USB vacío y formateado&lt;/a>
con FAT32.&lt;/p>
&lt;p>Se conecta la USB mediante un cable OTG, se enciende el equipo y se selecciona &lt;strong>Desbloqueo por USB&lt;/strong>.&lt;/p>
&lt;p>Los amigos de Sistemasumma recomiendan hacer al menos 3 intentos con cada archivo. Supongo que alguno tiene que funcionar.&lt;/p>
&lt;p>Espero que al fin logren desbloquear sus equipos.&lt;/p></description></item><item><title>Mejores acercamientos con la cámara del celular</title><link>https://linuxmanr4.com/2015/08/29/mejores-acercamientos-con-la-camara-del-celular/</link><pubDate>Sat, 29 Aug 2015 16:16:47 +0000</pubDate><guid>https://linuxmanr4.com/2015/08/29/mejores-acercamientos-con-la-camara-del-celular/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Mejores-acercamientos-con-la-c%C3%A1mara-del-celular-Preparando-la-toma.jpg" alt="Featured image of post Mejores acercamientos con la cámara del celular" />&lt;p>En esta ocasión les voy a dar un consejo sobre como lograr mejores acercamientos con la cámara del celular. Al principio quería mostrarles con orgullo que me terminé esta &lt;a class="link" href="http://www.microsiervos.com/archivo/curiosidades/grafico-bolis-bic-por-que-tienen-agujero.html" target="_blank" rel="noopener"
>pluma Bic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, siempre me da gusto cuando logro terminar la tinta de una pluma, para mi es algo como una misión cumplida.&lt;/p>
&lt;p>Tomé mi celular y me preparé para tomar una fotografía muy de cerca. Los más versados en fotografía dirán que es una toma macro.&lt;/p>
&lt;h2 id="una-lupapara-verte-mejor">Una lupa para verte mejor
&lt;/h2>&lt;p>Tomé algunas fotos, pero no lograron convencerme, entonces recordé que hace poco compré una lupa, la uso para leer pequeñas etiquetas o para inspeccionar circuitos electrónicos, no es que me este fallando la vista ehhhhhh (bueno un poco).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Mejores-acercamientos-con-la-c%C3%A1mara-del-celular-Una-lupa-y-una-moneda.jpg"
alt="Mejores acercamientos con la cámara del celular - Una lupa y una moneda">&lt;figcaption>
&lt;p>Mejores acercamientos con la cámara del celular - Una lupa y una moneda&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esta lupa tiene dos lentes, uno grande como cualquier lupa tradicional y otro más pequeño que tiene un mayor aumento (6X decía la etiqueta), tiene el tamaño ideal para mis propósitos Muahhaahahahahaha.&lt;/p>
&lt;p>Con un poco de maña empalmé la lupa pequeña con la lente de la cámara del teléfono. Tuve que acercar mucho el teléfono al objeto para lograr un enfoque adecuado, pero al final parece que si funcionó, juzgué usted las imágenes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Mejores-acercamientos-con-la-c%C3%A1mara-del-celular-La-pluma-Bic-sin-tinta.jpg"
alt="Mejores acercamientos con la cámara del celular - La pluma Bic sin tinta">&lt;figcaption>
&lt;p>Mejores acercamientos con la cámara del celular - La pluma Bic sin tinta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Buscando la toma adecuada se pueden apreciar mejor los detalles, y eso que la cámara de mi celular no es muy buena, es de apenas 5 mega píxeles pero se distinguen bastante bien las texturas, las imperfecciones, esos minúsculos elementos que ni siquiera sabías que estaban ahí hasta que se miran de cerca.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Mejores-acercamientos-con-la-c%C3%A1mara-del-celular-La-moneda-de-dos-pesos.jpg"
alt="Mejores acercamientos con la cámara del celular - La moneda de dos pesos">&lt;figcaption>
&lt;p>Mejores acercamientos con la cámara del celular - La moneda de dos pesos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se que venden algunos &lt;a class="link" href="https://www.youtube.com/watch?v=oeatm6ObjgQ" target="_blank" rel="noopener"
>kits de lentes para el celular&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que tienen un ajuste perfecto y lentes para distintos propósitos, pero siendo honesto, no justifico el costo de estos artículos. A mi la lupa me costó 34 pesos y para estas tomas ocasionales esta perfecto.&lt;/p>
&lt;p>Este método es sencillo y les puede ser útil cuando necesitan capturar en una imagen detalles diminutos.&lt;/p>
&lt;p>¡Hasta la próxima!&lt;/p></description></item><item><title>Como hacer un meme con inkscape</title><link>https://linuxmanr4.com/2015/08/18/como-hacer-un-meme-con-inkscape/</link><pubDate>Tue, 18 Aug 2015 17:10:51 +0000</pubDate><guid>https://linuxmanr4.com/2015/08/18/como-hacer-un-meme-con-inkscape/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/como-hacer-un-meme-con-inkscape.jpg" alt="Featured image of post Como hacer un meme con inkscape" />&lt;p>En esta ocasión les mostraré como hacer un &lt;a class="link" href="https://es.wikipedia.org/wiki/Meme_de_Internet" target="_blank" rel="noopener"
>meme&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con &lt;a class="link" href="https://inkscape.org/es/" target="_blank" rel="noopener"
>Inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Se que hay muchos programas que hacen memes, pero hay poco control en las tipografías, ubicación de los textos y muchos de estos programas dejan una indeseable marca de agua que en ocasiones echa a perder la imagen que estamos utilizando.&lt;/p>
&lt;h2 id="importar-una-imagen">Importar una imagen
&lt;/h2>&lt;p>Lo primero es conseguir una imagen para hacer nuestro meme, para trabajarla en Inkscape podemos importarla con el menú &lt;em>Archivo&lt;/em> - &lt;em>Importar &amp;hellip;(Ctrl+I)&lt;/em> o también se puede arrastrar una imagen a la aplicación para que aparezca en nuestra área de trabajo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Importar.png"
alt="Importar una imagen a Inkscape" width="724">&lt;figcaption>
&lt;p>Importar una imagen a Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="agregar-un-texto">Agregar un texto
&lt;/h2>&lt;p>Ahora viene el toque de humor agregando un texto. Para lograr esto es necesario se utiliza la herramienta &lt;em>Crear y editar objetos de texto (F8)&lt;/em> y añadimos el texto en donde queramos que aparezca en la imagen. A mi me gusta utilizar la fuente Impact pero ustedes pueden usar la que más les agrade.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/agregando-un-texto.jpg"
alt="agregando un texto" width="1070">&lt;figcaption>
&lt;p>agregando un texto&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si se fijan en la mayoría de los memes, las letras son de color blanco, con la orilla en color negro. Esto es para que el texto resalte en una gran combinación de fondos y sea legible.&lt;/p>
&lt;p>Para lograr este efecto es necesario convertir el texto a un trazo. A mi me gusta presionar la tecla &lt;strong>F1&lt;/strong> que es el atajo de teclado para la herramienta &lt;em>Seleccionar y transformar objetos&lt;/em> y seleccionar el texto que voy a transformar.&lt;/p>
&lt;p>Con el texto seleccionado voy al menú &lt;em>Trazo&lt;/em> y selecciono la opción &lt;em>Objeto a Trazo (Mayús+Ctrl+C)&lt;/em>  , con esto ya no voy a poder editar el texto, pero si voy a poder modificar sus propiedades de &lt;strong>relleno&lt;/strong> y &lt;strong>trazo&lt;/strong> (o sea el contorno de las letras).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Objeto-a-trazo.jpg"
alt="Transformando un Objeto a trazo" width="1070">&lt;figcaption>
&lt;p>Transformando un Objeto a trazo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la paleta de colores selecciono con el botón izquierdo el color del relleno y con el botón derecho me aparece la opción de elegir el color del trazo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Eligiendo-el-color-del-contorno.jpg"
alt="Eligiendo el color del contorno" width="1440">&lt;figcaption>
&lt;p>Eligiendo el color del contorno&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="exportar-el-resultado-apng">Exportar el resultado a PNG
&lt;/h2>&lt;p>Por default, todos los trabajos de exportación se guardan en formato &lt;a class="link" href="https://es.wikipedia.org/wiki/Portable_Network_Graphics" target="_blank" rel="noopener"
>PNG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Al presionar el menú &lt;em>Archivo&lt;/em> - &lt;em>Exportar imagen PNG (Mayús+Ctrl+E)&lt;/em> aparece un menú muy completo con todas las opciones para exportar la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Opciones-de-exportaci%C3%B3n.jpg"
alt="Opciones de exportación a PNG" width="1440">&lt;figcaption>
&lt;p>Opciones de exportación a PNG&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como los archivo PNG de imágenes suelen tener un tamaño mayor que un JPG se puede cambiar el formato con otra herramienta como &lt;a class="link" href="http://www.gimp.org/" target="_blank" rel="noopener"
>GIMP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 aunque a mi me gusta más el método por terminal usando &lt;a class="link" href="http://www.imagemagick.org/script/index.php" target="_blank" rel="noopener"
>ImageMagick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
  por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">convert archivo.png archivo.jpg
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y con eso hago la conversión.&lt;/p>
&lt;p>El resultado es un meme en el que se tiene un mejor control creativo, aunque claro, habrá quien prefiera no batallar y usar el famoso &lt;a class="link" href="http://www.memegenerator.es/" target="_blank" rel="noopener"
>Meme Generator&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/todo-es-posible.jpg"
alt="Todo es posible" width="825">&lt;figcaption>
&lt;p>Todo es posible&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con la práctica todo este procedimiento no lleva más de 5 minutos y el resultado es muy bueno y profesional.&lt;/p></description></item><item><title>La bola mágica, un divertido script en Ruby</title><link>https://linuxmanr4.com/2015/08/06/la-bola-magica-un-divertido-script-en-ruby/</link><pubDate>Thu, 06 Aug 2015 15:50:10 +0000</pubDate><guid>https://linuxmanr4.com/2015/08/06/la-bola-magica-un-divertido-script-en-ruby/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/la-bola-m%C3%A1gica.png" alt="Featured image of post La bola mágica, un divertido script en Ruby" />&lt;p>El otro día vi un capitulo de los Simpon en el que Milhouse usa una bola mágica a la que le hace preguntas. Por pura diversión hice un pequeño script en Ruby para simular esta la bola mágica ( &lt;a class="link" href="https://es.wikipedia.org/wiki/Magic_8-Ball" target="_blank" rel="noopener"
>Magic 8 Ball&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/Episodio-de-los-Simpson-en-el-que-usan-la-bola-m%C3%A1gica.jpg"
alt="Episodio de los Simpson en el que usan la bola mágica">&lt;figcaption>
&lt;p>Episodio de los Simpson en el que usan la bola mágica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El dispositivo original es bastante ingenioso, se le hace una pregunta a la bola mágica que tiene en su interior un &lt;a class="link" href="https://es.wikipedia.org/wiki/Icosaedro" target="_blank" rel="noopener"
>icosaedro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y en cada una de sus caras tiene grabada una respuesta que se puede ver a través de una ventanilla.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/no-cuentes-con-ello.gif"
alt="no cuentes con ello">&lt;figcaption>
&lt;p>no cuentes con ello&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-script">El script
&lt;/h2>&lt;p>Según la wikipedia, la bola mágica original tiene 20 respuestas, de las cuales 10 son positivas, 5 negativas y 5 vagas (pueque si , pueque no, pero lo más seguro es que quien sabe).&lt;/p>
&lt;p>El script es en exceso simple, el arreglo &lt;strong>mensajes&lt;/strong> contiene todas las respuestas posibles y se elige una respuesta al azar con una variable de la clase &lt;strong>Random.&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/listado-del-script.png"
alt="listado del script bola mágica">&lt;figcaption>
&lt;p>listado del script bola mágica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Dicen que es buena practica declarar una nueva variable cada vez que se ejecuta el programa para generar una nueva semilla aleatoria. Al final, el programa elige una respuesta en base al índice del arreglo que contiene los mensajes y lo muestra en la pantalla.&lt;/p>
&lt;p>Y si dudan del poder de la bola mágica aquí tienen una muestra de su sabiduría.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/08/el-poder-de-la-bola-m%C3%A1gica.png"
alt="el poder de la bola mágica">&lt;figcaption>
&lt;p>el poder de la bola mágica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Bola Mágica&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># bola_magica.rb es un sencillo programa escrito en Ruby que toma simula las respuestas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># de una bola mágica. Espero que se diviertan :).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyright (C) 2015 Francisco Javier de la Torre Inguanzo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Francisco Javier de la Torre Inguanzo http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mensajes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;En mi opinión SÍ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Es cierto&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Decididamente así es&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Probablemente&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Buen pronóstico&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Todo apunta a que sí&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Sin duda&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Sí&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Sí - definitivamente&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Debes confiar en ello&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Mmmm...vuelve a intentarlo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Pregunta en otro momento&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Será mejor que no te lo diga ahora&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;No puedo predecirlo ahora&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Concéntrate y vuelve a preguntar&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;No cuentes con ello&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Mi respuesta es no&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Mis fuentes me dicen que no&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Las perspectivas no son buenas&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Muy dudoso&amp;#34;&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Que el azar haga su parte&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">Random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">system&lt;/span> &lt;span class="s2">&amp;#34;clear&amp;#34;&lt;/span> &lt;span class="c1"># Para limpiar la pantalla.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;Haga su pregunta: &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="no">STDOUT&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">flush&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pregunta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">gets&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">chomp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;La respuesta es: &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="n">mensajes&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rand&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">..&lt;/span>&lt;span class="mi">19&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="no">Espero&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">se&lt;/span> &lt;span class="n">diviertan&lt;/span> &lt;span class="p">:)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Windows 10 ¿Gratis? no lo creo, todo tiene un precio</title><link>https://linuxmanr4.com/2015/07/30/windows-10-gratis-no-lo-creo-todo-tiene-un-precio/</link><pubDate>Thu, 30 Jul 2015 16:09:22 +0000</pubDate><guid>https://linuxmanr4.com/2015/07/30/windows-10-gratis-no-lo-creo-todo-tiene-un-precio/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/Expos%C3%A9-y-Multiples-Escritorios.jpg" alt="Featured image of post Windows 10 ¿Gratis? no lo creo, todo tiene un precio" />&lt;p>Windows 10 gratis, definitivamente es algo que llama la atención. No se puede permanecer indiferente a la salida de un nuevo sistema operativo de Microsoft y menos cuando se anuncia que esta nueva versión llamada Windows 10 será gratis (con algunas restricciones, claro).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/windows-10-gratis.jpg"
alt="windows 10 gratis">&lt;figcaption>
&lt;p>windows 10 gratis&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De entrada me dispuse a ver este video con un &lt;em>review&lt;/em> de las novedades de Windows 10, que aunque parece pagado, eso si, esta muy bien hecho.&lt;/p>
\[youtube id="W7c6eXHzPes" width="600" height="340" position="center"\]&lt;h2 id="demasiadas-similitudes-con-linux">Demasiadas similitudes con Linux
&lt;/h2>&lt;p>Lo primero que noto son demasiadas similitudes con Linux. Algunas opciones visuales que están disponibles en Linux desde hace décadas como los escritorios múltiples han estado presentes en entornos gráficos linuxeros desde que empecé a utilizarlos.&lt;/p>
&lt;p>El efecto &lt;em>Exposé&lt;/em> que hizo popular a Beryl (que evolucionó posteriormente a Compiz) también esta presente y eso le ha ganado adeptos, incluso algunos linuxeros le han dado comentarios favorables.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/Expos%C3%A9-y-Multiples-Escritorios.jpg"
alt="Exposé y Multiples Escritorios ¿Novedades en Windows 10?">&lt;figcaption>
&lt;p>Exposé y Multiples Escritorios ¿Novedades en Windows 10?&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Las paletas de colores, iconos y estilos evocan a KDE, aunque no estoy muy seguro, porque hace mucho tiempo que estoy utilizando Gnome/Cinnamon.&lt;/p>
&lt;p>Hasta el novedoso &lt;a class="link" href="https://es.wikipedia.org/wiki/Microsoft_Edge" target="_blank" rel="noopener"
>Microsoft Edge&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 , el sucesor del caduco Internet Explorer, parece una copia barata de la propuesta que hizo Chrome cuando se hizo su aparición hace ya algunos años y que actualmente domina el mercado de navegadores.&lt;/p>
&lt;p>Todo esto me hace pensar que empezaron a &amp;ldquo;adaptar&amp;rdquo; algunas opciones populares presenten en otros sistemas operativos para integrarlas en Windows 10.&lt;/p>
&lt;p>Parece que ya se empieza a notar el cambio en la dirección de Microsoft con &lt;a class="link" href="https://es.wikipedia.org/wiki/Satya_Nadella" target="_blank" rel="noopener"
>Satya Nadella&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 abriéndose un poco más a la comunidad, escuchando a sus clientes, liberando algunas cosas, otras ofreciendolas de manera gratuita, pero yo no me fío, en algún lado debe de estar el truco.&lt;/p>
&lt;h2 id="gratis-peroa-cambio-de-que">Gratis pero a cambio de que
&lt;/h2>&lt;p>Efectivamente, la instalación de Windows 10 (con algunas condiciones) es gratuita, pero tiene un precio. A cambio usted amigo, amiga, debe de estar dispuesto a proporcionar una gran cantidad de información personal y para muestra.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/Informaci%C3%B3n-Personal.png"
alt="La información que va a parar a Microsoft solamente por usar Windows 10">&lt;figcaption>
&lt;p>La información que va a parar a Microsoft solamente por usar Windows 10&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nombres, direcciones, teléfonos, &lt;strong>contraseñas&lt;/strong>, información demográfica, gustos e intereses, sus contactos, etc. Si tiene más curiosidad pueden revisar la &lt;a class="link" href="https://www.microsoft.com/en-us/privacystatement/default.aspx" target="_blank" rel="noopener"
>Microsoft Privacy Statement&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 . En el mejor de los casos Microsoft asegura que toda esta información es para entregar una mejor experiencia de usuario, momento, creo que acabo de escuchar una carcajada &lt;a class="link" href="https://es.wikipedia.org/wiki/Edward_Snowden" target="_blank" rel="noopener"
>Edward Snowden&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
:)&lt;/p>
&lt;p>Me pregunto ¿Que estarán pensando ahora los gobiernos de Rusia y China?.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Antes de instalar esta nueva versión pregúntate ¿Qué [característica][novedad][función] está presente en Windows 10 que no puedas hacer actualmente en [Windows 7][Windows 8][Linux]? Si no te viene nada a la mente, lo mejor es esperar un poco.&lt;/p>
&lt;p>Muchas de las novedades que vienen en Windows 10 las uso en Linux desde hace tiempo, con la ventaja de que si algo no me gusta, lo puedo adaptar, quitar o mejorar, así que no me sorprenden mucho.&lt;/p>
&lt;p>Microsoft desde hace tiempo que no va a la punta en cuestión de creatividad, pero sigue siendo una empresa muy influyente, creo que la última innovación importante que hizo Microsoft fue el &lt;em>mouse&lt;/em> con ruedita.&lt;/p></description></item><item><title>¿Quién esta conectado a mi Wifi?</title><link>https://linuxmanr4.com/2015/07/07/quien-esta-conectado-a-mi-wifi/</link><pubDate>Tue, 07 Jul 2015 21:46:44 +0000</pubDate><guid>https://linuxmanr4.com/2015/07/07/quien-esta-conectado-a-mi-wifi/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/ladron-de-internet.png" alt="Featured image of post ¿Quién esta conectado a mi Wifi?" />&lt;p>No se si a ustedes les ha pasado, pero hay personas algo paranoicas que al ver los foquitos del módem inalámbrico parpadeando &amp;ldquo;intensamente&amp;rdquo; creen que les están robando el Internet y entonces surge una duda ¿Quién esta conectado a mi red?. Aunque muchas veces no es nada y el parpadeo es normal, siempre hay una posibilidad de que alguien esté &amp;ldquo;colgado&amp;rdquo; de su red sin su permiso.&lt;/p>
&lt;p>Durante años he visto herramientas como del tipo &lt;strong>Keygen Router&lt;/strong> o &lt;strong>WiFi Gratis App&lt;/strong> y aplicaciones por el estilo que aprovechan algunas vulnerabilidades en los aparatos que proporcionan los distribuidores de Internet y que son muy fáciles de usar, dándole a cualquier persona que tenga un celular con android y un mínimo conocimiento la capacidad de conectarse a tu red inalámbrica.&lt;/p>
&lt;h2 id="fing">Fing
&lt;/h2>&lt;p>Al mismo tiempo que un celular puede ser una amenaza también es una excelente herramienta para detectar intrusiones. &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.overlook.android.fing&amp;amp;hl=es_419" target="_blank" rel="noopener"
>Fing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es de esas aplicaciones que no deben de faltar si te dedicas a instalar o administrar redes.&lt;/p>
&lt;p>Usar Fing es un paseo por el campo, lo primero que pide es hacer un escaneo de tu red y aparecerán todos los dispositivos que están conectados en ese momento y te dará información básica de los elementos que están conectados en ese momento a tu red.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/escaneo-inicial-de-la-red.png"
alt="Fing escaneo inicial de la red \| Quien esta conectado a mi wifi">&lt;figcaption>
&lt;p>Fing escaneo inicial de la red | Quien esta conectado a mi wifi&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si estas en una casa, verás tus teléfonos celulares, la laptop, el &amp;ldquo;equisbocs&amp;rdquo; y quizás hasta un SmarTV y eso es normal, se supone que deben de estar conectados y no hay problema, deberías de estar más tranquilo.&lt;/p>
&lt;p>El problema es que aparezca algún dispositivo &amp;ldquo;desconocido&amp;rdquo; entonces la paranoia estará más que justificada.&lt;/p>
&lt;h2 id="aparecen-dispositivos-que-no-conozco-qué-puedo-hacer">Aparecen dispositivos que no conozco ¿Qué puedo hacer?
&lt;/h2>&lt;p>Ya hiciste tu listita de dispositivos y ese &amp;ldquo;aparatito extraño&amp;rdquo; simplemente no está en tu casa. ¡Ahhhh mello!. Ante este escenario puedes hacer algunas cosas.&lt;/p>
&lt;h3 id="cambiar-la-contraseña-por-default">Cambiar la contraseña por default.
&lt;/h3>&lt;p>Esto lo deberías de hacer sí o sí, al momento de desempacar el módem inalámbrico lo primero que hay que hacer es cambiar la contraseña por &lt;em>default&lt;/em> del aparato.&lt;/p>
&lt;p>Este es el punto de entrada para muchos &lt;em>juaquers&lt;/em> y por favor, establece que la seguridad de la conexión sea &lt;a class="link" href="https://es.wikipedia.org/wiki/Wi-Fi_Protected_Access" target="_blank" rel="noopener"
>WPA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;strong>WPA2 (recomendable)&lt;/strong> en lugar de la altamente vulnerable y afortunadamente cada vez menos usada &lt;a class="link" href="https://es.wikipedia.org/wiki/Wired_Equivalent_Privacy" target="_blank" rel="noopener"
>WEP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/seguridad-inal%C3%A1mbrica-wpa.png"
alt="Seguridad inalámbrica">&lt;figcaption>
&lt;p>Seguridad inalámbrica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es cuando debes de aplicar la política de &lt;a class="link" href="https://es.wikipedia.org/wiki/RTFM" target="_blank" rel="noopener"
>RTFM&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y buscar ese librito que nadie hace caso (que generalmente termina en la basura) y buscar las instrucciones para cambiar la contraseña. Total, si algo sale mal presionas el botón de &lt;strong>Reset&lt;/strong> y vuelves a empezar.&lt;/p>
&lt;p>¿Que tu red no tiene contraseña? bueno, pues solo te falta el tapete de bienvenida y unos bocadillos.&lt;/p>
&lt;h3 id="permitir-conexiones-solamente-por-dirección-mac">Permitir conexiones solamente por dirección MAC
&lt;/h3>&lt;p>Esta medida es para usuarios más avanzados. Algunos aparatos tiene una opción que al activarla solo permiten que se conecten dispositivos que están en una lista de &lt;a class="link" href="https://es.wikipedia.org/wiki/Direcci%C3%B3n_MAC" target="_blank" rel="noopener"
>MAC address&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
autorizadas.&lt;/p>
&lt;p>La dirección MAC es como el IMEI de los celulares, es única para cada dispositivo de red, así que o estas en la lista o no te conectas. Es una política de bloquear todo y solo dejar pasar a los que están autorizados y si son muchos aparatos puede ser algo engorroso dar de alta a todos los dispositivos.&lt;/p>
&lt;p>Fing también proporciona la dirección MAC de todo lo que esta conectado a tu red y te puede ayudar a identificarlos.&lt;/p>
&lt;h3 id="apagar-el-punto-de-acceso-wifi">Apagar el punto de acceso WiFi
&lt;/h3>&lt;p>Aparte de lo anterior, también es posible apagar el ruteador de Internet cuando no se está utilizando, se puede colocar en un multicontactos que se apaga al final del día o se le puede colocar un &lt;em>timer&lt;/em> para que se encienda y apague a ciertas horas.&lt;/p>
&lt;p>Otra señal de que tu Internet está siendo sustraído por algún extraño es que esta inusualmente lento en algunos horarios (o todo el tiempo) y eso si es realmente molesto.&lt;/p>
&lt;p>Espero que estos consejos les sean de utilidad.&lt;/p></description></item><item><title>Descargar en una imagen jpg un mapa de Google Maps</title><link>https://linuxmanr4.com/2015/07/02/descargar-en-una-imagen-jpg-un-mapa-de-google-maps/</link><pubDate>Thu, 02 Jul 2015 21:45:01 +0000</pubDate><guid>https://linuxmanr4.com/2015/07/02/descargar-en-una-imagen-jpg-un-mapa-de-google-maps/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/descargar-mapas-de-google-maps.jpg" alt="Featured image of post Descargar en una imagen jpg un mapa de Google Maps" />&lt;p>En más de una ocasión se me ha ofrecido descargar un un mapa de Google Maps en formato de imagen ya sea para ilustrar indicaciones en una invitación, establecer alguna ruta o resaltar algunos detalles.&lt;/p>
&lt;p>Muchas veces basta con un simple &lt;em>screenshot&lt;/em> de la pantalla y esta bien, pero eso incluye muchos elementos que a lo mejor no quieres en la imagen, como información de los satélites, escalas, &lt;a class="link" href="https://es.wikipedia.org/wiki/Rosa_de_los_vientos" target="_blank" rel="noopener"
>Rosa de los vientos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 , cuadros de búsqueda, opciones, etc.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/P%C3%A1gina-de-Google-Maps.jpg"
alt="Página de Google Maps">&lt;figcaption>
&lt;p>Página de Google Maps&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hasta hace poco usaba el programa &lt;a class="link" href="http://www.qgis.org/es/site/" target="_blank" rel="noopener"
>QGis&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para obtener estas imágenes, pero para lo que hago creo que estoy usando maquinaria pesada cuando todo lo que necesito es un martillo. Además, en la última actualización de Manjaro dejó de funcionar así que tenía que buscar otras opciones.&lt;/p>
&lt;h2 id="mapping-on-php">Mapping on PHP
&lt;/h2>&lt;p>Supuse que debía de existir un servicio web y así fue como dí con &lt;strong>mapping.onphp.net&lt;/strong> , no se si es una página formal o un experimento porque tiene un diseño muy austero pero funciona bastante bien.&lt;/p>
&lt;p>Se puede buscar la ubicación, acomodar los detalles que quieres que aparezcan, pero lo que más me gustó es que se puede especificar el tamaño del mapa, ya sea en milímetros, píxeles, pulgadas o en algún tamaño estandarizado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/ocultar-controles.png"
alt="Ocultar controles">&lt;figcaption>
&lt;p>Ocultar controles&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="lo-malo">Lo malo
&lt;/h2>&lt;p>Uno esperaría algún botón que iniciara la descarga de la imagen pero no hay tal. El paso final involucra capturar la pantalla del navegador, no es lo ideal, pero no hay de otra en este caso.&lt;/p>
&lt;p>Dependiendo del tamaño del mapa se puede hacer un &lt;em>screenshot&lt;/em> y luego recortar la imagen. O se puede usar un complemento como &lt;a class="link" href="http://www.awesomescreenshot.com/" target="_blank" rel="noopener"
>Awesome Screenshot&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Chrome o usando la función de screenshot que viene incluida en Firefox (sólo por mencionar algunos).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/Usando-screengrab-para-capturar-la-imagen.jpg"
alt="Complemento Screengrab">&lt;figcaption>
&lt;p>Complemento Screengrab&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa forma pude obtener una imagen de un mapa que después puedo manipular con otros programas como Inkscape o Gimp. ¡Yeeeeeeei!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/mapa-de-helsinki.jpg"
alt="Mapa de Helsinki en google maps">&lt;figcaption>
&lt;p>Mapa de Helsinki en google maps&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver el resultado es una imagen limpia y clara. Espero que les sirva este consejo, porque ya no quiero ver &lt;em>croquis&lt;/em> hechos a mano para llegar a esa quinta donde será la fiesta de la quinceañera. ¡He dicho!&lt;/p>
&lt;p>&lt;strong>Actualización&lt;/strong>: Lamentablemente este método dejó de funcionar debido a cambios en las condiciones de uso de Google. Es una lástima, porque visualmente entregaba unos mapas muy agradables.&lt;/p>
&lt;h2 id="también-se-puede-con-openstreetmap">También se puede con OpenStreetMap
&lt;/h2>&lt;p>Hago una actualización a este artículo porque me he enterado de una opción que tiene &lt;a class="link" href="https://www.openstreetmap.org" target="_blank" rel="noopener"
>OpenStreetMap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para descargar un mapa en formato PNG, JPG, SVG o PDF.&lt;/p>
&lt;p>Los mapas de &lt;a class="link" href="https://es.wikipedia.org/wiki/OpenStreetMap" target="_blank" rel="noopener"
>OpenStreetMap (wikipedia)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
son creados por una activa comunidad que continuamente los está mejorando.&lt;/p>
&lt;p>Para descargar un mapa solo se tiene que hacer clic en la opción de &lt;strong>compartir&lt;/strong> y aparecerá un menú con varias opciones para elegir el área del mapa deseada y el formato del archivo a descargar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/07/descargar-un-mapa-en-openstreetmap.jpg"
alt="descargar un mapa en openstreetmap">&lt;figcaption>
&lt;p>descargar un mapa en openstreetmap&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo se tiene que presionar el botón de &lt;strong>Descargar&lt;/strong> y la imagen del mapa estará en tu computadora ¡Facilisimo!.&lt;/p></description></item><item><title>Mejorar la señal de un aparato WiFi que no tiene antena</title><link>https://linuxmanr4.com/2015/06/30/mejorar-senal-aparato-wifi-no-tiene-antena/</link><pubDate>Tue, 30 Jun 2015 16:24:00 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/30/mejorar-senal-aparato-wifi-no-tiene-antena/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/antena-de-lata-de-aluminio.jpg" alt="Featured image of post Mejorar la señal de un aparato WiFi que no tiene antena" />&lt;p>Hace unos días publiqué unas antenas de cartón para mejorar la señal WiFi de un dispositivo que tiene una antena, pero ¿Y los que no tienen antena?.&lt;/p>
&lt;p>Ya les había comentado que la gran mayoría de los proveedores de Internet le dan a sus clientes unos aparatos sencillos con una capacidad de cobertura muy limitada, lo suficiente para una casa mediana y nada más. Los de Infinitum, Megacable y demás dirán que es para evitar interferencias, pero la realidad es que no quieren que compartas el internet con tus vecinos para obligar a contratar el servicio.&lt;/p>
&lt;p>Cuando la señal de internet no es suficiente, muchas personas terminan comprando amplificadores o puntos de acceso inalámbricos de mayor capacidad que conectan al que le proporciona su proveedor de internet para mejorar la señal.&lt;/p>
&lt;h2 id="para-mejorar-la-señal-aluminio-al-rescate">Para mejorar la señal, aluminio al rescate
&lt;/h2>&lt;p>Estaba revisando un artículo de los amigos de XenodeSystems &lt;em>Problemas de conectividad con Arris tg862g izzi&lt;/em> y una posible solución a este problema es colocando una placa de aluminio que se obtiene fácilmente de una lata de refresco (o de cerveza funciona igual) en la parte posterior del aparato como una especie de reflector. La verdad no lo he probado pero parece ser que funciona.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/yz4aPaebe-k"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Recuerden que no pueden abrir o modificar el aparato que les entrega su proveedor de internet, es prestado para darle el servicio y si decide cancelar el servicio lo tiene que devolver. Por eso es interesante esta opción, ya que no modifica en ninguna forma el aparato.&lt;/p>
&lt;p>Solo tengo un problema con la prueba que hacen en el video, en lugar de hacer un SpeedTest  creo que hubiera sido mejor hacer pruebas de calidad de la señal con una herramienta como &lt;a class="link" href="http://www.netstumbler.com/downloads/" target="_blank" rel="noopener"
>Netstumbler&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o similar para comprobar si efectivamente funciona o no.&lt;/p>
&lt;p>Recuerden que si utilizan una lata de cerveza, primero hagan la antena y luego se toman el contenido porque les pueden salir los recortes chuecos y eso &amp;ldquo;afecta&amp;rdquo; la calidad de manufactura de la antena.&lt;/p>
&lt;p>Si aplican este consejo me gustaría mucho que compartieran sus resultados.&lt;/p></description></item><item><title>Señal de cruce de peatones</title><link>https://linuxmanr4.com/2015/06/25/senal-de-cruce-de-peatones/</link><pubDate>Thu, 25 Jun 2015 17:01:28 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/25/senal-de-cruce-de-peatones/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/cruce-de-peatones.png"
alt="cruce de peatones">&lt;figcaption>
&lt;p>cruce de peatones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por aquí les dejo esta señal de &lt;strong>Cruce de Peatones&lt;/strong> hecha en &lt;a class="link" href="https://inkscape.org/es/" target="_blank" rel="noopener"
>Inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;strong>.&lt;/strong> Como pueden ver es un diseño muy simple, un cuadrado ligeramente redondeado y que se giró 45º, el color del fondo amarillo es el #ffcc00 , algunas lineas gruesas con terminado redondeado para hacer el camino. Líneas de &lt;a class="link" href="https://es.wikipedia.org/wiki/Curva_de_B%C3%A9zier" target="_blank" rel="noopener"
>Bézier&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para hacer la silueta humana y un circulo para la cabeza.&lt;/p>
&lt;p>Si quieren tomar este diseño les dejo el archivo para su descarga.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2015/06/cruce-de-peatones.svg_.zip" >&lt;strong>Cruce de peatones.svg.zip&lt;/strong>&lt;/a>
&lt;/p></description></item><item><title>Antena para WiFi EZ-10</title><link>https://linuxmanr4.com/2015/06/22/antena-para-wifi-ez-10/</link><pubDate>Mon, 22 Jun 2015 20:52:45 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/22/antena-para-wifi-ez-10/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/antena-ez10-vista-frontal.jpg" alt="Featured image of post Antena para WiFi EZ-10" />&lt;p>Esta antena para WiFi en realidad se trata de un &lt;a class="link" href="https://es.wikipedia.org/wiki/Antena#Antenas_con_reflector" target="_blank" rel="noopener"
>reflector&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y se coloca en la antena omnidireccional que trae integrada el punto de acceso inalámbrico y mejora la recepción al &amp;ldquo;enfocar&amp;rdquo; la recepción-emisión de datos en una dirección.&lt;/p>
&lt;p>No es la quinta maravilla, ni tampoco es muy &lt;em>glamorosa&lt;/em> pero funciona bastante bien. Esta sencilla antena de cartón y aluminio logrará aumentar la fuerza de la señal de un 17 a un 25%. Se que no es mucho pero pero algo es algo.&lt;/p>
&lt;h2 id="elaboración">Elaboración
&lt;/h2>&lt;p>Su elaboración es muy sencilla, imprimes las plantillas en un cartón o se pueden calcar en uno. En mi caso un par de carpetas cumplieron con el propósito y como material reflector las forré con papel aluminio en la parte trasera.&lt;/p>
&lt;p>El diseño de esta antena se llama &lt;a class="link" href="http://www.freeantennas.com/projects/Ez-10/" target="_blank" rel="noopener"
>EZ-10&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y tienen la ventaja de que no es necesario comprar cables, ni conectores especiales o modificar sustancialmente el aparato (y por lo tanto no pierdes la garantía).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/antena-ez10-vista-posterior.jpg"
alt="Antena EZ10 vista posterior" width="1024">&lt;figcaption>
&lt;p>Antena EZ10 vista posterior&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="pros-y-contras">Pros y Contras
&lt;/h2>&lt;p>Como pueden ver la construcción y elaboración de estas antenas para wifi es muy simple, casi es una tarea de preescolar, los materiales son fáciles de conseguir, el armado es muy sencillo y tiene un reducido costo de manufactura. Este consejo no solo se puede aplicar a puntos de acceso inalámbricos, también se puede aplicar a tarjetas de red inalámbricas o a las que tienen una conexión USB, de esta forma pueden ganar calidad de señal o mayor velocidad en el enlace.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/realtek-usb-wifi.jpg"
alt="USB Wifi" width="300">&lt;figcaption>
&lt;p>USB Wifi&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El único inconveniente es que necesitan una antena para poder colocar el reflector y actualmente muchos ruteadores y puntos de acceso inalámbricos (como por ejemplo los de Infinitum) carecen de antenas.&lt;/p>
&lt;p>La razón es muy simple, no les interesa tener una mayor área de cobertura, al contrario, son tan populares que en tu misma cuadra es probable que captes dos o tres señales, así que entre menos área abarquen mejor para el proveedor de internet.&lt;/p>
&lt;p>Si algún día se te ofrece aumentar la fuerza de tu señal pues ya sabes, papel, tijeras, un poco de pegamento y manos a la obra.&lt;/p></description></item><item><title>Elegir un tema para wordpress</title><link>https://linuxmanr4.com/2015/06/19/elegir-un-tema-para-wordpress/</link><pubDate>Fri, 19 Jun 2015 18:32:11 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/19/elegir-un-tema-para-wordpress/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/responsive.png" alt="Featured image of post Elegir un tema para wordpress" />&lt;p>Y es que el tema para Wordpress si importa (o eso parece).&lt;/p>
&lt;p>Ya tengo mucho tiempo escribiendo en mi blog y siempre he usado Wordpress, es un sistema de publicación de contenido al que me he acostumbrado, lo conozco  y generalmente no da problemas.&lt;/p>
&lt;p>Anteriormente estaba hospedado en &lt;a class="link" href="https://linuxmanr4.com/2013/11/30/adios-linuxman-blogsome-com/" >Blogsome&lt;/a>
 , que también usaba Wordpress hasta que un buen día decidió apagar sus servidores y tuve que migrar a otro sitio.&lt;/p>
&lt;p>En Blogsome no había mucha variedad de temas disponibles, pero se podían ajustar y adecuar. Es decir, tomaba un tema base al que personalizaba a mi gusto y durante mucho tiempo funcionó bien ( &lt;a class="link" href="https://web.archive.org/web/20070828123555/http://linuxman.blogsome.com/" target="_blank" rel="noopener"
>un viaje al pasado&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) .&lt;/p>
&lt;p>Al cambiar de &lt;em>hosting&lt;/em> tuve que aprender muchas cosas nuevas. Hice una instalación nueva de Wordpress, me las tuve que arreglar con el &lt;a class="link" href="https://es.wikipedia.org/wiki/CPanel" target="_blank" rel="noopener"
>CPanel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de mi proveedor de hosting (que no se que opinen, pero no me parece intuitivo) y migrar todo el contenido a este nuevo espacio.&lt;/p>
&lt;p>Poco a poco las cosas fueron saliendo bien y fui recuperando las visitas de antaño, no igual pero tampoco me preocupa demasiado. Este espacio lo hice para compartir experiencias, mis opiniones y como documentación de algunas cosas. En Linux las cosas pueden funcionar bien por años y no dar problemas, por eso es común que se olviden como hacerlas. En más de una ocasión este blog me ha ahorrado tiempo al recordarme como hice tal o cual cosa.&lt;/p>
&lt;p>No se si se han dado cuenta, pero en los últimos meses le he movido mucho al tema de este blog, me he concentrado en la apariencia y no en el contenido.&lt;/p>
&lt;h2 id="google-quiere-responsive">Google quiere responsive
&lt;/h2>&lt;p>Todo esto pasó porque el buen amigo Google que todo lo indexa declaró que le daría preferencia a los sitios que fueran &lt;em>Responsive&lt;/em> (o &lt;a class="link" href="https://es.wikipedia.org/wiki/Dise%C3%B1o_web_adaptable" target="_blank" rel="noopener"
>Diseño Web Adaptable&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>Así que vi una oportunidad para hacer algunas mejoras, pero parece que no funcionaron como esperaba.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Estad%C3%ADsticas-por-mes.png"
alt="Estadísticas por mes">&lt;figcaption>
&lt;p>Estadísticas por mes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Durante el mes de abril y mayo use el &lt;a class="link" href="https://mythemeshop.com/themes/business/" target="_blank" rel="noopener"
>tema Business de MyThemeShop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 y espero que no me lo tomen a mal, porque hacen un muy buen trabajo y tienen un excelente soporte, pero las visitas comenzaron a desplomarse como peso frente al dólar.&lt;/p>
&lt;p>No se que pasó, el tema es &lt;em>responsive&lt;/em>, esta bien hecho, se veía bien en el escritorio, tabletas y celulares, tenía muchas opciones interesantes, era fácil de configurar ¡pero sin visitas!.&lt;/p>
&lt;p>Antes de que continuaran bajando las visitas hasta llegar al inframundo hice un cambio, me fui por el camino ya conocido de usar un tema para wordpress probado, &lt;em>responsive&lt;/em> y con la posibilidad de modificarlo a mi gusto.&lt;/p>
&lt;p>Así que elegí el tema &lt;a class="link" href="https://codex.wordpress.org/Twenty_Fifteen" target="_blank" rel="noopener"
>Twenty fifteen&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que se publicó en este año y ya se empiezan a ver los resultados. Las visitas han aumentado y también los comentarios.&lt;/p>
&lt;p>La documentación del tema Twenty Fifteen es excelente, desde el CSS hasta el código fuente, todo esta bien comentado.  Lamentablemente no se hacer &lt;a class="link" href="https://codex.wordpress.org/Child_Themes" target="_blank" rel="noopener"
>Child themes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 pero creo que no me escapo si no quiero perder mis modificaciones cada vez que actualicen el tema.&lt;/p>
&lt;p>No se puede controlar lo que no se puede medir, así que estuve revisando los resultados de mi página al aplicarle las pruebas de &lt;a class="link" href="https://developers.google.com/speed/pagespeed/insights/" target="_blank" rel="noopener"
>PageSpeed Insights&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Resultados-de-PageSpeed-Insights.png"
alt="Resultados de PageSpeed Insights">&lt;figcaption>
&lt;p>Resultados de PageSpeed Insights&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hagan la prueba en sus sitios a ver que resultados obtienen, nunca he obtenido los 100 puntos, pero al menos ya estoy cerca.&lt;/p>
&lt;p>¿Porqué funciona mejor un tema que otro? Lo desconozco, realmente no me lo explico pero los números no mienten. No escribo mucho, una o dos notas por semana a lo mucho y eso si tengo oportunidad, así que supongo que el contenido no influye tanto. En fin, parece que para Google las apariencias si importan.&lt;/p></description></item><item><title>Como limpiar mi computadora de virus, malware y otros bichos</title><link>https://linuxmanr4.com/2015/06/15/como-limpiar-mi-computadora-de-virus-malware-y-otros-bichos/</link><pubDate>Mon, 15 Jun 2015 16:28:18 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/15/como-limpiar-mi-computadora-de-virus-malware-y-otros-bichos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/cultivos-de-bacterias-en-cajas-de-petri.jpg" alt="Featured image of post Como limpiar mi computadora de virus, malware y otros bichos" />&lt;p>Quise hacer este pequeño tutorial para aquellos que han descendido a lo más bajo del infierno de las computadoras y se encuentran con equipos lentos, que son un martirio usarlos o les brinca publicidad a la menor provocación.&lt;/p>
&lt;p>He visto últimamente equipos plagados de &lt;strong>virus&lt;/strong> y &lt;strong>malware&lt;/strong> que afectan severamente el desempeño de una computadora con Windows. El arranque puede ser tortuosamente lento, el desempeño fatal o también se puede dar el caso de que la computadora le informe sobre errores en el registro o de virus y la única solución es comprar un producto de cierta compañía, claro por una módica suma.&lt;/p>
&lt;p>Todo esto que comento es común en el ambiente operado por Windows, algunos dirán que es inevitable.&lt;/p>
&lt;h2 id="para-todo-mal-formatear-y-para-todo-bien-también">Para todo mal formatear (y para todo bien también).
&lt;/h2>&lt;p>En Windows tarde o temprano se va a tener que formatear, ya sea para actualizar el sistema o porque no hay otra mejor opción. A veces la computadora queda inutilizable y lo mejor es formatear para tener un inicio fresco, pero no por ello es más sencillo.&lt;/p>
&lt;p>Si no se hace con cuidado, formatear puede no servir de mucho. No se les olvide hacer un respaldo primero de todos sus archivos importantes y por favor, revísenlos con un buen antivirus, si sus archivos están infectados con algún virus no van a salir de perico perro.&lt;/p>
&lt;p>A veces no hay nada importante y formatear la computadora o usar los mecanismos de restauración son una buena y rápida alternativa para recuperar el rendimiento de la computadora.&lt;/p>
&lt;p>Si decide el camino de intentar desinfectar una computadora, prepárese, le puede llevar varias horas completar esta serie de procedimientos. Juntos son como una especie de mezcla de cloro, desinfectante, ácido muriático y antibióticos, cada uno de los programas recomendados complementa a los otros y al final el objetivo es recuperar su computadora.&lt;/p>
&lt;p>Siempre puede salir &lt;a class="link" href="https://linuxmanr4.com/2016/01/13/algo-pasa-con-el-software-de-apple/" >algo mal&lt;/a>
, así que no esta de más hacer un respaldo general de los archivos más importantes solo como una precaución adicional.&lt;/p>
&lt;h2 id="una-limpieza-primero-con-ccleaner">Una limpieza primero con CCleaner
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/ccleaner.png"
alt="CCleaner">&lt;figcaption>
&lt;p>CCleaner&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es recomendable empezar con una limpieza del equipo. No es necesario revisar esos 3 o 4 GB de archivos temporales que solo sirven para hacer más lento el escaneo, mismo que vamos a hacer varias veces con distintos programas.&lt;/p>
&lt;p>Para hacer la limpieza me gusta el programa &lt;a class="link" href="https://www.piriform.com/CCLEANER" target="_blank" rel="noopener"
>CCleaner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de la compañía Piriform.&lt;/p>
&lt;p>La versión FREE hace un buen trabajo y es más que suficiente.&lt;/p>
&lt;p>&lt;strong>Actualización&lt;/strong>. Debido a que burlaron la seguridad de &lt;strong>CCleaner&lt;/strong> y este mismo programa instalaba un malware lo he dejado de utilizar (léase: &lt;a class="link" href="https://blog.malwarebytes.com/security-world/2017/09/infected-ccleaner-downloads-from-official-servers/" target="_blank" rel="noopener"
>\[Updated\] Infected CCleaner downloads from official servers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 ), simplemente se perdió la confianza.&lt;/p>
&lt;p>En su lugar, ahora utilizo las herramientas de &lt;a class="link" href="https://www.glarysoft.com/" target="_blank" rel="noopener"
>Glary Utilities&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que hacen más o menos lo mismo.&lt;/p>
&lt;h2 id="spybot-search--destroy">Spybot Search &amp;amp; Destroy
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.safer-networking.org/" target="_blank" rel="noopener"
>Spybot S&amp;amp;D&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un veterano en la búsqueda de &lt;strong>malware&lt;/strong> en computadoras con Windows. Es un excelente programa y me gusta por la opción que tiene llamada &lt;strong>Inmunización&lt;/strong> que previene infecciones o descargas de este tipo de programas.&lt;/p>
&lt;p>No se les olvide que lo primero que hay que hacer después de instalar estos programas es actualizar sus &lt;a class="link" href="https://linuxmanr4.com/2008/02/15/curp-no-se-encuentra-en-la-base-de-datos/" >bases de datos&lt;/a>
.&lt;/p>
&lt;p>Después de instalar Spybot, hay que aplicar una &lt;strong>Inmunización&lt;/strong> y luego un &lt;strong>Escaneo total del equipo&lt;/strong>.&lt;/p>
&lt;h2 id="malware-bytes">Malware Bytes
&lt;/h2>&lt;p>Después de ejecutar Spybot sigue otro programa similar, &lt;a class="link" href="https://www.malwarebytes.com/es/" target="_blank" rel="noopener"
>Malware Bytes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
realiza más o menos las mismas funciones que el programa anterior, sólo que no tiene una opción de inmunización.&lt;/p>
&lt;p>Después de instalarlo, actualizarlo y hacer un escaneo completo no es raro que detecte más bichos pendientes de eliminar que haya pasado por alto Spybot S&amp;amp;D, es por eso que les digo que estos programas se complementan.&lt;/p>
&lt;h2 id="un-antivirus">Un antivirus
&lt;/h2>&lt;p>A estas alturas el sistema ya debe de estar más o menos utilizable, pero es probable que queden algunos virus en la computadora.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Avira-An%C3%A1lisis-completo-del-sistema.png"
alt="Avira Free Edition">&lt;figcaption>
&lt;p>Avira Free Edition&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para esta tarea tengo dos favoritos, &lt;a class="link" href="https://www.avira.com/es/avira-free-antivirus" target="_blank" rel="noopener"
>Avira Free Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="https://www.avast.com/es-mx/index" target="_blank" rel="noopener"
>Avast Free&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ambos programas cuentan con versión de pago, pero las versiones gratuitas ofrecen niveles razonables de protección.&lt;/p>
&lt;p>Instale, actualice y haga un escaneo &lt;strong>completo&lt;/strong> del sistema.&lt;/p>
&lt;h2 id="otra-barridita">Otra barridita
&lt;/h2>&lt;p>Nuevamente es necesario una limpieza con &lt;strong>CCleaner&lt;/strong>, pero ahora no sólo con la opción &lt;strong>Limpiador&lt;/strong>, también aplique una limpieza del &lt;strong>Registro&lt;/strong>, así se eliminarán referencias y autoarranques de programas que fueron eliminados por alguno de los programas anteriores.&lt;/p>
&lt;h2 id="evítese-problemas-instale-linux">Evítese problemas instale Linux
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Manjaro-Netbook-Edition.jpg"
alt="Manjaro Netbook Edition">&lt;figcaption>
&lt;p>Manjaro Netbook Edition&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora que si se quiere evitar todo este tipo de problemas, le pido por favor que considere &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >instalar alguna distribución de Linux&lt;/a>
, hay para todos gustos, sabores, mascotas y colores.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="http://linuxmint.com/" target="_blank" rel="noopener"
>Linux Mint&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
son excelentes opciones para principiantes. Para usuarios más avanzados les puedo recomendar &lt;a class="link" href="https://manjaro.github.io/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es la distribución de linux que estoy usando actualmente para mi uso personal y es una chulada.&lt;/p>
&lt;h2 id="últimas-recomendaciones">Últimas recomendaciones
&lt;/h2>&lt;p>Todos estos programas los he probado personalmente y la mayoría los pueden instalar de forma automatizada usando los servicios del sitio &lt;a class="link" href="https://ninite.com/" target="_blank" rel="noopener"
>Ninite.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(Todos excepto CCleaner).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Ninite-Programas-de-seguridad.png"
alt="Ninite">&lt;figcaption>
&lt;p>Ninite&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si conocen algún otro programa o tienen alguna otra recomendación, les pido que por favor la compartan en los comentarios.&lt;/p></description></item><item><title>Ajustar Update Accelerator para actualizaciones de Avira</title><link>https://linuxmanr4.com/2015/06/10/ajustar-update-accelerator-para-actualizaciones-de-avira/</link><pubDate>Wed, 10 Jun 2015 18:00:01 +0000</pubDate><guid>https://linuxmanr4.com/2015/06/10/ajustar-update-accelerator-para-actualizaciones-de-avira/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Descargar-actualizaciones-de-avira-like-a-boss.jpg" alt="Featured image of post Ajustar Update Accelerator para actualizaciones de Avira" />&lt;p>Hace mucho tiempo que tengo instalado &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, lo hice mi principal herramienta para administrar Internet y la verdad es que me ha funcionado muy bien.&lt;/p>
&lt;p>Le instalé el &lt;em>addon&lt;/em> &lt;a class="link" href="http://blockouttraffic.de/ua_index.php" target="_blank" rel="noopener"
>Update Accelerator&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con el fin de ahorrar un poco de ancho de banda en esas descargas que son frecuentes y repetitivas.&lt;/p>
&lt;p>No se que le pasaba a Avast que después de revisar algunos equipos y hacerles un análisis minuciosos me daba cuenta de que estaban infectados con algunos bichos y Avast tan tranquilo !!!, así que en la primera oportunidad empecé a sustituirlo por &lt;a class="link" href="https://www.avira.com/es/avira-free-antivirus" target="_blank" rel="noopener"
>Avira Free Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El problema es que &lt;strong>Update Accelerator&lt;/strong> esta configurado de fábrica para funcionar con varias fuentes de software, entre ellas el antivirus Avast, pero no con &lt;strong>Avira&lt;/strong> así que si quería seguir aprovechando sus bondades tenía que hacer algunos ajustes.&lt;/p>
&lt;h2 id="modificar-el-archivo-updxlrator">Modificar el archivo updxlrator
&lt;/h2>&lt;p>Todo lo que se va a hacer se concentra en el archivo &lt;strong>/usr/sbin/updxlrator&lt;/strong> así que no es una mala idea hacer una copia de respaldo del archivo por si algo sale mal.&lt;/p>
&lt;p>En mi investigación di con este artículo: &lt;em>Add Custom source to IPCOP Cache&lt;/em> que explica muy bien lo que hay que hacer. El único detalle es que a mi no me funcionó. Parece que las direcciones de los &lt;a class="link" href="https://linuxmanr4.com/2014/11/25/actualizar-microsip-con-un-servidor-web-local/" >servidores de actualización&lt;/a>
que menciona el artículo son diferentes a las actuales o son los que se utilizan cuando se tiene una versión de &lt;strong>Avira&lt;/strong> de paga.&lt;/p>
&lt;p>Para averiguar cual es el sitio del que se descargan las actualizaciones de &lt;strong>Avira&lt;/strong> saqué nuevamente de mi caja de herramientas a un viejo conocido, el programa &lt;a class="link" href="http://www.nirsoft.net/utils/http_network_sniffer.html" target="_blank" rel="noopener"
>HTTP Network Sniffer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, de esa forma supe que todos los archivos los baja desde el dominio &lt;strong>personal.avira-update.com&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/HTTPNetworkSniffer-Avira.jpg"
alt="update accelerator avira - HTTPNetworkSniffer Avira">&lt;figcaption>
&lt;p>update accelerator avira - HTTPNetworkSniffer Avira&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con esta información lo único que resta hacer es modificar el archivo &lt;strong>updxlrator&lt;/strong> para que este al pendiente de las descargas que se hagan desde el servidor de actualizaciones de &lt;strong>Avira&lt;/strong>.&lt;/p>
&lt;p>Al final quedó más o menos como sigue:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -----------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Section: Avira Downloads (custom download)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -----------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">source_url&lt;/span> &lt;span class="o">=~&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">personal&lt;/span>\&lt;span class="o">.&lt;/span>&lt;span class="n">avira&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">update&lt;/span>\&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/.*&lt;/span>\&lt;span class="o">.&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">exe&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="n">dll&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="n">vdf&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="n">dat&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="n">gz&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">$&lt;/span>&lt;span class="n">xlrator_url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">check_cache&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">source_url&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">hostaddr&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">username&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;Other&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">mirror&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -----------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="comprobar-que-funciona">Comprobar que funciona
&lt;/h2>&lt;p>Para comprobar que funcionan los cambios estuve al pendiente de las estadísticas del &lt;em>addon&lt;/em> en el apartado de &lt;strong>Others&lt;/strong> y pude observar como el conteo de archivos subía poco a poco.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/estadisticas-primer-dia.png"
alt="update accelerator avira - Estadisticas del primer dia">&lt;figcaption>
&lt;p>update accelerator avira - Estadisticas del primer dia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/06/Other-al-d%C3%ADa-siguiente.png"
alt="update accelerator avira - Estadísticas al día siguiente">&lt;figcaption>
&lt;p>update accelerator avira - Estadísticas al día siguiente&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esta forma solo se descarga el archivo una vez para todos los clientes de la red que pidan la misma actualización.&lt;/p>
&lt;p>Y ahora que reviso, parece que Microsoft no ha hecho muchos cambios en sus sistemas de actualizaciones y creo que también voy a tener que hacer algunos cambios para las actualizaciones de Apple, pero esa, esa será otra historia.&lt;/p></description></item><item><title>Buscar si el IMEI de un celular esta como robado en México</title><link>https://linuxmanr4.com/2015/05/25/buscar-imei-celular-robado-mexico/</link><pubDate>Mon, 25 May 2015 20:59:42 +0000</pubDate><guid>https://linuxmanr4.com/2015/05/25/buscar-imei-celular-robado-mexico/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/busqueda-de-imei-robado.png" alt="Featured image of post Buscar si el IMEI de un celular esta como robado en México" />&lt;p>Después de una larga espera al fin hay un sitio para buscar si el &lt;strong>IMEI&lt;/strong> de un celular esta reportado como robado o extraviado en México.&lt;/p>
&lt;p>Hace unos años escribí un artículo sobre como obtener el &lt;a class="link" href="https://es.wikipedia.org/wiki/IMEI" target="_blank" rel="noopener"
>IMEI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de un teléfono aunque ya lo no tuviéramos en nuestras manos, ( &lt;a class="link" href="https://linuxmanr4.com/2012/07/24/obtener-el-imei-para-reportar-celulares-robado-o-extraviados/" >Obtener el IMEI para reportar celulares robado o extraviados&lt;/a>
 ), de esa forma se podía iniciar el trámite para reportar el IMEI del teléfono celular para evitar que alguien más lo pudiera activar con la misma o con otra compañía de telefonía.&lt;/p>
&lt;h2 id="revisar-si-el-imei-esta-reportado-como-robado">Revisar si el IMEI esta reportado como robado
&lt;/h2>&lt;p>Ahora es posible consultar el IMEI en el sitio del &lt;strong>Instituto Federal de Telecomunicaciones&lt;/strong>, de esta manera, antes de comprar un teléfono usado, podemos revisar si aparece o no con reporte de robo o extravío.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.ift.org.mx/imei" target="_blank" rel="noopener"
>&lt;strong>Consultar IMEI&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/busqueda-de-imei-robado.png"
alt="Búsqueda de un IMEI en el sitio de IFT">&lt;figcaption>
&lt;p>Búsqueda de un IMEI en el sitio de IFT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora se pueden evitar muchos dolores de cabeza al comprar un aparato que no se va a poder activar (al menos no fácilmente) en una compañía de teléfono.&lt;/p>
&lt;p>Por el momento no se si el servicio es fiable, así que si alguien reportó el IMEI de su teléfono y lo quiere revisar en este sitio lo puede hacer y nos dice si en realidad aparece como robado o extraviado.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.ift.org.mx/imei" target="_blank" rel="noopener"
>Consultar IMEI en el sitio del Instituto Federal de Telecomunicaciones&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Impresora HP p1102w imprime toda la hoja en negro</title><link>https://linuxmanr4.com/2015/05/19/impresora-hp-p1102w-imprime-toda-la-hoja-en-negro/</link><pubDate>Tue, 19 May 2015 21:37:22 +0000</pubDate><guid>https://linuxmanr4.com/2015/05/19/impresora-hp-p1102w-imprime-toda-la-hoja-en-negro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/HP-p1102w-hoja-en-negro.jpg" alt="Featured image of post Impresora HP p1102w imprime toda la hoja en negro" />&lt;p>La historia comienza con una llamada en la que me avisan que esta fallando la impresora. Como no era un problema de conexión le dije al usuario que me la trajera para darle una revisada.&lt;/p>
&lt;p>Después de un rato llegó mi usuario con la impresora HP p1102w que estaba relativamente nueva e intenté imprimir la página de prueba y ¡Ohhh Sorprais!, me apareció una página totalmente en negro, como si fuera un papel carbón.&lt;/p>
&lt;p>Lo curioso es que la impresora no mostraba ningún error, nada de foquitos parpadeando ni nada de eso.&lt;/p>
&lt;h2 id="sospechosos-comunes">Sospechosos comunes.
&lt;/h2>&lt;ul>
&lt;li>Probé cambiando el tóner, con uno que se que funciona y nada, de hecho solo imprimía hojas en blanco y después en un segundo intento otra vez las hojas totalmente en negro.&lt;/li>
&lt;li>Un segundo intento con otro tóner dio como resultado una hoja con algunas partes en negro y otras en blanco formando líneas gruesas horizontales, así que el tóner estaba descartado.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/HP-p1102w-hoja-en-negro.jpg"
alt="impresora HP p1102w hoja en negro">&lt;figcaption>
&lt;p>impresora HP p1102w hoja en negro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>El driver no era, ya que presentaba el mismo problema tanto en la computadora de mi compañero como en la mía.&lt;/li>
&lt;li>Existía la posibilidad de que fuera el fusor y eso implica que sea mejor comprar una impresora nueva.&lt;/li>
&lt;/ul>
&lt;h2 id="los-foros-de-hp">Los foros de HP
&lt;/h2>&lt;p>Al descartar algunos puntos, lo primero que hice fue ir a los foros de soporte de HP y al parecer no era el único con este problema.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20240814162834/https://h30467.www3.hp.com/t5/Impresi%C3%B3n-escaneo-fax-y-copia/Mi-impresora-HP-Laserjet-P1102w-imprime-toda-la-hoja-negra/td-p/552872" target="_blank" rel="noopener"
>Mi impresora HP Laserjet P1102w imprime toda la hoja negra después de que se atasco una hoja&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Lo malo de estos sitios oficiales es que te hacen las recomendaciones del manual, ya saben, esas al estilo &amp;ldquo;¿El contacto tiene corriente?&amp;rdquo;,&amp;quot;¿Esta el interruptor de la impresora en la posición de ON?&amp;quot; y así por el estilo y cuando la ciencia se acaba y todo deja de funcionar lo que sigue es la tan temida frase de &amp;hellip; &lt;em>Lleve su impresora el centro de servicio HP más cercano&lt;/em>&amp;hellip; (música drámatica aquí por favor).&lt;/p>
&lt;p>Mientras pensaba que hacer le dí una limpieza superficial a la impresora, también la puse boca abajo y la sacudí ligeramente, se sorpenderían de las cosas que salen de una impresora haciendo esto, clips, grapas, tierra, etc.&lt;/p>
&lt;h2 id="el-culpable">El culpable.
&lt;/h2>&lt;p>Seguí buscando en internet y di con un consejo interesante.&lt;/p>
&lt;p>En el foro YoReparo me encontré con el artículo &lt;strong>\[Solucionado\] Impresora HP LaserJet Pro P1102w&lt;/strong>. En él mencionan que el problema se debe a un pequeño &amp;ldquo;alambre/resortito&amp;rdquo; que no esta esta haciendo contacto con el tóner.&lt;/p>
&lt;p>Tengo que confesar que me fue muy complicado encontrar el mentado alambrito, estaba tan atorado que no era visible. Doblando un clip logré destrabarlo para que saliera de su escondite.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/El-alambre-culpable-de-la-falla.jpg"
alt="El culpable de la falla">&lt;figcaption>
&lt;p>El culpable de la falla&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al levantar la tapa, en el carril del lado izquierdo verán 3 alambres brillantes, muy cercanos el uno del otro, dos tienen forma redonda y uno más en forma de una U cuadrada. El alambre que destrabé es el que esta más cercano a este último, en la imagen se puede ver y es el que esta señalado con la flecha roja, pero antes ni siquiera era visible.&lt;/p>
&lt;p>Nuevamente le coloqué el tóner y listo, eso era todo el problema, un triste alambrito.&lt;/p>
&lt;h2 id="qué-pasa-contigo-hp">¿Qué pasa contigo HP?
&lt;/h2>&lt;p>Me gusta la marca, tuve una &lt;a class="link" href="https://linuxmanr4.com/2018/02/01/puerta-trasera-abierta-laserjet-100-color-m175nw/" >impresora HP&lt;/a>
láser que se jubiló con honores, imprimió hasta que ya no pudo más, pero ahora veo que le están bajando muuuucho a la calidad de sus productos. Un alambrito fue el responsable de demasiados problemas y no solo eso, también me quiero quejar del chip que viene incluido en los tóner para detectar que es un consumible HP. No me parece tan mal que cuiden su negocio, pero ese mecanismo evita que se deslice el cartucho de tóner suavemente y digamos que alguno de mis usuarios no son tan &amp;ldquo;delicados&amp;rdquo; al momento de cambiar el cartucho.&lt;/p>
&lt;p>El colmo fue que justo después de arreglar el problema con el tóner, me la regresaron porque hacía un ruido terrible, me la trajeron nuevamente y bueno, problemas con los engranes. Tuve que desarmarla para identificar donde estaba el problema. Afortunadamente encontré un video que explica como hacerlo paso a paso&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/_Qp_R56l-Ig"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Los tiempos han cambiado, antes lo importante eran las impresoras y se hacían con calidad, ahora son desechables y el negocio está en los consumibles ¿A dónde vamos a parar?.&lt;/p>
&lt;p>Lo malo es que los demás fabricantes están por las mismas. ¿Ustedes conocen alguno mejor?&lt;/p>
&lt;h2 id="hp-laserjet-p1006">HP LaserJet P1006
&lt;/h2>&lt;p>Me dicen en los comentarios que este consejo también aplica a la impresora &lt;strong>HP LaserJet P1006&lt;/strong> para que lo tengan en cuenta.&lt;/p></description></item><item><title>Ahora estoy usando el editor Atom</title><link>https://linuxmanr4.com/2015/05/15/ahora-estoy-usando-el-editor-atom/</link><pubDate>Fri, 15 May 2015 22:07:29 +0000</pubDate><guid>https://linuxmanr4.com/2015/05/15/ahora-estoy-usando-el-editor-atom/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Pantalla-de-bienvenida-a-Atom.jpg" alt="Featured image of post Ahora estoy usando el editor Atom" />&lt;p>Esta es la segunda vez que pruebo el editor &lt;a class="link" href="https://atom.io/" target="_blank" rel="noopener"
>Atom&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, supongo que la primera vez todavía estaba muy verde el proyecto o no fue el momento adecuado para mi, pero en esta ocasión le he invertido un poco de tiempo y pinta realmente bien.&lt;/p>
&lt;p>Para empezar es muy configurable y tiene una buena cantidad de opciones que hacen de este editor una buena opción frente a otras ya consolidadas como &lt;a class="link" href="http://pad.haroopress.com/" target="_blank" rel="noopener"
>Haroopad&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Atom es un editor para usuarios de estilo &lt;em>&amp;ldquo;desarrollador&amp;rdquo;&lt;/em> y con esto quiero decir que su diseño procura mantener al usuario con las manos en el teclado. Existe una infinidad de atajos de teclado, y si por alguna razón se le llega a olvidar alguno entonces puede apelar al &lt;em>shortcut&lt;/em> maestro &lt;strong>Ctrl + Shift + P&lt;/strong> y aparecerá un buscador con todas las opciones del programa.&lt;/p>
&lt;h2 id="instalación">Instalación
&lt;/h2>&lt;p>Para instalar &lt;strong>atom&lt;/strong> en Manjaro solo tuve que teclear&lt;/p>
&lt;p>&lt;code>yaourt -S atom-editor-bin&lt;/code>&lt;/p>
&lt;p>Probablemente se preguntarán ¿Por qué bin?, al intentar instalarlo tuve problemas para compilarlo debido a un problema con la dependencia &lt;strong>npm&lt;/strong>, así que para no meterme en camisa de once varas instalé esta versión en lugar de la tradicional.&lt;/p>
&lt;h2 id="preparando-el-camino-para-markdown">Preparando el camino para Markdown.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Vista-previa-del-c%C3%B3digo.jpg"
alt="Vista previa del código" width="1024">&lt;figcaption>
&lt;p>Vista previa del código&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Definitivamente la potencia de &lt;strong>atom&lt;/strong> se revela cuando se instalan los &lt;em>packages&lt;/em> de la comunidad, ahí es donde la personalización cobra sentido y se puede adaptar este editor a las preferencias de su usuario y eso amigos, es simplemente genial.&lt;/p>
&lt;p>Instalar &lt;em>packages&lt;/em> es muy sencillo, basta con ir al menú &lt;code>Edit&lt;/code> - &lt;code>Preferences&lt;/code> - &lt;code>Install&lt;/code> y agregué los siguientes:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>markdown-format&lt;/strong> que es genial, le da una formateada a tu documento, lo hace más legible aunque lo veas en modo texto.&lt;/li>
&lt;li>&lt;strong>markdown-pdf&lt;/strong> que exporta tu texto al formato PDF.&lt;/li>
&lt;li>&lt;strong>markdown-writer&lt;/strong> que ayuda con algunos diálogos para insertar los elementos más oscuros markdown.&lt;/li>
&lt;li>&lt;strong>highlight-line&lt;/strong> este &lt;em>package&lt;/em> no tiene nada que ver con markdown, simplemente resalta la línea en la que estoy trabajando y es un efecto que me gusta.&lt;/li>
&lt;/ul>
&lt;p>Luego para administrarlos se va al mismo menú pero en la sección &lt;code>Packages&lt;/code> para borrarlos o inhabilitarlos.&lt;/p>
&lt;h2 id="la-ortografía-en-español-pour-favooour">La ortografía en español (Pour favooour)
&lt;/h2>&lt;p>Este fue el punto más complicado, actualmente en linux no existe una forma sencilla de decirle al editor que use tal o cual diccionario para verificar la ortografía del documento.&lt;/p>
&lt;p>Estuve revisando en internet y el artículo &lt;a class="link" href="http://www.atareao.es/ubuntu/probando-atom-en-ubuntu-para-escribir-usando-markdown/" target="_blank" rel="noopener"
>Probando Atom en Ubuntu para escribir usando Markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me dio una pista. Al parecer lo que funciona es reemplazar los diccionarios en inglés por los de español sustituyendo los archivos, pero hay un pequeño problema, el artículo de &lt;strong>el atareao&lt;/strong> es para Ubuntu y en Manjaro la ruta es diferente.&lt;/p>
&lt;p>Me tomó una buena cantidad de tiempo encontrar el directorio con la ubicación de los diccionarios y es&amp;hellip; tome nota:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/usr/share/atom/resources/app.asar.unpacked/node_modules/spell-check/node_modules/spellchecker/vendor/hunspell_dictionaries
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Corrector-ortogr%C3%A1fico-en-espa%C3%B1ol.jpg"
alt="Corrector ortográfico en español" width="534">&lt;figcaption>
&lt;p>Corrector ortográfico en español&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Así que después de &lt;a class="link" href="https://github.com/SublimeText/Dictionaries/archive/master.zip" target="_blank" rel="noopener"
>descargar los diccionarios&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, solo tuve que sustituir los archivos &lt;strong>en_US.aff&lt;/strong> y &lt;strong>en_US.dic&lt;/strong> con sus contrapartes en &amp;ldquo;Spanish&amp;rdquo;, así que primero hice una copia de los diccionarios en inglés (como respaldo), borré los archivos, copie los archivos &lt;strong>Spanish.aff&lt;/strong> y &lt;strong>Spanish.dic&lt;/strong> a la carpeta que mencioné anteriormente y al final los renombré como si fueran en inglés, de esa forma &lt;strong>atom&lt;/strong> no se daría cuenta del cambio y terminaría revisando la ortografía de mis documentos en español de todos modos, sencillo ¿no creen?.&lt;/p></description></item><item><title>Blu Studio 5.5 D610A</title><link>https://linuxmanr4.com/2015/05/11/blu-studio-5-5-d610a/</link><pubDate>Mon, 11 May 2015 21:10:28 +0000</pubDate><guid>https://linuxmanr4.com/2015/05/11/blu-studio-5-5-d610a/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/2-tarjetas-SIM-liberadas-de-tama%C3%B1o-normal.jpg" alt="Featured image of post Blu Studio 5.5 D610A" />&lt;p>Aunque &lt;strong>BLU&lt;/strong> no es una marca muy reconocida el celular &lt;strong>BLU Studio 5.5 D610a&lt;/strong> es una buena opción para un &lt;em>smartphone&lt;/em> de bajo costo y decentes prestaciones.&lt;/p>
&lt;p>Tengo poco tiempo con él, porque anteriormente era de mi esposa (ella ahora tiene el &lt;a class="link" href="https://web.archive.org/web/20200808021720/https://www.bluproducts.com/index.php/studio-6-0-hd" target="_blank" rel="noopener"
>Blu Studio 6.0 HD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>Tenía desde hace tiempo la inquietud de escribir sobre él, pero por falta de tiempo lo pospuse hasta ahora.&lt;/p>
&lt;h2 id="lo-técnico">Lo técnico
&lt;/h2>&lt;p>Primero lo primero, los “fierros” de este teléfono no son espectaculares, pero después de todo no se le puede pedir mucho a un teléfono que actualmente debe de rondar por los 2,500.00 pesotes mexicanos.&lt;/p>
&lt;p>La marca BLU dice que es un teléfono diseñado en Miami ensamblado en China y eso hace una mezcla curiosa de componentes.&lt;/p>
&lt;ul>
&lt;li>Pantalla táctil de 5.5”&lt;/li>
&lt;li>Almacenamiento interno de 4 GB.&lt;/li>
&lt;li>Cámara de 5 mega pixeles.&lt;/li>
&lt;li>Listo para redes 3G.&lt;/li>
&lt;li>Microprocesador Quad-Core Mediatek de 1.2 GHz.&lt;/li>
&lt;li>Batería de 2250 mAh (o sea que dura alrededor de 1 día y medio).&lt;/li>
&lt;li>Android 4.2 Jelly Bean.&lt;/li>
&lt;/ul>
&lt;p>Más información en &lt;a class="link" href="http://www.gsmarena.com/blu_studio_5_5-5761.php" target="_blank" rel="noopener"
>GSMArena BLU Studio 5.5&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="pros">PROS
&lt;/h2>&lt;p>Como en muchos productos hay pros y contras, escribiré primero sobre las ventajas de este equipo.&lt;/p>
&lt;h3 id="el-tamaño-de-la-pantalla">El tamaño de la pantalla
&lt;/h3>&lt;p>Al usarlo no parece como si te estuvieras poniendo un ladrillo en el oído. La pantalla no es tan grande como para que te hagan &lt;em>“bullyng”&lt;/em> tus amigos al contestar una llamada. Además por su tamaño permite una cómoda lectura de libros electrónicos o ejecutar algunos juegos decentemente sin esforzar demasiado la vista. También hace más cómodo teclear en la pantalla ya que el tamaño de las teclas no es tan diminuto como en otros dispositivos.&lt;/p>
&lt;h3 id="sin-bloatware">Sin bloatware
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Programas-Multimedia.jpg"
alt="Programas Multimedia">&lt;figcaption>
&lt;p>Programas Multimedia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esas aplicaciones de Telcel que no quieres y que no puedes eliminar no existen en este teléfono. Los teléfonos BLU entregan un sistema Android más puro, sin esas aplicaciones que solamente ocupan espacio en la memoria, que consumen recursos y que alentan el teléfono.&lt;/p>
&lt;h3 id="buen-desempeño">Buen desempeño
&lt;/h3>&lt;p>Gracias a su microprocesador de 4 núcleos el desempeño es notable, quizás no es rápido al extremo, pero nunca me he quejado de lentitud con este teléfono. Ejecuta bien incluso algunos juegos complicados en 3D, pero cuando se le exige demasiado tiende a calentarse un poco y claro la duración de la batería también cae en picada.&lt;/p>
&lt;h3 id="doble-chip-liberado">Doble chip liberado
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/2-tarjetas-SIM-liberadas-de-tama%C3%B1o-normal.jpg"
alt="Dos tarjetas SIM liberadas de tamaño normal">&lt;figcaption>
&lt;p>Dos tarjetas SIM liberadas de tamaño normal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otra de las ventajas de este teléfono es que puede utilizar dos chips de tamaño normal y además esta liberado. Es decir, que se pueden utilizar &lt;strong>tarjetas SIM&lt;/strong> de prácticamente cualquier compañía telefónica. Solo les voy a recomendar, si tienen contratado un plan de datos, lo mejor es poner el chip en la ranura marcada con el número 1 que es donde se logra mayor velocidad.&lt;/p>
&lt;h2 id="contras">CONTRAS
&lt;/h2>&lt;h3 id="accesorios">Accesorios
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Funda-de-silic%C3%B3n-y-tapa-dura.jpg"
alt="Funda de silicón y tapa dura">&lt;figcaption>
&lt;p>Funda de silicón y tapa dura&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Encontrar una funda de silicón para este teléfono no es fácil, no se encuentran en los lugares especializados. En su momento intentamos adaptar accesorios de un Samsung Galaxy Note, pero este teléfono era aún más grande en tamaño y no quedaban bien. Solamente por Internet me fue posible encontrar fundas especialmente diseñadas para este modelo.&lt;/p>
&lt;h3 id="la-cámara">La cámara
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/C%C3%A1mara-de-5-Mpx-con-autofocus-y-flash.jpg"
alt="Cámara de 5 Mpx con autofocus y flash">&lt;figcaption>
&lt;p>Cámara de 5 Mpx con autofocus y flash&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Anteriormente tenía un &lt;a class="link" href="https://linuxmanr4.com/2014/02/04/telefono-lg-optimus-l7-lg-p708g/" >LG L7&lt;/a>
con una cámara de 8 Megapíxeles y es lo único que extraño de ese teléfono. El BLU 5.5 tiene una cámara de 5 Mpx, que toma buenas (a secas) fotos, pero nada extraordinarias. No se van a tener buenos resultados en condiciones de poca luz, o en movimiento, pero sirve para un &lt;em>selfie&lt;/em> ocasional o tomarle una foto a un documento.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Telescopio-en-el-Planetarium-del-Bosque-Urbano.jpg"
alt="Telescopio en el Planetarium del Bosque Urbano">&lt;figcaption>
&lt;p>Telescopio en el Planetarium del Bosque Urbano&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>El BLU Studio 5.5 es un teléfono de bajo costo que se nota que ahorraron en algunas cosas y en otras no, pero al final del día, el balance tiende a ser favorable. Tiene un buen desempeño y si no se es muy exigente puede estar muy contento con este teléfono.&lt;/p>
&lt;p>Como nota adicional, mi chaparrita me dejó este teléfono porque se consiguió el BLU 6.0 HD, que para ser honesto, tiene mejores prestaciones a un precio ligeramente mayor, así que si lo ven denle un vistazo.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.bluproducts.com/" target="_blank" rel="noopener"
>Sitio de BLU&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Carpetas vacías que ocupan espacio en Linux</title><link>https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/</link><pubDate>Thu, 07 May 2015 17:21:39 +0000</pubDate><guid>https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Carpeta-vac%C3%ADa-que-ocupa-espacio.jpg" alt="Featured image of post Carpetas vacías que ocupan espacio en Linux" />&lt;p>Antier me hicieron una pregunta de esas que llaman mucho mi atención, el caso es el siguiente: Un amigo me dijo que porque una carpeta vacía en linux le marcaba que ocupaba un espacio de 64 GB. No quería eliminar esa carpeta hasta estar totalmente seguro de que estuviera vacía.&lt;/p>
&lt;p>Al principio creí que se trataba de un error, o que tenía alguna carpeta o archivos ocultos, pero no había tal, efectivamente, usando las herramientas de la &lt;strong>terminal&lt;/strong> una carpeta vacía declara que ocupa espacio en el disco.&lt;/p>
&lt;h2 id="el-experimento">El experimento.
&lt;/h2>&lt;p>Para no arriesgar su instalación hice algunas pruebas en mi equipo, voy a explicar brevemente los comandos que se utilizaron.&lt;/p>
&lt;p>Lo primero es crear una carpeta de pruebas&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mkdir pruebas
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y luego revisamos el espacio que ocupa&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">stat pruebas
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El espacio de la carpeta es de unos escasos 4 kb, que podemos confirmar con el comando &lt;strong>du&lt;/strong> (disk usage).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Estad%C3%ADsticas-de-la-carpeta-vac%C3%ADa.jpg"
alt="Estadísticas de la carpeta vacía">&lt;figcaption>
&lt;p>Estadísticas de la carpeta vacía&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hasta aquí, todo normal, una carpeta vacía solo ocupa el espacio de la declaración de la carpeta.&lt;/p>
&lt;h3 id="pocos-archivos-grandes">Pocos archivos grandes
&lt;/h3>&lt;p>Bueno llegó la hora de crear algunos archivos. Para eso usé un pequeño script que permite &lt;a class="link" href="https://villatux.blogspot.com/2013/11/generar-archivos-de-tamano-especifico.html" target="_blank" rel="noopener"
>generar archivos de texto del tamaño deseado&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Hice un archivo grande de 30 MB y 5 pequeños de 1 MB para tener un total de 35 MB de espacio ocupado en la carpeta. Con el comando &lt;em>ls -lh&lt;/em> , podemos ver el total de espacio ocupado y el tamaño de los archivos individuales.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Tama%C3%B1o-de-la-carpeta-de-pruebas-con-archivos.jpg"
alt="El resultado del comando: ls -lh">&lt;figcaption>
&lt;p>El resultado del comando: ls -lh&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si repetimos los comandos &lt;strong>stat&lt;/strong> y &lt;strong>du&lt;/strong> veremos que los cambios se reflejan en el espacio ocupado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Espacio-ocupado-por-los-archivos-grandes.jpg"
alt="Espacio ocupado por los archivos grandes">&lt;figcaption>
&lt;p>Espacio ocupado por los archivos grandes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El espacio de la carpeta es el mismo, pero su contenido ahora es de 35 MB.&lt;/p>
&lt;p>Ahora viene lo interesante, &lt;a class="link" href="https://linuxmanr4.com/2014/05/08/borrar-archivos-de-manera-segura-en-linux/" >borro todos los archivos&lt;/a>
de la carpeta con el comando &lt;strong>rm&lt;/strong> y vuelvo a revisar las estadísticas de la carpeta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Tama%C3%B1o-normal.jpg"
alt="Todo vuelve a la normalidad, carpeta vacía, poco espacio.">&lt;figcaption>
&lt;p>Todo vuelve a la normalidad, carpeta vacía, poco espacio.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y parece que todo vuelve a la normalidad a la normalidad.&lt;/p>
&lt;h3 id="muchos-archivos-pequeños">Muchos archivos pequeños
&lt;/h3>&lt;p>Ahora hacemos el caso contrario, con ayuda de esta instrucción&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">for i in &amp;#39;seq 1 10000&amp;#39;; do touch $i; done
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Se van a crear 10,000 archivos pequeños y revisamos nuevamente sus estadísticas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Muchos-archivos-peque%C3%B1os-ocupan-poco-espacio.jpg"
alt="Muchos archivos pequeños ocupan poco espacio">&lt;figcaption>
&lt;p>Muchos archivos pequeños ocupan poco espacio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora, esta carpeta con sus 10,000 archivos pequeños ocupa 152 Kb. Y procedemos a borrarlos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Carpeta-vac%C3%ADa-que-ocupa-espacio.jpg"
alt="Carpeta vacía que ocupa espacio">&lt;figcaption>
&lt;p>Carpeta vacía que ocupa espacio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero el espacio ocupado por la carpeta me dice que siguen siendo 152 Kb !!!!&lt;/p>
&lt;p>Al parecer el truco consiste en el &lt;strong>número de archivos&lt;/strong>, porque una gran cantidad de archivos requiere una mayor cantidad de bloques para guardar la información de la carpeta (se puede ver con el comando stat).&lt;/p>
&lt;p>Esta información declarada se puede expander, pero no se contrae, como que reserva ese espacio aunque este disponible. Por eso si ahora creo 100 archivos (en lugar de 10,000) me sigue diciendo que ocupa los 152 Kb anteriores.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/05/Borrando-una-carpeta-vac%C3%ADa.jpg"
alt="Puedo borrar la carpeta porque no contiene archivos.">&lt;figcaption>
&lt;p>Puedo borrar la carpeta porque no contiene archivos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final, si borro los archivos y posteriormente la carpeta, es posible porque no contiene archivos, de lo contrario me daría un error ya que no es posible borrar una carpeta que no esta vacía.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>¿Entonces que muestra información muestra el comando du?, Muestra una mezcla de dos valores, uno es el espacio ocupado en disco por los archivos y el segundo es el espacio &lt;strong>máximo&lt;/strong> ocupado para mostrar la lista de archivos contenidos en la carpeta (bloques necesarios). El primero se actualiza constantemente, el segundo no y muestra su valor máximo, es por eso que muestra la información de este dato aunque la carpeta este vacía.&lt;/p>
&lt;p>Al parecer, este “detallito” esta presente en ext2/ext3/ext4 , pero no estoy seguro que sea lo mismo en otros sistemas de archivos, aunque sería interesante hacer algunas pruebas :)&lt;/p>
&lt;h2 id="para-saber-más">Para saber más
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://serverfault.com/questions/294301/monotonic-growth-of-linux-directory-size-block-count" target="_blank" rel="noopener"
>Monotonic growth of Linux directory size/block count&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Copiar un ISO a una memoria USB con isousb</title><link>https://linuxmanr4.com/2015/04/29/copiar-un-iso-a-una-memoria-usb-con-isousb/</link><pubDate>Wed, 29 Apr 2015 14:12:58 +0000</pubDate><guid>https://linuxmanr4.com/2015/04/29/copiar-un-iso-a-una-memoria-usb-con-isousb/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/isousb-para-copiar-iso-a-una-memoria-usb.jpg" alt="Featured image of post Copiar un ISO a una memoria USB con isousb" />&lt;p>Para instalar Manjaro Linux es necesario copiar el archivo ISO a un CD o generar una memoria USB de arranque copiando el ISO al dispositivo.&lt;/p>
&lt;p>Haciendo los preparativos para el último FLISOL me encontré con Isousb , una herramienta minimalista que se mete en muy pocos problemas al copiar un archivo ISO a un dispositivo USB.&lt;/p>
&lt;h2 id="instalación">Instalación
&lt;/h2>&lt;p>Isousb ya forma parte de los paquetes oficiales de Manjaro, supongo que también se podrá conseguir para otras distribuciones, para instalarlo solo es necesario.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S isousb
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo.&lt;/p>
&lt;h2 id="tan-fácil-como-la-tabla-del-1">Tan fácil como la tabla del 1
&lt;/h2>&lt;p>Utilizar &lt;strong>Isousb&lt;/strong> es una tarea de preescolar, al iniciar el programa lo primero que hace es preguntar la localización del archivo ISO y enseguida la elección del dispositivo USB que quieres como destino, más simple ¡Imposible!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/Seleccionar-el-dispositivo-usb-de-destino.jpg"
alt="Seleccionar el dispositivo usb de destino" width="691">&lt;figcaption>
&lt;p>Seleccionar el dispositivo usb de destino&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si quisiera ponerle un pero al programa es que me gustaría que advirtiera que el contenido de la memoria será destruido y una comprobación del tamaño del ISO vs la capacidad de la memoria. De esto último hay una advertencia en la pantalla, pero la comprobación se la deja al usuario.&lt;/p>
&lt;h2 id="con-la-terminal">Con la terminal
&lt;/h2>&lt;p>Claro que sigue siendo válido el método con la terminal usando el comando &lt;em>dd&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dd bs=4M if=/ruta/a/manjaro.iso of=/dev/sd[letra de la unidad]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Los dos métodos son útiles al momento de generar una usb de arranque, solo que siento que por la facilidad de uso y su interfaz gráfica isousb será mi favorito al realizar esta tarea.&lt;/p></description></item><item><title>Actualización de Manjaro abril 2015</title><link>https://linuxmanr4.com/2015/04/23/actualizacion-de-manjaro-abril-2015/</link><pubDate>Thu, 23 Apr 2015 14:40:29 +0000</pubDate><guid>https://linuxmanr4.com/2015/04/23/actualizacion-de-manjaro-abril-2015/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/actualizaci%C3%B3n-del-sistema.jpg" alt="Featured image of post Actualización de Manjaro abril 2015" />&lt;p>Comienzo el día con una gran actualización de Manjaro. El anuncio se hizo oficial el día 21 de abril Manjaro Update 2015-04-21 (stable) pero había tenido mucho trabajo y lo pospuse la actualización hasta el día de hoy.&lt;/p>
&lt;h2 id="dependencias-con-baloo">Dependencias con baloo
&lt;/h2>&lt;p>Actualicé el sistema como es normal, ya saben primero una actualización de repositorios:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-mirrors -g
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y luego la actualización del sistema:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero me apareción un error :( con el paquete baloo&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/dependencias-necesita-baloo.png"
alt="Problamas con las dependencias necesita baloo">&lt;figcaption>
&lt;p>Problamas con las dependencias necesita baloo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>error: no se pudo preparar la operación (no se pudieron satisfacer las dependencias) :: nepomuk-core: necesita baloo&lt;/p>&lt;/blockquote>
&lt;p>Al parecer hubo algunos movimientos con Arch y este &lt;a class="link" href="https://linuxmanr4.com/2013/04/30/eliminar-paquetes-que-no-son-necesarios-en-manjaro/" >paquete ya no es tan necesario&lt;/a>
(eso espero).&lt;/p>
&lt;p>Según los foros de Arch, este problema se soluciona desinstalando el paquete &lt;strong>nepomuk-core&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Rns nepomuk-core
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de desinstalarlo pude hacer la &lt;a class="link" href="https://linuxmanr4.com/2019/05/14/existe-en-el-sistema-de-archivos-problema-al-actualizar-manjaro/" >actualización completa del sistema sin problemas&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/actualizaci%C3%B3n-del-sistema.jpg"
alt="Actualización del sistema - Manjaro abril 2015">&lt;figcaption>
&lt;p>Actualización del sistema - Manjaro abril 2015&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="kernel-4">Kernel 4
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/disponible-el-kernel-4.jpg"
alt="disponible el kernel 4 en manjaro">&lt;figcaption>
&lt;p>disponible el kernel 4 en manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que la principal razón para actualizar mi sistema es para probar el tan publicitado y cacareado Kernel 4 y sus mejoras. Eso aumenta la lista de kernels soportados por Manjaro:&lt;/p>
&lt;ul>
&lt;li>Linux310 3.10.74&lt;/li>
&lt;li>Linux312 3.12.40&lt;/li>
&lt;li>Linux313 3.13.11.19&lt;/li>
&lt;li>Linux314 3.14.38&lt;/li>
&lt;li>Linux316 3.16.7.9&lt;/li>
&lt;li>Linux318 3.18.11&lt;/li>
&lt;li>Linux319 3.19.4&lt;/li>
&lt;li>Linux40 4.0.0&lt;/li>
&lt;/ul>
&lt;p>Generalmente tengo dos, uno estable (3.14) y una de pruebas que ahora será la versión 4.&lt;/p>
&lt;p>En fin, como pueden ver, tengo muchos &lt;a class="link" href="https://linuxmanr4.com/2016/03/14/pacman-aria2-paquetes-manjaro/" >paquetes que descargar&lt;/a>
. Espero que actualicen sin problemas.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://bbs.archlinux.org/viewtopic.php?id=195803" target="_blank" rel="noopener"
>\[SOLVED\] unable to update nepomuk-core requires baloo!!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>La página del CURP no funciona</title><link>https://linuxmanr4.com/2015/04/21/la-pagina-del-curp-no-funciona/</link><pubDate>Tue, 21 Apr 2015 20:49:52 +0000</pubDate><guid>https://linuxmanr4.com/2015/04/21/la-pagina-del-curp-no-funciona/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/curp.png" alt="Featured image of post La página del CURP no funciona" />&lt;p>No se si se han dado cuenta, pero este es el segundo día consecutivo en el que la página de consulta del CURP no funciona.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/Connection-timeout.png"
alt="Connection timeout CURP">&lt;figcaption>
&lt;p>Connection timeout CURP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todos sabemos que la &lt;a class="link" href="https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Registro_de_Poblaci%C3%B3n" title="CURP"
target="_blank" rel="noopener"
>CURP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 se ha vuelto indispensable para realizar muchos trámites en el país, es por eso que la falta del servicio esten causando muchos problemas en México.&lt;/p>
&lt;p>En twitter hay cierto descontento por el tema:&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="es" dir="ltr">&lt;a href="https://x.com/SEGOB_mx?ref_src=twsrc%5Etfw">@SEGOB_mx&lt;/a> Pon a tus informáticos a trabajar, la consulta de CURP vale para dos cosas.&lt;/p>&amp;mdash; @YoSoyCachun (@YoSoyCachun) &lt;a href="https://x.com/YoSoyCachun/status/590536196964519936?ref_src=twsrc%5Etfw">April 21, 2015&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;p>Parece que los políticos están más preocupados en repartir despensas que en arreglar el sitio.&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="es" dir="ltr">En vez de poner a brutos a tirar hashtags, usen las tortas y los frutsis para arreglar la página de CURP &lt;a href="https://x.com/SEGOB_mx?ref_src=twsrc%5Etfw">@SEGOB_mx&lt;/a> &lt;a href="https://x.com/EPN?ref_src=twsrc%5Etfw">@EPN&lt;/a>&lt;/p>&amp;mdash; Fro. (@_Froo) &lt;a href="https://x.com/_Froo/status/590526373829054465?ref_src=twsrc%5Etfw">April 21, 2015&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;h2 id="kio-networks">KIO Networks
&lt;/h2>&lt;p>Como soy un tanto curioso, quise saber más sobre quien es el responsable de proporcionar el servicio, así que después de ejecutar un nmap en la dirección ip que me proporcionó el proxy di con la empresa &lt;a class="link" href="https://www.kio.tech/" title="KIO Networks"
target="_blank" rel="noopener"
>KIO Networks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/kionetworks.png"
alt="kionetworks">&lt;figcaption>
&lt;p>kionetworks&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, hay una servidor http activo en el puerto 80, pero por alguna razón no esta aceptando las conexiones de sus clientes.&lt;/p>
&lt;p>Esto es un poco bochornoso, ya que supuestamente la empresa se dedica a proporcionar &amp;ldquo;Servicios de Misión Critica&amp;rdquo;.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/mision-critica.png"
alt="Página web de Kio Networks">&lt;figcaption>
&lt;p>Página web de Kio Networks&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No lo se, a lo mejor el servicio no es tan importante o el gobierno no les ha pagado y por eso el servicio no esta disponible, no lo se, pero por favor, por lo que más quieran, que el gobierno no entre al quite poniendo una página que use JAVA para dar el servicio.&lt;/p>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Al parecer la página de la CURP ha cambiado de lugar. Ahora lo pueden consultar en &lt;a class="link" href="https://www.gob.mx/curp/" target="_blank" rel="noopener"
>https://www.gob.mx/curp/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Revisar una unidad USB con FAT32 en Linux</title><link>https://linuxmanr4.com/2015/04/20/revisar-una-unidad-usb-con-fat32-en-linux/</link><pubDate>Mon, 20 Apr 2015 17:46:26 +0000</pubDate><guid>https://linuxmanr4.com/2015/04/20/revisar-una-unidad-usb-con-fat32-en-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/dosfsck.jpg" alt="Featured image of post Revisar una unidad USB con FAT32 en Linux" />&lt;p>Resulta que se me ofreció revisar una unidad USB con &lt;a class="link" href="https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/" >FAT32&lt;/a>
en Linux. No quería reiniciar mi computadora para darle un &lt;em>chkdsk&lt;/em> a la unidad USB, tampoco quise abrir &lt;em>virtualbox&lt;/em> para revisar el &lt;em>pendrive&lt;/em> desde ahí. Mi intención es revisarla directamente desde linux, sabía que había una forma de hacerlo y después de &lt;em>googlear&lt;/em> un poco di con esta solución.&lt;/p>
&lt;h2 id="blkid">blkid
&lt;/h2>&lt;p>Lo primero es revisar en que carpeta &lt;strong>dev&lt;/strong> esta montado el dispositivo usb, así que recurro al viejo y buen conocido comando &lt;a class="link" href="https://linuxmanr4.com/2015/04/03/problema-tamano-particion-openmediavault/" title="Problema en el tamaño de la partición en OpenMediaVault"
>blkid&lt;/a>
para obtener este dato. No voy a ahondar mucho en este comando porque su resultado es muy simple de leer y en mi caso supe que la unidad estaba en la carpeta &lt;em>/dev/sde1&lt;/em>&lt;/p>
&lt;h2 id="dosfsck">dosfsck
&lt;/h2>&lt;p>Hay varias formas de revisar una unidad con &lt;a class="link" href="https://es.wikipedia.org/wiki/Tabla_de_asignaci%C3%B3n_de_archivos#FAT32" title="fat32"
target="_blank" rel="noopener"
>fat32&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 (el más usado en dispositivos usb), pero en este caso usé el comando &lt;strong>dosfsck&lt;/strong> que viene en el paquete &lt;strong>dosfstool&lt;/strong> . Su tienen instalado Gparted es muy probable que ya lo tengan instalado, de lo contrario:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">pacman&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">S&lt;/span> &lt;span class="n">dosfstool&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para instalarlo en &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
(o en Arch).&lt;/p>
&lt;p>Luego ejecuté el siguiente comando para revisar la memoria:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo dosfsck -w -r -l -a -v -t /dev/sde1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/dosfsck.jpg"
alt="Resultado de ejecutar el comando dosfsck.">&lt;figcaption>
&lt;p>Resultado de ejecutar el comando dosfsck.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Donde:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>w&lt;/strong> Escribe los cambios inmediatamente&lt;/li>
&lt;li>&lt;strong>r&lt;/strong> Repara los problemas que vaya encontrando interactivamente con el usuario.&lt;/li>
&lt;li>&lt;strong>l&lt;/strong> Lista las rutas y los nombres de los arcivos que están siendo analizados. Esta opción es para tener una idea del avance en la terminal.&lt;/li>
&lt;li>&lt;strong>a&lt;/strong> Repara automáticamente los errores que encuentre y que no requieren de una intervención del usuario.&lt;/li>
&lt;li>&lt;strong>v&lt;/strong> Activa el modo &lt;em>verbose&lt;/em>, para saber que es lo que esta haciendo el comando.&lt;/li>
&lt;li>&lt;strong>t&lt;/strong> Marca los sectores que encuentre dañados.&lt;/li>
&lt;/ul>
&lt;p>Tal parece que no extraje la unidad de manera segura y por eso encontró algunos problemas que corrigió fácilmente.&lt;/p>
&lt;blockquote>
&lt;p>Checking we can access the last sector of the filesystem&lt;br>
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.&lt;/p>&lt;/blockquote>
&lt;p>Espero que este artículo les sea de utilidad :)&lt;/p></description></item><item><title>Problema en el tamaño de la partición en OpenMediaVault</title><link>https://linuxmanr4.com/2015/04/03/problema-tamano-particion-openmediavault/</link><pubDate>Fri, 03 Apr 2015 19:36:50 +0000</pubDate><guid>https://linuxmanr4.com/2015/04/03/problema-tamano-particion-openmediavault/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/discos-duros-del-nas-omv.jpg" alt="Featured image of post Problema en el tamaño de la partición en OpenMediaVault" />&lt;p>Desafortunadamente ayer perdí contacto con un disco duro de mi &lt;a class="link" href="https://linuxmanr4.com/2013/10/01/nas-freenas-nas4free-openmediavault/" title="FreeNAS vs NAS4Free vs OpenMediaVault"
>NAS&lt;/a>
configurado con OpenMediaVault.&lt;/p>
&lt;p>Demasiados problemas en poco tiempo me indicaron que ya era tiempo de reemplazarlo y aproveché la oportunidad de cambiar el disco dañado de 1TB por otro de 2TB.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/Disco-Fisico-2TB.png"
alt="Disco Fisico 2TB">&lt;figcaption>
&lt;p>Disco Fisico 2TB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El cambio se hizo sin problemas, aparentemente y es que aunque inicialmente me detectaba la capacidad del disco en 2TB a la hora de formatearlo con ext4 solo aparecía ¡Un miserable &lt;a class="link" href="http://es.wikipedia.org/wiki/Terabyte" target="_blank" rel="noopener"
>terabyte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/Sistema-de-archivos-1TB.png"
alt="Sistema de archivos 1TB">&lt;figcaption>
&lt;p>Sistema de archivos 1TB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Mi primer pensamiento fue que hice algo mal, volví a crear el sistema de archivos con ext4 y nada, lo intenté otra vez ahora con &lt;a class="link" href="http://es.wikipedia.org/wiki/XFS" target="_blank" rel="noopener"
>XFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y lo mismo, el tamaño de la partición seguía siendo de 1 TB.&lt;/p>
&lt;p>Pude haber continuado así como estaba, pero no estaba dispuesto a desperticiar todo 1 TB solamente porque la partición no era correcta. Así que me di una vuelta por los foros de OpenMediaVault para buscar una solución.&lt;/p>
&lt;h2 id="blkid">blkid
&lt;/h2>&lt;p>Lo primero y más importante es identificar perfectamente el disco duro que queremos arreglar, no queremos aplicar los siguientes comandos en el disco duro equivocado.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Importante:&lt;/strong> Un error en la identificación del disco duro puede provocar la pérdida total de la información.&lt;/p>&lt;/blockquote>
&lt;p>Me conecté por SSH a mi equipo con &lt;strong>OMV&lt;/strong> y ejecuté el comando &lt;strong>blkid&lt;/strong>.&lt;/p>
&lt;p>Con esto me di cuenta de que el disco duro que estaba buscando era el &lt;strong>sda&lt;/strong> y todos los comandos siguientes corresponden a este dispositivo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/04/blkid.jpg"
alt="Resultado de ejecutar blkid">&lt;figcaption>
&lt;p>Resultado de ejecutar blkid&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="gdisk">gdisk
&lt;/h2>&lt;p>Di con este artículo que me dio una pista (Solved) Trying to create a single data drive installation.&lt;/p>
&lt;p>Dan unas serie de instrucciones para solucionar este tipo de problemas, pero al final &lt;em>gdisk&lt;/em> hizo la mayor parte del trabajo.&lt;/p>
&lt;p>&lt;strong>GPT fdisk&lt;/strong> (aka &lt;a class="link" href="http://sourceforge.net/projects/gptfdisk/" title="GPT fdisk en Sourceforge"
target="_blank" rel="noopener"
>gdisk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) es una herramienta de particionamiento de disco inspirado en el fdisk de Linux. Se utiliza para modificar la &lt;a class="link" href="http://es.wikipedia.org/wiki/Tabla_de_particiones_GUID" target="_blank" rel="noopener"
>tabla de particiones GUID (GPT)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de los discos.&lt;/p>
&lt;p>Para ser sincero, no estoy muy familiarizado con esta herramienta. Me encontré esta excelente guía con ejemplos de uso de la herramienta &lt;a class="link" href="http://www.rodsbooks.com/gdisk/walkthrough.html" target="_blank" rel="noopener"
>A gdisk Walkthrough&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Para averiguar su el disco duro usa &lt;strong>GPT&lt;/strong> basta con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gdisk -l /dev/sda
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gdisk -l /dev/sda
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GPT fdisk (gdisk) version 0.8.1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Partition table scan:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MBR: protective
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">BSD: not present
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">APM: not present
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GPT: present
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Found valid GPT with protective MBR; using GPT.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Disk /dev/sda: 3907029168 sectors, 1.8 TiB
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Logical sector size: 512 bytes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Disk identifier (GUID): 7823555E-
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Partition table holds up to 128 entries
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">First usable sector is 34, last usable sector is 3907029134
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Partitions will be aligned on 2048-sector boundaries
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Total free space is 2014 sectors (1007.0 KiB)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Number Start (sector) End (sector) Size Code Name
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1 2048 3907029134 1.8 TiB 8300 Linux filesystem
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aquí lo que importa es la leyenda &lt;strong>GPT: present&lt;/strong>. No hice nada en especial para lograr esto. Supongo que se hizo de forma automática al &lt;strong>Borrar&lt;/strong> el disco duro en la sección de &lt;strong>Almacenamiento | Discos físicos&lt;/strong> de OMV, porque en los mensajes que me mostró vi una leyenda relacionada con GPT.&lt;/p>
&lt;p>Ahora si, llegó el momento de trabajar con las particiones.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gdisk /dev/sda
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y espera una orden. No voy a entrar mucho en detalles, les recomiendo que lean (y vuelvan a leer) el texto&lt;/p>
&lt;p>que les recomendé más arriba, pero en resumen, lo que hice fue lo siguente:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>p&lt;/strong> para mostrar la información de las particiones del disco.&lt;/li>
&lt;li>&lt;strong>d&lt;/strong> para borrar la partición existente y de tamaño erroneo de 1 TB.&lt;/li>
&lt;li>&lt;strong>n&lt;/strong> para crear una partición nueva. En este punto seguí la mayoría de las recomendaciones por default, siempre revisando que la partición ocupará todo el espacio del disco.&lt;/li>
&lt;li>&lt;strong>p&lt;/strong> para mostrar los cambios y comprobar el tamaño de la nueva partición.&lt;/li>
&lt;li>&lt;strong>v&lt;/strong> para verificar que no haya problemas.&lt;/li>
&lt;li>&lt;strong>w&lt;/strong> para escribir los datos en el disco y salir.&lt;/li>
&lt;/ul>
&lt;h2 id="mkfs">mkfs
&lt;/h2>&lt;h3 id="ext4">ext4
&lt;/h3>&lt;p>Con la partición creada del tamaño correcto solo falta formatear la partición. Como no me gustan tanto las “novedades” prefiero irme por lo clásico cuando se trata de un servidor, así que elegí el sistema de archivos &lt;strong>ext4&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mkfs.ext4 /dev/sda1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten el &lt;em>1&lt;/em> al final, porque ya le estoy aclarando que quiero formatear la primer partición (y en este caso la única) del disco &lt;em>sda&lt;/em>.&lt;/p>
&lt;h3 id="xfs">XFS
&lt;/h3>&lt;p>Si prefieren XFS como el sistema de archivos, el comando es ligeramente diferente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mkfs.xfs /dev/sda1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="la-etiqueta-de-la-partición">La etiqueta de la partición
&lt;/h2>&lt;h3 id="e2label-para-ext4">e2label para ext4
&lt;/h3>&lt;p>Como un último detalle me faltó especificar la etiqueta de la partición. Es recomendable hacer esto para evitar confusiones con las demás particiones y recuerden que esta operación se tiene que hacer con la partición desmontada.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">e2label /dev/sda1 ETIQUETA
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="xfs_admin-para-xfs">xfs_admin para XFS
&lt;/h3>&lt;p>En el caso de particiones XFS se usa la herramienta &lt;strong>xfs_admin&lt;/strong> de la siguiente forma.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">xfs_admin -L &amp;#34;Etiqueta&amp;#34; /dev/sda1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y después de todo esto quedó listo el disco duro para continuar con la configuración y empezar a guardar información.&lt;/p>
&lt;p>¿Verdad que fue muy sencillo? ;)&lt;/p>
&lt;h2 id="referencias">Referencias
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://docs.oracle.com/cd/E37670_01/E41138/html/ol_create_xfs.html" target="_blank" rel="noopener"
>Oracle Docs: Creating an XFS File System&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://docs.oracle.com/cd/E37670_01/E37355/html/ol_admin_xfs.html" target="_blank" rel="noopener"
>Oracle Docs: Modifying an XFS File System&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>CodeAcademy una buena idea mal ejecutada</title><link>https://linuxmanr4.com/2015/03/17/codeacademy-una-buena-idea-mal-ejecutada/</link><pubDate>Tue, 17 Mar 2015 19:38:51 +0000</pubDate><guid>https://linuxmanr4.com/2015/03/17/codeacademy-una-buena-idea-mal-ejecutada/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/Codeacademy-Please-try-again-later.png" alt="Featured image of post CodeAcademy una buena idea mal ejecutada" />&lt;p>Si más no recuerdo, el mes pasado me enteré del sitio &lt;a class="link" href="https://www.codecademy.com/" target="_blank" rel="noopener"
>CodeAcademy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que ofrece cursos para mejorar tus habilidades en varios lenguajes de programación y que estaba estrenando varios de estos cursos en Español.&lt;/p>
&lt;p>Me inscribí al curso de &lt;strong>Ruby&lt;/strong>, en miras de afianzar mis conocimientos para después tomar el de &lt;strong>Make a Rails App&lt;/strong>.&lt;/p>
&lt;p>Me gusta el concepto educativo que maneja Codeacademy al estilo de &amp;ldquo;Mira, este es el concepto&amp;rdquo; - &amp;ldquo;Te muestro un ejemplo&amp;rdquo; - &amp;ldquo;Modifica el ejemplo&amp;rdquo; y cuando completes la tarea pasas al siguiente nivel. En el transcurso de los cursos vas acumulando &amp;ldquo;Medallas&amp;rdquo; al estilo de &amp;ldquo;Logros desbloqueados&amp;rdquo; cuando terminas una lección. Hasta aquí todo parecía genial y por algunos instantes difruté mucho las lecciones. Sin embargo no todo es miel sobre hojuelas en CodeAcademy.&lt;/p>
&lt;h2 id="capítulos-mal-enlazados">Capítulos mal enlazados
&lt;/h2>&lt;p>Durante mi curso de &lt;strong>Ruby&lt;/strong> tuve un problema a la mitad del curso, simplemente no podía avanzar a la siguiente lección y en su lugar me aparecía la información de mi perfil.&lt;/p>
&lt;p>Después de varios intentos fallidos seguí un consejo que ofrecían en los foros de soporte de CodeAcademy. Busqué en Google la siguiente lección y mediante un enlace del buscador pude avanzar, pero al finalizar el curso me siguen faltando las dos lecciones que tienen el error, así que nunca pude terminarlo y me quedé con un 80% avance.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/80-porciento-en-el-curso-de-ruby.png"
alt="Curso incompleto de Ruby.">&lt;figcaption>
&lt;p>Curso incompleto de Ruby.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-eterno-try-again-later">El eterno &amp;ldquo;Try again later&amp;rdquo;
&lt;/h2>&lt;p>Me di cuenta que era inútil mirar atrás y continué avanzado. Cuando empecé el curso &lt;strong>Make a Rails App&lt;/strong> los problemas aumentaron. Solamente una vez logré que funcionará el curso, de ahí en adelante siempre me ha aparecido el mensaje: &lt;strong>Sorry, something&amp;rsquo;s gone wrong. Please try again later.&lt;/strong> y de ahí no pude salir. Intenté de todo, varios navegadores, cambios en mi conexión a Internet, limpiar el caché y nada … Siempre me aparece el mismo mensaje de error.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/Codeacademy-Please-try-again-later.png"
alt="Please try again later">&lt;figcaption>
&lt;p>Please try again later&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="sin-soporte">Sin soporte
&lt;/h2>&lt;p>Aunque el diseño de los cursos de CodeAcademy es muy bueno y la metodología me encanta, los problemas frecuentes hacen que la estancia en el salón de clase sea tan frustrante como en un salón real. Lo único que se puede hacer con los &lt;em>bugs&lt;/em> es reportarlos y &lt;a class="link" href="https://www.codecademy.com/forum_questions/54c08859937676fd280008eb" target="_blank" rel="noopener"
>así lo hice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero tal parece que son foros fantasma, no hay un mensaje de confirmación por parte de algún moderador de CodeAcademy, son los usuarios reportando una y otra vez el mismo problema. Incluso llegué a redactar un reporte más en forma en inglés con más información pero a la fecha no se han solucionado y tampoco he recibido un correo con algún tipo de confirmación o con alguna solución al problema.&lt;/p>
&lt;p>Algunos compañeros me han dicho que la versión en inglés del curso no tiene tantos problemas, pero no he encontrado una forma sencilla de cambiar el idioma en mi perfil. Desde mi particular punto de vista creo que no deberían de liberar un producto con tantos problemas si no han probado anteriormente.&lt;/p>
&lt;p>Si quieren probar otros cursos adelante, me han dicho que los cursos de HTML y CSS están muy interesantes, espero que no tengan tantos problemas como yo.&lt;/p></description></item><item><title>Control remoto para Kodi XBMC</title><link>https://linuxmanr4.com/2015/03/09/control-remoto-para-kodi-xbmc/</link><pubDate>Mon, 09 Mar 2015 22:10:35 +0000</pubDate><guid>https://linuxmanr4.com/2015/03/09/control-remoto-para-kodi-xbmc/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/servidor-web.jpg" alt="Featured image of post Control remoto para Kodi XBMC" />&lt;p>Con el tiempo he instalado algunos &lt;em>addons&lt;/em> pero nunca un &lt;a class="link" href="https://linuxmanr4.com/2019/03/22/como-programar-un-control-remoto-steren-rm-2000/" >control remoto&lt;/a>
para Kodi (anteriormente XBMC) que es para mi gusto, la cereza en el pastel de este programa multimedia.&lt;/p>
&lt;h2 id="yatse">Yatse
&lt;/h2>&lt;p>Después de buscar un poco encontré a &lt;a class="link" href="https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree&amp;amp;hl=es" target="_blank" rel="noopener"
>Yatse&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que en mi corta búsqueda no me quedaron ganas de probar otra aplicación, &lt;strong>Yatse&lt;/strong> lo hace todo y lo hace bien. Es de esas pocas veces que le atinas a la primera a la aplicación que estas buscando.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/controles-generales-de-yatse.png"
alt="Controles generales de yatse">&lt;figcaption>
&lt;p>Controles generales de yatse&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Configuración de Kodi/XBMC&lt;/p>
&lt;p>Para poder controlar Kodi es necesario activar primero una opción. Hay que ir al menú &lt;em>Sistema&lt;/em> - &lt;em>Ajustes&lt;/em> - &lt;em>Servicios&lt;/em> - &lt;em>Servidor Web&lt;/em> y activar la opción que dice &lt;strong>Permitir controlar Kodi via HTTP&lt;/strong>. Se pueden personalizar algunos parámetros, pero con eso es suficiente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/servidor-web.jpg"
alt="Activando el control por servidor web.">&lt;figcaption>
&lt;p>Activando el control por servidor web.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo primero que hace &lt;strong>Yatse&lt;/strong> después de instalarlo es intentar localizar a Kodi y darlo de alta. Si no lo dan de alta en este momento pueden agregarlo posteriormente en el menú de &lt;em>ajustes&lt;/em> en la sección de &lt;em>Media Centers&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/listado-de-media-centers.png"
alt="Listado de media centers">&lt;figcaption>
&lt;p>Listado de media centers&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="todo-desde-tu-teléfono">Todo desde tu teléfono.
&lt;/h2>&lt;p>Yatse tiene todo tipo de controles por categoría, ya sean Películas, Videos, Música, Imágenes, un control de dirección para navegar por los menús, un teclado para las búsquedas, vamos, hasta tiene un “touchpad” si se nos hace más cómodo. Control de volumen, Mute, muestra la información del archivo que estamos viendo en ese momento. ¡Hasta se pueden descargar los subtítulos!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/reproducci%C3%B3n-de-pel%C3%ADculas.png"
alt="Reproducción de películas">&lt;figcaption>
&lt;p>Reproducción de películas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se pueden dar de alta varios sistemas de Kodi y se seleccionan desde la pantalla principal. No se como pude vivir tanto tiempo sin él.&lt;/p>
&lt;p>Si saben de alguna otro programa para android que sea mejor no duden en recomendarlo en los cometarios.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree&amp;amp;hl=es" target="_blank" rel="noopener"
>Yatse en Google Play&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>¿Problemas con la página del IDSE IMSS? Tips y soluciones</title><link>https://linuxmanr4.com/2015/03/02/problemas-para-entrar-a-la-pagina-del-idse-imss/</link><pubDate>Mon, 02 Mar 2015 18:51:26 +0000</pubDate><guid>https://linuxmanr4.com/2015/03/02/problemas-para-entrar-a-la-pagina-del-idse-imss/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/Problemas-con-la-pagina-del-IDSE-IMSS-Tips-y-soluciones.jpg" alt="Featured image of post ¿Problemas con la página del IDSE IMSS? Tips y soluciones" />&lt;p>Me llevó unos tres días de batalla, para tener más o menos una solución a los problemas para entrar a una de las peores implementaciones de Java del gobierno mexicano, el famoso &lt;a class="link" href="http://idse.imss.gob.mx/imss/" target="_blank" rel="noopener"
>IDSE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Lo peor es que últimamente están &lt;em>&amp;ldquo;morenizando&amp;rdquo;&lt;/em> la página y al igual que con la &lt;a class="link" href="https://linuxmanr4.com/2015/04/21/la-pagina-del-curp-no-funciona/" >CURP&lt;/a>
, probablemente le están moviendo más de lo que necesario.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/idseimss-2020.png">
&lt;/figure>
&lt;p>No voy a entrar en detalles porque gran parte de la búsqueda entra en el terreno de lo esotérico y lo místico. Tal parece que se tiene que poner al frente de la computadora agitando ramas de pirul y quemando incienso para que los duendes mayas de los servidores del IMSS tengan piedad de uno y estén contentos con el sacrificio.&lt;/p>
&lt;p>Estas recomendaciones no hacen magia, pero creo que es una buena aproximación a la solución. De esta forma he evitado errores al ingresar.&lt;/p>
&lt;h2 id="obsolescencia-programada">Obsolescencia programada.
&lt;/h2>&lt;p>Java ya no es soportado por ninguno de los navegadores modernos como Chrome, Firefox, Edge o Safari. Sólo Internet Explorer (10 o superior) soporta applets de Java dentro de la misma página web.&lt;/p>
&lt;p>Sume usted el detalle que en los últimos años quedaron fuera de servicio Windows XP y Windows 7. Así que no le veo mucho futuro a un servicio estancado en un pasado que ya no existe.&lt;/p>
&lt;p>Urge una renovación del IDSE que a fin de cuentas es el único medio oficial para realizar trámites ante el IMSS.&lt;/p>
&lt;h2 id="las-recomendaciones">Las recomendaciones
&lt;/h2>&lt;p>Ahora si, van las recomendaciones, espero que tengan suerte :)&lt;/p>
&lt;h3 id="java">Java
&lt;/h3>&lt;p>Tener instalada la última versión de &lt;a class="link" href="https://www.java.com/es/download/manual.jsp?locale=es" title="Descarga de Java"
target="_blank" rel="noopener"
>Java&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que al momento de escribir estas líneas era la versión 8 Update 241.&lt;/p>
&lt;h3 id="explorer">Explorer
&lt;/h3>&lt;p>Lo intenté con Firefox, Chrome, El navegador de la esquina y todo parece indicar que sólo funciona con Internet Explorer, si quieren intentarlo con otros no hay problema, a lo mejor tienen suerte.&lt;/p>
&lt;h3 id="javapolicyexe">JavaPolicy.exe
&lt;/h3>&lt;p>Un paso que tienen que ejecutar obligatoriamente cada vez que desinstalan y/o reinstalan Java es ejecutar el programa &lt;a class="link" href="http://idse.imss.gob.mx/imss/descargas/javapolicy.exe" target="_blank" rel="noopener"
>JavaPolicy.exe&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, de lo contrario no podrán ni entrar a la página.&lt;/p>
&lt;h3 id="agregar-unos-sitios-a-las-excepciones-de-java">Agregar unos sitios a las excepciones de Java
&lt;/h3>&lt;p>Últimamente Java ha estado en el ojo del huracán por problemas de seguridad, lamentablemente los administradores del sitio IDSE IMSS no se han puesto al día con esas tendencias y han dejado el tema para otro día. Así que no nos queda más remedio que agregar estos sitios a la lista de excepciones de sitios (Panel de control - Java ).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/Panel-de-control-de-Java.png"
alt="Panel de control de Java">&lt;figcaption>
&lt;p>Panel de control de Java&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>&lt;a class="link" href="http://idse.imss.gob.mx/imss" target="_blank" rel="noopener"
>http://idse.imss.gob.mx/imss&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://idse.imss.gob.mx/suadap/EntradaIDSEServlet" target="_blank" rel="noopener"
>http://idse.imss.gob.mx/suadap/EntradaIDSEServlet&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://idse.imss.gob.mx/suadap/validar.do" target="_blank" rel="noopener"
>http://idse.imss.gob.mx/suadap/validar.do&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Y como apenas se están modernizando, creo que también es necesario agregar las mismas páginas pero con &lt;strong>https&lt;/strong> al principio, sólo por si las dudas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/excepciones-de-sitios.jpg"
alt="Excepciones de sitios de Java, agregar los sitios del IDSE.">&lt;figcaption>
&lt;p>Excepciones de sitios de Java, agregar los sitios del IDSE.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="eliminar-archivos-temporales-y-de-caché">Eliminar archivos temporales y de caché.
&lt;/h3>&lt;p>Para eliminar los archivos temporales generalmente uso &lt;a class="link" href="https://www.glarysoft.com/" target="_blank" rel="noopener"
>Glary Utilities&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que de un solo clic elimina archivos temporales de todos los navegadores y programas ahorrando espacio en Windows.&lt;/p>
&lt;p>Pero también hay que eliminar los programas de Java almacenados en su propio caché. Para esto hay que ir al &lt;em>Panel de control de Java&lt;/em> - Configuración - Suprimir Archivos - Aceptar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/02/suprimir-archivos-del-cache-de-java.png"
alt="Opciones de Java">&lt;figcaption>
&lt;p>Opciones de Java&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="desactivar-el-proxy">Desactivar el proxy
&lt;/h3>&lt;p>Este punto no lo he confirmado, así que lo voy a recomendar como opcional. Para evitar intermediarios entre el equipo cliente y el servicio de Java del IMSS, desactivé el proxy transparente que tengo configurado en el trabajo (Squid Cache: Version 3.4.11).&lt;/p>
&lt;p>Pero eso me llevó a otro punto, se que algunos proveedores de internet como Megacable utilizan un proxy transparente y no veo la forma de desactivarlo, al menos no por parte del cliente.&lt;/p>
&lt;h2 id="internet-explorer-no-puede-mostrar-la-página-web">Internet Explorer no puede mostrar la página web.
&lt;/h2>&lt;p>&lt;strong>11-mar-2020&lt;/strong>. Al parecer hubo una actualización con los certificados web de la página del IDSE. Irónicamente el sitio del &lt;a class="link" href="https://linuxmanr4.com/2009/08/15/mi-esposa-sobrevivio-al-seguro-social/" >seguro social&lt;/a>
era un enlace NO seguro. Así que decidieron actualizar los certificados. Tal y como pueden ver en esta imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/Certificado-IDSE.png"
alt="Información de los nuevos certificados.">&lt;figcaption>
&lt;p>Información de los nuevos certificados.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora el enlace es seguro, pero esto provocó problemas con las versiones más antiguas de Internet Explorer.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/03/Explorer-no-puede-mostrar-la-pagina-web-del-IDSE.png"
alt="Internet Explorer no puede mostrar la página web.">&lt;figcaption>
&lt;p>Internet Explorer no puede mostrar la página web.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todo parece indicar que las &lt;a class="link" href="https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/" >versiones anteriores&lt;/a>
tienen problemas para manejar los certificados. La solución en este caso es actualizar Internet Explorer 11 y con eso se puede entrar nuevamente al sitio del IDSE.&lt;/p>
&lt;h2 id="el-certificado-no-es-válido-mayo-2020">El certificado no es válido (mayo 2020).
&lt;/h2>&lt;p>Este comportamiento es nuevo. Después de aplicar las recomendaciones anteriores no pude ingresar al IDSE.&lt;/p>
&lt;p>Después de subir el certificado, teclear el usuario, contraseña y al pulsar el botón de Iniciar sesión, &lt;strong>inmediatamente&lt;/strong> aparece un mensaje advirtiendo sobre un certificado que no es válido.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/05/el-certificado-no-es-valido.jpg"
alt="El certificado no es válido y no se puede utilizar para verificar la identidad de este sitio web.">&lt;figcaption>
&lt;p>El certificado no es válido y no se puede utilizar para verificar la identidad de este sitio web.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si le da continuar, aparece un recuadro rojo advirtiendo algún tipo de error (el texto cambia).&lt;/p>
&lt;p>Lo que me funcionó fue &lt;strong>cerrar el cuadro del error&lt;/strong>, haciendo clic en una tachita que esta en la esquina superior derecha del cuadro de error.&lt;/p>
&lt;p>Nuevamente teclear el usuario, la contraseña, presionar el botón de Iniciar sesión y en este segundo intento logra entrar. Lo se, suena raro, pero funciona.&lt;/p>
&lt;h3 id="sin-garantías">Sin garantías
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/disculpa-las-molestias.jpg"
alt="disculpa las molestias">&lt;figcaption>
&lt;p>disculpa las molestias&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Estas recomendaciones se ofrecen sin garantías, principalmente porque el servicio que ofrece el IMSS es muy inestable, no puede uno estar seguro de nada por que a veces funciona y otras no.&lt;/p>
&lt;p>Súmele usted la enorme cantidad de personas queriendo hacer el trámite, bueno el colmo, en una ocasión me apareció un mensaje de que le estaban dando mantenimiento al servicio ¡Uffff!&lt;/p>
&lt;h2 id="adiós-a-los-applets-de-java">¡Adiós a los applets de JAVA!
&lt;/h2>&lt;p>Veamos, es marzo del &lt;strong>2022&lt;/strong> y nuevamente me toca entrar a la página del IDSE. Estoy mentalmente preparado y repaso todos lo necesario para poder ingresar a la página (en el fondo suena música de Rocky &lt;em>Gonna Fly Now&lt;/em>).&lt;/p>
&lt;p>Pero veo con sorpresa que ya no aparece una multitud de avisos de seguridad de JAVA. Al parecer la página ya está cambiando, se han sacudido la necesidad de utilizar applets que sólamente se seguían utilizando en un vetusto Internet Explorer.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/idse%5Fimss%5Flinux.webp"
alt="IDSE en Firefox y Linux">&lt;figcaption>
&lt;p>IDSE en Firefox y Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al parecer sustituyeron los applets con un montón de llamadas a procedimientos en javascript.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/login%5Fjavascript.webp"
alt="Código del login de la página.">&lt;figcaption>
&lt;p>Código del login de la página.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y aunque son buenas noticias parece que ahora nos enfrentamos a otros problemas. Por ejemplo, al hacer unas consultas inesperadamente me sacó de la página y apareció el siguiente mensaje de error.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/mensaje%5Fde%5Facceso%5Fa%5FIDSE.webp">
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Ha ocurrido un mensaje con código #01001: Su sesión es inválida, por favor ingrese de nuevo al sistema.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Me pareció algo de lo más extraño, tuve que ingresar nuevamente y me siguió apareciendo un par de veces. Supongo que todavía le estarán haciendo algunos ajustes.&lt;/p>
&lt;p>Se arreglan unos problemas y aparece otros. En fin, así es esto.&lt;/p>
&lt;h2 id="renovación-de-certificados">Renovación de certificados
&lt;/h2>&lt;p>¿Se acuerdan que dije adiós a los applets de java? ¡Pues no es ciertooooo! ahhhhhhhh.&lt;/p>
&lt;p>El IDSE se actualiza con el ritmo de un discurso de la mañanera. Ahora tenemos una página que funciona sin java, pero para renovar los certificados todavía utiliza las tecnologías de hace más de 15 años como ActiveX y Java applets.&lt;/p>
&lt;p>Y eso plantea nuevamente los mismos problemas que antes. Prácticamente es si o si utilizar Internet Explorer para hacer la renovación.&lt;/p>
&lt;p>Afortunadamente me encontré un video que lo explica muy bien.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/o6fFw6YykCM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Básicamente el proceso se divide en 3 partes.&lt;/p>
&lt;ul>
&lt;li>Configurar &lt;strong>Internet Explorer&lt;/strong>&lt;/li>
&lt;li>Instalar y Configurar &lt;strong>Java&lt;/strong>&lt;/li>
&lt;li>Y si es necesario, cada vez que se instalé Java hay que ejecutar &lt;strong>javapolicy.exe&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>El amigo &lt;a class="link" href="https://www.youtube.com/user/sistemascls" target="_blank" rel="noopener"
>Carlos López&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo explica muy bien. Y me ha funcionado perfectamente.&lt;/p>
&lt;h3 id="abre-microsoft-edge-en-lugar-de-internet-explorer">Abre Microsoft Edge en lugar de Internet Explorer.
&lt;/h3>&lt;p>Esto parece cuento de nunca acabar. En alguna actualización de Windows 10 ahora abre Microsoft Edge en lugar de Internet Explorer. Hace esto por razones de seguridad (que si es cierto), pero entonces ahora ¿Cómo vamos a abrir Internet Explorer? pues muy sencillo.&lt;/p>
&lt;p>Hay que ir a los 3 puntos que están en la esquina superior derecha de Edge y le damos clic en &lt;strong>Configuración&lt;/strong> y luego en &lt;strong>Explorador predeterminado&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/modo-de-paginas-de-internet-explorer.jpg">
&lt;/figure>
&lt;p>&lt;strong>En donde dice Permitir que los sitios vuelvan a cargar en modo Internet Explorer (compatibilidad IE)&lt;/strong> seleccionamos &lt;strong>Permitir&lt;/strong>.&lt;/p>
&lt;p>Y tenemos que agregar la página del IDSE en donde dice &lt;strong>Modo de páginas de Internet Explorer&lt;/strong>&lt;/p>
&lt;p>&lt;a class="link" href="http://idse.imss.gob.mx/imss/" target="_blank" rel="noopener"
>http://idse.imss.gob.mx/imss/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
RECUERDEN que es &lt;strong>http&lt;/strong> solamente.&lt;/p>
&lt;p>Les va a pedir que reinicien Edge. Si al abrir la página logran ver el icono de Explorer en la pestaña van por buen camino.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/modo-internet-explorer-activado.jpg">
&lt;/figure>
&lt;p>Ahora este consejo puede caducar pronto o no. Todo depende de los amigos programadores del IMSS que se han de llevar más recordatorios familiares que un árbitro de fútbol.&lt;/p>
&lt;h2 id="renovación-de-certificados-idse-imss-con-windows-11">Renovación de certificados IDSE IMSS con Windows 11
&lt;/h2>&lt;p>Me encontré con este video nuevamente del buen Carlos López en el que da las instrucciones para configurar una computadora con Windows 11, aunque a mi me funcionó perfectamente en un Windows 10 actualizado.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/r8R4OYk9ojA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Las novedades son un archivo especial llamado &lt;strong>IE.vbs&lt;/strong> que permite abrir el vetusto &lt;strong>Internet Explorer&lt;/strong> (No Edge).&lt;/p>
&lt;p>Todo parecía funcionar correctamente, pero en un momento del procedimiento no pude firmar el certificado por un problema con el &lt;em>applet_firma&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/03/error%5Fapplet%5Ffirma.jpg">
&lt;/figure>
&lt;p>Así que tuve que buscar más información y me encontré con este otro video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/-Xbg73z3DVo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Básicamente lo que hace es modificar los protocolos que son excluidos por Java para los applets.&lt;/p>
&lt;p>A continuación les pongo la información que va en el archivo &lt;em>java.security&lt;/em> final por si gustan copiarla.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">jdk.certpath.disabledAlgorithms=MD2, MD5, \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> RSA keySize &amp;lt; 1024, DSA keySize &amp;lt; 1024, EC keySize &amp;lt; 224, \
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> include jdk.disabled.namedCurves
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No se les olvide borrar los archivos Archivos Temporales de Java.&lt;/p>
&lt;p>Al volverlo a intentar la renovación de certificados funcionó sin problemas.&lt;/p></description></item><item><title>Función para calcular el ISPT 2014 en Excel y LibreOffice</title><link>https://linuxmanr4.com/2015/02/12/funcion-para-calcular-el-ispt-2014-en-excel-y-libreoffice/</link><pubDate>Thu, 12 Feb 2015 21:56:04 +0000</pubDate><guid>https://linuxmanr4.com/2015/02/12/funcion-para-calcular-el-ispt-2014-en-excel-y-libreoffice/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/ISPT-2014-en-Excel-y-Libreoffice.png" alt="Featured image of post Función para calcular el ISPT 2014 en Excel y LibreOffice" />&lt;p>Hace ya algunos años desarrollé una función similar a la que hoy les comparto y la pueden ver en el artículo &lt;a class="link" href="https://linuxmanr4.com/2012/01/27/funcion-en-excel-para-calcular-el-ispt-anual/" title="Función en Excel para calcular el ISPT anual"
>Función en Excel para calcular el ISPT anual&lt;/a>
.&lt;/p>
&lt;p>Nuevamente la rescato del baúl del programador para hacerle algunas modificaciones. En primer lugar, la actualización de los valores de la tabla que sirve para el cálculo que corresponden al ejercicio 2014 y además de que en esta ocasión me pidieron que ya no descontara el &lt;strong>subsidio anual&lt;/strong> y solamente hiciera el cálculo del ISPT.&lt;/p>
&lt;h2 id="ispt-o-porcentaje-del-isr">¿ISPT o porcentaje del ISR?
&lt;/h2>&lt;p>Solo me gustaría hacer una pequeña aclaración, para efectos prácticos de este artículo el &lt;strong>Impuesto sobre el Producto del Trabajo&lt;/strong> o porcentaje del &lt;strong>Impuesto sobre la Renta&lt;/strong> que es como se le conoce actualmente son más o menos lo mismo y se calculan de la misma forma.&lt;/p>
&lt;h2 id="la-fórmula">La Fórmula
&lt;/h2>&lt;p>Según me explicaron, esta es la fórmula que se utiliza para calcular el ISPT:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/F%C3%B3rmula-para-calcular-el-ISPT.png"
alt="Fórmula para calcular el ISPT">&lt;figcaption>
&lt;p>Fórmula para calcular el ISPT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El asunto se complica un poco porque varios de los valores se buscan en una tabla dependiendo de las &lt;strong>Percepciones Gravables&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/Tabla-para-el-c%C3%A1lculo-del-ISPT-2014.png"
alt="Tabla para el cálculo del ISPT 2014">&lt;figcaption>
&lt;p>Tabla para el cálculo del ISPT 2014&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por eso creo que el mejor enfoque fue hacer una función para Excel y otra para LibreOffice que hicieran de manera automática la búsqueda de los valores y el cálculo del impuesto.&lt;/p>
&lt;h2 id="código-de-la-función-para-excel">Código de la función para Excel
&lt;/h2>&lt;p>Inicialmente desarrolle esta función para Excel ya que es el programa que generalmente usan los contadores.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-basic" data-lang="basic">&lt;span class="line">&lt;span class="cl">&lt;span class="vg">Function&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_Anual_2014&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ByVal&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; FUNCION PARA CALCULAR EL ISPT ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Copyright (C) 2012 Francisco Javier de la Torre &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Francisco Javier de la Torre.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; inguanzo@gmail.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Actualización para el año 2014.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Actualizacion y Correcciones para el 2012 gracias a Glezco21 y GRR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">SUBSIDIO_AL_EMPLEO_ANUAL&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Definición de las tablas iniciales&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;ISPT ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;==============================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite inferior&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">5952.85&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">50524.93&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">88793.05&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">103218.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">123580.21&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">249243.49&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">392841.97&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">750000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">1000000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">3000000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">999999999&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite superior muy alto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Cuota fija&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">114.29&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">2966.91&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">7130.48&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">9438.47&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">13087.37&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">39929.05&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">73703.41&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">180850.82&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">260850.81&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">940850.81&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Porcentaje sobre excedente&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.0192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.064&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1088&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1792&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2136&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2352&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.32&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.34&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.35&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Iniciamos el cálculo del ISPT anual.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Buscamos un valor apropiado en la tabla del ISPT Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Exit&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Loop&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Until&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISPT Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_Anual_2014&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Round&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Function&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="código-de-la-función-para-libreoffice">Código de la función para LibreOffice
&lt;/h2>&lt;p>El código para LibreOffice es muy similar al de Excel, solo se cambio la función &lt;strong>Round&lt;/strong> por &lt;strong>Format&lt;/strong> para que el resultado lo muestre solamente con 2 decimales.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-basic" data-lang="basic">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">REM ***** BASIC *****&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">Function&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_Anual_2014&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ByVal&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; FUNCION PARA CALCULAR EL ISPT ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Copyright (C) 2012 Francisco Javier de la Torre &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Francisco Javier de la Torre.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; inguanzo@gmail.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Actualización para el año 2014.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39; Actualizacion y Correcciones para el 2012 gracias a Glezco21 y GRR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&amp;#39;*****************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">SUBSIDIO_AL_EMPLEO_ANUAL&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Dim&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">As&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Double&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Definición de las tablas iniciales&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;ISPT ANUAL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;==============================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite inferior&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">5952.85&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">50524.93&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">88793.05&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">103218.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">123580.21&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">249243.49&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">392841.97&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">750000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">1000000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">3000000.01&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">999999999&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Limite superior muy alto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Cuota fija&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">114.29&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">2966.91&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">7130.48&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">9438.47&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">13087.37&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">39929.05&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">73703.41&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">180850.82&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">260850.81&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">940850.81&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Porcentaje sobre excedente&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.0192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.064&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1088&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.1792&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2136&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.2352&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.32&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.34&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mf">0.35&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="il">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Iniciamos el cálculo del ISPT anual.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Buscamos un valor apropiado en la tabla del ISPT Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_anual&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Exit&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">Loop&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Until&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">i&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="il">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c1">&amp;#39;Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISPT Anual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">CuotaFija&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="vg">PercepcionesGravables&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_LimiteInferior&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">PorcentajeSobreExcedente&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="vg">ISPT_Anual_2014&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vg">ISPT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;000000000000000.00&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="vg">End&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="vg">Function&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="software-libre">Software Libre
&lt;/h2>&lt;p>Los códigos de las funciones son software libre (libertad para usar,copiar y modificar). Aunque hice varias pruebas y lo verifiqué varias veces haciendo el cálculo manualmente no esta exento de errores, así que les pido que si notan algún &amp;ldquo;detallito&amp;rdquo; o error, por favor no dejen de reportarlo.&lt;/p>
&lt;p>Para que no batallen, les dejo este archivo zip &lt;a class="link" href="https://linuxmanr4.com/2015/02/12/funcion-para-calcular-el-ispt-2014-en-excel-y-libreoffice/ispt-2014-v20140212/" >ISPT 2014 v20140212&lt;/a>
que incluye sendos ejemplos en Excel y Libreoffice.&lt;/p>
&lt;p>Espero que esta función les sea de utilidad a los amigos contadores que siendo honestos, les deberían de dar una medalla por hacer de estos cálculos su trabajo cotidiano.&lt;/p></description></item><item><title>Imprimir archivos en orden con lpr y Ruby</title><link>https://linuxmanr4.com/2015/02/06/imprimir-archivos-en-orden-con-lpr-y-ruby/</link><pubDate>Fri, 06 Feb 2015 17:44:57 +0000</pubDate><guid>https://linuxmanr4.com/2015/02/06/imprimir-archivos-en-orden-con-lpr-y-ruby/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/ordenamiento.png" alt="Featured image of post Imprimir archivos en orden con lpr y Ruby" />&lt;p>El otro día me llegó un problema interesante, tenía una colección de archivos en formato PDF que se tenían que imprimir en orden.&lt;/p>
&lt;p>Bueno, al principio no sabía que tenía que ser en orden y para imprimir todos los archivos de una capeta sólo use el comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">lpr *.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y cumplía con el objetivo de imprimir todos los archivos PDF de la carpeta, pero luego resultó que el orden de impresión era importante (para buscarlos posteriormente) y es donde el problema se complicó un poco, porque hacerlo a mano simplemente no era una opción ¡Son demasiados!.&lt;/p>
&lt;h2 id="orden-alfábetico-o-númerico">Orden alfábetico o númerico.
&lt;/h2>&lt;p>El problema es que una cosa es el orden alfabético y otro muy distinto el orden numérico.&lt;/p>
&lt;p>Por ejemplo, tengo esta colección de archivos:&lt;/p>
&lt;ul>
&lt;li>1.pdf&lt;/li>
&lt;li>521.pdf&lt;/li>
&lt;li>002.pdf&lt;/li>
&lt;li>11.pdf&lt;/li>
&lt;li>0850.pdf&lt;/li>
&lt;/ul>
&lt;p>El resultado de un ordenamiento estándar sería el siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">archivos = [&amp;#34;1.pdf&amp;#34;,&amp;#34;521.pdf&amp;#34;,&amp;#34;002.pdf&amp;#34;,&amp;#34;11.pdf&amp;#34;,&amp;#34;0850.pdf&amp;#34;]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">puts archivos.sort
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>002.pdf&lt;/li>
&lt;li>0850.pdf&lt;/li>
&lt;li>1.pdf&lt;/li>
&lt;li>11.pdf&lt;/li>
&lt;li>521.pdf&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/orden-alfanumerico-en-ruby.jpg"
alt="orden alfanumerico en ruby">&lt;figcaption>
&lt;p>orden alfanumerico en ruby&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, están bien ordenados, pero de manera alfanúmerica. Es una cuestión de interpretación de los datos y generalmente el nombre de un archivo se considera un dato alfanúmerico.&lt;/p>
&lt;p>Y el caso se complica aún más porque la longitud del nombre del archivo no es la misma.&lt;/p>
&lt;p>Aunque es correcto no es el efecto que deseo.&lt;/p>
&lt;h2 id="la-solución-naturally">La solución: Naturally
&lt;/h2>&lt;p>Buscando en Google dí con &lt;a class="link" href="https://github.com/dogweather/naturally" target="_blank" rel="noopener"
>Naturally&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una gema de Ruby que se encarga de interpretar de una forma más humana este tipo de ordenamientos númericos.&lt;/p>
&lt;p>Para usar &lt;strong>Naturally&lt;/strong> primero hay que instalarlo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gem install naturally
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y este es un ejemplo de su uso:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;naturally&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;1.pdf&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;521.pdf&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;002.pdf&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;11.pdf&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;0850.pdf&amp;#34;&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ordenados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">Naturally&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivos&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El resultado del ordenamiento es:&lt;/p>
&lt;ul>
&lt;li>1.pdf&lt;/li>
&lt;li>002.pdf&lt;/li>
&lt;li>11.pdf&lt;/li>
&lt;li>521.pdf&lt;/li>
&lt;li>0850.pdf&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/Ordenamiento-usando-naturally.jpg"
alt="Resultado del ordenamiento usando Naturally.">&lt;figcaption>
&lt;p>Resultado del ordenamiento usando Naturally.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y ahora si, el orden es el que precisamente estoy buscando ¡Yeeeeeei!&lt;/p>
&lt;h2 id="a-imprimir">A imprimir.
&lt;/h2>&lt;p>A estas alturas ya estaba muy cerca de la solución, ahora solo tenía que desarrollar un programa en &lt;strong>Ruby&lt;/strong> que leyera todos los archivos PDF de una carpeta, los ordenara de forma natural y mandar imprimir cada archivo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;naturally&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtiene la lista de archivos con extensión PDF.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">Dir&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">glob&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;*.{pdf,PDF}&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ordena la lista de archivos de forma natural&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># y lo guarda en la variable ordenados.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ordenados&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">Naturally&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivos&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Imprime los archivos en el orden deseado.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ordenados&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">each&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">archivo&lt;/span>&lt;span class="o">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">system&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;lpr&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">archivo&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="k">raise&lt;/span> &lt;span class="s2">&amp;#34;Falló la impresión&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al ejecutar el &lt;em>script&lt;/em> empieza la impresión de los archivos PDF en la impresora predeterminada uno por uno, pero ahora en el orden que quiero.&lt;/p>
&lt;p>Espero que este artículo les sea de utilidad. Todavía intuyo que es posible hacerlo en bash, pero como ya lo &lt;a class="link" href="https://linuxmanr4.com/2014/12/12/como-resolver-problemas-del-reloj-en-manjaro/" >resolví este problema&lt;/a>
utilizando &lt;strong>Ruby&lt;/strong> y funciona tan bien que voy a dar por cerrado el tema.&lt;/p>
&lt;h2 id="ahora-con-bash">Ahora con Bash
&lt;/h2>&lt;p>Gracias a este &lt;a class="link" href="https://plus.google.com/u/0/108009231243004251711/posts/K6ZQMswKXsJ" title="comentario en google plus"
target="_blank" rel="noopener"
>comentario en google plus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de &lt;a class="link" href="https://plus.google.com/u/0/106178595557053869389/posts" title="Rodolfo Zola (Google Plus)"
target="_blank" rel="noopener"
>Rodolfo Zola&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que me aclaró como resolver el mismo problema usando &lt;strong>bash&lt;/strong> y el comando &lt;strong>sort&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Lista todos lo archivos PDF&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># y los imprime en orden númerico.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> i in &lt;span class="sb">`&lt;/span>ls *.pdf&lt;span class="p">|&lt;/span>sort -n&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> lpr &lt;span class="nv">$i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y funciona perfectamente, sólo lo modifiqué un poco para que solamente imprimiera archivos pdf.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Al final me decanté por usar el &lt;a class="link" href="https://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/" >script en &lt;em>bash&lt;/em>&lt;/a>
, le agregué una pausa de 8 segundos ( &lt;em>sleep 8&lt;/em>) para no saturar la cola de impresión de la impresora de red a la que mando el trabajo y como cereza del pastel, se pueden fijar que ahora el comando &lt;strong>lpr&lt;/strong> especifica que la impresión será en hoja tamaño carta y además hiciera un ajuste en el tamaño de la impresión con la opción &lt;strong>fit-to-page.&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Lista todos lo archivos PDF&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># y los imprime en orden númerico.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> i in &lt;span class="sb">`&lt;/span>ls *.pdf&lt;span class="p">|&lt;/span>sort -n&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> lpr -o fit-to-page -o &lt;span class="nv">media&lt;/span>&lt;span class="o">=&lt;/span>Letter &lt;span class="nv">$i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="nv">$i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sleep &lt;span class="m">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Impresión terminada.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para finalizar copié el archivo printsort.sh a la carpeta &lt;em>/usr/bin&lt;/em> para que lo pueda llamar a ejecución desde cualquier ubicación de mi sistema.&lt;/p></description></item><item><title>Construyendo un corazón con Inkscape para el día del amor y la amistad.</title><link>https://linuxmanr4.com/2015/02/03/febrero-mes-del-amor-y-la-amistad/</link><pubDate>Tue, 03 Feb 2015 15:42:05 +0000</pubDate><guid>https://linuxmanr4.com/2015/02/03/febrero-mes-del-amor-y-la-amistad/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/corazones-y-chocolates.png" alt="Featured image of post Construyendo un corazón con Inkscape para el día del amor y la amistad." />&lt;p>No se puede hablar del mes de febrero sin evadir la celebración del día del amor y la amistad.&lt;/p>
&lt;p>Continuo con la serie de calendarios hechos con &lt;strong>Inkscape&lt;/strong> y no hay nada más emblemático para estas fechas que el famoso corazoncito.&lt;/p>
&lt;p>Se me ocurrió un método sencillo (pero no perfecto) para hacerlos. En primer lugar dibujé en triangulo con la herramienta &lt;strong>Curvas de Bézier (Máyus+F6)&lt;/strong> al cual le eliminé un nodo para obtener una curva parecida a la mitad de un corazón.&lt;/p>
&lt;p>Luego dupliqué esta imagen (Ctrl+D) y le hice un &lt;strong>Reflejo Horizontal (H)&lt;/strong> y al unir las imágenes se obtienen los corazones que ven en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/Construcci%C3%B3n-de-un-coraz%C3%B3n-en-Inkscape.jpg"
alt="Construcción de un corazón en Inkscape">&lt;figcaption>
&lt;p>Construcción de un corazón en Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/02/14-de-febrero.png"
alt="14 de febrero">&lt;figcaption>
&lt;p>14 de febrero&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como siempre, pueden descargar el archivo de trabajo &lt;a class="link" href="https://linuxmanr4.com/2015/02/03/febrero-mes-del-amor-y-la-amistad/14-de-febrero-svg/" >14 de febrero.svg&lt;/a>
para que puedan modificarlo a su gusto.&lt;/p></description></item><item><title>Filtros de Instagram en Gimp</title><link>https://linuxmanr4.com/2015/01/22/filtros-de-instagram-en-gimp/</link><pubDate>Thu, 22 Jan 2015 16:24:14 +0000</pubDate><guid>https://linuxmanr4.com/2015/01/22/filtros-de-instagram-en-gimp/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/lord-kelvin.jpg" alt="Featured image of post Filtros de Instagram en Gimp" />&lt;p>Gracias a este artículo &lt;a class="link" href="http://lamiradadelreplicante.com/2015/01/20/usando-los-efectos-de-instagram-en-gimp/" target="_blank" rel="noopener"
>Usando los efectos de Instagram en GIMP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me enteré de este interesante juego de scripts que permiten aplicar fácilmente filtros de Instagram en Gimp.&lt;/p>
&lt;p>Para ser sincero no uso &lt;strong>Instagram&lt;/strong>, pero se que una buena parte del éxito de esta red social son los filtros que aplica a las imágenes así que la posibilidad de usar estos filtros en &lt;strong>Gimp&lt;/strong> llamó mi atención.&lt;/p>
&lt;p>El articulo de &lt;strong>Tannhausser&lt;/strong> es muy completo, pero no muestra los filtros en todo su esplendor, tampoco en la web de &lt;a class="link" href="https://plus.google.com/109425919577115357346/posts" target="_blank" rel="noopener"
>Marco Crippa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
el autor de los scripts. Por eso me tomé un tiempo para aplicarle a una foto sin retoques el efecto de cada uno de los filtros sin ajustes adicionales.&lt;/p>
&lt;h2 id="imagen-original">Imagen Original
&lt;/h2>&lt;p>Les presento a &lt;strong>Romeo&lt;/strong> el modelo que tan amablemente se prestó para el experimento.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/original.jpg"
alt="original">&lt;figcaption>
&lt;p>original&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="con-los-efectos-de-instagram">Con los efectos de Instagram
&lt;/h2>&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/xproii.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/willow.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/walden.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/valencia.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/toaster.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/sutro.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/sierra.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/rise.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/poprocket.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/nashville.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/mayfair.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/lord-kelvin.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/lofi.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/inkwell.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/hudson.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/hefe.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/gotham.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/earlybird.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/brannan.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/apollo.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/amaro.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2015/01/1977.jpg?ssl=1&amp;amp;resize=683%2C683"
loading="lazy"
>&lt;/p>
&lt;p>Como pueden ver los efectos son muy variados, en algunos se resaltan algunos aspectos, en otros se ocultan, bien usados estos filtros pueden realzar mucho una imagen o adaptarla a un contexto.&lt;/p>
&lt;p>Si les interesa descargar los scripts Instagram para Gimp lo pueden hacer desde la página del autor &lt;a class="link" href="http://krypt77.altervista.org/#/gimp_instagram_effects" target="_blank" rel="noopener"
>Instagram effects (Gimp 2.8.6)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, lo único que tienen que hacer es descomprimir los archivos en la carpeta &lt;strong>.gimp-2.8/plugins&lt;/strong> , esta carpeta esta oculta en tu carpeta home de usuario si estas usando Linux. En windows 7 encontré la carpeta en &lt;strong>Users/nombre de usuario/.gimp-2.8&lt;/strong>.&lt;/p></description></item><item><title>Descargar los XML del SAT de una manera más sencilla</title><link>https://linuxmanr4.com/2015/01/20/descargar-los-xml-del-sat-de-una-manera-mas-sencilla/</link><pubDate>Tue, 20 Jan 2015 17:50:49 +0000</pubDate><guid>https://linuxmanr4.com/2015/01/20/descargar-los-xml-del-sat-de-una-manera-mas-sencilla/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Admin-CFDI.png" alt="Featured image of post Descargar los XML del SAT de una manera más sencilla" />&lt;p>Descargar los XML del SAT no es una tarea sencilla, puede resultar trivial cuando se trata de una o dos facturas, pero cuando se quiere descargar un número importante se puede convertir en una pesadilla.&lt;/p>
&lt;p>En el 2015 es obligación de los contribuyentes tener una copia de las facturas digitales en formato XML tanto de las facturas que emite como de las que recibe para que tengan validez fiscal.&lt;/p>
&lt;blockquote>
&lt;p>I.2.23.3.2. Para los efectos del artículo 29, fracción V, tercer párrafo, del CFF, los contribuyentes que emitan y reciban CFDI, deberán almacenarlos en medios magnéticos, ópticos o de cualquier otra tecnología, en su formato electrónico XML.&lt;/p>&lt;/blockquote>
&lt;p>Se supone que los proveedores deben mandar los archivos XML por correo electrónico. La factura impresa en si no tiene ningún valor. Algunos negocios cuando dan de alta los datos del cliente no incluyen en la captura una dirección de correo electrónico o el cliente no tiene una y se va contento con una representación impresa. Como sea la responsabilidad de guardar esos archivos recae en el contribuyente.&lt;/p>
&lt;p>El método tradicional dicta que te puedes conectar al sitio del SAT, ingresar con el RFC y una contraseña, consultar y descargar los XML. Pero el sitio es algo caprichoso y hacer una descarga masiva puede ser una tarea que consuma mucho tiempo.&lt;/p>
&lt;h2 id="admin-cfdi-es-la-solución">ADMIN CFDI es la solución
&lt;/h2>&lt;p>Afortunadamente me encontré con &lt;a class="link" href="https://web.archive.org/web/20160302164837/http://facturalibre.net/servicios/" target="_blank" rel="noopener"
>Admin CFDI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de los buenos amigos de Factura Libre.&lt;/p>
&lt;p>&lt;strong>Admin CFDI&lt;/strong> es una herramienta escrita en Python que automatiza algunas tareas que nos tomaría mucho más tiempo hacerlas de modo manual, como por ejemplo la descarga de los archivos &lt;a class="link" href="https://es.wikipedia.org/wiki/Extensible_Markup_Language" target="_blank" rel="noopener"
>XML&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Su instalación no es tan sencilla. En este caso me voy a centrar en los usuarios que usan Windows, aunque en teoría no debería de tener problemas para funcionar en Linux.&lt;/p>
&lt;h3 id="descargar-admin-cfdi">Descargar Admin CFDI
&lt;/h3>&lt;p>Para descargar el programa hay que visitar el sitio facturalibre.net/servicios en la sección que dice &lt;strong>Admin CFDI con descarga SAT&lt;/strong>, es un pequeño archivo en formato &lt;a class="link" href="http://www.7-zip.org/" target="_blank" rel="noopener"
>7-zip&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que pueden descomprimir con winrar o con el mismo programa 7-zip.&lt;/p>
&lt;p>Este lo pueden descomprimir en la carpeta de su preferencia.&lt;/p>
&lt;h3 id="descargar-python">Descargar Python
&lt;/h3>&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/Python" target="_blank" rel="noopener"
>Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es el lenguaje de programación necesario para poder ejecutar Admin CFDI, de hecho, el archivo que descargamos anteriormente contiene el código fuente del programa ¡Genial!&lt;/p>
&lt;p>En la página de descargas elegí la versión recomendada &lt;a class="link" href="https://www.python.org/downloads/" target="_blank" rel="noopener"
>Python 3.4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y misma que instalé.&lt;/p>
&lt;p>Una recomendación, al momento de hacerlo hagan una instalación personalizada y marquen la opción que dice &lt;strong>Add python.exe to Path&lt;/strong> . De esa forma no tendrán problema para ejecutar el código del programa, con hacer doble clic en el archivo será suficiente.&lt;/p>
&lt;h3 id="extensiones-para-windows-32-de-python">Extensiones para Windows 32 de Python
&lt;/h3>&lt;p>También van a necesitar estas extensiones, mismas que pueden descargar desde su sitio en SourceForge &lt;a class="link" href="http://sourceforge.net/projects/pywin32/" target="_blank" rel="noopener"
>Python for Windows Extensions&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Hay muchas opciones, así que elegí las que corresponden a la versión que instalé, o sea la versión 3.4 de Python.&lt;/p>
&lt;h3 id="firefox">Firefox
&lt;/h3>&lt;p>El programa requiere &lt;a class="link" href="https://www.mozilla.org/es-MX/firefox/new/" target="_blank" rel="noopener"
>Firefox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como navegador, así que si no lo tienes instalado es necesario descargarlo.&lt;/p>
&lt;h3 id="más-programas">Más programas
&lt;/h3>&lt;p>Por último es necesario instalar unos complementos para python que usa &lt;strong>Admin CFDI&lt;/strong>. En windows se abre un &lt;strong>Símbolo de sistema&lt;/strong> y se teclea lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pip install selenium pygubu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Selenium&lt;/strong> es necesario porque es el programa que se encarga de hacer las interacciones con Firefox (sabrán a que me refiero cuando lo vean funcionando) y &lt;strong>Pygubu&lt;/strong> hace posible la interfaz gráfica del programa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Instalando-selenium-y-pygubu.png"
alt="Instalando selenium y pygubu">&lt;figcaption>
&lt;p>Instalando selenium y pygubu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="para-descargar-los-xml">Para descargar los XML.
&lt;/h2>&lt;p>Para ejecutar el programa pueden hacer doble clic en el archivo &lt;strong>admincfdi.py&lt;/strong> (pueden hacer un acceso directo al escritorio) y verán una pantalla muy similar a esta.&lt;/p>
&lt;p>Ahora solo tienen que rellenar algunos campos. &lt;strong>Razón Social&lt;/strong> es un alias para identificar los demás datos.&lt;/p>
&lt;p>&lt;strong>RFC&lt;/strong> y &lt;strong>Clave CIEC&lt;/strong> son los datos de ingreso a la &lt;a class="link" href="https://linuxmanr4.com/2011/01/05/errores-al-validar-los-cfd-en-la-pagina-del-sat/" >página del SAT&lt;/a>
que usan normalmente para descargar los XML.&lt;/p>
&lt;p>&lt;strong>Descargar en&lt;/strong> es la carpeta local en donde se van a descargar los archivos XML.&lt;/p>
&lt;p>No se les olvide presionar el botón de &lt;strong>Guardar&lt;/strong> para que no tengan que teclear estos datos una y otra vez.&lt;/p>
&lt;p>Lo demás son los parámetros de la consulta, pueden descargar un solo archivos usando el &lt;strong>Folio Fiscal (UUID)&lt;/strong> o meses completos si así lo desean.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Admin-CFDI.png"
alt="El programa Admin CFDI listo para entrar en acción.">&lt;figcaption>
&lt;p>El programa Admin CFDI listo para entrar en acción.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por favor no se asusten si ven que el equipo se empieza a mover solo, no es que le estén haciendo un &amp;quot; &lt;a class="link" href="https://linuxmanr4.com/2019/03/22/como-programar-un-control-remoto-steren-rm-2000/" >control remoto&lt;/a>
&amp;quot; o la compu esta &amp;ldquo;embrujada&amp;rdquo;, es simplemente la automatización que hace Admin CFDI y que nos permite ahorrar mucho tiempo.&lt;/p>
&lt;p>Otro detalle que he visto con frecuencia es que si la página del SAT les dice que el sistema está lento se va a cerrar, a veces no tengo que esperar mucho, inmediatamente lo vuelvo a intentar y funciona perfectamente.&lt;/p>
&lt;h2 id="otras-funciones">Otras funciones
&lt;/h2>&lt;p>Admin CFDI no solo sirve para descargar los archivos XML, también puede revisar cuentas de correo electrónico en &lt;a class="link" href="https://linuxmanr4.com/2017/01/24/buscar-archivos-catfish-thunar/" >busca de estos archivos&lt;/a>
.&lt;/p>
&lt;p>También tiene una función para organizar los XML en varias carpetas en función de quien emite la factura, mes y año, algo muy útil cuando el número de archivos empieza a crecer.&lt;/p>
&lt;p>Incluye un validador, pero esa opción todavía la estoy revisando.&lt;/p>
&lt;p>Quiero agradecer al buen amigo &lt;a class="link" href="http://www.universolibre.org/" target="_blank" rel="noopener"
>Mauricio Baeza&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
por compartir su trabajo, si así hiciera las cosas el &lt;a class="link" href="https://linuxmanr4.com/2022/04/21/obtener-la-constancia-de-situacion-fiscal-usando-la-aplicacion-sat-id/" >SAT&lt;/a>
todo sería mucho más sencillo en este país.&lt;/p>
&lt;h2 id="referencias-y-descargas">Referencias y descargas
&lt;/h2>&lt;ul>
&lt;li>Administrar CFDI con descarga del SAT&lt;/li>
&lt;li>&lt;a class="link" href="https://www.python.org/downloads/" target="_blank" rel="noopener"
>Python 3.4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/pywin32/" target="_blank" rel="noopener"
>Python for Windows Extensions&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.mozilla.org/es-MX/firefox/new/" target="_blank" rel="noopener"
>Firefox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/LinuxCabal/admin-cfdi" title="admin-cfdi en github"
target="_blank" rel="noopener"
>admin-cfdi en GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>xbmctorrent una alternativa a popcorntime</title><link>https://linuxmanr4.com/2015/01/15/xbmctorrent-una-alternativa-popcorntime/</link><pubDate>Thu, 15 Jan 2015 14:38:22 +0000</pubDate><guid>https://linuxmanr4.com/2015/01/15/xbmctorrent-una-alternativa-popcorntime/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Lista-de-peliculas.jpg" alt="Featured image of post xbmctorrent una alternativa a popcorntime" />&lt;p>Eso me pasa por esperar tanto tiempo en escribir un artículo, justo cuando voy a escribir sobre &lt;strong>xbmctorrent&lt;/strong> me doy cuenta de que el proyecto &lt;strong>XBMC&lt;/strong> ha cambiado de nombre a &lt;a class="link" href="http://kodi.tv/" title="KODI (anteriormente XBMC)"
target="_blank" rel="noopener"
>KODI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, desconozco los motivos que originaron el cambio aunque supongo que la mayor diferencia será únicamente en el nombre y no el programa. En fin, &lt;strong>xbmctorrent&lt;/strong> es un programa agregado (addon) para XBMC y al parecer sigue funcionando sin problemas al menos hasta en la versión 13.&lt;/p>
&lt;p>Su función es similar a lo que hace &lt;strong>PopcornTime&lt;/strong>, este &lt;em>addon&lt;/em> se encarga de buscar, descargar y reproducir los archivos de películas y series que descarga mediante &lt;a class="link" href="https://es.wikipedia.org/wiki/BitTorrent" target="_blank" rel="noopener"
>bittorrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es una buena alternativa si ya se tiene un equipo configurado con XBMC y se dispone de una buena velocidad de Internet.&lt;/p>
&lt;p>En conjunto con el &lt;em>addon&lt;/em> para descargar subtitulos que viene incluido en XBMC se pude configurar como una buena opción a otros programas como &lt;strong>PopcornTime&lt;/strong>. No digo que PopcornTime este mal, al contrario, recientemente esta bajo un desarrollo intenso y publican actualizaciones frecuentemente, pero esta llamando mucho la atención y eso es malo para este tipo de proyectos.&lt;/p>
&lt;h2 id="instalación">Instalación
&lt;/h2>&lt;p>Para instalarlo primero hay que descargar el archivo zip más actual de xbmctorrent y disponible en &lt;a class="link" href="https://github.com/steeve/xbmctorrent/releases" target="_blank" rel="noopener"
>xbmctorrent en GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Para instalar el &lt;em>plugin&lt;/em> en XBMC hay que ir al menú &lt;strong>Ajustes&lt;/strong> - &lt;strong>Complementos&lt;/strong> - &lt;strong>Install from zip file&lt;/strong> y ubicarnos en la carpeta donde descargamos el archivo zip del paso anterior.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/XBMC-Install-from-zip-file.png"
alt="XBMC Install from zip file">&lt;figcaption>
&lt;p>XBMC Install from zip file&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y eso es todo, aparecerá un anuncio avisando que el plugin fue instalado y ahora solo tienen que ir al menú &lt;strong>Videos&lt;/strong> - &lt;strong>Complementos&lt;/strong> - &lt;strong>xbmctorrent&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/XBMC-Videos-Complementos.jpg"
alt="XBMC Videos Complementos">&lt;figcaption>
&lt;p>XBMC Videos Complementos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que sigue es una lista de los canales disponibles, algunos nombres son muy reconocidos como &lt;strong>EZTV&lt;/strong>, &lt;strong>YIYF Torrents&lt;/strong>, &lt;strong>Kickass Torrents&lt;/strong> y con un poco de nostalgia se puede ver al bapuleado &lt;strong>Pirate Bay&lt;/strong>, que aún no esta extinto (o eso quiero creer).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Lista-de-canales.jpg"
alt="Lista de canales disponibles">&lt;figcaption>
&lt;p>Lista de canales disponibles&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De ahí en adelante solo tienen que elegir el archivo que quieran ver y el &lt;em>addon&lt;/em> se encargará del resto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Lista-de-peliculas.jpg"
alt="Lista de peliculas">&lt;figcaption>
&lt;p>Lista de peliculas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/steeve/xbmctorrent/releases" target="_blank" rel="noopener"
>xbmctorrent en GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://kodi.tv/" title="Kodi (anteriormente XBMC)"
target="_blank" rel="noopener"
>Kodi (anteriormente XBMC)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Cambiar el color de la fuente del escritorio en Cinnamon</title><link>https://linuxmanr4.com/2015/01/13/cambiar-el-color-de-la-fuente-del-escritorio-en-cinnamon/</link><pubDate>Tue, 13 Jan 2015 16:40:45 +0000</pubDate><guid>https://linuxmanr4.com/2015/01/13/cambiar-el-color-de-la-fuente-del-escritorio-en-cinnamon/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Cambiando-el-color-de-la-letra-en-Cinnamon.png"
alt="Cambiando el color de la letra en Cinnamon">&lt;figcaption>
&lt;p>Cambiando el color de la letra en Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este es un problema que he tenido por algún tiempo, pero no le había dado mucha importancia y no le había dedicado el tiempo suficiente para arreglarlo.&lt;/p>
&lt;p>Verán en las últimas actualizaciones de Manjaro algo cambió en las nuevas versiones de&lt;br>
&lt;strong>Cinnamon&lt;/strong> y el color de la letra de los iconos del escritorio no se ve bien cuando el fondo de la pantalla es muy oscuro.&lt;/p>
&lt;p>Esto me limita a elegir fondos que son muy claros para que las letras se distingan, de lo contrario son muy dificiles de leer.&lt;/p>
&lt;p>Buscando en los foros de &lt;strong>Mint&lt;/strong> encontré una solución que me ha funcionado, es un poco rebuscada pero tampoco es muy complicado.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>La solución es editar un archivo de configuración, pero tiene que ser el correcto.&lt;/p>
&lt;p>Primero tengo que revisar el tema que estoy usando en los controles, en mi caso, estoy usando el &lt;em>theme&lt;/em> &lt;strong>Numix-OSX&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Controles-Numix-OSX.png"
alt="Controles Numix-OSX">&lt;figcaption>
&lt;p>Controles Numix-OSX&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora tengo que editar el archivo &lt;strong>gnome-applications.css&lt;/strong> que en mi caso se encuentra en la carpeta &lt;strong>/usr/share/themes/Numix-OSX/gtk-3.0/apps/&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /usr/share/themes/Numix-OSX/gtk-3.0/apps/gnome-applications.css
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y agregar al final del archivo lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">nemo-desktop&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">nemo-canvas-item&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#ffffff&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-shadow&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="kt">px&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="kt">px&lt;/span> &lt;span class="o">@&lt;/span>&lt;span class="n">desktop_item_text_shadow&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">nemo-desktop&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nc">nemo-canvas-item&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="nd">selected&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nf">alpha&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mh">#d64a38&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">background-image&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mh">#ffffff&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-shadow&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para aplicar los cambios es necesario cerrar la sesión y entrar nuevamente.&lt;/p>
&lt;p>Si todo salió bien, verán que ahora el color del texto de los iconos de la pantalla son de color blanco y se llevan muy bien con los fondos de color oscuro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Letras-blancas-en-Cinnamon.png"
alt="Letras blancas en Cinnamon">&lt;figcaption>
&lt;p>Letras blancas en Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://forums.linuxmint.com/viewtopic.php?f=208&amp;amp;t=167081" target="_blank" rel="noopener"
>Linux Mint Forums: Change desktop font color&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Hacer un calendario en Inkscape</title><link>https://linuxmanr4.com/2015/01/06/hacer-un-calendario-en-inkscape/</link><pubDate>Tue, 06 Jan 2015 16:18:31 +0000</pubDate><guid>https://linuxmanr4.com/2015/01/06/hacer-un-calendario-en-inkscape/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/enero-2016.jpg" alt="Featured image of post Hacer un calendario en Inkscape" />&lt;p>Inicio de año y quise comenzar este 2015 con &lt;strong>Inkscape&lt;/strong>, mi editor de gráficos vectoriales favorito y con el que genero la mayoría de las gráficas de este blog. Anteriormente ya he hecho algunos calendarios, pero creo que este añor iré mes con mes y el tema será el que me inspire en ese momento. Creo que es una buena forma de practicar y mejorar mis habilidades con este programa.&lt;/p>
&lt;p>Hacer un calendario en Inkscape es muy sencillo, para eso hay una herramienta que nos permite generar las fechas con una gran variedad de opciones, esta en el menú &lt;strong>Extensiones&lt;/strong> - &lt;strong>Generar&lt;/strong> - &lt;strong>Calendario &amp;hellip;&lt;/strong> y como pueden ver hay una gran cantidad de variables para personalizarlo.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2015/01/06/hacer-un-calendario-en-inkscape/inkscape-enero-2015/" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2015/01/Inkscape-Enero-2015.png"
loading="lazy"
alt="Inkscape Enero 2015"
>&lt;/a>
&lt;/p>
&lt;p>Se puede elegir mes con mes, el año, todos los meses, días de inicio de semana, para mi son los lunes, pero he visto calendarios que comienzan con domingo.&lt;/p>
&lt;p>En este ejemplo solo hice le mes de enero, elegí una paleta de colores sencilla ( &lt;a class="link" href="https://www.colourlovers.com/palette/250915/January" title="January"
target="_blank" rel="noopener"
>January&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) y formas simples, al mas puro estilo minimalista.&lt;/p>
&lt;p>A mi me gusta pintar la paleta en cuadros de colores del lado izquierdo para pegarlos en el dibujo con la herramienta del &lt;strong>gotero&lt;/strong>.&lt;/p>
&lt;p>Como siempre, si quieren descargar el ejemplo y modificarlo lo pueden hacer. &lt;a class="link" href="https://linuxmanr4.com/2015/01/06/hacer-un-calendario-en-inkscape/enero-2015-svg/" >enero 2015.svg.zip&lt;/a>
&lt;/p>
&lt;p>¡Feliz día de Reyes! :)&lt;/p></description></item><item><title>Imágenes navideñas con Inkscape</title><link>https://linuxmanr4.com/2014/12/23/imagenes-navidenas-con-inkscape/</link><pubDate>Tue, 23 Dec 2014 17:36:18 +0000</pubDate><guid>https://linuxmanr4.com/2014/12/23/imagenes-navidenas-con-inkscape/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/imagenes-navide%C3%B1as-inkscape.png" alt="Featured image of post Imágenes navideñas con Inkscape" />&lt;p>La Navidad esta a la vuelta de la esquina, es tiempo de pasar el tiempo con la familia, el pavo, la cena y antes de retirarme a festejar las fiestas decembrinas les dejo este pequeño kit de imágenes navideñas con &lt;strong>Inkscape&lt;/strong>.&lt;/p>
&lt;p>La &lt;a class="link" href="https://www.colourlovers.com/palette/130451/Tis_the_Season" title="&amp;#39;Tis the Season"
target="_blank" rel="noopener"
>paleta de colores&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
combina el verde y el rojo muy apropiados para estas fechas, incluye un kit de gorro, bigote y barba, si se ponen creativos pueden aprovecharlos para disfrazar cualquier foto que deseen. Además tiene una esfera y un arbolito navideño.&lt;/p>
&lt;p>Espero que disfruten estos días en compañía de sus seres queridos. JOOOO JOOOO JOOOOOOOOO :)&lt;/p></description></item><item><title>Como resolver problemas del reloj en Manjaro</title><link>https://linuxmanr4.com/2014/12/12/como-resolver-problemas-del-reloj-en-manjaro/</link><pubDate>Fri, 12 Dec 2014 20:41:08 +0000</pubDate><guid>https://linuxmanr4.com/2014/12/12/como-resolver-problemas-del-reloj-en-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/problemas-de-reloj-con-manjaro.png" alt="Featured image of post Como resolver problemas del reloj en Manjaro" />&lt;p>Los problemas con el reloj que muestra una hora incorrecta es muy común en Manjaro particularmente si se tiene un equipo que arranca también con Windows.&lt;/p>
&lt;p>Supongamos que el equipo inicia en Windows y todo normal, pero al entrar nuevamente a Manjaro podemos ver un desfase en el reloj que puede ser de varias horas.&lt;/p>
&lt;p>Para resolver problemas del reloj en Manjaro me he valido de una herramienta que incluye la misma distribución y una instrucción que se ejecuta desde la terminal.&lt;/p>
&lt;h2 id="la-explicación">La explicación
&lt;/h2>&lt;p>Verán, existen dos estándares para el control del reloj, uno de ellos es &lt;strong>localtime&lt;/strong> utilizado por Windows y el otro es &lt;a class="link" href="https://es.wikipedia.org/wiki/Tiempo_universal_coordinado" target="_blank" rel="noopener"
>UTC (Tiempo Universal Coordinado)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es el que usa Mac OS X, UNIX y muchas versiones de Linux.&lt;/p>
&lt;p>&lt;strong>UTC&lt;/strong> se obtiene a partir del &lt;a class="link" href="https://es.wikipedia.org/wiki/Tiempo_At%C3%B3mico_Internacional" target="_blank" rel="noopener"
>Tiempo atómico internacional&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y como pueden suponer es el estándar mundial.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/UTC-almacena-la-hora-local-en-el-reloj-del-hardware.png"
alt="UTC almacena la hora local en el reloj del hardware">&lt;figcaption>
&lt;p>UTC almacena la hora local en el reloj del hardware&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora viene el problema, el estándar utilizado por el reloj del hardware se establece por el sistema operativo. Es decir cada sistema operativo controla el reloj de hardware para intentar mostrar la hora correcta en el reloj.&lt;/p>
&lt;p>Linux sincroniza la hora correcta en el reloj de hardware, mientras que Windows hace lo contrario, sincroniza la hora UTC y hace el ajuste de zona horaria dentro del sistema operativo. Por eso al reinicar en Linux aparece la hora desfasada por varias horas.&lt;/p>
&lt;p>Existe una forma para hacer que Windows utilice UTC en lugar de localtime haciendo ajustes en el registro, pero para ser honesto, son muy pocas veces las que inicio mi computadora con el sistema de Redmond y si lo llegara a hacer con un par de teclas corrijo el problema.&lt;/p>
&lt;h2 id="timeset">Timeset
&lt;/h2>&lt;p>&lt;strong>Timeset&lt;/strong> es la navaja suiza para revisar y administrar la configuración de la hora de Manjaro.&lt;/p>
&lt;p>Timeset se puede instalar directamente gracias a &lt;a class="link" href="https://github.com/Jguer/yay" target="_blank" rel="noopener"
>yay&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yay timeset
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/timeset.png"
alt="Menú de opciones de Timeset">&lt;figcaption>
&lt;p>Menú de opciones de Timeset&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En su pantalla inicial pueden ver un menú con varias opciones, pero lo que me interesa revisar antes que nada es el &lt;strong>Time zone&lt;/strong>, porque si esta incorrecto de nada servirá actualizar la sincronización de la hora si el &lt;a class="link" href="https://es.wikipedia.org/wiki/Huso_horario" target="_blank" rel="noopener"
>huso horario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es incorrecto.&lt;/p>
&lt;p>Claro que el &lt;strong>Time zone&lt;/strong> se elige durante la instalación y en teoría no se cambia de manera frecuente, pero si existiera un error se puede ajustar buscando la Zona horaria correcta con la opción 2 &lt;strong>Mostrar conocido Timezones&lt;/strong>(sic) y estableciendo la correcta con la opción 3 &lt;strong>Establecer Zona Horaria del Sistema&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/Mostrar-fecha-actual-y-la-configuraci%C3%B3n-de-la-hora.png"
alt="Verificando que la zona horaria este correcta">&lt;figcaption>
&lt;p>Verificando que la zona horaria este correcta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con la zona horaria correcta le toca el turno a la opción 4 &lt;strong>Sincronizar hora de la red (NTP)&lt;/strong>, eso hará que el sistema se sincronice con un servidor de horario estableciendo la hora correcta del sistema.&lt;/p>
&lt;h2 id="escribiendo-la-hora-al-reloj-de-hardware">Escribiendo la hora al reloj de hardware
&lt;/h2>&lt;p>Otra opción es hacerlo “a manita”, si el &lt;strong>Time zone&lt;/strong> es correcto, entonces se puede ajustar el reloj ejecutando la siguiente instrucción desde la terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo ntpdate -u 0.pool.ntp.org &amp;amp;&amp;amp; sudo hwclock -w
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sincroniza la hora desde un servidor ntp y además escribe esta hora en el reloj de hardware del sistema.&lt;/p>
&lt;p>Esto resolverá muchos problemas de la hora, al menos hasta la próxima vez que se inicie la computadora con Windows, entonces solo se tiene que ejecutar nuevamente la instrucción y asunto arreglado.&lt;/p>
&lt;p>Espero que este consejo les sea de utilidad.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Time_%28Espa%C3%B1ol%29#Hora_est.C3.A1ndar" title="Hora estándar"
target="_blank" rel="noopener"
>Wiki Arch: Hora estándar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Convertir un lector de memorias interno a externo</title><link>https://linuxmanr4.com/2014/12/10/convertir-un-lector-de-memorias-interno-externo/</link><pubDate>Wed, 10 Dec 2014 20:15:57 +0000</pubDate><guid>https://linuxmanr4.com/2014/12/10/convertir-un-lector-de-memorias-interno-externo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/lector-de-memorias-externo-terminado.jpg" alt="Featured image of post Convertir un lector de memorias interno a externo" />&lt;p>Cuando comenzó la extinción de las unidades de disco flexible era muy común reemplazar este dispositivo con un lector de memorias interno. Actualmente tengo una de estas unidades lectoras en mi computadora, pero esta por debajo del escritorio y atinarle a la ranura adecuada siempre es un mini reto, si acertar al lado correcto de una USB se siente como sacarse la lotería ahora imagínense lo que ocurre cuando se trata de una memoria micro sd.&lt;/p>
&lt;p>Tenía una de esas unidades olvidada en mi cementerio de refacciones y decidí hacer algo con ella.&lt;/p>
&lt;p>Convertir un lector de memorias interno a externo no es complicado, es una tarea que puede llevar unos 15 minutos si se tiene todos los materiales.&lt;/p>
&lt;h2 id="materiales">Materiales
&lt;/h2>&lt;p>Pare hacer la conversión se necesita:&lt;/p>
&lt;ul>
&lt;li>Un lector de memorias interno.&lt;/li>
&lt;li>Un cable USB, en mi caso utilicé el de una impresora.&lt;/li>
&lt;li>Soldadura, cautín.&lt;/li>
&lt;li>Cinta de aislar.&lt;/li>
&lt;/ul>
&lt;h2 id="cortar-pelar-soldar-aislar">Cortar, pelar, soldar, aislar.
&lt;/h2>&lt;p>Como pueden ver en las imágenes el proceso es muy simple, el lector de memorias tiene un cable que se conecta directamente a la tarjeta madre, pues hay que cortarlo y encontrar los siguientes cables.&lt;/p>
&lt;ul>
&lt;li>Rojo (+5V)&lt;/li>
&lt;li>Blanco (Datos -)&lt;/li>
&lt;li>Verde (Datos +)&lt;/li>
&lt;li>Negro (Tierra o negativo)&lt;/li>
&lt;/ul>
&lt;p>Esos son los únicos cables que se necesitan. Hay que pelarlos y estañarlos con el cautín para que la unión sea más sencilla.&lt;/p>
&lt;p>Hice lo mismo con el cable USB, corte el extremo que se conecta a la impresora y dejé el conector rectangular. En este caso solamente existen los 4 cable que mencioné anteriormente, nuevamente a pelar y a estañar.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/cortar-pelar-soldar-aislar.jpg"
alt="Cortar, pelar, soldar y aislar, en ese orden">&lt;figcaption>
&lt;p>Cortar, pelar, soldar y aislar, en ese orden&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hay que soldar cada cable con su contraparte, rojo con rojo, blanco con blanco y así. Al terminar hay que encintar cada cable y reforzar la unión con más cinta se aislar. Si se tiene a la mano plástico &lt;a class="link" href="http://www.carrod.mx/products/aislante-thermofit-1-16" target="_blank" rel="noopener"
>thermofit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
mucho mejor, pero si no con la cinta de aislar será más que suficiente.&lt;/p>
&lt;h2 id="a-probar">A probar
&lt;/h2>&lt;p>Si todo salió bien, solo tienen que conectar la unidad a un puerto USB que este disponible en la computadora, colocar una memoria en el puerto y ¡TADAAAAAAAAN!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/Copiando-algunos-archivos-para-probar-el-lector.jpg"
alt="Copiando algunos archivos para probar el lector">&lt;figcaption>
&lt;p>Copiando algunos archivos para probar el lector&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es cierto que pierdo un puerto USB de mi equipo al conectar este dispositivo, pero ahora me queda en un lugar mucho más cómodo.&lt;/p></description></item><item><title>Generador de contraseñas con javascript</title><link>https://linuxmanr4.com/2014/12/04/generador-de-contrasenas-javascript/</link><pubDate>Thu, 04 Dec 2014 21:14:08 +0000</pubDate><guid>https://linuxmanr4.com/2014/12/04/generador-de-contrasenas-javascript/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/generador_passwords_javascript.jpg" alt="Featured image of post Generador de contraseñas con javascript" />&lt;p>Ahora les traigo un pequeño programa desarrollado en &lt;em>javascript&lt;/em> que rescaté del limbo digital, se trata de un bonito y sencillo &lt;strong>generador de contraseñas&lt;/strong> que hace algunos ayeres publicó el buen amigo &lt;a class="link" href="http://b3co.com/" title="b3co"
target="_blank" rel="noopener"
>b3co&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en su blog.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/08/generador%5Fjavascript%5F2022%5F08.jpg">
&lt;/figure>
&lt;p>Utiliza como semilla aleatoria el movimiento del ratón sobre el recuadro, un auténtico evento aleatorio que es muy utilizado para la generación de contraseñas.&lt;/p>
&lt;p>Utiliza la función:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/formula.png"
alt="formula utilizada para la generación de las contraseñas">&lt;figcaption>
&lt;p>formula utilizada para la generación de las contraseñas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Donde:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>n&lt;/strong> es el número de puntos que se recolectaron del movimiento.&lt;/li>
&lt;li>&lt;strong>Xi&lt;/strong> es la coordenada en X correspondiente al punto i.&lt;/li>
&lt;li>&lt;strong>Yi&lt;/strong> es la coordenada en Y correspondiente al punto i.&lt;/li>
&lt;/ul>
&lt;p>Tiene la ventaja de que todo el proceso de generación se hace del lado del cliente, así que no podrá ser detectada mediante el uso de &lt;a class="link" href="https://es.wikipedia.org/wiki/Analizador_de_paquetes" target="_blank" rel="noopener"
>analizadores de paquetes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pueden estar seguros de que nadie la sabrá, a menos que tengan algún mirón cerca.&lt;/p>
&lt;p>En los próximos días lo voy a modificar para que también agregué símbolos a la contraseña. Mientras tanto pueden usarlo libremente y comentar posibles mejoras.&lt;/p>
&lt;p>Bien dicen que las cosas simples son las mejores.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/generador/" >Generador de contraseñas&lt;/a>
.&lt;/li>
&lt;/ul></description></item><item><title>El problema del archivo db.lck en Manjaro</title><link>https://linuxmanr4.com/2014/12/02/db-lck-manjaro-linux/</link><pubDate>Tue, 02 Dec 2014 15:10:16 +0000</pubDate><guid>https://linuxmanr4.com/2014/12/02/db-lck-manjaro-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/db-lck.png" alt="Featured image of post El problema del archivo db.lck en Manjaro" />&lt;p>El problema con el archivo db.lck en Manjaro Linux es muy común. Ayer me dejó un comentario el buen amigo &lt;a class="link" href="https://linuxmanr4.com/2014/11/18/pacman-con-wget/#comment-35722" title="Holmes"
>Holmes&lt;/a>
preguntando como solucionarlo y afortunadamente la solución es muy pero muy sencilla.&lt;/p>
&lt;p>El problema dice:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/12/ifyouareshure.png"
alt="if you’re sure a package manager is not already running, you can remove /var/lib/pacman/db.lck">&lt;figcaption>
&lt;p>if you’re sure a package manager is not already running, you can remove /var/lib/pacman/db.lck&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;if you&amp;#39;re sure a package manager is not already running, you can remove /var/lib/pacman/db.lck&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a class="link" href="https://wiki.manjaro.org/index.php/Pamac" target="_blank" rel="noopener"
>Pamac&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tiene otro error más amable, pero que tiene el mismo origen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Esperando a que salga de otro gestor de paquetes...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A veces pasa que por alguna razón se interrumpe el proceso de actualización, puede ser por un apagón, un reinicio forzoso o simplemente se presionó &lt;strong>Ctrl+C&lt;/strong> para interrumpir de manera inesperada la tarea de actualización.&lt;/p>
&lt;p>¿Se han fijado que no se pueden instalar otros paquetes mientras se esta actualizando el sistema? Eso es gracias al bloqueo que ejerce el archivo &lt;strong>db.lck&lt;/strong> y como se interrumpió el proceso este archivo no fue eliminado.&lt;/p>
&lt;h2 id="la-solución-eliminar-el-archivo-dblck">La solución: eliminar el archivo db.lck
&lt;/h2>&lt;p>La solución es muy sencilla y el mismo mensaje de error da una sugerencia, si no se está ejecutando otra tarea con un manejador de paquetes (pacman, octopi, pamac) simplemente hay que borrar el archivo &lt;strong>db.lck&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">rm&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pacman&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">db&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lck&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso es más que suficiente para quitar el bloqueo y la próxima vez que instalen un paquete o actualicen el sistema lo hará sin problemas.&lt;/p>
&lt;p>El mismo consejo se puede aplicar a Arch Linux ya que Manjaro es una distribución derivada y comparten muchas cosas.&lt;/p></description></item><item><title>FreeFileSync una herramienta para sincronizar archivos</title><link>https://linuxmanr4.com/2014/11/28/freefilesync-una-herramienta-para-sincronizar-archivos/</link><pubDate>Fri, 28 Nov 2014 17:34:18 +0000</pubDate><guid>https://linuxmanr4.com/2014/11/28/freefilesync-una-herramienta-para-sincronizar-archivos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/FreeFileSync-Paneles-de-Origen-y-Destino.png" alt="Featured image of post FreeFileSync una herramienta para sincronizar archivos" />&lt;p>&lt;strong>Freefilesync&lt;/strong> una herramienta para sincronizar archivos, es de esos programas que te preguntas porque no sabías de ellos antes.&lt;/p>
&lt;p>Es realmente muy útil y fácil de utilizar, al principio llama la atención la interfaz un poco espartana pero al poco tiempo de usarlo te das cuenta de que todo esta en su sitio y perfectamente bien explicado.&lt;/p>
&lt;p>Esta herramienta es ideal para sincronizar dos directorios y se puede usar también sin mucho problema como una herramienta de respaldos.&lt;/p>
&lt;p>Lo mejor es que corre en todos los sistemas operativos principales, Windows , Linux o Mac OS X tanto en 32 como en 64 bits.&lt;/p>
&lt;p>Tengo poco usándolo pero tengo que decirles que es simplemente genial.&lt;/p>
&lt;h2 id="origen-y-destino">Origen y Destino
&lt;/h2>&lt;p>&lt;a class="link" href="https://linuxmanr4.com/?attachment_id=9759" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/FreeFileSync-Paneles-de-Origen-y-Destino.png"
loading="lazy"
alt="FreeFileSync Paneles de Origen y Destino"
>&lt;/a>
&lt;/p>
&lt;p>Como pueden ver el diseño del programa tiene dos paneles, a la izquierda el origen, a la derecha el destino y entre ellos las opciones de copia.&lt;/p>
&lt;p>En la esquina superior izquierda esta el botón azul de &lt;strong>Comparar&lt;/strong> y en la esquina superior derecha el botón de &lt;strong>Sincronizar&lt;/strong> ambos con sus respectivos botones de configuración.&lt;/p>
&lt;h2 id="el-progreso">El progreso
&lt;/h2>&lt;p>&lt;a class="link" href="https://linuxmanr4.com/?attachment_id=9760" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/FreeFileSync-avance-de-la-sincronizaci%c3%b3n.png"
loading="lazy"
alt="FreeFileSync - avance de la sincronización"
>&lt;/a>
&lt;/p>
&lt;p>Una parte importante del proceso de sincronización es poder vigilar el avance de la copia, información sobre el Tiempo Restante (ETA) y la velocidad de la misma, pero sobre todo si existe algún problema durante la copia de los archivos.&lt;/p>
&lt;p>Al finalizar también entrega un registro (log) de la copia que podemos analizar detenidamente.&lt;/p>
&lt;h2 id="guardar-tareas">Guardar tareas
&lt;/h2>&lt;p>Todas las tareas de sincronización se pueden guardar en la interfaz para mandarlas llamar posteriormente, pero además tiene una opción de &lt;strong>Guardar como tarea por lotes&lt;/strong> lo que facilita enormemente ejecutar una tarea de sincronización desde la terminal o programarla para que se ejecute cada cierto tiempo.&lt;/p>
&lt;p>Todo esto lo hace la herramienta ideal para copias masivas de archivos tanto ocasionales como para aquellas tareas que son frecuentes como las de respaldo.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.freefilesync.org/" target="_blank" rel="noopener"
>FreeFileSync&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Actualizar Microsip con un servidor web local</title><link>https://linuxmanr4.com/2014/11/25/actualizar-microsip-con-un-servidor-web-local/</link><pubDate>Tue, 25 Nov 2014 22:26:26 +0000</pubDate><guid>https://linuxmanr4.com/2014/11/25/actualizar-microsip-con-un-servidor-web-local/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/Funciona-el-enga%C3%B1o.png" alt="Featured image of post Actualizar Microsip con un servidor web local" />&lt;p>Actualizar Microsip debería ser una tarea trivial, pero lamentablemente no lo es. Para empezar si se desea actualizar 5 o 6 estaciones de trabajo se tiene que hacer individualmente. Eso quiere decir que para que todos los equipos estén actualizados se requiere descargar todos paquetes de Internet X cantidad de veces.&lt;/p>
&lt;p>Hasta aquí parece que eso no representa un mayor problema, pero si no se tiene una buena conexión a Internet o surge algún problema durante la descarga se tiene que empezar todo el proceso desde el principio, así es, no importa que ya tenga descargados en su equipo 19 de 20 paquetes, si por alguna razón se interrumpe el procedimiento deberá empezar otra vez desde el principio.&lt;/p>
&lt;p>Al empezar una actualización &lt;strong>Microsip&lt;/strong> dice que se puede usar un &lt;a class="link" href="https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/" >servidor local&lt;/a>
pero nunca pude hacer que funcionara, hay pocos sitios en Internet que tengan información al respecto y para cualquier duda la empresa siempre te redirige al centro de atención a … perdón, a un &lt;strong>distribuidor autorizado&lt;/strong> más cercano que casi siempre cobra por su conocimiento sobre el sistema.&lt;/p>
&lt;p>También hay un problema con las versiones, por ejemplo, si un usuario instala una actualización antes que el servidor, este sistema dejará de funcionar simplemente porque las versiones de ambos no coinciden y eso amigos es un dolor de cabeza, porque no se si existe algún procedimiento para hacer un &lt;em>downgrade&lt;/em> y casi siempre se termina actualizando el sistema del servidor y por consecuencia se tienen que actualizar los demás.&lt;/p>
&lt;p>Por eso para facilitarme un poco las cosas decidí investigar la manera de actualizar Microsip con un servidor web local.&lt;/p>
&lt;h2 id="descargar-los-archivos-de-microsip">Descargar los archivos de Microsip
&lt;/h2>&lt;p>Lo primero que hice fue descargar todos los archivos de actualización de &lt;strong>Microsip&lt;/strong> que afortunadamente son muy fáciles de localizar. Todos los programas se encuentran alojados en el sitio web del fabricante &lt;a class="link" href="http://www.microsip.com/Actualizaciones/" target="_blank" rel="noopener"
>http://www.microsip.com/Actualizaciones/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, como pueden ver están ordenados por el año de la versión, a mi me interesa la del año 2014 que es la más reciente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/sitio-oficial-con-las-actualizaciones-de-microsip.png"
alt="Sitio oficial con las actualizaciones de microsip">&lt;figcaption>
&lt;p>Sitio oficial con las actualizaciones de microsip&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para descargar todos los archivos de la carpeta usé &lt;strong>wget&lt;/strong> que es mi herramienta favorita para estos menesteres.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">wget -m -F -p -np -k -erobots=off -U mozilla --limit-rate=100K --wait=2 --html-extension http://www.microsip.com/actualizaciones/2014/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="instalar-un-servidor-web">Instalar un servidor web
&lt;/h2>&lt;p>El siguiente paso es instalar un servidor web, no se requiere de algo complicado, puede funcionar una instalación de &lt;a class="link" href="https://www.apachefriends.org/es/index.html" target="_blank" rel="noopener"
>XAMPP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o de &lt;a class="link" href="http://www.appservnetwork.com/?newlang=spanish" target="_blank" rel="noopener"
>AppServ Open Project&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es la que utilicé.&lt;/p>
&lt;p>Como son servidores web ya configurados, lo único que hice es crear las carpetas &lt;strong>actualizaciones&lt;/strong> y &lt;strong>2014&lt;/strong> en el directorio raíz de los documentos web para igualar la estructura de directorios a la del servidor de &lt;strong>Microsip&lt;/strong> y copiar los archivos que se descargaron en el paso anterior.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/mi-servidor-web-copiando-la-estructura-de-directorios-de-microsip.png"
alt="Mi servidor web copiando la estructura de directorios de microsip">&lt;figcaption>
&lt;p>Mi servidor web copiando la estructura de directorios de microsip&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="redirigir-el-tráfico-a-nuestro-servidor-web">Redirigir el tráfico a nuestro servidor web.
&lt;/h2>&lt;p>Esto es tan sencillo como editar el archivo &lt;strong>hosts&lt;/strong> de windows. De esta forma se puede engañar al sistema operativo para que en lugar de dirigirse al servidor de actualizaciones de Microsip vaya al nuestro que esta en la red local.&lt;/p>
&lt;p>La ubicación del &lt;a class="link" href="https://es.wikipedia.org/wiki/Archivo_hosts" target="_blank" rel="noopener"
>Archivo hosts&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
cambia dependiendo de la versión de windows, por eso me permití hacer un extracto de una tabla que encontré en la wikipedia.&lt;/p>
&lt;p>Sistema operativoRutaWindows 95 / 98 / MeC:\Windows\hostsWindows NT / 2000C:\WINNT\System32\drivers\etc\hostsWindows XP / 2003 / Vista / 7 / 8C:\Windows\System32\drivers\etc\hosts&lt;/p>
&lt;p>A este archivo solo hay que agregarle al final una línea como esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">192.x.x.x www.microsip.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Donde &lt;em>192.x.x.x&lt;/em> es la dirección IP de nuestro servidor web local.&lt;/p>
&lt;p>Hecho este cambio y con nuestro servidor web configurado, al abrir la página &lt;strong>&lt;a class="link" href="https://www.microsip.com/Actualizaciones/" target="_blank" rel="noopener"
>www.microsip.com/Actualizaciones/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> debe mostrar el listado, pero de nuestro servidor, no el de Microsip.&lt;/p>
&lt;h2 id="actualizar-los-sistemas">Actualizar los sistemas
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/Funciona-el-enga%C3%B1o.png"
alt="Funciona el cambio de servidor microsip por uno local">&lt;figcaption>
&lt;p>Funciona el cambio de servidor microsip por uno local&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si se hizo todo de manera correcta podrán ver que la actualización de los programas &lt;strong>Microsip&lt;/strong> corre como relámpago en todas las máquinas a las que se le hizo el ajuste al archivo hosts, de esta forma tenemos un mejor control de las actualizaciones de los programas y serán también más homogéneas ya que la actualización se puede hacer casi de manera simultanea, con las mismas versiones en todos los equipos.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Como pueden ver, lo que hago es básicamente engañar a la computadora que va a actualizar para que utilice mi servidor en lugar del de Microsip y ahora que lo pienso, esto puede ser un poco peligroso, ya que las actualizaciones no están firmadas y pueden provenir de cualquier lado sin comprobación alguna.&lt;/p>
&lt;p>También sería bueno que el programa actualizador de Microsip comprobara primero los archivos que ya están descargados para no bajarlos de nuevo o cuando menos soportara descargas parciales.&lt;/p>
&lt;p>En fin, espero que este consejo les sea de utilidad.&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.microsip.com/" target="_blank" rel="noopener"
>Microsip, sistema contable&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.apachefriends.org/es/index.html" target="_blank" rel="noopener"
>XAMPP Apache + MySQL + PHP + Perl&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.appservnetwork.com/?newlang=spanish" target="_blank" rel="noopener"
>AppServ Open Project&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Archivo_hosts" target="_blank" rel="noopener"
>Archivo hosts&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Soporte para máquinas de afeitar</title><link>https://linuxmanr4.com/2014/11/20/soporte-para-maquinas-de-afeitar/</link><pubDate>Thu, 20 Nov 2014 14:00:23 +0000</pubDate><guid>https://linuxmanr4.com/2014/11/20/soporte-para-maquinas-de-afeitar/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/soporte-para-m%C3%A1quinas-de-afeitar-vista-frontal.jpg" alt="Featured image of post Soporte para máquinas de afeitar" />&lt;p>Mi último experimento fue hacer un soporte para máquinas de afeitar, el diseño es sencillo, barato y relativamente muy fácil de hacer.&lt;/p>
&lt;p>Conseguir artículos para el afeitado clásico o tradicional en México es complicado, no hay tantas opciones como en Europa o en Estados Unidos y tengo que echar mano de cualquier recurso que tenga disponible.&lt;/p>
&lt;p>Actualmente tengo 3 máquinas de afeitar (mejor conocidos como rastrillos) , una de manufactura asiática (o sea súper Chinisima) que fue con la que empecé con esto del afeitado tradicional, una LORD que me ha salido muy buena y por último mi &lt;a class="link" href="https://linuxmanr4.com/2014/09/29/limpiar-y-restaurar-una-maquina-de-afeitar/" title="Limpiar y restaurar una máquina de afeitar"
>Gillette Super Ajustable&lt;/a>
que me encontró en en mercado de antigüedades.&lt;/p>
&lt;h2 id="el-diseño">El diseño.
&lt;/h2>&lt;p>Tenía una idea en mi cabeza y algunos trozos de madera en la casa. El diseño es muy muy simple, una H de madera, lo más complicado son los agujeros de la parte superior en los que tuve que utilizar un taladro y una broca plana para madera.&lt;/p>
&lt;p>Las medidas las fui tomando de mis máquinas de afeitar, la altura de los postes y la separación de los agujeros considerando el ancho de las cabezas de afeitar. Hice un pequeño prototipo en Inkscape del diseño para tomar nota de las posibles medidas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/Diagrama-del-soporte.png"
alt="Diagrama del soporte" width="697">&lt;figcaption>
&lt;p>Diagrama del soporte&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que el diseño lo pueden hacer tan largo y con el número de orificios que deseen dependiendo del número de máquinas que quieran colocar.&lt;/p>
&lt;h2 id="el-armado">El armado.
&lt;/h2>&lt;p>Después de cortar las piezas y lijarlas utilicé pijas para madera para unirlas. Les recomiendo que primero hagan los agujeros guía con un taladro y broca fina antes de atornillar las piezas porque es muy fácil agrietar la madera. Si gustan pueden usar pegamento, pero no es mucho el peso que va a soportar la pieza, así que usando sólo las pijas es más que suficiente.&lt;/p>
&lt;h2 id="el-acabado">El acabado.
&lt;/h2>&lt;p>Le pedí a mi esposa que le hiciera un &lt;a class="link" href="http://es.wikipedia.org/wiki/Pirograbado" title="Pirograbado"
target="_blank" rel="noopener"
>pirograbado&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con la leyenda &lt;em>&amp;ldquo;Ritus Hominis&amp;rdquo;&lt;/em> (El ritual del hombre) que le quedó fabuloso y para protegerlo de la humedad unas capas de barniz transparente. Tengan cuidado con el barniz, pregunten en la tienda sobre un buen barniz para madera, porque compré una laca transparente en Soriana que no sirve para nada, afortunadamente antes de aplicarlo en el soporte hice una prueba en otro pedazo de madera para revisar el acabado final.&lt;/p>
&lt;p>Después de coloqué en el lateral un gancho de los que se utilizan el los percheros, para ahí colocar la brocha.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/soporte-para-m%C3%A1quinas-de-afeitar-gancho-para-la-brocha.jpg"
alt="soporte para máquinas de afeitar - gancho para la brocha" width="1024">&lt;figcaption>
&lt;p>soporte para máquinas de afeitar - gancho para la brocha&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se pueden comprar muchas cosas, pero se tiene un sentido de logro mayor cuando las hace uno mismo.&lt;/p></description></item><item><title>Como configurar pacman para que utilice wget</title><link>https://linuxmanr4.com/2014/11/18/pacman-con-wget/</link><pubDate>Tue, 18 Nov 2014 16:43:08 +0000</pubDate><guid>https://linuxmanr4.com/2014/11/18/pacman-con-wget/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/pacman-con-wget.png" alt="Featured image of post Como configurar pacman para que utilice wget" />&lt;p>Estoy trabajando en mi computadora AO751h, ahora con Manjaro Openbox y esto requiere hacer varios ajustes. Pero tuve varios problemas al actualizar los paquetes.&lt;/p>
&lt;p>Sobre todo cuando quise instalar el &lt;a class="link" href="https://linuxmanr4.com/2013/11/29/instalar-el-kernel-linux-ck-en-manjaro/" title="kernel linux ck manjaro"
>Kernel CK&lt;/a>
. Por alguna razón se perdía la conexión y al no tener otro repositorio pacman terminaba programa sin terminar la instalación del paquete.&lt;/p>
&lt;p>Afortunadamente se puede cambiar el programa que se encarga de hacer las descargas de los paquetes que requiere &lt;strong>pacman con wget&lt;/strong>.&lt;/p>
&lt;p>Me gustó &lt;strong>wget&lt;/strong> porque se comporta muy bien al reiniciar descargas parciales además de que no hace cosas raras, lo que hace lo hace muy bien.&lt;/p>
&lt;h2 id="primero-instalar-wget">Primero instalar wget.
&lt;/h2>&lt;p>Claro que si no se tiene instalado &lt;strong>wget&lt;/strong> lo primero que hay que hacer es instalarlo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S wget
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Es un programa pequeño así que no es complicado de instalar.&lt;/p>
&lt;h2 id="pacman-ahora-con-wget">Pacman ahora con wget
&lt;/h2>&lt;p>Para indicarle a &lt;strong>pacman&lt;/strong> que use wget es necesario editar su archivo de configuración:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo geany /etc/pacman.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Openbox tiene instalado por default el editor &lt;a class="link" href="http://www.geany.org/" title="Editor de textos Geany"
target="_blank" rel="noopener"
>Geany&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero es obvio que pueden usar el que tengan instalado nano, vim, gedit, leafpad, etc.&lt;/p>
&lt;p>Descomentamos la línea que dice &lt;strong>XferCommand&lt;/strong> y tecleamos tal como sigue.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">XferCommand = /usr/bin/wget -c --passive-ftp -c %u
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>He visto que en versiones más recientes de Manjaro esta comentada una línea como esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>También es válida y funciona perfectamente, solo tienen que descomentar quitando el símbolo de &lt;strong>#&lt;/strong>.&lt;/p>
&lt;h2 id="resultados">Resultados
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/pacman-wget-conexion-cerrada.png"
alt="pacman wget - conexión cerrada">&lt;figcaption>
&lt;p>pacman wget - conexión cerrada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen el cambio funciona muy bien, en determinado momento apareció un mensaje con la leyenda &lt;strong>“Conexión cerrada en el byte xxxx”&lt;/strong> ese es el problema al que me refería.&lt;/p>
&lt;p>Ahora con wget reinicia la descarga justo en el byte en el que se quedó, no reinicia desde el principio y eso ayudó a completar la tarea.&lt;/p>
&lt;h2 id="limitando-la-velocidad-de-la-descarga">Limitando la velocidad de la descarga.
&lt;/h2>&lt;p>También se puede limitar la velocidad de la descarga de los paquetes con &lt;strong>wget&lt;/strong> agregando el parámetro &lt;strong>limit-rate&lt;/strong> y la línea de configuración quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">XferCommand = /usr/bin/wget --limit-rate=100k --passive-ftp -c -O %o %u
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En el ejemplo anterior se establece un tope de descarga a 100 kbps, esto es particularmente útil si se quiere reservar cierto ancho de banda para la actualización y no quedarse sin internet para otras aplicaciones.&lt;/p>
&lt;p>Si tienen una conexión inestable probablemente hacer el cambio a &lt;strong>wget&lt;/strong> les sea de mucha utilidad.&lt;/p></description></item><item><title>Ruby Ping un script para monitorear equipos de red</title><link>https://linuxmanr4.com/2014/11/04/ruby-ping/</link><pubDate>Tue, 04 Nov 2014 22:48:49 +0000</pubDate><guid>https://linuxmanr4.com/2014/11/04/ruby-ping/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/ruby-ping.png" alt="Featured image of post Ruby Ping un script para monitorear equipos de red" />&lt;p>&lt;strong>Ruby Ping&lt;/strong> es un programa que hace &lt;em>ping&lt;/em> a una lista de servidores de un archivo y si existe un error de conexión manda un correo electrónico al administrador.&lt;/p>
&lt;p>Anteriormente ya había desarrollado algo similar en &lt;em>bash&lt;/em>, pero ahora quise hacerlo en &lt;strong>Ruby&lt;/strong> y añadirle algunas mejoras.&lt;/p>
&lt;p>La primera es que este script toma los datos de un archivo en formato &lt;strong>CSV&lt;/strong>, es decir, separado por comas. Un archivo como este se puede generar muy fácilmente usando &lt;strong>LibreOffice&lt;/strong> o Excel.&lt;/p>
&lt;p>Primero el nombre del equipo y luego la dirección IP del mismo. Esto sirve para que sean más claros los mensajes que manda el script.&lt;/p>
&lt;p>En el caso de que &lt;strong>Ruby Ping&lt;/strong> llegara a encontrar algún error de conexión, manda un correo electrónico al administrador avisándole de la falla.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/mensaje-de-correo-rubyping.png"
alt="mensaje de correo rubyping">&lt;figcaption>
&lt;p>mensaje de correo rubyping&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="parámetros-del-script">Parámetros del script
&lt;/h2>&lt;p>Configurar el script es muy sencillo, solo tiene 4 parámetros:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>ARCHIVO&lt;/strong> Que es la ruta al archivo que contiene el listado de servidores en formato CSV.&lt;/li>
&lt;li>&lt;strong>CORREO_ORIGEN&lt;/strong> El correo de origen, lo puse como parámetro por si quieren aplicar alguna especie de filtro personalizado en su programa de correo electrónico.&lt;/li>
&lt;li>&lt;strong>CORREO_DESTINO&lt;/strong> El correo a donde quieren que lleguen las alertas.&lt;/li>
&lt;li>&lt;strong>SERVIDOR_SMTP&lt;/strong> Y por último el servidor SMTP que van a utilizar para mandar los correos.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># RubyPing&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># =======================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Hace ping a una lista de servidores de un archivo y si existe un error&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># manda un correo electrónico al administrador.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa es software libre. Puede redistribuirlo y/o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># modificarlo bajo los términos de la Licencia Pública General&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># de GNU según es publicada por la Free Software Foundation,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># bien de la versión 2 de dicha Licencia o bien (según su&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># PROPÓSITO PARTICULAR. Para más detalles, véase la Licencia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pública General de GNU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Autor: LinuxmanR4 inguanzo@gmail.com http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># =======================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;timeout&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;socket&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;csv&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">require&lt;/span> &lt;span class="s1">&amp;#39;net/smtp&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Reemplazar por los parámetros de su instalación&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="no">ARCHIVO&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;/home/usuario/directorio/servidores_csv.txt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="no">CORREO_ORIGEN&lt;/span> &lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;rubyping@dominio.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="no">CORREO_DESTINO&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;destino@dominio.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="no">SERVIDOR_SMTP&lt;/span> &lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;smtp.dominio.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">ping&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">host&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">begin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="no">Timeout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">timeout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">TCPSocket&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">host&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;echo&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">close&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kp">true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">rescue&lt;/span> &lt;span class="no">Errno&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">ECONNREFUSED&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kp">true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">rescue&lt;/span> &lt;span class="no">Timeout&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">Error&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">Errno&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">ENETUNREACH&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">Errno&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">EHOSTUNREACH&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kp">false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Recuperar la información contenida en el archivo y guardarla en una variable.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># La estructura del archivo debe de ser como sigue:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Servidor 1,IP Servidor 1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Servidor 2,IP Servidor 2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Servidor n,IP Servidor n&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">csv_text&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">File&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="no">ARCHIVO&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">csv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">CSV&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">csv_text&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="ss">:headers&lt;/span> &lt;span class="o">=&amp;gt;&lt;/span> &lt;span class="kp">false&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">datos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">Hash&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="c1"># indice inicial (los indices comienzan en cero)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">csv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">each&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">linea&lt;/span>&lt;span class="o">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:nombre&lt;/span>&lt;span class="o">]]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">linea&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:ip&lt;/span>&lt;span class="o">]]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">linea&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">indice&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">indice&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">ping&lt;/span> &lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:ip&lt;/span>&lt;span class="o">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">puts&lt;/span> &lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:nombre&lt;/span>&lt;span class="o">]]&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34; [OK]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">puts&lt;/span> &lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:nombre&lt;/span>&lt;span class="o">]]&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34; [Error]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mensaje_correo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;From: Ruby Ping&amp;lt;&lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="no">CORREO_ORIGEN&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">To: &lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="no">CORREO_DESTINO&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Subject: Error de conexión en &lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:nombre&lt;/span>&lt;span class="o">]]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Existe un problema de conexión en el equipo &lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:nombre&lt;/span>&lt;span class="o">]]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> con dirección IP &lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="n">datos&lt;/span>&lt;span class="o">[[&lt;/span>&lt;span class="n">indice&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="ss">:ip&lt;/span>&lt;span class="o">]]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Este es sólo un mensaje de aviso. No es necesario que conteste este mensaje.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Atentamente,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Ruby Ping :)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Código para enviar un correo usando un servidor smtp.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="no">Net&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">SMTP&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">start&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="no">SERVIDOR_SMTP&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">smtp&lt;/span>&lt;span class="o">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">send_message&lt;/span> &lt;span class="n">mensaje_correo&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">CORREO_ORIGEN&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">CORREO_DESTINO&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">smtp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">finish&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1">#net&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1">#if&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">indice&lt;/span> &lt;span class="o">+=&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span> &lt;span class="c1">#while&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El código lo pueden descargar, guardar en un archivo, darle permisos de ejecución y eso es todo. Y bueno, claro que deben de tener &lt;strong>Ruby&lt;/strong> instalado.&lt;/p>
&lt;p>Estoy considerando agregarlo en una tarea &lt;strong>cron&lt;/strong>, pero por el momento sólo lo ejecuto cuando tengo algunos problemas en mi red. Me es muy útil porque puedo localizar rápidamente donde se podrían localizar algunos problemas (tengo mis sospechosos comunes).&lt;/p>
&lt;p>El programa es software libre, así que lo pueden personalizar, copiar, modificar y hacer lo que quieran con él.&lt;/p>
&lt;p>Espero que les sea de utilidad.&lt;/p></description></item><item><title>Lotería Mexicana en Ruby</title><link>https://linuxmanr4.com/2014/10/23/loteria-mexicana-en-ruby/</link><pubDate>Thu, 23 Oct 2014 21:54:05 +0000</pubDate><guid>https://linuxmanr4.com/2014/10/23/loteria-mexicana-en-ruby/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/el-valiente.jpg" alt="Featured image of post Lotería Mexicana en Ruby" />&lt;p>Ayer se me ocurrió una idea que puede sonar muy simple, un &lt;em>script&lt;/em> desarrollado en &lt;a class="link" href="https://www.ruby-lang.org/es/" title="Lenguaje de programación Ruby"
target="_blank" rel="noopener"
>Ruby&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tome las figuras de la lotería mexicana, las reboruje y corra la baraja.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Lotería Mexicana&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># loteria_mexicana.rb es un sencillo programa escrito en Ruby que toma la baraja de&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># la tradicional lotería mexicana, la reboruja y la muestra haciendo una pequeña pausa&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># para hacer más interesante el juego. Espero que se diviertan :).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyright (C) 2014 Francisco Javier de la Torre Inguanzo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Francisco Javier de la Torre Inguanzo http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Puede cambiar la velocidad con la que se muestran las cartas, el valor esta en segundos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">velocidad&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cartas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;1 El Gallo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;2 El Diablito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;3 La Dama&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;4 El catrín&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;5 El paraguas&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;6 La sirena&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;7 La escalera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;8 La botella&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;9 El barril&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;10 El árbol&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;11 El melón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;12 El valiente&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;13 El gorrito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;14 La muerte&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;15 La pera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;16 La bandera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;17 El bandolón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;18 El violoncello&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;19 La garza&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;20 El pájaro&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;21 La mano&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;22 La bota&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;23 La luna&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;24 El cotorro&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;25 El borracho&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;26 El negrito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;27 El corazón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;28 La sandía&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;29 El tambor&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;30 El camarón&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;31 Las jaras&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;32 El músico&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;33 La araña&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;34 El soldado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;35 La estrella&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;36 El cazo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;37 El mundo&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;38 El apache&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;39 El nopal&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;40 El alacrán&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;41 La rosa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;42 La calavera&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;43 La campana&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;44 El cantarito&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;45 El venado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;46 El sol&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;47 La corona&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;48 La chalupa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;49 El pino&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;50 El pescado&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;51 La palma&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;52 La maceta&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;53 El arpa&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s2">&amp;#34;54 La rana&amp;#34;&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># A reborujar las cartas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">reborujado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">Array&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">reborujado&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">..&lt;/span>&lt;span class="mi">53&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">to_a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort&lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="nb">rand&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">..&lt;/span>&lt;span class="mi">53&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Correeeee correeee y se va.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;Correeeee correeee y se va !!!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">reborujado&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">each&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">correyseva&lt;/span>&lt;span class="o">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">sleep&lt;/span> &lt;span class="n">velocidad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">puts&lt;/span> &lt;span class="n">cartas&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">correyseva&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/loteria-mexicana-en-ruby.gif"
alt="loteria mexicana en ruby">&lt;figcaption>
&lt;p>loteria mexicana en ruby&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver no hay mucho que decir, el código es muuuuuy pero muy sencillo, le agregué una variable para ajustar la velocidad en la que se corre la lotería. Si tienen las tablas pero por alguna extraña razón, de esas que casi nunca ocurren se les perdió alguna baraja puedes usar este &lt;em>script&lt;/em> &lt;em>para jugar.&lt;/em>&lt;/p>
&lt;p>Para aquellos que todavía me leen desde el sistema operativo de las ventanas, no os preocupéis, hice un ejecutable del programa, pero en este caso no se le puede ajustar la velocidad. Lo único que tienen que hacer es descargar el archivo zip, descomprimirlo en donde gusten y darle doble clic.&lt;/p>
&lt;p>loteria_mexicana md5sum 75ee481965d71d0b643c42ab5da52323.&lt;/p>
&lt;p>Espero que se diviertan un buen rato con este juego ¡BUENAS CON LA ESTRELLA!&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://es.wikipedia.org/wiki/Juego_Tradicional_de_Loter%c3%ada_en_M%c3%a9xico" title="Juego Tradicional de Lotería en México"
target="_blank" rel="noopener"
>Juego Tradicional de Lotería en México&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Escuelas Linux en el estado de Zacatecas</title><link>https://linuxmanr4.com/2014/10/21/escuelas-linux-en-el-estado-de-zacatecas/</link><pubDate>Tue, 21 Oct 2014 17:10:53 +0000</pubDate><guid>https://linuxmanr4.com/2014/10/21/escuelas-linux-en-el-estado-de-zacatecas/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/Aplicaciones-de-matem%C3%A1ticas.png" alt="Featured image of post Escuelas Linux en el estado de Zacatecas" />&lt;p>El mes pasado recibí un correo electrónico avisándome de un proyecto muy interesante que se esta desarrollando en el Estado de Zacatecas con el nombre de &lt;strong>Escuelas Linux&lt;/strong>. Todo lo relacionado con Linux me interesa, sobre todo si tiene que ver con su aplicación en la educación o en el gobierno.&lt;/p>
&lt;p>Primero y antes que nada, es importante aclarar que este proyecto no tiene nada que ver con las &lt;strong>Computadoras MX&lt;/strong> del Gobierno Federal. En este caso se trata de una distribución que complementa la instalación de &lt;a class="link" href="http://www.bodhilinux.com/" target="_blank" rel="noopener"
>Bodhi Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(basada en Ubuntu) con una gran cantidad de programas educativos y que se puede instalar prácticamente en cualquier equipo.&lt;/p>
&lt;p>Les dejo a Alejandro Díaz Infante con la presentación del proyecto:&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/srF8til0Uhs"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="la-instalación">La instalación.
&lt;/h2>&lt;p>Claro que no pude resistir la tentación de instalar esta distribución y darle una revisada. Primero les voy a recomendar que descarguen el &lt;a class="link" href="http://sourceforge.net/projects/escuelaslinux/files/escuelasLinux3.0.19-2.pdf/download" target="_blank" rel="noopener"
>Manual de instalación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
porque su instalación no es tradicional.&lt;/p>
&lt;p>El archivo iso de descarga &lt;strong>NO ES EL DE INSTALACIÓN&lt;/strong>. Contiene el ISO de Bodhi para generar el el medio de instalación y luego usaremos el ISO de Escuelas Linux para ejecutar un script que se encargará de instalar todos los programas educativos que contiene. Se que suena un poco raro, pero funciona.&lt;/p>
&lt;p>El manual es bueno y contiene una buena documentación sobre todo cuando se instala junto con varias versiones de Windows.&lt;/p>
&lt;p>En mi caso usé virtualbox y descargué la versión de 32 bits. La instalación de Bodhi es impecable, siguiendo la tradición de una distribución basada en Ubuntu. Ejecutar el script de instalación de programas es el que dificulta un poco la tarea, pero siguiendo al pie de la letra el manual no debe de existir ningún problema.&lt;/p>
&lt;p>El desempeño es excelente, al elegir &lt;a class="link" href="https://www.enlightenment.org/" target="_blank" rel="noopener"
>Enlightenment&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
obtuvieron un bajísimo consumo de recursos, lo que posibilita su instalación en prácticamente cualquier equipo con requerimientos tan bajos como 256 MB en RAM. Además Enlightenment es visualmente muy atractivo, un poco cargado para mi gusto pero supongo que los niños lo encontrarán divertido.&lt;/p>
&lt;h2 id="el-software">El software.
&lt;/h2>&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2014/10/Tabla-periodica-de-los-elementos.png?ssl=1"
loading="lazy"
alt="Tabla periodica de los elementos"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2014/10/Contenido-del-DVD-de-Escuelas-Linux.png?ssl=1"
loading="lazy"
alt="Contenido del DVD de Escuelas Linux"
>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2014/10/Aplicaciones-de-matem%C3%A1ticas.png?ssl=1"
loading="lazy"
alt="Aplicaciones de matemáticas"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2014/10/Actualizaci%C3%B3n-del-sistema.png?ssl=1"
loading="lazy"
alt="Actualización del sistema"
>&lt;/p>
&lt;p>La selección de programas es muy completa, por ejemplo, incluye versiones de &lt;a class="link" href="https://linuxmanr4.com/tags/libreoffice/" >LibreOffice&lt;/a>
, OpenOffice y FreeOffice (que no conocía), todo lo necesario para poder trabajar, siempre con un bajo consumo de recursos.&lt;/p>
&lt;p>En la sección de navegadores incluye Chrome, Firefox, Opera y Midori lo que da un abanico muy amplio de posibilidades. Esta redundancia de programas que hacen más o menos las mismas funciones tiene el efecto de que ocupan una buena cantidad de espacio, aproximadamente unos 7.5 GB en total aunque, viendolo bien, para los estándares actuales no es mucho.&lt;/p>
&lt;p>En programas educativos veo algunos conocidos como GCompris, &lt;a class="link" href="https://linuxmanr4.com/2017/02/16/buscando-a-firulais-meme-matematico/" >Geogebra&lt;/a>
o KTurtle. Programas enfocados a las matemáticas, química, astronomía y otras ciencias. Aunque siento que hay un vació en el español, me hubiera gustado encontrar algún lector de libros electrónicos con alguna selección de libros a manera de biblioteca infantil.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>El proyecto es bueno, pero siento que le falta unificar las piezas sueltas, por ejemplo, una página central con su dominio propio que se encargara de presentar el proyecto, las ventajas de &lt;strong>Escuelas Linux&lt;/strong>, las opciones de descarga, quizás unos foros de soporte que actualmente no tiene o un wiki con la documentación que contiene el manual en formato &lt;em>&lt;a class="link" href="https://linuxmanr4.com/2012/06/11/convertir-todas-las-imagenes-de-un-directorio-a-pdf-en-linux/" >PDF&lt;/a>
&lt;/em>. Lo bueno es que hay mucho trabajo por hacer :).&lt;/p>
&lt;p>Me gustaría una versión versión live lista para trabajar, sería excelente, algo de llegar con tu memoria USB, arrancar, hacer lo que se tenga que hacer y fuga, se podría utilizar en muchos lados.&lt;/p>
&lt;p>Espero que los demás estados adopten este programa, fomentando el uso del software libre todos salimos ganando.&lt;/p>
&lt;h2 id="referencias">Referencias
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20160802230530/http://formacioncontinuazac.gob.mx:80/iec/programas/escuelas-linux" target="_blank" rel="noopener"
>Escuelas Linux - Instancia Estatal de Capacitación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.bodhilinux.com/" target="_blank" rel="noopener"
>Bodhi Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/escuelaslinux/files/escuelasLinux3.0.19-2.pdf/download" target="_blank" rel="noopener"
>Manual de instalación&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/escuelaslinux/" target="_blank" rel="noopener"
>Escuelas Linux en Sourceforge&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/p/escuelaslinux/blog/" target="_blank" rel="noopener"
>Escuelas Linux Blog&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Problemas con la tarjeta Nvidia al actualizar Manjaro</title><link>https://linuxmanr4.com/2014/10/14/problemas-con-la-tarjeta-nvidia-al-actualizar-manjaro/</link><pubDate>Tue, 14 Oct 2014 14:41:15 +0000</pubDate><guid>https://linuxmanr4.com/2014/10/14/problemas-con-la-tarjeta-nvidia-al-actualizar-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/problema-con-el-driver-de-la-tarjeta-nvidia-en-Manjaro.jpg" alt="Featured image of post Problemas con la tarjeta Nvidia al actualizar Manjaro" />&lt;p>Ayer después de actualizar Manjaro tuve un pequeño problema, después de actualizar ya no inicio en modo gráfico, al parecer había un problema con la configuración de video.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/problema-con-el-driver-de-la-tarjeta-nvidia-en-Manjaro.jpg"
alt="Problema con el driver de la tarjeta nvidia en Manjaro">&lt;figcaption>
&lt;p>Problema con el driver de la tarjeta nvidia en Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="nvidia-vs-nvidia">nvidia vs nvidia
&lt;/h2>&lt;p>Lo primero que hay que averiguar es cual es el origen del problema. Intenté con lo más básico que es reinstalar los drivers de video.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -a pci nonfree 0300
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero este comando me dio un error, intentaba instalar el driver &lt;strong>video-nvidia-340xx&lt;/strong> pero este a su vez entraba en conflicto con el que ya estaba instalado de nombre &lt;strong>video-nvidia&lt;/strong> así que no podía continuar con la instalación.&lt;/p>
&lt;h2 id="quitar-y-poner">Quitar y poner
&lt;/h2>&lt;p>Para solucionar este problema primero tenía que remover el driver &lt;strong>video-nvidia&lt;/strong> para luego instalar el nuevo driver.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -r pci video-nvidia
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y luego nuevamente&amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -a pci nonfree 0300
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/Instalando-el-nuevo-driver-para-tarjetas-nvidia.jpg"
alt="Instalando el nuevo driver para tarjetas nvidia">&lt;figcaption>
&lt;p>Instalando el nuevo driver para tarjetas nvidia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Que ahora funcionó sin problemas. Todo lo que hice al terminar de instalar el driver fue reiniciar la computadora y listo, como si nada hubiera pasado.&lt;/p>
&lt;p>Si quieren saber más sobre como Configurar tarjetas gráficas en Manjaro les recomiendo un vistazo a su wiki &lt;a class="link" href="https://wiki.manjaro.org/index.php/Configure_Graphics_Cards" title="Configure Graphics Cards"
target="_blank" rel="noopener"
>Configure Graphics Cards&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ahí encontrarán toda la información relacionada con este tema.&lt;/p>
&lt;p>¡Larga vida a Manjaro!&lt;/p></description></item><item><title>dnsmasq como servidor local de DNS</title><link>https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/</link><pubDate>Thu, 09 Oct 2014 21:55:05 +0000</pubDate><guid>https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/</guid><description>&lt;p>Ayer hice un pequeño experimento y ha funcionando bastante bien hasta el momento, configuré &lt;strong>dnsmasq&lt;/strong> como un pequeño servidor local de direcciones o &lt;strong>DNS&lt;/strong>.&lt;/p>
&lt;p>La mecánica es más o menos la siguiente. Si &lt;strong>dnsmasq&lt;/strong> no sabe la dirección IP de un servidor entonces se la pregunta a uno de los DNS de Google (8.8.8.8 o 8.8.4.4), pero si ya la conoce entonces la sirve directamente sin necesidad de ir a internet con un tiempo de respuesta inmediato y eso ayuda a mejorar el tiempo en el que se resuelven algunas consultas.&lt;/p>
&lt;p>Anteriormente había hecho algo similar con &lt;strong>pdnsd&lt;/strong> (véase &lt;a class="link" href="https://linuxmanr4.com/2010/11/21/cache-dns/" title="Caché DNS en Ubuntu"
>Cache DNS&lt;/a>
) pero era cuando usaba Ubuntu o sea que ya tiene rato de eso.&lt;/p>
&lt;p>&lt;a class="link" href="http://en.wikipedia.org/wiki/Dnsmasq" title="Wikipedia DnsMasq"
target="_blank" rel="noopener"
>Dnsmasq&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un servidor ligero que aparte de proporcionar el servicio de DNS, también sirve como un servidor DHCP y TFTP, pero estos dos últimos no los vamos a tocar en este artículo.&lt;/p>
&lt;h2 id="instalar-dnsmasq">Instalar dnsmasq
&lt;/h2>&lt;p>Primero lo primero, para instalar &lt;strong>dnsmasq&lt;/strong> en &lt;strong>Manjaro&lt;/strong> recurrimos a nuestro ya archifamoso y conocido manejador de paquetes &lt;strong>pacman&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S dnsmasq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="configurar-el-servicio">Configurar el servicio
&lt;/h2>&lt;p>Para configurar el servicio se tiene que editar el archivo &lt;strong>/etc/dnsmasq.conf&lt;/strong>. El archivo esta muy comentado así que me voy a centrar en lo más importante.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">listen-address=127.0.0.1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">resolv-file=/etc/resolv.dnsmasq.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cache-size=1000
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">no-poll
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;strong>listen-address&lt;/strong> se establece a 127.0.0.1 (o &lt;em>localhost&lt;/em>), es para que acepte peticiones de DNS de forma local.&lt;/li>
&lt;li>&lt;strong>resolv-file&lt;/strong> En este archivo voy a especificar los DNS externos, es decir, si la dirección no esta en el servidor local la buscará en los servidores que indique en este archivo.&lt;/li>
&lt;li>&lt;strong>cache-size&lt;/strong> Lo establecí en 1000 que es un valor algo conservador, pero si cree que es muy pequeño pueden ser 2000 o 3000 direcciones que almacenará de manera local.&lt;/li>
&lt;/ul>
&lt;p>Estos 3 valores son los más importantes. &lt;strong>no-poll&lt;/strong> evita que se este revisando continuamente posibles cambios en el archivo &lt;em>/etc/resolv.conf&lt;/em> o en el archivo &lt;em>/etc/resolv.dnsmasq.conf&lt;/em> que establecimos con el parámetro &lt;strong>resolv-file&lt;/strong>.&lt;/p>
&lt;h3 id="resolvdnsmasqconf">resolv.dnsmasq.conf
&lt;/h3>&lt;p>El contenido del archivo &lt;em>/etc/resolv.dnsmasq.conf&lt;/em> es muy simple:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Servidores DNS de Google
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">nameserver 8.8.8.8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">nameserver 8.8.4.4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En este caso puse los de &lt;strong>Google&lt;/strong>, pero pueden ser los de &lt;strong>OpenDNS&lt;/strong>, los de su proveedor de internet, los que usten elija.&lt;/p>
&lt;p>Para aplicar los cambios que hemos hecho es necesario reiniciar el servicio:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo systemctl restart dnsmasq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="configurar-el-equipo">Configurar el equipo
&lt;/h2>&lt;p>Ahora le tengo que decir a mi equipo que utilice mi servidor de DNS en lugar de los de mi proveedor de internet.&lt;/p>
&lt;p>Uso Cinnamon, muy conocido por los usuarios de &lt;strong>Linux Mint&lt;/strong>, en mi caso reviso las &lt;strong>Preferencias de red&lt;/strong> y abro la pestaña que dice &lt;strong>Ajustes de IPv4&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/Preferencias-de-la-red.png"
alt="Preferencias de red en Cinnamon">&lt;figcaption>
&lt;p>Preferencias de red en Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ol>
&lt;li>En donde dice &lt;strong>Método&lt;/strong> cambio a &lt;strong>Sólo direcciones automáticas&lt;/strong>.&lt;/li>
&lt;li>Cambio la opción que dice &lt;strong>Servidores DNS&lt;/strong> a &lt;strong>127.0.0.1&lt;/strong> o sea &lt;em>localhost&lt;/em> o sea mi propio equipo.&lt;/li>
&lt;/ol>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/10/Editar-las-preferencias-de-red.png"
alt="Editar las preferencias de red">&lt;figcaption>
&lt;p>Editar las preferencias de red&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="comprobar-si-funciona">Comprobar si funciona
&lt;/h2>&lt;p>Para saber si funciona vamos a usar el comando &lt;strong>dig&lt;/strong> y revisamos el tiempo de respuesta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dig google.com | grep &amp;#34;Query time&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">;; Query time: 71 msec
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La siguiente vez que lo ejecutemos&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dig google.com | grep &amp;#34;Query time&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">;; Query time: 0 msec
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El tiempo de respuesta es de 0 msec ¡Vientos huracanados!.&lt;/p>
&lt;p>Ahora revisen si pueden navegar por internet, lo más notorio, por ejemplo, es que Chrome muestra un circulito cuando carga una página, primero en sentido contrario a las manecillas del reloj (buscando la página) y luego en sentido de las manecillas del reloj (cargando la página), bueno el tiempo de búsqueda se reduce notablemente con este cambio. Tengan en cuenta que una página puede hacer consultas a muchos dominios mientras se carga.&lt;/p>
&lt;h2 id="activar-dnsmasq-desde-el-arranque">Activar dnsmasq desde el arranque
&lt;/h2>&lt;p>Si todo esta bien, llegó la hora de aplicar estos cambios desde el arranque del equipo. En &lt;strong>Manjaro&lt;/strong>/ &lt;strong>Arch&lt;/strong> es con el siguiente comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo systemctl enable dnsmasq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Quizas con estos cambios no gane mucho tiempo, pero las notificaciones de Google Plus aparecen mucho más rápido y ya saben lo que dicen “Ciclo ahorrado ciclo ganado”.&lt;/p>
&lt;h2 id="actualización-enero-2023">Actualización Enero 2023
&lt;/h2>&lt;p>Hace poco decidí hacer una nueva instalación de Manjaro en una nueva unidad y me di cuenta de que este tutorial ya no funciona igual.&lt;/p>
&lt;p>Al seguir las indicaciones me di cuenta de que hay un error al iniciar dnsmasq, me aparece que no puede leer el archivo que especifiqué como &lt;strong>resolv-file&lt;/strong> dice que tiene &lt;strong>permiso denegado&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">systemctl&lt;/span> &lt;span class="n">status&lt;/span> &lt;span class="n">dnsmasq&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">●&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">A&lt;/span> &lt;span class="n">lightweight&lt;/span> &lt;span class="n">DHCP&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">caching&lt;/span> &lt;span class="n">DNS&lt;/span> &lt;span class="n">server&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Loaded&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">loaded&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">systemd&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">enabled&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">preset&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">disabled&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Active&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">active&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">running&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">since&lt;/span> &lt;span class="n">Tue&lt;/span> &lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">CST&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="n">ago&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Docs&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">man&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Process&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">4199&lt;/span> &lt;span class="n">ExecStartPre&lt;/span>&lt;span class="o">=/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">test&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">code&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">exited&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">status&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">SUCCESS&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Main&lt;/span> &lt;span class="n">PID&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">4200&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Tasks&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">limit&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">9491&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Memory&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="n">M&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CPU&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">52&lt;/span>&lt;span class="n">ms&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CGroup&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">slice&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">└─&lt;/span>&lt;span class="mi">4200&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">enable&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dbus&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">user&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">pid&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">35&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Starting&lt;/span> &lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">A&lt;/span> &lt;span class="n">lightweight&lt;/span> &lt;span class="n">DHCP&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">caching&lt;/span> &lt;span class="n">DNS&lt;/span> &lt;span class="n">server&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4199&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">revisión&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sintaxis&lt;/span> &lt;span class="n">OK&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">systemd&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">Started&lt;/span> &lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">A&lt;/span> &lt;span class="n">lightweight&lt;/span> &lt;span class="n">DHCP&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">caching&lt;/span> &lt;span class="n">DNS&lt;/span> &lt;span class="n">server&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4200&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">iniciado&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">versión&lt;/span> &lt;span class="mf">2.88&lt;/span> &lt;span class="n">tamaño&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">caché&lt;/span> &lt;span class="mi">3000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4200&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">opciones&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">compilación&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">IPv6&lt;/span> &lt;span class="n">GNU&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">getopt&lt;/span> &lt;span class="n">DBus&lt;/span> &lt;span class="n">no&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">UBus&lt;/span> &lt;span class="n">i18n&lt;/span> &lt;span class="n">IDN2&lt;/span> &lt;span class="n">DHCP&lt;/span> &lt;span class="n">DHCPv6&lt;/span> &lt;span class="n">no&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">Lua&lt;/span> &lt;span class="n">TFTP&lt;/span> &lt;span class="n">conntrack&lt;/span> &lt;span class="n">ipset&lt;/span> &lt;span class="n">nftset&lt;/span> &lt;span class="n">auth&lt;/span> &lt;span class="n">cr&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4200&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">soporte&lt;/span> &lt;span class="n">DBus&lt;/span> &lt;span class="n">habilitado&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">conectado&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">bus&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistema&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4200&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">caché&lt;/span> &lt;span class="n">fue&lt;/span> &lt;span class="n">liberado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">54&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">36&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4200&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">read&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">resolv&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">conf&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Permiso&lt;/span> &lt;span class="n">denegado&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Así que lo que hice fue especificar los servidores dentro del mismo archivo &lt;strong>dnsmasq.conf&lt;/strong> agregando estas lineas al final del archivo. Recuerden que ustedes pueden especificar los servidores de su preferencia.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Quad9
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=9.9.9.9
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=149.112.112.112
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Cisco OpenDNS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=208.67.222.222
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=208.67.220.220
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Cloudflare
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=1.1.1.2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server=1.0.0.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de reiniciar el servicio ya no aparecieron problemas y funciona correctamente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">systemctl&lt;/span> &lt;span class="n">status&lt;/span> &lt;span class="n">dnsmasq&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">●&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">A&lt;/span> &lt;span class="n">lightweight&lt;/span> &lt;span class="n">DHCP&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">caching&lt;/span> &lt;span class="n">DNS&lt;/span> &lt;span class="n">server&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Loaded&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">loaded&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">systemd&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">enabled&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">preset&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">disabled&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Active&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">active&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">running&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">since&lt;/span> &lt;span class="n">Tue&lt;/span> &lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">CST&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="nb">min&lt;/span> &lt;span class="n">ago&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Docs&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">man&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Process&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">5543&lt;/span> &lt;span class="n">ExecStartPre&lt;/span>&lt;span class="o">=/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">test&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">code&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">exited&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">status&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">SUCCESS&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Main&lt;/span> &lt;span class="n">PID&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">5544&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Tasks&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">limit&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">9491&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Memory&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="n">M&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CPU&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">117&lt;/span>&lt;span class="n">ms&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CGroup&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">slice&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">service&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="err">└─&lt;/span>&lt;span class="mi">5544&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">enable&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">dbus&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">user&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">dnsmasq&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">pid&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">1.2&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.2&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">caché&lt;/span> &lt;span class="n">fue&lt;/span> &lt;span class="n">liberado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">9.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">9.9&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">149.112&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">112.112&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">208.67&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">222.222&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">208.67&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">220.220&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">1.2&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.2&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ene&lt;/span> &lt;span class="mi">24&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="n">plankton&lt;/span> &lt;span class="n">dnsmasq&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5544&lt;/span>&lt;span class="p">]:&lt;/span> &lt;span class="n">usando&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">servidor&lt;/span> &lt;span class="mf">192.168&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">10.1&lt;/span>&lt;span class="c1">#53&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.g-loaded.eu/2010/09/18/caching-nameserver-using-dnsmasq/" target="_blank" rel="noopener"
>G-Loaded Journal: Caching Nameserver using dnsmasq&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.guia-ubuntu.com/index.php/Dnsmasq,_servidor_DNS_y_DHCP" target="_blank" rel="noopener"
>Dnsmasq, servidor DNS y DHCP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 (Ubuntu).&lt;/li>
&lt;/ul></description></item><item><title>Problemas al actualizar Manjaro</title><link>https://linuxmanr4.com/2014/09/26/problemas-al-actualizar-manjaro/</link><pubDate>Fri, 26 Sep 2014 16:48:46 +0000</pubDate><guid>https://linuxmanr4.com/2014/09/26/problemas-al-actualizar-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/11/problemas-para-actualizar-manjaro.png" alt="Featured image of post Problemas al actualizar Manjaro" />&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/actualizando-manjaro.png"
alt="Problemas al actualizar Manjaro">&lt;figcaption>
&lt;p>Problemas al actualizar Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A veces se pueden llegar a presentar algunos problemas al actualizar Manjaro, sobre todo para los recién llegados de otras distribuciones como Ubuntu que utilizan el sistema APT y que no están familiarizados con &lt;strong>pacman&lt;/strong> y su forma de trabajo.&lt;/p>
&lt;p>Los problemas pueden ser por varios motivos, puede ser porque los &lt;em>mirrors&lt;/em> no están actualizados, las firmas tampoco lo están o simplemente porque ha pasado mucho tiempo desde que se realizó la última actualización. Como &lt;strong>Manjaro&lt;/strong> es una distribución &lt;em>rolling release&lt;/em> es importante actualizarla con regularidad.&lt;/p>
&lt;h2 id="la-recomendación">La recomendación
&lt;/h2>&lt;p>Si llegaran a tener algún problema al actualizar Manjaro les recomiendo que tecleen esto en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-mirrors -g &amp;amp;&amp;amp; sudo pacman -Syy &amp;amp;&amp;amp; sudo pacman -S manjaro-keyring &amp;amp;&amp;amp; sudo pacman -Syu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este comando se divide en 4 pasos.&lt;/p>
&lt;ul>
&lt;li>Actualiza los mirrors de Manjaro: sudo pacman-mirrors -g&lt;/li>
&lt;li>Actualiza los listados de paquetes: sudo pacman -Syy&lt;/li>
&lt;li>Actualiza las firmas de los proveedores: sudo pacman -S manjaro-keyring&lt;/li>
&lt;li>Y por último actualiza el sistema: sudo pacman -Syu&lt;/li>
&lt;/ul>
&lt;p>Claro que pueden teclear estos comandos de manera individual en ese orden y observar los resultados de cada uno.&lt;/p>
&lt;p>A veces no funciona correctamente si copian y pegan el texto en la terminal desde el navegador, por eso les dejo la instrucción en texto plano que pueden copiar para evitar eso.&lt;/p>
&lt;h2 id="un-paquete-dañado">Un paquete dañado.
&lt;/h2>&lt;p>Recientemente tuve un problema al actualizar manjaro, el paquete &lt;em>pacman-mirrors&lt;/em> se anunciaba como dañado y evitaba la actualización del sistema. Para evitar esto hay que actualizar las &lt;a class="link" href="https://linuxmanr4.com/2014/02/11/problemas-con-la-firma-de-los-paquetes-en-manjaro/" >firmas de los paquetes&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Sy archlinux-keyring manjaro-keyring
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman-key --populate archlinux manjaro
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman-key --refresh-keys
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de eso, la actualización se realiza con normalidad.&lt;/p>
&lt;p>Estas instrucciones no resuelven todos los problemas, pero si son un buen lugar para comenzar.&lt;/p>
&lt;p>¡Manjaro Rules! &lt;em>(todavía se usa rules&amp;hellip;¿cierto?).&lt;/em>&lt;/p>
&lt;h3 id="para-saber-más">Para saber más
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.manjaro.org/index.php?title=Pacman_Overview" title="Wiki Manjaro: Pacman Overview"
target="_blank" rel="noopener"
>Wiki Manjaro: Pacman Overview&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Control de tráfico en IPCop 2</title><link>https://linuxmanr4.com/2014/09/18/control-de-trafico-en-ipcop-2/</link><pubDate>Thu, 18 Sep 2014 18:11:03 +0000</pubDate><guid>https://linuxmanr4.com/2014/09/18/control-de-trafico-en-ipcop-2/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/sem%C3%A1foro-en-valencia.jpg" alt="Featured image of post Control de tráfico en IPCop 2" />&lt;p>Es común que nuestros usuarios con su infinita “habilidad” saturen el ancho de banda de nuestra instalación, a veces basta con la descarga de un archivo mediante bittorrent o un Ares mal configurado para dejar fuera de servicio al resto de los usuarios pero ya no más, no señor (o eso espero).&lt;/p>
&lt;p>He pasado una semana haciendo algunos experimentos con el script &lt;strong>rc.trafficlimit&lt;/strong> con buenos resultados.&lt;/p>
&lt;p>Es un script muy simple, solo hay que especificar algunos límites, la tarjeta de red en la que que va a aplicar las reglas, ejecutar el script y monitorear los resultados.&lt;/p>
&lt;p>Les advierto que les comparto mis mejores resultados, supongo que en sus propias instalaciones la configuración puede variar o se puede ajustar para lograr un rendimiento óptimo. Se aceptan sugerencias y comentarios para mejorarlos.&lt;/p>
&lt;h2 id="descargar-el-script">Descargar el script.
&lt;/h2>&lt;p>Lo primero es descargar el script, lo pueden hacer desde los foros de IPCop en esta dirección:&lt;/p>
&lt;p>&lt;strong>Descargar script&lt;/strong>&lt;/p>
&lt;p>&lt;a class="link" href="http://www.ban-solms.de/downloads/trafficlimit-ipcop-2.0.tar.gz" target="_blank" rel="noopener"
>http://www.ban-solms.de/downloads/trafficlimit-ipcop-2.0.tar.gz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>MD5SUM 719bbbc7a6cbda7349ecf86bcc8b36eb&lt;/p>
&lt;p>Este es mi archivo personalizado:&lt;/p>
&lt;h2 id="configurar-y-ejecutar-el-script">Configurar y ejecutar el script.
&lt;/h2>&lt;p>Antes de ejecutar el script primero hay que personalizarlo respondiendo 3 preguntas.&lt;/p>
&lt;h3 id="cual-zona-voy-a-controlar">¿Cual zona voy a controlar?
&lt;/h3>&lt;p>Los que manejamos IPCop sabemos que esta divido por zonas de colores, &lt;strong>RED&lt;/strong> para el tráfico externo, &lt;strong>GREEN&lt;/strong> para el tráfico interno, &lt;strong>BLUE&lt;/strong> para el inalámbrico y &lt;strong>ORANGE&lt;/strong> para la zona desmilitarizada.&lt;/p>
&lt;p>En mi caso aplique el script a la zona roja&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">#which device to shape
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DEV=$RED_1_DEV
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero si quieren controlar otras zonas solo tienen que cambiar el valor de DEV a:&lt;/p>
&lt;ul>
&lt;li>$GREEN_1_DEV&lt;/li>
&lt;li>$BLUE_1_DEV&lt;/li>
&lt;/ul>
&lt;h3 id="cuales-direcciones-ip-internas-voy-a-controlar">¿Cuales direcciones ip internas voy a controlar?
&lt;/h3>&lt;p>Esto se ajusta en las siguientes líneas:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># limit IP 192.168.1.2, IPrange 192.168.1.0/24 or complete device 0.0.0.0/0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">IP=192.168.0.0/24
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como ven, puede aplicar los límites a una sola tirección IP, a todo un rango de direcciones o a todo el dispostivo, en mi caso aplique el control a todas las direcciones internas de mi red.&lt;/p>
&lt;h3 id="establecer-los-limites">Establecer los limites
&lt;/h3>&lt;p>Esto es lo realmente interesante, establecer algunos límites:&lt;/p>
&lt;p>`# from IPCop to IP/network
DOWN_MAX=100mbit
DOWN_LIMIT=2mbit&lt;/p>
&lt;h1 id="from-ipnetwork-to-ipcop">from IP/network to IPCop
&lt;/h1>&lt;p>UP_MAX=100mbit
UP_LIMIT=2mbit
`&lt;/p>
&lt;p>Como pueden ver hay un máximo de subida y de bajada y también sus limites correspondientes.&lt;/p>
&lt;p>En este caso establecí como máximo el tope de transmisión de la tarjeta de red y un limite de 2mbit que es a fin de cuentas un valor cercano al final de mi ancho de banda de internet, digamos por ejemplo que tengo 3mbit, luego entonces tendré 1mbit extra libre para cualquier contingencia (o eso quiero pensar).&lt;/p>
&lt;p>Para ejecutar el script primero hay que darle los permisos necesarios con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chmod 755 /etc/rc.d/rc.trafficlimit
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y luego para ejecutarlo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/etc/rc.d/rc.trafficlimit restart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para monitorear el comportamiento de la red utilizo &lt;a class="link" href="http://www.cobin.de/binary.php" target="_blank" rel="noopener"
>nload&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que me permite revisar en tiempo real el comportamiento de las tarjetas de red de IPCop.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/nload.png"
alt="nload" width="712">&lt;figcaption>
&lt;p>nload&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ejecutar-el-script-desde-el-arranque">Ejecutar el script desde el arranque.
&lt;/h2>&lt;p>Si todo funciona bien y están contentos con los resultados pueden hacer que el script se ejecute durante el arranque, para eso necesitan agregar al archivo &lt;strong>/etc/rc.d/rc.event.local&lt;/strong> las siguientes líneas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">if [ ${1} == &amp;#34;network&amp;#34; -a ${2} == &amp;#34;up&amp;#34; ]; then
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> [ -e /etc/rc.d/rc.trafficlimit ] &amp;amp;&amp;amp; /etc/rc.d/rc.trafficlimit restart
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">fi
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Espero que este consejo les sirva, pero no esta demás orar poque Dios nos libre de los usuarios con iniciativa. :P&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.ipcop-forum.de/forum/viewtopic.php?f=22&amp;amp;t=27242" title="Simple Traffic Shaper para IPCop2"
target="_blank" rel="noopener"
>Simple Traffic Shaper IPCop2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Advanced_traffic_control" title="Wiki archlinux: Advanced Traffic Control"
target="_blank" rel="noopener"
>Wiki archlinux: Advanced Traffic Control&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.cobin.de/binary.php" title="Colección de archivos binarios para IPCop"
target="_blank" rel="noopener"
>IPCop addon binary collection&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Emergency Mode en los teléfonos LG</title><link>https://linuxmanr4.com/2014/09/15/emergency-mode-en-los-telefonos-lg/</link><pubDate>Mon, 15 Sep 2014 20:46:52 +0000</pubDate><guid>https://linuxmanr4.com/2014/09/15/emergency-mode-en-los-telefonos-lg/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/Emergency-Mode-LG-acercamiento-a-la-pantalla.jpg" alt="Featured image of post Emergency Mode en los teléfonos LG" />&lt;p>Hace poco me embarqué (con no muy buenos resultados) en la aventura de cambiar nuevamente el firmware a mi teléfono &lt;strong>LG P708G&lt;/strong>.&lt;/p>
&lt;p>Lamentablemente durante mi odisea, perdí varias veces mi teléfono, no lo niego, fueron momentos de desesperación en los que llegué a considerar incluso la compra de otro aparato.&lt;/p>
&lt;p>Hubo instantes en los que ni siquiera apareció el logo del &lt;strong>LG&lt;/strong> durante el intento de arranque, así que ya se imaginarán, era el escenario perfecto para una película de terror geek.&lt;/p>
&lt;p>Ahora que estoy más calmado y que recuperé el cabello que perdí (y mi teléfono) les puedo decir que en casos desesperados pueden intentar este consejo.&lt;/p>
&lt;h2 id="como-lograr-el-emergency-mode-en-un-teléfono-lg">Como lograr el Emergency mode en un teléfono LG.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/Emergency-Mode-LG.jpg"
alt="Emergency Mode LG">&lt;figcaption>
&lt;p>Emergency Mode LG&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ol>
&lt;li>Quitar la batería del teléfono.&lt;/li>
&lt;li>Conectar el cable USB a la computadora.&lt;/li>
&lt;li>Presionar el botón de &lt;strong>Bajar Volumen&lt;/strong>, si no funciona, intenten con el de &lt;strong>Subir Volumen&lt;/strong> y si tampoco lo hace ¡Presionen ambos!, pero solo una opción por intento.&lt;/li>
&lt;li>Conectar el cable USB al teléfono (sin la batería).&lt;/li>
&lt;li>Esperar a que aparezca el mensaje de &lt;strong>Emergency Mode&lt;/strong>&lt;/li>
&lt;li>Poner la batería en el teléfono.&lt;/li>
&lt;/ol>
&lt;p>No se porque las variantes con los botones de volumen, pero es cierto, hubo momentos que logré poner el teléfono en &lt;strong>Emergency Mode&lt;/strong> aunque no apareciera el mensaje en la pantalla presionando el botón de Bajar el volumen. Otras veces si me aparecía el letrero en en la pantalla, pero ahora con el botón de Subir Volumen, en fin, no esta de más que intenten las demás opciones si no funciona la primera.&lt;/p>
&lt;p>Una vez que esta el teléfono en &lt;strong>Emergency Mode&lt;/strong> pueden intentar recuperarlo con algún &lt;em>firmware&lt;/em> en formato &lt;strong>kdz&lt;/strong>.&lt;/p>
&lt;p>Espero que no tengan que usarlo nunca :)&lt;/p></description></item><item><title>Llamadas desde el número 6144069548</title><link>https://linuxmanr4.com/2014/09/04/llamadas-desde-el-numero-6144069548/</link><pubDate>Thu, 04 Sep 2014 14:23:14 +0000</pubDate><guid>https://linuxmanr4.com/2014/09/04/llamadas-desde-el-numero-6144069548/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/contactos-frecuentes.png" alt="Featured image of post Llamadas desde el número 6144069548" />&lt;p>Tengo varios días recibiendo llamadas de este número telefónico 6144069548 , la clave LADA me dice que es de algún lugar en el estado de Chihuahua.&lt;/p>
&lt;p>Como no conozco a nadie de ese lugar, no contesto, solamente lo hice una vez y nadie respondió del otro lado de la línea, no sé si se trata de una máquina, una persona o es alguna extorsión y para ser honesto tampoco me interesa mucho.&lt;/p>
&lt;p>Pero es muy molesto que se la pasen llamando a todas horas, llegué a recibir un par de llamadas al día, a veces muy temprano, otras por la tarde.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/contactos-frecuentes.png"
alt="contactos frecuentes 6144069548">&lt;figcaption>
&lt;p>contactos frecuentes 6144069548&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Tanta es su insistencia que incluso aparece en primer lugar de mis contactos frecuentes ¡Ni mi esposa me llama tanto!.&lt;/p>
&lt;h2 id="calls-blacklist-al-rescate">Calls Blacklist al rescate
&lt;/h2>&lt;p>Afortunadamente en estos días hay aplicaciones para todo, por eso instalé una aplicación que se encarga de manejar discretamente estos molestos números.&lt;/p>
&lt;p>Se trata de &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.vladlee.easyblacklist&amp;amp;hl=es_419" title="Calls Blacklist en Google Play"
target="_blank" rel="noopener"
>Calls Blacklist&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, todo lo que tuve que hacer es agregar este molesto número a mi lista negra y santo remedio.&lt;/p>
&lt;p>Todavía me llaman, pero el teléfono ya no suena cuando lo hacen, en lugar de eso me muestra una discreta notificación, todavía sé que me llaman de ese número, pero ya no me molesta que lo hagan.&lt;/p>
&lt;p>El programa no solo “captura” las llamadas, también los mensajes SMS, así que también es muy útil con todos esos mensajitos de publicidad que puedes ver en cualquier otro momento.&lt;/p>
&lt;p>También tiene una opción para bloquear los &lt;strong>números privados,&lt;/strong> esas llamadas misteriosas en las que no aparece el número de teléfono del que te están llamando.&lt;/p>
&lt;p>Supongo que hay más programas que hacen una tarea similar en Google Play, pero este es muy bueno haciendo su trabajo, tiene publicidad, pero es muy discreta.&lt;/p>
&lt;p>¿Ustedes también quieren agregar a alguien a su lista negra?&lt;/p>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Parece que se cansaron de marcarme y ahora lo hacen desde otro número (614) 427 0299 que también fue agregado a la lista.&lt;/p>
&lt;h2 id="policía-cibernética-de-durango-lo-confirma">Policía Cibernética de Durango lo confirma
&lt;/h2>&lt;p>La policía Cibernética del estado de Durango confirma que este número es utilizado para extorsiones, así que tenga mucho cuidado. Lo mejor es no responder números que no conoce.&lt;/p>
&lt;blockquote class="twitter-tweet">&lt;p lang="es" dir="ltr">📢&lt;a href="https://x.com/hashtag/Extorsi%C3%B3nTelef%C3%B3nica?src=hash&amp;amp;ref_src=twsrc%5Etfw">#ExtorsiónTelefónica&lt;/a>.&lt;br>&lt;br>😭El chillón.&lt;br>👮El comandante.&lt;br>😱Familiar en apuros.&lt;br>🔫Grupos delictivos.&lt;br>🎁Premios.&lt;br>💸Bancos.&lt;br>📱 Ejecutivo telefónico.&lt;br>&lt;br>Números reportados‼&lt;br>📱6647900068 📱6144069548&lt;br>📱5580898278 📱5588970079&lt;br>📱5633107847 📱4623686454&lt;br>📱5577119649 📱5593850076 &lt;a href="https://t.co/OUk4jgaE4y">pic.twitter.com/OUk4jgaE4y&lt;/a>&lt;/p>&amp;mdash; Policía Cibernética del Estado de Durango (@Cibernetica_Dgo) &lt;a href="https://x.com/Cibernetica_Dgo/status/1474156109351075840?ref_src=twsrc%5Etfw">December 23, 2021&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script></description></item><item><title>Expresiones regulares con Ruby</title><link>https://linuxmanr4.com/2014/08/19/expresiones-regulares-con-ruby/</link><pubDate>Tue, 19 Aug 2014 17:59:01 +0000</pubDate><guid>https://linuxmanr4.com/2014/08/19/expresiones-regulares-con-ruby/</guid><description>&lt;p>El otro día me pusieron un reto programático bastante interesante. Me dieron un archivo de texto del cual tenía que extraer ciertos datos y entregarlos en un archivo de Excel. ¡Interesante! ¿No creen?.&lt;/p>
&lt;p>Al principio intenté con un programa que fuera libre o gratuito, algún editor que buscara información de archivos de texto para luego entregarlos en otro diferente, pero no fue tan sencillo.&lt;/p>
&lt;p>El archivo de texto que me entregaron no tenía un formato más o menos constante e implicaba varios retos, lo siguiente que se me ocurrió fue hacer un &lt;em>script&lt;/em>.&lt;/p>
&lt;p>Un amigo me sugirió que usara Perl, pero para ser sincero no estoy familiarizado con este lenguaje así que sería un volver a empezar. Así que mi siguiente opción fue la de utilizar Ruby que es un lenguaje que me agrada y más o menos le entiendo.&lt;/p>
&lt;h2 id="ruby-al-rescate">Ruby al rescate
&lt;/h2>&lt;p>Para este problema decidí dividir las tareas principales, cargar el archivo de texto en un arreglo, mi idioma iniciar la búsqueda de la información, guardar esa información en otro arreglo &lt;em>(array) o&lt;/em> en un &lt;em>hash&lt;/em> para luego vaciarlo a un archivo de texto separado por &lt;em>pipes&lt;/em>( | ).&lt;/p>
&lt;p>Como es mi primer contacto con Expresiones regulares necesité un poco de ayuda.&lt;/p>
&lt;p>El sitio txt2re ayuda a seleccionar ese patrón que quieres extraer y además te hace un ejemplo en varios lenguajes como Perl, PHP, Python, Java, C, C++ y claro Ruby. Este sitio fue un buen comienzo, sin embargo, con un poco de práctica pude simplificar mucho el script.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/08/txt2re-headache-relief-for-programmers-regular-expression-generator.png"
alt="txt2re">&lt;figcaption>
&lt;p>txt2re&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otro tutorial que me ayudó mucho fue &lt;a class="link" href="http://rubysur.org/aprende.a.programar/" target="_blank" rel="noopener"
>Aprende a Programar con Ruby&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Esta muy bien explicado, en español y repleto de ejemplos que explican claramente cada tema. Si están empezando a programar en &lt;strong>Ruby&lt;/strong> debes de tenerlo en cuenta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/08/Introduction-Aprende-a-Programar-con-Ruby.png"
alt="Aprende a Programar con Ruby">&lt;figcaption>
&lt;p>Aprende a Programar con Ruby&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y como &lt;em>tumbaburros&lt;/em> de la enorme cantidad de clases y métodos que tiene Ruby les recomiendo el sitio &lt;a class="link" href="http://devdocs.io/ruby/" target="_blank" rel="noopener"
>DevDocs Ruby.&lt;br>
&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/08/DevDocs-Ruby-MatchData.png"
alt="DevDocs Ruby">&lt;figcaption>
&lt;p>DevDocs Ruby&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora si, como dice &amp;ldquo;Jack el destripador&amp;rdquo; ¡Vámonos por partes!.&lt;/p>
&lt;h2 id="cargar-un-archivo-a-un-arreglo">Cargar un archivo a un arreglo.
&lt;/h2>&lt;p>Esto es importante, al momento de programar es mucho más sencillo manipular un arreglo que un archivo. Una de las razones por las que me gusta Ruby es que simplifica mucho las tareas, hacer esto es algo que toma solamente dos líneas:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">archivo = File.new(&amp;#34;archivo.txt&amp;#34;,&amp;#34;r&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">txt = archivo.readlines
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y todo el contenido del archivo se guarda en arreglo de nombre &lt;em>txt&lt;/em> línea por línea, por ejemplo, si quiero leer la primer línea del archivo hago referencia de esta forma &lt;em>txt\[0\]&lt;/em>(los índices de los arreglos comienzan en cero) y así hasta el final del archivo.&lt;/p>
&lt;h2 id="expresiones-regulares-en-ruby">Expresiones regulares en ruby.
&lt;/h2>&lt;p>Ahora viene lo realmente complicado, para aplicar una expresión regular voy a usar el método &lt;strong>match&lt;/strong>, por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">num = /\d{6}/.match(txt[0])
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La expresión regular&lt;br>
**&lt;br>
**
**/\d{6}/&lt;br>
**&lt;/p>
&lt;p>busca un patrón de 6 digitos seguidos y &lt;strong>num&lt;/strong> guarda un valor de cierto o falso, cierto si encuentra la expresión regular en el texto analizado y falso si no lo encuentra.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">num =/\d{6}/.match(&amp;#34;12345 Regresa False&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">num =/\d{6}/.match(&amp;#34;123456 Regresa True&amp;#34;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero eso solo nos dice si encontró o no la expresión regular, el valor de lo que encontró lo podemos revisar en el índice cero de la variable.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">puts num[0] #regresa 123456
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="búsquedas-indirectas">Búsquedas indirectas
&lt;/h3>&lt;p>Ahora viene algo interesante, a veces no me interesa tanto la expresión regular, si no lo que está a la derecha de ella. Por ejemplo la clásica combinación &lt;strong>clave&lt;/strong>- &lt;strong>descripción&lt;/strong>. Se que la descripción está a la derecha de la clave.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">texto = &amp;#34;000001 Manjaro Linux 0.9.9 xfce CD de Instalación&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">num = /\d{6}/.match(texto)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">if num #Revisa si encontró la expresión regular.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> descripcion = texto[8,42] #Si la encuentra regresa lo que esta a derecha del número.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> puts descripcion
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">end
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Extraer una parte de un texto en Ruby es sencillo, en donde dice &lt;strong>texto\[8,42\]&lt;/strong> quiere decir que a partir de la posición 8 toma los 42 caracteres de la derecha, por lo tanto el contenido de la variable &lt;strong>descripcion&lt;/strong> es:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;#34;Manjaro Linux 0.9.9 xfce CD de Instalación&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como ven esto apenas es un esbozo de todo lo que se puede realizar con expresiones regulares con Ruby, espero que les sea de utilidad.&lt;/p>
&lt;h4 id="enlaces-de-interés">Enlaces de interés.
&lt;/h4>&lt;ul>
&lt;li>txt2re: regular expression generator&lt;/li>
&lt;li>&lt;a class="link" href="http://rubysur.org/aprende.a.programar/" target="_blank" rel="noopener"
>Aprende a Programar con Ruby&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://devdocs.io/ruby/" target="_blank" rel="noopener"
>DevDocs Ruby&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.regexr.com/" target="_blank" rel="noopener"
>RegExr Un excelente laboratorio de expresiones regulares.&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://regex101.com/" target="_blank" rel="noopener"
>Regex101.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Aprendiendo con los tutoriales de Inkscape de Art Tuts</title><link>https://linuxmanr4.com/2014/07/25/aprendiendo-inkscape-con-los-tutoriales-de-art-tuts/</link><pubDate>Fri, 25 Jul 2014 18:05:09 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/25/aprendiendo-inkscape-con-los-tutoriales-de-art-tuts/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/ojito-tapatio.png" alt="Featured image of post Aprendiendo con los tutoriales de Inkscape de Art Tuts" />&lt;p>Los tutoriales que publica Olga Bikmullina en su sitio son simplemente geniales.&lt;/p>
&lt;p>Tengo tiempo usando herramientas como &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/tags/gimp/" >Gimp&lt;/a>
&lt;/strong> o &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/tags/inkscape/" >Inkscape&lt;/a>
&lt;/strong>, pero pasa algo curioso, siempre le aprendes cosas nuevas, como son programas que tienen una miríada de opciones y herramientas siempre encuentras la forma de hacer algo nuevo o hacerlo mejor.&lt;/p>
&lt;p>Olga utiliza Inkscape con una habilidad envidiable, tal y como se puede ver en sus videos,muchas veces he tenido que &amp;ldquo;regresar la cinta&amp;rdquo; para poder observar con mayor detenimiento como hizo tal o cual cosa, pero eso si, siempre termino aprendiendo algo nuevo.&lt;/p>
&lt;h2 id="la-poción">La poción
&lt;/h2>&lt;p>Por ejemplo, en este ejercicio aprendí algunas técnicas de &lt;a class="link" href="https://es.wikipedia.org/wiki/Curva_de_B%C3%A9zier" title="Wikipedia: Curva de Bézier"
target="_blank" rel="noopener"
>líneas de Bézier&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero sobre todo el uso de capas, duplicación de objetos y operaciones con los trazos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/botella.png"
alt="La poción mágica - Tutoriales de Inkscape">&lt;figcaption>
&lt;p>La poción mágica - Tutoriales de Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-ojito-tapatío">El ojito tapatío
&lt;/h2>&lt;p>Con el ojo aprendí como dibujar figuras concéntricas y gradientes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/ojito-tapatio.png"
alt="ojito tapatio - tutoriales de Inkscape">&lt;figcaption>
&lt;p>ojito tapatio - tutoriales de Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="la-lámpara">La lámpara
&lt;/h2>&lt;p>Uno de los ejercicios más interesantes, porque ayuda a darle perspectiva y volumen a los objetos al recibir una fuente de luz.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/luz-y-sombras.png"
alt="Luz y sombras - Tutoriales de Inkscape">&lt;figcaption>
&lt;p>Luz y sombras - Tutoriales de Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Olga explica el proceso, proporciona un ejemplo descargable y acompaña los tutoriales con un video ¡No se puede pedir más!. También trata algunos sobre temas de animación.&lt;/p>
&lt;p>Si están interesados en &lt;strong>Inkscape&lt;/strong> tienen que darle una revisada a estos tutoriales.&lt;/p>
&lt;h3 id="referencias">Referencias.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://ahninniah.graphics/blog/" target="_blank" rel="noopener"
>Blog de Olga Bikmullina&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como descargar el firmware de Apple con Aria2</title><link>https://linuxmanr4.com/2014/07/23/como-descargar-el-firmware-de-apple-con-aria2/</link><pubDate>Wed, 23 Jul 2014 15:36:22 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/23/como-descargar-el-firmware-de-apple-con-aria2/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/Mensaje-de-iTunes-Descargando-el-software-de-actualizaci%C3%B3n.png" alt="Featured image of post Como descargar el firmware de Apple con Aria2" />&lt;p>Siempre que me traen un producto de &lt;strong>Apple&lt;/strong> se que va a ser un dolor de cabeza. Para empezar tengo que iniciar en Windows, lidiar con el iTunes y para colmo la solución al problema es actualizar el firmware del dispositivo.&lt;/p>
&lt;h2 id="empieza-el-viacrusis">Empieza el viacrusis
&lt;/h2>&lt;p>En esta ocasión se trata de un dispositivo Apple TV que al encenderlo muestra un claro mensaje, notén que ni siquiera se molestaron en poner un texto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/Conectar-el-Apple-TV-al-iTunes.jpg"
alt="Conectar el Apple TV al iTunes">&lt;figcaption>
&lt;p>Conectar el Apple TV al iTunes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pues sí, es necesario conectar el dispositivo al &lt;strong>iTunes&lt;/strong>, para eso tengo que iniciar en Windows (así lo prefiero) e inmediatamente al iniciar me dice que tengo que descargar una actualización a una nueva versión del &lt;strong>iTunes&lt;/strong>, tarea que dejé para más tarde.&lt;/p>
&lt;p>Luego me dice que el tengo que &lt;strong>Restaurar y actualizar&lt;/strong> el dispositivo (no me sorprende). El problema de esto es que casi siempre tengo problemas con la descarga, por algún motivo se interrumpe y Ohhhh si, Dios bendiga a los cerebros de Cupertino, el archivo se vuelve a descargar ¡DESDE EL PRINCIPIO!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/Mensaje-de-iTunes-Descargando-el-software-de-actualizaci%C3%B3n.png"
alt="Mensaje de iTunes Descargando el software de actualización">&lt;figcaption>
&lt;p>Mensaje de iTunes Descargando el software de actualización&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de reiniciar dos veces la descarga (en una de ellas iba a más de la mitad) le puse fin a esta tortuosa actualización, ¡Tiene que haber una forma mejor de hacerlo!&lt;/p>
&lt;h2 id="dándole-la-vuelta-al-itunes">Dándole la vuelta al iTunes
&lt;/h2>&lt;p>Se que hay una forma de actualizar los dispositivos de Apple si tienes el archivo con el &lt;em>firmware&lt;/em> en tu computadora, pero ¿Cual archivo descargar?.&lt;/p>
&lt;h3 id="cuál-archivo-descargar">¿Cuál archivo descargar?
&lt;/h3>&lt;p>Para eso le pedí ayuda al programa &lt;a class="link" href="http://www.nirsoft.net/utils/http_network_sniffer.html" title="HTTPNetworkSniffer de NirSoft"
target="_blank" rel="noopener"
>HTTP Network Sniffer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Este pequeñin “olfatea” todas las peticiones HTTP y en la pantalla me muestra un pequeño reporte.&lt;/p>
&lt;p>Abrí el &lt;em>sniffer&lt;/em> y también el iTunes, inicie la descarga y esperé a que apareciera en la pantalla la petición a algún servidor de Apple, así fue muy sencillo obtener la siguiente dirección:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">http://appldnld.apple.com/iOS7.1/031-04308.20140630.epLLm/AppleTV3,2_6.2_11D257c_Restore.ipsw
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si pongo esta dirección en el navegador iniciará la descarga del archivo, pero pasaría más o menos lo mismo que ocurre con el iTunes, necesitaba un programa que negociara correctamente la descarga y que pudiera reiniciarla en caso de alguna interrupción.&lt;/p>
&lt;h3 id="aria-como-manejador-de-descargas">Aria como manejador de descargas.
&lt;/h3>&lt;p>Para eso utilicé &lt;a class="link" href="http://aria2.sourceforge.net/manual/en/html/README.html" title="Página del proyecto Aria2"
target="_blank" rel="noopener"
>Aria2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es un programa pequeñito que hace muy bien su trabajo, soporta descargas desde los protocolos HTTP(S), FTP, BitTorrent y &lt;a class="link" href="http://es.wikipedia.org/wiki/Metalink" title="Wikipedia: Metalink"
target="_blank" rel="noopener"
>Metalink&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Para descargar use la siguiente instrucción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">aria2c&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">x3&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">k1M&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="nb">max&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">overall&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">download&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">limit&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="n">K&lt;/span> &lt;span class="s2">&amp;#34;http://appldnld.apple.com/iOS7.1/031-04308.20140630.epLLm/AppleTV3,2_6.2_11D257c_Restore.ipsw&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;strong>-x3&lt;/strong> le dice que use 3 conexiones múltiples.&lt;/li>
&lt;li>&lt;strong>-k1M&lt;/strong> le indica lo haga en trozos de 1MB.&lt;/li>
&lt;li>&lt;strong>&amp;ndash;max-overall-download-limit=100K&lt;/strong> Este parámetro es opcional y su función es la de limitar la velocidad de la descarga, en este caso a 100 Kbps-&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/aria2-descargando-el-archivo-de-Apple.png"
alt="aria2 descargando el archivo de Apple">&lt;figcaption>
&lt;p>aria2 descargando el archivo de Apple&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que hubo problemas con la descarga, no se si es problema de mi conexión a internet o saturación de los servidores de Apple, pero ahora en lugar de descargar todo el archivo desde el principio, lo único que tuve que hacer es ejecutar nuevamente la instrucción para que continuara desde donde se quedó.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>&lt;strong>Aria2&lt;/strong> esta disponible en Manjaro (y supongo que en muchos otros sabores de linux). Se puede utilizar para descargar prácticamente cualquier cosa, anteriormente usaba &lt;strong>wget&lt;/strong> pero creo que &lt;strong>aria2&lt;/strong> será mi programa favorito de ahora en adelante.&lt;/p></description></item><item><title>HSBC y su correo de notificación de transferencia de fondos a su favor</title><link>https://linuxmanr4.com/2014/07/18/hsbc-y-su-correo-de-notificacion-de-transferencia-de-fondos-su-favor/</link><pubDate>Fri, 18 Jul 2014 19:35:38 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/18/hsbc-y-su-correo-de-notificacion-de-transferencia-de-fondos-su-favor/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/instrucciones-para-activar-las-macros.png" alt="Featured image of post HSBC y su correo de notificación de transferencia de fondos a su favor" />&lt;p>Este es uno de los &lt;a class="link" href="https://es.wikipedia.org/wiki/Phishing" title="Wikipedia: Phishing"
target="_blank" rel="noopener"
>phishing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
más elaborados que he visto, verán, la historia comienza más o menos así.&lt;/p>
&lt;h2 id="el-correo">El correo
&lt;/h2>&lt;p>Ayer recibí un correo de &lt;strong>HSBC&lt;/strong> (también existe uno muy similar de &lt;strong>BBVA&lt;/strong>) en el que me avisan de un depósito a mi favor, cosa rara porque ni cuenta en HSBC tengo así que era más que obvio que el correo no era legítimo.&lt;/p>
&lt;p>El texto del mensaje dice más o menos así:&lt;/p>
&lt;blockquote>
&lt;p>El motivo de este correo es informarle que el día de hoy recibió una transferencia SPEI la cual se encuentra retenida debido a anomalías en su cuenta. Para mas detalles sobre esta situación le adjuntamos un documento en formato Microsoft Word donde explicamos el motivo de la retención y los pasos a seguir.&lt;/p>&lt;/blockquote>
&lt;h2 id="la-trampa">La trampa
&lt;/h2>&lt;p>Descargué el archivo y por precaución le dí una buena escaneada contra virus pero salió limpio. Al abrir el documento con &lt;a class="link" href="https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/" >LibreOffice&lt;/a>
claro que me apareció una advertencia de que el archivo contenía macros, cosa que no me sorprende y que por obvias razones no le di permiso de ejecutarlos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/instrucciones-para-activar-las-macros.png"
alt="instrucciones para activar las macros">&lt;figcaption>
&lt;p>instrucciones para activar las macros&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El contenido del documento muestra un supuesto mensaje de error que dice que el mensaje no puede ser mostrado hasta que se habiliten las macros y el resto son básicamente instrucciones para habilitarlas en varias versiones de Word y ¿Excel?.&lt;/p>
&lt;p>Para mi mala fortuna soy muy curioso, así que le dí un vistazo al contenido de las macros.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/descargar-archivos-sospechosos.png"
alt="descargar archivos sospechosos">&lt;figcaption>
&lt;p>descargar archivos sospechosos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¡Claaaaro!, lo que hace el código es descargar varios archivos ejecutables por demás sospechosos de Internet. Como precaución decidí bloquear el dominio para evitar que por error alguien descargue esos archivos.&lt;/p>
&lt;p>El monto de la transferencia retenida es bastante jugoso, así que no duden que algún curioso avaricioso (mala combinación) caiga en la trampa.&lt;/p>
&lt;p>Tengan cuidado con su correo y recuerden, si su instinto les dice que es una trampa, muy probablemente lo es.&lt;/p>
&lt;h2 id="la-variante-del-sat">La variante del SAT
&lt;/h2>&lt;p>Tengan cuidado porque también esta circulando una variante de este mismo correo con una advertencia del Servicio de Administración Tributaria (SAT).&lt;/p>
&lt;p>El mensaje es el siguiente:&lt;/p>
&lt;blockquote>
&lt;p>Tercer Aviso:&lt;/p>
&lt;p>Estimado Contribuyente:&lt;/p>
&lt;p>El Servicio de Administración Tributaria se ha percatado que en diversos despachos alrededor del País, Usted ha propuesto esquemas para evadir el pago de impuestos y hemos detectado anomalías en su situación fiscal. Para evitar una sanción en su contra, Le recomendamos regularizar esta situación de inmediato. En este correo le adjuntamos un documento detallado de su situacion fiscal actual.&lt;/p>&lt;/blockquote>
&lt;p>Como pueden ver, el documento es prácticamente el mismo que el utilizado en &lt;strong>HSBC&lt;/strong> o &lt;strong>Bancomer&lt;/strong>, únicamente cambiaron unos textos y los logos para hacerlo creíble.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/phishing-usando-un-aviso-del-SAT.png"
alt="Phishing usando un aviso del SAT">&lt;figcaption>
&lt;p>Phishing usando un aviso del SAT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nuevamente tiene un archivo adjunto que al abrirlo lo primero que pide es &lt;strong>Activar las macros&lt;/strong> algo que, repito , &lt;strong>NO DEBEN DE HACER&lt;/strong>. Lo mejor es no abrir el adjunto y borrar el correo.&lt;/p></description></item><item><title>Haciendo pruebas con un cable de red redundante</title><link>https://linuxmanr4.com/2014/07/14/cable-de-red-redundante/</link><pubDate>Mon, 14 Jul 2014 20:25:44 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/14/cable-de-red-redundante/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/cable-de-red-redundante.jpg" alt="Featured image of post Haciendo pruebas con un cable de red redundante" />&lt;p>Ahora les mostraré como hacer un cable de red redundante. Este es un experimento que hice para resolver algunos problemas que tuve en mi instalación de red. Verán, tengo un tramo de la red de unos 100 metros que conecta dos edificios, a últimas fechas este cable estaba presentando problemas, los tiempos de espera agotados eran frecuentes y algunos programas empezaban a marcar errores de manera aleatoria.&lt;/p>
&lt;p>Pude haber hecho un puente de red inalámbrico pero de momento no tengo un par de estos aparatos a la mano, por eso decidí hacer un cable de red redundante usando el mismo cable que ya tenía instalado.&lt;/p>
&lt;h2 id="la-teoría">La teoría
&lt;/h2>&lt;p>La teoría nos dice que de los ocho hilos que forman un cable de red &lt;em>ethernet&lt;/em> sólo 4 sirven para establecer la comunicación. Estos serían los cables 1,2,3 y 6 o en colores serían el &lt;strong>Blanco naranja&lt;/strong>, &lt;strong>Naranja&lt;/strong>, &lt;strong>Blanco verde&lt;/strong> y el &lt;strong>Verde&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/RJ-45%5FTIA-568B%5FLeft.png"
alt="RJ-45 568B">&lt;figcaption>
&lt;p>RJ-45 568B&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Un cable de red redundante empalma los hilos restantes en los que se están utilizando para que en caso de que llegara a ocurrir una ruptura de alguno de los hilos el otro haga que siga funcionando.&lt;/p>
&lt;p>Busque un rato en internet sobre como hacer un cable de este tipo, pero no encontré nada sobre el tema, así que no se si existe una forma más “correcta” o si esta mal hacer algo como esto, lo que si les puedo decir es que a mi me funcionó y puede ser una solución temporal mientras se encuentra una solución más elegante.&lt;/p>
&lt;h2 id="configuración-del-cable">Configuración del cable.
&lt;/h2>&lt;p>Como dije anteriormente, sólo vamos a usar 4 hilos en el cable, para hacerlo soldé un par de hilos en las posiciones 1,2,3 y 6 del cable quedando más o menos así:&lt;/p>
&lt;ol>
&lt;li>Blanco Naranja + Blanco Azul&lt;/li>
&lt;li>Naranja + Azul&lt;/li>
&lt;li>Blanco verde + Blanco café&lt;/li>
&lt;li>vacío&lt;/li>
&lt;li>vacio&lt;/li>
&lt;li>Verde + Café&lt;/li>
&lt;li>vacio&lt;/li>
&lt;/ol>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/cable-de-red-redundante.jpg"
alt="cable de red redundante">&lt;figcaption>
&lt;p>cable de red redundante&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Usé soldadura en lugar de un burdo amarre para asegurar una buena conexión. Tuve mejores resultados haciendo el conector RJ45 primero, cortando el cable de red un poco alejado del conector para no acercar demasiado el cautín a este último. Después pelé cada extremo usando un exacto, estañé cada una de las puntas y al final apliqué la soldadura final uniendo los hilos correspondientes. Se que es muy laborioso, pero al no tener más opciones todo este trabajo me llevó poco menos de una hora.&lt;/p>
&lt;h2 id="velocidad-vs-confiabilidad">Velocidad vs Confiabilidad
&lt;/h2>&lt;p>Primero hice un cable de prueba de 1 metro para probar si el concepto era viable y funcionó bastante bien, pero al probar en el tramo largo simplemente no funcionó. Hice una prueba con el probador de cable y me decía que estaban correctos los pares pero no transmitía ninguna información.&lt;/p>
&lt;p>Me llegó una epifanía, bajé la velocidad conexión del puerto del switch que originalmente tenía &lt;strong>Auto&lt;/strong> (autonegociación) a 10M y empezó a hacer ping correctamente, al grado de ya no tener tiempos de espera agotados. Poco a poco los aparatos que tengo conectados en aquella sección de la red empezaron a comunicarse y todo volvío a la normalidad.&lt;/p>
&lt;p>Como ven, tuve que sacrificar la velocidad del enlace en aras de que siguiera funcionando, probablemente era más sencillo cambiar el cable, pero como ahora funciona me tomaré un tiempo revisando cual es la mejor opción, al menos ya no tengo la presión de un enlace caido.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>Hay algunos problemas con esta solución, por ejemplo, para que funcione debo de tener un switch de red administrable que afortunadamente tengo, pero no son la norma, los equipos más baratos establecen la velocidad de la conexión de manera automática y no hay forma de cambiar esto. El otro inconveniente es que en algunas ocasiones, este tipo de soluciones temporales se convierten en permanentes, lo que importa es que el negocio sigue y no se detiene.&lt;/p>
&lt;h3 id="para-saber-más">Para saber más:
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/RJ-45" title="Wikipedia: RJ-45"
target="_blank" rel="noopener"
>Wikipedia: RJ-45&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Probar una Fuente de Poder: Consejos y Trucos para un Diagnóstico Rápido</title><link>https://linuxmanr4.com/2014/07/11/probar-una-fuente-de-poder/</link><pubDate>Fri, 11 Jul 2014 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/11/probar-una-fuente-de-poder/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/fuente-de-poder-da%C3%B1ada.jpg" alt="Featured image of post Probar una Fuente de Poder: Consejos y Trucos para un Diagnóstico Rápido" />&lt;p>No voy a entrar en detalles muy técnicos ni de electrónica, aquí voy a tratar de explicar consejos para probar una fuente de poder de forma sencilla y práctica.&lt;/p>
&lt;p>Cuando un equipo no quiere encender o se apaga de manera espontánea (así nomás porque se le dio la gana) una de las primeras cosas que se debe de hacer es probar la &lt;strong>fuente de poder&lt;/strong>.&lt;/p>
&lt;p>La fuente de poder es casi sin dudarlo la parte de una computadora que tiene más averías. Por eso siempre procuro tener una fuente de poder de repuesto a la mano.&lt;/p>
&lt;p>Las fallas se pueden deber a muchas causas, la calidad de los componentes (gracias China), sobrecalentamiento cuando deja de funcionar el ventilador, o la más común, variaciones en la energía eléctrica.&lt;/p>
&lt;p>Probar una fuente de poder no es complicado, si se tienen dudas sobre el funcionamiento de una fuente de poder puede hacer lo siguiente, pero primero&amp;hellip;&lt;/p>
&lt;blockquote>
&lt;p>⚠️ &lt;strong>ADVERTENCIA&lt;/strong>
Trabajar con energía eléctrica es algo serio, siempre existe el riesgo de recibir una descarga, si no sabe lo que hace o le da cus cus por favor no lo intente y deje la tarea a un profesional. Tampoco me hago responsable por cualquier daño ocasionado al seguir este consejo.&lt;/p>&lt;/blockquote>
&lt;p>Una vez hechas las advertencias correspondientes, manos a la obra…&lt;/p>
&lt;h2 id="desconectar-todo">Desconectar todo
&lt;/h2>&lt;p>Es importante desconectar todo lo que alimenta la fuente de poder, discos duros, la placa principal, unidades de disquete (si es que todavía la tiene), la alimentación del CPU ¡TODO! Si hay algún problema con la fuente, no querrá que este se propague a cualquier otro dispositivo de la computadora.&lt;/p>
&lt;h2 id="cable-verde-cable-negro">Cable verde, cable negro
&lt;/h2>&lt;p>Ahora vamos a arrancar la fuente de poder, para esto se va a colocar un puente en el conector de la placa principal (motherboard).&lt;/p>
&lt;p>Busque el cable de color &lt;strong>verde&lt;/strong> en el conector y con un alambre de cobre &lt;strong>debidamente aislado,&lt;/strong> haga un puente con cualquiera de los cables &lt;strong>negros&lt;/strong> que están a su lado. Por favor, no sea creativo, no use un clip.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/cable-verde-cable-rojo.jpg"
alt="cable verde - cable rojo">&lt;figcaption>
&lt;p>cable verde - cable rojo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si la fuente de poder está bien, verán que prende el ventilador, déjelo así por unos minutos.&lt;/p>
&lt;p>Ahora hay que observar como se comporta la fuente de poder. Si emite un olor raro como a plancha caliente (ya no digamos humo), no es necesario que haga nada, no es una fuente de poder confiable y la puede llevar a su centro de reciclaje de preferencia.&lt;/p>
&lt;p>Revise que el ventilador gire y si lo hace que exista un buen flujo de aire, coloque la mano en la salida y deberá sentir como sale en buena cantidad, si tiene dudas es que no está girando a la velocidad adecuada.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/irpwHNjnvbU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Los más avanzados podrán revisar los voltajes que entrega la fuente de poder con la ayuda de un multímetro y revisar si son estables.&lt;/p>
&lt;p>Es una de las fuentes que compré, me encontré con un manual que lista los voltajes de cada línea. Lo dejo por aquí para futuras referencias.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/08/voltajes_fuente_de_poder-437x1024.jpg.webp"
alt="Voltajes de la fuente de poder.">&lt;figcaption>
&lt;p>Voltajes de la fuente de poder.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Gracias al comentario de Rogger Ortega me enteré que existen aparatos especializados para comprobar los voltajes de una fuente de poder (como el &lt;a class="link" href="https://web.archive.org/web/20210516055117/https://latam.thermaltake.com/dr-power-ii.html" target="_blank" rel="noopener"
>Dr.Power II de Thermaltake&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
). Aunque solo lo justifico si se atiende un gran número de equipos, entonces si ahorra una gran cantidad de tiempo, porque de un vistazo, puedes averiguar la condición de una fuente de poder.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/power-tester.jpg"
alt="Power tester de Thermaltake">&lt;figcaption>
&lt;p>Power tester de Thermaltake&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="si-todo-falla">Si todo falla
&lt;/h2>&lt;p>Puede ser que la electrónica de la fuente de poder haya pasado a mejor vida, pero no todo está perdido. A mí me gusta recuperar el ventilador para usarlo en otra fuente de poder. Muchas veces es lo único que necesita una fuente para que funcione por varios años.&lt;/p>
&lt;p>Espero que este consejo les sea de utilidad. ¡Hasta la próxima!&lt;/p></description></item><item><title>Ya soy inapropiado</title><link>https://linuxmanr4.com/2014/07/08/ya-soy-inapropiado/</link><pubDate>Tue, 08 Jul 2014 14:05:47 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/08/ya-soy-inapropiado/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/inapropiado.png" alt="Featured image of post Ya soy inapropiado" />&lt;p>Ayer en la noche me llegó un correo del buen amigo Sergio con el siguiente mensaje:&lt;/p>
&lt;p>&lt;em>&amp;ldquo;Navegando desde la universidad, me salio el cartelito, obviamente es un filtro en la red, y automáticamente pensé, que tendrán de inapropiado nuestras queridas distribuciones. Dice que cualquier cosa contacte al Administrador de sistemas, pero no dice a cual; conoces alguno? Saludos.&amp;rdquo;&lt;/em>&lt;/p>
&lt;p>El mensaje estaba acompañado de esta imagen &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/inapropiado.png"
alt="Mensaje de DansGuardian declarando este sitio como inapropiado.">&lt;figcaption>
&lt;p>Mensaje de DansGuardian declarando este sitio como inapropiado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Le agradezco mucho que me haya enviado este correo, pero ahora mi curiosidad esta al límite. El mensaje es porque el programa &lt;strong>DansGuardian&lt;/strong> al revisar el contenido de mi página acumuló una puntuación que considera no apta para mostrarse.&lt;/p>
&lt;p>¿Por qué soy inapropiado? ¿Será porque escribo sobre Linux, libertades, política, por mis antenas caseras, por como recortar tarjetas SIM, por mis opiniones sobre el software libre en la educación?, vamos que es un misterio.&lt;/p>
&lt;p>Muchas gracias Sergio por mandarme este &lt;em>screenshot&lt;/em>, y no, lamentablemente no conozco ningún administrador de sistemas &lt;em>(me alejo silbando despreocupadamente)&lt;/em>.&lt;/p></description></item><item><title>Addons y binarios para IPCop 1.4.x</title><link>https://linuxmanr4.com/2014/07/02/addons-y-binarios-para-ipcop-1-4/</link><pubDate>Wed, 02 Jul 2014 20:47:01 +0000</pubDate><guid>https://linuxmanr4.com/2014/07/02/addons-y-binarios-para-ipcop-1-4/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/07/IPCop-Logo.jpg" alt="Featured image of post Addons y binarios para IPCop 1.4.x" />&lt;p>Pues parece que algunos &lt;strong>addons&lt;/strong> y &lt;strong>binarios&lt;/strong> para las versión 1.4.x de IPCop las están descontinuando y ya no están en línea. Lamentablemente los binarios (y supongo que algunos addons) no son compatibles entre las versiones 1 y 2.&lt;/p>
&lt;p>A solicitud del amigo Carlos Illes que me dejó varios comentarios en este sitio tuve que desenterrar mi antiguo servidor para recuperar los &lt;strong>addons&lt;/strong> y &lt;strong>binarios&lt;/strong> que tenía instalados.&lt;/p>
&lt;h2 id="lista-de-addons-y-binarios-para-descargar">Lista de addons y binarios para descargar
&lt;/h2>&lt;ul>
&lt;li>Advanced Proxy&lt;/li>
&lt;li>El reporteador Calamaris&lt;/li>
&lt;li>Update Accelerator&lt;/li>
&lt;li>IPTraf&lt;/li>
&lt;li>OpenVPN de Zerina&lt;/li>
&lt;/ul>
&lt;p>No son todos los que estaban disponibles, pero si son los de batalla. Si todavía tienen un servidor IPCop viejito y necesitas algunos de estos addons los puedes descargar sin problemas y retrasar un poco la actualización.&lt;/p></description></item><item><title>Como configurar un bypass al proxy transparente de IPCop</title><link>https://linuxmanr4.com/2014/06/24/como-configurar-un-bypass-al-proxy-transparente-de-ipcop/</link><pubDate>Tue, 24 Jun 2014 21:04:55 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/24/como-configurar-un-bypass-al-proxy-transparente-de-ipcop/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Bypass-al-proxy-transparente-de-ipcop.png" alt="Featured image of post Como configurar un bypass al proxy transparente de IPCop" />&lt;p>En esta ocasión les voy a intentar explicar como configurar un &lt;em>bypass&lt;/em> al proxy transparente de IPCop 2 para que las peticiones a ciertos dominios salgan directamente a Internet sin pasar por Squid.&lt;/p>
&lt;h2 id="el-problema">El problema
&lt;/h2>&lt;p>Como les había comentado en días anteriores cambié mi servidor de de IPCop a IPCop 2. El cambio ocurrió prácticamente sin problemas, pero al poco tiempo me encontré con uno que no fue sencillo de solucionar.&lt;/p>
&lt;p>Con el rollo de la &lt;a class="link" href="https://linuxmanr4.com/2010/11/29/facturacion-electronica-libre/" >facturación electrónica&lt;/a>
tuve un problema con mi PAC&lt;/p>
\[^1\]&lt;p>, al momento de intentar timbrar una factura con el programa Microsip me arroja el siguiente error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Ocurrió la siguiente excepción: Connection lost (error code is 10058)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Durante varios días le estuve dando varias vueltas al asunto. A manera de solución rápida desactivé el &lt;strong>proxy&lt;/strong> y se pudo timbrar sin problemas, primera pista &lt;strong>Squid&lt;/strong>.&lt;/p>
&lt;p>Llevo usando Squid durante más de 8 años y es la primera vez que tengo un problema de este tipo, vamos, ni con los horripilantes sistemas del gobierno mexicano desarrollados en Java he tenido tantos problemas por algo tan sencillo.&lt;/p>
&lt;p>Investigué en varios foros el origen del problema, al parecer existe una mala combinación entre &lt;a class="link" href="https://es.wikipedia.org/wiki/Simple_Object_Access_Protocol" title="Wikipedia: Simple Object Access Protocol"
target="_blank" rel="noopener"
>SOAP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;strong>IIS7&lt;/strong> y Squid en sus ultimas versiones (actualmente IPCop usa la versión 3.4.4), simplemente no se llevan bien y eso provoca el error de conexión.&lt;/p>
&lt;p>En un principio quise agregar una opción a Squid para que se llevaran bien, me refiero a &lt;a class="link" href="http://www.squid-cache.org/Doc/config/ignore_expect_100/" title="Squid configuration directive ignore_expect_100"
target="_blank" rel="noopener"
>ignore_expect_100 on&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero no funcionó, siguió apareciendo exactamente el mismo problema.&lt;/p>
&lt;p>Como de momento no se iban a llevar bien mi proxy y el servidor de timbrado y apagar el proxy cada vez que se iba a timbrar una factura no era para nada una solución práctica decidí cambiar el enfoque.&lt;/p>
&lt;h2 id="bypass-al-proxy">Bypass al proxy.
&lt;/h2>&lt;p>Sabía lo que tenía que hacer. De alguna forma tenía que configurar IPCop para que al momento de que llegara una petición al dominio del servidor de timbrado, en lugar de que se fuera por la ruta normal (Squid como proxy transparente) saliera directamente a internet sin la intermediación del proxy. Creo que ni yo me entendí&amp;hellip; en fin, la idea es esa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Bypass-al-proxy-transparente-de-ipcop.png"
alt="Bypass al proxy transparente de ipcop">&lt;figcaption>
&lt;p>Bypass al proxy transparente de ipcop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Decirlo es más fácil que hacerlo, al igual que en otras ocasiones supuse que la solución la iba a encontrar con &lt;strong>iptables&lt;/strong> y así fue.&lt;/p>
&lt;p>Encontré un artículo que explicaba como hacer esto en IPCop 1.4.12 así que sólo lo tuve que adaptar ligeramente para que funcionara en IPCop 2.&lt;/p>
&lt;p>Para lograrlo hay que editar el archivo &lt;strong>/etc/rc.d/rc.firewall.local&lt;/strong> y agregar algunas reglas de &lt;strong>iptables&lt;/strong>.&lt;/p>
&lt;p>El archivo esta dividido en 3 secciones, &lt;strong>start&lt;/strong>, &lt;strong>stop&lt;/strong> y &lt;strong>reload&lt;/strong>. Sólo vamos a modificar las dos primeras.&lt;/p>
&lt;p>A manera de ejemplo, si el dominio problemático es xyz.com entonces en la sección de &lt;strong>start&lt;/strong> agrego la siguiente línea:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/sbin/iptables -t nat -A CUSTOMPREROUTING -p tcp --dport 80 -d xyz.com -j ACCEPT
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En la sección de stop:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/sbin/iptables -t nat -F CUSTOMPREROUTING
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y la sección &lt;strong>reload&lt;/strong> la dejo tal y como esta.&lt;/p>
&lt;p>Al final el archivo completo queda muy similar a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/sh
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1"># Used for private firewall rules&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># $Id: rc.firewall.local 1912 2008-09-16 20:11:47Z owes $&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># read variables&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">eval&lt;/span> &lt;span class="k">$(&lt;/span>/usr/local/bin/readhash /var/ipcop/ethernet/settings&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> -f /var/ipcop/red/iface &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">REAL_RED&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>cat /var/ipcop/red/iface&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># See how we were called.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">case&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">start&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;start&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> /sbin/iptables -t nat -A CUSTOMPREROUTING -p tcp --dport &lt;span class="m">80&lt;/span> -d xyz.com -j ACCEPT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">stop&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;stop&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> /sbin/iptables -t nat -F CUSTOMPREROUTING
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">reload&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$0&lt;/span> stop
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$0&lt;/span> start
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;reload&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">*&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Usage: &lt;/span>&lt;span class="nv">$0&lt;/span>&lt;span class="s2"> {start|stop|reload}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Guarden el archivo. Para aplicar los cambios, pueden reiniciar el servidor o mediante una conexión ssh ejecutar el script con &lt;strong>/etc/rc.d/rc.firewall.local reload&lt;/strong>&lt;/p>
&lt;h2 id="la-comprobación">La comprobación
&lt;/h2>&lt;p>Para averiguar que todo esta funcionando pueden activar los registros del proxy &lt;strong>Menú Servicios - Proxy - Configuración de Registros - Registro Activado&lt;/strong> y luego revisar los registros en el menú &lt;strong>Logs&lt;/strong> - &lt;strong>Registros del proxy&lt;/strong>.&lt;/p>
&lt;p>Visite unas tres o cuatro veces el sitio, no deben de aparecer en el registro porque en teoría nunca pasaron por ahí.&lt;/p>
&lt;p>Este consejo se puede aplicar tanto en IPCop 1.x como en IPCop 2.x .Espero que este artículo les sea de utilidad.&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>\[^1\]:Proveedores Autorizados de Certificación.&lt;/li>
&lt;li>Un problema similar a este soap header authentication fails squid proxy&lt;/li>
&lt;li>&lt;a class="link" href="http://www.firewall.cx/forum/10-firewall-filtering-idsips-a-security/19583-ipcop-bypass-squid-for-one-problem-site.html" target="_blank" rel="noopener"
>IPcop bypass squid for one problem site&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>LXPolKit y su GDBus.Error</title><link>https://linuxmanr4.com/2014/06/24/lxpolkit-y-su-gdbus-error/</link><pubDate>Tue, 24 Jun 2014 13:59:09 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/24/lxpolkit-y-su-gdbus-error/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/desactivar-LXPolKit.jpg" alt="Featured image of post LXPolKit y su GDBus.Error" />&lt;h2 id="el-problema">El problema
&lt;/h2>&lt;p>De manera espontánea me empezó a aparecer este error al iniciar sesión en mi instalación de Manjaro con Cinnamon.&lt;/p>
&lt;p>&lt;em>GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject&lt;/em>&lt;/p>
&lt;p>Realmente no le había puesto mucha atención, así que después de investigar un poco, el problema es un programa llamado &lt;strong>LXPolkit&lt;/strong>, al parecer ya existe un programa similar en Cinnamon (o en Gnome) que hace la misma función y este programa ya no es necesario.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Para solucionar este pequeño problema sólo hay que quitarlo de los programas que se cargargan durante el inicio tal y como pueden ver en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/desactivar-LXPolKit.jpg"
alt="LXPolKit GDBus.Error">&lt;figcaption>
&lt;p>LXPolKit GDBus.Error&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y con eso es más que suficiente para que ya no aparezca el error.&lt;/p></description></item><item><title>Script en bash para encender computadoras remotamente</title><link>https://linuxmanr4.com/2014/06/17/script-en-bash-para-encender-computadoras-remotamente/</link><pubDate>Tue, 17 Jun 2014 14:53:07 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/17/script-en-bash-para-encender-computadoras-remotamente/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/pinguinos-dormilones.jpg" alt="Featured image of post Script en bash para encender computadoras remotamente" />&lt;p>Días atrás tuve que ir a encender varias veces un equipo remoto, todo gracias a problemas electricos y a un &lt;em>no-break&lt;/em> chino que ya no tenía carga en su batería. Para evitar tanto rodeo de mi parte decidí hacer un pequeño script en bash para encender computadoras remotamente usando &lt;strong>etherwake&lt;/strong>..&lt;/p>
&lt;h2 id="activar-la-opción-en-el-bios">Activar la opción en el BIOS.
&lt;/h2>&lt;p>Para que funcione el &lt;em>script&lt;/em>, primero y antes que nada, hay que revisar que la opción de &lt;em>Wake on LAN&lt;/em> este activa en el BIOS. Esta opción cambia dependiendo del fabricante, pero busquen en la sección de &lt;strong>Energía&lt;/strong> debe decir algo como &lt;strong>Wake on LAN [Enabled]&lt;/strong> o &lt;strong>LAN power on [Enabled]&lt;/strong> o algo por el estilo.&lt;/p>
&lt;h2 id="averiguar-la-mac-address-de-la-tarjeta-de-red">Averiguar la mac address de la tarjeta de red.
&lt;/h2>&lt;p>La &lt;a class="link" href="https://es.wikipedia.org/wiki/Direcci%C3%B3n_MAC" target="_blank" rel="noopener"
>mac address&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es ese numerito separado por dos puntos que acompaña a las tarjetas de red. Se pueden averiguar con el comando &lt;strong>ipconfig&lt;/strong> en Windows o &lt;strong>ifconfig&lt;/strong> en linux.&lt;/p>
&lt;h2 id="tunear-el-script">Tunear el script.
&lt;/h2>&lt;p>Antes de modificar el script para ajustarlo a nuestros equipos es necesario tener instalado el paquete &lt;strong>etherwake&lt;/strong> que es el que se encarga de mandar la señal de encendido a los equipos mediante el cable de red.&lt;/p>
&lt;p>El script es muy sencillo, hay un menú que dependiendo de la opción elegida manda la señal de encendido a uno o a varios equipos.&lt;/p>
&lt;p>No se les olvide ajustar las mac address por las que corresponden a sus equipos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># arrancar_equipos.sh - Un script que enciende los equipos por WOL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Autor: Francisco J. de la Torre Inguanzo (aka Linuxman R4).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Blog: http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># G+ : https://plus.google.com/108009231243004251711&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Primero mostramos un menú que nos permite elegir cual (o cuales) equipos queremos arrancar.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> :
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> clear
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;===========================================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; arrancar_equipos.sh - Encendido por WOL&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;-----------------------------------------------------------&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;[1] Equipo Uno&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;[2] Equipo Dos&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;[3] Equipo Tres&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;[4] TODOS los anteriores&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;[q] Salir&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;===========================================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Seleccione su opción [1-4,q] :&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">read&lt;/span> opcion
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nv">$opcion&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Recuerden sustituir las mac address por las de sus equipos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1&lt;span class="o">)&lt;/span> sudo etherwake 11:11:11:11:11:11 &lt;span class="p">;&lt;/span> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Señal de encendido enviada... presione una tecla para continuar.&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> read&lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2&lt;span class="o">)&lt;/span> sudo etherwake 22:22:22:22:22:22 &lt;span class="p">;&lt;/span> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Señal de encendido enviada... presione una tecla para continuar.&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> read&lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 3&lt;span class="o">)&lt;/span> sudo etherwake 33:33:33:33:33:33 &lt;span class="p">;&lt;/span> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Señal de encendido enviada... presione una tecla para continuar.&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> read&lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 4&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo etherwake 11:11:11:11:11:11 &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo etherwake 22:22:22:22:22:22 &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo etherwake 33:33:33:33:33:33 &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Señal de encendido enviada a todos los servidores... presione una tecla para continuar.&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> read&lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> q&lt;span class="o">)&lt;/span> &lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;Hasta la próxima!!!\n&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nb">exit&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="para-saber-más">Para saber más
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://blog.xenodesystems.com/2014/05/enciende-tu-computadora-remotamente-con.html" target="_blank" rel="noopener"
>Enciende tu computadora remotamente con Wake On LAN (Linux)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Actualizando a IPCOP 2</title><link>https://linuxmanr4.com/2014/06/12/actualizando-ipcop-2/</link><pubDate>Thu, 12 Jun 2014 21:33:44 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/12/actualizando-ipcop-2/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Servidor-IPCop-Los-fierros.jpg" alt="Featured image of post Actualizando a IPCOP 2" />&lt;p>Todo llega, todo cambia, todo pasa. Decidí que ya era tiempo de jubilar mi vetusto servidor de internet con IPCop 1.4.21, aunque todavía estaba funcionando ya eran notorios algunos achaques, y es que no era para menos, era un equipo con apenas 256 MB en RAM y un disco duro de 6 GB !!!, ya era tiempo de reemplazarlo por un equipo más moderno.&lt;/p>
&lt;h2 id="por-qué-actualizar-a-ipcop-2x">¿Por qué actualizar a IPCOP 2.x?
&lt;/h2>&lt;p>Las razones son varias:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Mejor soporte de hardware&lt;/strong>. Como sabrán ya tengo algo de tiempo trabajando con IPCop y con la &lt;a class="link" href="https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/" >versión anterior&lt;/a>
frecuentemente me llegaban todo tipo de consultas relacionadas con el hardware, me mencionaban problemas sobre que no se podía instalar IPCop 1.4 desde unidades de CD SATA o tarjetas de red no reconocidas o cosas por el estilo, bueno la versión 2 tiene un mejor soporte de hardware.&lt;/li>
&lt;li>&lt;strong>Mejor seguridad&lt;/strong> Desde hace tiempo que no hay actualizaciones en las versiones 1.4.x y en estos tiempos es importante que los &lt;em>bugs&lt;/em> de seguridad se corrijan lo más pronto posible. Hasta ahorita no me han aparecido actualizaciones porque descargué la versión 2.1.5 que se supone es la más reciente.&lt;/li>
&lt;li>&lt;strong>Mejor integración&lt;/strong>. En las versiones anteriores de IPCop muchas de las funcionalidades requeridas por los usuarios se instalaban mediante &lt;strong>addons&lt;/strong>, ahora muchos de estos programas agregados ya están incluidos y están perfectamente integrados con IPCop, me refiero a los programas de cajón como &lt;strong>URL Filter&lt;/strong> o el famoso &lt;strong>OpenVPN de Zerina&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;h2 id="el-equipo">El equipo.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Servidor-IPCop-Los-fierros.jpg"
alt="Servidor IPCop, Los fierros">&lt;figcaption>
&lt;p>Servidor IPCop, Los fierros&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Del deshuesadero de computadoras que tengo logré juntar las piezas necesarias para armar un buen servidor.&lt;/p>
&lt;ul>
&lt;li>Un microprocesador Celeron de 1.8 GHz.&lt;/li>
&lt;li>2 GB de memoria RAM.&lt;/li>
&lt;li>Disco duro SATA de 80 GB que me dio algunos problemas al momento de hacer las particiones, pero de eso hablaré más adelante.&lt;/li>
&lt;li>Dos tarjetas de red, una para la zona &lt;strong>RED&lt;/strong> y otra para la zona &lt;strong>GREEN&lt;/strong>, esta última con soporte para Gigabit ethernet que me reconoció a la primera (con windows era un dolor de cabeza instalarle el driver).&lt;/li>
&lt;li>La fuente de poder es “externa” por la sencilla razón de que no cabía en el cabinete, así que la dejé fuera para un mejor enfriamiento, si … eso… :) .&lt;/li>
&lt;/ul>
&lt;h2 id="la-instalación">La instalación.
&lt;/h2>&lt;p>Si son lectores frecuentes de este humilde espacio sabrán que hace tiempo que no compro discos compactos para quemar, en su lugar tengo una memoria usb que utilizo para cuando necesito instalar un sistema operativo.&lt;/p>
&lt;p>Por eso descargue la versión más reciente de &lt;a class="link" href="http://www.ipcop.org/download.html" title="Latest USB flash drive installation file (FDD format, i486 2.1.5)"
target="_blank" rel="noopener"
>IPCop para flashdrive&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Una vez que descarguen, descompriman el archivo (img.gz) para obtener la imagen de la distro (.img) y desde la terminal.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dd if=ipcop-2.1.5-install-usb-fdd.i486.img of=/dev/sdf bs=1k
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pero recuerden cambiar &lt;em>/dev/sdf/&lt;/em> por el directorio que corresponde a su unidad usb, pueden usar la herramienta &lt;strong>Discos&lt;/strong> de Gnome para averiguarlo.&lt;/p>
&lt;h2 id="enchulando-ipcop">Enchulando IPCop
&lt;/h2>&lt;h3 id="redimensionando-la-partición-de-root">Redimensionando la partición de root.
&lt;/h3>&lt;p>Por default IPCop hace una partición ridículamente pequeña de unos 512 MB y anteriormente me habían reportado problemas de que esta partición se llenaba muy fácilmente, por eso les recomiendo &lt;a class="link" href="https://linuxmanr4.com/2014/03/20/aumentar-el-tamano-de-la-particion-root-en-ipcop-2/" >Aumentar el tamaño de la partición root en IPCop 2&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/redimensionando-las-particiones-de-ipcop.jpg"
alt="redimensionando las particiones de ipcop">&lt;figcaption>
&lt;p>redimensionando las particiones de ipcop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este proceso me llevó laaaaaargas horas, pero vale la pena. Por cierto, no tuve contratiempos al simular esta operación en una maquina virtual, pero al hacerlo en el equipo físico me apareció una partición libre al final del disco duro como de 1GB, no se si fue un error de &lt;strong>Gparted&lt;/strong> o mío, pero como el proceso duró tanto tiempo ya no me quedaron ganas de repetirlo para intentar corregirlo.&lt;/p>
&lt;h3 id="binarios-adicionales">Binarios adicionales
&lt;/h3>&lt;p>Necesitaba un par de comandos que me gusta utilizar en IPCop, &lt;strong>htop&lt;/strong> e &lt;strong>iptraf&lt;/strong>, ambos los pueden descargar de &lt;a class="link" href="http://www.cobin.de/binary.php" target="_blank" rel="noopener"
>IPCop addon binary collection&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El proceso de instalación es muy sencillo y en muchos aspectos idéntico a las versiones anteriores, únicamente hay que tener cuidado con los puertos porque son diferentes.&lt;/p>
&lt;h3 id="opción-66-para-agregar-un-tftp">Opción 66 para agregar un TFTP
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/opci%C3%B3n-66-dnsmasq.jpg"
alt="opción 66 dnsmasq">&lt;figcaption>
&lt;p>opción 66 dnsmasq&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Luego me encontré con una pequeña sorpresa, necesitaba especificar la dirección de un servidor &lt;strong>tftp&lt;/strong> que había configurado anteriormente (véa &lt;a class="link" href="https://linuxmanr4.com/2011/09/05/telefono-cisco-9951-elastix/" >Teléfono Cisco 9951 y Elastix&lt;/a>
) y ya no estaba disponible esta opción.&lt;/p>
&lt;p>Después de echarme un clavado en Google, la solución es muy simple, tenía que agregar la famosa opción 66 del programa &lt;strong>DNSMasq&lt;/strong> (véa &lt;a class="link" href="http://www.dd-wrt.com/wiki/index.php/DNSMasq_as_DHCP_server#DNSMasq_DHCP_Parameters" target="_blank" rel="noopener"
>DNSMasq As DHCP Server&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>Para agregar esta opción hay que editar archivo &lt;em>/var/ipcop/dhcp/dnsmasq.local&lt;/em> y agregar esta línea:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dhcp-option=66,&amp;#34;dirección.ip.del.servidor.tftp&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No olviden las comillas.&lt;/p>
&lt;h2 id="un-nuevo-comienzo">Un nuevo comienzo
&lt;/h2>&lt;p>Poco a poco voy configurando los servicios a mi gusto, empecé con el &lt;strong>Proxy&lt;/strong> y con el filtro de contenidos, el servidor &lt;strong>NTP&lt;/strong> y una conexión &lt;strong>OpenVPN&lt;/strong>, como pueden ver ya tengo la mayoría de los servicios activos y funcionando.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Servicios-activos-en-IPCOP-2.png"
alt="Servicios activos en IPCOP 2">&lt;figcaption>
&lt;p>Servicios activos en IPCOP 2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por último , les recomiendo que le den un vistazo al &lt;a class="link" href="http://www.ipcop.org/2-0-0/en/admin/html.html" target="_blank" rel="noopener"
>Manual del Administrador de IPCop v2.0.0&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
a mi me ha servido para despejar muchas dudas.&lt;/p></description></item><item><title>Script en bash que hace ping a tus servidores</title><link>https://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/</link><pubDate>Fri, 06 Jun 2014 15:13:58 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/el-script-pingservers-en-acci%C3%B3n.png" alt="Featured image of post Script en bash que hace ping a tus servidores" />&lt;p>Hace unos días me encontré con el script &lt;a class="link" href="https://web.archive.org/web/20150107181437/http://www.good-linux-tips.com:80/2014/06/script-checking-if-servers-are-up.html" target="_blank" rel="noopener"
>pingservers&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de I. Attir y lo modifiqué un poco a mi gusto.&lt;/p>
&lt;p>El &lt;em>script&lt;/em> toma una lista de direcciones ip de los servidores que queremos revisar, una ip por cada renglón y les hace &lt;strong>ping&lt;/strong>, si obtiene respuesta entonces muestra un mensaje de &lt;strong>OK&lt;/strong>, de lo contrario, muestra un error en la pantalla, hace un &lt;a class="link" href="http://nmap.org" title="sitio del programa nmap"
target="_blank" rel="noopener"
>nmap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
a la misma dirección para comprobar que este totalmente fuera de servicio. Además, también guarda un registro de los errores en el archivo &lt;strong>noping.log&lt;/strong> para su futura referencia.&lt;/p>
&lt;p>Originalmente el &lt;em>script&lt;/em> manda un correo al administrador, pero a mi no me sirve esa opción, primero porque si el que falla es el servidor de Internet, pues nunca voy a recibir el correo, además me gusta ejecutarlo manualmente para revisar la salud de mi red y si hay algún problema atenderlo inmediatamente.&lt;/p>
&lt;p>Mis modificaciones incluyen una traducción al español de los mensajes, agregué el comando &lt;strong>nmap&lt;/strong> (que tiene que estar instalado) y le agregué un poco de color.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/el-script-pingservers-en-acci%C3%B3n.png"
alt="el script pingservers en acción">&lt;figcaption>
&lt;p>el script pingservers en acción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1"># pingservers.sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ==============&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Hace ping a una lista de direcciones IP, revisa si los servidores estan activos o no.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Escrito por:I. Attir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://www.good-linux-tips.com/2014/06/script-checking-if-servers-are-up.html&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Modificaciones y traducción al Español por: Francisco J. de la Torre Inguanzo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># /2014/06/06/script-en-bash-que-hace-ping-tus-servidores/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">clear
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span> &lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span> &lt;span class="c1"># No se pasó una lista de ips&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Error: Por favor introduce un nombre de archivo válido, que contenga las direcciones IP para hacer ping.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">exit&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> ! -f &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span> &lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span> &lt;span class="c1"># Archivo inválido.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Error: No puedo encontrar el archivo &amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">exit&lt;/span> &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;(*) Haciendo ping a los servidores contenidos en el archivo &amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;, por favor espere...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="nb">read&lt;/span> IP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ping -c &lt;span class="m">3&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IP&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt;&lt;span class="p">&amp;amp;&lt;/span> /dev/null
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$?&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;0&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span> &lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span> &lt;span class="c1"># Houston, tenemos un problema.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">(&lt;/span>&lt;span class="nb">echo&lt;/span> -n &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IP&lt;/span>&lt;span class="s2"> &amp;#34;&lt;/span> &lt;span class="p">;&lt;/span> date&lt;span class="o">)&lt;/span> &lt;span class="p">|&lt;/span> tee -a noping.log
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">IP&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> !!! \e[0;31m[X]\e[1;37m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> nmap &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IP&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span> &lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$IP&lt;/span>&lt;span class="s2"> \e[1;32m[OK]\e[1;37m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span> &amp;lt; &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Listo!!!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>De Windows XP a Manjaro Linux con XFCE</title><link>https://linuxmanr4.com/2014/06/03/de-windows-xp-manjaro-linux-con-xfce/</link><pubDate>Tue, 03 Jun 2014 16:04:23 +0000</pubDate><guid>https://linuxmanr4.com/2014/06/03/de-windows-xp-manjaro-linux-con-xfce/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Compaq-Presario-SR1503WM-de-windows-xp-a-manjaro-linux.jpg" alt="Featured image of post De Windows XP a Manjaro Linux con XFCE" />&lt;p>Me trajeron una computadora para que le reinstalara el sistema operativo, pero sugerí que en lugar de volver al sistema de las ventanas cambiáramos de windows xp a Manjaro Linux con XFCE.&lt;/p>
&lt;p>Se trata de una computadora &lt;strong>Compaq Presario modelo SR1503WM&lt;/strong>, un equipo con un microprocesador Celeron a 2.93 GHz con 756 MB en RAM (512+256) y un disco duro de 80GB.&lt;/p>
&lt;p>Como pueden ver, no es un equipo con muchas prestaciones y reinstalar Windows implicaba tener una computadora prácticamente para correr un antivirus y nada más.&lt;/p>
&lt;h2 id="primer-intento-con-lubuntu">Primer intento con Lubuntu.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/06/Reemplazar-Windows-XP-con-Lubuntu.jpg"
alt="Reemplazar Windows XP con Lubuntu">&lt;figcaption>
&lt;p>Reemplazar Windows XP con Lubuntu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al principio intenté con la última versión de Lubuntu 14.04 ya que es una distribución &lt;a class="link" href="https://wiki.ubuntu.com/LTS" title="Long Term Support"
target="_blank" rel="noopener"
>LTS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero su rendimiento me decepcionó. &lt;a class="link" href="https://linuxmanr4.com/2016/01/13/algo-pasa-con-el-software-de-apple/" >Algo están haciendo mal&lt;/a>
en el equipo de Lubuntu. Se supone que el objetivo es tener un mejor rendimiento disminuyendo la carga al equipo, sin embargo, noté la computadora lenta a las peticiones del usuario.&lt;/p>
&lt;p>Otro aspecto que considero importante es el cuidado del aspecto visual, algo que otras distribuciones como Ubuntu o &lt;a class="link" href="http://elementaryos.org/" target="_blank" rel="noopener"
>Elementary&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
consideran algo importante. Y Lubuntu me mostró carencias, por momentos parecía que estaba viendo partes de un rompecabezas que no encajaba.&lt;/p>
&lt;p>Si hubiera mostrado un desempeño medianamente decente lo habría dejado instalado en el equipo, pero no fue así.&lt;/p>
&lt;h2 id="manjaro-linux-con-xfce-mejor-rendimiento">Manjaro Linux con XFCE, Mejor rendimiento.
&lt;/h2>&lt;p>El siguiente candidato a reemplazar a Windows XP fue Manjaro Linux. Distribución &lt;em>rolling release&lt;/em> que conozco bien. Tiene la ventaja de que no necesito reinstalarla cada 6 meses como ocurre con &lt;/p>
\[x\]&lt;p>Ubuntu, para instalar los programas más recientes sólo tengo que actualizar completamente el sistema y listo.&lt;/p>
&lt;p>La instalación se hizo sin problemas y el rendimiento general del equipo recién instalado fue mucho mejor que el de lubuntu. Con la computadora recién iniciada marcaba un consumo de apenas 200MB.&lt;/p>
&lt;p>Lo primero que hice fue actualizar el sistema para entregarlo con los paquetes más recientes, pero esta distro se mueve tan rápido que prácticamente terminé descargando la distribución otra vez.&lt;/p>
&lt;p>Después hice las optimizaciones de rigor, instalé &lt;a class="link" href="https://linuxmanr4.com/2014/05/23/mas-tips-para-optimizar-manjaro/" title="Cómo instalar Preload en Manjaro"
>Preload&lt;/a>
, agregué el parámetro &lt;strong>relatime&lt;/strong> a las particiones ext4 y active &lt;a class="link" href="https://linuxmanr4.com/2014/05/09/aumentar-la-velocidad-de-linux-con-zswap/" >zswap&lt;/a>
.&lt;/p>
&lt;p>En el aspecto visual no tengo queja, Manjaro se ve bien integrado, los temas, decoraciones de ventanas, controles, menús, iconos y tipografías se combinan perfectamente.&lt;/p>
&lt;p>Si pudiera pedir algo, me gustaría que tuviera un “Centro de software/Tienda de aplicaciones/o algo similar” , eso evitaría a los recién llegados lidiar con herramientas como &lt;em>pamac&lt;/em>, que aunque hacen un buen trabajo todavía resulta algo intimidante.&lt;/p>
&lt;h2 id="la-experiencia-del-usuario">La experiencia del usuario.
&lt;/h2>&lt;p>Al tratarse de un equipo viejo pero que aún funciona se tienen que hacer algunas concesiones, es obvio que no va a poder utilizarse para algunas tareas, como por ejemplo ver videos en Full HD, eso es imposible para un equipo de sus características.&lt;/p>
&lt;p>Aunque Manjaro viene con el reproductor VLC instalado por &lt;em>default&lt;/em> agregué a &lt;a class="link" href="http://smplayer.sourceforge.net/" target="_blank" rel="noopener"
>SMPLayer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, me gusta este programa porque utiliza mplayer, su descarga automática de subtítulos y porque tiene un programa adicional llamado &lt;strong>SMPlayer Youtube Browser&lt;/strong> que permite cargar y mostrar videos de youtube sin la necesidad de abrir el navegador o usar el pesado &lt;strong>Adobe Flash Player&lt;/strong>.&lt;/p>
&lt;p>Quité &lt;strong>Xnoise&lt;/strong> como reproductor de música y en su lugar instalé &lt;a class="link" href="http://deadbeef.sourceforge.net/" target="_blank" rel="noopener"
>Deadbeef&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es ultraligero y muy sencillo de usar, prácticamente esta libre de problemas.&lt;/p>
&lt;p>Para finalizar, instalé &lt;a class="link" href="https://launchpad.net/plank" target="_blank" rel="noopener"
>Plank&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un lanzador de aplicaciones al estilo Mac que es muy ligerito y fácil de usar, de hecho no tiene opciones de configuración (bueno si las tiene pero están muy escondidas).&lt;/p>
&lt;p>Hoy me dicen que se han adaptado bien al sistema, después de todo, lo que necesitan es entrar a internet, revisar el facebook, hacer consultas en la wikipedia y para redactar los trabajos escolares esta Writer de &lt;a class="link" href="http://es.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Si usted tiene un &lt;a class="link" href="https://linuxmanr4.com/2020/02/24/peppermint-y-slitaz-linux-ligero-para-equipos-viejitos-y-no-tan-viejitos/" >equipo viejito&lt;/a>
que aún funciona, intenté darle una segunda oportunidad con Linux, mejor aún con Manjaro, es ideal para los más pequeños de la casa, para las escuelas que ya tienen una inversión en estos equipos y el costo de cambiarlos es muy elevado o simplemente por ecología, reutilizar en lugar de tirar y reemplazar.&lt;/p></description></item><item><title>Macbook lenta, la solución que me funcionó</title><link>https://linuxmanr4.com/2014/05/27/macbook-lenta-solucion/</link><pubDate>Tue, 27 May 2014 18:54:56 +0000</pubDate><guid>https://linuxmanr4.com/2014/05/27/macbook-lenta-solucion/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/The-volume-needs-to-be-repaired-La-unidad-necesita-reparaci%C3%B3n.jpg"
alt="The volume needs to be repaired - La unidad necesita reparación - macbook lenta">&lt;figcaption>
&lt;p>The volume needs to be repaired - La unidad necesita reparación - macbook lenta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="una-macbook-lenta-es-eso-posible">Una Macbook lenta ¿Es eso posible?.
&lt;/h2>&lt;p>El otro día un amigo me trajo una computadora de la manzanita, una Macbook lenta de medio uso, físicamente se veía bien, un poco sucia, pero eso es normal en una marca que se obsesiona por sacar sus productos en color blanco. La computadora arrancó de manera normal, inicio sesión, intenté abrir un programa y se confirmó la queja de mi amigo, tardaba largos minutos para hacer cualquier cosa. Se supone que las computadoras de Apple no son lentas, al menos no como en Windows. Tengo que confesar que despertó mi curiosidad encontrar cual era el problema ¡Reto aceptado!.&lt;/p>
&lt;p>El arranque era aceptable, pero abrir cualquier aplicación tomaba laaaargos minutos o a veces ni lo hacía. No había mensajes de error, o alguna pista sobre cual era el problema, era un misterio.&lt;/p>
&lt;h2 id="onyx">Onyx.
&lt;/h2>&lt;p>Estaba consciente de la situación, en Windows sabría más o menos por donde empezar, pero en Mac OSX no tenía idea. ¿Cuál sería el problema? ¿Spyware? ¿Virus?, se supone que las Mac no tienen ese tipo de problemas y no, no era eso.&lt;/p>
&lt;p>Comprendí que mis habilidades con otros sistemas operativos no era aplicables a los equipos de la manzana. Al menos no en un principio, por eso pedí consejo a mis amigos de Google Plus.&lt;/p>
&lt;p>Ellos me recomendaron &lt;a class="link" href="https://www.titanium-software.fr/en/onyx.html" target="_blank" rel="noopener"
>Onyx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, una herramienta diseñada para automatizar algunas tareas de mantenimiento de Mac OSX. Sólo tengan cuidado de descargar la versión correcta, en mi caso necesitaba la versión para &lt;strong>Mac OS X Leopard&lt;/strong>.&lt;/p>
&lt;p>Sin embargo Onyx tampoco funcionó, la tarea &lt;strong>Fixing Disk Permissions&lt;/strong> nunca terminó, nuevamente se alentó el equipo a tal grado que tuve que reiniciarlo de mala manera. Pero Onyx me ayudó a detectar un problema escondido en el disco duro.&lt;/p>
&lt;h2 id="sin-disco-de-instalación">Sin disco de instalación.
&lt;/h2>&lt;p>Al parecer en Mac las tareas de mantenimiento del disco duro se hacen usando el disco de instalación que para variar no lo tengo. Tengo muchas herramientas para linux y windows, busqué el equivalente para la Mac del &lt;a class="link" href="http://www.hirensbootcd.org/download/" target="_blank" rel="noopener"
>Hiren’s BootCD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero no encontré al similar y es que es comprensible ¿Para que lo puedes necesitar si todas la Mac tienen su disco de instalación?. Por los mismos motivos tampoco podía aplicar la primera ley de windows, o sea reinstalar el sistema. Ya me estaba quedando sin opciones.&lt;/p>
&lt;h2 id="modo-single-user">Modo Single-User
&lt;/h2>&lt;p>Seguí buscando algo que pudiera aplicar sin tener el disco de instalación, así fue como dí con el modo &lt;strong>Single-User&lt;/strong>, que es una forma de arranque muy pero muy básica. Para lograrlo basta con presionar las teclas &lt;strong>Comando ⌘ + S&lt;/strong> al momento de arrancar el equipo. Ya con una pantalla a modo de terminal me empecé a sentir más cómodo ¡Esto si lo conozco!&lt;/p>
&lt;p>El sitio que revisé recomendaba utilizar el comando &lt;code>fsck -yf&lt;/code> para que revisara la estructura del sistema de archivos e intenta corregirla si es necesario. Obtuve como respuesta algo similar a esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:/ root# fsck -yf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** /dev/rdisk0s2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** Root file system
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** Checking Journaled HFS Plus volume.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** Checking Extents Overflow file.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** Checking Catalog file.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">disk0s2: I/O error.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Invalid note structure
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> (4, 9162)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">** Volume check failed.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y supuse que eso era realmente malo, me preocupó mucho el mensaje &lt;strong>I/O error&lt;/strong> eso no es nada bueno, probablemente un sector dañado del disco duro.&lt;/p>
&lt;p>Lo malo es que después de ejecutar varias veces este comando la Macbook ya &lt;a class="link" href="https://linuxmanr4.com/2020/01/29/no-se-pudo-arrancar-la-entrada-predeterminada-ni-la-de-reserva/" >no pudo arrancar&lt;/a>
, llegaba hasta cierto punto (después de la pantalla gris) y se apagaba… Cupertino, tenemos un problema.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/Ejecutando-el-comando-fsck%5Fhfs.jpg"
alt="Ejecutando el comando fsck\_hfs - macbook lenta solución">&lt;figcaption>
&lt;p>Ejecutando el comando fsck_hfs - macbook lenta solución&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otra vez un clavado en Google, me encontré con esta recomendación &lt;em>A possible fix for invalid sibling links on a hard drive&lt;/em>, pero en lugar de usar el CD de instalación arranque el equipo en modo &lt;strong>Single-user&lt;/strong>. Ya instalado en la terminal ejecuté este comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fsck_hfs -r /dev/rdisk0s2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El comando iba mostrando sus avances, se tardó bastante pero no se quedó bloqueado, al terminar hice lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fsck_hfs -f /dev/rdisk0s2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Se tardó otro poco más, terminó sin problemas, reinicié la computadora tecleando el comando &lt;em>exit&lt;/em>, momento de suspenso… después de iniciar sesión ¡Funciona!, al fin pude arrancar Safari, iTunes y otros programas sin que se tardara horrores.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>En este punto podían pasar dos cosas, si el disco duro está agonizando tendre noticias pronto, volverá a las andadas y nuevamente alentará el equipo. Pero si fue algo fortuito, un problema extraordinario, uno de esos sectores dañados que aparecen ocasionalmente, entonces la Macbook seguirá como si nada durante un buen tiempo.&lt;/p>
&lt;p>Me pude dar cuenta de que no todo es miel sobre hojuelas en las computadoras Mac, así es, los equipos de la manzanita también tienen problemas, quizás son menos frecuentes, eso tengo que reconocerlo, pero debajo de toda esa decoración y gráficos vistosos hay fierros que también se descomponen.&lt;/p>
&lt;p>También me pude dar cuenta de que Mac OS X tiene mucho en común con Linux, la terminal me pareció algo muy familiar, al grado de sentirme cómodo tecleando los comandos de rescate. A fin de cuentas Mac es una terminal tremendamente adornada.&lt;/p></description></item><item><title>Más tips para optimizar Manjaro</title><link>https://linuxmanr4.com/2014/05/23/mas-tips-para-optimizar-manjaro/</link><pubDate>Fri, 23 May 2014 21:07:38 +0000</pubDate><guid>https://linuxmanr4.com/2014/05/23/mas-tips-para-optimizar-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/actualizando-manjaro-linux.jpg" alt="Featured image of post Más tips para optimizar Manjaro" />&lt;p>¿Más tips para optimizar Manjaro?, bueno es que todos los días se aprende algo nuevo. Hoy los amigos de &lt;a class="link" href="http://blog.xenodesystems.com/" title="Blog de Xenode Systems"
target="_blank" rel="noopener"
>Xenode Systems&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(que siempre tienen buenos artículos y hoy no fue la excepción), publicaron Rejuvenece tu linux con estos tips. Se aprende mucho con ellos, para empezar y de una vez por todas dan luz sobre el tema de tener o no activa la partición &lt;em>swap&lt;/em> (lo mejor es tenerla) y sombre el mito del valor &lt;em>vm.swapiness&lt;/em> que en resumen lo mejor es dejarlo como esta.&lt;/p>
&lt;p>Sólo hay un pequeño inconveniente, los amigos de Xenode usan Fedora (o CentOS según sea el caso) y tengo que adaptar sus consejos a &lt;strong>Manjaro&lt;/strong>. Tampoco es una tarea del otro mundo, de hecho es muy sencillo. De todos los tips que publicaron sólo apliqué dos.&lt;/p>
&lt;h2 id="instalar-preload">Instalar Preload
&lt;/h2>&lt;p>Busqué &lt;strong>preload&lt;/strong> en los &lt;em>mirrors&lt;/em> de Manjaro y no lo encontré, me pareció un poco extraño ya que en Ubuntu lo encuentras fácilmente. Ahora que lo pienso, no se porque no se me ocurrió instalarlo en Manjaro, bueno, a cualquiera se le van las cabras al monte. Afortunadamente esta disponible en &lt;strong>AUR&lt;/strong>, así que para instalarlo solo se tienen que teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">pacman&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">S&lt;/span> &lt;span class="nb">preload&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No basta con instalarlo, tienen que activarlo y para eso…&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">systemctl&lt;/span> &lt;span class="n">start&lt;/span> &lt;span class="nb">preload&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si quieren que se ejecute desde el arranque…&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">systemctl&lt;/span> &lt;span class="n">enable&lt;/span> &lt;span class="nb">preload&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y si quieren revisar si se esta ejecutando &amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">systemctl&lt;/span> &lt;span class="n">status&lt;/span> &lt;span class="nb">preload&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo.&lt;/p>
&lt;p>Ahora preload esta disponible en los repositorios normales de Manjaro, así que para instalarlo lo pueden hacer con &lt;strong>sudo pacman -S preload&lt;/strong>&lt;/p>
&lt;h2 id="el-parámetro-relatime-en-particiones-ext4">El parámetro relatime en particiones ext4
&lt;/h2>&lt;p>Generalmente no le muevo mucho al archivo fstab, pero no pierdo nada con agregar el paŕametro relatime a mis particiones que utilizan &lt;em>ext4&lt;/em>, así que abrí el archivo fstab con …&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/fstab
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y agregué el parámetro &lt;strong>relatime&lt;/strong> después de &lt;strong>defaults&lt;/strong> separado por una coma.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/agregando-el-par%C3%A1metro-relatime-a-fstab.jpg"
alt="agregando el parámetro relatime a fstab">&lt;figcaption>
&lt;p>agregando el parámetro relatime a fstab&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Eso es todo por hoy y ya saben amigos, ciclo ahorrado, ciclo ganado. :)&lt;/p></description></item><item><title>Aumentar la velocidad de linux con zswap</title><link>https://linuxmanr4.com/2014/05/09/aumentar-la-velocidad-de-linux-con-zswap/</link><pubDate>Fri, 09 May 2014 13:56:16 +0000</pubDate><guid>https://linuxmanr4.com/2014/05/09/aumentar-la-velocidad-de-linux-con-zswap/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/pinguinos-voladores.jpg" alt="Featured image of post Aumentar la velocidad de linux con zswap" />&lt;p>Siempre estoy atento a cualquier opción que mejore el desempeño de mi instalación de linux. No es porque linux vaya lento, no señor, las mejoras van con la intención de sacarle más jugo a al hardware.&lt;/p>
&lt;p>Hoy en la mañana vi este artículo de los amigos de Xenode Systems: &lt;strong>Haz tu Linux más rápido con Zswap&lt;/strong> y me llamó la atención.&lt;/p>
&lt;p>En resumen, &lt;a class="link" href="https://en.wikipedia.org/wiki/Zswap" target="_blank" rel="noopener"
>zswap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
mejora la velocidad de linux al optimizar el uso de la memoria RAM y de la &lt;em>swap&lt;/em> y al mandar algunos procesos de entrada y salida a memoria.&lt;/p>
&lt;p>Para poder aplicarlo tuve que reactivar la swap de mi sistema, ya que anteriormente la había deshabilitado (véa &lt;a class="link" href="https://linuxmanr4.com/2014/04/03/desactivar-la-particion-de-swap/" >Desactivar la partición de swap&lt;/a>
). Una vez hecho esto ya estaba listo para realizar los cambios en mi sistema.&lt;/p>
&lt;h2 id="cuál-versión-del-kernel-estoy-utilizando">¿Cuál versión del kernel estoy utilizando.
&lt;/h2>&lt;p>Lo primero que hay que hacer es revisar la versión del kernel que estoy usando. Esto es importante, porque como mencionan los amigos de Xenode, esta opción esta disponible a partir de las version &lt;strong>3.11&lt;/strong> del kernel.&lt;/p>
&lt;p>Para averiguarlo basta con teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">uname -r
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A mi me dio como resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">3.12.17-1-MANJARO
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>¡Perfecto! eso quiere decir que no debo de tener problemas al momento de habilitar esta opción.&lt;/p>
&lt;h2 id="modificar-el-parámetro-del-kernel-en-grub">Modificar el parámetro del kernel en GRUB.
&lt;/h2>&lt;p>Ahora hay que indicarle a GRUB que inicie el kernel con un parámetro adicional que activa la opción de Zswap.&lt;/p>
&lt;p>Para eso hay que editar el archivo de configuración de &lt;strong>grub&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/default/grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Buscamos la línea que dice &lt;strong>GRUB_CMDLINE_LINUX_DEFAULT&lt;/strong> y agregamos al final &lt;strong>zswap.enabled=1&lt;/strong> para que quede más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">GRUB_DEFAULT=saved
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GRUB_TIMEOUT=5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GRUB_DISTRIBUTOR=&amp;#34;Manjaro&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GRUB_CMDLINE_LINUX_DEFAULT=&amp;#34;quiet resume=/dev/disk/by-uuid/9a711444-9679-4820-93a4-de45a752ca94 zswap.enabled=1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">GRUB_CMDLINE_LINUX=&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Guardamos el archivo y activamos los cambios con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo update-grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esperamos a que termine y reiniciamos el sistema (hagan “changuitos”).&lt;/p>
&lt;h2 id="comprobar-que-zswap-está-habilitado">Comprobar que zswap está habilitado.
&lt;/h2>&lt;p>Si la computadora arrancó normalmente (siempre hay un riesgo) sólo falta comprobar que &lt;strong>zswap&lt;/strong> este activo y funcionando, para eso basta con teclear en una terminal…&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dmesg | grep zswap
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/05/zswap-listo-y-funcionando.png"
alt="zswap listo y funcionando">&lt;figcaption>
&lt;p>zswap listo y funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y como pueden ver en la imagen, el módulo está activo y funcionando.&lt;/p>
&lt;p>Ahora solo falta comprobar que funcione y esto es muy difícil de apreciar en el trabajo diario, pero cualquier cosa que sea para mejorar será bienvenida.&lt;/p></description></item><item><title>Así fue el FLISOL 2014 en Torreón</title><link>https://linuxmanr4.com/2014/04/28/asi-fue-el-flisol-2014-en-torreon/</link><pubDate>Mon, 28 Apr 2014 21:59:39 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/28/asi-fue-el-flisol-2014-en-torreon/</guid><description>&lt;p>Después de salir del trabajo, inmediatamente me dirigí al FLISOL de la Comarca Lagunera en Plaza Cuatro Caminos. Lo primero que veo es que no hay nadie !!!, y eso fue porque no estaban ubicados en los lugares en donde se habían desarrollado los flisoles de otros años. Revisé la fecha (ya ven que nunca falta un despiste) mientras me daba una vuelta por el lugar.&lt;/p>
&lt;p>Y ahí estaban los amigos del &lt;a class="link" href="http://gulag.org.mx/" target="_blank" rel="noopener"
>GULAG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, cerca del cine y el Starbucks, todos muy metidos en sus equipos y platicando pero ¿Y los invitados? ¿Ontan?.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Listo-el-FLISOL.jpg"
alt="Listo el FLISOL">&lt;figcaption>
&lt;p>Listo el FLISOL&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Llegamos a la conclusión de que la poca afluencia se debió a que es el primer FLISOL que tenemos en un periodo vacacional. La mayoría de las personas que nos visitan son alumnos de varias instituciones, maestros y público en general. Algunos se acercaron a preguntar y muy amablemente el &lt;em>staff&lt;/em> resolvió sus dudas y continuaban con sus compras.&lt;/p>
&lt;p>Llegó un amigo que creí conocer, pero como tengo una &amp;ldquo;dislexia visual&amp;rdquo;, creo que lo confundí con otra persona que había asistido al FLISOL del año pasado. Le pido una disculpa, por no atenderlo como se debe, pero es que me hago bolas con tantas conversaciones.&lt;/p>
&lt;h2 id="guada-what">Guada what?
&lt;/h2>&lt;p>Además, de la nada llegó un cliente cargando con su computadora, monitor, mouse, teclado y hasta con una antenita de vinil, bueno la de la tarjeta inalámbrica.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Guadalinex-instalado-y-funcionando.jpg"
alt="Guadalinex instalado y funcionando">&lt;figcaption>
&lt;p>Guadalinex instalado y funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y pasó algo curioso, este año los CD&amp;rsquo;s brillaron por su ausencia y es que ¡Ya no se usan!, todos teníamos un buen surtido de imágenes ISOS descargadas para hacer USB&amp;rsquo;s de arranque. Yo tenía listos 6 isos de Manjaro en versiones para KDE, Gnome y Xfce con sabores de 32 y 64 bits y que nos llega un equipo no muy viejo, no muy moderno con una unidad de cd que no se podía abrir.&lt;/p>
&lt;p>De pronto surge el buen amigo de Gabriel Peña al rescate con un CD de &lt;a class="link" href="https://es.wikipedia.org/wiki/Guadalinex" target="_blank" rel="noopener"
>Guadalinex&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una distribución de linux española y su distro favorita. Guadalinex es una especie de Ubuntu aligerado y me pareció bien para el equipo. Nunca había instalado Guadalinex , pero después de todo ¿Qué tan difícil puede ser?.&lt;/p>
&lt;p>Pues no fue tan sencillo, con muchos esfuerzos se logró instalar y por alguna extraña razón no mostraba el menú de GRUB. El cliente pidió que se le &lt;a class="link" href="https://linuxmanr4.com/2010/02/16/como-recuperar-grub2-despues-de-instalar-windows/" >instalara junto con Windows&lt;/a>
y durante el arranque no mostró el menú. Se que funcionaba pero no lo mostraba, probablemente un problema con la configuración de video. En ese momento me di cuenta de que ya no se manejar ubuntus ¡Manjaro como te extrañé!.&lt;/p>
&lt;p>Al final ya no pudimos resolver ese problema porque el internet estaba muy escaso y para colmo de males, el equipo tiene problemas con la fuente de poder. Un dato, si la computadora huele como a plancha no es bueno ¡ehhhh!.&lt;/p>
&lt;h2 id="arduino">Arduino
&lt;/h2>&lt;p>También atendí a otro amigo que ya tenía un &lt;a class="link" href="https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/" >Ubuntu viejito instalado&lt;/a>
. Él tenía (¿o tiene?) algunas dudas con VirtualBox, pero lo mejor es que llevó una tarjeta &lt;a class="link" href="https://www.arduino.cc/" target="_blank" rel="noopener"
>Arduino&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y para ser sincero, ya me dieron ganas de conseguir una, el chiste sería encontrarle una aplicación, así es como aprendo.&lt;/p>
&lt;p>Intenté ayudarle, pero como mencioné, el internet era &amp;ldquo;complicado&amp;rdquo;, esta vez no teníamos un enlace por cable de red y dependíamos de las redes que estaban en el aire. Sin embargo pudimos echar a andar Virtualbox aunque después nos tiró un error por un módulo del kernel. Al final le pasé el ISO de Manjaro por si se animaba a instalarlo después.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Manjaro-Cinnamon-en-modo-Live.jpg"
alt="Manjaro Cinnamon en modo Live">&lt;figcaption>
&lt;p>Manjaro Cinnamon en modo Live&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me quedó una duda con la tarjetita, así que revisé el &lt;a class="link" href="https://docs.arduino.cc/" target="_blank" rel="noopener"
>Arduino, primeros pasos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Windows se utilizan los puertos COM para definir la conexiones seriales COM1, COM2 y así por el estilo. Viendo la guía supongo que en Linux es muy parecido a Mac como se puede apreciar en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/SerialPortSelection.png"
alt="Arduino - Selección del puerto serial">&lt;figcaption>
&lt;p>Arduino - Selección del puerto serial&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Además investigué un poco y hay varios paquetes para Arduino disponibles en AUR para &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Arduino-paquetes-en-AUR.png"
alt="Arduino - paquetes en AUR">&lt;figcaption>
&lt;p>Arduino - paquetes en AUR&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="hasta-el-próximo-año">Hasta el próximo año.
&lt;/h2>&lt;p>Si usted dijo que iba a ir (si me refiero a usted) y al final no fue que porque le dio flojera, que mejor luego o que dijo mi marido/esposa/novia/amigo que siempre no, lamento decirle que le va a caer la maldición gitana de Stallman y Torvalds les dedicará amablemente su cordial y muy conocido saludo con el dedo medio de la mano. No es cierto, es broma, aún pueden asistir a una de las reuniones que se hacen cada mes en el GULAG y plantear sus dudas.&lt;/p>
&lt;p>Bueno amigos ¡Hasta el próximo año!.&lt;/p></description></item><item><title>Letreros de seguridad con Inkscape</title><link>https://linuxmanr4.com/2014/04/25/letreros-de-seguridad-hechos-con-inkscape/</link><pubDate>Fri, 25 Apr 2014 14:37:42 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/25/letreros-de-seguridad-hechos-con-inkscape/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Editando-un-letrero-con-Inkscape.png" alt="Featured image of post Letreros de seguridad con Inkscape" />&lt;p>Ayer hice unos cuantos letreros de seguridad que ahora comparto con ustedes. Estan elaborados con &lt;a class="link" href="http://www.inkscape.org/es/" target="_blank" rel="noopener"
>Inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, una herramienta para dibujo de vectores, un equivalente a Corel Draw pero totalmente libre.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Editando-un-letrero-con-Inkscape.png"
alt="Editando un letrero con Inkscape">&lt;figcaption>
&lt;p>Editando un letrero con Inkscape&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Inkscape&lt;/strong> es una herramienta muy sencilla de usar, les dejo al final del artículo un archivo zip que contiene todos los &lt;strong>letreros de seguridad&lt;/strong> en formato PNG y los archivos de trabajo en formato SVG por si quieren mejorarlos, cambiar el tamaño o los letreros. Todos están en tamaño de una hoja carta, pero si quieren hacerlos más grandes es cosa de editar los archivos de trabajo.&lt;/p>
&lt;p>No todo el arte es de mi autoría, el extintor y el símbolo de &lt;strong>PROHIBIDO PASAR&lt;/strong> los obtuve de &lt;a class="link" href="https://openclipart.org/" target="_blank" rel="noopener"
>OpenClipart&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, una excelente colección de imágenes en formato SVG que pueden incluir fácilmente en sus proyectos.&lt;/p>
&lt;p>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/%C3%A1rea-restringida-s%C3%B3lo-personal-autorizado.png"
alt="Letrero de Área restringida - sólo personal autorizado">&lt;figcaption>
&lt;p>Letrero de Área restringida - sólo personal autorizado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/alta-tensi%C3%B3n.png"
alt="Letrero de Alta tensión">&lt;figcaption>
&lt;p>Letrero de Alta tensión&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Ruta-de-evacuaci%C3%B3n.png"
alt="Letrero de Ruta de evacuación">&lt;figcaption>
&lt;p>Letrero de Ruta de evacuación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Extintor.png"
alt="Letrero de Extintor">&lt;figcaption>
&lt;p>Letrero de Extintor&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;/p>
&lt;p>Espero que les puedan ser de utilidad. &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2014/04/letreros-de-seguridad.zip" >Descargar letreros y archivos de trabajo&lt;/a>
.&lt;/p></description></item><item><title>Películas y Series con Flixtor</title><link>https://linuxmanr4.com/2014/04/18/peliculas-y-series-con-flixtor/</link><pubDate>Fri, 18 Apr 2014 19:29:01 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/18/peliculas-y-series-con-flixtor/</guid><description>&lt;p>Después del experimento inconcluso que nos dejó &lt;a class="link" href="https://linuxmanr4.com/2014/03/01/descargar-ver-y-subtitular-peliculas-en-un-tris-tras-con-popcorn-time/" >Popcorn Time&lt;/a>
muchos levantaron la toalla y continuaron más o menos por el mismo camino. &lt;strong>Flixtor&lt;/strong> es una aplicación que utiliza la tecnología de bittorrent para localizar, mostrar y subtitular películas y series de televisión.&lt;/p>
&lt;h2 id="flixtor">Flixtor
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Flixtor-Pantalla-con-la-informaci%C3%B3n-de-la-serie.jpg"
alt="Flixtor - Pantalla con la información de la serie">&lt;figcaption>
&lt;p>Flixtor - Pantalla con la información de la serie&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si alcanzaron a ver la interfaz de PopCorn Time se darán cuenta que tiene mucho en común con la de &lt;strong>Flixtor&lt;/strong> pero con algunas mejoras.&lt;/p>
&lt;p>Por ejemplo si eligen una película aparece una pequeña reseña y la opción de ver la película o un trailer de la misma. Si seleccionan una serie de televisión aparece otra pantalla que permite elegir los episodios por temporada ¡Cool!&lt;/p>
&lt;h2 id="y-las-opciones-de-configuración">¿Y las opciones de configuración?
&lt;/h2>&lt;p>Como pueden ver esta aplicación adolece de una falta total de opciones de configuración. No se puede ajustar el tamaño de la letra o la codificación de los subtítulos y eso es por lo menos un poco molesto.&lt;/p>
&lt;p>También la descarga de los subtítulos es un poco engañosa, por ejemplo, en ocasiones aparece un botón que dice &lt;strong>Skip&lt;/strong> y lo tengo que presionar para poder ver el video. Supongo que no lo localizó o tiene problemas para encontrarlo, pero ya con el video mostrándose en la pantalla, hay un pequeño botón en la esquina inferior derecha con forma de globito, ahí es donde pueden elegir el idioma de los subtítulos y los muestra sin problemas WTF!!! .&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Flixtor-buscando-los-subtitulos.jpg"
alt="Flixtor - buscando los subtitulos">&lt;figcaption>
&lt;p>Flixtor - buscando los subtitulos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me gustaría que tuviera alguna opción de configuración en los que se pudiera especificar los lugares donde se pueden descargar como &lt;a class="link" href="http://www.opensubtitles.org/es" target="_blank" rel="noopener"
>OpenSubtitles&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="http://www.subdivx.com/" target="_blank" rel="noopener"
>SubDivx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero esto no existe, al menos no por el momento.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Es una buena opción con mucho potencial siempre y cuando no la saquen de la jugada. Ya saben, la industria del entretenimiento lanza su jauría de abogados para detener a este tipo de proyectos.&lt;/p>
&lt;p>Esta disponible para Windows, Linux , Mac y Android !!!. Tiene un buen desempeño y vale la pena probarlo, claro si no eres muy exigente con el tema de los subtítulos.&lt;/p>
&lt;p>¿Mencioné que es Open Source?&lt;/p>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Lamentablemente muchos de estos programas han dejado de funcionar, en buena parte por el ¡Boom! de las opciones en streaming como Netflix o Amazon Prime y la pandemia ha acelerado el proceso.&lt;/p></description></item><item><title>Así se vio el eclipse lunar (15 de abril 2014)</title><link>https://linuxmanr4.com/2014/04/15/asi-se-vio-el-eclipse/</link><pubDate>Tue, 15 Apr 2014 15:06:13 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/15/asi-se-vio-el-eclipse/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/La-luna-eclipsada-Spica-y-Marte-15-abr-2014.jpg"
alt="La luna eclipsada, Spica y Marte 15-abr-2014">&lt;figcaption>
&lt;p>La luna eclipsada, Spica y Marte 15-abr-2014&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Puntual a la cita, como a eso de la 1:10 am empezó el ballet cósmico con una mancha voraz que poco a poco fue cubriendo a nuestro satélite natural. Mi esposa se encargó de tomar varias fotografías y yo de ajustar nuestro pequeño telescopio. Fue una noche de &lt;a class="link" href="https://linuxmanr4.com/calendario-lunar/" >luna&lt;/a>
clara, hacía algo de viento y eso ayudó mucho a despejar el cielo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/eclipse-lunar-animado.gif"
alt="eclipse lunar animado">&lt;figcaption>
&lt;p>eclipse lunar animado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si no tuvieron la oportunidad de apreciarlo habrá otro el 8 de octubre de este mismo año, pero creo que no se verá igual en México. Para salir de dudas pueden confirmarlo con Stellarium, de esa forma sabrán la hora exacta del fenómeno en su lugar de residencia.&lt;/p>
&lt;p>Y ustedes ¿Vieron el eclipse o se quedaron dormidos?&lt;/p></description></item><item><title>Eclipse lunar en semana santa</title><link>https://linuxmanr4.com/2014/04/14/eclipse-lunar-en-semana-santa/</link><pubDate>Mon, 14 Apr 2014 14:02:28 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/14/eclipse-lunar-en-semana-santa/</guid><description>&lt;p>Es un hecho curioso que ocurra un eclipse lunar precisamente en la semana mayor para los católicos. Tampoco es sorpresa que en esta semana santa este la luna este en &lt;a class="link" href="https://linuxmanr4.com/calendario-lunar/" >plenilunio&lt;/a>
, si gustan pueden leer &lt;a class="link" href="https://linuxmanr4.com/2013/03/26/semana-santa-luna-llena/" >Porqué en Semana Santa siempre hay luna llena&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/eclipse-de-luna-14-y-15-de-abril-2014.jpg"
alt="Eclipse lunar semana santa 2014">&lt;figcaption>
&lt;p>Eclipse lunar semana santa 2014&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo cierto es que el día de hoy 14 de abril a las 23:55 hrs. empieza un eclipse lunar que durará hasta ya entrada la madrugada del martes 15 de abril.&lt;/p>
&lt;p>Si están despiertos a esas horas, no se pierdan este bello espectáculo que se podrá apreciar a simple vista en toda América del Norte, Centro América y parcialmente en América del sur.&lt;/p>
&lt;p>Revisando con Stellarium, al parecer en mi ciudad el evento será apreciable hasta más tarde, como a eso de la 1:10 hrs del 15 de abril.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Eclipse-lunar-2014-con-Stellarium-Luna-y-Spica.png"
alt="Eclipse lunar 2014 con Stellarium - Luna y Spica">&lt;figcaption>
&lt;p>Eclipse lunar 2014 con Stellarium - Luna y Spica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>También van a poder observar una estrella muy brillante que se llama &lt;a class="link" href="https://es.wikipedia.org/wiki/Espiga_%28estrella%29" target="_blank" rel="noopener"
>Spica (o Espiga)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y un poco más arriba el planeta Marte.&lt;/p></description></item><item><title>Como arrancar una computadora desde una memoria USB cuando no tiene esta opción</title><link>https://linuxmanr4.com/2014/04/10/como-arrancar-una-computadora-desde-una-memoria-usb-cuando-no-tiene-esta-opcion/</link><pubDate>Thu, 10 Apr 2014 15:26:24 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/10/como-arrancar-una-computadora-desde-una-memoria-usb-cuando-no-tiene-esta-opcion/</guid><description>&lt;p>Voy a tratar de explicar cual fue mi situación. Verán, hace unos días terminó el soporte a Windows XP y para celebrarlo le instalé Manjaro a una antigua portátil, pero la tarea no iba a ser tan sencilla.&lt;/p>
&lt;p>Lo que pasa es que la portátil no tiene una opción para arrancar desde un dispositivo USB. Todavía el año pasado tenía uno que otro CD virgen para quemar las nuevas versiones de Ubuntu, pero desde que uso Manjaro esto ya no es necesario y por eso dejé de comprarlos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/los-ingredientes-memoria-usb-super-grub-disk.jpg"
alt="los ingredientes - memoria usb - super grub disk">&lt;figcaption>
&lt;p>los ingredientes - memoria usb - super grub disk&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con el tiempo he acumulado una colección de CD&amp;rsquo;s ya grabados con herramientas que me son útiles, por ejemplo tengo un CD de Clonezilla, otro de Hiren&amp;rsquo;s BootCD y el que voy a utilizar para este ejercicio, &lt;a class="link" href="http://www.supergrubdisk.org/" target="_blank" rel="noopener"
>Super Grub Disk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Anteriormente lo había utilizado para arreglar uno que otro GRUB descompuesto, pero esta vez me va a servir para arrancar desde mi memoria USB.&lt;/p>
&lt;p>Claro que para esto, ya tenía lista mi pendrive USB con la imagen de instalación de Manjaro.&lt;/p>
&lt;p>Lo primero es arrancar la computadora con el CD de &lt;strong>Super Grub Disk&lt;/strong> y también es importante que la memoria también este conectada al equipo.&lt;/p>
&lt;p>Después de la pantalla de bienvenida y seleccionar el idioma, pueden elegir con ayuda o sin ella, en lo personal prefiero &lt;strong>Sin Ayuda&lt;/strong> para que no me salgan tantos letreritos.&lt;/p>
&lt;p>Bueno pues lo primero que van a ver es una pantalla muy similar a esta y seleccione la opción &lt;strong>Arranque y Herramientas&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/arranque-y-herramientas.jpg"
alt="arranque y herramientas">&lt;figcaption>
&lt;p>arranque y herramientas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el siguiente menú seleccioné &lt;strong>Arranque partición&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/arranque-particion.jpg"
alt="arranque particion">&lt;figcaption>
&lt;p>arranque particion&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver me aparecen dos discos duros, uno de 55 GB que es el disco duro del equipo y otro de 1 GB (hdb) que es la memoria USB.&lt;/p>
&lt;p>Por obvias razones elijo la partición 2 que corresponde a mi pendrive.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/seleccionando-la-particion.jpg"
alt="seleccionando la particion">&lt;figcaption>
&lt;p>seleccionando la particion&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de confirmar varias veces la opción elegida … TADAAAAAAAAAAN !!!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/arrancando-desde-el-dispositivo-usb.jpg"
alt="arrancando desde el dispositivo usb">&lt;figcaption>
&lt;p>arrancando desde el dispositivo usb&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Listo para instalar Manjaro en este equipo.&lt;/p>
&lt;p>A lo mejor es más sencillo ir a la tienda de la esquina a comprar un CD que descargar Super Grub Disk, pero como tenía todo lo necesario a la mano me resultó más sencillo de esta forma.&lt;/p></description></item><item><title>Termina el soporte para Windows XP</title><link>https://linuxmanr4.com/2014/04/08/termina-el-soporte-para-windows-xp/</link><pubDate>Tue, 08 Apr 2014 18:28:32 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/08/termina-el-soporte-para-windows-xp/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/windows-xp.jpg"
alt="soporte para windows xp" width="1600">&lt;figcaption>
&lt;p>soporte para windows xp&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Windows XP nos acompañó por 12 años !!!, de hecho la compañía de Redmond tuvo que darle la eutanasia porque a la fecha sigue siendo muy utilizado. El propósito de terminar con el soporte es migrar a plataformas más recientes como Windows 8.&lt;/p>
&lt;p>A como lo veo existen 3 opciones:&lt;/p>
&lt;h2 id="seguir-usando-windows-xp">&lt;strong>Seguir usando Windows XP&lt;/strong>.
&lt;/h2>&lt;p>Después de todo si funciona ¿para qué cambiar?, aunque tarde o temprano será forzoso un cambio. Ya no se conseguirán los drivers, nuevos virus vendrán, nuevas vulnerabilidades (máaaaaaaaaas) ya no se parcharán y todo esto obligará a una actualización.&lt;/p>
&lt;h2 id="instalar-un-nuevo-windows">&lt;strong>Instalar un nuevo Windows&lt;/strong>.
&lt;/h2>&lt;p>Y con ello desechar el equipo que está usando XP, porque muy probablemente no tendrá la capacidad para ejecutar un Windows 8. Esa es la tirada de Microsoft, forzar una actualización para comenzar un nuevo circulo vicioso, un esquema que a Microsoft le ha funcionado muy bien durante todos estos años. Ventaja que le otorga ser uno de los sistemas operativos más utilizado, al menos en el escritorio (ya perdió en servidores y en plataformas móviles).&lt;/p>
&lt;h2 id="instalar-gnulinux">&lt;strong>Instalar GNU/Linux&lt;/strong>.
&lt;/h2>&lt;p>Y seguir con su mismo equipo, que todavía le puede brindar varios años de buen servicio. Instalar Linux no sólo le permite evitar el gasto de comprar un nuevo equipo, es mucho más seguro que otras plataformas y además instala el sistema operativo y una buena cantidad de aplicaciones útiles.&lt;/p>
&lt;p>En google plus hay &lt;a class="link" href="https://plus.google.com/108009231243004251711/posts/KBJ6fh6ywCR" target="_blank" rel="noopener"
>comentarios interesantes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con respecto al tema, algunos a favor, otros en contra.&lt;/p>
&lt;p>Mientras tanto, me da gusto poder celebrar este día recuperando una antigua portátil del olvido instalando &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Linux.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2014/04/Instalando-Manjaro-en-una-port%c3%a1til.jpg" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Instalando-Manjaro-en-una-port%c3%a1til.jpg"
loading="lazy"
alt="Instalando Manjaro en una portátil"
>&lt;/a>
&lt;/p>
&lt;p>Dejar las cosas como están, actualizar Windows, instalar Software Libre ¡Usted decide! :)&lt;/p></description></item><item><title>De GRUB, fsck y Mi Compu MX</title><link>https://linuxmanr4.com/2014/04/05/de-grub-fsck-y-mi-compu-mx/</link><pubDate>Sat, 05 Apr 2014 16:08:14 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/05/de-grub-fsck-y-mi-compu-mx/</guid><description>&lt;p>Ayer me llegó un mensaje a mi correo con respecto a algunos problemas relacionados con los equipos conocidos como &lt;strong>Mi Compu MX&lt;/strong>, mi consejo es que si pueden, lo mejor es que vayan al centro de soporte, sobre todo por el tema de la garantía.&lt;/p>
&lt;p>Otro detalle es que no poseo uno de estos equipos, pero sé que los amigos de &lt;a class="link" href="http://sistemasumma.com" target="_blank" rel="noopener"
>Sistemasumma&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
han aplicado algunas de mis sugerencias con buenos resultados.&lt;/p>
&lt;p>Hechas las aclaraciones pertinentes veamos la duda del buen amigo Luis:&lt;/p>
&lt;blockquote>
&lt;p>En sistesumma.com donde te agradecen por sugerir el método para arreglar el grub de micompumx y tengo el problema image loading failure. reload image desde hace semanas según yo la pude reparar consuper_grub_disk_hybrid-1.98s1 y yumi 2.0.0.1&lt;/p>&lt;/blockquote>
&lt;p>Hay varias formas de arreglar el &lt;strong>GRUB&lt;/strong>, aunque todavía no se porque se descompone, tengo la teoría de que es por una actualización mal realizada debido a que la distro que eligió la SEP no la considero la mejor, pero esa es otra historia.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.supergrubdisk.org/" target="_blank" rel="noopener"
>Super GRUB Disk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es una buena opción, pero puede ser un poco intimidante, a la fecha creo que lo mejor es usar &lt;strong>boot-repair&lt;/strong> tal y como lo menciono en este artículo: &lt;a class="link" href="https://linuxmanr4.com/2014/02/13/arreglando-grub-con-boot-repair/" >Arreglando GRUB con Boot-Repair&lt;/a>
&lt;/p>
&lt;p>Básicamente el proceso se resume en:&lt;/p>
&lt;ol>
&lt;li>Generar una memoria USB de arranque con la imagen de &lt;strong>boot-repair&lt;/strong> ,con el Yumi esta bien, o puedes usar un programa como el &lt;a class="link" href="https://linuxmanr4.com/2011/06/24/lili-linux-a-donde-vayas/" >Linux Live USB Creator&lt;/a>
.&lt;/li>
&lt;li>Arrancar el equipo con la memoria USB.&lt;/li>
&lt;li>Presionar el botón que dice &lt;strong>Recommended repair&lt;/strong> que arregla la mayoría de los problemas de &lt;strong>GRUB&lt;/strong> sin tanta complicación.&lt;/li>
&lt;/ol>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/boot-repair.png"
alt="boot-repair una herramienta para recuperar GRUB de manera automática">&lt;figcaption>
&lt;p>boot-repair una herramienta para recuperar GRUB de manera automática&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Incluso los amigos de Sistemasumma hicieron un video de la reparación.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/f2SGdZkVCp8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Pero al día siguiente me volvió a salir el mismo mensaje image loading failure. reload image he intente arrancar de nuevo el usb booteable pero me salió parte del siguiente mensaje &lt;strong>/run/rootdev: UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY&lt;/strong>. No estoy familiarizado con linux como hago la verificación manual? la terminal? como introducir comandos?????????&lt;/p>&lt;/blockquote>
&lt;p>Bueno aquí lo que me llama la atención es la partición &lt;strong>/run/rootdev&lt;/strong> que no estoy muy seguro a cual se refiere. Pero independientemente lo que te esta pidiendo es que revises la integridad de la partición.&lt;/p>
&lt;p>El comando &lt;strong>fsck&lt;/strong> es como el chkdsk de windows, pero para evitarnos los rollos de la terminal que pueden ser atemorizantes para los recién llegados a Linux te voy a recomendar que uses &lt;strong>GParted&lt;/strong>.&lt;/p>
&lt;p>Una versión de este programa esta incluida en &lt;strong>boot-repair&lt;/strong> así que no necesitas descargar otra cosa.&lt;/p>
&lt;ol>
&lt;li>Inicia &lt;strong>GParted&lt;/strong>&lt;/li>
&lt;li>Lo primero que hace el programa es identificar los discos duros y como están particionados.&lt;/li>
&lt;li>Elige una partición, con el botón derecho te debe de aparecer un menú contextual. Dale en clic en donde dice &lt;strong>Verificar&lt;/strong>&lt;/li>
&lt;li>Si gustas, puedes marcar todas las particiones para su verificación.&lt;/li>
&lt;li>Presiona el botón de aplicar (el que tiene la palomita).&lt;/li>
&lt;/ol>
&lt;p>Sólo ten mucho cuidado con este programa, con él puedes incluso borrar una partición y no queremos eso.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/Verificar-particiones-con-GParted.png"
alt="Verificar particiones con GParted">&lt;figcaption>
&lt;p>Verificar particiones con GParted&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esta forma se verificarán las particiones y se arreglarán los problemas si es que los tiene o si es posible arreglarlos.&lt;/p>
&lt;blockquote>
&lt;p>Restaure el sistema y como nueva, pero como introducir los comandos, además es posible instalar maple 12 en micompumx????? Saludos.&lt;/p>&lt;/blockquote>
&lt;p>Supongo que con los comandos, te refieres a la terminal. Si sigues estas recomendaciones no es necesario teclear ningún comando en la terminal.&lt;/p>
&lt;p>Con respecto a Maple veo que es un programa de matemáticas para windows. No se si exista una versión de este programa para linux, pero por lo que veo no. Podrías intentar instalarlo con un programa como wine, que permite instalar aplicaciones de windows en linux, pero no todos funcionan. &lt;a class="link" href="https://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=98" target="_blank" rel="noopener"
>Maple 12&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
no viene en la lista de aplicaciones probadas.&lt;/p>
&lt;p>Ahora que Linux no es ajeno a las aplicaciones de este tipo, existen programas como Octave, Smath Studio e incluso la página de Wolfram Alpha son muy útiles. Si quieres, puedes darle un vistazo a este artículo: &lt;a class="link" href="https://linuxmanr4.com/2014/03/15/calcular-el-determinante-de-una-matriz-usando-software-libre/" >Calcular el determinante de una matriz usando software libre&lt;/a>
.&lt;/p>
&lt;p>Lamentablemente no se cuales programas están disponibles en los repositorios de Mi Compu MX. Pero supongo que tu los puedes revisar.&lt;/p>
&lt;p>Espero que puedas arreglar los problemas que estas teniendo con tu equipo. Sólo no le instales Windows porque se puede anular la garantía.&lt;/p>
&lt;p>Saludos.&lt;/p></description></item><item><title>Desactivar la partición de swap</title><link>https://linuxmanr4.com/2014/04/03/desactivar-la-particion-de-swap/</link><pubDate>Thu, 03 Apr 2014 22:15:49 +0000</pubDate><guid>https://linuxmanr4.com/2014/04/03/desactivar-la-particion-de-swap/</guid><description>&lt;p>La semana pasada y a modo de experimento decidí desactivar la partición de &lt;a class="link" href="https://es.wikipedia.org/wiki/Espacio_de_intercambio" target="_blank" rel="noopener"
>swap&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o espacio de intercambio de mi instalación de Manjaro Linux.&lt;/p>
&lt;p>¿Con 8GB en RAM es realmente necesaria la partición de swap?, después de una semana de haber hecho el cambio les puedo decir que mi respuesta es un rotundo &lt;strong>NO&lt;/strong> o al menos así ha sido hasta el momento.&lt;/p>
&lt;p>Mi sistema se ha comportado exactamente igual que como si estuviera presente, aún en condiciones de uso intensivo tal y como pueden ver en la imagen en donde sólo me quedan 2 GB libres ¡Trabajando AL EXTREMO!!!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/swap-inactiva.png"
alt="swap inactiva - htop">&lt;figcaption>
&lt;p>swap inactiva - htop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="desde-la-terminal">Desde la terminal.
&lt;/h2>&lt;p>Si ustedes gustan pueden hacer una sencilla prueba. En una terminal tecleen lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo swapoff -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Eso desactivará temporalmente la partición de &lt;em>swap&lt;/em>, vean si tienen algún problema (en mi caso no tuve ninguno). Pero si por alguna razón creen que algo anda mal o les da &lt;em>cus cus&lt;/em> pueden reiniciar el equipo o teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo swapon -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso volverá a estar activa.&lt;/p>
&lt;h2 id="editando-el-archivo-fstab">Editando el archivo fstab.
&lt;/h2>&lt;p>Pero todos estos cambios son temporales, si desean algo más permanente, entonces hay que editar el archivo &lt;strong>/etc/fstab&lt;/strong> y comentar la línea que indica cual es la partición de &lt;em>swap&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/04/fstab-desactivar-swap.png"
alt="fstab desactivar swap">&lt;figcaption>
&lt;p>fstab desactivar swap&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recuerdo que este es sólo un experimento, pero demuestra algo muy interesante. Aquellos días en los que se recomendaba una partición &lt;em>swap&lt;/em> de un tamaño dos veces mayor a la memoria RAM instalada quedaron muy atrás.&lt;/p>
&lt;p>Actualmente con 8GB en RAM una partición de 2GB de &lt;em>swap&lt;/em> son más que suficientes y podría decirse que opcionales.&lt;/p>
&lt;p>Ahora ¿Porque hacerlo?, ¿Y porque no? de esta manera aprovecho más la memoria RAM que tengo instalada, porque amigos, la memoria esta para usarse, no para ahorrarla.&lt;/p></description></item><item><title>Navegador minimalista en Python</title><link>https://linuxmanr4.com/2014/03/22/navegador-minimalista-en-python/</link><pubDate>Sat, 22 Mar 2014 15:59:19 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/22/navegador-minimalista-en-python/</guid><description>&lt;p>Hace tiempo me dejaron esta pequeña muestra de este navegador minimalista desarrollado en &lt;a class="link" href="https://www.python.org/" target="_blank" rel="noopener"
>Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Con apenas 77 líneas de código se puede construir un navegador bastante decente tal y como lo pueden ver en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Un-navegador-muy-minimalista.png"
alt="Un navegador muy minimalista">&lt;figcaption>
&lt;p>Un navegador muy minimalista&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: utf-8 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Simple navegador web con PyQt 5.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyright 2018 Recursos Python - www.recursospython.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PyQt5.QtCore&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QUrl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PyQt5.QtWidgets&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QApplication&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">QHBoxLayout&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">QLineEdit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PyQt5.QtWidgets&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QMainWindow&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">QPushButton&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">QVBoxLayout&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PyQt5.QtWidgets&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QWidget&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PyQt5.QtWebEngineWidgets&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QWebEngineView&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Widgets&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">QMainWindow&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">QMainWindow&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setWindowTitle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Navegador Simple Python&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">widget&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Widget para el navegador&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QWebEngineView&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">load&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">QUrl&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;https://www.google.com.mx&amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urlChanged&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_changed&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Ir hacia atrás&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">back_button&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QPushButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">back_button&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">clicked&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">back&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Ir hacia adelante&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">forward_button&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QPushButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;gt;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">forward_button&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">clicked&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">forward&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Actualizar la página&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">refresh_button&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QPushButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Actualizar&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">refresh_button&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">clicked&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reload&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Barra de direcciones&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_text&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QLineEdit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Cargar la página actual&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">go_button&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QPushButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Ir&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">go_button&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">clicked&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_set&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QHBoxLayout&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">back_button&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">forward_button&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">refresh_button&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_text&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">go_button&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">layout&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QVBoxLayout&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">layout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addLayout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toplayout&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">layout&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">addWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">widget&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setLayout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">layout&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setCentralWidget&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">widget&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">url_changed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">url&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;Actualizar la barra de direcciones&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_text&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">toString&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">url_set&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;Acceder a un nuevo URL&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">webview&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setUrl&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">QUrl&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url_text&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="p">()))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">app&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QApplication&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">window&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Widgets&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">window&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">app&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exec_&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para ejecutarlo sólo tienen que guardar el código en un archivo con la extensión .py , por ejemplo &lt;strong>navegador.py&lt;/strong> y luego abrir una terminal y teclear algo parecido a esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">python ./navegador.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo!!!. Un especial agradecimiento a Diego Sarmentero por compartir este código. Puede ser muy útil como un navegador temporal, para hacer algunas pruebas, para curiosear su código y hacer sus propias modificaciones :)&lt;/p></description></item><item><title>Aumentar el tamaño de la partición root en IPCop 2</title><link>https://linuxmanr4.com/2014/03/20/aumentar-el-tamano-de-la-particion-root-en-ipcop-2/</link><pubDate>Thu, 20 Mar 2014 18:11:05 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/20/aumentar-el-tamano-de-la-particion-root-en-ipcop-2/</guid><description>&lt;p>Hace unos días un amigo me contactó porque tiene un problema con &lt;strong>IPCop 2&lt;/strong>. Al parecer se llena muy rápido su partición de &lt;em>root&lt;/em>, tratamos de identificar que programa era el que estaba llenando la partición, pero al final intentamos modificar el tamaño de la partición root para hacerla más grande.&lt;/p>
&lt;p>Por default IPCop asigna un tamaño de unos miserables 512 MB para la partición de root y el resto del disco duro para &lt;em>&lt;strong>/var/log&lt;/strong>&lt;/em> y otras cosas. Esta configuración por default debería de funcionar bien, pero parece que unos &lt;em>addons&lt;/em> utilizan la partición de root para guardar algunos datos y con tan poco espacio disponible la llenan con muy poco esfuerzo.&lt;/p>
&lt;p>Antes que nada les advierto que este es un procedimiento experimental, hice algunas pruebas con una maquina virtual porque mi instalación de IPCop con la versión 1.4 tiene años funcionando bien y no tengo una razón para cambiarlo o actualizarlo, pero algunos prefieren la versión 2 porque soporta hardware más moderno como discos o unidades de CD SATA (por decir lo menos). Hechas las aclaraciones pertinentes, si se hace con cuidado este método puede funcionar sin muchos problemas, aunque prefiero que lo hagan en instalaciones nuevas.&lt;/p>
&lt;h2 id="gparted-al-rescate">Gparted al rescate.
&lt;/h2>&lt;p>Para las pruebas usé una maquina virtual con un disco duro de 8 GB. Usé mi disco de &lt;a class="link" href="http://www.hiren.info/pages/bootcd" target="_blank" rel="noopener"
>Hirens BootCD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que incluye un live cd de una herramienta especializada llamada &lt;a class="link" href="http://partedmagic.com/" target="_blank" rel="noopener"
>Parted Magic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es básicamente &lt;a class="link" href="http://gparted.org/" target="_blank" rel="noopener"
>Gparted&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Así que prácticamente cualquier live CD que lo incluya se puede utilizar, como por ejemplo el CD de &lt;a class="link" href="https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/" >instalación de Ubuntu&lt;/a>
.&lt;/p>
&lt;p>Como pueden ver en la siguiente imagen, la partición de &lt;strong>root&lt;/strong> ocupa muy poco espacio y la partición &lt;strong>varlog&lt;/strong> ocupa el espacio restante.&lt;/p>
&lt;p>En un IPCop recién instalado la partición tiene un uso del 50%.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Espacio-libre-de-las-particiones-con-el-IPCop-2-reci%C3%A9n-instalado.png"
alt="Espacio libre de las particiones con el IPCop 2 recién instalado">&lt;figcaption>
&lt;p>Espacio libre de las particiones con el IPCop 2 recién instalado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esto es lo que muestra Gparted con el IPCop recién instalado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Informaci%C3%B3n-que-muestra-Gparted-con-IPCop-2-reci%C3%A9n-instalado.png"
alt="Información que muestra Gparted con IPCop 2 recién instalado">&lt;figcaption>
&lt;p>Información que muestra Gparted con IPCop 2 recién instalado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El objetivo es recorrer el inicio de la partición &lt;strong>varlog&lt;/strong> y por lo tanto reducir su tamaño.&lt;/p>
&lt;p>Una vez liberado ese espacio, podemos agrandar el tamaño de la partición &lt;strong>root&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Cambios-en-las-particiones.png"
alt="Cambios en las particiones">&lt;figcaption>
&lt;p>Cambios en las particiones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aplicamos los cambios y si todo salió bien, verán los cambios en la partición y que ahora tiene mucho más espacio disponible.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Aplicando-los-cambios-en-las-particiones.png"
alt="Aplicando los cambios en las particiones">&lt;figcaption>
&lt;p>Aplicando los cambios en las particiones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En mi experimento, después de aplicados los cambios no tuve problemas durante el arranque.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Primer-arranque-de-IPCop-despu%C3%A9s-de-los-cambios-en-las-particiones.png"
alt="Primer arranque de IPCop después de los cambios en las particiones">&lt;figcaption>
&lt;p>Primer arranque de IPCop después de los cambios en las particiones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora si, el espacio disponible en la partición de root es mucho mayor.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/Aumento-en-el-tama%C3%B1o-libre-disponible-en-la-partici%C3%B3n-de-root.png"
alt="Aumento en el tamaño libre disponible en la partición de root">&lt;figcaption>
&lt;p>Aumento en el tamaño libre disponible en la partición de root&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En una instalación real ¿Cuanto espacio le debo de asignar a la partición de root? con el tamaño de los discos duros actuales 8 o 16 GB no suena descabellado, creo que son más que suficientes para cualquier eventualidad que pudiera ocurrir.&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop, The bad packets stop here&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.hiren.info/pages/bootcd" target="_blank" rel="noopener"
>Hirens BootCD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://partedmagic.com/" target="_blank" rel="noopener"
>Parted Magic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://gparted.org/" target="_blank" rel="noopener"
>Gparted&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>swaplabel unsupported swap version '1' en Manjaro (o Arch)</title><link>https://linuxmanr4.com/2014/03/18/swaplabel-unsupported-swap-version-1-en-manjaro-o-arch/</link><pubDate>Tue, 18 Mar 2014 15:46:44 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/18/swaplabel-unsupported-swap-version-1-en-manjaro-o-arch/</guid><description>&lt;p>Si son un poco curiosos, verán este mensaje de error en GParted en la partición de &lt;em>swap&lt;/em> junto con una señal de advertencia en la partición.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">swaplabel:/dev/sdaX:unsupported swap version &amp;#39;1&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/advertencia-swaplabel-swap-version-1.png"
alt="advertencia swaplabel swap version 1">&lt;figcaption>
&lt;p>advertencia swaplabel swap version 1&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero no se preocupen, es un pequeño e inofensivo &lt;em>bug&lt;/em> precisamente de &lt;em>swaplabel&lt;/em>. Tan sencillo como un error en una &lt;a class="link" href="https://github.com/karelzak/util-linux/commit/fce72f96d0911a7578e27430e11b857bb1b0aecf" target="_blank" rel="noopener"
>condición if&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En estos momento esta siendo corregido y probablemente ya no aparecerá en la próxima actualización de &lt;strong>Arch&lt;/strong> y de &lt;strong>Manjaro&lt;/strong>.&lt;/p></description></item><item><title>Calcular el determinante de una matriz usando software libre</title><link>https://linuxmanr4.com/2014/03/15/calcular-el-determinante-de-una-matriz-usando-software-libre/</link><pubDate>Sat, 15 Mar 2014 16:45:46 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/15/calcular-el-determinante-de-una-matriz-usando-software-libre/</guid><description>&lt;p>Durante mi estancia en la universidad llevé la materia de &lt;a class="link" href="https://es.wikipedia.org/wiki/%C3%81lgebra_lineal" target="_blank" rel="noopener"
>álgebra lineal&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, les juro que salíamos viendo lucecitas después de calcular determinantes e inversas de matrices.&lt;/p>
&lt;p>En aquellos días una calculadora que hiciera estas operaciones era muy costoso, sólo los más adinerados llegaban con algunos modelos espectaculares de la marca CASIO o Texas Instruments.&lt;/p>
&lt;p>Pero ahora todo ha cambiado, afortunadamente hay excelentes herramientas libres para hacer este tipo de operaciones con poco esfuerzo.&lt;/p>
&lt;p>No voy a explicar como se calcula un determinante; sin embargo, al momento de estudiar puede ser de mucha ayuda revisar nuestros cálculos.&lt;/p>
&lt;p>Para este ejemplo voy a usar los datos de esta matriz.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/CodeCogsEqn.gif"
alt="matriz 3x3 de ejemplo">&lt;figcaption>
&lt;p>matriz 3x3 de ejemplo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="smath-studio">Smath Studio
&lt;/h2>&lt;p>Smath Studio es una herramienta totalmente gráfica, así que para ingresar los datos de la matriz sólo tengo que teclear &lt;strong>A=&lt;/strong> y después el menú &lt;strong>Insertar - Matriz&lt;/strong>. Especifico el tamaño de la matriz que es de 3x3 y luego voy rellenando los valores de cada casilla con los datos de ejemplo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/smath-studio-determinante.png"
alt="Calcular el determinante de una matriz 3x3 usando smath studio">&lt;figcaption>
&lt;p>Calcular el determinante de una matriz 3x3 usando smath studio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para calcular el determinante tecleo &lt;strong>det(A)=&lt;/strong> y smath studio se encarga de representarlo de manera adecuada y mostrar un resultado.&lt;/p>
&lt;h2 id="mirai-math">Mirai Math
&lt;/h2>&lt;p>Mirai Math es una interfaz gráfica de GNU Octave, en este caso es el cálculo es tal y como pueden ver en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/mirai-math-determinante-matrix.png"
alt="Calcular el determinante de una matriz 3x3 usando mirai math">&lt;figcaption>
&lt;p>Calcular el determinante de una matriz 3x3 usando mirai math&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="libreoffice-calc">LibreOffice Calc
&lt;/h2>&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/" >LibreOffice tiene una función&lt;/a>
para el cálculo de un determinante &lt;strong>MDETERM&lt;/strong> y se usa como cualquier función de una hoja de cálculo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/libre-office-determinante-matriz.png"
alt="Calcular el determinante de una matriz 3x3 usando libre office ">&lt;figcaption>
&lt;p>Calcular el determinante de una matriz 3x3 usando libre office&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="wolfram-alpha">Wolfram Alpha
&lt;/h2>&lt;p>Este ¿buscador? o lo que sea, no se si catalogarlo como herramienta libre, pero tiene una enorme cantidad de herramientas matemáticas al alcance de un navegador, incluso cuenta con un un &lt;a class="link" href="https://www.wolframalpha.com/widgets/gallery/view.jsp?id=f4bd67327fd01a153081ab6cf611a0e6" target="_blank" rel="noopener"
>widget para realizar operaciones con matrices&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/wolfram-alpha-determinante-de-una-matriz.png">
&lt;/figure>
&lt;p>Después de todos usar todas estas herramientas, ¿Alguien me puede decir el determinante de la matriz A del ejemplo?&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://smath.com/" target="_blank" rel="noopener"
>Smath Studio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://mirai.sourceforge.net/" target="_blank" rel="noopener"
>Mirai Math&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.gnu.org/software/octave/" target="_blank" rel="noopener"
>GNU Octave&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://es.libreoffice.org/" target="_blank" rel="noopener"
>Libre Office&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.wolframalpha.com/widgets/gallery/view.jsp?id=f4bd67327fd01a153081ab6cf611a0e6" target="_blank" rel="noopener"
>Wolfram Alpha: Determinante de una matriz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como instalar Windows a las Computadoras MX de la SEP</title><link>https://linuxmanr4.com/2014/03/14/como-instalar-windows-las-computadoras-mx-de-la-sep/</link><pubDate>Fri, 14 Mar 2014 16:53:08 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/14/como-instalar-windows-las-computadoras-mx-de-la-sep/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/madre-patria.png" alt="Featured image of post Como instalar Windows a las Computadoras MX de la SEP" />&lt;p>Antes de que lea como instalar Windows a las computadoras MX (Compu MX) que regaló la SEP, le recomiendo que lea esta artículo primero, sobre todo para evitar futuros problemas.&lt;/p>
&lt;p>El año pasado el gobierno de México entregó computadoras portátiles a los pequeños que cursaban el 5 y 6 año de primaria en algunos de los estados de la República Mexicana.&lt;/p>
&lt;p>Estos equipos se entregaron con una versión de Linux basada en Debian y muchos no están conformes con su rendimiento.&lt;/p>
&lt;p>Probablemente esta pensando en cambiarle el sistema operativo de estos equipos por algo que le sea más familiar, por ejemplo un &lt;strong>Windows 7&lt;/strong> o un &lt;strong>Windows XP&lt;/strong>, santo cielo, a lo mejor ha considerado hasta un &lt;strong>Windows 8&lt;/strong> !!!.&lt;/p>
&lt;p>El procedimiento es muy conocido. generar un USB de arranque del sistema operativo, borrar todas las particiones, instalar Windows, batallar un rato con los drivers, instalar Office y todos los programas que se requieran, la mayoría de ellos piratas o crackeados, instalar un antivirus, usarla por un tiempo y cuando este lenta porque esta totalmente plagada de virus y malware volverla a formatear.&lt;/p>
&lt;p>Antes de que decida ir por ese camino me voy a permitir recomendarle que &lt;strong>NO LO HAGA&lt;/strong>, no sólo pone en juego la garantía del equipo. El material didáctico que contiene sólo esta disponible para Linux.&lt;/p>
&lt;h2 id="la-garantía">La garantía.
&lt;/h2>&lt;p>Irónicamente los usuarios de Linux siempre hemos batallado por este tema, cuando compramos una portátil con Windows precargado muchas veces se anula la garantía al instalarle Linux, más o menos ocurre lo mismo con las computadoras MX al instalarle Windows.&lt;/p>
&lt;p>Leyendo sobre el tema me encontré &lt;a class="link" href="http://sistemasumma.com/2013/11/27/contrasena-de-soporte-para-computadoras-mx/" target="_blank" rel="noopener"
>este comentario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que reproduzco a continuación:&lt;/p>
&lt;blockquote>
&lt;p>Publico en general. Los equipos .mx cuentan con software Linux en una versión especial para la SEP.&lt;/p>
&lt;p>los equipos fueron cargados com mas de 60 gigas de contenidos educativos que NO están disponibles para Windows.&lt;/p>
&lt;p>la idea de usar Linux es incentivar en los niños habilidades de investigación y orientación tecnológica diferente.&lt;/p>
&lt;p>. &lt;strong>No se recomienda cambiar el sistema operativo del los equipos&lt;/strong>.&lt;/p>
&lt;p>el usuario soporte en los equipos NO cuenta con privilegios de administración&lt;/p>
&lt;p>el SO instalado corre a 64 bits y por lo que si no se actualiza adecuadamente no funcionará.&lt;/p>
&lt;p>si se desea instalar algún software, esta debe estar en el repositorio del sistema operativo o de la SEP, si no es así no se podrá instalar.&lt;/p>
&lt;p>los equipos si son de uso familiar, por eso existe el usuario familia, sin embargo cuenta con protección contra contenidos inadecuados (drogas, violencia, sexo etc. En un CONTEXTO Dañino.&lt;/p>
&lt;p>si el equipo no funciona correctamente&amp;hellip;&lt;/p>&lt;/blockquote>
&lt;p>En resumen, la advertencia es más que clara:&lt;/p>
&lt;p>Sólo los centros de servicio autorizados pueden reparar el equipo sin perder garantía. Los centros de servicio autorizados esta supervisados por la SEP. Y únicamente cobran refacciones y mano de obra cuando el equipo ha sido dañado físicamente. Si usted carga un S.O. Windows y esta falla, el centro de servicio le reinstalara Linux y sus contenidos educativos pero no dará soporte a Windows.&lt;/p>
&lt;p>O si lo prefiere, puede consultar la Póliza de garantía de estos equipos en el sitio de la SEP.&lt;/p>
&lt;h2 id="ayuda-y-soporte-técnico">Ayuda y soporte técnico.
&lt;/h2>&lt;p>Pues bien, algo le paso a su equipo, ¿Qué puede hacer?&lt;/p>
&lt;ul>
&lt;li>Puede llamar al teléfono &lt;strong>01 800 2000 842&lt;/strong> de Lunes a Viernes de 8am a 8 pm, sábados y domingos de 10 am a 3pm.&lt;/li>
&lt;li>También puede abrir esta página Mesa de ayuda y recibir ayuda en línea de un asesor.&lt;/li>
&lt;li>O si le queda cerca, también puede acudir a los Centros de soporte técnico. La lista completa de los Centros de Soporte para los estados de Colima, Sonora y Tabasco la puede consultar en la página de la SEP ¿Cómo puedo encontrar el Centro de Servicio Autorizado de mi entidad?.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/numero-de-serie-de-los-equipos.png"
alt="Número de serie de los equipos">&lt;figcaption>
&lt;p>Número de serie de los equipos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recomiendo que revisen la página, porque al parecer, dependiendo del número de serie del equipo le toca uno u otro centro de servicio.&lt;/p>
&lt;h2 id="cuando-la-ciencia-se-acaba">Cuando la ciencia se acaba.
&lt;/h2>&lt;p>Puede sonar a regaño, pero a veces los papás son más manotas que los niños, dudo mucho que un pequeñin que acaba de recibir su equipo este considerando cambiarle el sistema operativo. Luego cuando tienen problemas con la computadora, que porque no arranca, que el GRUB, que le aparece una contraseña, que no puede navegar en &amp;ldquo;esos&amp;rdquo; sitios, si &amp;ldquo;esos&amp;rdquo; que sólo pueden ver las mamás y los papás&amp;hellip; y cuando se les acaba la ciencia y ya no saben que hacer, ¡pum paz! a instalarle windows. ¿Han considerado que estos equipos tienen un sistema antirrobo?, vamos que es buscarle 3 pies al gato.&lt;/p>
&lt;p>Incluso no recomiendo ni actualizar el sistema, al parecer hay un bug que provoca &lt;a class="link" href="https://linuxmanr4.com/2008/03/14/problema-con-grub-falta-ntldr/" >problemas en el arranque con el GRUB&lt;/a>
, pero esto no sería posible sin la contraseña de soporte, que para empezar los niños no deberían de conocer y que es solamente para operaciones de .. si adivinaron, de soporte técnico. Así que papás sin experiencia en linux, por favor no actualicen, ¿Para que meterse en camisa de 11 varas?.&lt;/p>
&lt;p>Se que muy probablemente el contenido de este artículo no es lo que estaba buscando, Pero al menos ahora ya sabe a que atenerse si le cambia el sistema operativo a estos equipos. Además, instalar windows es requete fácil ¿o no?.&lt;/p>
&lt;h3 id="enlaces-de-interés">Enlaces de interés.
&lt;/h3>&lt;ul>
&lt;li>Preguntas frecuentes sobre las Computadoras MX&lt;/li>
&lt;/ul></description></item><item><title>"Shockwave flash has crashed" frecuentes en Chromium - Manjaro Linux</title><link>https://linuxmanr4.com/2014/03/10/shockwave-flash-has-crashed-frecuentes-en-chromium-manjaro-linux/</link><pubDate>Mon, 10 Mar 2014 16:46:27 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/10/shockwave-flash-has-crashed-frecuentes-en-chromium-manjaro-linux/</guid><description>&lt;p>No me había tomado el tiempo suficiente para revisar este bug, no tengo problemas para cargar las páginas que tienen contenido &lt;strong>Flash&lt;/strong>, pero después de un rato y de manera aleatoria puedo ver el mensaje:&lt;/p>
&lt;blockquote>
&lt;p>Shockwave flash has crashed&lt;/p>&lt;/blockquote>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/shockwave-crash.png"
alt="shockwave crash">&lt;figcaption>
&lt;p>shockwave crash&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No hay vuelta de hoja, este mensaje me obliga a cerrar la pestaña de &lt;em>Chromium&lt;/em> para volver a cargar el contenido y pueda funcionar.&lt;/p>
&lt;p>En &lt;em>Youtube&lt;/em> tengo otro problema diferente, por ejemplo la reproducción en video desaparece en la pantalla, se que sigue funcionando porque el sonido continua pero sólo muestra un cuadro negro en el lugar donde debe de mostrar el video. Temporalmente solucioné este comportamiento arrastrando la pestaña para hacerla una ventana independiente, con eso vuelve a aparecer el video.&lt;/p>
&lt;p>No es complicado encontrar el culpable, el sospechoso principal es el plugin de Flash de Adobe y algún conflictillo con Chrome, porque con Firefox no he tenido problemas.&lt;/p>
&lt;p>Para aislar el comportamiento decidí quitar el plugin de Adobe e instalar el plugin integrado que trae Chromium para contenido flash.&lt;/p>
&lt;h2 id="adiós-adobe-flash">Adiós Adobe Flash.
&lt;/h2>&lt;p>En Manjaro es muy sencillo quitar el paquete encargado del plugin de Adobe, sólo es necesario teclear.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -R flashplugin
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y con eso se eliminará del sistema.&lt;/p>
&lt;h2 id="bienvenido-pepper-flash">Bienvenido Pepper Flash
&lt;/h2>&lt;p>Pepper es el reproductor integrado de Flash para Chrome y existe un paquete en AUR para instalarlo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S chromium-pepper-flash
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo, basta con reiniciar Chromium para que los cambios surtan efecto. Espero que con esto se arreglen los problemas que he tenido con &lt;strong>Shockwave&lt;/strong> y sus &lt;em>”crashes”&lt;/em> frecuentes, pero como desinstalé el plugin de Adobe, ahora no puedo reproducir contenido Flash en Firefox, pero bastará con reinstalarlo para que vuelva a funcionar.&lt;/p>
&lt;p>Para revisar si aparece el plugin se puede abrir la página &lt;strong>chrome://plugins/&lt;/strong> , no se porque me aparece un “Adobe” aunque la versión es diferente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/plugins-de-chromium.png"
alt="plugins de chromium">&lt;figcaption>
&lt;p>plugins de chromium&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conviviendo-juntos">Conviviendo juntos.
&lt;/h2>&lt;p>Al final me di cuenta de que si necesito el paquete &lt;strong>flashplugin&lt;/strong> en Firefox, pero para evitar malos entendidos le voy a indicar a &lt;strong>Chromium&lt;/strong> que utilice &lt;strong>Pepper&lt;/strong>, para eso abro la página de &lt;strong>chrome://plugins/&lt;/strong> y le doy clic en la parte superior derecha en donde está el símbolo de (+) detalles.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/adobe-flash-player-en-chromium-2-files.png"
alt="adobe flash player y pepper en chromium 2 files">&lt;figcaption>
&lt;p>adobe flash player y pepper en chromium 2 files&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y sólo dejo habilitado &lt;strong>Pepper&lt;/strong> y &lt;strong>deshabilito&lt;/strong> Adobe.&lt;/p>
&lt;p>Espero que con esto se acaben los problemas.&lt;/p>
&lt;h3 id="para-saber-más">Para saber más.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/chromium" target="_blank" rel="noopener"
>Wiki Arch Chromium&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Función que devuelve sólo los números de una celda en LibreOffice</title><link>https://linuxmanr4.com/2014/03/05/funcion-solo-numeros-libreoffice/</link><pubDate>Wed, 05 Mar 2014 15:10:15 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/05/funcion-solo-numeros-libreoffice/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/pexels-photo-1314546.jpeg" alt="Featured image of post Función que devuelve sólo los números de una celda en LibreOffice" />&lt;p>Elastix tiene una opción llamada &lt;em>address book&lt;/em> en donde puedes buscar, agregar contactos y con sólo presionar un botón se puede marcar el teléfono directamente. Básicamente hace una conferencia, porque marca tu extensión y también el número telefónico de tu contacto.&lt;br>
Me pasaron una hoja de cálculo con más de 400 contactos, para importar tal cantidad de datos es necesario un archivo &lt;em>.csv&lt;/em> con al menos 3 campos, nombre, apellidos y claro el número telefónico.&lt;/p>
&lt;p>El problema es que el campo con el número telefónico estaba muy “contaminado”, demasiadas letras de más que probablemente el conmutador no iba a entender. Además necesitaba saber que números telefónicos eran válidos por su longitud. Por ejemplo un número local consta de 7 dígitos, pero una larga distancia nacional es de 12. Eso me ayudaría a detectar visualmente algunos problemas con los números.&lt;/p>
&lt;p>Pero para lograrlo necesitaba una función que extrajera solo los números, sin guiones, sin paréntesis, sin anotaciones.&lt;/p>
&lt;p>Afortunadamente, encontré una función que hace algo muy similar en &lt;a class="link" href="https://forum.openoffice.org/en/forum/viewtopic.php?f=9&amp;amp;t=39163" target="_blank" rel="noopener"
>Extract a number from a text string&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, sólo que esta función también regresa algunos símbolos como el punto o signos de operación, afortunadamente es muy fácil de ajustar modificando la línea.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Numbers_And_Signs = &amp;#34;0123456789 .+-*/&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con esto en mente hice mi propia función que sólo extrae números.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Function Only_Numbers(Text_From_Cell as string) as string
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Numbers_And_Signs = &amp;#34;0123456789&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">n = len(Text_From_Cell)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Only_Numbers = &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">For i = 1 to n
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ActChar = Mid(Text_From_Cell,i,1)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">if Instr(Numbers_And_Signs,ActChar)&amp;amp;lt;&amp;amp;gt;0 then Only_Numbers = Only_Numbers + ActChar
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">next i
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">end function
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="ejemplos-de-la-función-only_numbers">Ejemplos de la función only_numbers
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/funci%C3%B3n-only_numbers.png"
alt="Ejemplos de la función only\_numbers \| función solo numeros libreoffice">&lt;figcaption>
&lt;p>Ejemplos de la función only_numbers | función solo numeros libreoffice&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, la función hace un barrido del contenido de la celda que recibe la función, busca y filtra lo que ustedes quieran en la cadena &lt;strong>Numbers_And_Signs&lt;/strong>, no sólo es útil para extraer números, de hecho les puede servir para filtrar cualquier conjunto de letras, números o símbolos que deseen.&lt;/p>
&lt;p>Si no saben como agregar una función les recomiendo que lean &lt;a class="link" href="https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/" title="Articulo: Función para convertir de número a cantidad con letra en LibreOffice Calc"
>Función para convertir de número a cantidad con letra en LibreOffice Calc&lt;/a>
. En ese artículo se explica muy bien como agregar una función en &lt;strong>LibreOffice&lt;/strong>.&lt;/p></description></item><item><title>Descargar, ver y subtitular películas en un tris tras con PopcornTime</title><link>https://linuxmanr4.com/2014/03/01/descargar-ver-y-subtitular-peliculas-en-un-tris-tras-con-popcorn-time/</link><pubDate>Sat, 01 Mar 2014 17:08:55 +0000</pubDate><guid>https://linuxmanr4.com/2014/03/01/descargar-ver-y-subtitular-peliculas-en-un-tris-tras-con-popcorn-time/</guid><description>&lt;p>Apenas me entero de este proyecto y corro a instalarlo, &lt;a class="link" href="http://getpopcornti.me/" target="_blank" rel="noopener"
>Popcorn Time&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un programa que simplifica mucho la tarea de descargar, visualizar y subtitular películas.&lt;/p>
&lt;p>Ahorita mismo estoy haciendo algunas pruebas desde mi &lt;strong>Manjaro Linux&lt;/strong> y pinta bastante bien. El paquete que descargué incluye un archivo .run que es el que carga la interfaz del programa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/popcorntime.png"
alt="popcorn time">&lt;figcaption>
&lt;p>popcorn time&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con sólo hacer clic en la imagen de la película inicia todo el proceso de descarga por bittorrent, muestra la película en la pantalla y da la opción de mostrar los subtitulo en dos idiomas Inglés y Español. Casi casi una &lt;strong>Netflix&lt;/strong> &lt;em>experience&lt;/em> pero que si funciona en Linux.&lt;/p>
&lt;p>De una vez les advierto, la calidad de las películas es excelente, pero eso quiere decir que requiere una buena cantidad de ancho de banda, si no lo tienen puede ser un poco frustrante.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/03/popcorntime-funciona.png"
alt="popcorn time funciona">&lt;figcaption>
&lt;p>popcorn time funciona&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Las películas están catalogadas por categorías, pero no cuenta con una opción de búsqueda, así que los títulos que ven es lo que hay.&lt;/p>
&lt;p>Si &lt;strong>Popcorn Time&lt;/strong> se anima a incluir series de televisión le auguro un buen futuro, claro hasta que a alguien no le guste y suelten a los abogados.&lt;/p>
&lt;p>Nota aparte, &amp;ldquo;Pochoclin&amp;rdquo; la mascota del proyecto esta &lt;em>super cute&lt;/em> !!! :)&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://getpopcornti.me/" target="_blank" rel="noopener"
>Descargar Popcorn Time&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="adiós-popcorn-time">Adiós Popcorn Time
&lt;/h2>&lt;p>Era demasiado bueno y para su mala fortuna este incipiente proyecto llamó demasiado la atención en muy poco tiempo. Los creadores han escrito una sentida carta de despedida que me he tomado la libertad de conservar&amp;hellip;&lt;/p>
&lt;h2 id="adiós">Adiós
&lt;/h2>&lt;p>Empezamos Popcorn Time como un desafío a nosotros mismos. Ese es nuestro lema. Es nuestro motor.&lt;/p>
&lt;p>Estamos increíblemente orgullosos de este proyecto. Es nuestro mayor logro hasta ahora. Y formamos un equipo espectacular en el proceso, con gente con quien amamos trabajar. Y para ser sinceros, todos tenemos un nudo en el estómago. Amamos a Pochoclín y a todo lo que representa, y de alguna manera sentimos que estamos defraudando a nuestros geniales colaboradores. Estamos sorprendidos de todo lo que puede lograr la comunidad open-source.&lt;/p>
&lt;p>Somos startup geeks. Siempre lo fuimos y siempre lo vamos a ser. Leemos Techcrunch, Reddit y Hacker News. Salimos en la portada de Hacker News &lt;strong>dos veces&lt;/strong>. Al mismo tiempo. Escribieron sobre nosotros en Time Magazine, Fast Company, TechCrunch, TUAW, Ars Technica, Washington Post, Huffington Post, Yahoo Finance, Gizmodo, PC Magazine y Torrent Freak, sólo por nombrar algunos. Incluso tuvimos nuestro momento radial y televisivo, y esto ni siquiera incluye la cantidad de entrevistas que tuvimos que rechazar por el nivel de atención que recibimos.
Y no nos estaban reprimiendo. Nos estaban alentando. Nos convertimos en quienes lucharían por el consumidor. Algunas de las personas que más respetamos, nuestros ídolos hablaron maravillas de Popcorn Time, y eso solo ya es mucho más de que lo que esperábamos de este experimento que armamos en un par de semanas.&lt;/p>
&lt;p>Como proyecto, Popcorn Time es legal. Lo verificamos. &lt;strong>Cuatro veces&lt;/strong>.&lt;/p>
&lt;p>Pero como muchos sabrán, pocas veces alcanza con eso. Por nuestro impacto tuvimos acceso a mucha gente, desde periodistas hasta creadores de sitios y apps de gran alcance. Aprendimos muchísimo de ellos, especialmente que enfrentarse a una industria tan tradicional y tratar de revolucionar un mercado tan grande tiene sus costos asociados. Costos que ninguna persona merece pagar.&lt;/p>
&lt;p>¿Saben que es lo mejor de Popcorn Time? Muchísima gente expresó al unísono que la industria de las peliculas tiene demasiadas restricciones ridículas en demasiados mercados. En Argentina, los proveedores de servicios de streaming creen que “Loco por Mary” es una película reciente. Esa película es tan vieja que podría votar acá.
La mayoría de nuestros usuarios no son de USA. Son del resto del mundo. Popcorn Time fue instalado en todos los países de la Tierra. Incluso los dos que no tienen acceso a internet.&lt;/p>
&lt;p>La piratería no es un problema de gente. Es un problema de servicio. Un problema creado por una industria que pinta a la innovación como una amenaza a su anticuada receta comercial. A todos les parece que directamente no les importa resolverlo.&lt;/p>
&lt;p>Pero a la gente sí.&lt;/p>
&lt;p>Demostramos que la gente va a arriesgarse a recibir multas, juicios y cualquier otra consecuencia para poder ver una película reciente en pantuflas. Sólo para obtener el tipo de experiencia que merecen.&lt;/p>
&lt;p>Y tal vez, que cobrar una pequeña cuota mensual para ver cualquier película que quieras es un poco mejor que eso.&lt;/p>
&lt;p>Popcorn Time va a cerrar hoy. No porque hayamos perdido la energía, dedicación, el foco o nuestros aliados. Sino porque necesitamos seguir con nuestras vidas.
Nuestro experimento nos puso a las puertas de los interminables debates de piratería y copyright, amenazas legales y la maquinaria oscura que nos hace sentir amenazados por hacer lo que amamos. Y esa no es una batalla en la que queramos estar.&lt;/p>
&lt;p>Un beso,
Pochoclín.&lt;/p></description></item><item><title>Ruidos y chasquidos en el conmutador Elastix.</title><link>https://linuxmanr4.com/2014/02/25/ruidos-y-chasquidos-en-el-conmutador-elastix/</link><pubDate>Tue, 25 Feb 2014 22:31:19 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/25/ruidos-y-chasquidos-en-el-conmutador-elastix/</guid><description>&lt;p>Me voy a permitir contarles una historia muy interesante que me pasó con mi conmutador Elastix.&lt;/p>
&lt;p>De un día para otro y sin previo aviso empezó a escucharse una serie de &lt;strong>ruidos&lt;/strong> y &lt;strong>chasquidos&lt;/strong> en las líneas telefónicas del conmutador que tengo con &lt;strong>Elastix&lt;/strong>. Lo curioso es que solamente pasaba en las llamadas al exterior, porque las llamadas entre extensiones se escuchaba perfectamente.&lt;/p>
&lt;p>Para comprobar que era un problema con las líneas telefónicas las desconecté del conmutador y comencé a probarlas una por una llamando a las otras líneas y efectivamente, seguía escuchando los mismos ruidos, chasquidos y voz intermitente.&lt;/p>
&lt;p>El problema era tal que ni siquiera me daba la oportunidad de reportarlo al servicio de atención a clientes de &lt;a class="link" href="https://www.axtelcorp.mx/" target="_blank" rel="noopener"
>Axtel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, tuve que levantar mi reporte vía correo electrónico.&lt;/p>
&lt;p>Una vez que llegó el técnico de Axtel hizo unas pruebas y por arte de magia ¡El problema desapareció! (que casualidad), no tuve más remedio que firmar la hojita y ponerle un sello de SI TRABAJA.&lt;/p>
&lt;p>Pero por increíble que parezca el problema seguía ahí, en menor o mayor grado seguían apareciendo esos extraños ruidos a los que cariñosamente bauticé como “haciendo palomitas”.&lt;/p>
&lt;p>Después de realizar varias pruebas y cambiar las tarjetas &lt;a class="link" href="http://www.openvox.cn/" target="_blank" rel="noopener"
>Openvox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(afortunadamente tengo varias de repuesto) pude aislar el problema a una sola línea telefónica, que para mi mala fortuna era muy utilizada por el conmutador.&lt;/p>
&lt;p>Llegué a esta conclusión después de ejecutar el comando &lt;strong>fxotune&lt;/strong> que tiene la función de ajustar ciertos valores de la tarjeta para cancelar el eco.&lt;/p>
&lt;p>No era mi intención directamente cancelar el eco, de hecho el conmutador había funcionado perfectamente durante mucho tiempo, este comando solo me ayudó a “escuchar” mejor lo que estaba pasando en las líneas telefónicas.&lt;/p>
&lt;p>Durante mi búsqueda de una solución mencionaron algo de sobre colocar un microfiltro, afortunadamente tenía uno a la mano, es un microfiltro de esos que colocan en los módem de Infinitum ¡y funcionó!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/microfiltro.jpg"
alt="El microfiltro">&lt;figcaption>
&lt;p>El microfiltro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="antes-del-microfiltro">Antes del microfiltro.
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[root@elastix ~]# cat /etc/fxotune.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4=5,1,248,252,4,253,1,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">5=0,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">6=0,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">7=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>¿Notaron los valores que me arroja la troncal número 4?, son totalmente distintos a los demás.&lt;/p>
&lt;h2 id="después-de-colocar-el-microfiltro">Después de colocar el microfiltro.
&lt;/h2>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[root@elastix ~]# cat /etc/fxotune.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">4=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">5=0,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">6=0,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">7=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8=4,0,0,0,0,0,0,0,0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para evitarme problemas futuros decidí colocar un microfiltro en cada una de las troncales, y con eso fue más que suficiente. No se han vuelto a presentar esos ruidos molestos en las llamadas.&lt;/p>
&lt;p>Si quieren saber más sobre &lt;strong>fxotune&lt;/strong> les recomiendo mucho este artículo &lt;a class="link" href="https://web.archive.org/web/20141029113135/http://asteriskmx.com:80/como-eliminar-el-eco-en-llamadas-instalando-oslec-y-usando-fxotune/" target="_blank" rel="noopener"
>Como eliminar el eco en llamadas: instalando OSLEC y usando fxotune&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Bueno??? Bueeeenooo??? Obama, ¿Eres tú? uuuu que la.&lt;/p></description></item><item><title>Rsync y Parallel, copias de archivos realmente intensas</title><link>https://linuxmanr4.com/2014/02/20/rsync-parallel-bash/</link><pubDate>Thu, 20 Feb 2014 20:21:37 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/20/rsync-parallel-bash/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/rsync-parallel.png" alt="Featured image of post Rsync y Parallel, copias de archivos realmente intensas" />&lt;p>El otro día pasó a mejor vida un disco duro externo en el que generalmente hago mis respaldos automáticos. Mientras que consigo otro decidí hacer las copias en una carpeta privada en la computadora que funciona como &lt;a class="link" href="https://linuxmanr4.com/2013/10/01/nas-freenas-nas4free-openmediavault/" >NAS&lt;/a>
.&lt;/p>
&lt;p>La cantidad de datos es importante, estoy hablando de unos cientos de gigabytes y la primer copia puede durar varias horas.&lt;/p>
&lt;h2 id="rsync-y-parallel">Rsync y Parallel
&lt;/h2>&lt;p>Buscando en internet me topé con este script llamado &lt;strong>rsync_parallel&lt;/strong> que me resultó muy interesante.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="nb">set&lt;/span> -e
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Uso:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># rsp.sh [--parallel=N] [opciones de rsync]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Options:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># --parallel=N Utiliza N procesos paralelos para transferir los archivos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El valor por defualt es de 10.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Notas:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># * Requiere GNU Parallel&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># * Utilizar este script con ssh-keys = Un montón de solicitudes de contraseña.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># * Primero hace una lista de los archivos que han cambiado, luego parte esta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lista en N pedazos y le encarga a rsync la copia de cada uno de esos pedazos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># * Hay que tener cuidado con las con las opciones que pasan a través de rsync.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># las normales va a funcionar, es posible que desee probar opciones extrañas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># por adelantado.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Gracias a rcoup por este script https://gist.github.com/rcoup/5358786&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">==&lt;/span> --parallel&lt;span class="o">=&lt;/span>* &lt;span class="o">]]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">PARALLEL&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">1&lt;/span>&lt;span class="p">##*=&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">PARALLEL&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Utilizando &lt;/span>&lt;span class="nv">$PARALLEL&lt;/span>&lt;span class="s2"> procesos para la transferencia de archivos...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">TMPDIR&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>mktemp -d&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">trap&lt;/span> &lt;span class="s2">&amp;#34;rm -rf &lt;/span>&lt;span class="nv">$TMPDIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> EXIT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Calculando la lista de archivos...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sorted by size (descending)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rsync &lt;span class="nv">$@&lt;/span> --out-format&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;%l %n&amp;#34;&lt;/span> --no-v --dry-run &lt;span class="p">|&lt;/span> sort -n -r &amp;gt; &lt;span class="nv">$TMPDIR&lt;/span>/files.all
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># check for nothing-to-do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">TOTAL_FILES&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>cat &lt;span class="nv">$TMPDIR&lt;/span>/files.all &lt;span class="p">|&lt;/span> wc -l&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$TOTAL_FILES&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -eq &lt;span class="s2">&amp;#34;0&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Nada que transferir :)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">exit&lt;/span> &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">function&lt;/span> array_min &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># return the (index, value) of the minimum element in the array&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">IC&lt;/span>&lt;span class="o">=(&lt;/span>&lt;span class="k">$(&lt;/span>tr &lt;span class="s1">&amp;#39; &amp;#39;&lt;/span> &lt;span class="s1">&amp;#39;\n&amp;#39;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&amp;lt;&lt;/span>&lt;span class="nv">$@&lt;/span> &lt;span class="p">|&lt;/span> cat -n &lt;span class="p">|&lt;/span> sort -k2,2nr &lt;span class="p">|&lt;/span> tail -n1&lt;span class="k">)&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="k">$((&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">IC&lt;/span>&lt;span class="p">[0]&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="k">))&lt;/span> &lt;span class="si">${&lt;/span>&lt;span class="nv">IC&lt;/span>&lt;span class="p">[1]&lt;/span>&lt;span class="si">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Generando los pedazos...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># declare chunk-size array&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="o">((&lt;/span>&lt;span class="nv">I&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0&lt;/span> &lt;span class="p">;&lt;/span> I &amp;lt; PARALLEL &lt;span class="p">;&lt;/span> I++ &lt;span class="o">))&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> CHUNKS&lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$I&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">]=&lt;/span>&lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># add each file to the emptiest chunk, so they&amp;#39;re as balanced by size as possible&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="nb">read&lt;/span> FSIZE FPATH&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">MIN&lt;/span>&lt;span class="o">=(&lt;/span>&lt;span class="k">$(&lt;/span>array_min &lt;span class="si">${&lt;/span>&lt;span class="nv">CHUNKS&lt;/span>&lt;span class="p">[@]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> CHUNKS&lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">MIN&lt;/span>&lt;span class="p">[0]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">]=&lt;/span>&lt;span class="k">$((&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">CHUNKS&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">MIN&lt;/span>&lt;span class="p">[0]&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nv">$FSIZE&lt;/span>&lt;span class="k">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="nv">$FPATH&lt;/span> &amp;gt;&amp;gt; &lt;span class="nv">$TMPDIR&lt;/span>/chunk.&lt;span class="si">${&lt;/span>&lt;span class="nv">MIN&lt;/span>&lt;span class="p">[0]&lt;/span>&lt;span class="si">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span> &amp;lt; &lt;span class="nv">$TMPDIR&lt;/span>/files.all
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">find &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$TMPDIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -type f -name &lt;span class="s2">&amp;#34;chunk.*&amp;#34;&lt;/span> -printf &lt;span class="s2">&amp;#34;\n*** %p ***\n&amp;#34;&lt;/span> -exec cat &lt;span class="o">{}&lt;/span> &lt;span class="se">\;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Iniciando la transferencia de archivos...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">find &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$TMPDIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -type f -name &lt;span class="s2">&amp;#34;chunk.*&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> parallel -j &lt;span class="nv">$PARALLEL&lt;/span> -t --verbose --progress rsync --files-from&lt;span class="o">={}&lt;/span> &lt;span class="nv">$@&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="divide-y-vencerás">Divide y vencerás
&lt;/h2>&lt;p>Tiene un enfoque muy interesante, primero obtiene una lista completa de los archivos que se van a copiar y luego divide esa lista en varios archivos de una forma equilibrada.&lt;/p>
&lt;p>El total de archivos corresponde al número de procesos concurrentes que queremos trabajar, por default es 10 pero se puede cambiar con un parámetro.&lt;/p>
&lt;p>Una vez que tenemos nuestras listas el programa &lt;strong>parallel&lt;/strong> inicia la copia de los archivos con &lt;strong>rsync&lt;/strong> y le entrega una lista de los archivos a cada proceso que se ejecuta simultaneamente.&lt;/p>
&lt;h2 id="el-problema-es-el-ancho-de-banda">El problema es el ancho de banda.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/tr%C3%A1fico-por-hora.png"
alt="Gráfica del tráfico por hora">&lt;figcaption>
&lt;p>Gráfica del tráfico por hora&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El problema es que ahora tengo 10 procesos peleándose el ancho de banda, que lamentablemente es poco en mi caso. Supongo que una copia con una buena velocidad o de un disco duro a otro la copia de archivos volaría.&lt;/p>
&lt;p>También pueden notar que el equipo se puede comportar un poco lento, eso depende de los recursos de su computadora. Eso se debe al uso intensivo del disco duro durante la copia de los archivos.&lt;/p>
&lt;p>El uso de &lt;strong>parallel&lt;/strong> es interesante, actualmente estoy jugando con el número de procesos a ejecutar. Si utilizo pocos, más o menos sería lo mismo que ejecutar un &lt;strong>rsync&lt;/strong> simple. Si uso muchos, los pedazos serán más pequeños, pero el uso del disco será mayor.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/copiando-ando%5Flinuxmanr4.png"
alt="copiando ando \| rsync parallel">&lt;figcaption>
&lt;p>copiando ando | rsync parallel&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les paso el dato por si algún día se les ofrece hacer una copia masiva de archivos.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.gnu.org/software/parallel/" title="Página oficial de GNU Parallel"
target="_blank" rel="noopener"
>GNU Parallel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://gist.github.com/rcoup/5358786" title="script de rcoup hospedado en GitHub"
target="_blank" rel="noopener"
>rsync_parallel by rcoup&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Manjaro fussion, Iconos mentolados para distros ecologistas.</title><link>https://linuxmanr4.com/2014/02/18/manjaro-fussion-iconos-mentolados-para-distros-ecologistas/</link><pubDate>Tue, 18 Feb 2014 19:53:11 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/18/manjaro-fussion-iconos-mentolados-para-distros-ecologistas/</guid><description>&lt;p>El buen amigo de S.E. Durán tuvo la genial idea de hacer un remix de los iconos Moka y Faenza.&lt;/p>
&lt;p>El resultado es el que puedes ver en la captura de pantalla. Iconos de color verde mentolado que van bien con Manjaro, openSuse, Mint o con cualquier tema de escritorio green ecologista.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/iconos-manjaro-fussion.png"
alt="iconos manjaro fussion">&lt;figcaption>
&lt;p>iconos manjaro fussion&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El tutorial completo lo pueden leer en su blog &lt;a class="link" href="https://elrincondeloslinuxeros.wordpress.com/2014/02/18/manjaro-fussion/" target="_blank" rel="noopener"
>Manjaro fussion. un nuevo set de iconos para Manjaro Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Este juego de iconos no lo van a encontrar en ninguna otra parte ¡Aproveche y descarguelo Ya!&lt;/p>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Olvídese de descargarlo, si dispone de una distro basada en Arch como &lt;strong>Manjaro&lt;/strong> ya lo puede instalar desde &lt;strong>AUR&lt;/strong> con el comando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S manjaro-fussion-icon-theme
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y listo !! :)&lt;/p></description></item><item><title>Facturas electrónicas falsas</title><link>https://linuxmanr4.com/2014/02/14/facturas-electronicas-falsas/</link><pubDate>Fri, 14 Feb 2014 17:54:37 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/14/facturas-electronicas-falsas/</guid><description>&lt;p>Tengan cuidado, porque todo parece indicar que los maleantes están aprovechando el envío de facturas electrónicas para hacer de las suyas.&lt;/p>
&lt;p>Hoy me reportaron un correo electrónico sospechoso y como pueden ver en la imagen, los enlaces no coinciden. Dice que te esta esperando una factura en el sitio de e-facturasaas&lt;/p>
\[punto\]&lt;p>com pero en realidad el enlace te lleva a otro sitio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/facturas-electronicas-falsas.png"
alt="facturas electronicas falsas">&lt;figcaption>
&lt;p>facturas electronicas falsas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En estos momentos estoy dudando hasta del sitio &amp;ldquo;legítimo&amp;rdquo;, si van al sitio de e-facturasaas pueden ver que el diseño levanta sospechas, es descuidado, rudimentario, pero lo que encendió los focos rojos es una imagen en la que dice tener un número de &lt;a class="link" href="https://www.sat.gob.mx/portal/public/tramites/lista-de-proveedores-autorizados-de-certificacion-de-cfdi" target="_blank" rel="noopener"
>PAC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y al revisarlo está registrado a nombre de otra empresa.&lt;/p>
&lt;p>Lo más preocupante es que el correo electrónico muestra un RFC válido y correcto, además de que fue enviado a una dirección electrónica tal que puede caer en la trampa. De algún lado obtuvieron esta información y la están aprovechando.&lt;/p>
&lt;p>Tengan mucho cuidado, de preferencia usen &lt;a class="link" href="http://www.google.com/intl/es-419/mail/help/about.html" target="_blank" rel="noopener"
>Gmail&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://www.thunderbird.net/es-MX/" target="_blank" rel="noopener"
>Thunderbird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como clientes de correo, ya que ambos detectan este tipo de engaños.&lt;/p></description></item><item><title>Arreglando GRUB con Boot-Repair</title><link>https://linuxmanr4.com/2014/02/13/arreglando-grub-con-boot-repair/</link><pubDate>Thu, 13 Feb 2014 19:18:35 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/13/arreglando-grub-con-boot-repair/</guid><description>&lt;p>Para ser sincero, hace ya mucho tiempo que no tengo problemas con GRUB el gestor de arraque de Linux.&lt;/p>
&lt;p>Creo que la última vez que tuve un problema fue como hace dos años y lo arreglé iniciando mi equipo con &lt;strong>Super Grub Disk&lt;/strong> para luego reinstalarlo en el &lt;strong>MBR&lt;/strong> de mi disco duro. (por favor véan &lt;a class="link" href="https://linuxmanr4.com/2010/02/16/como-recuperar-grub2-despues-de-instalar-windows" title="Una guía sobre como recuperar Grub2"
>Como recuperar grub2 después de instalar windows&lt;/a>
).&lt;/p>
&lt;p>Una amiga que tengo en Google Plus me pidío ayuda para arreglar su GRUB. Típico, su windows tuvo problemas y aplicó la primera ley de Microsoft, reinstalar, pero con ello perdió el gestor de arraque.&lt;/p>
&lt;p>Después de intentar varias cosas surgió el tema de &lt;a class="link" href="http://sourceforge.net/p/boot-repair-cd/home/Home/" title="Sitio oficial de boot-repair en SourceForge"
target="_blank" rel="noopener"
>Boot-repair&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y me dice que este programita se encargó de todo. Sólo tuvo que instalarlo en una &lt;a class="link" href="https://linuxmanr4.com/2015/04/20/revisar-una-unidad-usb-con-fat32-en-linux/" >unidad USB&lt;/a>
, arrancar su computadora con ella, presionar un botón y eso fue todo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/boot-repair.png"
alt="boot-repair una herramienta para recuperar GRUB de manera automática">&lt;figcaption>
&lt;p>boot-repair una herramienta para recuperar GRUB de manera automática&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Arreglar GRUB puede ser un serio reto para los principiantes. Recientemente lo veo en el caso de los equipos que regaló el Gobierno a los alumnos de primaria, la famosa &lt;strong>Computadora MX&lt;/strong>.&lt;/p>
&lt;p>Le instalan windows, luego se dan cuenta de que el contenido multimedia sólo funciona en linux, la quieren recuperar y hacen un des…astre. Si tienen curiosidad pueden leer los comentarios en &lt;a class="link" href="http://sistemasumma.com/2014/02/01/restaurar-el-grub-en-computadoras-mx/" title="Restaurar Grub en "
target="_blank" rel="noopener"
>Restaurar el Grub en computadoras MX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En lo personal me parece un poco exagerado descargar más de 500 megas para arreglar un GRUB, pero es el precio que hay que pagar por la simplicidad de la herramienta.&lt;/p>
&lt;h1 id="enlaces">Enlaces
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="http://sourceforge.net/p/boot-repair-cd/home/Home/" title="Sitio oficial de boot-repair en SourceForge"
target="_blank" rel="noopener"
>Boot-repair en SourceForge&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://help.ubuntu.com/community/Boot-Repair" target="_blank" rel="noopener"
>Boot-repair - Ubuntu Documentation&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Regresar paquetes a su versión anterior en Manjaro (downgrade).</title><link>https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/</link><pubDate>Tue, 11 Feb 2014 21:37:49 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/telegrafo-y-telefono-antiguos.jpg" alt="Featured image of post Regresar paquetes a su versión anterior en Manjaro (downgrade)." />&lt;p>Es raro, pero a veces una actualización puede traer problemas. Tengo configurado un respaldo automático con &lt;strong>deja-dup&lt;/strong> y hoy en la mañana al hacer el respaldo incremental de cada día me apareció este mensaje de error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Traceback (most recent call last):
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 1493, in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">with_tempdir(main)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 1487, in with_tempdir
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">fn()
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 1336, in main
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">do_backup(action)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 1457, in do_backup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">full_backup(col_stats)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 564, in full_backup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">print_statistics(diffdir.stats, bytes_written)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">File &amp;#34;/usr/bin/duplicity&amp;#34;, line 594, in print_statistics
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">print diffdir.stats.get_stats_logstring(_(&amp;#34;Backup Statistics&amp;#34;))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">UnicodeEncodeError: &amp;#39;ascii&amp;#39; codec can&amp;#39;t encode character u&amp;#39;\xed&amp;#39; in position 21: ordinal not in range(128)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="va-patras">Va pa’tras
&lt;/h2>&lt;p>Pude rastrear el error hasta el paquete &lt;strong>duplicity&lt;/strong>. Todo parece indicar que el paquete que se instaló ayer durante la actualización de Manjaro tiene este molesto bug según pude leer en &lt;a class="link" href="https://www.mail-archive.com/desktop-packages@lists.launchpad.net/msg287922.html" target="_blank" rel="noopener"
>\[Desktop-packages\] \[Bug 1276327\] \[NEW\] deja-dup/duplicity fails gpg encrypted backup in trusty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Si estaba trabajando bien, entonces la solución es regresar el paquete a una versión anterior &lt;em>(downgrade)&lt;/em> y listo.&lt;/p>
&lt;p>Leyendo un poco me enteré del programa &lt;strong>downgrade&lt;/strong> disponible en AUR que simplifica mucho la tarea de desactualizar un paquete.&lt;/p>
&lt;p>Para instalarlo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S downgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La forma de uso es muy sencilla:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo downgrade [nombre del paquete]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En mi caso, queria regresar el paquete &lt;strong>duplicity&lt;/strong> y así lo hice.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo downgrade duplicity
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Entonces me aparece un listado de las versiones disponible, la que dice &lt;strong>local&lt;/strong> es porque la tengo en el caché de paquetes (carpeta &lt;em>/var/cache/pacman/pkg/&lt;/em> ) y las que dicen &lt;strong>remote&lt;/strong> están disponibles para su descarga.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">Available&lt;/span> &lt;span class="nx">packages&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.23&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">local&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.23&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">remote&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.23&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">remote&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">4&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.23&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">remote&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">5&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.22&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">remote&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="mi">6&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nx">duplicity&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.6.21&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nx">x86_64&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">pkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">tar&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">xz&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">remote&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">select&lt;/span> &lt;span class="nx">a&lt;/span> &lt;span class="kn">package&lt;/span> &lt;span class="nx">by&lt;/span> &lt;span class="nx">number&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Decidí utilizar la versión inmediata anterior, o sea la versión 0.6.22-1 y está funcionando perfectamente.&lt;/p>
&lt;p>En la próxima actualización del sistema estaré al pendiente, si el &lt;strong>bug&lt;/strong> todavía persiste o si nuevamente tengo que regresarlo a una versión anterior.&lt;/p></description></item><item><title>Problemas con la firma de los paquetes en Manjaro</title><link>https://linuxmanr4.com/2014/02/11/problemas-con-la-firma-de-los-paquetes-en-manjaro/</link><pubDate>Tue, 11 Feb 2014 14:53:44 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/11/problemas-con-la-firma-de-los-paquetes-en-manjaro/</guid><description>&lt;p>Ayer tuve un problema curioso, al intentar actualizar mi instalación de Manjaro Cinnamon me marcó un error en un paquete de Python, específicamente en el paquete &lt;strong>python2-lockfile&lt;/strong>.&lt;/p>
&lt;p>En un principio creí que el paquete se había descargado mal (no sería la primera vez) así que borré manualmente todos los archivos que comenzaban con &lt;strong>python2&lt;/strong> y los descargué nuevamente con la actualización.&lt;/p>
&lt;p>Esto no resolvió mi problema, la actualización insistía en marcarme un &lt;strong>error con la integridad de los paquetes&lt;/strong> y mencionaba un &lt;strong>problema con las firmas&lt;/strong>.&lt;/p>
&lt;p>Lamento no tener a la mano el error, estaba tan concentrado tratando de arreglarlo que no tuve la precaución de copiarlo.&lt;/p>
&lt;p>La solución es muy simple, solo tuve que recargar las firmas de los paquetes con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-key --refresh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/pacman-key-refresh.jpg"
alt="el comando sudo pacman-key --refresh en acción">&lt;figcaption>
&lt;p>el comando sudo pacman-key &amp;ndash;refresh en acción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez que este comando terminó su trabajo, la actualización se completó sin problemas.&lt;/p>
&lt;p>Les paso el dato por si alguna vez llegan a presentar un problema similar.&lt;/p></description></item><item><title>Teléfono LG Optimus L7 (LG P708g)</title><link>https://linuxmanr4.com/2014/02/04/telefono-lg-optimus-l7-lg-p708g/</link><pubDate>Tue, 04 Feb 2014 19:42:13 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/04/telefono-lg-optimus-l7-lg-p708g/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/c%C3%A1mara-de-8-mega-pixeles-lg-p708g.jpg" alt="Featured image of post Teléfono LG Optimus L7 (LG P708g)" />&lt;p>En esta ocasión les voy a escribir sobre el teléfono de la marca &lt;strong>LG&lt;/strong> conocido como el &lt;strong>Optimus L7&lt;/strong> o como el &lt;strong>LG P708g&lt;/strong>. Mi chaparrita lo consiguió como parte de un plan de Telcel y al terminar el plazo me lo pasó, ella se compró un teléfono excelente de la marca &lt;strong>Blu&lt;/strong> del que planeo escribir próximamente.&lt;/p>
&lt;p>Ya tengo un par de meses con este teléfono, lo he batallado, sufrido, liberado y mejorado en este tiempo. Después de todo esto creo que ya esta listo para un uso tal que a mi me gusta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/c%C3%A1mara-de-8-mega-pixeles-lg-p708g.jpg"
alt="cámara de 8 mega pixeles lg p708g">&lt;figcaption>
&lt;p>cámara de 8 mega pixeles lg p708g&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se trata de un teléfono con Android 4 de buenas prestaciones, lamentablemente la queja general de este modelo es que se alenta. A veces esta rápido y otras veces no se pueden ni mostrar las notificaciones, elegir un programa del menú o cambiar de pantalla le supone un gran esfuerzo, algo que definitivamente no es normal. Y eso que estas tareas son las sencillas, elegir una foto de la galería puede demorar desesperantes minutos.&lt;/p>
&lt;p>Intenté con administradores de batería para mejorar su desempeño. Estos programas tienen la bondad de detener los programas que consumen muchos recursos y aparentemente funciona, pero sólo por un tiempo, así que pude deducir que el problema principal de este teléfono es el software y tengo que decirlo son los programas de &lt;strong>Telcel&lt;/strong> los principales sospechosos.&lt;/p>
&lt;p>No entiendo porque &lt;strong>Telcel&lt;/strong> insiste en contaminar los teléfonos que distribuye con sus programas. En lo personal no los uso porque mi tarjeta SIM es de Unefon, pero siendo sincero, aún cuando usaba teléfonos de Telcel no usaba sus programas. El principal problema es que no se pueden desinstalar porque son parte del &lt;em>firmware&lt;/em> del teléfono.&lt;/p>
&lt;p>Intenté &lt;strong>Desactivar&lt;/strong> la mayoría de estas aplicaciones, pero aún así no logré mejorar el pobre desempeño del teléfono. Mi teléfono anterior (un &lt;strong>Samsung Galaxy Ace&lt;/strong>) tiene una mejor experiencia de usuario que el L7.&lt;/p>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20150112181740/http://www.lg.com:80/mx/celulares/lg-P708" target="_blank" rel="noopener"
>&lt;strong>Sitio oficial de LG: Características del LG Optimus L7&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Otro detalle es el botón de inicio, con el tiempo tiende a quedarse sumergido, aunque he aprendido a presionarlo de una forma especial para que esto no suceda.&lt;/p>
&lt;h2 id="digan-kimchi">¡Digan Kimchi!
&lt;/h2>&lt;p>El punto fuerte de este teléfono es ,sin dudarlo mucho, la cámara de 8 mega píxeles. Las fotografías que toma son excelentes, considero que por arriba del promedio considerando que se trata de la cámara de un teléfono celular, los colores son nítidos, vivos, la cámara tiene una buena cantidad de características y opciones de disparo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/Amanecer-Lagunero.jpg"
alt="Foto tomada con la cámara del LG P708g sin más retoque que el marco.">&lt;figcaption>
&lt;p>Foto tomada con la cámara del LG P708g sin más retoque que el marco.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="liberación">Liberación
&lt;/h2>&lt;p>Como comentaba anteriormente mi tarjeta SIM es de Unefon, así que una de mis primeras tareas con este teléfono fue liberarlo para que aceptara cualquier compañía telefónica.&lt;/p>
&lt;p>Primero intenté con los amigos de &lt;strong>GSM Liberty&lt;/strong>, pero por alguna extraña razón me dijeron que no era posible o al menos que ellos no podían liberar teléfonos de México que usan el carrier &lt;strong>Telcel&lt;/strong>. Afortunadamente no son la única opción y buscando un poco en Internet encontré a los amigos de &lt;a class="link" href="http://cellunlocker.net" target="_blank" rel="noopener"
>CellUnlocker.net&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que por unos pocos dolares me ofrecieron el servicio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/Liberaci%C3%B3n-del-tel%C3%A9fono-ahora-con-Unefon.jpg"
alt="Liberación del teléfono, ahora con Unefon">&lt;figcaption>
&lt;p>Liberación del teléfono, ahora con Unefon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Liberar este teléfono es muy sencillo, sólo tengo que enviar algunos datos de mi teléfono y ellos me mandan por correo las instrucciones para liberarlo. Básicamente es marcar un menú oculto, el teléfono me pregunta una clave, la tecleo con mucho cuidado (son 10 oportunidades) y eso es todo, cuando le puse el chip de Unefon no hubo ningún problema adicional y pude hacer y recibir llamadas.&lt;/p>
&lt;h3 id="liberación-por-parte-de-telcel">Liberación por parte de Telcel
&lt;/h3>&lt;p>Con las nuevas reformas de telecomunicaciones todas las compañías de telefonía celular están obligadas a vender aparatos desbloqueados, es decir, que se puedan usar con cualquier compañía.&lt;/p>
&lt;p>Para eso Telcel tiene una página de &lt;a class="link" href="https://web.archive.org/web/20151119035241/http://www.telcel.com:80/portal/equipos/desbloqueo.do?" title="Telcel: Desbloqueo de equipos"
target="_blank" rel="noopener"
>Desbloqueo de equipos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
gratuito, sin embargo, dice que no es posible hacerlo en este modelo de teléfono algo que es &lt;strong>TOTALMENTE FALSO&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/mensaje-de-telcel-sobre-el-desbloqueo-del-L7.png"
alt="mensaje de telcel sobre el desbloqueo del L7">&lt;figcaption>
&lt;p>mensaje de telcel sobre el desbloqueo del L7&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La realidad es que el desbloqueo es muy sencillo !!!.&lt;/p>
&lt;h2 id="cambio-de-firmware">Cambio de firmware
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/versi%C3%B3n-del-software-lg-p708g.jpg"
alt="versión del software lg p708g">&lt;figcaption>
&lt;p>versión del software lg p708g&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El cambio de firmware no fue sencillo. Leí muchos sitios sobre el tema. Algunos ofrecían un firmware adecuado pero con el problema de que dejaría de funcionar la cámara de 8 mega píxeles. Parece que hay una versión de &lt;strong>Cyanogenmod&lt;/strong> que funciona, pero para ser sincero, todavía no me queda muy claro el proceso de instalación.&lt;/p>
&lt;p>Se que algunas veces el fabricante ofrece un ROM internacional que funcionan en la mayoría de los teléfonos, pero al parecer el ROM del p708g es solamente para México y Telcel así que no hay otras opciones, al menos no directamente del fabricante.&lt;/p>
&lt;p>Descubrí este ROM en El foro de Homero: ROM V20a_01-26-APR-2013-rom-mod-y-hack que a mi parecer es la mejor opción. Se trata del mismo ROM del teléfono pero sin los programas de Telcel y amigos, déjenme decirles que el cambio es abismal. Aunque su fluidez deja mucho de ser óptima al menos ahora ya es utilizable.&lt;/p>
&lt;p>Les advierto, seguir el tutorial del amigo &lt;strong>j0shyc0re&lt;/strong> no es sencillo, tuve que improvisar mucho sobre la marcha. Algunos programas me detenían de manera inesperada, otras veces tuve que bajar algunos programas del sitio oficial de LG. Lo que me funcionó fue omitir el último paso y en lugar de presionar el botón &lt;strong>Normal web upgrade test&lt;/strong> le di clic en donde dice &lt;strong>Start Upgrade&lt;/strong> que es una transferencia directa del ROM al teléfono. Mi corazón dio un vuelco cuando vi la pantalla del teléfono en un color amarillo brillante con el texto &lt;strong>Emergency mode&lt;/strong>, luego el suspenso, el programa me decía que estaba haciendo algo, pero no es muy claro que digamos. Después de unos 5 minutos el teléfono reinició y mi ritmo cardíaco volvió a la calma.&lt;/p>
&lt;p>Este ROM no es perfecto, por ejemplo, algunas aplicaciones que incluye no arrancan como &lt;strong>WhatsApp+&lt;/strong>, &lt;strong>ROM Manager&lt;/strong> o &lt;strong>Root Brower&lt;/strong>. El problema con WhatsApp no he intentado solucionarlo porque ahora utilizo &lt;strong>Telegram&lt;/strong> que es de código abierto y gratuito. Pero los beneficios superan a los problemas, al fin puedo usar este teléfono sin esas enormes pauuuuuusaaaas entre clics.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>El LG L7 no es un teléfono por el que gastaría mi dinero. Pero si usted ya lo tiene, no lo tire, vale la pena todo el trabajo adicional para hacerlo funcionar.&lt;/p>
&lt;p>Mi consejo es que mire usted en otro lado, probablemente con la marca Samsung o con una nueva marca de teléfonos que he visto solamente en Coppel de la marca Blu, ellos ofrecen buenos teléfonos con dos o hasta cuatro núcleos a un precio realmente tentador. El LG L7 va a hacer que se sienta defraudado por el dinero que pagó por él.&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20160404195544/http://www.lg.com:80/mx/soporte-celular/lg-LGP708G" target="_blank" rel="noopener"
>LG P708g Manuales, Drivers, PCS Suite&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://cellunlocker.net" target="_blank" rel="noopener"
>Liberación con CellUnlocker.net&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>AppletFIEL.jar Missing required permissions manifest</title><link>https://linuxmanr4.com/2014/02/01/appletfiel-jar-missing-required-permissions-manifest/</link><pubDate>Sat, 01 Feb 2014 15:40:47 +0000</pubDate><guid>https://linuxmanr4.com/2014/02/01/appletfiel-jar-missing-required-permissions-manifest/</guid><description>&lt;p>Un usuario me reportó hoy en la mañana un problema al intentar abrir el sitio de &lt;a class="link" href="https://www.ventanillaunica.gob.mx/vucem/index.htm" target="_blank" rel="noopener"
>Ventanilla Única&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En el espacio donde se teclea el nombre de usuario y contraseña marca un error como este:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/SecurityException.png"
alt="Missing required permissions manifest attribute in main jar AppletFIEL.jar">&lt;figcaption>
&lt;p>Missing required permissions manifest attribute in main jar AppletFIEL.jar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>“Missing required permissions manifest attribute in main jar AppletFIEL.jar”&lt;/p>&lt;/blockquote>
&lt;p>Siendo sincero, no soy fan de Java y mucho menos de sus aplicaciones en el gobierno de México, no son consientes de los temas de seguridad que implica tener estos programas en Java, pero en fin.&lt;/p>
&lt;p>Este problema aparece en las nuevas actualizaciones de Java, en el momento de escribir este artículo es la &lt;strong>Version 7 Update 51&lt;/strong>.&lt;/p>
&lt;p>Afortunadamente es sencillo solucionarlo, hay que ir al panel de control, buscar &lt;strong>El panel de configuración de Java&lt;/strong> y agregar la dirección &lt;strong>&lt;a class="link" href="https://www.ventanillaunica.gob.mx/" target="_blank" rel="noopener"
>https://www.ventanillaunica.gob.mx/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> (incluyendo https://) como una &lt;strong>Excepción de seguridad&lt;/strong> presionando el botón &lt;strong>Editar lista de sitios…&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/Lista-de-excepciones-de-sitios.png"
alt="Lista de excepciones de sitios">&lt;figcaption>
&lt;p>Lista de excepciones de sitios&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este problema se presenta por la nuevas políticas de seguridad en la nueva versión de Java así que puede ocurrir en cualquier otro sitio, no sólo en la Ventanilla Única, les paso el dato para que lo tomen en cuenta.&lt;/p>
&lt;h2 id="también-el-servicio-de-administración-tributaria">También el Servicio de Administración Tributaria
&lt;/h2>&lt;p>Conforme las personas vayan actualizando a la última versión de Java, este tipo de problemas va a ser más frecuente.&lt;/p>
&lt;p>Un amigo en facebook me comenta que también el &lt;a class="link" href="https://linuxmanr4.com/2022/04/21/obtener-la-constancia-de-situacion-fiscal-usando-la-aplicacion-sat-id/" >SAT&lt;/a>
esta presentando el mismo problema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/02/Servicios-SAT.png"
alt="Servicios SAT">&lt;figcaption>
&lt;p>Servicios SAT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Así que si desean agregar el sitio:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.servicios.sat.gob.mx/" target="_blank" rel="noopener"
>https://www.servicios.sat.gob.mx/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Como otra excepción no estaría de más.&lt;/p>
&lt;h2 id="comunicado-de-oracle-sobre-el-tema">Comunicado de Oracle sobre el tema.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20200925045933/https://www.java.com/en/download/help/java_blocked.xml" target="_blank" rel="noopener"
>Why are Java applications blocked by your security settings with the latest Java?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Manjaro Netbook Edition</title><link>https://linuxmanr4.com/2014/01/29/manjaro-netbook-edition/</link><pubDate>Wed, 29 Jan 2014 22:11:33 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/29/manjaro-netbook-edition/</guid><description>&lt;p>Hace unos días el blog oficial anunció una variante especializada de Manjaro para netbooks. Descargué e instalé la versión &lt;strong>0.8.9rc1&lt;/strong> pero justo cuando iba a reportar los problemas que tenía me entero que acaban de anunciar la siguiente versión &lt;a class="link" href="https://web.archive.org/web/20170518053913/https://manjaro.org/2014/01/28/2nd-release-candidate-of-manjaro-netbook-0-8-9-available/" target="_blank" rel="noopener"
>2ND RELEASE CANDIDATE OF MANJARO NETBOOK 0.8.9 AVAILABLE!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Instalando-manjaro-netbook-edition-0.8.9-rc2.jpg"
alt="Instalando manjaro netbook edition 0.8.9 rc2">&lt;figcaption>
&lt;p>Instalando manjaro netbook edition 0.8.9 rc2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pues volví a descargar y reinstalé el sistema con esta nueva versión y ¡Vaya que hubo cambios!, los problemas que tuve desaparecieron.&lt;/p>
&lt;p>Es la primera vez que instalo Manjaro con el instalador gráfico (THUS) sin problemas, realmente el instalador se ha pulido bastante y es muy rápido.&lt;/p>
&lt;p>Con la RC1 tuve algunos problemas con dependencias, pero ahora pude instalar &lt;strong>Firefox&lt;/strong> y actualizar el sistema sin problemas, agregué algunos paquetes de idiomas e instalé &lt;strong>Synapse&lt;/strong> como un lanzador de paquetes adicional, la distro pinta realmente bien.&lt;/p>
&lt;h2 id="desempeño-gráfico">Desempeño gráfico.
&lt;/h2>&lt;p>La pregunta del millón ¿Y los videos?. Hice una prueba con Youtube y el desempeño es más que aceptable en la pequeña &lt;strong>Acer One ZG5&lt;/strong> que tengo para hacer las pruebas.&lt;/p>
&lt;p>Reproduce bien a 360p a pantalla completa pero por razones de ancho de banda el video siempre me cambia a 144p que es una calidad menor, espero poder tomar una mejor foto, mientras tanto:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/videos-de-youtube-a-pantalla-completa.jpg"
alt="videos de youtube a pantalla completa">&lt;figcaption>
&lt;p>videos de youtube a pantalla completa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Además incluye una versión optimizada de mplayer (instalen el paquete &lt;strong>mplayer-netbook&lt;/strong>), se que no podrá reproducir un video en Full HD pero el desepeño que tiene actualmente es más que satisfactorio considerando las prestaciones del equipo.&lt;/p>
&lt;p>Voy a esperar a que se libere una versión final para probar con mi &lt;strong>Acer One ao751h&lt;/strong> y su siempre dificultosa tarjeta gráfica &lt;strong>GMA500&lt;/strong>, actualmente dice que la soporta, pero prefiero esperar un poco.&lt;/p>
&lt;p>Si están interesados en descargarla lo pueden hacer en el sitio de Sourceforge &lt;a class="link" href="https://sourceforge.net/projects/manjarotest/files/0.8.9/rc2/netbook/" target="_blank" rel="noopener"
>Manjaro Testbuilds Netbook Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Si tienen una netbook esta versión de Manjaro se debe de tomar en cuenta.&lt;/p></description></item><item><title>Haciendo la limpieza en Linux con Bleachbit</title><link>https://linuxmanr4.com/2014/01/24/haciendo-la-limpieza-en-linux-con-bleachbit/</link><pubDate>Fri, 24 Jan 2014 22:28:08 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/24/haciendo-la-limpieza-en-linux-con-bleachbit/</guid><description>&lt;p>El otro día comentaba sobre CCleaner y un compañero en Google Plus me recomendó &lt;a class="link" href="https://www.bleachbit.org/download" target="_blank" rel="noopener"
>BleachBit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero para Linux.&lt;/p>
&lt;p>De primera impresión pueden parecer similares, pero noooooo, claro que no, sobre todo porque en Windows hay muchas cosas más que reparar. Por ejemplo, aparte de borrar archivos innecesarios, CCleaner también busca y repara errores en esa maravilla llamada &lt;strong>El Registro&lt;/strong>, ayuda a desinstalar programas y administra lo que se carga durante el arranque.&lt;/p>
&lt;p>Muchas de estas tareas no aplican en Linux, así que &lt;strong>Bleachbit&lt;/strong> se encarga solo de hacer lo que tiene que hacer, &lt;strong>ahorrar espacio en el disco duro&lt;/strong> borrando u optimizando aquellos archivos que no son tan necesarios.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/bleachbit.jpg"
alt="bleachbit">&lt;figcaption>
&lt;p>bleachbit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver sus acciones están separadas por categorías, tengan cuidado al aplicarlo, porque si eliminan algo que no querían borrar no veo forma de poder recuperarlo. Por ejemplo si le seleccionan eliminar las contraseñas que están almacenadas en &lt;strong>Chromium&lt;/strong> ya no las volverán a ver así que tengan cuidado.&lt;/p>
&lt;h2 id="linux-sin-manchas">Linux sin manchas
&lt;/h2>&lt;p>En linux no es tan necesario “limpiar” estos archivos, siendo honestos, rara vez mi equipo se alenta tanto como para necesitar hacer una limpieza.&lt;/p>
&lt;p>Sin embargo puede ser útil tenerlo a la mano cuando se requiere un poco de espacio extra. Me ha llegado a pasar un par de veces que estoy de lo más tranquilo trabajando cuando mi sistema cuando ya no me permite guardar el archivo en el que estoy trabajando. Reviso y ¡Zas! tengo el disco duro al 100%, con &lt;strong>Bleachbit&lt;/strong> hago espacio, guardo mi archivo y luego reviso que esta pasando.&lt;/p>
&lt;p>También puede ser útil en mudanzas o respaldos. Por precaución respaldo mi carpeta &lt;strong>home&lt;/strong> de usuario, ¿Para que llevarte archivos que no vas a necesitar y que solo &lt;a class="link" href="https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/" >ocupan espacio&lt;/a>
?&lt;/p>
&lt;p>Adicionalmente, incluye un &lt;strong>triturador&lt;/strong> de archivos y carpetas para eliminar aquellos &lt;em>”secretillos”&lt;/em> para que sean irrecuperables.&lt;/p>
&lt;p>Incluso para aquellos fanáticos de la limpieza, &lt;strong>Bleachbit&lt;/strong> se puede ejecutar en la terminal, se puede programar limpiezas periódicas o durante el arranque del sistema.&lt;/p>
&lt;p>¡Paren el teclado! , justo cuando escribo esto me entero que también hay una versión para Windows !!!.&lt;/p>
&lt;p>Para los que usamos &lt;strong>Manjaro&lt;/strong> basta con instalarlo desde &lt;strong>pamac&lt;/strong> o desde la terminal&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S bleachbit
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Solo recuerden, que el blanqueador es bueno, pero en cantidades moderadas 🙂&lt;/p>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.bleachbit.org/" target="_blank" rel="noopener"
>BleachBit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Códigos para Elastix (Shortcodes)</title><link>https://linuxmanr4.com/2014/01/22/codigos-para-elastix-shortcodes/</link><pubDate>Wed, 22 Jan 2014 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/22/codigos-para-elastix-shortcodes/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/codigos-para-elastix-no-molestar.jpg" alt="Featured image of post Códigos para Elastix (Shortcodes)" />&lt;p>Hace mucho que no escribo sobre Elastix (ahora &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
), será porque no da muchos problemas que digamos.&lt;/p>
&lt;p>Es un conmutador telefónico (PBX) confiable y cuando esta bien configurado los problemas son escasos, Si por alguna extraña razón llega a presentar problemas basta con reiniciarlo y si es algo más severo generalmente es por detallitos en el hardware.&lt;/p>
&lt;p>Los &lt;em>shortcodes&lt;/em> con los códigos que funcionan prácticamente con cualquier teléfono aunque no tenga teclas especiales.&lt;/p>
&lt;p>De hecho muchos teléfonos utilizan estos mismos códigos o se pueden programar, por ejemplo en el &lt;strong>IP Phone Linksys SPA922&lt;/strong> la tecla del buzón de voz es programable y en su configuración pongo el &lt;em>shortcode&lt;/em> para accesar el buzón de la misma extensión, por citar solo un ejemplo.&lt;/p>
&lt;p>Esta es una pequeñísima colección del universo de códigos que existen, sin embargo son los los que más he utilizado con el tiempo.&lt;/p>
&lt;h2 id="lista-de-códigos">Lista de códigos
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Servicio&lt;/th>
&lt;th>Código&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Sígueme&lt;/td>
&lt;td>*72&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Desactivar sígueme&lt;/td>
&lt;td>*73&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>No molestar (DND)&lt;/td>
&lt;td>*78&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Desactivar No Molestar&lt;/td>
&lt;td>*79&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Activar la llamada en espera&lt;/td>
&lt;td>*70&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Desactivar la llamada en espera&lt;/td>
&lt;td>*71&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Escuchar el correo de voz de mi extensión&lt;/td>
&lt;td>*97&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Escuchar el correo de voz de otra extensión&lt;/td>
&lt;td>*98&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Prueba de eco (echo test)&lt;/td>
&lt;td>*43&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Te dice la hora&lt;/td>
&lt;td>*60&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a class="link" href="https://linuxmanr4.com/2010/09/23/jalar-una-llamada-de-un-conmutador-elastix/" >Jala la llamada&lt;/a>
&lt;/td>
&lt;td>* * [Extensión que está sonando]&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Despertador&lt;/td>
&lt;td>*62&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tu número de extensión&lt;/td>
&lt;td>*65&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Marca la última llamada que recibiste&lt;/td>
&lt;td>*69&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Transferir una llamada con atención (Attended Transfer)&lt;/td>
&lt;td>*2 + Número de extensión&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Transferir una llamada de forma desatendida (Blind Transfer)&lt;/td>
&lt;td>## + Número de extensión&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Por último quiero agregar que aunque estos códigos son para Elastix, podrían funcionar también en cualquier implementación de &lt;strong>Asterisk&lt;/strong>.&lt;/p></description></item><item><title>Habilitar la aceleración por Hardware en Chromium</title><link>https://linuxmanr4.com/2014/01/10/habilitar-la-aceleracion-por-hardware-en-chromium/</link><pubDate>Fri, 10 Jan 2014 17:51:02 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/10/habilitar-la-aceleracion-por-hardware-en-chromium/</guid><description>&lt;p>Este consejo aplica también a Chrome (Chromium es para Linux) y básicamente lo que hace es activar la aceleración por hardware, aprovechando mejor el &lt;a class="link" href="https://es.wikipedia.org/wiki/Unidad_de_procesamiento_gr%C3%A1fico" target="_blank" rel="noopener"
>GPU&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de nuestra tarjeta de video (en mi caso una nVidia) para actividades gráficas intensivas como WebGL o simplemente ver videos de Youtube.&lt;/p>
&lt;h2 id="revisar-el-estado-inicial">Revisar el estado inicial
&lt;/h2>&lt;p>Primero vamos a revisar cual es estado inicial de nuestro navegador, para eso abrimos una pestaña nueva &lt;strong>Ctrl+T&lt;/strong> y tecleamos &lt;strong>chrome://gpu&lt;/strong> , eso nos mostrará el estatus de la aceleración.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Antes-de-activar-la-aceleraci%C3%B3n-por-hardware-en-Chromium.jpg"
alt="Antes de activar la aceleración por hardware en Chromium">&lt;figcaption>
&lt;p>Antes de activar la aceleración por hardware en Chromium&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen a veces acelera, otras veces se queda en &amp;ldquo;neutral&amp;rdquo; ;)&lt;/p>
&lt;h2 id="aplicar-los-cambios">Aplicar los cambios
&lt;/h2>&lt;p>Para cambiar esto abrimos una pestaña nueva y tecleamos, &lt;strong>chrome://flags&lt;/strong> y habilitamos la opción que dice: &lt;strong>Cancelar la lista de renderización del software&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Activar-esta-opci%C3%B3n.png"
alt="Activar esta opción">&lt;figcaption>
&lt;p>Activar esta opción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nos pedirá que reiniciemos Chromium para poder aplicar los cambios.&lt;/p>
&lt;h2 id="revisar-los-cambios">Revisar los cambios
&lt;/h2>&lt;p>Nuevamente abrimos la página &lt;strong>chrome://gpu&lt;/strong> y podrán ver que ahora todas las opciones están en verde ¡Coool!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Despu%C3%A9s-de-activar-la-aceleraci%C3%B3n-por-hardware-en-Chromium.jpg"
alt="Después de activar la aceleración por hardware en Chromium">&lt;figcaption>
&lt;p>Después de activar la aceleración por hardware en Chromium&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se supone que los cambios benefician la reproducción de videos en Youtube, la nueva versión de mapas de Google que utiliza WebGL o incluso algunos juegos. Pueden probar con este experimento al que a falta de título bauticé como &lt;a class="link" href="https://web.archive.org/web/20140325234109/http://www.stickmanventures.com/labs/demo/webgl-threejs-morph-target/" target="_blank" rel="noopener"
>El Carotas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/El-Carotas.png"
alt="El Carotas Este experimento hace un uso intensivo de WebGL">&lt;figcaption>
&lt;p>El Carotas Este experimento hace un uso intensivo de WebGL&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Recuerden que este cambio es experimental, si tienen problemas solo tienen que revertir el cambio y quedará como antes.&lt;/p></description></item><item><title>Instalar mapas de OpenStreetMap a un GPS Garmin</title><link>https://linuxmanr4.com/2014/01/08/instalar-mapas-de-openstreetmap-gps-garmin/</link><pubDate>Wed, 08 Jan 2014 21:25:45 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/08/instalar-mapas-de-openstreetmap-gps-garmin/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Mapa-de-M%C3%A9xico.jpg" alt="Featured image of post Instalar mapas de OpenStreetMap a un GPS Garmin" />&lt;p>A pesar de que los &amp;ldquo;omnifuncionales&amp;rdquo; teléfonos celulares están reemplazando a los GPS todavía existen personas que utilizan este tipo de dispositivos, principalmente porque no son teléfonos celulares y se pueden adaptar fácilmente a un vehículo.&lt;/p>
&lt;p>Los dispositivos &lt;a class="link" href="http://www.garmin.com/es-MX" target="_blank" rel="noopener"
>Garmin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
son muy populares y en general son muy buenos, me ha tocado revisar varios de ellos y al parecer son &amp;ldquo;de batalla&amp;rdquo;.&lt;/p>
&lt;p>Generalmente vienen con unos mapas para Estados Unidos conocido como &lt;strong>CN North America NT&lt;/strong> y que incluye algunas de las principales carreteras y ciudades de México.&lt;/p>
&lt;h2 id="openstreetmap">OpenStreetMap
&lt;/h2>&lt;p>Claro que están disponibles los mapas que ofrece la misma compañía, pero también la comunidad de &lt;strong>OpenStreetMap&lt;/strong> ha generado sus propios mapas para estos dispositivos.&lt;/p>
&lt;p>Para hacerlo hay que visitar la página &lt;a class="link" href="http://garmin.openstreetmap.nl/" target="_blank" rel="noopener"
>Free maps for Garmin brand GPS devices&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y seleccionar los mapas por zonas que se quieran descargar.&lt;/p>
&lt;p>En mi caso descargué las regiones correspondientes a &lt;strong>México&lt;/strong> y a continuación me ofreció un enlace de descarga &lt;strong>Download map now!&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/osm-generic-gmapsupp.jpg"
alt="osm generic gmapsupp">&lt;figcaption>
&lt;p>osm generic gmapsupp&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Elegí el archivo que dice &lt;strong>osm_generic_gmapsupp.zip&lt;/strong> que es el indicado para copiarlo a la memoria &lt;strong>microsd&lt;/strong> ya que no requiere instalar ningún programa adicional.&lt;/p>
&lt;p>Un detalle importante, al copiar el archivo háganlo en una carpeta de nombre &lt;strong>Garmin&lt;/strong> de lo contrario no va a encontrar el archivo y no aparecerá en el dispositivo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/GPS-Garmin-cargando-la-cartograf%C3%ADa-de-OpenStreetMap.jpg"
alt="GPS Garmin cargando la cartografía de OpenStreetMap">&lt;figcaption>
&lt;p>GPS Garmin cargando la cartografía de OpenStreetMap&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para revisar si se cargó correctamente el mapa, se puede verificar en &lt;strong>Configuración&lt;/strong> - &lt;strong>Mapa&lt;/strong> -- &lt;strong>Info&lt;/strong> y aparecerá en el listado.&lt;/p>
&lt;p>Al parecer no todos los dispositivos &lt;strong>Garmin&lt;/strong> pueden leer estos mapas, el que tengo en mis manos es un &lt;strong>Nüvi 50&lt;/strong>, pero si quieren revisar la wiki de OpenStreetMap &lt;a class="link" href="http://wiki.openstreetmap.org/wiki/Garmin/N%C3%BCvi_series" target="_blank" rel="noopener"
>Garmin/Nüvi series&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para tener más información sobre los dispositivos de esta marca.&lt;/p></description></item><item><title>Copiar archivos a mi celular con Android por FTP</title><link>https://linuxmanr4.com/2014/01/06/copiar-archivos-mi-celular-con-android-por-ftp/</link><pubDate>Mon, 06 Jan 2014 15:36:19 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/06/copiar-archivos-mi-celular-con-android-por-ftp/</guid><description>&lt;p>Por alguna extraña razón que desconozco, en los nuevos equipos cada vez es más difícil copiar archivos a la memoria microSD, tal parece que ese espacio únicamente esta reservado a guardar las fotos de la cámara y ya.&lt;/p>
&lt;p>Anteriormente había logrado copiar archivos usando el protocolo MTP, ( &lt;a class="link" href="https://linuxmanr4.com/2013/12/19/copiar-archivos-microsd-celular-linux-usando-mtp/" title="Enlace al artículo: Copiar archivos a la microSD del celular en linux usando el protocolo MTP"
>Copiar archivos a la microsd del celular en linux usando MTP&lt;/a>
) pero este método presentó algunos problemas, al parecer si el celular se va a “dormir” deja la copia inconclusa y también provocó algunos errores en los nombres de los archivos. Funciona, pero solamente en subidas pequeñas, si la copia de los archivos toma mucho tiempo es mejor buscar otras opciones.&lt;/p>
&lt;h2 id="es-file-explorer-y-su-acceso-remoto">ES File Explorer y su acceso remoto.
&lt;/h2>&lt;p>En los comentarios del artículo que habla sobre MTP me recomendaron &lt;strong>ES File Explorer File Manager&lt;/strong> y no se equivocaron, este explorador de archivos es una maravilla, esta bien hecho, es intuitivo y esta repleto de herramientas útiles, entre ellas, un &lt;strong>Servidor FTP&lt;/strong>.&lt;/p>
&lt;p>De esta forma podemos copiar archivos a prácticamente cualquier lugar de la memoria del teléfono, incluyendo claro la memoria MicroSD y es independiente del sistema operativo, ya que funciona bien tanto en windows como en linux.&lt;/p>
&lt;p>Para activar el &lt;strong>Servidor FTP&lt;/strong> sólo hay que estar conectado a una red Wifi y activar el servicio en el menú &lt;strong>Herramientas&lt;/strong> - &lt;strong>Remoto&lt;/strong> , no dará una dirección &lt;strong>FTP&lt;/strong> con un número de puerto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Herramientas-Remoto-ES-File-Explorer.png"
alt="Herramientas - Remoto - ES File Explorer">&lt;figcaption>
&lt;p>Herramientas - Remoto - ES File Explorer&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con esa información abro la dirección en mi administrador de archivos, que funciona bien tanto en &lt;strong>Nemo&lt;/strong> como en &lt;strong>Thunar&lt;/strong> y supongo que no tendrá problemas con el &lt;strong>Explorer&lt;/strong> de Windows.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Nemo-y-Thunar-accesando-el-servidor-FTP.jpg"
alt="Nemo y Thunar accesando el servidor FTP">&lt;figcaption>
&lt;p>Nemo y Thunar accesando el servidor FTP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esta forma puedo copiar, borrar, crear carpetas, lo que quiera en la memoria del teléfono.&lt;/p>
&lt;h2 id="actualización-servidor-ftp-de-the-olive-tree">Actualización: Servidor FTP de The Olive Tree
&lt;/h2>&lt;p>Al parecer la recomendación anterior ya no existe. Pero siempre hay un programa que puede funcionar como alternativa.&lt;/p>
&lt;p>Sí solo se quiere usar la opción de utilizar el celular como un &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.theolivetree.ftpserver" target="_blank" rel="noopener"
>servidor FTP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
el programa de The Olive Tree es una excelente opción.&lt;/p></description></item><item><title>Haroopad, otro editor con soporte para Markdown</title><link>https://linuxmanr4.com/2014/01/02/haroopad-otro-editor-con-soporte-para-markdown/</link><pubDate>Thu, 02 Jan 2014 17:43:41 +0000</pubDate><guid>https://linuxmanr4.com/2014/01/02/haroopad-otro-editor-con-soporte-para-markdown/</guid><description>&lt;p>Haroopad es otro editor de textos con soporte para &lt;a class="link" href="http://daringfireball.net/projects/markdown/" target="_blank" rel="noopener"
>Markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Últimamente esta herramienta que sirve para generar documentos en formato HTML esta ganando mucha popularidad. No hace mucho se anunció que Wordpress incluye soporte para Markdown. El nuevo sistema de blogging &lt;a class="link" href="https://ghost.org/" target="_blank" rel="noopener"
>Ghost&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo anuncia como una de sus características principales. &lt;a class="link" href="https://github.com/" target="_blank" rel="noopener"
>GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo utiliza en su sistema de documentación y comentarios y yo lo utilizo desde hace tiempo para generar los artículos de este blog.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/01/Haroopad-otro-editor-con-soporte-para-Markdown.png"
alt="Haroopad, otro editor con soporte para Markdown">&lt;figcaption>
&lt;p>Haroopad, otro editor con soporte para Markdown&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="lo-bueno">Lo bueno
&lt;/h2>&lt;p>Haroopad es un proyecto que comienza, pero lo hace con el pie derecho. Esta repleto de cosas buenas, por ejemplo dispone de un panel simultáneo para ver el texto generado mientras se escribe. Tienen un sistema de autocompletado para las etiquetas que usa Markdown, una interfaz amigable repleta de temas y una comunidad que hará que el proyecto crezca.&lt;/p>
&lt;p>Tiene varios detalles que hacen cómodo usarlo.&lt;/p>
&lt;h2 id="cosas-que-le-faltan">Cosas que le faltan
&lt;/h2>&lt;p>Como es un trabajo en desarrollo todavía carece de muchas cosas, por ejemplo los menús ¡No tiene atajos de teclado!, aunque si lo prefieren, pueden activar el &lt;strong>modo VIM&lt;/strong> que hará que usen menos el mouse, pero tuve algunos problemas con Haroopad al activarlo.&lt;/p>
&lt;p>Tampoco tiene un corrector ortográfico que se extraña y algunas opciones aún no están disponibles, como la opción de exportar a PDF o una integración con wordpress.&lt;/p>
&lt;h2 id="para-instalarlo-en-manjaro">Para instalarlo en Manjaro
&lt;/h2>&lt;p>Haroopad funciona bien en Windows, Linux y MacOsx. Para instalarlo en Manjaro tuve algunos problemas, esta disponible en &lt;strong>yaourt&lt;/strong> pero hay que hacer algunos ajustes en el archivo &lt;strong>PKGBUILD&lt;/strong> para lograr que se instalé. Si intentan:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S haroopad
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Probablemente les muestre un mensaje de error como este…&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">error: error al realizar la transacción (archivos en conflicto)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">libudev.so.0: /usr/lib/libudev.so.0 existe en el sistema de archivos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Ocurrieron errores, no se actualizaron paquetes
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Tuve que hacer una consulta a los foros de Manjaro para solicitar algo de ayuda que llegó inmediatamente: &lt;em>Topic: Problem installing Haroopad&lt;/em> y me entregaron un nuevo archivo PKGBUILD que omite la necesidad de algunas dependencias.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Es un buen programa, de eso no hay duda y cuando concrete muchas de las opciones que están pendientes será un excelente compañero de todos aquellos que generamos contenido &lt;a class="link" href="https://linuxmanr4.com/2020/03/12/notable-un-programa-para-tomar-notas-usando-markdown/" >usando Markdown&lt;/a>
.&lt;/p></description></item><item><title>3 herramientas para detectar memorias USB falsas</title><link>https://linuxmanr4.com/2013/12/23/detectar-memorias-usb-falsas/</link><pubDate>Mon, 23 Dec 2013 17:39:13 +0000</pubDate><guid>https://linuxmanr4.com/2013/12/23/detectar-memorias-usb-falsas/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/3-herramientas-para-detectar-memorias-usb-falsas.jpg" alt="Featured image of post 3 herramientas para detectar memorias USB falsas" />&lt;p>Jamás pensé que me pudiera pasar algo así, pero es cierto, compré una memoria falsa , esta es la historia, por eso creo importante recomendarles estas herramientas de software para detectar memorias USB falsas, pero primero, algo de historia.&lt;/p>
&lt;p>Mi chaparrita compró una memoria micro SD de la marca &lt;strong>SanDisk&lt;/strong> de 16 GB clase 4 para su celular. Todo parecía normal, pero después de 1 día de uso nos percatamos de que algo andaba mal.&lt;/p>
&lt;p>Primero empezó a tener problemas con los juegos, luego las fotos ya no aparecían y cuando revisamos la memoria fuera del teléfono, nos encontramos con fotos que no eran nuestras, ¡Nos vendieron una memoria usada!&lt;/p>
&lt;p>Fuimos a reclamarla y sin mucho problema no la cambiaron por otra igual, pero esta vez me la quedé yo para revisarla y casi inmediatamente me pude dar cuenta de que también estaba defectuosa.&lt;/p>
&lt;h2 id="funcionamiento-errático-de-la-memoria">Funcionamiento errático de la memoria
&lt;/h2>&lt;p>Puse la memoria en el celular y efectivamente, reportaba una memoria de 16 GB. Lo primero que hice fue copiarle algunos archivos y aparentemente lo hacía bien, pero al buscarlos archivos copiados ¡No aparecían! Me decía que la carpeta estaba vacía.&lt;/p>
&lt;p>Así lo intenté en varias ocasiones, con la memoria dentro del teléfono y después directamente en la memoria usando un adaptador con los mismos resultados, dice que escribe los archivos, pero no vuelven a aparecer, como si nunca se hubieran copiado.&lt;/p>
&lt;p>Lo más probable es que me encontraba ante una memoria micro SD falsa. A estas memorias las modifican para declarar un espacio mayor cuando en realidad son de menor tamaño, por eso no es posible recuperar los archivos.&lt;/p>
&lt;h2 id="cómo-detectar-memorias-usb-falsas-visualmente">¿Cómo detectar memorias USB falsas visualmente?
&lt;/h2>&lt;h3 id="buscando-identificaciones-visuales">Buscando Identificaciones visuales.
&lt;/h3>&lt;p>Lamentablemente, no encontré una prueba visual definitiva que me indicara que la memoria es falsa. Pero si hay muchos indicadores que causan suspicacias, aunque claro, me fijé hasta después de que tuve problemas con la memoria.&lt;/p>
&lt;h3 id="etiqueta-sobrepuesta">Etiqueta sobrepuesta.
&lt;/h3>&lt;p>Esta memoria decía que era de 16 GB pero cuando me fijé más detenidamente, me di cuenta de que era una etiqueta sobrepuesta, abajo decía 4 GB.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/etiqueta-sobrepuesta.jpg"
alt="Etiqueta sobrepuesta declarando una capacidad mayor. Detectar memorias USB falsas.">&lt;figcaption>
&lt;p>Etiqueta sobrepuesta declarando una capacidad mayor. Detectar memorias USB falsas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Primer foco rojo encendido.&lt;/p>
&lt;h3 id="el-código-de-barras-no-corresponde">El código de barras no corresponde.
&lt;/h3>&lt;p>El empaque parecía bueno, busqué el código de barras y efectivamente, corresponde a una memoria microSD de 4 GB no de 16 GB.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/C%C3%B3digo-de-barras-que-no-corresponde-al-producto.jpg"
alt="El Código de barras que no corresponde al producto. Memoria Falsa.">&lt;figcaption>
&lt;p>El Código de barras que no corresponde al producto. Memoria Falsa.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Segundo foco rojo encendido.&lt;/p>
&lt;h3 id="números-de-serie-hologramas">¿Números de serie, hologramas?
&lt;/h3>&lt;p>La memoria no tiene holograma alguno, aunque muchas veces también los falsifican, también tenía un número de serie, pero no encontré sitio oficial de SanDisk donde verificarlo. Además, los logos y textos estaban bien impresos, las letras no se corrían y como pueden ver, puede pasar fácilmente por una memoria legítima.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/acercamiento-a-la-memoria-microsd-sandisk.jpg"
alt="acercamiento a la memoria microsd sandisk. Memoria Falsa.">&lt;figcaption>
&lt;p>acercamiento a la memoria microsd sandisk. Memoria Falsa.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Foco dudoso, solamente comparando con una memoria auténtica idéntica, pero aún así quedarían dudas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2020/01/microsd-kingston-8gb.jpg">
&lt;/figure>
&lt;h3 id="chino-yo-china-tu-china-tu-">Chino yo, China tu, China tu ….
&lt;/h3>&lt;p>El empaque tiene demasiados símbolos chinos y la página de Sandisk de ese país. Al principio no me preocupó tanto porque siendo sinceros, ya todo se hace en China.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Memoria-de-origen-chino.jpg"
alt="Empaque con letras chinas. Memoria Falsa">&lt;figcaption>
&lt;p>Empaque con letras chinas. Memoria Falsa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="cómo-identificar-una-memoria-auténtica">¿Cómo identificar una memoria auténtica?
&lt;/h2>&lt;p>Buscar señales visibles de una falsificación no me dio buen resultado, los falsificadores han mejorado bastante imitando a las originales y no es sencillo identificar una memoria auténtica de una falsa.&lt;/p>
&lt;p>La mejor señal de autenticidad que encontré fue con la etiqueta de importación. Esa etiqueta que le ponen a todos los artículos que entran al país con su pago respectivo de impuestos, indica el nombre del importador y otros datos. Eso quiere decir que la memoria entró legalmente al país con un proveedor autorizado. Efectivamente, son más caras, pero al menos sabes que viene de una fuente más o menos confiable.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/etiqueta-de-importaci%C3%B3n.jpg"
alt="Etiqueta de importación.">&lt;figcaption>
&lt;p>Etiqueta de importación.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="revisar-la-información-de-la-memoria">Revisar la información de la memoria.
&lt;/h3>&lt;p>Me trajeron una memoria para que la revisara. Mi compañero me dijo que la compró en un tianguis con música pregrabada. Supongo que la disfrutó por un tiempo, pero luego se dio cuenta de que no podía borrar los archivos y tampoco podría agregarle más canciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/07/memoria-falsa-kingston.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/07/memoria-falsa-kingston-grabados.jpg">
&lt;/figure>
&lt;p>A simple vista no hay algo que las distinga de las originales. Por ejemplo, el grabado de la palabra &lt;strong>Kingston&lt;/strong> es muy similar a la original, solo que el grabado se nota mucho más profundo.&lt;/p>
&lt;p>Al usar la herramienta &lt;strong>discos&lt;/strong> ( &lt;a class="link" href="https://gitlab.gnome.org/GNOME/gnome-disk-utility" target="_blank" rel="noopener"
>gnome-disk-utility&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) pude apreciar un detalle importante.&lt;/p>
&lt;p>La memoria original dice claramente &lt;strong>Kingston DataTraveler&lt;/strong>, mientras que la memoria falsa simplemente dice &lt;strong>Generic Flash Disk&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/07/informacion-discos-memoria-original.png">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/07/informacion-discos-memoria-falsa.png">
&lt;/figure>
&lt;h2 id="programas-para-detectar-memorias-usb-falsas">Programas para detectar memorias USB falsas
&lt;/h2>&lt;p>La única forma de estar seguros si una memoria está bien es probándola, para eso encontré dos programas.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.heise.de/download/h2testw.html" target="_blank" rel="noopener"
>H2testw&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que está en alemán e inglés, solamente para Windows.&lt;/li>
&lt;li>&lt;a class="link" href="http://oss.digirati.com.br/f3/" target="_blank" rel="noopener"
>F3&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es para Linux, disponible en Manjaro mediante AUR.&lt;/li>
&lt;li>&lt;a class="link" href="https://www.grc.com/validrive.htm" target="_blank" rel="noopener"
>Validrive&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Una herramienta para Windows que revisa si la USB es lo que dice ser.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>H2testw&lt;/strong> y &lt;strong>F3&lt;/strong> escriben archivos en toda la capacidad de la memoria para luego verificarlos. Si hay algún problema lo reporta.&lt;/p>
&lt;p>Los resultados de probar la memoria falsa me indicaron que solo 233.90 MB funcionaron correctamente y el resto presentó problemas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Resultados-de-h2testw.jpg"
alt="Resultados de h2testw">&lt;figcaption>
&lt;p>Resultados de h2testw&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/f3write-final.png"
alt="f3write \| memoria falsa">&lt;figcaption>
&lt;p>f3write | memoria falsa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/f3read-resumen-final.jpg"
alt="f3read resumen final \| memoria falsa">&lt;figcaption>
&lt;p>f3read resumen final | memoria falsa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se puede hacer esta prueba delante del vendedor, pero tienes que llevar tu equipo, un adaptador, bajar el programa y esperar unos 30 o 40 minutos a que termine el test y para ser sincero, eso no es muy práctico.&lt;/p>
&lt;p>&lt;strong>ValiDrive&lt;/strong> es diferente a los dos programas anteriores. Realiza una verificación por muestreo con secuencia aleatoria en todo el espacio de almacenamiento declarado de la unidad. En cada ubicación, verifica el almacenamiento y la recuperación exitosa de datos de prueba aleatorios.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/imagen.png"
alt="Validrive haciendo pruebas para detectar memorias USB falsas.">&lt;figcaption>
&lt;p>Validrive haciendo pruebas para detectar memorias USB falsas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El programa es muy pequeño y fácil de usar. Se tomará su tiempo en hacer las pruebas y solo está disponible para Windows.&lt;/p>
&lt;p>Al final entrega un reporte con los resultados de las pruebas.&lt;/p>
&lt;h2 id="la-reclamación">La reclamación
&lt;/h2>&lt;p>Supuestamente, todo lo que venden en la tienda tiene garantía y te lo cambian sin problemas, pero mucho cuidado, no me fijé que en una parte de la tienda hay un letrero que dice que no se hacen devoluciones en efectivo, en mi caso me fue bien, porque solo fue una memoria, pero algo más costoso si puede ser un problema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Estimado-cliente.jpg"
alt="Estimado cliente, una vez realizada su compra NO habrá devolución de efectivo. Memoria Falsa">&lt;figcaption>
&lt;p>Estimado cliente, una vez realizada su compra NO habrá devolución de efectivo. Memoria Falsa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me preocupa un poco esta situación, se imaginan ustedes cuantas personas cayeron en el fraude y no pudieron reclamar el cambio, algo inútil en mi caso porque la memoria que reemplazaron presentaba el mismo problema. O las que de plano no reclamaron nada y se quedaron con una memoria defectuosa.&lt;/p>
&lt;p>He notado que las marcas más afectadas por estas falsificaciones son &lt;strong>Kingston&lt;/strong> y &lt;strong>SanDisk&lt;/strong>, porque tienen prestigio en el mundo de dispositivos de almacenamiento.&lt;/p>
&lt;p>Al final no me regresaron mi dinero, pero me dieron su equivalente en mercancía, una funda nueva y unos audífonos chinotes. Y claro, me quedé con la experiencia de revisar muy bien lo que compro.&lt;/p></description></item><item><title>Copiar archivos a la microsd del celular en Linux usando MTP</title><link>https://linuxmanr4.com/2013/12/19/copiar-archivos-microsd-celular-linux-usando-mtp/</link><pubDate>Thu, 19 Dec 2013 21:20:06 +0000</pubDate><guid>https://linuxmanr4.com/2013/12/19/copiar-archivos-microsd-celular-linux-usando-mtp/</guid><description>&lt;p>Gracias a que en esta temporada decembrina hay un montón de ofertas y que mi pingüinita se compró un nuevo teléfono celular, me heredó su LG Optimus L7 (aka LG P708g) así que ahí me tienen configurándolo y dejándolo a mi gusto.&lt;/p>
&lt;p>Ya le había instalado mis aplicaciones favoritas, el launcher, eliminando los programas de Telcel, que no se puede desinstalar, entonces ocultándolos y así por el estilo, pero al momento de subirle la música a la memoria microSD me topé con un problema ¡No hay manera de copiarle la música!.&lt;/p>
&lt;p>Primero intenté con &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.sand.airdroid&amp;amp;hl=es_419" target="_blank" rel="noopener"
>AirDroid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, inicié el programa y copie mis archivos de música en una carpeta que hice en la ruta &lt;strong>SD Card&lt;/strong> que me pareció lo más lógico y supuestamente lo hizo, pero no, todo lo copió a la memoria interna.&lt;/p>
&lt;p>Como pueden ver en esta imagen, el espacio disponible que reporta AirDroid es el mismo para la memoria interna que para la microSD y ahí empezó mi búsqueda.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/AirDroid-mostrando-el-tama%C3%B1o-disponible.png"
alt="AirDroid mostrando el tamaño disponible">&lt;figcaption>
&lt;p>AirDroid mostrando el tamaño disponible&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Primero revisé la información que muestra en &lt;strong>Ajustes&lt;/strong> - &lt;strong>Almacenamiento&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/almacenamiento-de-la-microsd.png"
alt="almacenamiento de la microsd">&lt;figcaption>
&lt;p>almacenamiento de la microsd&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y como pueden ver el espacio ocupado por los archivos se aplica a la memoria interna, no a la microSD.&lt;/p>
&lt;p>Con mi Galaxy Ace, no tenía este tipo de problemas, en AirDroid los archivos se copiaban correctamente o si conectaba el teléfono mediante un cable USB sólo le tenía que indicarle al celular que estaba conectado y me aparecía una unidad tanto en linux como en windows para poder copiar los archivos.&lt;/p>
&lt;p>Luego intenté activar la &lt;strong>Depuración USB&lt;/strong> en &lt;strong>Opciones del desarrollador&lt;/strong> y nada, no pasaba absolutamente nada.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Sincronizaci%C3%B3n-multimedia-MTP.png"
alt="Sincronización multimedia MTP">&lt;figcaption>
&lt;p>Sincronización multimedia MTP&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Noté que al conectar el teléfono con el cable USB aparecían varias opciones, el &lt;strong>Software de LG&lt;/strong> estaba descartado porque uso linux y lo más seguro es que ese programa sólo este disponible para Windows.&lt;/p>
&lt;p>Luego vi uno que dice &lt;strong>Sincronización multimedia&lt;/strong> y en algún lado apareció la palabra &lt;strong>MTP&lt;/strong> :idea: .&lt;/p>
&lt;h2 id="instalar-soporte-para-mtp-en-manjaro-linux">Instalar soporte para MTP en Manjaro Linux
&lt;/h2>&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/MTP" target="_blank" rel="noopener"
>MTP: Media Transfer Protocol&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
fue la única forma que encontré para poder subir archivos a la memoria MicroSD del celular.&lt;/p>
&lt;p>Pero para poder hacerlo primero tuve que instalar un par de paquetes en mi Manjaro.&lt;/p>
&lt;p>Primero el paquete &lt;strong>gvfs-mtp&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S gvfs-mtp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso logré que apareciera una unidad en &lt;strong>Nemo&lt;/strong>, supongo que también en &lt;strong>Nautilus&lt;/strong> y claro también en &lt;strong>Thunar&lt;/strong>, pero si no cuentan con ninguno de estos administradores de archivos prueben con &lt;strong>pcmanfm&lt;/strong> que lo reconoce sin problemas.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S pcmanfm
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/LG-P708g-detectado.png"
alt="LG-P708g detectado">&lt;figcaption>
&lt;p>LG-P708g detectado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora, al conectar el teléfono y activar la opción &lt;strong>Sincronización multimedia&lt;/strong> lo que tengo que hacer es abrir un administrador de archivos (nemo, nautilus, thunar o pcmanfm) y buscar el nombre detectado de mi dispositivo (LG-P708g en mi caso) o una unidad &lt;strong>MTP&lt;/strong>, de esa forma pude copiar archivos a la microSD y no a la memoria interna.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/mtp-pcmanfm.png"
alt="MTP en ocmanfm">&lt;figcaption>
&lt;p>MTP en ocmanfm&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Supongo que este consejo se pude aplicar a otras distribuciones como Ubuntu, si lo hacen dejen un comentario para saber si funciona o si tuvieron que instalar paquetes adicionales.&lt;/p>
&lt;p>Ahora sí ¡Que suene la música!&lt;/p></description></item><item><title>2014 será el año de Linux</title><link>https://linuxmanr4.com/2013/12/18/2014-sera-el-ano-de-linux/</link><pubDate>Wed, 18 Dec 2013 15:53:53 +0000</pubDate><guid>https://linuxmanr4.com/2013/12/18/2014-sera-el-ano-de-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/el-ano-de-linux.jpg" alt="Featured image of post 2014 será el año de Linux" />&lt;p>Es costumbre que al finalizar el año se hagan algunas predicciones para el futuro y esta es la mía, el 2014 será el año en que linux se consolide fuertemente en los usuarios de todo el mundo.&lt;/p>
&lt;p>Aunque más que una predicción es una consecuencia de todo el trabajo que ha desarrollado la comunidad para impulsar el sistema operativo del pingüino.&lt;/p>
&lt;p>Estas son las razones que sustentan mi predicción.&lt;/p>
&lt;h2 id="la-vida-después-de-windows-xp">La vida después de Windows XP
&lt;/h2>&lt;p>&lt;strong>Windows XP&lt;/strong> sigue instalado en una gran cantidad de equipos, sobre todo en los más antiguos que no tienen otra opción de Microsoft para actualizarse o corregir errores de seguridad.&lt;/p>
&lt;p>Microsoft ya no da &lt;a class="link" href="https://linuxmanr4.com/2014/04/08/termina-el-soporte-para-windows-xp/" >soporte a esta versión de windows&lt;/a>
, por lo tanto, muchos usuarios, países, empresas están empezando a revisar cuales son sus opciones.&lt;/p>
&lt;p>Renovar implica dos cosas, el pago de una licencia y muy probablemente la compra de un equipo nuevo, por la sencilla razón de que un equipo con una antigüedad de 5 años no va a poder con los requerimientos bestiales de un windows 8.&lt;/p>
&lt;p>Son decisiones empresariales, ¿Quién da más a un menor costo? la respuesta es &lt;strong>¡Linux!&lt;/strong>&lt;/p>
&lt;h2 id="iphone-android-y-windows">iPhone, Android y ¿Windows?
&lt;/h2>&lt;p>iPhone esta teniendo una crisis, aquel aparato innovador ya no lo es tanto, se empieza a notar mucho la ausencia de Steve Jobs. Es por eso que vemos con regular frecuencia esos &lt;em>face wash&lt;/em> en la interfaz para mantenerlo en la ola de la modernidad, pero sigue siendo más o menos lo mismo de hace 3 o 4 años con algunas leves mejoras para guardas las apariencias.&lt;/p>
&lt;p>Cuando comparamos un iPhone 5 contra un Galaxy S4 las opciones que mejoran la experiencia al usuario son muy superiores en el sistema del robotito verde. Se que algunos &lt;em>Apple Fans&lt;/em> me harán comentarios al defendiendo sus dispositivos, pero a mi particular punto de vista es pagar demasiado por tan poco.&lt;/p>
&lt;p>Android tiene la ventaja de que son muchos los fabricantes de teléfonos que tienen una línea con este sistema, Samsung con su serie Galaxy, Sony con los Xperia, LG con los Optimus y lo mejor es que no sólo ofrecen equipos costosos, los hay para todos los gustos y todos los presupuestos.&lt;/p>
&lt;p>Microsoft se tardo demasiado en aparecer en el mercado de los celulares y sólo con Nokia una marca que agoniza, se acuerdan de las &lt;strong>Palm Treo&lt;/strong> aquellas que tenían un buen sistema y que como una forma desesperada le dieron la puntilla instalando windows mobile, creo que algo parecido va a ocurrir con Nokia, que durante muchos años estuvo en la cima y que ahora solo liderea el mercado de los equipos de bajo costo.&lt;/p>
&lt;p>Y no hablemos de las tablets… ¿Han visto una Surface? ¡Yo tampoco! y creo que van a llegar a ser una especie de mito o leyenda urbana, algo así como el Zune.&lt;/p>
&lt;p>Creo que de Blackberry ya ni hablamos.&lt;/p>
&lt;h2 id="linux-más-cercano-al-usuario">Linux más cercano al usuario
&lt;/h2>&lt;p>Mi hermana ya me pidió que mejor le instalara Ubuntu en su laptop y es que supongo que su historia se repite en muchos hogares. Primero Windows se puso “lento”, luego batallaba para iniciar, al final ya no arrancó. La solución es aplicar la primera ley de windows “Para todo mal reinstalar y para todo bien también”.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/windows.png"
alt="Procedimiento para arreglar problemas con windows">&lt;figcaption>
&lt;p>Procedimiento para arreglar problemas con windows&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La otra opción es &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >instalar Linux&lt;/a>
. Le di a elegir entre &lt;strong>Manjaro&lt;/strong> y &lt;strong>Ubuntu&lt;/strong> y se decidió por este último y ya no me ha hablado del tema de su &lt;a class="link" href="https://linuxmanr4.com/2011/06/17/spoolsvexe-hace-lenta-la-computadora/" >computadora lenta&lt;/a>
.&lt;/p>
&lt;p>Y es que para bien o para mal Ubuntu sigue liderando el mercado de Linux en el escritorio, próximamente planea sacar una versión para celulares y tabletas y cada vez más gobiernos, ciudades e instituciones lo están eligiendo para sustituir a windows.&lt;/p>
&lt;p>Las condiciones no pueden ser mejores y no veo algo que detenga el avance de Linux que ya tiene asegurado una buena cuota de mercado en servidores, sólo es cuestión de tiempo para que empiece a masificarse en el escritorio.&lt;/p></description></item><item><title>Instalar una impresora HP en Linux</title><link>https://linuxmanr4.com/2013/12/16/instalar-una-impresora-hp-en-linux/</link><pubDate>Mon, 16 Dec 2013 22:29:48 +0000</pubDate><guid>https://linuxmanr4.com/2013/12/16/instalar-una-impresora-hp-en-linux/</guid><description>&lt;p>Instalar una impresora en Linux no es complicado, la mayoría de las veces basta con conectar la impresora al equipo para que aparezca en la lista de impresoras disponibles, pero con los nuevos modelos de HP la tarea se complica un poco y es que estamos hablando de &lt;a class="link" href="https://linuxmanr4.com/2018/02/01/puerta-trasera-abierta-laserjet-100-color-m175nw/" >impresoras HP&lt;/a>
que ofrecen, aparte del tradicional puerto USB ahora tienen una conexión inalámbrica o de red y el problema se dificulta por la detección de la impresora.&lt;/p>
&lt;h2 id="un-comentario-sobre-las-impresoras-hp">Un comentario sobre las impresoras HP
&lt;/h2>&lt;p>Últimamente, no estoy muy contento con el rumbo que está tomando la compañía HP con respecto a sus impresoras, tal y como pueden leer en este comentario que puse en Google Plus&amp;hellip;&lt;/p>
&lt;p>Al parecer no soy el único molesto con la marca, pero tengo que reconocer que son de las pocas que tienen actualizados sus drivers para Linux.&lt;/p>
&lt;h2 id="hp-setup-al-rescate">hp-setup al rescate.
&lt;/h2>&lt;p>Ayer tuve la necesidad de dar de alta una impresora de red, buscando un poco en Internet dí con la herramienta &lt;strong>hp-setup&lt;/strong> , casi siempre intentaba el asistente que incluye Gnome para habilitar la impresora, pero esta herramienta hace el trabajo mucho más sencillo en los equipos de esta marca.&lt;/p>
&lt;p>Este procedimiento es común para muchas distribuciones Linux, en &lt;strong>Manjaro&lt;/strong> está presente en el paquete &lt;em>hplip&lt;/em> y casi puedo asegurar que es idéntico o muy similar en otras distros.&lt;/p>
&lt;p>Bueno, pues empecemos&amp;hellip;&lt;/p>
&lt;p>Primero en una terminal hay que ejecutar el comando &lt;strong>hp-setup&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/hp-setup.png"
alt="hp-setup">&lt;figcaption>
&lt;p>hp-setup&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De aquí en adelante es seguir el asistente de instalación. Para detectar la impresora debe de estar conectada a la red y encendida.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Impresora-descubierta.png"
alt="Impresora descubierta">&lt;figcaption>
&lt;p>Impresora descubierta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después hay que indicarle algunos pequeños detalles, como el nombre de la impresora y su ubicación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/HP-Device-Manager-Setup%5F015.png"
alt="HP Device Manager - Setup">&lt;figcaption>
&lt;p>HP Device Manager - Setup&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Probablemente en el siguiente paso les pida la contraseña del administrador, en mi caso (y en la mayoría) es &lt;strong>root&lt;/strong> y su contraseña.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/HP-Device-Manager-Enter-Username-Password%5F016.png"
alt="La contraseña de root">&lt;figcaption>
&lt;p>La contraseña de root&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final debe de aparecer como dada de alta junto con las otras impresoras del equipo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/Impresoras%5F017.png"
alt="Lista de impresoras listas">&lt;figcaption>
&lt;p>Lista de impresoras listas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y eso es todo, ¡A imprimir se ha dicho!&lt;/p></description></item><item><title>[Solucionado] Ocurrió un error al cargar el tema BlackNBlue</title><link>https://linuxmanr4.com/2013/12/09/solucionado-ocurrio-un-error-al-cargar-el-tema-blacknblue/</link><pubDate>Mon, 09 Dec 2013 21:11:18 +0000</pubDate><guid>https://linuxmanr4.com/2013/12/09/solucionado-ocurrio-un-error-al-cargar-el-tema-blacknblue/</guid><description>&lt;p>Hoy en la mañana me puse a actualizar mi instalación de &lt;strong>Manjaro&lt;/strong> y tengo la costumbre de reiniciar el equipo cuando es una actualización importante, por ejemplo, de cambio de versión (en este caso a la versión 0.8.8).&lt;/p>
&lt;blockquote>
&lt;p>Ocurrió un error al cargar el tema BlackNBlue&lt;/p>&lt;/blockquote>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/12/ocurrio-un-error-al-cargar-el-tema-blacknblue.jpg"
alt="ocurrio un error al cargar el tema blacknblue">&lt;figcaption>
&lt;p>ocurrio un error al cargar el tema blacknblue&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de correr por la habitación como el pato Lucas y recoger mis plumas me dispuse a buscar en los foros en inglés de Manjaro y di con la solución que afortunadamente es muy sencilla.&lt;/p>
&lt;p>Presionar las teclas &lt;strong>Ctrl + Alt + F1&lt;/strong> para entrar en una terminal, y luego teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S mdm-themes-extra
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Supongo que por alguna razón se durante la actualización se desinstaló este paquete y al momento de reiniciar le hacía falta, por eso la necesidad de volverlo a instalar.&lt;/p>
&lt;p>Luego sólo fue necesario reiniciar:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo reboot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y listo !!! 🙂 Nuevamente me mostró la pantalla de &lt;em>login&lt;/em> que tengo configurada.&lt;/p>
&lt;h3 id="referencias">Referencias.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20131207074115/http://forum.manjaro.org:80/index.php?topic=8943.0" target="_blank" rel="noopener"
>Topic: There was an error loading the theme blacknblue&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Adiós linuxman.blogsome.com</title><link>https://linuxmanr4.com/2013/11/30/adios-linuxman-blogsome-com/</link><pubDate>Sat, 30 Nov 2013 15:56:43 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/30/adios-linuxman-blogsome-com/</guid><description>&lt;p>Hace dos años (en el 2011) &lt;strong>blogsome&lt;/strong> anunció el cierre de sus puertas y poco a poco le fue bajando el interruptor a sus servicios, ya no aceptó la creación de blogs nuevos, luego cerro los foros y algunos sitios dejaron de funcionar.&lt;/p>
&lt;p>De esta forma &lt;strong>Blogsome&lt;/strong> anunció su retiro:&lt;/p>
&lt;blockquote>
&lt;p>We regret to inform you that &lt;strong>Blogsome&lt;/strong> is going to be closing down permanently. We’ve enjoyed hosting your blogs, but all good things must come to an end. After the 7th December the admin interface of your blog may no longer be accessible and the blog content may be removed.&lt;/p>
&lt;p>We are sorry about the inconvenience and wish you good luck in your future blogging endevours.&lt;/p>
&lt;p>Cheers,&lt;/p>
&lt;p>The Blogsome team.&lt;/p>&lt;/blockquote>
&lt;p>Por alguna razón que desconozco continuó en línea el blog con el que empecé &lt;strong>linuxman.blogsome.com&lt;/strong>, pero eso se terminó, el blog ya tiene dos semanas caído, me di cuenta gracias a un amable correo de Google en el que me informa que ya no pudo acceder a mi sitio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Selecci%C3%B3n_006.png"
alt="El robot de google no puede acceder a mi sitio">&lt;figcaption>
&lt;p>El robot de google no puede acceder a mi sitio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Afortunadamente tuve la oportunidad de migrar todo su contenido a este espacio, todos los artículos los pueden consultar en el buscador, conservan más o menos la misma estructura, excepto por el nombre de dominio que ahora es &lt;strong>linuxmanr4.com&lt;/strong>. Si gustan, pueden actualizar sus enlaces para redirigirse a este sitio.&lt;/p>
&lt;p>Cierro el año cerrando un ciclo que me llevó 5 años de publicaciones, pero no pienso dejarlo, escribir en mi blog ejercita mi mala memoria, me parece un buen ejercicio mental y además comparto mis experiencias con los demás para poder enriquecerlas y complementarlas.&lt;/p>
&lt;p>Por lo pronto, no queda más que decirle ¡Adiós a linuxman.blogsome.com! ¡Échele mariachiiiii!&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Hh4MzFupw90"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>Instalar el kernel linux-ck en Manjaro</title><link>https://linuxmanr4.com/2013/11/29/instalar-el-kernel-linux-ck-en-manjaro/</link><pubDate>Fri, 29 Nov 2013 22:19:59 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/29/instalar-el-kernel-linux-ck-en-manjaro/</guid><description>&lt;p>Esta vez instalé un &lt;strong>kernel&lt;/strong> personalizado del que he escuchado puras buenas cosas, se trata del kernel desarrollado por el buen amigo &lt;a class="link" href="https://en.wikipedia.org/wiki/Con_Kolivas" target="_blank" rel="noopener"
>Con Kolivas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y que se ha vuelto popular en las distribuciones linuxeras, como &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Manjaro&lt;/a>
&lt;/strong> tiene un buen soporte para manejar varios kernels me dije a mi mismo… mi mismo ¿Y porque no?&lt;/p>
&lt;p>Los parches del kernel &lt;strong>linux-ck&lt;/strong> están diseñados para mejorar la capacidad de respuesta del sistema y la interactividad con énfasis específico en aplicaciones de escritorio, como multimedia, videos, navegar por Internet, pero es adecuada para cualquier carga de trabajo.&lt;/p>
&lt;p>&lt;strong>Advertencia&lt;/strong>: Meterse con el kernel no es tarea para principiantes, tampoco es para gurús, pero si algo sale mal pueden terminar reinstalando el sistema.&lt;/p>
&lt;p>Como se que no me van a hacer caso con las advertencias y tampoco van a hacer un primero un respaldo de lo más importante llegó el momento de poner ¡Manos al teclado!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/monitor-del-sistema-gr%C3%A1ficas.png"
alt="Monitor del sistema - actividad de los CPU">&lt;figcaption>
&lt;p>Monitor del sistema - actividad de los CPU&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="instalar-linux-ck">Instalar linux-ck
&lt;/h2>&lt;p>Lo primero que hay que hacer es agregar el mirror &lt;strong>Repo-ck&lt;/strong>, instalar las llaves del mirror, actualizar las bases de datos de paquetes, instalar el kernel adecuado y algunas dependencias opcionales (que es un decir porque terminas instalándolas de todos modos).&lt;/p>
&lt;p>No voy a explicar todo a detalle, porque supongo que ya tienen cierta familiaridad con linux, la terminal, editar archivos y esas cosas.&lt;/p>
&lt;h3 id="agregar-el-mirror">Agregar el mirror
&lt;/h3>&lt;p>Lo primero es agregar el mirror editando el archivo &lt;strong>/etc/pacman.conf&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[repo-ck]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Server = http://repo-ck.com/$arch
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo pueden agregar al final del archivo, no hay problema.&lt;/p>
&lt;h3 id="agregar-las-llaves">Agregar las llaves
&lt;/h3>&lt;p>Para que todo sea correcto, es necesario agregar las llaves del mirror, como quien dice, para entrar en confianza.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman-key -r 5EE46C4C
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman-key --lsign-key 5EE46C4C
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y actualizamos la base de datos de paquetes del sistema con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syy
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="listar-los-paquetes-del-repositorio">Listar los paquetes del repositorio
&lt;/h3>&lt;p>Si teclean esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pacman -Sl repo-ck
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Van a obtener una lista de todos los paquetes que incluye el mirror, les puede ser útil en el caso de que se pregunten como se llama tal o cual paquete, de esa forma no tendrán dificultad alguna en instalarlo.&lt;/p>
&lt;h2 id="instalar-el-kernel-personalizado-adecuado">Instalar el kernel personalizado adecuado
&lt;/h2>&lt;p>Parte del rollo de instalar un kernel personalizado es sacarle más provecho al hardware, pero ¿Cuál kernel instalar?.&lt;/p>
&lt;p>Para averiguar cual paquete es el adecuado se puede teclear en una terminal esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gcc -c -Q -march=native --help=target | grep march
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A mi me dio como resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">-march= bdver1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Luego busco &lt;strong>bdver1&lt;/strong> en esta tabla &lt;a class="link" href="https://wiki.archlinux.org/index.php/Repo-ck" target="_blank" rel="noopener"
>Packages in repo-ck&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, por lo tanto, el kernel adecuado para mi equipo es el que tiene la nomenclatura &lt;strong>ck-bulldozer&lt;/strong>.&lt;/p>
&lt;p>Con esta información ya puedo instalar el kernel.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S linux-ck-bulldozer linux-ck-bulldozer-headers
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="instalar-dependencias-opcionales">Instalar dependencias opcionales
&lt;/h2>&lt;p>A veces se requiere instalar dependencias adicionales para que nuestro equipo pueda reconocer cierto hardware, en mi caso instalé el modulo para mi tarjeta de video &lt;strong>nVidia&lt;/strong> y un par de paquetes adicionales para que pudiera funcionar &lt;strong>virtualbox&lt;/strong>.&lt;/p>
&lt;h3 id="nvidia">nVidia
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S nvidia-ck-bulldozer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="virtualbox">Virtualbox
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S virtualbox-ck-host-modules-bulldozer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman -S virtualbox-ck-guest-modules-bulldozer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="activar-bfs">Activar BFS
&lt;/h2>&lt;p>Dicen los que saben que para aprovechar al 100% el BFS que incluye este kernel es necesario activarlo agregando un parámetro al kernel en el arranque del sistema.&lt;/p>
&lt;p>Para eso hay que editar el archivo de configuración de GRUB2 (en mi caso)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/default/grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y agregar &lt;strong>elevator=bfq&lt;/strong> en la línea que dice &lt;strong>GRUB_CMDLINE_LINUX_DEFAULT&lt;/strong>.&lt;/p>
&lt;p>Así que quedaría muy similar a esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">GRUB_CMDLINE_LINUX_DEFAULT=&amp;#34;quiet elevator=bfq&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="actualizar-grub">Actualizar GRUB
&lt;/h2>&lt;p>Para activar todos estos cambios es necesario actualizar la configuración de GRUB, que es muy sencillo en Manjaro, basta y sobra con un:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo update-grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Llegó el momento de la verdad, si todo se hizo de la manera correcta, al momento de reiniciar veremos que el menú de GRUB nos dará la opción para arrancar el sistema usando el kernel de Con Kolivas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/usando-el-kernel-linux-ck-en-manjaro.png"
alt="usando el kernel linux-ck en manjaro">&lt;figcaption>
&lt;p>usando el kernel linux-ck en manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="para-probar-si-esta-activado-el-bfs">Para probar si esta activado el BFS
&lt;/h2>&lt;p>pero ¿Cómo saber si esta activado el BFS en el sistema?, para eso hay que teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dmesg | grep scheduler
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y verán un mensaje muy similar a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[ 1.627908] io scheduler noop registered
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.627910] io scheduler deadline registered
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.627938] io scheduler cfq registered
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.627943] io scheduler bfq registered (default)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ 1.734791] BFS CPU scheduler v0.443 by Con Kolivas.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Aún es muy pronto para notar una mejoría en el rendimiento, si he notado que todo esta mucho más fluido, pero igual y son figuraciones mías por probar algo nuevo. Lo voy a dejar unas semanas y veamos como se porta, sobre todo porque tengo algunas tareas que hago semanalmente y que hace un uso intensivo del equipo.&lt;/p>
&lt;p>Esto pasa cuando pasa un cometa cerca de la tierra ¡Me aloco!&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://repo-ck.com/" title="Sitio del repositorio-ck"
target="_blank" rel="noopener"
>Repo-ck&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/linux-ck" target="_blank" rel="noopener"
>Wiki Archlinux: Linux-Ck&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Repo-ck" target="_blank" rel="noopener"
>Wiki Archlinux: Repo-ck&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://en.wikipedia.org/wiki/Brain_Fuck_Scheduler" target="_blank" rel="noopener"
>Wikipedia BFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>MiCompuMX, Linux a la argentina</title><link>https://linuxmanr4.com/2013/11/26/micompumx-linux-argentina/</link><pubDate>Tue, 26 Nov 2013 16:23:44 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/26/micompumx-linux-argentina/</guid><description>&lt;p>Anteriormente había escrito sobre la decisión del gobierno federal de instalar linux en los equipos que esta regalando a los alumnos de 5° y 6° de primaria en los estados de Tabasco, Colima y Sonora ( &lt;a class="link" href="https://linuxmanr4.com/2013/08/13/la-sep-elige-a-linux-para-sus-laptops" >véase: La SEP elige a Linux para sus laptops&lt;/a>
). Es un programa llamado &lt;strong>MiCompu.MX&lt;/strong> o &lt;strong>MiCompuMX&lt;/strong>. Intenté buscar la página del programa, pero al parecer ya estaban ocupados los dominios así que ni se entretengan en buscarlos.&lt;/p>
&lt;p>En esos momentos había poca información al respecto, faltaban las especificaciones técnicas de las computadoras y el sistema operativo que iba a utilizar no estaba definido, sólo se sabía que era linux Debian y nada más.&lt;/p>
&lt;h2 id="los-misterios-se-aclaran">Los misterios se aclaran.
&lt;/h2>&lt;p>Por fin se puede revisar las características técnicas de estos equipos, poco a poco va fluyendo la información, por ejemplo en el sitio de Preguntas Frecuentes sobre el Programa Mi Compu.Mx mencionan:&lt;/p>
&lt;h3 id="cuáles-son-las-características-tecnológicas-de-las-computadoras-portátiles">¿Cuáles son las características tecnológicas de las computadoras portátiles?
&lt;/h3>&lt;blockquote>
&lt;p>Las computadoras adquiridas cuentan con un microprocesador con velocidad de procesamiento de 1.1 Ghz, &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >disco duro&lt;/a>
de 350 Gb, precarga de 75 Gb con aplicación y contenidos multimedia producidos por la Secretaría de Educación Pública y otras instituciones públicas, tarjetas y componentes de acceso a la red WiFi y bluetooth que permiten conexión a Internet, componentes multimedia: bocinas, cámara de video y audio; batería para un mínimo de 3 horas de trabajo continuo, diseño ergonómico, software anti-robo y diseño distintivo de los equipos para desalentar el hurto.&lt;/p>&lt;/blockquote>
&lt;p>Que es un equipo decente para los peques, al menos en cuanto a hardware se refiere, pero no mencionan el sistema operativo que utilizan.&lt;/p>
&lt;h2 id="linux-con-sabor-argentino">Linux con sabor argentino
&lt;/h2>&lt;p>Bueno pues es una distribución argentina llamada &lt;strong>RXArt Education Solution&lt;/strong> de la compañía &lt;strong>PixArt&lt;/strong> basada en Debian, pero &lt;a class="link" href="https://linuxmanr4.com/2020/03/12/notable-un-programa-para-tomar-notas-usando-markdown/" >tome nota&lt;/a>
, ¡usa licencias! que al parecer son para dar soporte técnico al sistema operativo por un tiempo limitado (90 días por teléfono y un año por correo electrónico).&lt;/p>
&lt;p>Pero el uso de una licencia me hace pensar que tiene un costo, ¿De cuanto? pues al parecer una licencia tiene un costo de 90 pesos argentinos o el equivalente a 193.61 pesos mexicanos, que me parece razonable, pero desconozco cual es el arreglo que tiene el gobierno mexicano con esta empresa, sobre todo porque tiene algunas personalizaciones en cuanto a contenido de la SEP.&lt;/p>
&lt;p>Lamentablemente parece que México solo puede copiar programas de otros países pero no tiene las ganas (porque la capacidad la tiene) de hacerlo en casa.&lt;/p>
&lt;p>Buscando un poco más de información sobre esta distribución me encontré con el &lt;strong>Manual técnico&lt;/strong> que pueden descargar en la sección de Materiales de consulta de la página de la Secretaría de Educación Pública Primaria TIC.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/manual-t%C3%A9cnico-micompumx.jpg"
alt="Una página del manual técnico de micompumx">&lt;figcaption>
&lt;p>Una página del manual técnico de micompumx&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pueden notar que esta basado en &lt;a class="link" href="https://www.gnome.org/" target="_blank" rel="noopener"
>Gnome&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y que los creadores del manual no fueron capaces de tomar un screenshot decente para ilustrar el manual, en su lugar, le tomaron fotos al equipo, las recortaron y las incluyeron. Esta bien si eres un niño de primaria, pero para una empresa encargada de una distribución de linux… pues da mucho para pensar.&lt;/p>
&lt;p>Alguno de mis 4 lectores ha probado esta distribución, ¿Que les parece?, ¿Es mejor formatearla e instalarle un Manjaro?, crítico que sea una distribución elaborada y soportada en Argentina, pero no me quejo, podría ser peor, pudieron repartirlas con Windows !!!.&lt;/p></description></item><item><title>Configurar Postfix con reenvío de correo (relay mail)</title><link>https://linuxmanr4.com/2013/11/25/configurar-postfix-con-reenvio-de-correo-relay-mail/</link><pubDate>Mon, 25 Nov 2013 20:01:34 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/25/configurar-postfix-con-reenvio-de-correo-relay-mail/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Envio-con-relay.jpg" alt="Featured image of post Configurar Postfix con reenvío de correo (relay mail)" />&lt;p>Configurar Postfix para reenviar correo electrónico tiene algunas ventajas y no es muy complicado de hacer.&lt;/p>
&lt;p>Durante el fin de semana me dispuse a configurar un servidor para que funcionara como se retransmisor de correo ( &lt;em>relay mail&lt;/em>), no es complicado, pero se tienen que tener algunas precauciones.&lt;/p>
&lt;p>Pero antes de entrar en materia, voy a intentar ilustrar la forma de envío tradicional y con &lt;em>relay&lt;/em> para resaltar sus diferencias.&lt;/p>
&lt;h2 id="envío-tradicional-de-correo-electrónico">Envío tradicional de correo electrónico
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Envio-tradicional-de-correo.jpg"
alt="Envio tradicional de correo">&lt;figcaption>
&lt;p>Envio tradicional de correo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este es el envío tradicional, cada cliente tiene configurado el servidor de correo de nuestro proveedor y por lo tanto cada usuario tiene su propio nombre de usuario y contraseña para poder enviar correo electrónico.&lt;/p>
&lt;p>Usualmente uso &lt;a class="link" href="https://www.thunderbird.net/es-MX/" title="Thunderbird, cliente de correo electrónico"
target="_blank" rel="noopener"
>Thunderbird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como cliente de correo electrónico y por cada correo que se manda muestra un cuadro de diálogo informando sobre el estatus de la conexión y el avance de subida de los adjuntos.&lt;/p>
&lt;p>Si el tamaño de los adjuntos es considerable, entonces se puede tardar unos segundos (o minutos) extras hasta que da el mensaje de &lt;strong>enviado con éxito&lt;/strong>. Si en esos momentos la conexión a Internet es inestable entonces dará uno o varios errores hasta que se complete el envío.&lt;/p>
&lt;h2 id="envío-con-relay">Envío con Relay
&lt;/h2>&lt;p>En este caso un servidor interno funciona como intermediario, piense usted en él como el mensajero de la oficina, usted le entrega su correo y él se encarga de hacer los trámites necesarios para que lleguen a su destino.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Envio-con-relay.jpg"
alt="Envio con relay ">&lt;figcaption>
&lt;p>Envio con relay&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todos los correos llegan a este servidor y el se encarga de formarlos en una fila y entregarlos al servidor de correo de nuestro proveedor.&lt;/p>
&lt;p>La ventaja es que solo tengo que configurar una cuenta de correo electrónico con su nombre de usuario y contraseña para que la use el servidor que funciona como &lt;strong>Relay&lt;/strong>, la configuración de los clientes de correo no necesitan estas credenciales.&lt;/p>
&lt;p>Además la entrega de los clientes es prácticamente inmediata, a la velocidad de la red local, lo que les da la sensación de un envío inmediato.&lt;/p>
&lt;p>Ustedes me podrán decir ¿Y porqué no configurar Postfix para que entregue el correo directamente? y tienen razón, es posible hacerlo y tampoco es complicado, el problema son las validaciones y comprobaciones que se tienen que hacer para que no se clasifique un correo como &lt;strong>spam&lt;/strong>.&lt;/p>
&lt;p>En la actualidad los correos que salen de un servidor de correo incluyen varios mecanismos para confirmar que son de una fuente confiable y eso si es mucho más complicado de hacer (pero no imposible).&lt;/p>
&lt;h2 id="configurando-postfix-con-reenvío-de-correo">Configurando Postfix con reenvío de correo.
&lt;/h2>&lt;p>En mi caso usé el equipo que tengo configurado con OpenMediaVault , o sea un Debian, pero no hay mucha diferencia con otras distribuciones de Linux como Ubuntu o Manjaro.&lt;/p>
&lt;p>Antes de comenzar recuerden que tienen que crear una cuenta de correo con el proveedor que les esta proporcionando el servicio, su nombre de usuario y contraseña es la que va a utilizar el servidor con relay. Voy a usar &lt;strong>&lt;a class="link" href="mailto:relay@midominio.com" >relay@midominio.com&lt;/a>
&lt;/strong> como ejemplo.&lt;/p>
&lt;p>Para hacer los ajustes necesarios se tiene que modificar el archivo &lt;strong>/etc/postfix/main.cf&lt;/strong> , este ejemplo les puede servir de guía.&lt;/p>
&lt;h3 id="archivo-etcpostfixmaincf">Archivo /etc/postfix/main.cf
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mydestination =
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">myhostname = midominio.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mydomain = midominio.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#Opciones de seguridad
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">relayhost = [mail.midominio.com]:587
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">smtp_sasl_auth_enable = yes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">smtp_sasl_password_maps = hash:/etc/postfix/smtp_pass
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">smtp_sasl_security_options =
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#Redes validas
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#En este caso, localhost y toda la red local.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mynetworks = 127.0.0.0/8, 192.168.10.0/24
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">inet_interfaces = all
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#Tamaño máximo del mensaje 20MB aprox.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">message_size_limit = 27262976
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten que en la línea que dice &lt;strong>relayhost&lt;/strong> el dominio esta entre corchetes y además se especifica el puerto utilizado (en este caso 587).&lt;/p>
&lt;p>También noten que se hace referencia a un archivo llamado &lt;strong>smtp_pass&lt;/strong> en la línea que dice &lt;strong>smtp_sasl_password_maps&lt;/strong> en ese archivo se almacena el nombre de usuario y contraseña que vamos a usar para mandar los correos y es muy similar a este ejemplo:&lt;/p>
&lt;h3 id="archivo-etcpostfixsmtp_pass">Archivo /etc/postfix/smtp_pass
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[mail.midominio.com]:587 relay@midominio.com:contraseña
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Nuevamente revisen que el servidor de correo este entre corchetes y el número de puerto. Debe de ser idéntico a como se especificó en &lt;strong>relayhost&lt;/strong>. Como pueden ver lo que sigue es la cuenta de usuario y la contraseña.&lt;/p>
&lt;p>Para que Postfix pueda usar esta información hay que preparar un archivo especial con esta instrucción…&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">postmap /etc/postfix/smtp_pass
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para aplicar los cambios tienen que reiniciar el servicio, en Debian es así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo /etc/init.d/postfix restart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y verán estos mensajes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Stopping Postfix Mail Transport Agent: postfix.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Starting Postfix Mail Transport Agent: postfix.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para realizar las pruebas solo resta configurar un cliente de correo electrónico, en Thunderbird en el menú &lt;strong>Preferencias&lt;/strong> - &lt;strong>Configuración de cuentas…&lt;/strong>&lt;/p>
&lt;p>Y se agrega la información de nuestro nuevo servidor.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Servidor-SMTP.png"
alt="Servidor SMTP en Thunderbird">&lt;figcaption>
&lt;p>Servidor SMTP en Thunderbird&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por default Postfix utiliza el puerto &lt;strong>25&lt;/strong> y no requiere identificación alguna.&lt;/p>
&lt;p>Si todo salió bien, dentro de pocos instantes verán que llegó correctamente su correo electrónico a su bandeja de entrada.&lt;/p>
&lt;h4 id="referencias">Referencias
&lt;/h4>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.postfix.org/BASIC_CONFIGURATION_README.html" title="Configuración básica de Postfix"
target="_blank" rel="noopener"
>Postfix Basic Configuration&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.thunderbird.net/es-MX/" title="Thunderbird, cliente de correo electrónico"
target="_blank" rel="noopener"
>Thunderbird, cliente de correo electrónico&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Calendario Libre 2014</title><link>https://linuxmanr4.com/2013/11/13/calendario-libre-2014/</link><pubDate>Wed, 13 Nov 2013 23:05:59 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/13/calendario-libre-2014/</guid><description>&lt;p>Hoy recibí el comentario de &lt;a class="link" href="https://plus.google.com/u/0/109507777761099063221/" target="_blank" rel="noopener"
>Mica Bressan&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
preguntándome sobre una nueva versión del &lt;strong>calendario libre&lt;/strong>, y me dije a mi mismo ¿Y por que no?&lt;/p>
&lt;p>Mi estimada Mica CONCEDIDO!!!!!!&lt;/p>
&lt;p>Hice un pequeño calendario libre con tema de las 12 distribuciones TOP de Distro Watch, tomé como referencia los últimos 3 meses y eliminé de la lista una porque no era linux (era BSD).&lt;/p>
&lt;ol>
&lt;li>&lt;a class="link" href="http://linuxmint.com/" target="_blank" rel="noopener"
>Mint&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.debian.org/" target="_blank" rel="noopener"
>Debian&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.mageia.org/" target="_blank" rel="noopener"
>Mageia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://fedoraproject.org/" target="_blank" rel="noopener"
>Fedora&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.opensuse.org/" target="_blank" rel="noopener"
>openSUSE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20250613055905/https://www.pclinuxos.com/" target="_blank" rel="noopener"
>PCLinuxOS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.archlinux.org/" target="_blank" rel="noopener"
>Arch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://puppylinux-woof-ce.github.io/" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.centos.org/" target="_blank" rel="noopener"
>CentOS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://elementaryos.org/" target="_blank" rel="noopener"
>elementary&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ol>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/01-enero-2014-calendario-libre.png"
alt="Calendario Libre 2014 Enero Mint">&lt;figcaption>
&lt;p>Calendario Libre 2014 Enero Mint&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/02-febrero-2014-calendario-libre.png"
alt="Calendario Libre 2014 Febrero Ubuntu">&lt;figcaption>
&lt;p>Calendario Libre 2014 Febrero Ubuntu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/03-marzo-2014-calendario-libre.png"
alt="Calendario Libre 2014 Marzo Debian">&lt;figcaption>
&lt;p>Calendario Libre 2014 Marzo Debian&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/04-abril-2014-calendario-libre.png"
alt="Calendario Libre 2014 Abril Mageia">&lt;figcaption>
&lt;p>Calendario Libre 2014 Abril Mageia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/05-mayo-2014-calendario-libre.png"
alt="Calendario Libre 2014 Mayo Fedora">&lt;figcaption>
&lt;p>Calendario Libre 2014 Mayo Fedora&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/06-junio-2014-calendario-libre.png"
alt="Calendario Libre 2014 Junio openSuse">&lt;figcaption>
&lt;p>Calendario Libre 2014 Junio openSuse&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/07-julio-2014-calendario-libre.png"
alt="Calendario Libre 2014 julio PCLinuxOS">&lt;figcaption>
&lt;p>Calendario Libre 2014 julio PCLinuxOS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/08-agosto-2014-calendario-libre.png"
alt="Calendario Libre 2014 agosto Manjaro">&lt;figcaption>
&lt;p>Calendario Libre 2014 agosto Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/09-septiembre-2014-calendario-libre.png"
alt="Calendario Libre 2014 septiembre Arch">&lt;figcaption>
&lt;p>Calendario Libre 2014 septiembre Arch&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/10-octubre-2014-calendario-libre.png"
alt="Calendario Libre 2014 octubre Puppy">&lt;figcaption>
&lt;p>Calendario Libre 2014 octubre Puppy&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/11-noviembre-2014-calendario-libre.png"
alt="Calendario Libre 2014 noviembre CentOS">&lt;figcaption>
&lt;p>Calendario Libre 2014 noviembre CentOS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/12-diciembre-2014-calendario-libre.png"
alt="Calendario Libre 2014 diciembre elementary">&lt;figcaption>
&lt;p>Calendario Libre 2014 diciembre elementary&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Puedo decir que he instalado la mayoría, algunas las utilizo diariamente, otras tuvieron su momento en mi disco duro y no las he vuelto a ver.&lt;/p>
&lt;p>Todas las imágenes fueron generadas con Inkscape y en esta ocasión usé el generador de calendarios (la vez pasada no sabía que existía ¡D&amp;rsquo;ohs!).&lt;/p>
&lt;p>No sería libre si no incluyera las fuentes, por eso pueden descargar los archivos de trabajo para que hagan los ajustes que quieran, cambiar los colores, logos, tamaños, vamos lo que gusten y manden&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2020/03/calendario-libre-2014.7z" >Calendario Libre 2014 (archivos de trabajo)&lt;/a>
&lt;/p>
&lt;p>Pero si solo lo quieren imprimir entonces también lo pueden descargar en formato pdf.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2020/03/calendario-libre-2014.pdf" >Calendario Libre 2014 (PDF)&lt;/a>
&lt;/p>
&lt;p>No se ustedes, pero para mi este año se fue volando.&lt;/p></description></item><item><title>Conflictos con libdbusmenu-glib al actualizar Manjaro</title><link>https://linuxmanr4.com/2013/11/06/conflictos-con-libdbusmenu-glib-actualizar-manjaro/</link><pubDate>Wed, 06 Nov 2013 15:23:24 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/06/conflictos-con-libdbusmenu-glib-actualizar-manjaro/</guid><description>&lt;p>Hoy en la mañana me dispuse a actualizar Manjaro como es costumbre y me encuentro con unos problemas, concretamente son unos archivos en conflicto con &lt;strong>libdbusmenu-glib&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">error&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">error&lt;/span> &lt;span class="n">al&lt;/span> &lt;span class="n">realizar&lt;/span> &lt;span class="n">la&lt;/span> &lt;span class="n">transacción&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">archivos&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">conflicto&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">client&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">enum&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">types&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">menuitem&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">proxy&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">menuitem&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">server&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">types&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">girepository&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">1.0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Dbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">typelib&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">so&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">so&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">so&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">pkgconfig&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">dbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">pc&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">gir&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">1.0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Dbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gir&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">libdbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">glib&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">vala&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">vapi&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Dbusmenu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">0.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">vapi&lt;/span> &lt;span class="n">existe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">sistema&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">archivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Ocurrieron&lt;/span> &lt;span class="n">errores&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">no&lt;/span> &lt;span class="n">se&lt;/span> &lt;span class="n">actualizaron&lt;/span> &lt;span class="n">paquetes&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Mensaje completo de la actualización:&lt;/p>
&lt;h2 id="quitar-plank">Quitar Plank
&lt;/h2>&lt;p>En otras ocasiones he resuelto los problemas desinstalando el paquete conflictivo, actualizando y volviendo a instalar, en este caso en particular los paquetes &lt;strong>libdbusmenu&lt;/strong> son requeridos únicamente por &lt;a class="link" href="https://launchpad.net/plank" target="_blank" rel="noopener"
>plank&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un dock sencillito que me gusta mucho como se ve en el escritorio. Así que ni modo, lo primero que hay que hacer es desinstalar Plank.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -R plank
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman -R libdbusmenu-gtk3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo pacman -R libdbusmenu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="actualizar-el-sistema">Actualizar el sistema
&lt;/h2>&lt;p>Hecho lo anterior, la actualización ocurre sin problemas&amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/actualizaci%C3%B3n-6-nov-2013.png"
alt="actualización de manjaro ya sin conflictos">&lt;figcaption>
&lt;p>actualización de manjaro ya sin conflictos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="reinstalar-plank">Reinstalar Plank
&lt;/h2>&lt;p>Para reinstalar Plank solo tuve que hacerlo con yaourt.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt plank
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/reinstalando-plank.png"
alt="reinstalando plank">&lt;figcaption>
&lt;p>reinstalando plank&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y listo !!! :)&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20131110090012/http://forum.manjaro.org/index.php?topic=8095.msg71549" target="_blank" rel="noopener"
>System cannot update&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Prueba Manjaro Linux</title><link>https://linuxmanr4.com/2013/11/04/prueba-manjaro-linux/</link><pubDate>Mon, 04 Nov 2013 17:48:07 +0000</pubDate><guid>https://linuxmanr4.com/2013/11/04/prueba-manjaro-linux/</guid><description>&lt;p>Distribuciones de linux hay muchas y aparecen nuevas cada día, entonces ¿Por qué probar otra más?&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Captura-de-pantalla-de-2013-11-01-133646.png"
alt="Manjaro Cinnamon">&lt;figcaption>
&lt;p>Manjaro Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="razones-para-usar-manjaro">Razones para usar Manjaro
&lt;/h2>&lt;p>Me cambié de Ubuntu a Manjaro hace más de un año, el problema con Ubuntu es que a pesar de tener un equipo con 4 núcleos y 8GB en RAM mi computadora estaba lenta !!! ¿Cómo era eso posible?.&lt;/p>
&lt;p>Actualmente sigo con mi instalación original de Manjaro, no he necesitado formatear para actualizar la versión. Desde entonces sólo he tenido que ejecutar un par de comandos ocasionalmente para tener mi distribución al día.&lt;/p>
&lt;p>Manjaro Linux esta basada en &lt;a class="link" href="http://www.archlinux.org/" title="Sitio de Arch Linux"
target="_blank" rel="noopener"
>Arch Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero es un poco más conservadora al momento de liberar las actualizaciones lo que le da mayor estabilidad.&lt;/p>
&lt;p>Instalar Arch tiene muchas ventajas pero su instalación dista mucho de ser sencilla, el manual de instalación de Arch tiene varios capítulos y prácticamente todo se hace “a mano”, desde la creación de las particiones, dar de alta a los usuarios, instalar los entornos, etc. Manjaro simplifica la instalación y la configuración del sistema entregando desde el primer arranque un linux que puedas usar, por eso se le conoce como el &lt;strong>“Arch para seres humanos”.&lt;/strong>&lt;/p>
&lt;p>Después de la instalación tienes un sistema base, sólo lo necesario para trabajar, conforme lo vayas utilizando vas a instalar las aplicaciones que necesites y estas también se irán actualizando, sin necesidad de formatear o reinstalar el sistema.&lt;/p>
&lt;p>Pueden descargar Manjaro linux en el sitio oficial &lt;a class="link" href="https://web.archive.org/web/20220522200146/https://manjaro.org/get-manjaro/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 está disponible en versiones con XFCE, Openbox, Cinnamon, KDE …&lt;/p>
&lt;h2 id="ganando-terreno-en-distrowatch">Ganando terreno en DistroWatch
&lt;/h2>&lt;p>Uno de los principales indicadores del éxito de una distribución de linux sin duda es &lt;a class="link" href="http://distrowatch.com/" title="Sitio de DistroWatch"
target="_blank" rel="noopener"
>DistroWatch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, aún con su diseño de internet de los 90’s sigue siendo un referente de la popularidad de cualquier distribución de linux que se respete.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Manjaro-en-distro-Watch.png"
alt="Manjaro en DistroWatch">&lt;figcaption>
&lt;p>Manjaro en DistroWatch&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En muy poco tiempo, Manjaro ha logrado colarse al Top 10 de las mejores distribuciones y eso que todavía no llega a la versión 1. En varias ocasiones se ha visto como una distro hija supera a la distro madre, Ubuntu vs Debian vs Mint … Arch vs Manjaro, etc.&lt;/p>
&lt;p>Así que no hay que perder de vista a Manjaro, caballo que alcanza gana :).&lt;/p>
&lt;h2 id="comunidad">Comunidad
&lt;/h2>&lt;p>Una de las cosas que más me ha gustado de Manjaro es su comunidad. Anteriormente estaban las comunidades de Google Plus, pero pues, ya no existen ¡Gracias Google!&lt;/p>
&lt;p>Los &lt;a class="link" href="https://forum.manjaro.org/" target="_blank" rel="noopener"
>foros de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en inglés tienen una gran actividad y buena disposición para ayudar. Una vez que te sabes mover en ellos es el primer sitio que debes de visitar cuando tengas un problema.&lt;/p>
&lt;h2 id="descargar-manjaro">Descargar Manjaro
&lt;/h2>&lt;p>¿Logré que te interesaras más en Manjaro? ¡Excelente! ahora solo tienes que descargar una versión que te agrade. Hay para todos los gustos Gnome, Cinnamon, KDE, XFCE y lo que aparezca esta semana.&lt;/p>
&lt;p>&lt;a class="link" href="https://manjaro.org/products" target="_blank" rel="noopener"
>¡Descarga Manjaro!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="prueba-manjaro-la-campaña">Prueba Manjaro: La campaña.
&lt;/h2>&lt;p>¿Instalaste Manjaro y te gustó? entonces llegó el momento de compartir con el mundo ese sentimiento. Puedes escribir un artículo reseñando tu experiencia con Manjaro o poner un botón en tu blog, twitter, facebook, google plus o &lt;em>grafitearlo&lt;/em> en la pared del vecino…. ¿ehhh queee?, este mmm… me dicen que esto último no es recomendable.&lt;/p>
&lt;p>Por ejemplo, hice un pequeño recuadro de 200x200 px que puedes incluir en tu blog copiando y pegando este código:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/11/Prueba-Manjaro.png"
alt="Prueba Manjaro Linux">&lt;figcaption>
&lt;p>Prueba Manjaro Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">a&lt;/span> &lt;span class="na">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;https://manjaro.org&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;gt;&amp;lt;&lt;/span>&lt;span class="nt">img&lt;/span> &lt;span class="na">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/wp-content/uploads/2013/11/Prueba-Manjaro.png&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">/&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">a&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Entre más grande sea la comunidad de usuarios de Manjaro, mejor !!!&lt;/p></description></item><item><title>Se pierde la configuración del teclado después de actualizar Manjaro Linux</title><link>https://linuxmanr4.com/2013/10/25/se-pierde-la-configuracion-del-teclado-despues-de-actualizar-manjaro-linux/</link><pubDate>Fri, 25 Oct 2013 13:50:47 +0000</pubDate><guid>https://linuxmanr4.com/2013/10/25/se-pierde-la-configuracion-del-teclado-despues-de-actualizar-manjaro-linux/</guid><description>&lt;h2 id="los-síntomas">Los síntomas
&lt;/h2>&lt;p>Después de la última actualización de &lt;a class="link" href="https://manjaro.org/" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tuve un comportamiento extraño. Durante mucho tiempo he actualizado el sistema sin mayor problemas pero por alguna razón estaba perdiendo la configuración del teclado.&lt;/p>
&lt;p>En un principio lo corregí ejecutando el &lt;strong>Manjaro Settings Manager&lt;/strong> para configurarlo correctamente a &lt;strong>Español (latinoamericano)&lt;/strong> que es la distribución de teclas que estoy utilizando.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Manjaro-Settings-Manager%5F011.png"
alt="Manjaro Settings Manager, Configuración del teclado.">&lt;figcaption>
&lt;p>Manjaro Settings Manager, Configuración del teclado.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y funcionaba perfectamente hasta que tenía que reiniciar el sistema, al iniciar sesión nuevamente tenía la distribución del teclado en inglés.&lt;/p>
&lt;h1 id="la-solución">La solución.
&lt;/h1>&lt;p>Supuse que por alguna razón al iniciar &lt;strong>Cinnamon&lt;/strong> hacía el cambio, ya me ha pasado cosas similares anteriormente, sobre todo con el fondo de pantalla. Por alguna razón tengo herramientas de configuración repetidas, algunas son de &lt;strong>Gnome shell&lt;/strong> y otras de &lt;strong>Cinnamon&lt;/strong>.&lt;/p>
&lt;p>Busqué en el &lt;strong>Cinnamon System Settings&lt;/strong> – &lt;strong>Configuración Regional&lt;/strong> – &lt;strong>Input Sources&lt;/strong> y ahi estaba el problema. Como pueden ver en la imagen sólo aparece el teclado &lt;strong>Inglés (EE.UU.)&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Configuraci%C3%B3n-Regional_010.png"
alt="Configuración Regional de Cinnamon">&lt;figcaption>
&lt;p>Configuración Regional de Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sólo tuve que agregar mi distribución de teclado en español, eliminar la de inglés y listo !!!&lt;/p>
&lt;p>Espero que esta información les sea de utilidad. ¡Larga vida y prosperidad al software libre!&lt;/p></description></item><item><title>Duplicati, una herramienta para hacer respaldos</title><link>https://linuxmanr4.com/2013/10/21/duplicati-respaldos/</link><pubDate>Mon, 21 Oct 2013 22:10:16 +0000</pubDate><guid>https://linuxmanr4.com/2013/10/21/duplicati-respaldos/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/cryptolocker.png"
alt="El virus cryptolocker pidiendo el rescate.">&lt;figcaption>
&lt;p>El virus cryptolocker pidiendo el rescate.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El otro día me llegó el rumor de un virus que en lugar de destruir la información literalmente la secuestraba. Lo que hace este pequeño demonio es tomar los archivos de trabajo (generalmente de excel y de word), primero encripta los archivos y luego borra los originales. En pantalla aparecen los datos para que hagas un depósito, de esa manera te podrán dar la contraseña que desencripta tus archivos y sólo así podrás tenerlos de vuelta, lo mejor de todo, es que aún pagando no hay garantías de que puedas recuperarlos, diabólico ¿no creen?&lt;/p>
&lt;h2 id="copiar-no-es-suficiente">Copiar no es suficiente.
&lt;/h2>&lt;p>Muchos hacen una copia de sus archivos en otro disco duro o en una carpeta de red, eso te puede proteger de un fallo en un mecánico del disco, una corrupción de datos, pero si el dispositivo que guarda los archivos están a la mano del usuario, también lo van a estar para el virus y no servirían de nada. Se vuelve necesario respaldar en otro equipo que no este permanentemente disponible para el usuario. Es conocido que algunos virus se expanden usando las carpetas compartidas de windows y esto claramente no es bueno.&lt;/p>
&lt;p>Por otro lado, copiar nuestros archivos a otro equipo sin que estén encriptados no es recomendable, cualquier persona podría hacer mal uso de ellos, sobre todos si contienen información confidencial.&lt;/p>
&lt;h2 id="duplicati">Duplicati
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/duplicati.png"
alt="Duplicati programa para hacer respaldos">&lt;figcaption>
&lt;p>Duplicati programa para hacer respaldos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En mi búsqueda me encontré con &lt;a class="link" href="http://www.duplicati.com/" target="_blank" rel="noopener"
>Duplicati&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un programa para respaldos que encripta los archivos, hace respaldos incrementales, los comprime y además los puede almacenar de manera local, en una carpeta compartida, en la nube usando servicios como Amazon S3, Windows Live Skydrive, Google Drive, Rackspace Cloud Files o utilizando WebDAV, &lt;strong>SSH&lt;/strong> o FTP.&lt;/p>
&lt;h2 id="los-pros">Los Pros
&lt;/h2>&lt;p>Tiene asistentes para todo así que es muy sencillo generar una nueva tarea de respaldos, básicamente todo se resume a llenar un formulario. ¿Cuáles archivos son los que quieres guardar?, ¿Con que frecuencia se va a ejecutar la tarea?, ¿Dónde se van a guardar?.&lt;/p>
&lt;p>Se le puede asignar una prioridad a la tarea de respaldo, de esa forma prácticamente no vas a notar que se esta ejecutando.&lt;/p>
&lt;p>Funciona en Windows, Linux y MacOS, pero en linux existen programas con mejor desempeño y mejor integrados al sistema operativo, por ejemplo en linux no puedo hacer (o no he descubierto la forma) de que ocupe un lugar en el área de notificación, siempre tiene que estar minimizado. No es algo serio, sólo que en windows a veces ni me doy cuenta de que existe.&lt;/p>
&lt;p>Los respaldos incrementales y la programación del respaldo son geniales, puede aligerar mucho la carga de un respaldo, un respaldo completo puede tomar horas, pero copiar solo los archivos nuevos o los que han cambiado tomará minutos.&lt;/p>
&lt;h2 id="algunos-contras">Algunos contras
&lt;/h2>&lt;p>Si la cantidad de archivos a respaldar es de varios decenas de GB’s el primer respaldo completo puede tomar un laaaaaaaargo tiempo, incluso me llegó a fallar un par de veces. Por ejemplo, por &lt;em>default&lt;/em> Duplicati genera archivos de 10MB que puede ser más que manejables, pero si el respaldo es muy grande me da un error por tener demasiados archivos abiertos, para ser sincero, no estoy seguro si esta es una limitante del programa o de windows. Para corregirlo sólo tuve que declarar un tamaño de volumen más grande, en mi caso 100 MB me dio buen resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Duplicati-tama%C3%B1o-de-cada-volumen.png"
alt="Duplicati - tamaño de cada volumen">&lt;figcaption>
&lt;p>Duplicati - tamaño de cada volumen&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otro problema es que recuperar los archivos es sencillo desde un sistema con duplicati ya instalado (tiene un asistente para eso), pero supongamos que perdí la maquina por X razón … cof cooof &lt;em>ErroresDeWindowsQueImpidenQueElSistemaArranque&lt;/em> coooooof y quiero recuperar los archivos en un equipo nuevo o recién formateado, entonces hay que tener mucho cuidado.&lt;/p>
&lt;p>Lo logré declarando una nueva tarea casi de manera idéntica al respaldo original pero teniendo mucho cuidado de &lt;strong>NO marcar&lt;/strong> la casilla que dice &lt;strong>Lanzar una copia de seguridad inmediatamente&lt;/strong>. En su lugar, la primera acción es precisamente recuperar la información del respaldo usando el asistente.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Aunque todavía estoy en fase de pruebas Duplicati me parece una buena opción para un entorno cuyos clientes utilizan windows. Es fácil de configurar y una vez que lo haces te olvidas de él. Solo una recomendación, &lt;strong>NUNCA OLVIDEN SU CONTRASEÑA&lt;/strong> de lo contrario es probable que tantas precauciones no sirvan de mucho.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.duplicati.com/" target="_blank" rel="noopener"
>Duplicati&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Consultar la wikipedia sin internet</title><link>https://linuxmanr4.com/2013/10/17/consultar-la-wikipedia-sin-internet/</link><pubDate>Thu, 17 Oct 2013 21:32:33 +0000</pubDate><guid>https://linuxmanr4.com/2013/10/17/consultar-la-wikipedia-sin-internet/</guid><description>&lt;p>Hace no muchos años se puso muy de moda la enciclopedia &lt;strong>Encarta&lt;/strong>, se veía instalada en todos lados, hay que aclarar que no era le mejor enciclopedia pero era lo que había en ese entonces.&lt;/p>
&lt;p>El aumento de la disponibilidad de Internet y la colaboración de una entusiasta comunidad dieron origen a la &lt;strong>Wikipedia&lt;/strong> un proyecto que la mayoría conocemos actualmente.&lt;/p>
&lt;p>Pero ¿Qué pasa si no tienes internet?, en México todavía existen muchos hogares y comunidades apartadas que no tienen a la mano esta forma de consulta y siendo honestos, las bibliotecas están cada vez más en desuso.&lt;/p>
&lt;p>Pues no os preocupeiś, se puede recurrir a un lector de la wikipedia fuera de linea ( &lt;em>offline&lt;/em>). Se de dos proyectos que hacen esto &lt;strong>CDPedia&lt;/strong> y &lt;strong>Kiwix&lt;/strong>.&lt;/p>
&lt;h2 id="cdpedia">CDPedia
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/CDPedia-PyAr-Python-Argentina.png"
alt="Página del proyecto CDPedia.">&lt;figcaption>
&lt;p>Página del proyecto CDPedia.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El mérito fundamental de &lt;strong>CDPedia&lt;/strong> es que entrega el contenido de la wikipedia en un formato muy popular, puede ser un CD o un DVD, por eso el tamaño de sus descargas contempla la capacidad de estos medios. Esto facilita que se pueda compartir la información descargada a un costo más que razonable. Un maestro puede descargar una copia de &lt;strong>CDPedia&lt;/strong> y pasarla a sus alumnos con lo que cuesta un refresco.&lt;/p>
&lt;p>El único problema que veo es que no se actualiza frecuentemente. La última versión incluye información hasta diciembre del 2012, aunque para la mayoría de los casos, el conocimiento incluido será más que suficiente para hacer una tarea escolar. Recuerdo que anteriormente vendían la enciclopedia Británica (la mejor de la época) que incluía uno o varios tomos adicionales con las actualizaciones pertinentes, después de todo, la física, las matemáticas y la historia no cambian frecuentemente (eso dice uno).&lt;/p>
&lt;h2 id="kiwix">Kiwix
&lt;/h2>&lt;p>&lt;strong>Kiwix&lt;/strong> es la herramienta oficial que ofrece la &lt;strong>wikipedia&lt;/strong> para explorar su contenido sin estar conectado a internet.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Biblioteca-Kiwix%5F004.png"
alt="Biblioteca - Contenido en español de la wikipedia">&lt;figcaption>
&lt;p>Biblioteca - Contenido en español de la wikipedia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ofrece, lo que podría llamarse un “paquete completo”, incluye una aplicación que prácticamente es portable lo que facilita que se pueda llevar hasta en un dispositivo USB de cuando menos unos 16GB. Eso para descargar todo el contenido en español. Incluso existe una versión para &lt;strong>android&lt;/strong>, lo que hace posible cargar con toda una enciclopedia en un teléfono o una tableta ¡Genial!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Expedici%C3%B3n-punitiva-contra-Francisco-Villa-Kiwix_005.png"
alt="Expedición punitiva contra Francisco Villa - Kiwix\_005">&lt;figcaption>
&lt;p>Expedición punitiva contra Francisco Villa - Kiwix_005&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ambos proyectos se pueden descargar usando bittorrent que recomiendo utilizar debido al tamaño de las descargas.&lt;/p>
&lt;p>Recuerden niños, es mejor estudiar, porque el fútbol da muchas decepciones.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20130713091357/https://python.org.ar/Proyectos/CDPedia" target="_blank" rel="noopener"
>CDPedia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20160830234849/http://www.kiwix.org/wiki/Main_Page/es" target="_blank" rel="noopener"
>Kiwix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://play.google.com/store/apps/details?id=org.kiwix.kiwixmobile" target="_blank" rel="noopener"
>Kiwix para Android&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Demo en línea de CodekaMX</title><link>https://linuxmanr4.com/2013/10/14/demo-linea-codekamx/</link><pubDate>Mon, 14 Oct 2013 17:33:36 +0000</pubDate><guid>https://linuxmanr4.com/2013/10/14/demo-linea-codekamx/</guid><description>&lt;p>Hace tiempo trabajé en la adaptación a México de un sistema español llamado Codeka y lo renombré como &lt;strong>CodekaMX&lt;/strong>.&lt;/p>
&lt;p>Con el tiempo surgieron varios sitios que hospedaban este sistema en línea, pero fueron desapareciendo, así que si quieren verlo trabajando pueden visitar esta dirección:&lt;/p>
&lt;h1 id="codeka-mx-en-línea">&lt;a class="link" href="https://linuxmanr4.com/codekamx/" >Codeka MX en línea&lt;/a>
&lt;/h1>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Codeka-MX-Facturacion-Web-Venta-de-mostrador.png"
alt="Codeka MX - Facturacion Web - Venta de mostrador" width="1100">&lt;figcaption>
&lt;p>Codeka MX - Facturacion Web - Venta de mostrador&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pueden ver todos los detalles de su instalación y descargarlo en este artículo: &lt;a class="link" href="https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/" >CODEKA MX, sistema de facturación web para México&lt;/a>
.&lt;/p>
&lt;p>El sistema funciona bien tanto en linux como en windows (mejor en linux), funciona con &lt;strong>PHP&lt;/strong> y &lt;strong>MySQL&lt;/strong> pero les advierto que &lt;strong>ya no trabajo en él&lt;/strong> y por el momento no pienso hacerle actualizaciones, lo comparto por si quieren empezar un proyecto similar, por si le quieren hacer algunas modificaciones o simplemente para aprender &lt;strong>PHP&lt;/strong>.&lt;/p>
&lt;p>Probablemente reinicie la base de datos con cierta frecuencia para evitar que se acumulen datos basura.&lt;/p>
&lt;p>Recuerden utilizar un navegador decente como &lt;strong>Chrome&lt;/strong> o &lt;strong>Firefox&lt;/strong>, si me dicen que no pueden ver el demo en Explorer ni les voy a contestar ;).&lt;/p>
&lt;p>Les advierto que ya no le doy soporte a este software, sin embargo, puede ser un buen punto de partida para otros proyectos o para analizar cómo funcionan sus componentes.&lt;/p>
&lt;h2 id="actualización---febrero-2018">Actualización - febrero 2018
&lt;/h2>&lt;p>El demo de CodekaMX dejó de funcionar. Simplemente no aguantó la actualización de php5 a php7 y al final tomé la decisión de dejar este blog con la versión más reciente de php por las ventajas de seguridad y desempeño.&lt;/p></description></item><item><title>FreeNAS vs NAS4Free vs OpenMediaVault</title><link>https://linuxmanr4.com/2013/10/01/nas-freenas-nas4free-openmediavault/</link><pubDate>Tue, 01 Oct 2013 17:57:29 +0000</pubDate><guid>https://linuxmanr4.com/2013/10/01/nas-freenas-nas4free-openmediavault/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/pexels-photo-325229.jpeg" alt="Featured image of post FreeNAS vs NAS4Free vs OpenMediaVault" />&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/Disco-duro-Maxtor.jpg"
alt="Disco duro Maxtor">&lt;figcaption>
&lt;p>Disco duro Maxtor&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todo empezó con la renovación del equipo de un usuario, para sus actividades ya resultaba insuficiente (Un Intel Celeron de 2 GHz con 768 MB RAM), era una computadora con varios años encima y sin posibilidades de expansión así que se le compró una nueva. Pero ¿Qué uso le podía dar al equipo viejo? se me ocurrió construir un &lt;a class="link" href="https://es.wikipedia.org/wiki/Network-attached_storage" title="Network Attached Storage"
target="_blank" rel="noopener"
>NAS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para compartir algunos archivos entre los usuarios y como depósito de respaldos automáticos.&lt;/p>
&lt;p>Tenía a la mano varios discos duros que me podían servir para hacer las pruebas iniciales y una computadora, que aunque viejita todavía arranca y le puedo sacar algunos años de provecho.&lt;/p>
&lt;p>Así que me puse manos a la obra.&lt;/p>
&lt;h1 id="buscando-un-nas">Buscando un NAS
&lt;/h1>&lt;p>Haciendo mi investigación en Google dos nombres aparecen al tope de la lista, &lt;strong>FreeNAS&lt;/strong> y &lt;strong>NAS4Free&lt;/strong> los dos basados en FreeBSD (no en linux), se controlan mediante una página web y pueden vivir alegremente en una memoria USB. OpenMediaVault esta basada en Debian, se instala en un disco duro y también se administra mediante una página web.&lt;/p>
&lt;h2 id="freenas">FreeNAS
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/freenas.png"
alt="FreeNAS">&lt;figcaption>
&lt;p>FreeNAS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La página de FreeNAS tiene una excelente pinta y fue mi primera opción, la documentación es un poco confusa pero razonable. Pude hacer mi USB de arranque sin mucho problema, pero (y siempre hay uno) para sacarle un buen provecho necesitaba una maquina enooooorme.&lt;/p>
&lt;p>Esto debido al sistema de archivos &lt;a class="link" href="https://es.wikipedia.org/wiki/ZFS_%28sistema_de_archivos%29" target="_blank" rel="noopener"
>ZFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, según la documentación se recomienda tener 1 GB de memoria por cada Terabyte instalado. Casi me dio un &lt;em>supiritaco&lt;/em> cuando leí la siguiente oración:&lt;/p>
&lt;blockquote>
&lt;p>“ &lt;em>The sweet spot for most users in home/small business is 16GB of RAM”&lt;/em> El punto óptimo para la mayoría de los usuarios en el hogar/pequeñas empresas es de 16 GB de RAM.&lt;/p>&lt;/blockquote>
&lt;p>Y me van a perdonar, pero eso es demasiado, en mi equipo del trabajo a duras penas alcanzo los 8GB !!! no no ¡NO!. Si quisiera gastar RAM usaría Windows 8!!!.&lt;/p>
&lt;p>Existe la opción de usar &lt;a class="link" href="https://es.wikipedia.org/wiki/UFS" title="Wikipedia: Unix File System"
target="_blank" rel="noopener"
>UFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en lugar de &lt;strong>ZFS&lt;/strong> para disminuir el consumo de memoria, pero cuando quise instalar, por ejemplo, el &lt;em>plugin&lt;/em> de bittorrent me decía que esa característica sólo estaba disponible en un sistema con &lt;strong>ZFS&lt;/strong>.&lt;/p>
&lt;p>No dudo que sea un excelente software, pero no era lo que estaba buscando, así que ¡NEEEEXT!&lt;/p>
&lt;h2 id="nas4free">NAS4Free.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/nas4free.png"
alt="NAS4free">&lt;figcaption>
&lt;p>NAS4free&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>NAS4Free es una rama de FreeNAS, se separaron en algún momento de su desarrollo, es mucho menos exigente en cuanto al consumo de RAM y ya tiene varios plugins preinstalados.&lt;/p>
&lt;p>Pero caray… ¡Que complicado es para instalarse!, sólo para que se den una idea, para instalarlo necesité de dos memorias USB, una como origen o instalador y otra como destino. Cosa que me parece totalmente innecesaria, pero en fin.&lt;/p>
&lt;p>La documentación es horrible y mal organizada, batalle horrores para encontrar algo de información, vamos, descubrir que necesitaba 2 memorias me llevó varios días.&lt;/p>
&lt;p>Logré instalarlo en una memoria USB de 4GB, y ya le estaba agarrando el modo, cuando en un comentario que me hicieron en Google Plus me sugirieron el siguiente participante.&lt;/p>
&lt;h2 id="openmediavault">OpenMediaVault
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/openmediavault.png"
alt="OpenMediaVault">&lt;figcaption>
&lt;p>OpenMediaVault&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para empezar OpenMediaVault (OMV) esta basado en linux, específicamente en Debian, así que supuse (y así fue) que me sentiría mucho más cómodo con él.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/OMV-NAS.jpg"
alt="OpenMediaVault NAS">&lt;figcaption>
&lt;p>OpenMediaVault NAS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>OMV se tiene que instalar en un disco duro y lo va a ocupar de manera completa, ya que no incluye herramientas de particionado durante su instalación. Y aunque sólo requiere unos cuantos GB para instalarse puede parecer exagerado instalar un disco duro de 80GB para que el sistema solo ocupe unos 4GB, pero fue el más pequeño que encontré.&lt;/p>
&lt;p>Después de su instalación me encontré con el primer bug, por alguna razón no podía entrar usando la página web que controla todo el sistema. Intentaba con mi nombre de usuario y contraseña, parecía que todo funcionaba bien pero en mi cara solo aparecía una página absolutamente en blanco ¡Tiene que ser una broma!.&lt;/p>
&lt;p>Tuve que corregirlo actualizando el sistema con el famoso &lt;strong>apt-get update&lt;/strong> &amp;amp; &lt;strong>apt-get upgrade&lt;/strong>, después de eso ya no hubo problemas para ingresar a la página.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/10/OMV-Samba-CIFS.png"
alt="OMV Samba CIFS">&lt;figcaption>
&lt;p>OMV Samba CIFS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recomiendo que se tomen su tiempo para acostumbrarse a la interfaz, algunas tareas pueden requerir varios “brincos” de un lugar a otro, por ejemplo, formatear un disco duro y prepararlo para su uso, puede hacer que visite el menú de &lt;strong>Discos físicos&lt;/strong> , pasando por &lt;strong>Sistemas de archivos&lt;/strong> , montar los discos y si hablamos de compartir son &lt;strong>Samba/CIFS&lt;/strong> prepárese para darle una buena repasada a los permisos de usuarios.&lt;/p>
&lt;p>Lamentablemente en la nueva versión (0.5 Sardaukar) todavía no esta disponible de manera oficial el &lt;em>plugin&lt;/em> de &lt;a class="link" href="http://www.transmissionbt.com/" title="Cliente de bittorrent"
target="_blank" rel="noopener"
>transmission&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que es el que administra las descargas que se hacen por bittorrent. Hay algunos intentos de hacer uno mediante &lt;em>plugins&lt;/em> NO oficiales, pero tuve muchos problemas instalándolos.&lt;/p>
&lt;p>Me gusta mucho el detalle de poder instalar un &lt;em>plugin&lt;/em> de ClamAV , programar un trabajo para que revise todos los días las carpetas compartidas en busca de virus, si hay algo que reportar me va a enviar un correo electrónico.&lt;/p>
&lt;h2 id="un-consejo">Un consejo
&lt;/h2>&lt;p>Si son unos manotas que le mueven a todo lo que encuentra, este tip les servirá en el futuro al trabajar con OMV. Respalden el archivo &lt;strong>/etc/openmediavault/config.xml&lt;/strong>, toda la configuración del sistema se guarda ahí y no esta de más tener una copia.&lt;/p>
&lt;h1 id="conclusiones">Conclusiones.
&lt;/h1>&lt;p>Si el objetivo es construir un NAS con capacidad empresarial, probablemente FreeNAS sea una buena opción. Si no se tienen tantos recursos, entonces NAS4Free podría cumplir con el cometido sin mayor problema, pero tenga cuidado con la documentación del proyecto.&lt;/p>
&lt;p>En mi caso por mis antecedentes con linux y con Ubuntu me sentí más cómodo con OpenMediaVault, el equipo funciona bastante bien a pesar de sus limitados recursos .&lt;/p>
&lt;p>Actualmente estoy usando el NAS para respaldos automáticos y carpetas compartidas en la red de usuarios de Windows, principalmente para compartir archivos grandes o carpetas completas, todo lo que no se pueda (o sea poco práctico) enviar por correo electrónico o skype. Pero se puede usar como un repositorio central de archivos multimedia o un servidor &lt;a class="link" href="http://es.wikipedia.org/wiki/Digital_Audio_Access_Protocol" title="Wikipedia: Digital Audio Access Protocol"
target="_blank" rel="noopener"
>DAAP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para iTunes, usted decide.&lt;/p>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Network-attached_storage" title="Network Attached Storage"
target="_blank" rel="noopener"
>Wikipedia: NAS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.freenas.org/" title="open-source NAS solution on the market"
target="_blank" rel="noopener"
>FreeNAS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.nas4free.org/" title="Open Source Storage NAS (Network-Attached Storage)"
target="_blank" rel="noopener"
>NAS4Free&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.openmediavault.org/" title="Un NAS basado en Linux"
target="_blank" rel="noopener"
>OpenMediaVault&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Descargar Manjaro Linux por torrent</title><link>https://linuxmanr4.com/2013/09/27/descargar-manjaro-linux-por-torrent/</link><pubDate>Fri, 27 Sep 2013 14:11:54 +0000</pubDate><guid>https://linuxmanr4.com/2013/09/27/descargar-manjaro-linux-por-torrent/</guid><description>&lt;p>Uno de los beneficios colaterales de usar &lt;strong>Manjaro Linux&lt;/strong> es que no tengo que estar reinstalando todo el sistema operativo para tener la última versión disponible. Basta con ejecutar un par de instrucciones en la terminal para estar a la última moda del software. Pero eso hace que no este muy al tanto de las nuevas opciones de instalación que tiene esta distribución.&lt;/p>
&lt;p>Bittorrent es una de las formas más confiables que existen para descargar archivos grandes en internet, por eso cuando instalé Manjaro por primera vez me pareció extraño que no hubiera una opción de descarga con &lt;strong>bittorrent&lt;/strong>, pero ahora la comunidad se ha puesto las pilas y tiene una página en SourceForge que lista los últimos lanzamientos en todos sus sabores (xfce, lxde, KDE, Gnome y Cinnamon).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/09/Manjaro-Community-Torrents.png"
alt="Manjaro Community Torrents">&lt;figcaption>
&lt;p>Manjaro Community Torrents&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="clientes-bittorrent">Clientes Bittorrent.
&lt;/h2>&lt;p>Para descargar manjaro solo tienen que descargar el archivo &lt;strong>torrent&lt;/strong> y abrirlo usando un cliente de bittorrent que se encargará de administrar la descarga. Les puedo recomendar los siguientes clientes para descargar archivos bittorrent.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.transmissionbt.com/" target="_blank" rel="noopener"
>Transmission (Mac, Linux)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.utorrent.com/intl/es/" target="_blank" rel="noopener"
>µTorrent (Mac, Windows)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.qbittorrent.org/" target="_blank" rel="noopener"
>qBittorrent (Linux, Windows y Mac)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Recuerden que para hacer una memoria de arranque en Manjaro es un poco diferente, por eso les recomiendo leer este artículo: &lt;a class="link" href="https://linuxmanr4.com/2012/12/13/creando-una-usb-de-arranque-para-manjaro/" >Creando una USB de arranque para Manjaro&lt;/a>
&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://sourceforge.net/projects/manjarotorrents/" target="_blank" rel="noopener"
>Manjaro Community Torrents&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Bloquear facebook con IPCop + iptables</title><link>https://linuxmanr4.com/2013/09/11/bloquear-facebook-con-ipcop-iptables/</link><pubDate>Wed, 11 Sep 2013 16:53:03 +0000</pubDate><guid>https://linuxmanr4.com/2013/09/11/bloquear-facebook-con-ipcop-iptables/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/09/access-denied.png" alt="Featured image of post Bloquear facebook con IPCop + iptables" />&lt;p>Se que bloquear facebook no me hace el administrador de redes más popular, pero yo solo soy la mano ejecutora, no el que dicta la sentencia.&lt;/p>
&lt;p>Bloquear facebook no es sencillo, algunos usan la estrategia de squid, otros usando iptables, creo que lo mejor es usar varias estrategias.&lt;/p>
&lt;h2 id="bloqueo-mediante-el-proxy-squidguard">Bloqueo mediante el proxy (squidGuard).
&lt;/h2>&lt;p>El bloqueo de proxy se logra usando el addon &lt;em>URL Filter&lt;/em>, en la configuración del addon marque varias categorías, incluyendo &lt;em>socialnet&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/09/socialnet.png"
alt="categoría socialnet en URL Filter">&lt;figcaption>
&lt;p>categoría socialnet en URL Filter&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con esto será más que suficiente para bloquear el dominio de facebook y disuadir a algunos usuarios.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/09/access-denied.png"
alt="Mensaje que muestra URL Filter cuando una dirección ha sido bloqueada.">&lt;figcaption>
&lt;p>Mensaje que muestra URL Filter cuando una dirección ha sido bloqueada.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si la vida fuera sencilla, con esto sería más que suficiente, pero los &lt;em>facebuadictos&lt;/em> encuentran la forma de brincarse este bloqueo. Y es que tampoco es muy díficil, con entrar usando el protocolo &lt;a class="link" href="http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure" title="Hypertext Transfer Protocol Secure"
target="_blank" rel="noopener"
>https&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es más que suficiente debido a que el proxy no funciona en conexiones seguras. Por eso es necesario poner en acción algunos bloqueos con iptables.&lt;/p>
&lt;h2 id="qué-dirección-ip-bloquear">¿Qué dirección IP Bloquear?
&lt;/h2>&lt;p>Lo primero es averiguar que dirección IP esta usando facebook, para eso use el comando &lt;strong>nslookup&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nslookup facebook.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Server: 127.0.0.1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Address: 127.0.0.1#53
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Non-authoritative answer:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Name: facebook.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Address: 173.252.110.27
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahi nos dice que la dirección es la &lt;strong>173.252.110.27&lt;/strong>, pero como esa no es la única que usa facebook, tendré que bloquear todo un rango de ips.&lt;/p>
&lt;h2 id="modificar-el-archivo-rcfirewalllocal">Modificar el archivo rc.firewall.local
&lt;/h2>&lt;p>IpCop es un poco sensible en cuanto a las configuraciones personalizadas, si no se hace en el archivo correcto, cualquier modificación que se haga desde la página de administración las eliminará.&lt;/p>
&lt;p>Para agregar &lt;a class="link" href="https://linuxmanr4.com/2015/09/10/bloquear-facebook-firewall-ipcop/" >reglas&lt;/a>
personalizadas se edita el archivo &lt;strong>/etc/rc.d/rc.firewall.local&lt;/strong> y agregar las líneas de bloqueo con iptables.&lt;/p>
&lt;p>La regla es muy sencilla, sólo hay que saber la dirección ip del cliente que se quiere bloquear, ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">iptables -I FORWARD -s direccion.ip.del.sentenciado -p tcp -d 173.252.110.0/18 -j DROP
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si se fijan usamos la dirección IP que nos da el comando &lt;strong>nslookup&lt;/strong> hasta la tercera cantidad, al final se agrega un cero y la máscara de red /18 para bloquear todo un rango de direcciones ip.&lt;/p>
&lt;p>Llegó el momento de agregar esta regla justo después de donde dice &lt;strong>## add your &amp;lsquo;start&amp;rsquo; rules here&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/sh
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1"># Used for private firewall rules&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># See how we were called.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">case&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> start&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;start&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Los desterrados sociales.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> iptables -I FORWARD -s ip.del.sentenciado.1 -p tcp -d 173.252.110.0/18 -j DROP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> iptables -I FORWARD -s ip.del.sentenciado.2 -p tcp -d 173.252.110.0/18 -j DROP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> iptables -I FORWARD -s ip.del.sentenciado.3 -p tcp -d 173.252.110.0/18 -j DROP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> stop&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;stop&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> reload&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$0&lt;/span> stop
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$0&lt;/span> start
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">## add your &amp;#39;reload&amp;#39; rules here&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> *&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Usage: &lt;/span>&lt;span class="nv">$0&lt;/span>&lt;span class="s2"> {start|stop|reload}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="archivo-rcfirewalllocal">Archivo: rc.firewall.local
&lt;/h3>&lt;p>De esa manera se aplicarán las reglas cada vez que se reinicie IPCop.&lt;/p>
&lt;p>El resultado será el siguiente:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/09/https-facebook-bloqueado.png"
alt="El resultado de bloquear facebook con iptables">&lt;figcaption>
&lt;p>El resultado de bloquear facebook con iptables&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este consejo se puede aplicar a una gran variedad de sitios y firewalls basados en iptables, espero que les sea de utilidad.&lt;/p>
&lt;p>&lt;a class="link" href="https://es.wikipedia.org/wiki/Bastard_Operator_from_Hell" target="_blank" rel="noopener"
>BOFH&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Foreveeer !!!!&lt;/p></description></item><item><title>Edición de video en Linux: Openshot y Kdenlive</title><link>https://linuxmanr4.com/2013/08/30/edicion-video-linux-openshot-kdenlive/</link><pubDate>Fri, 30 Aug 2013 22:20:10 +0000</pubDate><guid>https://linuxmanr4.com/2013/08/30/edicion-video-linux-openshot-kdenlive/</guid><description>&lt;p>Estoy trabajando en un pequeño proyecto editando unos videos, estuve revisando varias opciones y al final usé dos opciones muy reconocidas por el software libre: Openshot y Kdenlive.&lt;/p>
&lt;h2 id="openshot">Openshot
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/OpenShot-Transiciones.png"
alt="OpenShot - Transiciones">&lt;figcaption>
&lt;p>OpenShot - Transiciones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Openshot fue mi primera opción, ya lo había utilizado anteriormente cuando usaba Ubuntu. Me gusta porque mi escritorio principal es Cinnamon (o sea un Gnome pero más bonito), su interfaz es limpia y su flujo de trabajo también lo es.&lt;/p>
&lt;p>No me fue difícil encontrar las opciones, agregar clips, música, las transiciones, incluso tiene una opción para crear títulos animados con el apoyo de &lt;a class="link" href="http://www.blender.org/" title="Programa libre para crear objetos en 3d"
target="_blank" rel="noopener"
>blender&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/QT0gBNoLNzU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Todo iba genial hasta que llegué al clip número 20, entonces ya no todo fue tan “genial”. El programa empezó a ponerse lento, brincar de un lado al otro de la línea de tiempo tomaba unas largas pausas de aproximadamente 5 segundos y eso no era aceptable.&lt;/p>
&lt;p>La gota que derramó el vaso fue un bug que tiene Openshot al momento de hacer las transiciones, entre clips de video y a pesar de que le había indicado que el clip no tenía sonido (mute) en el último segundo fallaba la transición y reproducía el audio. Después de varios intentos de corregirlo o buscar alguna solución le dí la oportunidad a un nuevo candidato.&lt;/p>
&lt;h2 id="kdenlive">Kdenlive
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/kdenlive.png"
alt="kdenlive">&lt;figcaption>
&lt;p>kdenlive&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Instalar Kdenlive requiere descargar más paquetes básicamente porque es un software diseñado para KDE, pero eso es lo de menos. Lo primero que noté fue la interfaz saturada, ¡botones por todos lados!, unos pequeños, otros no tanto… ¡Momento! ahí hay uno que no había visto escondido en una esquina de la ventana. Juro que estuve a punto de abandonarlo y buscar otra opción.&lt;/p>
&lt;p>Pero los detalles que tiene en su interfaz los gana en el desempeño, las transiciones son suaves y es sencillo agregar clips de video. El programa se comportó de manera excelente aunque ya tenía más de 30 clips de video agregados que daban un total de media hora de duración incluyendo títulos y música de fondo.&lt;/p>
&lt;h2 id="kdenlive-wins-">Kdenlive Wins !!!
&lt;/h2>&lt;p>Por su desempeño me gusta más Kdenlive, después de acostumbrarse a su espartana y desordenada interfaz realmente se avanza muy rápido. Supongo que ambos programas se pueden complementar muy bien, si algo le falta a uno basta con generar un clip de video en uno y agregarlo en el otro.&lt;/p>
&lt;p>En general, si el proyecto es breve y con pocos clips, Openshot es mi primera opción sin lugar a dudas. Pero si el video es grande, con muchos clips, el pobre desempeño de Openshot hará que inevitablemente arranque Kdenlive y siga trabajando.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.openshotvideo.com/" target="_blank" rel="noopener"
>Openshot Video Editor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.kdenlive.org/" target="_blank" rel="noopener"
>Kdenlive: Free and open source video editor for GNU/Linux, Mac OS X and FreeBSD&lt;br>
&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikibooks.org/wiki/Kdenlive/Que_es_Kdenlive" title="Libro en español para aprender a usar kdenlive"
target="_blank" rel="noopener"
>Kdenlive: Wikibooks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>HSBC OpenDNS ¿Malware?</title><link>https://linuxmanr4.com/2013/08/21/hsbc-opendns-malware/</link><pubDate>Wed, 21 Aug 2013 16:46:53 +0000</pubDate><guid>https://linuxmanr4.com/2013/08/21/hsbc-opendns-malware/</guid><description>&lt;p>Hoy en la mañana me avisaron que no podían abrir el sitio &lt;strong>&lt;a class="link" href="https://www.hsbc.com.mx" target="_blank" rel="noopener"
>www.hsbc.com.mx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> por una alerta de malware.&lt;/p>
&lt;p>Investigué y efectivamente al intentar abrir el dominio me aparece el siguiente mensaje:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/hsbc-com-mx-opendns.png"
alt="hsbc com mx opendns malware">&lt;figcaption>
&lt;p>hsbc com mx opendns malware&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>OpenDNS has blocked &lt;strong>&lt;a class="link" href="https://www.hsbc.com.mx" target="_blank" rel="noopener"
>www.hsbc.com.mx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/strong> due to a security threat that was discovered by the &lt;strong>Umbrella Labs&lt;/strong>.&lt;br>
If you think this shouldn’t be blocked, please email us at &lt;a class="link" href="mailto:security-block@opendns.com" >security-block@opendns.com&lt;/a>
.&lt;/p>&lt;/blockquote>
&lt;p>Al tratarse de una institución bancaria se pone prenden varias alertas y se pone uno paranoico Tuve que cambiar los DNS’s por los de Google.&lt;/p>
&lt;p>Al parecer el sitio esta bien, al menos los certificados digitales de la página parecen seguros. Pero no son las maneras de informar, al menos deberían de establecer la razón del bloqueo.&lt;/p>
&lt;p>En un momento más voy a mandar un correo informando de esta situación a ver que me responden.&lt;/p>
&lt;h2 id="todo-arreglado">Todo arreglado…
&lt;/h2>&lt;p>Unas horas más tarde todo volvió a la normalidad, el sitio de &lt;strong>HSBC&lt;/strong> se mostraba nuevamente sin dificultades.&lt;/p>
&lt;p>Los motivos del bloqueo son un misterio, pero alcancé a tomar nota de la página que mostraban.&lt;/p>
&lt;p>Estos falsos positivos siempre son una molestia.&lt;/p>
&lt;h2 id="actualización">Actualización…
&lt;/h2>&lt;p>Al parecer retiraron el código malicioso y todo volvió a la normalidad, tal y como lo pueden leer aquí.&lt;/p></description></item><item><title>Smath Studio: Ayuda con las matemáticas.</title><link>https://linuxmanr4.com/2013/08/15/smath-studio-ayuda-con-las-matematicas/</link><pubDate>Thu, 15 Aug 2013 21:49:27 +0000</pubDate><guid>https://linuxmanr4.com/2013/08/15/smath-studio-ayuda-con-las-matematicas/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/SMath-Studio-Teorema-de-pitagoras.png"
alt="SMath Studio - Teorema de pitagoras">&lt;figcaption>
&lt;p>SMath Studio - Teorema de pitagoras&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A la mayoría de los pequeñines (y los adultos) no les gustan las matemáticas. No se si el problema es que no lo saben enseñar o a los alumnos no les interesa. Pero lo cierto es que las matemáticas mueven y sostienen al mundo. Es imposible escapar de su influencia.&lt;/p>
&lt;p>En alguna ocasión intenté explicar algunos conceptos y me di cuenta de que no estaba usando la herramienta correcta. Una hoja de cálculo puede servir para muchas cosas, pero para otras simplemente no funciona, es demasiado tabular, ya saben, renglones y columnas.&lt;/p>
&lt;p>Con una calculadora se presionan tantos botones que al final se olvida el concepto que se quiere explicar.&lt;/p>
&lt;p>&lt;strong>Smath studio&lt;/strong> es como hacer los problemas en papel, con la gran diferencia de que en el camino va resolviendo las operaciones y modificando sus resultados. Te ayuda a concentrarte en los conceptos, no en las operaciones.&lt;/p>
&lt;p>Es un programa muy completo, claro que al principio cuesta un poco de trabajo adaptarse a su estilo de trabajo. Por ejemplo, no hay una opción para cambiar el tipo de letra, aunque en matemáticas, eso es lo de menos.&lt;/p>
&lt;p>Soporta funciones, programación, matrices, fracciones, gráficas en 2 , en 3 dimensiones y operaciones que para ser sincero, no sabía que existían ¿Qué más se puede pedir?.&lt;/p>
&lt;p>Sus foros están llenos de ejemplos y si solo quieres probar el programa sin instalarlo también cuenta con una página que se llama &lt;a class="link" href="https://en.smath.info/cloud/" target="_blank" rel="noopener"
>Smath Studio in the Cloud&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/wiki-06-01.gif"
alt="smath studio - gráfica en 3d animada">&lt;figcaption>
&lt;p>smath studio - gráfica en 3d animada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Smath studio&lt;/strong> es un programa que igual te puede servir para explicar los quebrados, resolver problemas de física, química, álgebra, trigonometría y un largo etcétera.&lt;/p>
&lt;p>Disponible en versiones para windows y linux.&lt;/p>
&lt;h3 id="para-saber-más">Para saber más
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://en.smath.info/view/SMathStudio/summary" target="_blank" rel="noopener"
>Smath Studio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://en.smath.info/cloud/" target="_blank" rel="noopener"
>Smath Studio Live&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://en.smath.info/forum/" target="_blank" rel="noopener"
>Foros en inglés&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://smath.info/wiki/Funciones.ashx" target="_blank" rel="noopener"
>Wiki - Funciones y variables de usuario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Celular chino no sincroniza los contactos con Gmail</title><link>https://linuxmanr4.com/2013/08/12/celular-chino-no-sincroniza-los-contactos-con-gmail/</link><pubDate>Mon, 12 Aug 2013 19:52:33 +0000</pubDate><guid>https://linuxmanr4.com/2013/08/12/celular-chino-no-sincroniza-los-contactos-con-gmail/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/mini-7100.jpg"
alt="mini 7100">&lt;figcaption>
&lt;p>mini 7100&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pues que me llega un celular chinote, chidote, de esos con doble tarjeta SIM y televisión incluida, la caja decía &lt;strong>mini 7100&lt;/strong> una especie de clon del &lt;strong>Samsung Galaxy S3&lt;/strong> aunque con sus sutiles diferencias.&lt;/p>
&lt;p>Todo parecía funcionar correctamente hasta que por alguna razón no se sincronizaban los &lt;strong>Contactos&lt;/strong> con los de la cuenta de Google, en algunos foros recomendaban actualizar el firmware, pero lo pensé dos veces porque no sabía en donde buscar con este modelo sin marca.&lt;/p>
&lt;p>Copiarlos a mano no me pareció prudente porque mi amigo tiene más de 500 contactos en su haber y esa tarea podía llevar horas.&lt;/p>
&lt;h2 id="importar-los-contactos-de-gmail-al-teléfono">Importar los contactos de Gmail al teléfono.
&lt;/h2>&lt;p>Como la sincronización automática jamás iba a funcionar, propuse una importación de los contactos de Gmail al teléfono. Para eso aproveché una opción que tiene la aplicación GO Contacts Ex para importar contactos desde la memoria &lt;a class="link" href="https://es.wikipedia.org/wiki/MicroSD" title="wikipedia: Tarjeta MicroSD"
target="_blank" rel="noopener"
>microSD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
externa. El proceso es más o menos como sigue:&lt;/p>
&lt;h3 id="exportar-los-contactos-de-gmail">Exportar los contactos de Gmail.
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/Exportar-contactos.png"
alt="Exportar contactos de Gmail a vCard">&lt;figcaption>
&lt;p>Exportar contactos de Gmail a vCard&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo primero es exportar los contactos de Gmail al formato &lt;strong>VCF&lt;/strong> ( &lt;strong>vCard&lt;/strong>), para hacerlo sólo se tiene que entrar a la cuenta de Gmail.&lt;/p>
&lt;p>Al entrar a la cuenta de Gmail se selecciona el apartado de &lt;strong>Contactos&lt;/strong>, del lado derecho aparece un botón que dice &lt;strong>Más..&lt;/strong> y al desplegarse el menú aparece la opción de &lt;strong>Exportar&amp;hellip;&lt;/strong> ahí es donde elegimos que contactos y el formato al que queremos exportar.&lt;/p>
&lt;h3 id="copiar-los-contactos-a-la-memoria-del-teléfono">Copiar los contactos a la memoria del teléfono.
&lt;/h3>&lt;p>El paso anterior nos va a generar un archivo con la extensión &lt;strong>.vcf&lt;/strong>, este archivo lo copiamos en cualquier carpeta de la memoria microSD del teléfono. No importa su ubicación porque &lt;strong>GO Contacts Ex&lt;/strong> va a mostrar como opciones todos los archivos que encuentre con esa extensión.&lt;/p>
&lt;h3 id="instalar-go-contacts-ex">Instalar GO Contacts Ex
&lt;/h3>&lt;p>Afortunadamente el celular no tiene problemas para instalar aplicaciones de la &lt;strong>Google Play Store&lt;/strong>, así que busque la app &lt;strong>GO Contacts Ex&lt;/strong> y la instalé en el teléfono.&lt;/p>
&lt;p>Presionando el botón de menú aparece la opción de &lt;strong>Importar&lt;/strong>, automáticamente va a buscar el archivo con la extensión &lt;strong>.vcf&lt;/strong> y le indico que el destino es la memoria del teléfono (no la cuenta de gmail).&lt;/p>
&lt;p>Si todo salio bien, verán como aparece la información en sus &lt;strong>Contactos&lt;/strong>.&lt;/p>
&lt;p>Se que los celulares chinos no son los mejores, pero este no estaba tan mal y el precio era más que razonable.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/Importar-desde-tarjeta-SD.jpg"
alt="Importar desde tarjeta SD - Contactos Android">&lt;figcaption>
&lt;p>Importar desde tarjeta SD - Contactos Android&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Gracias al comentario de &lt;strong>AntonioBC&lt;/strong> me entero que la misma opción que aparece en GO Contacts Ex esta disponible en &lt;strong>Contactos&lt;/strong> la aplicación que traen por default la gran mayoría de los teléfonos con Android. Así que la instalación de la app se vuelve opcional y el procedimiento es más o menos el mismo.&lt;/p>
&lt;p>¡Muchas gracias por el dato Antonio!&lt;/p></description></item><item><title>Ajustar el volumen a los mp3 con mp3Gain</title><link>https://linuxmanr4.com/2013/08/09/ajustar-el-volumen-a-los-mp3-mp3gain/</link><pubDate>Fri, 09 Aug 2013 20:29:43 +0000</pubDate><guid>https://linuxmanr4.com/2013/08/09/ajustar-el-volumen-a-los-mp3-mp3gain/</guid><description>&lt;p>Hace poco mi pingüinita copio a una memoria varias canciones para escucharlas en el estéreo del automóvil y todo perfecto peeeeeero (siempre hay uno) algunas de estas canciones tienen el volumen muy alto y otros demasiado bajo.&lt;/p>
&lt;p>Después de un rato puede resultar un poco molesto, estás escuchando una canción que apenas se oye, le subes al volumen y en la siguiente le tienes que bajar y así durante las 64 canciones pues como que no.&lt;/p>
&lt;p>La solución es normalizar, hacer un ajuste a cada archivo para que el volumen sea más o menos constante. Y para hacer esto en linux estoy utilizando &lt;strong>mp3Gain&lt;/strong>.&lt;/p>
&lt;p>mp3Gain hace un análisis estadístico a cada archivo y modifica una etiqueta en el archivo mp3 donde hace el ajuste al nivel de ganancia ( &lt;em>gain&lt;/em>).&lt;/p>
&lt;p>De esa manera todos los archivos quedan debidamente equilibrados y lo mejor es que no se pierde la calidad de los archivos porque no se modifican.&lt;/p>
&lt;p>Dicho lo anterior, manos a los archivos y subale compaaaaaaa!!!.&lt;/p>
&lt;h2 id="modo-terminal">Modo terminal
&lt;/h2>&lt;p>Si la cantidad de archivos es importante, lo mejor es intentar en modo texto.&lt;/p>
&lt;p>Claro que primero necesitamos instalar mp3gain&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S mp3gain
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Posteriormente abrir una terminal y ubicarnos en la carpeta que queremos normalizar:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">find . -iname &amp;#39;*.mp3&amp;#39; -exec mp3gain -r -m +4 -c {} \;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Tengan en cuenta que este comando va a buscar todos los mp3 en todas las subcarpetas, de esa forma, de golpe y porrazo podemos normalizar una buena cantidad de archivos en relativamente menos tiempo.&lt;/p>
&lt;h2 id="modo-gráfico">Modo gráfico
&lt;/h2>&lt;p>Existe una interfaz gráfica para mp3Gain y se llama easyMP3Gain, para instalarla en &lt;strong>Manjaro&lt;/strong> basta con teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S easymp3gain-gtk2-bin
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/08/easyMP3Gain-0.5.0.png"
loading="lazy"
alt="easyMP3Gain"
>Como dice su nombre es muy sencilla, sólo hay que agregar los archivos, aplicar los ajustes y eso es todo.&lt;/p>
&lt;h3 id="si-quieren-saber-más">Si quieren saber más
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://mp3gain.sourceforge.net/index.php" title="mp3Gain"
target="_blank" rel="noopener"
>mp3Gain&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Normalize a Directory of MP3s on Linux&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/easymp3gain/" title="easyMP3Gain, una interfaz gráfica para mp3Gain"
target="_blank" rel="noopener"
>easyMP3Gain&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Squid local en Manjaro</title><link>https://linuxmanr4.com/2013/07/19/squid-local-en-manjaro/</link><pubDate>Fri, 19 Jul 2013 15:43:03 +0000</pubDate><guid>https://linuxmanr4.com/2013/07/19/squid-local-en-manjaro/</guid><description>&lt;p>Para dejar de estar jugando con la configuración de squid del servidor, mejor hice una instalación local en mi equipo, de esa manera puedo hacer varias pruebas sin correr el riesgo de &lt;em>”tumbar”&lt;/em> el servicio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/squid%5Flogo.png"
alt="squid caché web proxy">&lt;figcaption>
&lt;p>squid caché web proxy&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero pensándolo bien, a lo mejor lo dejo de manera definitiva, tengo un buen equipo y de esa forma le sacaría mejor provecho a sus 8 GB en RAM y al microprocesador de 4 núcleos que tengo. Llevo un par de días con el squid instalado y ha funcionado muy bien, muy rápido a la hora de presentar las páginas web, así que lo más probable es que lo deje definitivamente.&lt;/p>
&lt;p>¿Quieren instalar squid en Manjaro?, entonces … léanme los buenos !!!&lt;/p>
&lt;h2 id="instalar-squid">Instalar squid
&lt;/h2>&lt;p>Instalar squid en Manjaro es muy sencillo, solamente hay que instalar el paquete squid usando pacman:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S squid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="configurar-squid">Configurar squid
&lt;/h2>&lt;p>El paquete squid tiene un archivo de configuración básico y que debe de funcionar, pero si quieren hacer algunos ajustes entonces tienen que editar el archivo &lt;strong>/etc/squid/squid.conf&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/squid/squid.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como referencia, este es el archivo de configuración sin modificaciones.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Recommended minimum configuration:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Example rule allowing access from your local networks.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Adapt to list your (internal) IP networks from where browsing&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># should be allowed&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">localnet&lt;/span> &lt;span class="n">src&lt;/span> &lt;span class="mf">10.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="c1"># RFC1918 possible internal network&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">localnet&lt;/span> &lt;span class="n">src&lt;/span> &lt;span class="mf">172.16&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="c1"># RFC1918 possible internal network&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">localnet&lt;/span> &lt;span class="n">src&lt;/span> &lt;span class="mf">192.168&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.0&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="c1"># RFC1918 possible internal network&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">localnet&lt;/span> &lt;span class="n">src&lt;/span> &lt;span class="n">fc00&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="c1"># RFC 4193 local private network range&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">localnet&lt;/span> &lt;span class="n">src&lt;/span> &lt;span class="n">fe80&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="c1"># RFC 4291 link-local (directly plugged) machines&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">SSL_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">443&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">80&lt;/span> &lt;span class="c1"># http&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">21&lt;/span> &lt;span class="c1"># ftp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">443&lt;/span> &lt;span class="c1"># https&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">70&lt;/span> &lt;span class="c1"># gopher&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">210&lt;/span> &lt;span class="c1"># wais&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">1025&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">65535&lt;/span> &lt;span class="c1"># unregistered ports&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">280&lt;/span> &lt;span class="c1"># http-mgmt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">488&lt;/span> &lt;span class="c1"># gss-http&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">591&lt;/span> &lt;span class="c1"># filemaker&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">Safe_ports&lt;/span> &lt;span class="n">port&lt;/span> &lt;span class="mi">777&lt;/span> &lt;span class="c1"># multiling http&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">acl&lt;/span> &lt;span class="n">CONNECT&lt;/span> &lt;span class="n">method&lt;/span> &lt;span class="n">CONNECT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Recommended minimum Access Permission configuration:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Deny requests to certain unsafe ports&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">deny&lt;/span> &lt;span class="o">!&lt;/span>&lt;span class="n">Safe_ports&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Deny CONNECT to other than secure SSL ports&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">deny&lt;/span> &lt;span class="n">CONNECT&lt;/span> &lt;span class="o">!&lt;/span>&lt;span class="n">SSL_ports&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Only allow cachemgr access from localhost&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">allow&lt;/span> &lt;span class="n">localhost&lt;/span> &lt;span class="n">manager&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">deny&lt;/span> &lt;span class="n">manager&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># We strongly recommend the following be uncommented to protect innocent&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># web applications running on the proxy server who think the only&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># one who can access services on &amp;#34;localhost&amp;#34; is a local user&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http_access deny to_localhost&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Example rule allowing access from your local networks.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Adapt localnet in the ACL section to list your (internal) IP networks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># from where browsing should be allowed&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http_access allow localnet&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">allow&lt;/span> &lt;span class="n">localhost&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># And finally deny all other access to this proxy&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_access&lt;/span> &lt;span class="n">deny&lt;/span> &lt;span class="n">all&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Squid normally listens to port 3128&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">http_port&lt;/span> &lt;span class="mi">3128&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Que utilice mi instalación de pdnsd para resolver los dominios.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dns_nameservers&lt;/span> &lt;span class="mf">127.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Uncomment and adjust the following to add a disk cache directory.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cache_dir&lt;/span> &lt;span class="n">ufs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cache&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">squid&lt;/span> &lt;span class="mi">2048&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Leave coredumps in the first cache dir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">coredump_dir&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cache&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">squid&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cambio el tamaño de los objetos almacenados en caché de 4MB a 40MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cache_mem&lt;/span> &lt;span class="mi">64&lt;/span> &lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">maximum_object_size&lt;/span> &lt;span class="mi">40&lt;/span> &lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cache_replacement_policy&lt;/span> &lt;span class="n">heap&lt;/span> &lt;span class="n">GDSF&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add any of your own refresh_pattern entries above these.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">refresh_pattern&lt;/span> &lt;span class="o">^&lt;/span>&lt;span class="n">ftp&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1440&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="mi">10080&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">refresh_pattern&lt;/span> &lt;span class="o">^&lt;/span>&lt;span class="n">gopher&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">1440&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="mi">1440&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">refresh_pattern&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cgi&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/|&lt;/span>\&lt;span class="err">?&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">refresh_pattern&lt;/span> &lt;span class="o">.&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="mi">4320&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Antes de iniciar el servicio deben de crear las carpetas donde se van a almacenar los archivos que va a crear squid. Esto se logra con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo squid -z
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora si, con las carpetas listas, llegó el momento de iniciar el proceso de squid.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo systemctl start squid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como estoy haciendo algunas pruebas modifiqué algunos valores.&lt;/p>
&lt;p>Primero aumenté el tamaño del caché, por default son 256 MB, así que lo aumenté a unos 2 GB, aunque pensandolo bien ¿Porque no 8 GB? ¿o 16? ¬¬&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">cache_dir&lt;/span> &lt;span class="n">ufs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cache&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">squid&lt;/span> &lt;span class="mi">2048&lt;/span> &lt;span class="mi">16&lt;/span> &lt;span class="mi">256&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aumenté el tamaño de los objetos en memoria, de 8MB a 64MB&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cache_mem 64 MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aumenté el tamaño de los objetos almacenables a 40MB&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">maximum_object_size 40 MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cambié la política de reemplazo por &lt;strong>heap GDSF&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cache_replacement_policy heap GDSF
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y como un plus, le indiqué que usara mi servidor &lt;strong>pdnsd&lt;/strong> local, para que quede todo bien “acelerado”.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dns_nameservers 127.0.0.1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al final quedó de la siguiente forma:&lt;/p>
&lt;p>Si hacen ajustes en el archivo de configuración no es necesario reiniciar el servicio, en su lugar pueden ejecutar este comando para que active los cambios.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">squid -k reconfigure
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="ajustar-el-sistema-para-que-use-el-proxy">Ajustar el sistema para que use el proxy
&lt;/h2>&lt;p>En mi caso, uso Manjaro Linux con Cinnamon, así que lo único que tengo que hacer es indicarle al equipo que utilice el proxy, dejé el puerto por default que es el &lt;strong>3128&lt;/strong> como pueden ver en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Proxy-de-la-red.png"
alt="configuración del proxy de la red">&lt;figcaption>
&lt;p>configuración del proxy de la red&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="iniciar-squid-durante-el-arranque">Iniciar squid durante el arranque
&lt;/h2>&lt;p>Si todo esta funcionando bien, podemos indicarle al sistema que inicie automáticamente squid durante el arranque.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo systemctl enable squid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo, tendremos un web proxy local que se encargará de proporcionarnos todos los elementos que usamos con mayor frecuencia de forma rápida y con un consumo moderado de recursos de nuestro equipo.&lt;/p>
&lt;p>Me despido de ustedes deseándoles, feliz viernes y ¡Happy hacking!&lt;/p></description></item><item><title>Instalando un DNS Caché en Manjaro</title><link>https://linuxmanr4.com/2013/07/12/instalando-un-dns-cache-en-manjaro/</link><pubDate>Fri, 12 Jul 2013 16:40:17 +0000</pubDate><guid>https://linuxmanr4.com/2013/07/12/instalando-un-dns-cache-en-manjaro/</guid><description>&lt;p>Instalar un DNS Caché hace que nuestras consultas sobre nombre de dominio se hagan de manera local, de esa manera las consultas son mucho más rápidas y se ganan unos milisegundos cada vez que nuestro equipo necesite resolver la dirección de un dominio. Anteriormente había escrito un artículo similar pero en Ubuntu, ahora será Manjaro &lt;em>flavor&lt;/em>.&lt;/p>
&lt;h2 id="instalar-pdnsd">Instalar pdnsd
&lt;/h2>&lt;p>Pdnsd es un proxy de DNS permanente, esto es una ventaja, porque de manera local (y más rápida) guarda un registro de los dominios que consultamos frecuentemente y no se pierden durante el reinicio.&lt;/p>
&lt;p>Para instalarlo solo hay que teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S pdnsd
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a class="link" href="https://gist.github.com/gorakhargosh/1119508" target="_blank" rel="noopener"
>Pdnsd viene con un archivo de configuración de ejemplo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que nos servirá como base para nuestra propia configuración:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo cp /etc/pdnsd.conf.sample /etc/pdnsd.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora se tiene que adaptar el archivo de configuración que como pueden ver esta lleno de ejemplos, puedes usar el ejemplo marcado como &lt;a class="link" href="http://www.opendns.com/" target="_blank" rel="noopener"
>OpenDNS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, en mi caso, uso los &lt;a class="link" href="http://developers.google.com/speed/public-dns/" target="_blank" rel="noopener"
>DNS de Google&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 como pueden ver en este ejemplo:&lt;/p>
&lt;p>Para arrancar el programa es necesario:&lt;/p>
&lt;p>sudo systemctl start pdnsd&lt;/p>
&lt;h2 id="probando-nuestra-instalación">Probando nuestra instalación.
&lt;/h2>&lt;p>Para probar que pdnsd este funcionando vamos a preguntarle por la dirección de un dominio:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nslookup google.com 127.0.0.1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si obtienen una respuesta favorable es que nuestro DNS Caché esta funcionando correctamente.&lt;/p>
&lt;p>Para evaluar su tiempo de respuesta podemos ejecutar:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dig google.com|grep &amp;#34;Query time&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y obtendrán una respuesta muy similar a esta.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">;; Query time: 0 msec
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Probablemente la primera vez que lo ejecuten mostrará un tiempo que puede variar (218 msec por ejemplo), pero la segunda vez la respuesta debe de ser inmediata, precisamente porque el caché esta funcionando, ya no necesita pedir la dirección del DNS de internet y en su lugar utiliza la información que ya esta almacenada en nuestro equipo.&lt;/p>
&lt;h2 id="configurar-la-red">Configurar la red
&lt;/h2>&lt;p>Con eso es suficiente para que nuestro equipo empiece a resolver las direcciones de los dominios. Pero primero hay que hacer algunos ajustes a la configuración de la red para que que utilice el DNS de nuestra computadora.&lt;/p>
&lt;p>El siguiente ejemplo es de &lt;strong>Manjaro Cinnamon&lt;/strong> pero se puede adaptar fácilmente a cualquier otra distribución.&lt;/p>
&lt;p>Si nuestra configuración de red la obtenemos mediante un servicio DHCP, le indicamos que solamente obtenga las direcciones IP y que nosotros vamos a elegir nuestro DNS que en este caso será &lt;strong>127.0.0.1&lt;/strong> o &lt;strong>localhost&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Editando-Conexi%C3%B3n-cableada.png"
alt="Editando Conexión cableada">&lt;figcaption>
&lt;p>Editando Conexión cableada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si todo funciona correctamente, entonces le podemos decir a nuestro equipo que inicie pdnsd cada vez que arranque nuestro equipo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo systemctl enable pdnsd
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Usar un caché de DNS puede acelerar un poco la navegación, incluso se puede recomendar cuando no se cuenta con una conexión a internet estable o cuando los DNS de nuestro proveedor de internet están fallando (raro pero puede llegar a pasar). El impacto de pdnsd es mínimo en memoria y en recursos así que si ustedes quieren adentrarse un poco en estos temas pueden intentarlo.&lt;/p>
&lt;p>¡Happy hacking!&lt;/p>
&lt;h2 id="actualización---reiniciar-pdnsd">Actualización - Reiniciar pdnsd
&lt;/h2>&lt;p>Hay un pequeño bug en todo esto, al parecer pdnsd inicia operaciones antes de que este activa la conexión de la red. Esto provoca un fallo y deja de resolver los dominios.&lt;/p>
&lt;p>Para evitar esto, a manera de solución temporal, hice un pequeño &lt;em>script&lt;/em> que reinicia el servicio pdnsd. Lo ejecuto cuando ya entre a mi sesión y la tarjeta de red esta en funciones.&lt;/p>
&lt;h2 id="rpdnsdsh">rpdnsd.sh
&lt;/h2>&lt;p>Recuerden darle permisos de ejecución:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chmod +x rpdnsd.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Espero encontrar pronto una solución automática y permanente.&lt;/p>
&lt;h3 id="para-saber-más">Para saber más
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://en.wikipedia.org/wiki/Pdnsd" target="_blank" rel="noopener"
>pdnsd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://wiki.archlinux.org/index.php/Pdnsd_%28Espa%C3%B1ol%29" target="_blank" rel="noopener"
>Pdnsd (Español)-Arch wiki&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Iconos planos (flat icons) para LibreOffice en Manjaro</title><link>https://linuxmanr4.com/2013/07/09/iconos-planos-flat-icons-en-manjaro/</link><pubDate>Tue, 09 Jul 2013 22:08:22 +0000</pubDate><guid>https://linuxmanr4.com/2013/07/09/iconos-planos-flat-icons-en-manjaro/</guid><description>&lt;p>Gracias al buen amigo &lt;a class="link" href="https://plus.google.com/u/0/102127381454647147786/posts" target="_blank" rel="noopener"
>Yoyo Fernandez&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que publicó este artículo sobre como instalar este juego de iconos monocromáticos para Libre Office en Manjaro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Iconos-Monocrom%C3%A1ticos.png"
alt="Iconos Monocromáticos en LibreOffice">&lt;figcaption>
&lt;p>Iconos Monocromáticos en LibreOffice&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Realmente se ven muy bien y es muy sencillo de instalar.&lt;/p>
&lt;p>Se inicia cualquier programa de LibreOffice, puede ser Calc o Writer, se va al menú &lt;strong>Herramientas&lt;/strong>, y luego clic en &lt;strong>Opciones&lt;/strong>, en la sección que dice &lt;strong>Ver&lt;/strong> hay que cambiar el estilo de los iconos de &lt;strong>Tango (automático)&lt;/strong> a &lt;strong>Cristal&lt;/strong>.&lt;/p>
&lt;p>Luego en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cd /tmp &amp;amp;&amp;amp; wget https://github.com/hotice/myfiles/raw/master/images_flat.zip
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y una vez que descargue el archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo cp images_flat.zip /usr/lib/libreoffice/share/config/images_crystal.zip
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cerramos los programas de LibreOffice y al volverlos a abrir.. ¡Tadaaaan! aparecerán con el nuevo estilo de iconos planos y monocromáticos.&lt;/p></description></item><item><title>Política hasta en Squid: LRU, LFUDA, GDSF</title><link>https://linuxmanr4.com/2013/07/05/politica-de-reutilizacion-de-memoria-en-squid/</link><pubDate>Fri, 05 Jul 2013 13:42:34 +0000</pubDate><guid>https://linuxmanr4.com/2013/07/05/politica-de-reutilizacion-de-memoria-en-squid/</guid><description>&lt;p>Hace varios años, tomé un equipo que ya no soportaba ni el windows 98, le instalé IPCop y lo puse a trabajar como un servidor de internet (Firewall, DNS caché, DHCP, VPN, etc.) y ha funcionado de maravilla, prácticamente no tiene problemas y si los llega a presentar basta con un reinicio para volver al trabajo.&lt;/p>
&lt;p>Después le instalé el add-on &lt;a class="link" href="https://web.archive.org/web/20130806103643/https://www.advproxy.net/" title="Advanced Proxy - Addon para IPCp"
target="_blank" rel="noopener"
>Advanced Proxy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que permite configurar de una manera mucho más fina el servicio de &lt;a class="link" href="https://es.wikipedia.org/wiki/Proxy" title="Proxy - Wikipedia en español"
target="_blank" rel="noopener"
>proxy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.squid-cache.org/" title="Sitio oficial de Squid (en inglés)"
target="_blank" rel="noopener"
>Squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Noté que en la sección &lt;strong>Administración de la caché&lt;/strong> hay un apartado para elegir las políticas de reutilización de la memoria y del caché.&lt;/p>
&lt;h2 id="políticas-de-reutilización-de-la-memoria-y-el-caché">Políticas de reutilización de la memoria y el caché.
&lt;/h2>&lt;p>Squid guarda algunos archivos que se usan con frecuentemente, funciona de manera similar a los archivos temporales que usa nuestro navegador. El objetivo es, si un elemento de una página web ya lo descargaste para mostrar una página y en el caso de volverlo a solicitar,no sea necesario pedirla nuevamente a internet. En su lugar te muestra el archivo local que ya tienes almacenado, claro que con eso obtienes una importante ganancia de tiempo y la página se muestra mucho más rápido en la pantalla.&lt;/p>
&lt;p>Pero ¿Qué elementos se deben de conservar y cuales desechar? sobre todo cuando Squid esta solicitando espacio en el disco. Se necesita un método, una política, un criterio y es ahí donde entran las políticas de reutilización.&lt;/p>
&lt;p>En squid existen 4 opciones:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>LRU&lt;/strong> Es la política original de squid y mantiene los objetos usados más recientemente.&lt;/li>
&lt;li>&lt;strong>heap LFUDA&lt;/strong> ( &lt;em>Least Frequently Used with Dynamic Aging&lt;/em>).&lt;/li>
&lt;li>&lt;strong>heap GDSF&lt;/strong> ( &lt;em>Greedy-Dual Size Frequency&lt;/em>).&lt;/li>
&lt;li>&lt;strong>heap LRU&lt;/strong> LRU pero utilizando un &lt;a class="link" href="https://es.wikipedia.org/wiki/Mont%C3%ADculo_%28inform%C3%A1tica%29" target="_blank" rel="noopener"
>montículo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Pol%C3%ADticas-de-reutilizaci%C3%B3n-en-IPCop.png"
alt="Políticas de reutilización en IPCop">&lt;figcaption>
&lt;p>Políticas de reutilización en IPCop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No estoy muy seguro de cuales son las ventajas y desventajas de cada uno, no me he tomado el tiempo de analizar cada uno, pero en mi búsqueda de elegir cual sería el mejor me encontré con un documento muy detallado de los HP Laboratories llamado: &lt;em>Enhancement and Validation of Squid’s Cache Replacement Policy&lt;/em>, en el que hacen un análisis muy detallado de las políticas de reutilización y como afectan el rendimiento. Por lo tanto decidí darle una oportunidad a &lt;strong>GDSF&lt;/strong>.&lt;/p>
&lt;h2 id="cpu-más-activo">CPU más activo.
&lt;/h2>&lt;p>Han pasado un par de días desde que hice el cambio y pude notar que el CPU esta más activo, no tanto como para ocasionar un problema, de hecho el impacto es mínimo en el CPU pero si hay un aumento minimamente notable y eso es bueno, quiere decir que aún con mi hardware límitado (Pentium, 256MB RAM) no había problemas con el cambio.&lt;/p>
&lt;h2 id="menor-consumo-de-memoria-ram">Menor consumo de memoria RAM.
&lt;/h2>&lt;p>Este cambio fue mucho más notorio, el consumo de memoria RAM bajó notablemente, incluso por un momento el equipo dejó de utilizar la memoria swap, así que no tuve problemas para aumentar el parámetro &lt;strong>Tamaño en memoria para la caché (MB):&lt;/strong> de un valor de 8 a 100. Pero como pueden ver en la gráfica ha estado aumentando con el uso. Aún con este cambio sigue sin hacer uso de la memoria swap (hasta ahora).&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Gr%C3%A1ficos-del-sistema-usando-heap-GDSF.png"
alt="Gráficos del sistema usando heap GDSF - IPCop">&lt;figcaption>
&lt;p>Gráficos del sistema usando heap GDSF - IPCop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Realmente no era tan necesario hacer estos cambios, el pequeño servidorcito funciona como el primer día que lo instalé y dejará de hacerlo hasta que alguna descarga eléctrica lo deje inutilizable.&lt;/p>
&lt;p>Pero siempre es interesante hacer algunos ajustes, &lt;em>bit&lt;/em> ahorrado &lt;em>bit&lt;/em> ganado. Supongo que ahora le puedo exigir un poco más a este equipo y aprovecharlo mejor. Las páginas se están descargando, los correos siguen llegando, es un bonito día de verano.&lt;/p>
&lt;h2 id="actualización-la-memoria-swap-por-las-nubes-">Actualización: la memoria &lt;em>swap&lt;/em> por las nubes !!!
&lt;/h2>&lt;p>Recuerdan que les había comentado que moví el valor de &lt;strong>Tamaño en memoria para la caché (MB) cache_mem&lt;/strong> de 8 a 100, bueno, pues creo que es mejor que no lo hagan, esto fue lo que provocó :)&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/swap-por-las-nubes-cache%5Fmem.png"
alt="swap por las nubes cache\_mem">&lt;figcaption>
&lt;p>swap por las nubes cache_mem&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, el consumo de la &lt;em>swap&lt;/em> se elevó por las nubes y finalmente el proceso de squid dejó de funcionar. Así que regresa a su conservador valor de 8 MB :) . Aquí la explicación de porque no deben de mover mucho ese valor &lt;a class="link" href="http://wiki.squid-cache.org/SquidFaq/SquidMemory#My_Squid_process_grows_without_bounds." title="el proceso squid crece y crece"
target="_blank" rel="noopener"
>My Squid process grows without bounds&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h3 id="referencias">Referencias.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.squid-cache.org/Doc/config/cache_replacement_policy/" title="Documentación de Squid sobre la política de reutilización del caché"
target="_blank" rel="noopener"
>Squid configuration directive cache_replacement_policy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20230927190648/https://www.hpl.hp.com/techreports/1999/HPL-1999-69.html" target="_blank" rel="noopener"
>Enhancement and Validation of Squid’s Cache Replacement Policy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Mont%C3%ADculo_%28inform%C3%A1tica%29" target="_blank" rel="noopener"
>Montículo (heap)- Estructura de datos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
)&lt;/li>
&lt;/ul></description></item><item><title>Foros de Manjaro Linux en Español</title><link>https://linuxmanr4.com/2013/07/01/foros-de-manjaro-linux-en-espanol/</link><pubDate>Mon, 01 Jul 2013 21:21:49 +0000</pubDate><guid>https://linuxmanr4.com/2013/07/01/foros-de-manjaro-linux-en-espanol/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Manjaro-Linux-%E2%80%A2-Foros.png" alt="Featured image of post Foros de Manjaro Linux en Español" />&lt;p>LAMENTABLEMENTE ESTOS FOROS YA NO EXISTEN. En su lugar te recomiendo los &lt;a class="link" href="https://forum.manjaro.org/c/languages/espanol/67" target="_blank" rel="noopener"
>foros oficiales de Manjaro en español&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Como muchos sabrán Manjaro Linux es una distribución &lt;em>made in Alemania&lt;/em>, sus foros están en inglés, pero tienen una pequeña sección en español, que resulta insuficiente para la cantidad de preguntas y comentarios que surgen de esta distro basada en Arch. Muchas veces (y me incluyo) nos resulta complicado tratar de describir un problema o situación en otro idioma que no es el nuestro.&lt;/p>
&lt;p>A los recién llegados les resulta un poco complicado ajustarse a la filosofía de Manjaro, al manejo de paquetes con &lt;em>pacman&lt;/em>, actualizar el sistema, instalar paquetes de terceros con &lt;em>yaourt&lt;/em> y peor si tenemos algunos viejos hábitos de otras distros como Ubuntu, SUSE, Fedora o porque no decirlo, Windows.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Manjaro-Linux-%E2%80%A2-Foros.png"
alt="Manjaro Linux Foros en español">&lt;figcaption>
&lt;p>Manjaro Linux Foros en español&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por eso me dio mucho gusto enterarme de que recién abre al público los Foros de Manjaro Linux en español. Este &lt;a class="link" href="https://linuxmanr4.com/2015/05/07/carpetas-vacias-que-ocupan-espacio-en-linux/" >espacio para los simpatizantes de esta rápida y ágil distribución de Linux&lt;/a>
. El sitio apenas comienza así que no esperen encontrar mucha información, pero poco a poco se están registrando conocedores y novatos de Manjaro.&lt;/p>
&lt;p>Es de aplaudir el mérito del Administrador &lt;strong>Holmes&lt;/strong> ya que él es de Brasil y el español no es su idioma &lt;em>do nascimento&lt;/em> 😉&lt;/p>
&lt;p>No esperen más, dense una vuelta, regístrense, participen, comenten … allá nos vemos.&lt;/p>
&lt;ul>
&lt;li>Foros en español de Manjaro Linux&lt;/li>
&lt;/ul></description></item><item><title>Controles Faience + Iconos Elementary = Woooow</title><link>https://linuxmanr4.com/2013/06/24/faience-elementary-woooow/</link><pubDate>Mon, 24 Jun 2013 21:35:16 +0000</pubDate><guid>https://linuxmanr4.com/2013/06/24/faience-elementary-woooow/</guid><description>&lt;p>Estoy muy contento con el resultado, en estos días he &amp;ldquo;pimpeado&amp;rdquo; mi escritorio y me ha encantado el resultado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/elementary.png"
alt="iconos elementary, controles Faience">&lt;figcaption>
&lt;p>iconos elementary, controles Faience&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ví el anuncio del lanzamiento de la nueva versión del tema &lt;a class="link" href="https://elementaryos.org/journal/elementary-gtk-theme-33-released" target="_blank" rel="noopener"
>Elementary&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que utiliza ElementaryOS e intenté instalarlo en &lt;em>Manjaro&lt;/em> pero el resultado no fue del todo satisfactorio.&lt;/p>
&lt;p>Verán, el problema es que los textos de los menús aparecen juntos en algunos programas (no en todos) y aunque es un pequeño detalle se ven &amp;ldquo;raros&amp;rdquo; por decir lo menos. Estaré al pendiente de las actualizaciones por si corrigen este detalle.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Problema-con-los-men%C3%BAs.png"
alt="Problema con los menús con el tema Elementary">&lt;figcaption>
&lt;p>Problema con los menús con el tema Elementary&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como no encontré una forma de corregir este problema, en lugar de usar el tema de controles de Elementary lo sustituí por &lt;a class="link" href="https://tiheum.deviantart.com/art/GTK3-Gnome-Shell-Faience-255097456" target="_blank" rel="noopener"
>Faience&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se ve genial y combina perfectamente con los iconos de Elementary.&lt;/p>
&lt;p>Siguiendo las mismas recomendaciones de Elementary, la fuente elegida fue &lt;strong>Droid Sans&lt;/strong> y &lt;strong>Droid Sans Mono&lt;/strong> (para las terminales), el tamaño de letra número 9 le da una claridad perfecta a la fuente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Fuentes.png"
alt="Fuentes - Droid Sans">&lt;figcaption>
&lt;p>Fuentes - Droid Sans&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Temas.png"
alt="Configuración de Temas en Cinnamon">&lt;figcaption>
&lt;p>Configuración de Temas en Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para mi gusto es un escritorio en tonalidades azules, con textos y controles claros, limpios y bien definidos. ¡Genial!&lt;/p>
&lt;p>No es por nada pero hasta trabajo más a gusto :)&lt;/p></description></item><item><title>Plugin Beautify para Gimp o retoque digital para flojos</title><link>https://linuxmanr4.com/2013/06/19/plugin-beautify-para-gimp-o-retoque-digital-para-flojos/</link><pubDate>Wed, 19 Jun 2013 14:18:06 +0000</pubDate><guid>https://linuxmanr4.com/2013/06/19/plugin-beautify-para-gimp-o-retoque-digital-para-flojos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/9080051814_36f79706fa_z.jpg" alt="Featured image of post Plugin Beautify para Gimp o retoque digital para flojos" />&lt;p>Últimamente estoy publicando imágenes en mi blog y en las redes sociales que han pasado primero por el plugin Beautify para Gimp.&lt;/p>
&lt;p>A muchas personas les parece muy complicado Gimp (aunque a mi me parece más complicado el &lt;em>Fotoshó&lt;/em>) pero con este plugin se pueden obtener excelentes resultados sin profundizar demasiado en el uso de filtros, pinceles, efectos, brochas y todas esas cosas que parecen tan “complicadas” a los recién llegados.&lt;/p>
&lt;p>Pero tengo que admitir que a mi también me ahorra mucho tiempo, el plugin es realmente sencillo de utilizar, solo abro la imagen, elijo algunos filtros, hago unos ajustes y el resultado es muy profesional.&lt;/p>
&lt;p>Por ejemplo esta imagen:&lt;/p>
&lt;figure>&lt;img src="https://farm4.staticflickr.com/3821/9080051814%5F36f79706fa%5Fz.jpg"
alt="Amanecer Lagunero">&lt;figcaption>
&lt;p>Amanecer Lagunero&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sólo tuve que aplicar los efectos &lt;strong>Strong Contrast&lt;/strong>, después &lt;strong>Black and white&lt;/strong>, un marco bonito y listo !!!.&lt;/p>
&lt;p>El plugin divide los efectos en varias categorías como:&lt;/p>
&lt;ul>
&lt;li>Básico&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Lomograf%C3%ADa" target="_blank" rel="noopener"
>LOMO&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Studio&lt;/li>
&lt;li>Fashion&lt;/li>
&lt;li>Arte&lt;/li>
&lt;li>Gradiente&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Beautify%5F001.png"
alt="Efectos Lomo de Beautify">&lt;figcaption>
&lt;p>Efectos Lomo de Beautify&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se puede aplicar sólo un filtro o combinarlos. También incluye retoques de tonos de piel y una herramienta para &lt;a class="link" href="https://linuxmanr4.com/2016/09/05/agregar-texto-imagen-imagemagick/" >agregar un marco a la imagen&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Simple-Border%5F003.png"
alt="Simple Border de Beautify">&lt;figcaption>
&lt;p>Simple Border de Beautify&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final el resultado es una imagen muy profesional con muy poco esfuerzo.&lt;/p>
&lt;p>Lo complicado es instalarlo, bueno en Manjaro es realmente sencillo, solo tuve que teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yay gimp-plugin-beautify
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Supongo que en &lt;a class="link" href="https://linuxmanr4.com/2009/04/23/disponible-ubuntu-904-jaunty-jackalope/" >Ubuntu estará disponible&lt;/a>
mediante algún PPA o en la “tiendita” de software (realmente ya no recuerdo como se llama).&lt;/p>
&lt;h3 id="más-información">Más información
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/hejiann/beautify" target="_blank" rel="noopener"
>Beautify en GitHub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Cinnamon Fallback Mode en Manjaro</title><link>https://linuxmanr4.com/2013/06/17/cinnamon-fallback-mode-en-manjaro/</link><pubDate>Mon, 17 Jun 2013 16:58:06 +0000</pubDate><guid>https://linuxmanr4.com/2013/06/17/cinnamon-fallback-mode-en-manjaro/</guid><description>&lt;p>Hoy tuve un problema extraño, por alguna razón mi equipo que tiene instalado &lt;strong>Manjaro Linux&lt;/strong> y que había estado funcionando perfectamente durante meses se estaba desconectando de la red frecuentemente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/cinnamon-fallback-mode.jpg"
alt="Cinnamon fallback mode en Manjaro">&lt;figcaption>
&lt;p>Cinnamon fallback mode en Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="los-síntomas">Los síntomas
&lt;/h2>&lt;p>Lo notaba porque el icono de Skype empezaba a girar, como cuando intenta rehacer una conexión, el de Google Hangouts se ponía gris y Spotify me daba errores 114 de falta de conexión.&lt;/p>
&lt;p>El colmo fue que de pronto vi una computadora con los ojos en cruz y luego un mensaje avisándome que mi equipo estaba en un estado conocido como: &lt;strong>Cinnamon Fallback Mode&lt;/strong> cosa definitivamente no buena.&lt;/p>
&lt;p>Jamás me había pasado cosa similar, sospeché de las últimas actualizaciones de Manjaro, del nuevo kernel, luego creí que era un fallo del &lt;em>switch&lt;/em> al que estoy conectado y nada, no era nada de eso.&lt;/p>
&lt;h2 id="el-culpable-y-la-solución">El culpable y la solución.
&lt;/h2>&lt;p>El culpable y por consiguiente la solución llego de manera fortuita, una extensión telefónica tenía problemas para conectarse con el conmutador (usan SIP-Elastix) y al revisar la dirección IP del teléfono resultó que era la mía, por lo tanto estaba teniendo una colisión de IP !!!!, en windows me hubiera aparecido una notificación informándome el problema, pero no se porque razón Manjaro Cinnamon no estaba manejando bien esta situación, no me mostró mensaje alguno y el colmo fue que cayó en el &lt;strong>Cinnamon Fallback Mode&lt;/strong>.&lt;/p>
&lt;p>La solución fue sencilla, hice unos ajustes al servidor DHCP de mi servidor para evitar la colisión y asunto arreglado.&lt;/p>
&lt;p>Escribo este artículo por si a alguien más le pasa y su equipo este teniendo un comportamiento similar y no pierda tanto tiempo en identificar al culpable.&lt;/p>
&lt;p>¡Por eso nadie quiere los lunes! Grrrrrrrr.&lt;/p></description></item><item><title>Richard M. Stallman en Torreón.</title><link>https://linuxmanr4.com/2013/06/07/richard-m-stallman-en-torreon/</link><pubDate>Fri, 07 Jun 2013 13:57:16 +0000</pubDate><guid>https://linuxmanr4.com/2013/06/07/richard-m-stallman-en-torreon/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/06/Richard-Stallman-en-la-Laguna.jpg"
alt="Richard Stallman en la Laguna (imagen de Jeff McNeill)">&lt;figcaption>
&lt;p>Richard Stallman en la Laguna (imagen de Jeff McNeill)&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hace muchos años, Bill Gates, un joven empresario y programador sentó las bases del software privativo, ante esta situación &lt;a class="link" href="https://es.wikipedia.org/wiki/Richard_Stallman" target="_blank" rel="noopener"
>Richard M. Stallman&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como una forma de reaccionar a estas tremendas limitaciones estableció las libertades que dan vida y alma al &lt;strong>software libre&lt;/strong>.&lt;/p>
&lt;ol>
&lt;li>la libertad de usar el programa, con cualquier propósito.&lt;/li>
&lt;li>la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.&lt;/li>
&lt;li>la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.&lt;/li>
&lt;li>la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.&lt;/li>
&lt;/ol>
&lt;p>Estás libertades dieron pie a toda una enorme gama de software que se desarrollan y se distribuyen con la &lt;a class="link" href="https://es.wikipedia.org/wiki/GNU_Public_License" target="_blank" rel="noopener"
>GNU Public License&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
licencia que le da fundamento legal y protección a estas libertades.&lt;/p>
&lt;p>Dicho esto, es un placer para mí informarles que &lt;strong>Richard M. Stallman&lt;/strong> viene a Torreón el día &lt;strong>13 de junio&lt;/strong> a dar una conferencia en las instalaciones del &lt;a class="link" href="https://www.museoarocena.com/" target="_blank" rel="noopener"
>Museo Arocena&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>La conferencia es gratuita, pero el es cupo limitado, es necesario un registro que se puede hacer directamente en la página del &lt;a class="link" href="https://www.gulag.org.mx/" target="_blank" rel="noopener"
>GULAG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Estudiantes, maestros, gobierno, todos están invitados a escuchar a este hombre cuya influencia se puede ver en cada esquina de todo el mundo.&lt;/p>
&lt;h2 id="más-información-sobre-el-evento">Más información sobre el evento
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.gulag.org.mx/" target="_blank" rel="noopener"
>Página del GULAG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Richard Stallman en Torreón: Evento en facebook&lt;/li>
&lt;/ul></description></item><item><title>Ordenamiento rápido (Quick sort) en Ruby</title><link>https://linuxmanr4.com/2013/05/28/ordenamiento-rapido-quick-sort-en-ruby/</link><pubDate>Tue, 28 May 2013 21:16:02 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/28/ordenamiento-rapido-quick-sort-en-ruby/</guid><description>&lt;p>Ordenamiento rápido o &lt;em>Quick sort&lt;/em> es otro algoritmo clásico de ordenamiento.&lt;/p>
&lt;figure>&lt;img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/Sorting%5Fquicksort%5Fanim.gif"
alt="Animación del algoritmo quick sort – wikipedia">&lt;figcaption>
&lt;p>Animación del algoritmo quick sort – wikipedia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En este algoritmo se usa un &lt;em>pivote&lt;/em> que sirve para separar el arreglo, con el fin de dividir el ordenamiento en partes más pequeñas. La elección del &lt;em>pivote&lt;/em> se puede realizar de varias maneras, pero en este caso elegí la más sencilla que es el elemento que esta en medio del arreglo.&lt;/p>
&lt;p>Como pueden ver, el manejo de arreglos que hace Ruby está para dar miedo, luego viene la &lt;em>recursividad&lt;/em> que es básicamente cuando el método se llama nuevamente a sí mismo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aprendiendo ruby de mala manera.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Algoritmo de ordenamiento rápido - Quick Sort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aclaración:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ruby es un lenguaje que tiene muchas ventajas, incluyendo metodos de&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ordenamiento, sin embargo, como una forma de irme familiarizando con el&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lenguaje haré algoritmos clásicos de ordenamiento.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Si quieren conocer más detalles sobre este algoritmo, pueden consultar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># la wikipedia https://es.wikipedia.org/wiki/Quicksort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># autor: Francisco J. de la Torre (aka LinuxmanR4) web: http://linuxmar4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># mar 28 may 2013 13:28:20 CDT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="mi">99&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">86&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">82&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">45&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1">#Será ordenado mediante quick sort.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Array&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">quick_sort&lt;/span> &lt;span class="c1"># el métoodo quick_sort será el encargado de ordenar recursivamente el arreglo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">self&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="n">length&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="c1"># si el tamaño del arreglo es menor o igual a 1 no hay nada que ordenar.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pivote&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">self&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">length&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1"># La elección del pivote en este caso, es el elemento al centro del arreglo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">find_all&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">|&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">pivote&lt;/span> &lt;span class="p">}&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">quick_sort&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="c1"># se ordenan recursivamente todos los elementos más pequeños que el pivote&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">find_all&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">|&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">pivote&lt;/span> &lt;span class="p">}&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="c1"># más los elementos que son igual que el pivote&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">find_all&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">|&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">pivote&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">quick_sort&lt;/span> &lt;span class="c1"># y se ordenan recursivamente los elementos más grandes que el pivote&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;a = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">quick_sort&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; , &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hay varias curiosidades en este ejemplo.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>self&lt;/strong> es un objeto muy interesante, porque en ruby, durante cada instrucción, solo se puede manejar un objeto a la vez y &lt;a class="link" href="https://rubytutorial.wikidot.com/self" target="_blank" rel="noopener"
>self&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es ese objeto. Durante la &lt;em>recursividad&lt;/em> se van a manejar una gran cantidad de subarreglos más pequeños, de esta manera logramos hacerlo sin declarar otra variable.&lt;/li>
&lt;li>El método &lt;a class="link" href="https://ruby-doc.org/core-2.0/Enumerable.html#method-i-find_all" target="_blank" rel="noopener"
>find_all&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que devuelve otro arreglo que cumpla con la condición, en este caso valores más grandes o pequeños que el &lt;em>pivote&lt;/em>.&lt;/li>
&lt;/ul>
&lt;p>Como pueden ver Ruby es un lenguaje con un alto nivel de optimización, entre más lo conozco, más quiero seguir aprendiendo.&lt;/p>
&lt;h3 id="referencias">Referencias.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Quicksort" target="_blank" rel="noopener"
>Quick sort – wikipedia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Ordenamiento de burbuja en Ruby</title><link>https://linuxmanr4.com/2013/05/25/ordenamiento-de-burbuja-en-ruby/</link><pubDate>Sat, 25 May 2013 17:42:15 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/25/ordenamiento-de-burbuja-en-ruby/</guid><description>&lt;p>Nuevamente estoy intentando aprender &lt;strong>Ruby&lt;/strong>, pero para ser honesto se me dificulta un poco, esta tan optimizado que muchas cosas se pueden hacer en prácticamente en una solo línea. Además tengo muchos vicios de otros lenguajes, principalmente … por favor no se burlen…¡BASIC!.&lt;/p>
&lt;p>Entonces recordé la forma en que aprendí otros lenguajes como Pascal o C y fue haciendo algoritmos clásicos.&lt;/p>
&lt;p>Una serie de algoritmos clásicos son los de ordenamiento. Empecé con el más sencillo conocido como &lt;strong>Ordenamiento de burbuja&lt;/strong> o &lt;a class="link" href="http://en.wikipedia.org/wiki/Bubble_sort" target="_blank" rel="noopener"
>Bubble Sort&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es fácil de entender, se van comparando los elementos de una lista de manera ordenada en pares, si un par esta desordenado, intercambia sus lugares. Cuando se termina esta “pasada” se vuelve a empezar, hasta que ya no se hacen intercambios, en ese momento la lista esta ordenada.&lt;/p>
&lt;figure>&lt;img src="https://upload.wikimedia.org/wikipedia/commons/c/c8/Bubble-sort-example-300px.gif"
alt="Algoritmo de burbuja: wikipedia">&lt;figcaption>
&lt;p>Algoritmo de burbuja: wikipedia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les dejo el código que desarrolle en &lt;strong>Ruby&lt;/strong>, abunda en comentarios, en este caso se hace uso de arreglos y sus índices, también el manejo de bucles y condiciones, vamos que es un ejemplo redondo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aprendiendo ruby de mala manera.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Algoritmo de ordenamiento de burbuja&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aclaración:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ruby es un lenguaje que tiene muchas ventajas, incluyendo metodos de&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ordenamiento, sin embargo, como una forma de irme familiarizando con el&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lenguaje haré algoritmos clásicos de ordenamiento.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Si quieren conocer más detalles sobre este algoritmo, pueden consultar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># la wikipedia http://en.wikipedia.org/wiki/Bubble_sort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># a y b son arreglos idénticos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># autor: Francisco J. de la Torre (aka LinuxmanR4) web: http://linuxmar4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sáb 25 may 2013 12:19:30 CDT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="mi">99&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">86&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">82&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">45&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1">#Será ordenado mediante bubble sort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="mi">99&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">86&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">82&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">45&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1">#Al estilo Ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Empezamos con el ordenamiento burbuja en el arreglo a.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ¿Cuantos elementos tiene el arreglo?&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">count&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># count es un método, en este caso regresa 10 pero el indice del arreglo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># empieza en cero o sea, de cero a nueve, por eso le quito uno.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Los índices en ruby comienzan en cero, por eso a[0] = 99 , a[1] = 86&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">begin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kp">false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1"># Si se cumple la condición, entonces intercambiamos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">aux&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">aux&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kp">true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1"># if&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="c1"># El equivalente a i = i + 1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1">#while i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span> &lt;span class="k">while&lt;/span> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="kp">true&lt;/span> &lt;span class="c1"># Este ciclo se ejecuta mientras haga intercambios.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Llegó el momento de mostrar los resultados.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Arreglo ordenado con bubble sort.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># join lo uso para mostrar el arreglo separado por comas.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;a = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; , &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ahora la forma ruby.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;b = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; , &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al final del programa muestro como se debería de hacer el ordenamiento de un arreglo usando el método &lt;em>sort&lt;/em> de &lt;strong>Ruby&lt;/strong> que hace todo el trabajo en una sola línea de código.&lt;/p>
&lt;h3 id="para-aprender-más-sobre-ruby">Para aprender más sobre Ruby.
&lt;/h3>&lt;p>Estos sitios me han ayudado mucho para familiarizarme con Ruby y su filosofía:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20240321104956/http://rubymonk.com/" target="_blank" rel="noopener"
>RubyMonk: Como un método de estudio&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.tutorialspoint.com/ruby/index.htm" target="_blank" rel="noopener"
>Ruby Programming: Como referencia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Atendiendo a los comentarios del maestro &lt;a class="link" href="http://gwolf.org/" target="_blank" rel="noopener"
>Gunnar Wolf&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
hice la siguiente versión de este algoritmo de ordenación. Agregando un método a la clase &lt;em>Array&lt;/em> de nombre &lt;em>swap&lt;/em> que se encarga de hacer el intercambio de valores en el arreglo. Y usando &lt;em>times&lt;/em> para hacer el recorrido de todos los índices del arreglo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aprendiendo ruby de mala manera.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Algoritmo de ordenamiento de burbuja&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aclaración:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ruby es un lenguaje que tiene muchas ventajas, incluyendo metodos de&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ordenamiento, sin embargo, como una forma de irme familiarizando con el&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lenguaje haré algoritmos clásicos de ordenamiento.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Si quieren conocer más detalles sobre este algoritmo, pueden consultar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># la wikipedia http://en.wikipedia.org/wiki/Bubble_sort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># a y b son arreglos idénticos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># autor: Francisco J. de la Torre (aka LinuxmanR4) web: http://linuxmar4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># sáb 25 may 2013 12:19:30 CDT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Con observaciones de Gunnar Wolf. web: http://gwolf.org/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Empezamos con el ordenamiento burbuja en el arreglo a.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ------------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># El método swap sirve para intercambiar de posición los elementos de un arreglo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Array&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">swap&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">self&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="o">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">self&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">self&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="o">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">self&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="mi">99&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">86&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">82&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">45&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1">#Será ordenado mediante bubble sort&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">[&lt;/span>&lt;span class="mi">99&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">86&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">82&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">50&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">45&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1">#Al estilo Ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">begin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kp">false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">count&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">times&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="o">|&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="c1"># Si se cumple la condición, entonces intercambiamos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">swap&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kp">true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1"># if&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">next&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span> &lt;span class="c1"># times&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">end&lt;/span> &lt;span class="k">while&lt;/span> &lt;span class="n">intercambio&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="kp">true&lt;/span> &lt;span class="c1"># Este ciclo se ejecuta mientras haga intercambios.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Llegó el momento de mostrar los resultados.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Arreglo ordenado con bubble sort.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># join lo uso para mostrar el arreglo separado por comas.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;a = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; , &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ahora la forma ruby.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">puts&lt;/span> &lt;span class="s2">&amp;#34;b = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34; , &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Script para respaldar bases de datos MySQL versión 2</title><link>https://linuxmanr4.com/2013/05/22/script-respaldar-mysql/</link><pubDate>Wed, 22 May 2013 16:41:40 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/22/script-respaldar-mysql/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/Script-para-respaldar-bases-de-datos-MySQL-version-2.jpg" alt="Featured image of post Script para respaldar bases de datos MySQL versión 2" />&lt;p>Hace tiempo hice un script para respaldar bases de datos MySQL de un servidor MySQL, pero dejó de funcionar. Esta nueva versión arregla los problemas del anterior, aunque en esencia hace las mismas funciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/pinguino%5Fterminal.jpg"
alt="Un pingüino creando un programa para respaldar bases de datos mysql. ">&lt;figcaption>
&lt;p>Un pingüino creando un programa para respaldar bases de datos mysql.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-script">El script
&lt;/h2>&lt;p>El script anterior dejó de funcionar porque en una actualización del paquete &lt;strong>mysql-clients&lt;/strong> no permitía la comprobación, reparación y optimización de las bases de datos en una sola línea. Así que para evitar este problema tuve que separar estas tareas.&lt;/p>
&lt;p>Con este código primero &lt;a class="link" href="https://linuxmanr4.com/2016/05/30/mi-celular-no-carga/" >revisamos y reparamos&lt;/a>
cualquier error que pudieran tener todas las tablas de nuestro servidor de trabajo&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mysqlcheck -c -A --auto-repair -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para luego optimizar las tablas&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mysqlcheck -A -o -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Claro que ahora el script se tarda un poco más en ejecutar, pero yo no hice las reglas :) .&lt;/p>
&lt;p>Adicionalmente, le hice algunos ajustes para que el nombre de los archivos de volcado incluyera información como la fecha, hora, minutos y segundos.&lt;/p>
&lt;p>Si quieren darle un vistazo al código completo verán que es muy simple de ajustar.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/sh
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa es software libre. Puede redistribuirlo y/o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># modificarlo bajo los términos de la Licencia Pública General&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># de GNU según es publicada por la Free Software Foundation,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># bien de la versión 2 de dicha Licencia o bien (según su&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># PROPÓSITO PARTICULAR. Para más detalles, véase la Licencia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pública General de GNU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyleft 2012&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Autor: Linuxman inguanzo@gmail.com http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">NAME&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;MySQL Backup&amp;#34;&lt;/span> &lt;span class="c1"># Nombre script.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Descripción: Script para hacer un respaldo de todas las bases de datos de un servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">DATE&lt;/span>&lt;span class="p">:=&lt;/span>&lt;span class="k">$(&lt;/span>date +&lt;span class="s1">&amp;#39;%Y-%m-%d&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Variable para Fecha.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">TIME&lt;/span>&lt;span class="p">:=&lt;/span>&lt;span class="k">$(&lt;/span>date +&lt;span class="s1">&amp;#39;%R&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Variable para Hora.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">WORK_DIR&lt;/span>&lt;span class="p">:=/home/usuario/directorioderespaldo/&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Directorio de trabajo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">IP_SERVIDOR_MYSQL&lt;/span>&lt;span class="p">:=IP_DEL_SERVIDOR_MYSQL&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Dirección del servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">USUARIO&lt;/span>&lt;span class="p">:=root&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Usuario con privilegios a la base de datos. Ej. root&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">DB_PASS&lt;/span>&lt;span class="p">:=CONTRASEÑA&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># La contraseña de root de nuestro servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Antes de respaldar optimizamos y reparamos las bases de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">clear
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Revisando y reparando las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=========================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mysqlcheck -c -A --auto-repair -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Optimizando las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=========================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mysqlcheck -A -o -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cambiamos a nuestro directorio de trabajo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="nv">$WORK_DIR&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Iniciando el vaciado de todas las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=================================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Iniciamos un vaciado de todas las bases de datos del servidor.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">TABLES&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>mysql -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u&lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span> --execute&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;SHOW DATABASES;&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span>awk &lt;span class="s1">&amp;#39;{print($1)}&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span>grep -v &lt;span class="s2">&amp;#34;Database&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span>grep -v &lt;span class="s2">&amp;#34;information_schema&amp;#34;&lt;/span>&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> table in &lt;span class="nv">$TABLES&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Respaldando la tabla &lt;/span>&lt;span class="nv">$table&lt;/span>&lt;span class="s2">...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">file&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$table&lt;/span>.respaldo_&lt;span class="sb">`&lt;/span>date +%Y%m%d-%H:%M:%S&lt;span class="sb">`&lt;/span>.sql
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> mysqldump -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$USUARIO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -p&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="nv">$table&lt;/span> &amp;gt; &lt;span class="nv">$file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Comprimiendo &lt;/span>&lt;span class="nv">$file&lt;/span>&lt;span class="s2"> ...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> gzip &lt;span class="nv">$file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;RESPALDO TERMINADO!!!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sólo tienen que teclear los valores adecuados para los parámetros &lt;strong>WORK_DIR&lt;/strong>, &lt;strong>IP_DEL_SERVIDOR_MYSQL&lt;/strong>, &lt;strong>USUARIO&lt;/strong> y &lt;strong>CONTRASEÑA&lt;/strong>.&lt;/p>
&lt;p>Y por su puesto, darle permisos de ejecución al script, Ej.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">chmod +x mysql_backup.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="problemas-con-mariadb-clients-1054">Problemas con mariadb-clients (1054)
&lt;/h2>&lt;p>Esta es una actualización, he usado este script durante muchos años y nunca me había tenido problemas, hasta ahora.&lt;/p>
&lt;p>Y es que en mi Manjaro se dejó de utilizar MySQL y su lugar lo ocupó &lt;a class="link" href="https://mariadb.com/" target="_blank" rel="noopener"
>MariaDB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esto es perfectamente normal, lo mismo ocurrió en muchas distribuciones de Linux.&lt;/p>
&lt;p>Pero Manjaro es una distribución de actualización constante y tarde o temprano iba a tener un problema.&lt;/p>
&lt;p>Resulta que mi servidor utiliza la versión 5.0 de MySQL y parece que no se lleva bien con la versión &lt;strong>10.11.2&lt;/strong> del paquete &lt;strong>mariadb-clients&lt;/strong>.&lt;/p>
&lt;p>Al ejecutar el script aparece un error como este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mysqldump: Couldn&amp;#39;t execute &amp;#39;select column_name, extra, generation_expression, data_type from information_schema.columns where table_schema=database() and table_name=&amp;#39;db&amp;#39;&amp;#39;: Unknown column &amp;#39;generation_expression&amp;#39; in &amp;#39;field list&amp;#39; (1054)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Inicie mi investigación en Google, intenté varios ajustes pero no, lo mejor es hacer un &lt;em>downgrade&lt;/em> a la &lt;a class="link" href="https://linuxmanr4.com/2014/02/11/regresar-paquetes-version-anterior-manjaro-downgrade/" >versión anterior&lt;/a>
que funciona que es la número &lt;strong>10.10.3&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo downgrade mariadb-clients mariadb-libs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para evitar que estos paquetes se actualicen los agregué a la lista de paquetes ignorados en el archivo &lt;strong>/etc/pacman.conf&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">#
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># GENERAL OPTIONS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[options]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">IgnorePkg = mariadb-clients mariadb-libs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Noten que también hay que hacer un &lt;em>downgrade&lt;/em> al paquete &lt;strong>mariadb-libs&lt;/strong> ya que uno depende del otro.&lt;/p>
&lt;p>Otra solución sería hacer una actualización al servidor MySQL pero eso implica un montón de pruebas de compatibilidad con otros elementos de programación y la verdad no le veo el caso.&lt;/p>
&lt;p>En todos estos años jamás he perdido un registro con la versión que estoy utilizando.&lt;/p>
&lt;p>Así que con hacer el downgrade es más que suficiente para que el script vuelva a funcionar.&lt;/p>
&lt;p>Si tienen cualquier comentario al respecto se los agradeceré. Espero que les sea de utilidad.&lt;/p></description></item><item><title>De pajaritos, chismes y redes sociales</title><link>https://linuxmanr4.com/2013/05/22/pajaritos-chismes-redes-sociales/</link><pubDate>Wed, 22 May 2013 13:48:19 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/22/pajaritos-chismes-redes-sociales/</guid><description>&lt;p>Desde que existen las redes sociales escribo menos, anteriormente hacia un post hasta por el paso de una mosca, ahora esos temas los anuncio en un tweet y mi alma descansa.&lt;/p>
&lt;p>El 15 de abril anuncie la creación de sendas páginas/comunidades/twitter de este blog en sus respectivas redes sociales y estos han sido los resultados hasta el día de hoy.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/Redes-Sociales.jpg"
alt="Twitter, facebook y Google Plus">&lt;figcaption>
&lt;p>Twitter, facebook y Google Plus&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="twitter">Twitter.
&lt;/h2>&lt;p>Para ser sincero, no me gusta mucho twitter, desde sus inicios me pareció un servicio muy recortado, pero tengo que admitir que es muy popular. A la fecha cuento con 6 seguidores, así es, bueno llegaron a ser 8 pero perdí 2 en el camino y eso que eran robots !!!. Mi falta de actividad en twitter es precisamente porque no me gusta, así que no les extrañe que no publique tan seguido.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://x.com/Linuxmanr4" target="_blank" rel="noopener"
>@LinuxmanR4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="facebook">Facebook.
&lt;/h2>&lt;p>La red de los chismes por excelencia, no por nada es tan popular con las mujeres :-P. Veamos en facebook tengo 33 &lt;strong>Me gusta&lt;/strong> no son muchos, pero cuentan, la mayoría son mis amigos, sólo que ahora separo (o eso intento) las noticias del blog con las personales. El problema es que tiendo a repetir la misma información en todas las &lt;a class="link" href="https://linuxmanr4.com/2022/05/13/bloquear-facebook-tiktok-redes-sociales-pfblockerng/" >redes sociales&lt;/a>
y eso me parece un desperdicio de tiempo.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.facebook.com/BlogLinuxmanR4" target="_blank" rel="noopener"
>BlogLinuxmanR4 en facebook&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="google-plus">Google Plus.
&lt;/h2>&lt;p>Personalmente es mi red favorita y donde recibo las participaciones más interesantes. Al momento de escribir esta nota cuento con 54 miembros, las conversaciones son interesantes, inteligentes y es la red social en la que más participo.&lt;/p>
&lt;p>Supongo que la calidad de la información que recibo de esta red social tiene mucho que ver con la forma en que se filtran los amigos en círculos.&lt;/p>
&lt;p>Hace pocos días &lt;a class="link" href="https://linuxmanr4.com/2019/02/19/torreon-antiguo-comunidad-google-plus/" >Google Plus&lt;/a>
recibió una buena cantidad de mejoras junto con nuevo estilo, al principio batallas un poco en acostumbrarte pero la realidad es que a mi me parece genial lo que están haciendo los amigos de Mountain View.&lt;/p>
&lt;ul>
&lt;li>LinuxmanR4 - Comunidad en G+ (Ya no existe)&lt;/li>
&lt;/ul>
&lt;p>¿Cuál es tu red social favorita?&lt;/p></description></item><item><title>No aparece la opción de comprimir una carpeta en Nemo</title><link>https://linuxmanr4.com/2013/05/16/no-aparece-la-opcion-de-comprimir-una-carpeta-en-nemo/</link><pubDate>Thu, 16 May 2013 21:05:54 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/16/no-aparece-la-opcion-de-comprimir-una-carpeta-en-nemo/</guid><description>&lt;p>Es una opción que sabía que me faltaba, anteriormente en Ubuntu solamente tenía que darle clic con el botón derecho del mouse, seleccionar la opción de &lt;strong>comprimir&lt;/strong> , seleccionar algunas opciones y listo, eso era más que suficiente para generar un archivo zip, 7z , bz2 o hasta un simple tar si así lo deseaba.&lt;/p>
&lt;p>Pero desde que instalé Manjaro Cinnamon perdí esa opción y para ser sincero tampoco le había dedicado algo tiempo para encontrar una solución.&lt;/p>
&lt;p>Hasta el día de hoy que se me ofreció comprimir varias carpetas y eso de andar generando archivos usando el &lt;strong>Gestor de archivadores&lt;/strong> (oléeeeee) dejó de ser práctico.&lt;/p>
&lt;p>Para mi suerte solo me faltaba instalar una pequeña extensión para &lt;a class="link" href="https://en.wikipedia.org/wiki/Nemo_%28file_manager%29" target="_blank" rel="noopener"
>Nemo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S nemo-fileroller
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después solo tuve que cerrar mi sesión, volver a entrar y listo ya estaba nuevamente la opción de &lt;strong>Comprimir…&lt;/strong> que estaba necesitando.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/opci%C3%B3n-comprimir.png"
alt="opción comprimir en nemo">&lt;figcaption>
&lt;p>opción comprimir en nemo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nemo es el administrador de archivos de &lt;a class="link" href="https://linuxmint.com/" target="_blank" rel="noopener"
>LinuxMint&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, supongo que este problema también puede ocurrir en las distribuciones que utilicen Cinnamon.&lt;/p></description></item><item><title>Adaptar un ventilador de CPU Intel para un AMD</title><link>https://linuxmanr4.com/2013/05/03/ventilador-cpu-intel-amd/</link><pubDate>Fri, 03 May 2013 21:50:26 +0000</pubDate><guid>https://linuxmanr4.com/2013/05/03/ventilador-cpu-intel-amd/</guid><description>&lt;p>Hoy estuve intentando recuperar cuando menos un equipo de mi cementerio digital y logré que iniciara un equipo. El único problema era el ventilador del microprocesador.&lt;/p>
&lt;p>El abanico que tenía funciona, pero hace más ruido que aire, más parece una matraca con un sonidito monótono y tranquilizante que un mecanismo enfriador, pero no me iba a poner exigente.&lt;/p>
&lt;p>El peligro era que el disipador se estaba calentando demasiado, llegaba a unos &amp;ldquo;agradables&amp;rdquo; 65°C y amenazaba con subir todavía más, ahora que lo pienso a lo mejor esa fue la causa de su fallo inicialmente, pero esa es otra historia.&lt;/p>
&lt;p>Tengo varios ventiladores, pero la mayoría son de la familia Intel y este era para un microprocesador AMD.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/El-ventilador-de-AMD-y-el-ventilador-de-INTEL.jpg"
alt="El ventilador de AMD y el ventilador de INTEL">&lt;figcaption>
&lt;p>El ventilador de AMD y el ventilador de INTEL&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ventilador-intel---amd">Ventilador Intel - AMD
&lt;/h2>&lt;p>Con un poco de ingenio, usé el cuadro del ventilador descompuesto, quité el centro del ventilador y sobre él monté el que si funciona. 2 de los agujeritos los utilicé para amarrar el ventilador y los otros dos para atornillarlo al disipador.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/El-abanico-de-AMD-funcion%C3%B3-como-soporte.jpg"
alt="El abanico de AMD funcionó como soporte.">&lt;figcaption>
&lt;p>El abanico de AMD funcionó como soporte.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Conecté todo y dejé funcionando la computadora un rato. Ahora el máximo de temperatura llega a unos 55°C y el disipador de calor se puede tocar sin sentir que se quema el dedo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/Prueba-de-fuego.jpg"
alt="Prueba de fuego">&lt;figcaption>
&lt;p>Prueba de fuego&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para una emergencia está bien, probablemente no voy a poder poner el gabinete en posición vertical, pero igual y hace aire :).El verdadero problema es que muchas veces estos &amp;ldquo;arreglos&amp;rdquo; temporales se vuelven permanentes.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/05/Clima-fresco-en-el-CPU.jpg"
alt="Clima fresco en el CPU">&lt;figcaption>
&lt;p>Clima fresco en el CPU&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Que tengan un buen fin de semana !!! :)&lt;/p></description></item><item><title>Eliminar paquetes que no son necesarios en Manjaro</title><link>https://linuxmanr4.com/2013/04/30/eliminar-paquetes-que-no-son-necesarios-en-manjaro/</link><pubDate>Tue, 30 Apr 2013 13:39:07 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/30/eliminar-paquetes-que-no-son-necesarios-en-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/eliminando-archivos-huerfanos-en-manjaro.jpg" alt="Featured image of post Eliminar paquetes que no son necesarios en Manjaro" />&lt;p>Conforme pasa el tiempo y vamos instalando y desinstalando paquetes se van acumulando archivos que no necesitamos, es decir paquetes que se instalaron alguna vez pero que ahora ya no son necesarios. A estos archivos se les conoce como &lt;strong>paquetes huérfanos&lt;/strong>.&lt;/p>
&lt;p>Para obtener un listado de los paquetes huérfanos de nuestro sistema basta con teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pacman -Qtdq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Estos paquetes no hacen otra cosa mas que ocupar espacio, así que para eliminarlos todos basta con teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Rs $(pacman -Qtdq)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/eliminando-archivos-huerfanos-en-manjaro.jpg"
alt="Eliminando archivos huerfanos en Manjaro">&lt;figcaption>
&lt;p>Eliminando archivos huerfanos en Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la imagen pueden ver que el espacio ocupado por los paquetes huérfanos es de nada despreciables 293 MiB, ok, no es mucho, pero en sistemas con espacio limitado pueden ser una diferencia :-) .&lt;/p>
&lt;p>Referencia: pacman (Español) wiki de ArchLinux | &lt;a class="link" href="https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29#Consultar_la_base_de_datos_de_paquetes" target="_blank" rel="noopener"
>Consultar la base de datos de paquetes&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Spotify en Manjaro</title><link>https://linuxmanr4.com/2013/04/16/spotify-en-manjaro/</link><pubDate>Tue, 16 Apr 2013 15:41:51 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/16/spotify-en-manjaro/</guid><description>&lt;p>En estos días Spotify abrió sus servicios en México, así que ni tardo ni perezoso me di a la tarea de instalarlo en Manjaro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/spotify-en-manjaro-linux.jpg"
alt="Spotify en Manjaro Linux">&lt;figcaption>
&lt;p>Spotify en Manjaro Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Anteriormente ya había instalado Spotify en windows, pero era en la época oscura en la que tenías que hacer circo, maroma y vpn’s para que te dejara escuchar música. En ese momento lo dejé a favor de Grooveshark que también tiene un buen surtido de canciones y no es tan restrictivo.&lt;/p>
&lt;h2 id="bendito-yaourt">Bendito Yaourt.
&lt;/h2>&lt;p>Afortunadamente Spotify esta disponible en AUR e instalarlo en Manjaro no es complicado, solo hay que buscar e instalar estos dos paquetes:&lt;/p>
&lt;ul>
&lt;li>spotify&lt;/li>
&lt;li>ffmpeg-spotify&lt;/li>
&lt;/ul>
&lt;p>Con esos dos paquetes instalados basta y sobra, sin el segundo el programa de Spotify se cerrará sin previo aviso, al menos eso fue lo que me pasó.&lt;/p>
&lt;p>Ahora si, a disfrutar de la música y que no pare la fiesta :-)&lt;/p>
&lt;h2 id="actualización-19-ago-2013">Actualización 19-ago-2013.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Play-Spotify.jpg"
alt="Play Spotify (versión web)">&lt;figcaption>
&lt;p>Play Spotify (versión web)&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la última actualización de Manjaro ya no he podido iniciar &lt;strong>Spotify&lt;/strong>, me aparece un error que dice &lt;strong>Failed loading skin&lt;/strong>.&lt;/p>
&lt;p>He intentado reinstalarlo y nada así que por el momento lo estoy dando por perdido, peeeero si quieren seguir disfrutando de las &lt;a class="link" href="https://linuxmanr4.com/2011/02/21/canciones-megamente/" >canciones&lt;/a>
que ofrece pueden abrir su versión web que es muy similar (si no es que idéntica) a la versión de escritorio.&lt;/p>
&lt;p>Sólo tienen que abrir el sitio de &lt;a class="link" href="https://open.spotify.com/" target="_blank" rel="noopener"
>open.spotify.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ingresar con su nombre de usuario y contraseña.&lt;/p>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.spotify.com/es/" target="_blank" rel="noopener"
>Spotify en México&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://wiki.manjaro.org/index.php/Arch_User_Repository" target="_blank" rel="noopener"
>Arch User Repository - Wiki de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Manjaro 0.8.5 ha sido liberado</title><link>https://linuxmanr4.com/2013/04/13/manjaro-0-8-5-ha-sido-liberado/</link><pubDate>Sat, 13 Apr 2013 14:26:43 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/13/manjaro-0-8-5-ha-sido-liberado/</guid><description>&lt;p>Después de varias semanas de un desarrollo vertiginoso, y no es broma, cada semana se anunciaba una nueva &lt;em>pre-release&lt;/em> de Manjaro con miras a obtener la nueva 0.8.5 con una gran cantidad de mejoras.&lt;/p>
&lt;h2 id="mejoras-mejoras-mejoras">Mejoras, mejoras, mejoras…
&lt;/h2>&lt;p>Creo que la principal mejora es que ahora incluye un instalador gráfico, no es que el anterior no funcionara, pero siento que asustaba un poco a los recién llegados a linux y a uno que otro usuario con cierta experiencia. Este nuevo instalador será de gran ayuda en el &lt;a class="link" href="https://flisol.net/" target="_blank" rel="noopener"
>FLISOL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que se celebrará en dos semanas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Instalador-gr%C3%A1fico-de-Manjaro.jpg"
alt="Instalador gráfico de Manjaro">&lt;figcaption>
&lt;p>Instalador gráfico de Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El nuevo manejador de paquetes &lt;strong>Pamac&lt;/strong> ha sido mejorado notablemente, en parte por una sana competencia con otro programa similar llamado &lt;strong>Octopi&lt;/strong>, ambos son excelentes, pero siento que Pamac es más adecuado para los que utilizamos un entorno estilo &lt;strong>Gnome&lt;/strong> o en mi caso &lt;strong>Cinnamon&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>Pamac&lt;/strong> ahora muestra más información sobre los paquetes y fue traducido a varios idiomas incluyendo el español.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Gestor-de-paquete-Pamac.jpg"
alt="Gestor de paquete Pamac">&lt;figcaption>
&lt;p>Gestor de paquete Pamac&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y hablando de idiomas, los amigos de Manjaro han trabajado mucho para hacer mucho más sencilla la instalación de idiomas en esta versión. Han trabajado haciendo asistentes para hacer más sencilla la instalación de los paquetes de idiomas y la configuración del teclado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Instalaci%C3%B3n-de-idiomas.jpg"
alt="Instalación de idiomas en Manjaro">&lt;figcaption>
&lt;p>Instalación de idiomas en Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si quieren saber más sobre esta versión pueden leer el anuncio oficial en el blog &lt;a class="link" href="https://web.archive.org/web/20180710010325/https://manjaro.org/2013/04/13/manjaro-0-8-5-released/" target="_blank" rel="noopener"
>MANJARO 0.8.5 RELEASED&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="torrents">Torrents
&lt;/h2>&lt;ul>
&lt;li>Manjaro Linux 0.8.5 – Xfce 32 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – Xfce 64 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – Openbox 32 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – Openbox 64 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – NET Edition 32 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – NET Edition 64 bits&lt;/li>
&lt;/ul>
&lt;p>Community-Torrents&lt;/p>
&lt;ul>
&lt;li>Manjaro Linux 0.8.5 – Cinnamon 32 bits&lt;/li>
&lt;li>Manjaro Linux 0.8.5 – Cinnamon 64 bits&lt;/li>
&lt;/ul>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://sourceforge.net/projects/manjarolinux/files/?source=navbar" target="_blank" rel="noopener"
>Lista de las distintas versiones de Manjaro 32 o 34 bits, XFCE, Cinnamon, KDE, openbox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2012/12/13/creando-una-usb-de-arranque-para-manjaro/" >Como hacer una USB de arranque para Manjaro&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://sourceforge.net/projects/manjarolinux/files/release/0.8.5/Beginner-User-Guide-0.8.5.pdf/download" target="_blank" rel="noopener"
>Guía para el principiante en Manjaro 0.8.5 (Inglés)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Paleta de colores de Manjaro</title><link>https://linuxmanr4.com/2013/04/10/paleta-colores-manjaro/</link><pubDate>Wed, 10 Apr 2013 17:11:57 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/10/paleta-colores-manjaro/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/paleta-de-colores-manjaro.jpg" alt="Featured image of post Paleta de colores de Manjaro" />&lt;p>Me dí a la tarea de obtener una paleta de colores para Manjaro, mi distro favorita actualmente. Busqué una guía oficial, pero no la encontré así que se puede decir que esta es una paleta de colores no oficial.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/manjaro-paleta-de-colores.png"
alt="manjaro paleta de colores">&lt;figcaption>
&lt;p>manjaro paleta de colores&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Los colores son:&lt;/p>
&lt;ul>
&lt;li>Verde Manjaro #34be5b&lt;/li>
&lt;li>Negro #111111&lt;/li>
&lt;li>Gris Light #8c8c8c&lt;/li>
&lt;li>Blanco #fcfefd&lt;/li>
&lt;li>Gris Dark #444444&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Capture-IT-Font.png"
alt="Capture IT Font Manjaro Logo">&lt;figcaption>
&lt;p>Capture IT Font Manjaro Logo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Gracias al buen amigo &lt;strong>Bersil&lt;/strong> que me pasó el nombre de la nueva fuente que se utiliza en Manjaro (para eso sirven las &lt;a class="link" href="https://linuxmanr4.com/2013/05/22/pajaritos-chismes-redes-sociales/" >redes sociales&lt;/a>
:) ). La fuente se llama &lt;a class="link" href="https://www.fontsquirrel.com/fonts/Comfortaa" target="_blank" rel="noopener"
>Comfortaa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esta es la pieza que me faltaba para completar la nueva versión del logo de Manjaro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/manjaro-logo-comfortaa-font.png"
alt="manjaro logo comfortaa font">&lt;figcaption>
&lt;p>manjaro logo comfortaa font&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pueden usar esta paleta para personalizar el escritorio, &lt;a class="link" href="https://linuxmanr4.com/2012/11/09/respaldando-un-sitio-web-con-wget/" >sitios web&lt;/a>
, para lo que sea.&lt;/p></description></item><item><title>Como saber si un celular fue mojado</title><link>https://linuxmanr4.com/2013/04/08/como-saber-si-un-celular-fue-mojado/</link><pubDate>Mon, 08 Apr 2013 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/08/como-saber-si-un-celular-fue-mojado/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/calular_mojado.jpg" alt="Featured image of post Como saber si un celular fue mojado" />&lt;p>¿Quiere averiguar si su celular fue mojado o expuesto a la humedad? Les dejo algunos puntos que revisar para averiguarlo.&lt;/p>
&lt;p>Muchas veces me traen celulares para que los revise porque &amp;ldquo;extrañamente&amp;rdquo; no prenden. En ocasiones el problema es que dejaron agotar la batería, si ese fue el caso todavía puedo hacer algo. Pero la gran mayoría el problema fue que expusieron el equipo a una &amp;ldquo;incursión submarina&amp;rdquo;.&lt;/p>
&lt;h2 id="calcomanías-delatoras">Calcomanías delatoras
&lt;/h2>&lt;p>Existen a simple vista unas etiquetas que cambian de color cuando un celular se expone al agua o a la humedad. Algunas de estas etiquetas están en el interior del equipo y solo son visibles por la persona que abre y desarma el teléfono.&lt;/p>
&lt;p>Por ejemplo, esta batería fue expuesta a la humedad, los bordes de las &amp;ldquo;crucitas&amp;rdquo; no están bien definidos y empieza a formarse como una mancha en la etiqueta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Bater%C3%ADa-expuesta-a-humedad.jpg"
alt="Batería expuesta a humedad">&lt;figcaption>
&lt;p>Batería expuesta a humedad&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este otro probablemente fue sumergido, porque la etiqueta de la batería y la del teléfono cambiaron totalmente de color.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/09/Etiquetas-de-celulares-mojados.jpg"
alt="Etiquetas de celulares mojados">&lt;figcaption>
&lt;p>Etiquetas de celulares mojados&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una &lt;a class="link" href="https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/" >batería que ha sido mojada empieza a tener problemas&lt;/a>
:&lt;/p>
&lt;ul>
&lt;li>Puede ser que no retenga la carga, es decir que diga que esta completamente cargada y la duración de la batería es muy poca, con suerte unas horas pero a veces solo dura minutos.&lt;/li>
&lt;li>Se puede hinchar. Me han traído equipos en los que la batería esta tan deformada que no se le puede colocar la tapa.&lt;/li>
&lt;li>Simplemente no carga.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/gallery/bateria-de-blackberry-hinchada/bateria-de-blackberry-hinchada-04.jpg"
alt="Batería de Blackberry Hinchada">&lt;figcaption>
&lt;p>Batería de Blackberry Hinchada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Un teléfono mojado lo más probable es que no encienda.&lt;/strong>&lt;/p>
&lt;p>Si quieren llevar su equipo a garantía, o les ofrecen un teléfono usado, primero revisen estas etiquetas, al menos ya saben a lo que se atienen :)&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/manchas-de-caf%C3%A9.jpg"
alt="manchas de café">&lt;figcaption>
&lt;p>manchas de café&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/etiqueta-activada-con-cruces.jpg"
alt="Celular Mojado, Etiqueta activada con cruces">&lt;figcaption>
&lt;p>Celular Mojado, Etiqueta activada con cruces&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="garantía">Garantía.
&lt;/h2>&lt;p>Para hacer efectiva una garantía muchas veces no basta con revisar las etiquetas que están en el exterior. En el interior mismo del teléfono suele haber más etiquetas que indican si el teléfono fue mojado o expuesto a la humedad.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/ejemplo-de-etiquetas-internas.jpg"
alt="ejemplo de etiquetas internas">&lt;figcaption>
&lt;p>ejemplo de etiquetas internas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que abrir tu teléfono también anula la garantía, así que más vale sincerarse y si &lt;a class="link" href="https://linuxmanr4.com/2008/12/24/rescatar-celular-mojado-arroz/" >mojaron su celular&lt;/a>
no les queda más remedio que aprender una dura y costosa lección.&lt;/p></description></item><item><title>MariaDB y Microsoft Access</title><link>https://linuxmanr4.com/2013/04/05/mariadb-y-microsoft-access/</link><pubDate>Fri, 05 Apr 2013 15:05:56 +0000</pubDate><guid>https://linuxmanr4.com/2013/04/05/mariadb-y-microsoft-access/</guid><description>&lt;p>El día de ayer anunciaron en los foros de Manjaro que iba a dejar de lado el soporte a los paquetes de &lt;a class="link" href="https://linuxmanr4.com/2013/05/22/script-respaldar-mysql/" >MySQL&lt;/a>
en favor de MariaDB.&lt;/p>
&lt;p>Desde hace varios años tengo unos desarrollos en Microsoft Access (por favor no me juzguen) y que utilizan una base de datos MySQL. Los sistemas funcionan muy bien y jamás he perdido un solo registro, pero la tendencia es clara, si por alguna razón me quedo sin MySQL, ¿Podría seguir trabajando con &lt;a class="link" href="https://linuxmanr4.com/tags/mariadb/" >MariaDB&lt;/a>
?&lt;/p>
&lt;h2 id="instalando-mariadb">Instalando MariaDB.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/04/Instalaci%C3%B3n-de-MariaDB.png"
alt="Instalación de MariaDB">&lt;figcaption>
&lt;p>Instalación de MariaDB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Decidí hacer una pequeña prueba en una maquina virtual con windows. Instalé la versión 5.5 de MariaDB que según el sitio es la estable.&lt;/p>
&lt;p>Un detalle que llamó mi atención, es que este paquete incluye el programa HeidiSQL que permite hacer todas las operaciones básicas en una base de datos. Con este programa le cargué una buena cantidad de datos de un respaldo que hice de la base de datos MySQL.&lt;/p>
&lt;h2 id="y-el-odbc-apá">¿Y el ODBC Apá?
&lt;/h2>&lt;p>Para enlazar Access con MySQL utilizo un conector &lt;a class="link" href="http://es.wikipedia.org/wiki/Open_Database_Connectivity" target="_blank" rel="noopener"
>ODBC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
disponible para MySQL pero no existe un equivalente con MariaDB, al menos no al momento de escribir este artículo. (Corrijo, ya existe un &lt;a class="link" href="https://downloads.mariadb.org/connector-odbc/" target="_blank" rel="noopener"
>ODBC para MariaDB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>La combinación ODBC Connector MySQL 5.2.4 - MariaDB 5.5 funciona sin problemas y de manera transparente, al menos por el momento no noté ningún comportamiento extraño o mensaje de error, pero creo que este detalle es un punto débil. El motor de base de datos seguirá con su desarrollo, corrigiendo errores, mejorando el desempeño y probablemente el conector se quede un poco atrás.&lt;/p>
&lt;h2 id="funciona">¡Funciona!
&lt;/h2>&lt;p>Lo bueno es que en las pruebas preliminares que he realizado sustituir MySQL por MariaDB no causa mayor problema, la administración es muy similar y el conector ODBC funciona correctamente. De momento no voy a actualizar mis sistemas en producción siguiendo la filosofía de “Si no esta roto, no lo arregles” más bien tenía la curiosidad de saber si podía utilizar MariaDB en proyectos futuros.&lt;/p>
&lt;p>Creo que la ruta que eligió Oracle para los principales programas de software libre que compró no le esta funcionando, Java, OpenOffice, MySQL, por mencionar solo algunos. Java con serios problemas de seguridad y los dos restantes ya tienen sendos &lt;a class="link" href="https://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_%28desarrollo_de_software%29" target="_blank" rel="noopener"
>forks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) que están superando a los productos originales. En el caso de OpenOffice esta LibreOffice que esta presente en la mayoría de las distribuciones Linux y MySQL se empieza a mover en ese sentido.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://archlinux.org/news/mariadb-replaces-mysql-in-repositories/" target="_blank" rel="noopener"
>MariaDB replaces MySQL in repositories (Arch Linux)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://mariadb.org/" target="_blank" rel="noopener"
>MariaDB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.heidisql.com/" target="_blank" rel="noopener"
>HeidiSQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://dev.mysql.com/downloads/connector/odbc/#downloads" target="_blank" rel="noopener"
>Conector ODBC MySQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://downloads.mariadb.org/connector-odbc/" target="_blank" rel="noopener"
>Actualización, ya existe un ODBC para MariaDB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Optimizar archivos PNG y JPG</title><link>https://linuxmanr4.com/2013/03/29/optimizar-archivos-png-jpg/</link><pubDate>Fri, 29 Mar 2013 22:16:41 +0000</pubDate><guid>https://linuxmanr4.com/2013/03/29/optimizar-archivos-png-jpg/</guid><description>&lt;p>Prácticamente sin querer me encontrado una de esas herramientas que me puede ayudar mucho con la optimización de imágenes sobre todo en archivos con el formtato &lt;a class="link" href="https://es.wikipedia.org/wiki/Portable_Network_Graphics" target="_blank" rel="noopener"
>PNG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="trimage-dónde-habías-estado">Trimage ¿Dónde habías estado?.
&lt;/h2>&lt;p>Casi de manera fortuita me encontré con esta joya de software llamada &lt;a class="link" href="https://trimage.org/" target="_blank" rel="noopener"
>Trimage Image Compressor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un programita que optimiza archivos en formato PNG y JPG de manera muy sencilla. Lo único que hay que hacer es arrastrar el archivo hacia la ventana del programa y empezará a hacer su trabajo ¡más fácil imposible!.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/Optimizando-archivos-PNG-con-Trimage.png"
alt="Optimizando archivos PNG con Trimage">&lt;figcaption>
&lt;p>Optimizando archivos PNG con Trimage&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hice algunas pruebas con archivos JPG y la optimización es rapidísima (al menos en mi equipo). Pero la ganancia en espacio es mínima. Por ejemplo, en una carpeta con 192 imágenes de un total de 169.6 MB que ocupaban originalmente llegó a ocupar 162.9 MB. Este resultado no me sorprendió mucho, JPG es un formato con pérdida y optimizado para ocupar poco espacio.&lt;/p>
&lt;p>Con la optimización de los archivos PNG ocurrió todo lo contrario, la optimización puede tardar un poco y los resultados pueden variar mucho de imagen a imagen, pero generalmente valen la pena.&lt;/p>
&lt;p>Hice una pequeña prueba, en un directorio con 62 archivos PNG que originalmente ocupaban 60.9 MB en el disco duro, después de la optimización llegó a ocupar ¡48.4 MB!, ¡12 MB MENOS sin una pérdida notable en la calidad de las imágenes!.&lt;/p>
&lt;p>Trimage esta disponible en la mayoría de las distribuciones linux más populares, Debian, Ubuntu, Arch (y por consiguiente Manjaro), Mandriva (¿todavía existe?), Opensuse, etc. Funciona con su interfaz gráfica o con el uso de comandos en una terminal.&lt;/p>
&lt;p>De ahora verán muchas imágenes de este blog optimizadas y espero con ello mejorar el tiempo de carga mis proyectos.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://trimage.org/" target="_blank" rel="noopener"
>Trimage image compressor – A cross-platform tool for losslessly optimizing PNG and JPG files&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Octopi, otra interfaz gráfica para pacman en Manjaro</title><link>https://linuxmanr4.com/2013/03/21/octopi-manjaro-pacman/</link><pubDate>Thu, 21 Mar 2013 22:43:17 +0000</pubDate><guid>https://linuxmanr4.com/2013/03/21/octopi-manjaro-pacman/</guid><description>&lt;p>Últimamente esta sonando en los foros de Manjaro &lt;a class="link" href="https://web.archive.org/web/20150617121920/https://forum.manjaro.org/index.php?topic=2846.0" target="_blank" rel="noopener"
>Octopi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una alternativa a &lt;strong>Pamac&lt;/strong>. No tengo nada en contra de este último, pero ya tuve una experiencia macabra con él. Durante una instalación de unos paquetes Pamac consumió la totalidad de mi memoria RAM ¡Los 8 GB completos!. Se que en algún momento lo van a arreglar (no se puede quedar así) pero no esta de más darle un vistazo a otras opciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/octopi.png"
alt="Octopi - Frontend para pamac">&lt;figcaption>
&lt;p>Octopi - Frontend para pamac&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="características">Características.
&lt;/h2>&lt;p>&lt;strong>Octopi&lt;/strong> tiene todo lo básico:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/Men%C3%BA-File.png"
alt="Menú File de Octopi">&lt;figcaption>
&lt;p>Menú File de Octopi&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>Actualizar los &lt;em>mirrors&lt;/em>.&lt;/li>
&lt;li>Actualizar el sistema.&lt;/li>
&lt;li>Muestra la información de los paquetes.&lt;/li>
&lt;li>Busca las últimas noticias en el blog de Manjaro, una práctica que se recomienda antes de actualizar.&lt;/li>
&lt;li>Es una buena alternativa para los que usan KDE por que utiliza las librerias &lt;a class="link" href="http://es.wikipedia.org/wiki/Qt_%28biblioteca%29" target="_blank" rel="noopener"
>QT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.. y para los que tienen XFCE, LXDE, MATE, etc.&lt;/li>
&lt;/ul>
&lt;h2 id="instalación">Instalación.
&lt;/h2>&lt;p>Utilizo la versión de Manjaro Cinnamon así que en mi caso pude instalarlo abriendo una terminal y tecleando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S octopi gksu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>gksu&lt;/strong> es el programita que le da permisos de administrador a Octopi, si tienen KDE supongo que lo tienen que sustituir por &lt;strong>kdesu&lt;/strong>.&lt;/p>
&lt;h2 id="comentarios">Comentarios
&lt;/h2>&lt;p>Tengo poco usándolo, las búsquedas son extraordinariamente rápidas, organiza bien la información y parece que muchas opciones&lt;br>
están a solo un par de clics de distancia. Con ánimo de verme un poco quisquilloso, me gustaría que estuviera disponible en español aunque no me pierdo de mucho. Mientras evaluó si se va o se queda no esta de más tenerlo a la mano.&lt;/p></description></item><item><title>Como quitar el buscador personalizado de Linux Mint</title><link>https://linuxmanr4.com/2013/03/14/como-quitar-el-buscador-personalizado-de-linux-mint/</link><pubDate>Thu, 14 Mar 2013 16:38:43 +0000</pubDate><guid>https://linuxmanr4.com/2013/03/14/como-quitar-el-buscador-personalizado-de-linux-mint/</guid><description>&lt;p>En mi breve paso por Linux Mint me quedé con un pequeño recuerdo que me ha seguido a todas partes, el horrible buscador personalizado de Linux Mint.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/buscador-personalizado-de-Mint.png"
alt="Buscador personalizado de Mint">&lt;figcaption>
&lt;p>Buscador personalizado de Mint&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Simplemente no me gusta y en todo este tiempo no me había dado la oportunidad de removerlo, en parte, porque su aparición es ocasional pero llegó el momento en que me dije - ¡Basta ya de este buscador de Linux Mint!.&lt;/p>
&lt;p>Quitarlo es relativamente sencillo.&lt;/p>
&lt;p>\* Primero hay que buscar el botón **Administrar motores de búsqueda** que esta en el menú **Configuración de Google Chrome**.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/buscador-personalizado-de-mint.png"
alt="Administrador de buscadores en Chrome">&lt;figcaption>
&lt;p>Administrador de buscadores en Chrome&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver, el problema estaba en el buscador **Google (Default)** que contiene el código para el buscador personalizado de Mint que es muy similar a este:&lt;/p>
&lt;p>\* El paso siguiente es muy sencillo, copié la configuración de **Google (Predeterminado)**&lt;/p>
&lt;p>Y la reemplacé en el que tiene el buscador personalizado de Mint.&lt;/p>
&lt;p>Con eso es suficiente para solucionar el problema. ¡Bye bye buscador de Mint!.&lt;/p></description></item><item><title>Missing Operating System en Windows 7</title><link>https://linuxmanr4.com/2013/03/11/missing-operating-system-windows-7/</link><pubDate>Mon, 11 Mar 2013 15:06:08 +0000</pubDate><guid>https://linuxmanr4.com/2013/03/11/missing-operating-system-windows-7/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/Missing-Operating-System-en-Windows-7.jpg" alt="Featured image of post Missing Operating System en Windows 7" />&lt;p>Me ha pasado la cosa más rara del planeta, después de actualizar mi instalación con Manjaro Linux, no puede iniciar mi computadora. Primero me salieron unos errores de Grub y luego la fatídica pantalla negra con el mensaje poco alentador de &lt;strong>Missing Operating System&lt;/strong>.&lt;/p>
&lt;h2 id="la-pantalla-negra">La pantalla negra.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/03/missing%5Foperating%5Fsystem.png"
alt="Missing Operating System">&lt;figcaption>
&lt;p>Missing Operating System&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Intenté de todo, arranque mi equipo con el dvd de windows, hice chkdsk en la partición de windows, varios comandos raros, bootrec no se que con /fixmbr pero siempre me marcaba error &lt;em>bootrec /fixboot&lt;/em>.&lt;/p>
&lt;p>Lo curioso es que pude arrancar mi partición de Linux con &lt;a class="link" href="http://www.supergrubdisk.org/" target="_blank" rel="noopener"
>Super Grub disk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y toda mi información estaba intacta, sin problemas para accesar a mi partición de Windows y de esa forma aproveché para hacer un respaldo. Eso me tranquilizaba un poco pero no soluciona el error de fondo ¿Porque no arranca mi equipo?&lt;/p>
&lt;h2 id="misterio-resuelto">Misterio Resuelto.
&lt;/h2>&lt;p>Francamente me estaba quedando sin ideas, leí en un foro un problema con un valor RAID en el BIOS, para ser honesto, creí altamente improbable tener un problema similar, pero como estaba desesperado decidí revisar los valores del BIOS y ahí estaba el error.&lt;/p>
&lt;p>La configuración del SATA estaba en &lt;strong>IDE&lt;/strong> cuando recuerdo muy bien que establecí ese valor como &lt;a class="link" href="http://es.wikipedia.org/wiki/AHCI" target="_blank" rel="noopener"
>AHCI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, lo volví a ajustar y reinicié mi computadora.&lt;/p>
&lt;p>Y como arte de magia ¡Reapareció GRUB! :) ¡Reapareció Windows! :-? todo funcionando como si nada hubiera pasado. No estoy seguro de que forma ese valor del BIOS cambió, pero no importa, recuperé todo.&lt;/p>
&lt;p>Escribo este artículo por si alguien más tiene el mismo problema y no ha pensado en voltear a ver ese pequeño valor travieso del BIOS que me ocasionó tantos problemas. De haber sabido que era eso, no hubiera perdido tanto tiempo en recuperar un Windows que en esta ocasión no tenía problemas.&lt;/p></description></item><item><title>Pamac sustituye a pacman-gui en Manjaro 0.8.4</title><link>https://linuxmanr4.com/2013/02/27/pamac-sustituye-a-pacman-gui-en-manjaro/</link><pubDate>Wed, 27 Feb 2013 21:40:32 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/27/pamac-sustituye-a-pacman-gui-en-manjaro/</guid><description>&lt;p>Con la nueva versión de Manjaro Pamac sustituye a pacman-gui como la interfaz gráfica para la administración de paquetes en Manjaro Linux.&lt;/p>
&lt;p>Si todavía no lo tienes lo puede instalar tecleando desde una terminal:&lt;/p>
&lt;pre>&lt;code>sudo pacman -S pamac
&lt;/code>&lt;/pre>
&lt;p>Esto te instalará 4 programas básicos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>pamac-check-updates&lt;/strong> Revisa si hay actualizaciones.&lt;/li>
&lt;li>&lt;strong>pamac-tray&lt;/strong> Este programa se encarga de poner un icono en la panel del sistema y nos avisa cuando están disponibles las actualizaciones y con el botón derecho podemos mandar llamar a los demás programas de pamac.&lt;/li>
&lt;li>&lt;strong>pamac-manager&lt;/strong> En si este programa es el que sustituye a *pacman-gui* ya es que con él es posible buscar, instalar o remover paquetes del sistema.&lt;/li>
&lt;li>&lt;strong>pamac-updater&lt;/strong> Es el programa que actualiza el sistema (Update Manager).&lt;/li>
&lt;/ul>
&lt;p>Hice que &lt;strong>pamac-tray&lt;/strong> iniciara desde el arranque, de esa forma este programa sustituye a las funciones que venía haciendo &lt;strong>kalu&lt;/strong> y &lt;strong>pacman-gui&lt;/strong> en las versiones anteriores.&lt;/p>
&lt;p>Claro que en lo personal, me siento más a gusto actualizando el sistema desde la consola usando los comandos tradicionales o el script &lt;strong>allservers.sh&lt;/strong> , pero para los recién llegados este programa les hará mucho más sencillas las tareas de actualización del sistema y la administración de paquetes.&lt;/p></description></item><item><title>Ya esta disponible Manjaro Linux 0.8.4</title><link>https://linuxmanr4.com/2013/02/26/ya-esta-disponible-manjaro-linux-0-8-4/</link><pubDate>Tue, 26 Feb 2013 15:05:06 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/26/ya-esta-disponible-manjaro-linux-0-8-4/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/screenshot1.jpg"
alt="Manjaro 0.8.4 Xfce">&lt;figcaption>
&lt;p>Manjaro 0.8.4 Xfce&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Desde ayer se hizo público en los foros la noticia de la liberación de la nueva versión de Manjaro, el día de hoy aparece de manera oficial en el blog de la distribución.&lt;/p>
&lt;p>Entre las novedades esta la inclusión de &lt;strong>Pamac&lt;/strong> que simplifica la forma de administrar los paquetes de nuestra distribución. A manera de símil es como el “synaptic” que existe en las distribuciones basadas en paquetes deb.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/pamac-manager.jpg"
alt="pamac-manager">&lt;figcaption>
&lt;p>pamac-manager&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Les recuerdo que esta versión es para instalarse en equipos nuevos, los que ya tenemos instalado Manjaro lo único que tenemos que hacer es actualizar el sistema y listo !!!&lt;/p>
&lt;p>Si eres nuevo en Manjaro, te recomiendo que descargues la guía rápida, te ayudará mucho durante el proceso de instalación ya que tiene instrucciones sobre que versión es la recomendada para tu equipo, enlaces de descarga, comprobación de archivos ISOS y consejos para su instalación.&lt;/p>
&lt;h2 id="enlaces-de-descarga">Enlaces de descarga.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/manjarolinux/files/release/0.8.4/" target="_blank" rel="noopener"
>Carpeta de la versión 0.8.4 en Sourceforge&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Guía para el usuario 0.8.4 en PDF&lt;/li>
&lt;li>Checksums: SHA1 y SHA256&lt;/li>
&lt;li>XFCE: 32-bit, 64-bit y Guía Rápida&lt;/li>
&lt;li>Cinnamon: 32-bit, 64-bit y Guía rápida&lt;/li>
&lt;li>Openbox: 32-bit, 64-bit y Guía rápida&lt;/li>
&lt;li>NET (Sistema básico): 32-bit, 64-bit&lt;/li>
&lt;/ul>
&lt;h3 id="por-bittorrent">Por bittorrent
&lt;/h3>&lt;p>No hay torrents de manera oficial de esta distribución, pero los pueden encontrarn en el sitio de LinuxTracker.org, sólo asegúrense de descargar la versión correcta.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://linuxtracker.org/index.php?page=torrents&amp;amp;search=manjaro&amp;amp;category=39&amp;amp;active=1" target="_blank" rel="noopener"
>Manjaro - linuxtracker.org&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Lanzamiento oficial: &lt;a class="link" href="https://web.archive.org/web/20180710010342/https://manjaro.org/2013/02/25/manjaro-0-8-4-has-been-released/" target="_blank" rel="noopener"
>MANJARO 0.8.4 HAS BEEN RELEASED!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Allservers.sh : Un script para actualizar Manjaro Linux</title><link>https://linuxmanr4.com/2013/02/25/allservers-sh-un-script-para-actualizar-manjaro-linux/</link><pubDate>Mon, 25 Feb 2013 14:46:34 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/25/allservers-sh-un-script-para-actualizar-manjaro-linux/</guid><description>&lt;p>Siempre es bueno darse una vuelta al wiki de Manjaro, hasta hace unos días estaba bastante cómodo actualizando mi sistema con el método tradicional usando pacman &lt;em>sudo pacman -Syyu&lt;/em>.&lt;/p>
&lt;p>Pero descubrí el script en Bash &lt;em>Allservers&lt;/em> que le da otra vuelta a la tuerca y automatiza varias tareas importantes dentro de la forma de actualizar Manjaro.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/allservers-funcionando.png"
alt="allservers actualizando el sistema">&lt;figcaption>
&lt;p>allservers actualizando el sistema&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por ejemplo:&lt;/p>
&lt;ul>
&lt;li>Actualiza la lista de los &lt;em>mirrors&lt;/em> más recientes de Manjaro y esto es importante porque constantemente se dan de alta nuevos o dejan de funcionar otros.&lt;/li>
&lt;li>Crea una lista de los tres mejores &lt;em>mirrors&lt;/em> basándose en su velocidad (rankmirrors).&lt;/li>
&lt;li>Sincroniza la base de datos de paquetes.&lt;/li>
&lt;li>Actualiza el sistema base y los paquetes AUR.&lt;/li>
&lt;li>Limpia el cache de paquetes usando el script &lt;em>cacheclean&lt;/em> que elimina paquetes antiguos pero deja las dos últimas versiones. Esto es muy útil, porque ahorramos espacio, pero guardamos un par de paquetes por si algo sale mal y queremos hacer una desactualización ( &lt;em>downgrade&lt;/em>).&lt;/li>
&lt;/ul>
&lt;p>Alservers necesita que instalemos primero el paquete &lt;em>cacheclean&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S cacheclean
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Luego descargamos el script (copiar y pegar) y lo guardamos en el un archivo de nuestro home:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 27-April-2013: Updated to use the new pacman-mirrors -g to rankmirrors. :)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># allservers.sh - inspired by Manjaro&amp;#39;s Carl &amp;amp; Phil, initially hung together&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># by handy, the script&amp;#39;s display prettied up &amp;amp; progress information added by Phil,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># the menu &amp;amp; wiki page added by handy.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Latest revision now calls everything via the menu.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The following wiki page is about this script:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://wiki.manjaro.org/index.php/Allservers.sh_Script:-_Rankmirrors,_Synchronise_Pacman_Database&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Following wiki page will introduce CacheClean &amp;amp; related information:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://wiki.manjaro.org/index.php/Maintaining_/var/cache/pacman/pkg_for_System_Safety&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#___________________________________________________________&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># allservers.sh is now completely menu driven. The Menu describes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># what it does for you, if you need more detail see the two&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># wiki page links listed above.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">###########################################################&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">err&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">BOLD&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;1m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">RED&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">e[1;31m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">local&lt;/span> &lt;span class="nv">mesg&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">RED&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">==&amp;gt;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">mesg&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">n&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$@&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt;&lt;span class="p">&amp;amp;&lt;/span>&lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">msg&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">BOLD&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;1m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">GREEN&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">e[1;32m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">local&lt;/span> &lt;span class="nv">mesg&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">GREEN&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">==&amp;gt;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">mesg&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">n&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$@&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt;&lt;span class="p">&amp;amp;&lt;/span>&lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="k">$(&lt;/span>whoami&lt;span class="k">)&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;root&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> err &lt;span class="s2">&amp;#34;Must use &amp;#39;sudo su&amp;#39; before you run this script.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The menu:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">clear &lt;span class="c1"># Clear the screen.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;33[1m allservers.sh 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;e[1;32m Enter your Option&amp;#39;s number OR hit Return to exit. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [1] Rank Mirrors &amp;amp; update mirrorlist: pacman-mirrors -g &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then sync/refresh package lists: pacman -Syy &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [2] Option 1. plus Upgrade the System: pacman -Syu &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [3] Option 1. plus Upgrade the System &amp;amp; AUR: yaourt -Syua &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [4] Upgrade the System only: pacman -Syu &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [5] Upgrade the System &amp;amp; AUR only: yaourt - Syua &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; CacheClean can be obtained via the AUR - yaourt -S cacheclean &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; CacheClean is set to remove all installation packages in your &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; /var/cache/pacman/pkg directory EXCEPT the two most recent &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; versions. See the Manjaro wiki for details. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34; http://wiki.manjaro.org/index.php/Maintaining_/var/cache/pacman/pkg_for_System_Safety 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;33[1m Enter Your Choice: 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">read&lt;/span> option
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">case&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$option&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Note variable is quoted.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;1&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;2&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System update complete.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;3&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System &amp;amp; AUR:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> yaourt -Syua
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System including AUR packages are up to date.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;4&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System update complete.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;5&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System &amp;amp; AUR: &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> yaourt -Syua
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System including AUR packages are up to date. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">exit&lt;/span> &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para darle permisos de ejecución, en una terminal tecleamos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chmod +x ./allservers.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para ejecutar el script Allservers:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo ./allservers.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y elegir alguna de las opciones del menú.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/allservers-menu-principal.png"
alt="allservers menu principal">&lt;figcaption>
&lt;p>allservers menu principal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Simplemente la actualización de &lt;em>mirrors&lt;/em> y su calificación hacen que este script valga la pena.&lt;/p>
&lt;h2 id="actualización-27-abr-2013">Actualización 27-abr-2013
&lt;/h2>&lt;p>Hubo una actualización a este script, usa la nueva estructura de paquetes y el comando &lt;strong>pacman-mirrors -g&lt;/strong> para actualizar y calificar los mejores mirrors para Manjaro.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 27-April-2013: Updated to use the new pacman-mirrors -g to rankmirrors. :)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># allservers.sh - inspired by Manjaro&amp;#39;s Carl &amp;amp; Phil, initially hung together&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># by handy, the script&amp;#39;s display prettied up &amp;amp; progress information added by Phil,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># the menu &amp;amp; wiki page added by handy.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Latest revision now calls everything via the menu.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The following wiki page is about this script:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://wiki.manjaro.org/index.php/Allservers.sh_Script:-_Rankmirrors,_Synchronise_Pacman_Database&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Following wiki page will introduce CacheClean &amp;amp; related information:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># http://wiki.manjaro.org/index.php/Maintaining_/var/cache/pacman/pkg_for_System_Safety&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#___________________________________________________________&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># allservers.sh is now completely menu driven. The Menu describes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># what it does for you, if you need more detail see the two&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># wiki page links listed above.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">###########################################################&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">err&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">BOLD&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;1m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">RED&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">e[1;31m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">local&lt;/span> &lt;span class="nv">mesg&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">RED&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">==&amp;gt;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">mesg&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">n&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$@&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt;&lt;span class="p">&amp;amp;&lt;/span>&lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">msg&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">BOLD&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;e[1;1m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">GREEN&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">e[1;32m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">local&lt;/span> &lt;span class="nv">mesg&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">printf&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">GREEN&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">==&amp;gt;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">BOLD&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">mesg&lt;/span>&lt;span class="si">}${&lt;/span>&lt;span class="nv">ALL_OFF&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">n&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$@&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &amp;gt;&lt;span class="p">&amp;amp;&lt;/span>&lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="k">$(&lt;/span>whoami&lt;span class="k">)&lt;/span> !&lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;root&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> err &lt;span class="s2">&amp;#34;Must use &amp;#39;sudo su&amp;#39; before you run this script.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The menu:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">clear &lt;span class="c1"># Clear the screen.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;33[1m allservers.sh 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;e[1;32m Enter your Option&amp;#39;s number OR hit Return to exit. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [1] Rank Mirrors &amp;amp; update mirrorlist: pacman-mirrors -g &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then sync/refresh package lists: pacman -Syy &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [2] Option 1. plus Upgrade the System: pacman -Syu &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [3] Option 1. plus Upgrade the System &amp;amp; AUR: yaourt -Syua &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [4] Upgrade the System only: pacman -Syu &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; [5] Upgrade the System &amp;amp; AUR only: yaourt - Syua &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; &amp;amp; then run CacheClean: cacheclean -v 2 &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; CacheClean can be obtained via the AUR - yaourt -S cacheclean &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; CacheClean is set to remove all installation packages in your &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; /var/cache/pacman/pkg directory EXCEPT the two most recent &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34; versions. See the Manjaro wiki for details. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34; http://wiki.manjaro.org/index.php/Maintaining_/var/cache/pacman/pkg_for_System_Safety 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;33[1m Enter Your Choice: 33[0m&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">read&lt;/span> option
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">case&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$option&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Note variable is quoted.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;1&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;2&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System update complete.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;3&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Processing mirrors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman-mirrors -g
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Refreshing your pacman databases&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syy
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System &amp;amp; AUR:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> yaourt -Syua
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System including AUR packages are up to date.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;4&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pacman -Syu
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System update complete.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Note double semicolon to terminate each option.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;5&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;Upgrading System &amp;amp; AUR: &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> yaourt -Syua
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;System including AUR packages are up to date. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean will now remove all but the 2 most &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;recent versions of the installation packages in &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;/var/cache/pacman/pkg directory:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> cacheclean -v &lt;span class="m">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> msg &lt;span class="s2">&amp;#34;CacheClean has done its job. &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">exit&lt;/span> &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si su sistema tiene instalado pacman 4.1 (o superior) probablemente les convenga usar este script en lugar del anterior.&lt;/p></description></item><item><title>Mostrar el clima en Conky con RSS</title><link>https://linuxmanr4.com/2013/02/15/clima-conky-rss/</link><pubDate>Fri, 15 Feb 2013 21:59:41 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/15/clima-conky-rss/</guid><description>&lt;p>En estos días le he estado moviendo mucho a la configuración de Conky en mi equipo. Ahora quería mostrar el clima, pero de una manera sencilla y que combinara con el estilo que le estaba dando.&lt;/p>
&lt;p>Busqué varias formas, algunos recomiendan usar un script para descargar la información, principalmente del sitio accuweather, pero para ser sincero, jamás pude encontrar el &lt;em>location code&lt;/em> de mi ciudad.&lt;/p>
&lt;p>De esta forma, pasé al plan B, en lugar de usar un script complicado busqué un sitio que tuviera la información del clima de mi ciudad en formato RSS, de esa manera lo podía actualizar de la misma forma en la que lo hago con las noticias de otros sitios.&lt;/p>
&lt;p>El sitio &lt;a class="link" href="http://www.wunderground.com/" target="_blank" rel="noopener"
>wunderground.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tiene esta opción, así que solo tuve que copiar el RSS adecuado para mi ubicación y agregar la siguiente línea en mi archivo de configuración de Conky.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2013/02/conky-rss-wunderground.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/conky-rss-wunderground.png"
loading="lazy"
alt="Buscando el RSS del clima"
>&lt;/a>
&lt;/p>
&lt;p>De esa manera obtengo este resultado:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/conky-clima.png"
alt="conky clima rss" width="424">&lt;figcaption>
&lt;p>conky clima rss&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es fácil, para nada complicado y si quiero puedo añadir todas las ciudades que desee simplemente agregando la misma línea con el enlace al RSS adecuado.&lt;/p></description></item><item><title>Administrar las aplicaciones al inicio en Cinnamon</title><link>https://linuxmanr4.com/2013/02/13/aplicaciones-inicio-arranque-cinnamon/</link><pubDate>Wed, 13 Feb 2013 22:54:57 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/13/aplicaciones-inicio-arranque-cinnamon/</guid><description>&lt;p>Estaba realizando algunos ajustes a la configuración de Conky en mi equipo que tiene &lt;a class="link" href="https://es.wikipedia.org/wiki/Cinnamon" target="_blank" rel="noopener"
>Cinnamon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como escritorio.&lt;/p>
&lt;p>&lt;img src="https://farm9.staticflickr.com/8505/8471173555_392eaf5b05.jpg"
loading="lazy"
alt="Conky"
>&lt;/p>
&lt;p>Ya estaba más o menos a gusto con los cambios que hice y quería que iniciara automáticamente Conky cada que que entrara a mi sesión. Busqué durante un buen rato en el menú de aplicaciones y nada, estaba seguro que lo había visto (si, pero fue en Ubuntu duhhhh). Y al buscar un poco más di con la respuesta, Cinnamon ¡No tiene esa opción!, al menos no en el menú.&lt;/p>
&lt;p>Para administrar las aplicaciones que se ejecutan en el inicio hay que teclear en una terminal (o presionando &lt;strong>ALT+F2&lt;/strong>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gnome-session-properties
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y ahí lo tienen, el famoso cuadro &lt;strong>Preferencias a las aplicaciones al inicio&lt;/strong> que estaba buscando.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/gnome-sessions-properties.png"
alt="Preferencias a las aplicaciones al inicio">&lt;figcaption>
&lt;p>Preferencias a las aplicaciones al inicio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si les interesa, esta configuración de Conky la pueden obtener en Conky con RSS del blog de Manjaro - Comparte Código. Es una adaptación al que realizó el buen amigo &lt;a class="link" href="https://gespadas.com/" target="_blank" rel="noopener"
>Gregorio Espadas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Avisos de ArchLinux en nuestro Escritorio sólo que agregué las estadísticas de la tarjeta de red y cambié el RSS por el del blog de Manjaro.&lt;/p>
&lt;p>Por cierto, si Conky desaparece al hacer clic en el escritorio o al cambiar a otro, entonces estas modificaciones les pueden interesar.&lt;/p></description></item><item><title>Instalar NTP en Windows para resolver problemas de hora en Manjaro</title><link>https://linuxmanr4.com/2013/02/11/instalar-ntp-en-windows/</link><pubDate>Mon, 11 Feb 2013 21:47:23 +0000</pubDate><guid>https://linuxmanr4.com/2013/02/11/instalar-ntp-en-windows/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/02/pexels-photo-359989.jpeg" alt="Featured image of post Instalar NTP en Windows para resolver problemas de hora en Manjaro" />&lt;p>No había notado que el reloj de mi computadora con Manjaro Linux estaba desfasado por varias horas, cuando busqué una solución a este problema me enteré que el problema no era Linux, si no Windows !!! ( &lt;em>vaya novedad&lt;/em>).&lt;/p>
&lt;p>Cada vez que se arranca una computadora con windows restablece el RTC &lt;em>(Reak Time Clock)&lt;/em> de la tarjeta madre a la hora local, que no tiene idea del horario de verano o zonas horarias como lo hace UTC &lt;em>(Tiempo Universal Coordinado)&lt;/em>.&lt;/p>
&lt;p>Esto no ocurre con Linux, porque cada vez que inicia y varias veces durante el día se sincroniza con algún servidor de horas para ajustar el reloj de nuestro equipo. Esto es importante porque en ocasiones nos puede provocar problemas para accesar a algunos sitios, sobre todo aquellos que tienen cierto nivel de seguridad.&lt;/p>
&lt;p>Afortunadamente la solución es muy simple, instalar un cliente NTP en Windows de manera que muestre la hora correcta cada vez que inicie.&lt;/p>
&lt;p>El wiki de Manjaro menciona un &lt;a class="link" href="https://www.satsignal.eu/ntp/setup.html" target="_blank" rel="noopener"
>tutorial muy completo (en inglés)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
relacionado con un programa de la empresa &lt;a class="link" href="https://www.meinbergglobal.com/" target="_blank" rel="noopener"
>Meinberg&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que instala NTP en Windows.&lt;/p>
&lt;p>La instalación es muy sencilla, usé los servidores de Estados Unidos y en donde dice: &lt;em>You can specify up to 9 NTP servers (comma separated)&lt;/em> agregué el de México que es &lt;strong>cronos.cenam.mx&lt;/strong>, de esa manera el archivo &lt;strong>ntp.conf&lt;/strong> quedó como sigue:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># NTP Network Time Protocol
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># **** ATTENTION ****: *You have to restart the NTP service when you change this file to activate the changes*
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># PLEASE CHECK THIS FILE CAREFULLY AND MODIFY IT IF REQUIRED
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Configuration File created by Windows Binary Distribution Installer Rev.: 1.26 mbg
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># please check http://www.ntp.org for additional documentation and background information
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Use drift file
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">driftfile &amp;#34;C:\Program Files (x86)\NTP\etc\ntp.drift&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># your local system clock, could be used as a backup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># (this is only useful if you need to distribute time no matter how good or bad it is)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#server 127.127.1.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># but it should operate at a high stratum level to let the clients know and force them to
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># use any other timesource they may have.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#fudge 127.127.1.0 stratum 12
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Use a NTP server from the ntp pool project (see http://www.pool.ntp.org)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Please note that you need at least four different servers to be at least protected against
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># one falseticker. If you only rely on internet time, it is highly recommended to add
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># additional servers here.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># The &amp;#39;iburst&amp;#39; keyword speeds up initial synchronization, please check the documentation for more details!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> server 0.us.pool.ntp.org iburst
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> server 1.us.pool.ntp.org iburst
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> server 2.us.pool.ntp.org iburst
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Use specific NTP servers
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">server cronos.cenam.mx iburst
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># End of generated ntp.conf --- Please edit this to suite your needs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No es obligatorio agregar el servidor NTP de México para que funcione, pero se me hizo un buen detalle.&lt;/p>
&lt;p>No esta de más tener esta información a la mano, puede ser muy útil en equipos como relojes checadores basados en PC o en cualquier computadora en la que sea importante tener la hora correcta.&lt;/p>
&lt;h3 id="para-saber-un-poco-más">Para saber un poco más.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/NTP" target="_blank" rel="noopener"
>NTP – Network Time Protocol&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://es.wikipedia.org/wiki/Tiempo_universal_coordinado" target="_blank" rel="noopener"
>Tiempo universal coordinado – UTC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como recortar una tarjeta SIM a NanoSIM para el iPhone5</title><link>https://linuxmanr4.com/2013/01/21/como-recortar-una-tarjeta-sim-a-una-nanosim-para-el-iphone5/</link><pubDate>Mon, 21 Jan 2013 19:14:16 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/21/como-recortar-una-tarjeta-sim-a-una-nanosim-para-el-iphone5/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Recortar-tarjeta-SIM-para-el-iPhone.jpg" alt="Featured image of post Como recortar una tarjeta SIM a NanoSIM para el iPhone5" />&lt;p>En ocasiones anteriores ya había recortado una tarjeta SIM al tamaño de una MicroSIM para el iPhone 4 y anteriores. Pero ohhh sorpresa, el nuevo iPhone 5 viene con la novedad de una tarjeta SIM aún más pequeña llamada &lt;strong>NanoSIM&lt;/strong>.&lt;/p>
&lt;p>Recortarla no es difícil, pero si requiere mucho más cuidado y más herramientas.&lt;/p>
&lt;h1 id="material-necesario">Material necesario.
&lt;/h1>&lt;p>Por ejemplo, me conseguí un buen par de tijeras, en algunos sitios usan un exacto, pero no lo recomiendo, hacer una línea se vuelve impreciso, es mejor con las tijeras.&lt;/p>
&lt;p>Van a necesitar papel de lija, yo usé una del número 320, aunque puede ser cualquiera que sea de grano fino.&lt;/p>
&lt;p>Les recomiendo usar una plantilla de corte, les va a facilitar mucho llegar al tamaño correcto.&lt;/p>
&lt;p>&lt;strong>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2016/02/sim.pdf" >Descargar plantilla para cortar tarjetas SIM a MicroSIM y NanoSIM&lt;/a>
&lt;/strong>&lt;/p>
&lt;h1 id="recomendaciones">Recomendaciones.
&lt;/h1>&lt;p>Al momento de imprimir la plantilla sigan las instrucciones, configuren el tamaño del papel a &lt;strong>A4&lt;/strong> a una escala del 100% o dicho de otra manera, sin ajustes en la escala. Pueden comprobar que lo hicieron correctamente midiendo las dos líneas de la parte inferior, con una regla deben medir 2 cm. y 1 pulgada.&lt;/p>
&lt;p>Les recomiendo que hagan los cortes muy cerca de las líneas de corte y continúen rebajando las dimensiones de la tarjeta con la&lt;/p>
&lt;p>lija. Comprueben constantemente las dimensiones de la tarjeta hasta que ajuste en la bandeja del iPhone. En mi caso tuve que recortar un poco de la &lt;em>zona dorada&lt;/em> de la tarjeta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Siguiendo-las-indicaciones-de-corte-de-la-plantilla.jpg"
alt="Siguiendo las indicaciones de corte de la plantilla">&lt;figcaption>
&lt;p>Siguiendo las indicaciones de corte de la plantilla&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>También van a tener que rebajar el espesor de la tarjeta, hagan esto con mucho cuidado, si llegan a la capa donde esta el chip ya se pasaron y lo pueden dañar.&lt;/p>
&lt;p>La prueba final la da el teléfono, recuerden que debe de caber perfectamente en la bandeja de la tarjeta del teléfono y deslizarse suavemente hacia el interior, si sienten se se atora, probablemente es que aún está muy gruesa y necesitan rebajar un poco más.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Tarjeta-SIM-ya-recortada.jpg"
alt="Tarjeta SIM ya recortada">&lt;figcaption>
&lt;p>Tarjeta SIM ya recortada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si el teléfono muestra la leyenda &lt;em>Sin Servicio&lt;/em>, probablemente es porque el chip es nuevo y todavía no está activado, lo importante es que no diga &lt;em>error de tarjeta SIM&lt;/em> o &lt;em>Sin SIM&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Tarjeta-SIM-recortada-funcionando.jpg"
alt="Tarjeta SIM recortada funcionando">&lt;figcaption>
&lt;p>Tarjeta SIM recortada funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Recuerden que seguir este consejo es bajo su propio riesgo, aunque si se hace con cuidado no deberían tener muchos problemas, de lo contrario, no se van a escapar de darse una vuelta al centro de atención a clientes.&lt;/p></description></item><item><title>Synapse y Zeitgeist en Manjaro Linux</title><link>https://linuxmanr4.com/2013/01/18/synapse-y-zeitgeist-en-manjaro-linux/</link><pubDate>Fri, 18 Jan 2013 17:57:49 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/18/synapse-y-zeitgeist-en-manjaro-linux/</guid><description>&lt;p>Durante mi etapa ubuntera me gustó la opción de que mi sistema operativo supiera cuales eran las aplicaciones y los archivos que más utilizo.&lt;/p>
&lt;p>Para hacer eso utiliza &lt;strong>Zeitgeist&lt;/strong> un software que continuamente esta monitoreando mi actividad y la guarda para su futura referencia. Sin embargo, no esta instalado por default en Manjaro, aunque no es complicado instalarlo.&lt;/p>
&lt;h2 id="instalar-synapse">Instalar Synapse
&lt;/h2>&lt;p>Como Manjaro no tiene Unity tengo que instalar un programa que utilice las bondades de Zeitgeist y para ello instalé &lt;strong>Synapse&lt;/strong> que es uno de mis &lt;em>launchers&lt;/em> favorito para prácticamente cualquier ambiente de escritorio.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S synapse
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="instalar-zeitgeist">Instalar Zeitgeist
&lt;/h2>&lt;p>Para instalar los paquetes que Zeitgeist necesita:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pacman -S zeitgeist
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">yaourt zeitgeist-datahub
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">yaourt zeitgeist-datasources
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y de manera opcional se puede instalar el &lt;strong>Diario de actividad (Zeitgeist GUI)&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yaourt -S gnome-activity-journal
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Montar automáticamente compartidos de red windows en Manjaro Linux</title><link>https://linuxmanr4.com/2013/01/17/montar-automaticamente-compartidos-de-red-windows-en-manjaro-linux/</link><pubDate>Thu, 17 Jan 2013 17:58:05 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/17/montar-automaticamente-compartidos-de-red-windows-en-manjaro-linux/</guid><description>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Anonymous_Network.png"
loading="lazy"
alt="Redes entre windows y linux"
>&lt;/p>
&lt;p>En el trabajo tengo que tener algunas carpetas a la mano y que están en un servidor que utiliza windows. En Ubuntu ya lo tenía así, pero la misma configuración no funcionaba en Manjaro. Después de leer y releer la wiki de Arch, y de googlear páginas relacionadas con el tema, esto fue lo que me funcionó.&lt;/p>
&lt;h2 id="el-secreto-esta-en-fstab">El secreto esta en fstab
&lt;/h2>&lt;p>En este archivo se guardan las particiones que se deben de montar en el arranque de nuestro equipo, para modificarlo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/fstab
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y agregamos al final una línea muy parecida a esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">//IPDELSERVIDOR/NOMBREDELACARPETACOMPARTIDA /home/USUARIO/NOMBREDELACARPETACOMPARTIDA cifs auto,x-systemd.automount,users,uid=MIUSUARIO,gid=users,username=USUARIODERED,password=CONTRASEÑADERED,workgroup=GRUPODETRABAJO,ip=IPDEL_SERVIDOR 0 0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Por ejemplo, supongamos que tengo un servidor que tiene una carpeta llamada &lt;strong>musica&lt;/strong>,la ip del servidor es &lt;strong>192.168.0.10&lt;/strong> y el grupo de trabajo es &lt;strong>grupito&lt;/strong>, mi usuario de red es &lt;strong>linuxman&lt;/strong> y mi contraseña de red es &lt;strong>linux.rules&lt;/strong>. En mi equipo con Manjaro entro con el usuario &lt;strong>linuxman&lt;/strong>. Con esta información la línea quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">//192.168.0.10/musica /home/linuxman/musicaservidor cifs auto,x-systemd.automount,users,uid=linuxman,gid=users,username=linuxman,password=linux.rules,workgroup=grupito,ip=192.168.0.10 0 0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Claro que antes hice una carpeta en mi home con el nombre de musicaservidor.&lt;/p>
&lt;p>No estoy seguro si se requiere el paquete de &lt;strong>samba&lt;/strong> o si sólo con &lt;strong>smbclient&lt;/strong> es suficiente, pero si es necesario ya saben:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S samba
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para probar que funciona pueden abrir una terminal y teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mount -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa forma no es necesario reiniciar.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Samba#Adding_the_share_to_fstab" target="_blank" rel="noopener"
>Samba - ArchWiki - Adding the share to fstab&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>No aparecen las computadoras de mi red windows</title><link>https://linuxmanr4.com/2013/01/15/no-aparecen-computadoras-red-windows/</link><pubDate>Tue, 15 Jan 2013 19:47:16 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/15/no-aparecen-computadoras-red-windows/</guid><description>&lt;p>En ocasiones no aparecen las computadoras de mi red de Windows en mi distribución de linux. Generalmente ocurre porque una actualización modifica alguno de los archivos de configuración haciendo este problema recurrente.&lt;/p>
&lt;h2 id="los-síntomas">Los síntomas
&lt;/h2>&lt;p>Este es un &lt;em>bug&lt;/em> muy popular, al momento de hacer clic en los equipos de red de Windows en &lt;em>nautilus&lt;/em> o &lt;em>nemo&lt;/em> pueden suceder cualquiera de estas cosas, marca un error como en &lt;a class="link" href="https://linuxmanr4.com/2009/11/12/fallo-al-obtener-la-lista-de-comparticion-del-servidor-ubuntu-karmic-koala/" >Fallo al obtener la lista de compartición del servidor&lt;/a>
o &lt;strong>&amp;ldquo;No se pudo mostrar network:///&amp;rdquo;&lt;/strong> o simplemente no mostrar nada.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/network%5Flinuxmanr4.jpg"
alt="Network \| No aparecen las computadoras de mi red windows" width="608">&lt;figcaption>
&lt;p>Network | No aparecen las computadoras de mi red windows&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Resolverlo es muy sencillo, primero instalé &lt;a class="link" href="http://es.wikipedia.org/wiki/Samba_%28programa%29" target="_blank" rel="noopener"
>samba&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Manjaro.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S samba
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Luego hay que agregar &lt;strong>wins&lt;/strong> en el renglón que dice &lt;strong>hosts&lt;/strong> del archivo &lt;strong>/etc/nsswitch.conf&lt;/strong> para quedar más o menos así:&lt;/p>
&lt;p>Guardé los cambios y reinicié mi equipo. Ahora si, después de hacer clic en &lt;em>Red&lt;/em> de mi navegador de archivos me muestra las computadoras de mi red de windows.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Red-de-windows%5Flinuxmanr4.jpg"
alt="Equipos en la red de windows \| No aparecen las computadoras de mi red windows" width="959">&lt;figcaption>
&lt;p>Equipos en la red de windows | No aparecen las computadoras de mi red windows&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este consejo también es útil al momento de agregar impresoras compartidas por computadoras con windows, ya que localiza correctamente los equipos en la red.&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Samba" target="_blank" rel="noopener"
>Samba - ArchWiki&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Problema para imprimir en impresoras compartidas de windows en Manjaro [Solucionado]</title><link>https://linuxmanr4.com/2013/01/11/problema-para-imprimir-en-impresoras-compartidas-de-windows-en-manjaro-solucionado/</link><pubDate>Fri, 11 Jan 2013 20:54:55 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/11/problema-para-imprimir-en-impresoras-compartidas-de-windows-en-manjaro-solucionado/</guid><description>&lt;p>Sigo ajustandome a Manjaro, ahora el problema fue dar de alta una impresora que esta conectada a un equipo que utiliza windows xp, es posible pero requiere un poco más de esfuerzo.&lt;/p>
&lt;p>Primero le dí un vistazo a un par de artículos en la Wiki de Manjaro &lt;a class="link" href="https://wiki.manjaro.org/index.php/Printing" target="_blank" rel="noopener"
>Printer Configuration&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. El problema de esta guía es que funciona muy bien en impresoras conectadas directamente a la computadora, pero no ofrece información para dar de alta impresoras que están conectadas en otros equipos con windows y compartidas por red.&lt;/p>
&lt;p>Lo primero fuí a &lt;strong>Printer Settings&lt;/strong> y agregué una impresora con el botón &lt;strong>Añadir&lt;/strong> luego la opción que dice: &lt;strong>Impresora de red&lt;/strong> - &lt;strong>Impresora Windows vía SAMBA&lt;/strong>.&lt;/p>
&lt;p>Al presionar el botón &lt;strong>Navegar&lt;/strong> me apareció un error que luego pude corregir, pero la pueden dar de alta con la ip del equipo y el nombre de la impresora en la red, por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">smb://192.168.0.x/impresora
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pueden presionar el botón de &lt;strong>Verificar&lt;/strong> para revisar si todo esta correcto.&lt;/p>
&lt;h2 id="falta-el-archivo-smbconf">Falta el archivo smb.conf
&lt;/h2>&lt;p>Lo que sigue es dar de alta el driver de la impresora, hasta aquí todo rutinario. Pero al momento de enviar la página de prueba me da el siguiente error:&lt;/p>
&lt;p>&lt;strong>Detenido - Can’t load /etc/samba/smb.conf - run testparm to debug it&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Error-impresora-compartida.png"
alt="Error impresora compartida en windows">&lt;figcaption>
&lt;p>Error impresora compartida en windows&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="la-solución---instalar-samba">La solución - instalar samba
&lt;/h2>&lt;p>Samba es tan antiguo como la relación entre &lt;a class="link" href="https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/" >linux y windows&lt;/a>
. La solución era hasta cierto punto obvia, era necesario instalar samba para que apareciera el archivo smb.conf. Para hacerlo en Manjaro es muy sencillo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S samba
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esto instalará el paquete pero no va a crear el archivo smb.conf , para eso es necesario hacer una copia.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cd /etc/samba
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo cp smb.conf.default smb.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De pasada abrí el archivo para hacer algunos pequeños ajustes en el grupo de trabajo, pero es opcional.&lt;/p>
&lt;p>Reinicié mi equipo para que iniciara todos los programas asociados con samba y después revisé nuevamente el estado de la impresora.&lt;/p>
&lt;p>Y listo… al encontrar el archivo todo funciona correctamente :)&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Impresora-lista-y-funcionando-en-Manjaro.png"
alt="Impresora lista y funcionando en Manjaro">&lt;figcaption>
&lt;p>Impresora lista y funcionando en Manjaro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Espero no haber omitido ningún paso, pero creo que con eso es más que suficiente para que se pueda imprimir en una impresora de red conectada a una computadora que utiliza windows.&lt;/p></description></item><item><title>Faltan las carpetas Descargas, Documentos, Imágenes, Música y Videos en Manjaro</title><link>https://linuxmanr4.com/2013/01/09/faltan-las-carpetas-descargas-documentos-imagenes-musica-y-videos-en-manjaro/</link><pubDate>Wed, 09 Jan 2013 14:53:22 +0000</pubDate><guid>https://linuxmanr4.com/2013/01/09/faltan-las-carpetas-descargas-documentos-imagenes-musica-y-videos-en-manjaro/</guid><description>&lt;p>Al fin pude instalar Manjaro en mi equipo del trabajo, estoy muy contento con esta distro y quise llevar mi experiencia al uso cotidiano.&lt;/p>
&lt;p>Instalé la versión Cinnamon Stable 0.8.3 y al observar mi carpeta de &lt;strong>HOME&lt;/strong> me di cuenta de que no están las conocidas carpetas de Descargas, Documentos, Imágenes, Música y Videos.&lt;/p>
&lt;p>Se que es un pequeño detalle, pero vamos, tampoco es muy difícil de solucionar.&lt;/p>
&lt;p>Fue gracias a un artículo de &lt;strong>GEspadas.com | Instalación de Xfce en ArchLinux \[Tutorial\]&lt;/strong> que habla sobre Xfce y ArchLinux que dí con la solución y es muy sencilla.&lt;/p>
&lt;p>Lo primero es instalar un paquete:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S xdg-user-dirs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Luego modificar un archivo con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/xdg/user-dirs.defaults
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El archivo se explica solo… básicamente cambie los nombres al español más o menos así.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"># Default settings for user directories
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># The values are relative pathnames from the home directory and
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># will be translated on a per-path-element basis into the users locale
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DESKTOP=Escritorio
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DOWNLOAD=Descargas
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#TEMPLATES=Templates
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#PUBLICSHARE=Public
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DOCUMENTS=Documentos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MUSIC=Musica
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">PICTURES=Imagenes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">VIDEOS=Videos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Another alternative is:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#MUSIC=Documents/Music
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#PICTURES=Documents/Pictures
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">#VIDEOS=Documents/Videos
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/01/Captura-de-pantalla-de-2013-01-09-021448.png"
alt="Carpeta HOME en Manjaro Linux Cinnamon">&lt;figcaption>
&lt;p>Carpeta HOME en Manjaro Linux Cinnamon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Guardé el archivo y ejecuté el comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">xdg-user-dirs-update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hasta aquí todo parecía ir bien, pero por alguna razón la carpeta &lt;strong>Videos&lt;/strong> me aparecía como &lt;strong>Vídeos&lt;/strong> con acento.&lt;/p>
&lt;p>Así que para arreglarlo hice una carpeta en &lt;strong>home&lt;/strong> con el nombre de &lt;strong>Videos&lt;/strong> (sin el acento), luego modifiqué este archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gedit ~/.config/user-dirs.dirs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y corregí la última línea para que me apareciera sin acento.&lt;/p>
&lt;p>Nuevamente ejecuté la instrucción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">xdg-user-dirs-update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y luego eliminé la carpeta &lt;strong>Vídeos&lt;/strong> , notarán que las carpetas creadas de esta manera tienen un símbolo que identifica su contenido.&lt;/p>
&lt;p>Esta fue la Manjaro Aventura de hoy, espero que les sea de utilidad.&lt;/p></description></item><item><title>Primeros pasos con Manjaro Linux</title><link>https://linuxmanr4.com/2012/12/20/primeros-pasos-con-manjaro/</link><pubDate>Thu, 20 Dec 2012 22:37:45 +0000</pubDate><guid>https://linuxmanr4.com/2012/12/20/primeros-pasos-con-manjaro/</guid><description>&lt;h2 id="qué-es-manjaro">¿Qué es Manjaro?
&lt;/h2>&lt;p>Algunos dirán que Manjaro es un &lt;em>Arch for dummies&lt;/em>, pero la realidad es que a muchos (incluyéndome) les asusta la complejidad del proceso de instalación de Arch Linux, bueno Manjaro tiene las ventajas de Arch pero sin las complicaciones de su instalación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/3.png"
alt="Ambiente XFCE , ligero y potente.">&lt;figcaption>
&lt;p>Ambiente XFCE , ligero y potente.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Manjaro es una distro &lt;em>rolling release&lt;/em>, eso quiere decir que sus paquetes siempre serán los más recientes diciéndole adiós a la &lt;em>versionitis&lt;/em> y a los nombres con animalitos de adjetivos raros. Una actualización del sistema y ¡Listo! ya tienes la última versión.&lt;/p>
&lt;h2 id="descargando-que-es-gerundio">Descargando que es gerundio.
&lt;/h2>&lt;p>Manjaro separó sus descargas en dos versiones, la estable y la de desarrollo. Pero son muy similares, en la de desarrollo se hacen pruebas en nuevas opciones, por ejemplo, el tan famoso y añorado instalador gráfico.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/manjarolinux/files/release/" target="_blank" rel="noopener"
>Manjaro Estable&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://sourceforge.net/projects/manjarodev/files/testbuild/" target="_blank" rel="noopener"
>Manjaro en Desarrollo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Esta distro no tiene una sección para descargas mediante bittorrent, pero gracias a los amigos de LinuxTracker existen (aunque no todos) los archivos isos para su descarga.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://linuxtracker.org/index.php?page=torrents&amp;amp;search=manjaro&amp;amp;category=39&amp;amp;active=1" target="_blank" rel="noopener"
>Manjaro por bittorrent disponible en linuxtracker&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="la-instalación">La instalación.
&lt;/h2>&lt;p>Instalarlo no es muy fácil, pero tampoco es muy complicado. En la misma página de la descarga se incluye un PDF con uan guía para el principiante (que les recomiendo que lean).&lt;/p>
&lt;p>Si van a instalar Manjaro como un sistema único en su equipo el instalador hará todo lo necesario, pero si quieren hacer las particiones, tengan cuidado, más les vale tener un respaldo a la mano.&lt;/p>
&lt;p>Y es que en mi caso,acostumbrado al instalador gráfico de Ubuntu, el redimensionado de las particiones y su asignación es un juego de niños. En Manjaro el programa es del tipo texto y al final, créanme, no estuve seguro de nada. Tengan papel y lápiz a la mano para apuntar los nombres de las particiones y enciendan una veladora a San Juditas solo por precaución.&lt;/p>
&lt;h2 id="manjaro-instalado-y-listo-y-ahora-que">Manjaro instalado y listo ¿Y ahora que?
&lt;/h2>&lt;p>Tu equipo inicio correctamente, Manjaro esta listo para recibir tus órdenes, pero ¿Qué es lo primero que tienes que hacer?.&lt;/p>
&lt;h3 id="cambiar-el-mirror-por-el-más-cercano">Cambiar el mirror por el más cercano.
&lt;/h3>&lt;p>Este es el primer consejo que hay que aplicar, por default, los mirrors de Manjaro están configurados para descargarse desde Inglaterra, pero en mi caso, lo mejor es cambiarlos por uno de Estados Unidos. Afortunadamente esta (y mucha tareas) son muy sencillas.&lt;/p>
&lt;p>Vasta con editar el archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/pacman.d/mirrorlist
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y descomentar la línea del servidor de tu preferencia, en mi caso:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"> ## United States
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Server = http://mirror.dacentec.com/manjaro/$repo/$arch
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="actualizar-todo-el-sistema">Actualizar todo el sistema.
&lt;/h3>&lt;p>Para actualizar los repositorios y actualizar completamente el sistema, basta con teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/1.png"
alt="Actualizando el sistema">&lt;figcaption>
&lt;p>Actualizando el sistema&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="instalar-programas">Instalar programas
&lt;/h3>&lt;p>Manjaro utilia a &lt;strong>pacman&lt;/strong> ( &lt;strong>Pac&lt;/strong> kage &lt;strong>Man&lt;/strong> ager) para instalar, actualizar y remover programas, es muy sencillo de utilizar, pero si se les dificulta un poco esta disponible una herramienta gráfica llamada &lt;strong>pacman-gui&lt;/strong>, no es tan espectacular como el Centro de software de Ubuntu, pero una vez que te acostumbras no hay mucho problema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/2.png"
alt="pacman-gui el instalador gráfico">&lt;figcaption>
&lt;p>pacman-gui el instalador gráfico&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Por ejemplo, si quieren instalar Google Chrome lo único que tienen que hacer es teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S chromium
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>De momento me siento muy contento con el rendimiento de Manjaro, su instalación aunque puede ahuyentar a los más novatos es algo en lo que se esta trabajando y mejorando cada día. No lo se, a lo mejor un día de estos cambio el color morado de mi blog por un tono verde menta.&lt;/p>
&lt;p>Si se animan aquí les dejo &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Como instalar Manjaro Linux paso a paso, guía para principiantes.&lt;/a>
&lt;/p>
&lt;h4 id="enlaces">Enlaces
&lt;/h4>&lt;ul>
&lt;li>&lt;a class="link" href="https://manjaro.org/news" target="_blank" rel="noopener"
>Blog de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://wiki.manjaro.org/" target="_blank" rel="noopener"
>Wiki de manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://forum.manjaro.org/" target="_blank" rel="noopener"
>Foros de discusión de Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Manjaro Linux y la tarjeta gráfica GMA500 (poulsbo)</title><link>https://linuxmanr4.com/2012/12/17/manjaro-y-la-tarjeta-grafica-gma500-poulsbo/</link><pubDate>Tue, 18 Dec 2012 01:20:05 +0000</pubDate><guid>https://linuxmanr4.com/2012/12/17/manjaro-y-la-tarjeta-grafica-gma500-poulsbo/</guid><description>&lt;p>Hace unos días me dí a la tarea de instalar Manjaro en algunos de mis equipos y la verdad que he quedado sorprendido con su desempeño.&lt;/p>
&lt;p>Pero le llegó su turno a mi querida &lt;strong>Acer Aspire One ao751h&lt;/strong> que tiene el infame chip gráfico &lt;strong>GMA500&lt;/strong> aka &lt;strong>poulsbo&lt;/strong> que tantos dolores me ha causado en varias distribuciones de linux.&lt;/p>
&lt;p>Al terminar la instalación el equipo no inicio en modo gráfico, dejandome un poco a la deriva. Después de visitar varios foros y leer el wiki de &lt;strong>Arch linux&lt;/strong> di con una solución que mas o menos me funcionó.&lt;/p>
&lt;h2 id="1-desinstalar-los-controladores-detectados">1. Desinstalar los controladores detectados.
&lt;/h2>&lt;p>Al parecer el problema que Manjaro no detecta correctamente mi tarjeta de video, así que lo primero que hice fue desinstalar los controladores y configuraciones que realiza el programa &lt;strong>mhwd&lt;/strong>.&lt;/p>
&lt;p>Para revisar que configuración fue la que detecto e instalo &lt;strong>mhwd&lt;/strong> se teclea el siguiente comando en una terminal:&lt;/p>
&lt;p>sudo mhwd -li&lt;/p>
&lt;p>y tendrán este resultado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Installed PCI configs:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> NAME VERSION FREEDRIVER TYPE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> video-intel 2012.11.13 true
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Eso quiere decir que esta instalada la configuración de video de una tarjeta intel. Lamentablemente esta no es correcta y la desinstale usando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -r pci video-intel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En alguna ocasión me llegó a aparecer una instalación con el nombre de &lt;strong>video-vesa&lt;/strong> también la eliminé.&lt;/p>
&lt;h2 id="2-instalar-algo-que-me-funcionara">2. Instalar algo que me funcionara.
&lt;/h2>&lt;p>Aunque no me la detecto de esa manera lo que hice fue instalar una configuración más adecuada con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mhwd -i pci video-intel-gma500
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Aunque eso no fue suficiente.&lt;/p>
&lt;h2 id="3-ajustar-la-configuración">3. Ajustar la configuración.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/Ajustando-90-mhwd.conf%5F.jpg"
alt="Ajustando 90-mhwd.conf">&lt;figcaption>
&lt;p>Ajustando 90-mhwd.conf&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Luego modifique la sección &lt;strong>Device&lt;/strong> del archivo &lt;strong>etc/X11/xorg.conf.d/90-mhwd.conf&lt;/strong> para que quedara idéntica a esta:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section “Device”
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier “gma500_gfx”
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Driver “modesetting”
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option “SWCursor” “ON”
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="4-instalar-lo-que-falta">4. Instalar lo que falta
&lt;/h2>&lt;p>En este punto ya estaba muy cerca de la solución, pero al arrancar el sistema gráfico me marcaba un error. Básicamente me decía que el modulo &lt;em>modesetting&lt;/em> no estaba instalado y por eso no podía continuar.&lt;/p>
&lt;p>Para eso tuve que instalar un paquete adicional:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -S xf86-video-modesetting
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si todo salió bien, al ejecutar el comando &lt;strong>startxfce4&lt;/strong> iniciará correctamente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/Configuraci%C3%B3n-correcta-de-la-pantalla.jpg"
alt="Configuración correcta a 1366x768">&lt;figcaption>
&lt;p>Configuración correcta a 1366x768&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Hasta el momento estos han sido los ajustes que me han permitido tener una correcta configuración de la pantalla a una resolución de 1366x768. Voy a ver la manera de colaborar con el equipo de Manjaro para ver como se puede corregir esta situación desde el momento de la instalación.&lt;/p>
&lt;h2 id="actualización-13-baktún">Actualización (13 baktún)
&lt;/h2>&lt;p>Poco después de escribir este artículo escribí mi situación en los foros de bugs de Manjaro, se puso en contacto conmigo Philip Müller, que me solicitó información de mi equipo y el me enviaba archivos de configuración para probar. El último que me mandó hizo que funcionará bien a la primera y me dijo que estas modificaciones se incluirán en las nuevas actualizaciones. Por eso me gusta linux :)&lt;/p>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://wiki.archlinux.org/index.php/Poulsbo" target="_blank" rel="noopener"
>ArchWiki - Poulsbo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Re: Installing Manjaro-0.8.2-x86_64 I’m left on CLI&lt;/li>
&lt;li>&lt;a class="link" href="http://wiki.manjaro.org/index.php/Configure_Graphics_Cards" target="_blank" rel="noopener"
>Configure Graphics Cards - Wiki Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://manjaro.org/news" target="_blank" rel="noopener"
>Manjaro Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Creando una USB de arranque para Manjaro</title><link>https://linuxmanr4.com/2012/12/13/creando-una-usb-de-arranque-para-manjaro/</link><pubDate>Thu, 13 Dec 2012 15:27:10 +0000</pubDate><guid>https://linuxmanr4.com/2012/12/13/creando-una-usb-de-arranque-para-manjaro/</guid><description>&lt;p>Ayer me dí a la tarea de buscar un reemplazo para Ubuntu, cada cierto tiempo me da por probar nuevas distribuciones, mis candidatos eran Debian, Fedora, pero &lt;a class="link" href="http://manjaro.org" target="_blank" rel="noopener"
>Manjaro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
está causando cierto revuelo y me decidí a probarlo.&lt;/p>
&lt;p>Descargué el archivo &lt;strong>.iso&lt;/strong> como de costumbre, preparé mi dispositivo USB con Lili USB Creator y al iniciar la computadora me topé con un error bastante feo que decía:&lt;/p>
&lt;p>&lt;code>Waiting 30 seconds for device /dev/disk/by-label/MJRO_08P&lt;/code>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/2012-12-12-08.12.31.jpg"
alt="Error al iniciar Manjaro desde una unidad USB">&lt;figcaption>
&lt;p>Error al iniciar Manjaro desde una unidad USB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El problema es claro, no encuentra el dispositivo con la etiqueta &lt;strong>MJRO_O8P&lt;/strong>, intenté cambiarla con gparted pero no funcionó, así que después de buscar un poco en internet, esto fue lo que solucionó el problema.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>Primero instalé en Ubuntu el programa &lt;a class="link" href="https://launchpad.net/win32-image-writer" target="_blank" rel="noopener"
>ImageWriter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
usando el centro de software de Ubuntu, también hay una versión disponible para windows.&lt;/p>
&lt;p>Un problema menor es que ImageWriter no reconoce archivos con extensión &lt;strong>.iso&lt;/strong> así que tuve que cambiar la extensión a &lt;strong>.img&lt;/strong> y listo.&lt;/p>
&lt;p>A partir de ahí todo es mucho más sencillo, solo tienes que indicarle al programa la ubicación de la imagen de &lt;strong>Manjaro&lt;/strong> y la unidad USB de destino.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/ImageWriter%5F033.png"
alt="ImageWriter para Ubuntu">&lt;figcaption>
&lt;p>ImageWriter para Ubuntu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El resultado es una &lt;a class="link" href="https://linuxmanr4.com/2015/04/29/copiar-un-iso-a-una-memoria-usb-con-isousb/" >memoria USB&lt;/a>
de arranque correctamente etiquetada y que funciona muy bien.&lt;/p>
&lt;p>Si tienen el espíritu aventurero, denle una oportunidad a Manjaro, tengo poco usándolo pero tiene muy buena pinta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/12/Captura-de-pantalla-de-2012-12-12-162608.png"
alt="Manjaro primer arranque">&lt;figcaption>
&lt;p>Manjaro primer arranque&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://launchpad.net/win32-image-writer" target="_blank" rel="noopener"
>ImageWriter para windows&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://manjaro.org/news" target="_blank" rel="noopener"
>Manjaro News&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Update Accelerator, mejorando las actualizaciones con IPCop</title><link>https://linuxmanr4.com/2012/10/23/el-update-accelerator-add-on-para-ipcop/</link><pubDate>Tue, 23 Oct 2012 20:23:59 +0000</pubDate><guid>https://linuxmanr4.com/2012/10/23/el-update-accelerator-add-on-para-ipcop/</guid><description>&lt;p>El Update Accelerator es un &lt;em>add-on&lt;/em> para IPCop que hace una sencilla pero noble labor &lt;strong>acelerar las actualizaciones&lt;/strong>.&lt;/p>
&lt;p>Supongamos que tenemos 30 equipos con una configuración más o menos similar. En lugar de que los 30 equipos descarguen sus actualizaciones individualmente ocupando ancho de banda y recursos, este &lt;em>add-on&lt;/em> “reconoce” los archivos descargados como actualizaciones y los almacena en un caché especial en el disco duro, cuando otra computadora necesita el mismo archivo de actualización la sirve desde el caché a la velocidad de la red local.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/10/mantenimiento-del-cach%C3%A9.png"
alt="Administración del caché">&lt;figcaption>
&lt;p>Administración del caché&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Desafortunadamente su lista de sitios es limitada y hasta donde se, no hay una opción para actualizarla o agregar sitios, pero los que incluye son de mucha utilidad:&lt;/p>
&lt;ul>
&lt;li>Adobe&lt;/li>
&lt;li>Apple&lt;/li>
&lt;li>Avast&lt;/li>
&lt;li>Linux (.deb and .rpm) // ¡Yeeeeeeei!&lt;/li>
&lt;li>Microsoft // Un mal necesario&lt;/li>
&lt;li>Symantec // Todavía hay quien lo usa&lt;/li>
&lt;li>Trend Micro&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Actualización 2012-11-03&lt;/strong> Gracias a el &lt;a class="link" href="https://plus.google.com/u/0/117519435372188827644/posts/72GyaKXwkrA" target="_blank" rel="noopener"
>comentario en Google Plus de Angel Martín&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que encontró una guía para personalizar los sitios con los que funciona este addon &lt;a class="link" href="https://web.archive.org/web/20150414233033/http://www.ipcops.com/phpbb3/viewtopic.php?f=7&amp;amp;t=13448" target="_blank" rel="noopener"
>Update Accelerator - Custom Sources Guide&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
¡Gracias!.&lt;/p>
&lt;p>Después de instalarlo es importante habilitarlo en la configuración del Proxy.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/10/Selecci%C3%B3n_025.png"
alt="Habilitando el addon">&lt;figcaption>
&lt;p>Habilitando el addon&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El &lt;em>add-on&lt;/em> ofrece opciones para limitar el ancho de banda que se utiliza para descargar las actualizaciones y el espacio que puede llegar a ocupar el caché en el disco duro, realmente no hay que moverle mucho para que funcione bien.&lt;/p>
&lt;p>Como anécdota, en la red que administro es curioso escuchar la voz femenina de Avast diciendo rapidamente varias veces — &lt;em>La base de datos de virus ha sido actualizada&lt;/em> — casi de manera simultánea :)&lt;/p>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20190926145718/http://update-accelerator.advproxy.net/" target="_blank" rel="noopener"
>updatexlrator - The Update Accelerator add-on&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20150414233033/http://www.ipcops.com/phpbb3/viewtopic.php?f=7&amp;amp;t=13448" target="_blank" rel="noopener"
>Update Accelerator - Custom Sources Guide&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Escribir sin distracciones: FocusWriter y Uberwriter</title><link>https://linuxmanr4.com/2012/09/17/focuswriter-uberwriter/</link><pubDate>Mon, 17 Sep 2012 13:49:53 +0000</pubDate><guid>https://linuxmanr4.com/2012/09/17/focuswriter-uberwriter/</guid><description>&lt;p>Transmitir una idea de manera escrita … disculpen, me llegó un correo …. decía, que escribir … jajaja ese meme de google plus esta genial +1000 :) … ok, ¿en que me quedé?.., escribir en un blog … Ohhh por favor !!!! bueno solo un &lt;em>tweet&lt;/em> más ya y termino de escribir este articulo.&lt;/p>
&lt;h2 id="el-reto-es-escribir-sin-distracciones">El reto es: Escribir sin distracciones.
&lt;/h2>&lt;p>Lo admito a veces escribir un articulo supone más retos que los que amerita por las distracciones a las que estamos expuestos. Es por eso que busqué programas que se enfocan en lo que realmente importa, en escribir las ideas y dejar las distracciones para después.&lt;/p>
&lt;p>Afortunadamente en Linux hay dos excelentes opciones de programas que te ayudan a concentrarte en lo que estas escribiendo .&lt;/p>
&lt;h2 id="focuswriter">FocusWriter.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/FocusWriter.png"
alt="FocusWriter, un editor de texto minimalista">&lt;figcaption>
&lt;p>FocusWriter, un editor de texto minimalista&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Fue mi primera opción porque esta disponible en el &lt;strong>Centro de software&lt;/strong> de Ubuntu.&lt;/p>
&lt;p>Tiene una interfaz minimalista que evita que te distraigas en lo que no debes y tiene un detalle especial que no he visto en otros editores de texto, &lt;strong>FocusWriter&lt;/strong> incluye el sonido retro de una maquina de escribir ¡Genial!. Por un momento me sentí como si estuviera en la secundaria haciendo mis tareas en mi vetusta máquina de escribir Olivetti ¡Ahhh memories! :).&lt;/p>
&lt;p>Parece mentira, pero este sencillo detalle puede contar mucho a la hora de escribir. El sonido de las teclas, al menos en mi caso, como que me ayuda a concentrarme y me hubiera quedado con este programa si no fuera por el hecho de que no &lt;a class="link" href="https://linuxmanr4.com/2014/01/02/haroopad-otro-editor-con-soporte-para-markdown/" >soporta &lt;em>markdown&lt;/em>&lt;/a>
.&lt;/p>
&lt;p>Markdown fue inventado originalmente por John Gruber, y su sintaxis permite escribir textos que se pueden convertir fácilmente a &lt;em>HTML&lt;/em>.&lt;/p>
&lt;h2 id="uberwriter">Uberwriter.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/Uberwriter.png"
alt="Uberwriter, un editor para markdown">&lt;figcaption>
&lt;p>Uberwriter, un editor para markdown&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Uberwriter&lt;/strong> es un editor de texto super minimalista que soporta perfectamente &lt;em>markdown&lt;/em>, pero no solo eso, tiene otras opciones que me encantaron:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Dark mode&lt;/strong> , para los que somos caballeros de la oscuridad, este programa tiene un &lt;em>theme&lt;/em> que automáticamente pone el fondo negro y un texto en un suave color gris.&lt;/li>
&lt;li>&lt;strong>Focus mode&lt;/strong> Esta opción es una maravilla, automáticamente resalta la oración que estas escribiendo, de esa forma te puedes concentrar mejor en el párrafo actual.&lt;/li>
&lt;li>&lt;strong>Expresiones matemáticas&lt;/strong> Uberwriter permite desarrollar adecuadamente expresiones matemáticas con la sintaxis de &lt;a class="link" href="http://es.wikipedia.org/wiki/LaTeX" target="_blank" rel="noopener"
>LaTeX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;strong>Exportar a HTML, ODT y PDF&lt;/strong> Cuando hayas terminado de escribir, se puede expulsar nuestros textos a HTML, PDF u ODT. Este último es un formato libre usado por &lt;strong>LibreOffice&lt;/strong> y esto es genial, porque si quieres, ya tienes un texto con cierta estructura y luego con &lt;strong>Writer&lt;/strong> lo puedes adornar.&lt;/li>
&lt;/ul>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/dYrW56-qGjY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Los dos son excelentes programas, &lt;strong>FocusWriter&lt;/strong> tiene muchas más opciones y es un editor más completo, pero no tiene soporte para markdown.&lt;/p>
&lt;p>&lt;strong>Uberwriter&lt;/strong> aunque tiene un desarrollo más “verde” lo he preferido por su sencillez y porque es un editor especialista en markdown, además me ha gustado mucho su diseño, de hecho, este articulo fue escrito utilizando este editor de textos.&lt;/p>
&lt;h3 id="enlaces">Enlaces.
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://gottcode.org/focuswriter/" target="_blank" rel="noopener"
>Focus Writer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/uberwriter/uberwriter" target="_blank" rel="noopener"
>Uberwriter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://daringfireball.net/projects/markdown/" target="_blank" rel="noopener"
>Markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://es.wikipedia.org/wiki/LaTeX" target="_blank" rel="noopener"
>LaTeX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>ClamAV no actualiza la base de datos de virus.</title><link>https://linuxmanr4.com/2012/09/10/clamav-no-actualiza-la-base-de-datos-de-virus/</link><pubDate>Mon, 10 Sep 2012 14:32:08 +0000</pubDate><guid>https://linuxmanr4.com/2012/09/10/clamav-no-actualiza-la-base-de-datos-de-virus/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/Analizador-de-virus%5F004.png"
alt="Clamtk con las definiciones antivirales actualizadas.">&lt;figcaption>
&lt;p>Clamtk con las definiciones antivirales actualizadas.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hoy al intentar buscar virus en una memoria USB (que por cierto si tenía) me di cuenta de que ClamTk, una interfaz gráfica para &lt;a class="link" href="http://www.clamav.net/lang/en/" target="_blank" rel="noopener"
>ClamAV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me estaba dando el mensaje de que la base de datos de virus era obsoleta. Era la primera vez que me mostraba (o que me daba cuenta) ese detalle así que me puse a investigar al respecto.&lt;/p>
&lt;h2 id="el-error">El error
&lt;/h2>&lt;p>Intenté actualizar manualmente la base de datos con el comando:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo freshclam
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y me mostró estos mensajes de error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">ERROR&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Can&lt;/span>&lt;span class="err">’&lt;/span>&lt;span class="n">t&lt;/span> &lt;span class="n">open&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">log&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">clamav&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freshclam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">log&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">append&lt;/span> &lt;span class="n">mode&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">check&lt;/span> &lt;span class="n">permissions&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span> &lt;span class="n">ERROR&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Problem&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">internal&lt;/span> &lt;span class="n">logger&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">UpdateLogFile&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">log&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">clamav&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freshclam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">log&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="crear-el-archivo-freshclamlog">Crear el archivo freshclam.log
&lt;/h2>&lt;p>El error indicaba un problema de permisos, pero al intentar revisarlos me di cuenta de que el archivo &lt;strong>/var/log/clamav/freshclam.log&lt;/strong> ¡No existe!, así que lo que hice fue crear un archivo en blanco con el comando &lt;strong>gedit&lt;/strong> con el mismo nombre y ruta del archivo faltante.&lt;/p>
&lt;h2 id="darle-los-permisos-al-archivo">Darle los permisos al archivo.
&lt;/h2>&lt;p>Solo faltaba darle los permisos al archivo y después de investigar un usuario y grupo adecuado, el ganador fue el usuario &lt;strong>clamav&lt;/strong> lo que hice fue darle permisos al archivo con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">chown&lt;/span> &lt;span class="n">clamav&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">log&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">clamav&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freshclam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">log&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">sudo&lt;/span> &lt;span class="n">chgrp&lt;/span> &lt;span class="n">clamav&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">log&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">clamav&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">freshclam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">log&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/inguanzo@sandycheeks-%5F005.png"
alt="El comando sudo freshclam funcionando correctamente.">&lt;figcaption>
&lt;p>El comando sudo freshclam funcionando correctamente.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de hacer esto el comando &lt;strong>sudo freshclam&lt;/strong> funciona correctamente y actualiza la base de datos de virus de ClamAV.&lt;/p>
&lt;h2 id="actualización-script-para-actualizar-clamtk">Actualización: Script para actualizar clamtk
&lt;/h2>&lt;p>Como pasaba el tiempo y desafortunadamente este bug no se ha corregido decidí hacer un pequeño script para hacer la actualización de las firmas de clamav.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/script-para-actualizar-clamtk.png"
alt="script para actualizar clamtk">&lt;figcaption>
&lt;p>script para actualizar clamtk&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="actualiza_clamavsh">actualiza_clamav.sh
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="nb">echo&lt;/span> Creando los directorios necesarios archivos ..
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo mkdir /var/log/clamav/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo touch /var/log/clamav/freshclam.log
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> Dando permisos...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo chown clamav /var/log/clamav/freshclam.log
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo chgrp clamav /var/log/clamav/freshclam.log
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> Actualizando bases de datos...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> sudo freshclam
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Corregir el formato de número Español México en Ubuntu</title><link>https://linuxmanr4.com/2012/08/17/corregir-el-formato-de-numero-en-ubuntu/</link><pubDate>Fri, 17 Aug 2012 14:28:47 +0000</pubDate><guid>https://linuxmanr4.com/2012/08/17/corregir-el-formato-de-numero-en-ubuntu/</guid><description>&lt;h2 id="los-síntomas">Los síntomas.
&lt;/h2>&lt;p>Ya son dos ocasiones que me encuentro con este problema en Ubuntu 12.04 y para ser honesto, no recuerdo haberlo tenido en versiones anteriores de Gnome o de Ubuntu.&lt;/p>
&lt;p>El problema es que utiliza el punto como separador de miles y la coma para indicar la parte decimal tal y como se usa en se usa en España, pero en México es lo opuesto. Lo raro es que en la especificación de moneda si utiliza correctamente el punto para indicar la parte decimal.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/Formato-de-n%C3%BAmero-y-moneda-erroneo.png"
alt="Formato de número y moneda para México">&lt;figcaption>
&lt;p>Formato de número y moneda para México&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El bug ya esta reportado, pero mientras lo corrigen esta es la solución que me funcionó.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>Lo primero es editar este archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /usr/share/i18n/locales/es_MX
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y buscar las lineas que dicen:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">LC_NUMERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">copy &amp;#34;es_ES&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_NUMERIC
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/es%5FMX-usr-share-i18n-locales-gedit%5F001.png"
alt="Editando el archivo es\_MX">&lt;figcaption>
&lt;p>Editando el archivo es_MX&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver el formato de número es una copia del que se usa en España, no no no, muy mal, cambiamos esas líneas por estas otras y guardamos el archivo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">LC_NUMERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">decimal_point &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">thousands_sep &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">grouping 3;3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_NUMERIC
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y aplicamos los cambios con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo dpkg-reconfigure locales
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciamos y listo !!!.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://bugs.launchpad.net/ubuntu/&amp;#43;source/langpack-locales/&amp;#43;bug/995243" target="_blank" rel="noopener"
>Reporte del error: es_MX locale uses wrong decimal comma (it should use dot)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="con-manjaro-linux">Con Manjaro Linux
&lt;/h2>&lt;p>Con Manjaro Linux ocurre el mismo problema, y se corrige de manera muy similar.&lt;/p>
&lt;p>Edité el mismo archivo e hice los mismos cambios que con Ubuntu, pero para aplicar los cambios usé la instrucción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo locale-gen
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esta manera se corrige el formato de número en Manjaro para México como pueden ver en esta imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/Ajustando-los-formatos-de-n%C3%BAmero-en-Manjaro-Linux.png"
alt="Ajustando los formatos de número en Manjaro Linux">&lt;figcaption>
&lt;p>Ajustando los formatos de número en Manjaro Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si gustan, pueden revisar el archivo &lt;strong>es_MX&lt;/strong> ya corregido:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">comment_char %
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">escape_char /
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Spanish language locale for Mexico
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Source: RAP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Address: Sankt Jo//rgens Alle 8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% DK-1615 Ko//benhavn V, Danmark
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Contact: Keld Simonsen
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Email: Keld.Simonsen@dkuug.dk
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Tel: +45 - 31226543
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Fax: +45 - 33256543
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Language: es
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Territory: MX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Revision: 4.4
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Date: 1997-11-05
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Application: general
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Users: general
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Repertoiremap: mnemonic.ds
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Charset: ISO-8859-1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% Distribution and use is free, also
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% for commercial purposes.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_IDENTIFICATION
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">title &amp;#34;Spanish locale for Mexico&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">source &amp;#34;RAP&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">address &amp;#34;Sankt J&amp;lt;U00F8&amp;gt;rgens Alle 8, DK-1615 K&amp;lt;U00F8&amp;gt;benhavn V, Danmark&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">contact &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">email &amp;#34;bug-glibc-locales@gnu.org&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tel &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">fax &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">language &amp;#34;Spanish&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">territory &amp;#34;Mexico&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">revision &amp;#34;1.0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">date &amp;#34;2000-06-29&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">%
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_IDENTIFICATION
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_CTYPE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_COLLATE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_TIME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_NUMERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_MONETARY
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_MESSAGES
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_PAPER
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_NAME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_ADDRESS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">category &amp;#34;es_MX:2000&amp;#34;;LC_TELEPHONE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_IDENTIFICATION
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_COLLATE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">copy &amp;#34;es_ES&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_COLLATE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_CTYPE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">copy &amp;#34;es_ES&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_CTYPE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_MESSAGES
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">copy &amp;#34;es_ES&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_MESSAGES
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_MONETARY
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">int_curr_symbol &amp;#34;&amp;lt;U004D&amp;gt;&amp;lt;U0058&amp;gt;&amp;lt;U004E&amp;gt;&amp;lt;U0020&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">currency_symbol &amp;#34;&amp;lt;U0024&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mon_decimal_point &amp;#34;&amp;lt;U002E&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mon_thousands_sep &amp;#34;&amp;lt;U002C&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mon_grouping 3;3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">positive_sign &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">negative_sign &amp;#34;&amp;lt;U002D&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">int_frac_digits 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">frac_digits 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">p_cs_precedes 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">p_sep_by_space 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">n_cs_precedes 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">n_sep_by_space 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">p_sign_posn 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">n_sign_posn 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_MONETARY
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_NUMERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">decimal_point &amp;#34;&amp;lt;U002E&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">thousands_sep &amp;#34;&amp;lt;U002C&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">grouping 3;3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_NUMERIC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_TIME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">abday &amp;#34;&amp;lt;U0064&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U006D&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U006C&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006E&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0072&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U00E9&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U0076&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0073&amp;gt;&amp;lt;U00E1&amp;gt;&amp;lt;U0062&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">day &amp;#34;&amp;lt;U0064&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0067&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006C&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0073&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0073&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U00E9&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U006C&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0073&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0076&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0073&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0076&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0073&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0073&amp;gt;&amp;lt;U00E1&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0064&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">abmon &amp;#34;&amp;lt;U0065&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U0066&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0062&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0072&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U0061&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0079&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006E&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006C&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U0061&amp;gt;&amp;lt;U0067&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0073&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0070&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U006F&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U0074&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006E&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U0076&amp;gt;&amp;#34;;&amp;#34;&amp;lt;U0064&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0063&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mon &amp;#34;&amp;lt;U0065&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0066&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U007A&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0061&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U006C&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006D&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0079&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006E&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006A&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U006C&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0061&amp;gt;&amp;lt;U0067&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U0073&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U006F&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0073&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0070&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006F&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U0075&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U006E&amp;gt;&amp;lt;U006F&amp;gt;&amp;lt;U0076&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;&amp;lt;U0064&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U0069&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0065&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">d_t_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0064&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0059&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0054&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U005A&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">d_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0064&amp;gt;&amp;lt;U002F&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U002F&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0079&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">t_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0054&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">am_pm &amp;#34;&amp;#34;;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">t_fmt_ampm &amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">date_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0065&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0048&amp;gt;&amp;lt;U003A&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004D&amp;gt;&amp;lt;U003A&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0053&amp;gt;&amp;lt;U0020&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U0025&amp;gt;&amp;lt;U005A&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0059&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_TIME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_PAPER
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">height 279
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">width 216
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_PAPER
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_TELEPHONE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tel_int_fmt &amp;#34;&amp;lt;U002B&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U006C&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">int_prefix &amp;#34;&amp;lt;U0035&amp;gt;&amp;lt;U0032&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_TELEPHONE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_MEASUREMENT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">% FIXME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">measurement 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_MEASUREMENT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_NAME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">name_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0064&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0067&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0074&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U0025&amp;gt;&amp;lt;U006D&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0074&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0066&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_NAME
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LC_ADDRESS
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">postal_fmt &amp;#34;&amp;lt;U0025&amp;gt;&amp;lt;U0066&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004E&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0061&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004E&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U0025&amp;gt;&amp;lt;U0064&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004E&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0062&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004E&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0073&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0068&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0065&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0072&amp;gt;&amp;lt;U0025&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U004E&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U007A&amp;gt;&amp;lt;U0020&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0054&amp;gt;&amp;lt;U0025&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;U004E&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U0063&amp;gt;&amp;lt;U0025&amp;gt;&amp;lt;U004E&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">country_ab2 &amp;#34;&amp;lt;U004D&amp;gt;&amp;lt;U0058&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">country_ab3 &amp;#34;&amp;lt;U004D&amp;gt;&amp;lt;U0045&amp;gt;&amp;lt;U0058&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">country_num 484
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">END LC_ADDRESS
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Problema con el ODBC de MySQL en Windows 7 de 64 bits</title><link>https://linuxmanr4.com/2012/08/14/problema-odbc-mysql-en-windows-7-64-bits/</link><pubDate>Tue, 14 Aug 2012 14:49:28 +0000</pubDate><guid>https://linuxmanr4.com/2012/08/14/problema-odbc-mysql-en-windows-7-64-bits/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/Program-Manager_2012-08-14_09-36-47.png" alt="Featured image of post Problema con el ODBC de MySQL en Windows 7 de 64 bits" />&lt;p>Tengo varios desarrollos en Access que utilizan como base de datos un servidor MySQL. Hace unos días mi máquina se fue al cielo de las computadoras y al dar de alta las configuraciones en mi nuevo equipo me encuentro con este problema.&lt;/p>
&lt;h2 id="al-instalar-el-odbc">Al instalar el ODBC.
&lt;/h2>&lt;p>Si instalo el ODBC Driver de MySQL (ahora desarrollado por Oracle) de 64 bits aparece de manera correcta en el panel de control y puedo dar de alta correctamente la configuración del enlace a la base de datos. Pero la aplicación no la reconoce y me da este error.&lt;/p>
&lt;p>&lt;strong>&amp;ldquo;La arquitectura del DSN no coincide entre el controlador y la aplicación&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>Por lo tanto no la puedo utilizar.&lt;/p>
&lt;p>Si instalo la versión de 32 bits del ODBC driver de MySQL no aparece en la lista de opciones MySQL para dar de alta un &lt;strong>Origen de los datos&lt;/strong>&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>La solución que me funcionó fue dejar la versión de 32 bits instalada y ejecutar &lt;strong>como usuario administrador&lt;/strong> el programa de &lt;strong>Orígenes de datos&lt;/strong> que se encuentra en:&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/Program-Manager%5F2012-08-14%5F09-36-47.png"
alt="Orígenes de datos ODBC MySQL" width="1044">&lt;figcaption>
&lt;p>Orígenes de datos ODBC MySQL&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">C:\Windows\SysWOW64\odbcad32.exe
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa manera puedo dar de alta mi &lt;a class="link" href="http://es.wikipedia.org/wiki/DSN" target="_blank" rel="noopener"
>DSN&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ya que si aparece en el listado y funciona perfectamente con mi aplicación. :)&lt;/p></description></item><item><title>Desde Hotmail hasta Outlook</title><link>https://linuxmanr4.com/2012/08/07/desde-hotmail-hasta-outlook/</link><pubDate>Tue, 07 Aug 2012 21:19:37 +0000</pubDate><guid>https://linuxmanr4.com/2012/08/07/desde-hotmail-hasta-outlook/</guid><description>&lt;h2 id="el-veterano-hotmail">El veterano Hotmail.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/Hotmail%5Fclassic%5Flogo.gif"
alt="El primer logo de hotmail">&lt;figcaption>
&lt;p>El primer logo de hotmail&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Corría el año de 1995, en una visita que hizo mi grupo (no recuerdo la materia) a la empresa LALA el Jefe de sistemas nos mostró sus instalaciones y un novedoso sistema de correo electrónico llamado &lt;a class="link" href="https://es.wikipedia.org/wiki/Hotmail" target="_blank" rel="noopener"
>Hotmail&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;br>
Con sus fabulosos 2 MB de almacenamiento gratuito (si, leyó usted bien) daba la oportunidad de que cualquiera pudiera tener una cuenta de correo electrónico y lo mejor de todo, la posibilidad de revisarla en cualquier lugar que tuviera disponible una conexión a internet.&lt;/p>
&lt;p>Llegando a la casa me conecté a internet usando mi flamante módem telefónico y después de unos chirridos estridentes obtuve de manera gratuita la misma cuenta de Hotmail que aún conservo.&lt;/p>
&lt;p>Poco tiempo después Hotmail fue comprado por Microsoft, de golpe y porrazo se hizo de una buena cantidad de usuarios y junto con esta compra anuncio el lanzamiento de un “novedoso” programa de mensajería instantánea competencia de &lt;a class="link" href="https://es.wikipedia.org/wiki/ICQ" target="_blank" rel="noopener"
>ICQ&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, el famoso Messenger.&lt;/p>
&lt;p>Ambos servicios dominaron el mercado durante una buena cantidad de tiempo, hasta que apareció en escena el &lt;em>Hotmail Killer&lt;/em>… Gmail.&lt;/p>
&lt;h2 id="llega-gmail-beta">Llega GMail “Beta”
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/08/gmail%5Fbeta%5Fdead-300x224.jpg"
alt="Gmail Beta">&lt;figcaption>
&lt;p>Gmail Beta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Llegó &lt;a class="link" href="https://es.wikipedia.org/wiki/Gmail" target="_blank" rel="noopener"
>Gmail&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con un enfoque fresco, diferente, causando furor principalmente por sus generosos 2 GB de almacenamiento y un sistema de suscripción por invitación.&lt;/p>
&lt;p>En un movimiento desesperado Hotmail cambio su espacio gratuito de 2MB por 250MB, pero esto inicio un juego de “a ver de que cuero salen más correas” y cada vez que los competidores aumentaban el espacio de almacenamiento Gmail aumentaba la apuesta.&lt;/p>
&lt;p>Me hice de una cuenta de Gmail cuando un buen amigo me pasó una invitación, comparé y ya no me moví de ahí. Mi cuenta de Hotmail se alimentaba ocasionalmente por mis entradas al “Mazzinger” pero mi bandeja de entrada empezó a acumular más y más correo basura (el mismo que juraba filtrar). Gmail comenzó un desarrollo frenético de nuevas opciones, una velocidad inmejorable, personalizaciones y el veterano Hotmail empezó a verse viejo, lento y obsoleto.&lt;/p>
&lt;h2 id="outlook-al-rescate-8-años-después">Outlook ¿Al rescate? ¡8 años después!
&lt;/h2>&lt;p>Hace unos días comenzó a circular esta noticia &lt;a class="link" href="https://web.archive.org/web/20121105010722/http://www.eluniversal.com.mx:80/finanzas/96724.html" target="_blank" rel="noopener"
>Adiós Hotmail, hola Outlook&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un locutor de radio dio a entender que se anunciaba el cierre de Hotmail y era necesario actualizarlo al nuevo dominio, pero no es cierto:&lt;/p>
&lt;p>&lt;em>”El cambio será gradual, aún podemos ver el sitio Hotmail.com, pero poco a poco irá migrando a Outlook.com. &lt;strong>Todos los usuarios de Hotmail seguirán teniendo su cuenta y sin perder sus contactos&lt;/strong>, no es necesario renovarla, seguirán teniendo la terminación hotmail.com; con la nueva apariencia ahora tendrán a un click de distancia a redes como Facebook, Twitter, LinkedIn y Google Plus. Además podrán hacer videollamadas mediante Skype.”&lt;/em>&lt;/p>
&lt;p>Entré al sitio de &lt;a class="link" href="https://www.outlook.com" target="_blank" rel="noopener"
>Outlook&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y veo que se han esforzado, tiene un enfoque minimalista muy al estilo Windows 8 Metro &lt;em>wannabe&lt;/em> y sus mensajes muestran una mejor actitud. Al menos ahora el spam ¡Si llega a la carpeta de correo no deseado!. Tiene una mejor integración con las redes sociales y con skype como una alternativa a la video conferencia que ofrece Google Hangout.&lt;/p>
&lt;p>Pero creo que se tardaron en reaccionar y el cambio llegó demasiado tarde, muchos sacaron una cuenta de hotmail para poder conectarse al Messenger pero ahora incluso este último tiene una tendencia a la baja, lo de hoy son las redes sociales.&lt;/p>
&lt;p>Me parece que no voy a sacar una cuenta en el nuevo dominio, pero definitivamente si la usaré la nueva interfaz para revisar ocasionalmente mi cuenta de correo. Para los que siguen utilizando el viejo Hotmail a diario estos cambios le dan un &lt;em>face wash&lt;/em> que les puede parecer agradable.&lt;/p>
&lt;p>Hotmail. ¡Léalo mientras esta caliente! aunque ya tiene tiempo que se enfrío.&lt;/p></description></item><item><title>Obtener el IMEI para reportar celulares robado o extraviados</title><link>https://linuxmanr4.com/2012/07/24/obtener-el-imei-para-reportar-celulares-robado-o-extraviados/</link><pubDate>Tue, 24 Jul 2012 14:31:26 +0000</pubDate><guid>https://linuxmanr4.com/2012/07/24/obtener-el-imei-para-reportar-celulares-robado-o-extraviados/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/07/IMEI-Celular.jpg" alt="Featured image of post Obtener el IMEI para reportar celulares robado o extraviados" />&lt;p>Después de medidas inútiles y bobas como el RENAUT (Registro Nacional de Usuarios de Telefonía Móvil) al fin parece que la industria empieza a ver la luz en cuanto a evitar el mal uso de celulares robados o extraviados.&lt;/p>
&lt;p>El &lt;a class="link" href="http://es.wikipedia.org/wiki/IMEI" title="Identidad Internacional de Equipo Móvil"
target="_blank" rel="noopener"
>IMEI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un número que identifica de manera única a cada dispositivo móvil en todo el planeta.&lt;/p>
&lt;p>Para poder reportar un teléfono y evitar que hagan un mal uso de tu equipo es importante que primero conozcas el IMEI de tu celular.&lt;/p>
&lt;p>Para hacerlo es muy sencillo, sólo tienes que marcar:&lt;/p>
&lt;h2 id="06">*#06#
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/07/IMG%5F0198.jpg"
alt="IMEI de un teléfono celular">&lt;figcaption>
&lt;p>IMEI de un teléfono celular&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>o buscar en alguna etiqueta dentro del equipo el número de 15 dígitos y conservar este dato en un lugar seguro.&lt;/p>
&lt;p>Supuestamente con esta información podrás reportar tu teléfono con tu proveedor de servicio y ya no se podrá activar con ninguna compañía de telefonía celular en México.&lt;/p>
&lt;p>Espero que en esta ocasión las autoridades sepan aplicar esta medida. No pierdo las esperanzas.&lt;/p>
&lt;h2 id="obtener-tu-imei-de-un-celular-con-android-obsoleto">Obtener tu IMEI de un celular con Android (OBSOLETO).
&lt;/h2>&lt;p>Debido a cambios en el Dashboard de Google este consejo ya no funciona, pero hay otra alternativa.&lt;/p>
&lt;p>&lt;em>Típico, ya perdiste el celular y se te olvidó anotar el IMEI. Si tienes un dispositivo con Android vinculado a una cuenta de Google todavía hay esperanzas.&lt;/em>&lt;/p>
&lt;ul>
&lt;li>&lt;em>Ve al &lt;a class="link" href="https://www.google.com/dashboard/" target="_blank" rel="noopener"
>Panel de control de Google (Dashboard)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
e inicia tu sesión normalmente.&lt;/em>&lt;/li>
&lt;li>&lt;em>Busca la sección que dice &lt;strong>Dispositivos Android&lt;/strong>&lt;/em>&lt;/li>
&lt;li>&lt;em>Veras una lista de los aparatos ligados a esa cuenta. Haz clic en donde dice &lt;strong>Más datos almacenados sobre este dispositivo&lt;/strong>&lt;/em>&lt;/li>
&lt;li>&lt;em>Y listo veras como dato el IMEI del equipo.&lt;/em>&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2014/09/dispositivos-android-imei.png"
alt="dispositivos android imei">&lt;figcaption>
&lt;p>dispositivos android imei&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;em>Gracias a &lt;a class="link" href="https://plus.google.com/u/0/112251479279139064558/about" target="_blank" rel="noopener"
>Eduardo Aceves&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
por el tip.&lt;/em>&lt;/p>
&lt;h2 id="encontrar-tu-teléfono-tiene-la-información-de-tu-imei">Encontrar tu teléfono tiene la información de tu IMEI
&lt;/h2>&lt;p>Si vas a la página de &lt;a class="link" href="https://myaccount.google.com/find-your-phone" target="_blank" rel="noopener"
>Encontrar tu teléfono&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
aparte de que puedes intentar localizarlo, emitir un sonido o bloquear tu teléfono también tiene a la mano el IMEI del dispositivo.&lt;/p>
&lt;p>Busca en la letra i que está al lado derecho del la imagen del teléfono.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/01/imei%5Fencuentra%5Fmi%5Ftelefono.png">
&lt;/figure>
&lt;p>El IMEI en la página de Encuentra tu teléfono.&lt;/p>
&lt;h2 id="denuncia-por-robo">Denuncia por Robo.
&lt;/h2>&lt;p>Hace unos días fuimos a un centro de atención de Telcel y preguntamos cual es el procedimiento para cancelar el IMEI de un teléfono celular. La persona que nos atendió nos dijo que tenemos que levantar una denuncia por robo del equipo para proceder con el trámite.&lt;/p>
&lt;p>Y esto para mi es un problema, porque la mayoría de las veces no es robo, es un descuido de alguien que olvida su celular y la “gandallez” de otra que simplemente toma la decisión de no devolverlo.&lt;/p>
&lt;p>No importa que el teléfono sea tuyo y que no te lo robaron, si lo perdiste vas a tener que levantar una denuncia para poder cancelarlo.&lt;/p></description></item><item><title>Como reiniciar el servidor gráfico en Ubuntu</title><link>https://linuxmanr4.com/2012/07/18/como-reiniciar-el-servidor-grafico-en-ubuntu/</link><pubDate>Wed, 18 Jul 2012 16:46:08 +0000</pubDate><guid>https://linuxmanr4.com/2012/07/18/como-reiniciar-el-servidor-grafico-en-ubuntu/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/07/cuando-ubuntu-se-congela.png"
alt="Cuando ubuntu se congela">&lt;figcaption>
&lt;p>Cuando ubuntu se congela&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="el-problema">El problema.
&lt;/h2>&lt;p>Anteriormente era muy común que si tenía uno problemas con linux se presionaban las teclas &lt;/p>
\[Alt\]&lt;p> + &lt;/p>
\[Ctrl\]&lt;p> + &lt;/p>
\[Backspace\]&lt;p> para reiniciar el servidor gráfico y nuevamente iniciar sesión en linux.&lt;/p>
&lt;p>Sin embargo esta combinación de teclas esta desactivada en Ubuntu 12.04 y para ser sincero no se desde cuando lo hicieron.&lt;/p>
&lt;p>Últimamente he tenido problemas con Remmina y sus controles remotos con VNC, eso provoca que se me congele la pantalla y no pueda mover ni el mouse ni nada.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>Para reiniciar el servidor gráfico en &lt;a class="link" href="https://www.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
hice los siguiente:&lt;/p>
&lt;ul>
&lt;li>Presionar &lt;strong>\[Alt\] + \[Ctrl\] + \[F1\]&lt;/strong> esto abrirá un terminal en modo texto.&lt;/li>
&lt;li>Iniciar sesión con nuestro nombre de usuario de manera normal.&lt;/li>
&lt;li>Teclear &lt;strong>sudo service lightdm restart&lt;/strong> esta instrucción hará el truco.&lt;/li>
&lt;/ul>
&lt;p>Lo próximo que verán será la pantalla de inicio pidiendo su nombre de usuario y contraseña. Hacer esto es más rápido que reiniciar y es igual de efectivo.&lt;/p></description></item><item><title>Convertir todas las imágenes de un directorio a PDF</title><link>https://linuxmanr4.com/2012/06/11/convertir-todas-las-imagenes-de-un-directorio-a-pdf-en-linux/</link><pubDate>Mon, 11 Jun 2012 21:49:15 +0000</pubDate><guid>https://linuxmanr4.com/2012/06/11/convertir-todas-las-imagenes-de-un-directorio-a-pdf-en-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/convert.png" alt="Featured image of post Convertir todas las imágenes de un directorio a PDF" />&lt;p>Varias veces he tenido la necesidad de convertir todas las imágenes de un directorio a PDF. Al principio no fue fácil, lo primero que se me ocurrió fue pegar todas las imágenes a un documento de Writer en &lt;a class="link" href="https://es.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para luego generar el PDF y este método funciona si son solo dos o tres imágenes, pero cuando son varias decenas el proceso se vuelve tedioso y poco práctico.&lt;/p>
&lt;p>Luego recordé que muchas operaciones sobre imágenes se pueden automatizar usando el paquete &lt;a class="link" href="https://www.imagemagick.org/script/index.php" target="_blank" rel="noopener"
>ImageMagick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que tiene un buen de tiempo en el mundo de linux, anteriormente lo había utilizado para redimensionar imágenes, pero no estaba seguro sobre si era posible generar un PDF, afortunadamente lo es utilizando el programa &lt;strong>convert&lt;/strong>.&lt;/p>
&lt;p>Para poder ejecutar este comando es necesario tener instalado el paquete  que se encuentra disponible en la mayoría de las distribuciones de Linux.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/imagemagick.jpg"
alt="Convertir todas las imágenes de un directorio a PDF con imagemagick">&lt;figcaption>
&lt;p>Convertir todas las imágenes de un directorio a PDF con imagemagick&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El proceso es muy simple realmente, basta con  abrir una terminal y ubicarse en el directorio donde se encuentran las imágenes y teclear algo muy parecido a esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">convert *.jpg archivo-pdf.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El comando se encargará de convertir, en este caso, todas las imágenes jpg del directorio al formato PDF.&lt;/p>
&lt;p>&lt;strong>Nota&lt;/strong>: Si quieren conservar un orden de aparición de las imágenes dentro del documento PDF entonces les recomiendo que nombren las imágenes con números consecutivos como 001.jpg , 002.jpg ,003.jpg … etc, de esa manera el comando convert respeta el orden de aparición.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/para-convertir-las-im%C3%A1genes-a-pdf.png"
alt="Convertir todas las imágenes de un directorio a PDF - La instrucción convert">&lt;figcaption>
&lt;p>Convertir todas las imágenes de un directorio a PDF - La instrucción convert&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>convert&lt;/strong> es una instrucción muy potente, no solo se utiliza para convertir imágenes en distintos formatos, se puede utilizar para muchas cosas más, redimensionar, crear, editar, convertir, etc.&lt;/p>
&lt;p>Todo el proceso dura unos cuantos segundos, lo he intentado con carpetas que contienen hasta medio centenar de imágenes a una excelente velocidad. Espero que este consejo les sea de utilidad.&lt;/p>
&lt;h2 id="cuando-son-muchas-imágenes-o-son-muy-grandes-o-ambas">Cuando son muchas imágenes o son muy grandes (o ambas)
&lt;/h2>&lt;p>Me acaba de pasar un caso curioso, tenía la tarea de convertir 448 imágenes con un tamaño de 1700 x 2200 píxeles y el consejo anterior no funcionó.&lt;/p>
&lt;p>Mi computadora se puso a trabajar tan intensamente que perdí el control sobre ella, el puntero del ratón dejó de responder, el disco duro no parpadeaba ¡Se quedó encendido!.&lt;/p>
&lt;p>Dejé que continuara con el trabajo hasta que lo terminara.  Pero ¡Oh decepción! en lugar de obtener un flamante archivo PDF obtuve un bonito mensaje de error.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">convert: unable to extend pixel cache &amp;#39;No existe el archivo o el directorio&amp;#39; @ fatal/cache.c/CacheSignalHandler/3625.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Intenté varias cosas pero nada funcionó hasta que leí este artículo en los foros de Ubuntu &lt;a class="link" href="https://ubuntuforums.org/showthread.php?t=1392988" target="_blank" rel="noopener"
>\[SOLVED\] Cannot convert .jpg to .pdf&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 en el que recomiendan el uso del software &lt;a class="link" href="http://www.graphicsmagick.org/" target="_blank" rel="noopener"
>GraphicsMagick&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que por alguna razón ya estaba instalado en mi Manjaro.&lt;/p>
&lt;p>Parece que una parte del problema son los &lt;a class="link" href="https://linuxmanr4.com/2012/04/16/cambiar-los-archivos-temporales-de-chrome-a-un-disco-en-ram/" >archivos temporales&lt;/a>
, Manjaro tiene una partición temporal (tmpfs) que parece que es insuficiente para la tarea.&lt;/p>
&lt;p>Por eso es necesario especificarle al programa un directorio temporal en el &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >disco duro&lt;/a>
que tenga el espacio suficiente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="k">export&lt;/span> &lt;span class="n">MAGICK_TMPDIR&lt;/span>&lt;span class="o">=/&lt;/span>&lt;span class="n">my&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">big&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">directory&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para luego generar el archivo PDF con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gm convert *.jpg -adjoin -compress JPEG archivo.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de unos angustiantes 5 minutos en el que la computadora parecía que echaba humo, al fin terminó de generar el archivo PDF sin mayor problema.&lt;/p>
&lt;p>Ahora tendré que leer un poco más sobre &lt;strong>GraphicsMagick&lt;/strong>, suena muy interesante. :)&lt;/p></description></item><item><title>Consejos para una navegación segura en internet</title><link>https://linuxmanr4.com/2012/06/07/consejos-navegacion-segura-internet/</link><pubDate>Thu, 07 Jun 2012 21:11:18 +0000</pubDate><guid>https://linuxmanr4.com/2012/06/07/consejos-navegacion-segura-internet/</guid><description>&lt;p>En algún lugar leí sobre unas recomendaciones para una navegación más segura. Eran buenas pero la mayoría estaban enfocadas al sistema de las ventanas, otras son más genéricas, pero la gran mayoría son de sentido común (o la ausencia de este).&lt;/p>
&lt;p>Por eso decidí escribir mis cinco recomendaciones para una navegación más segura…. punto número unooooooo… Ruuudy, Rudyyy ok, no, perdón me puse nostálgico :)&lt;/p>
&lt;h2 id="actualización-es-la-palabra">Actualización es la palabra.
&lt;/h2>&lt;p>Todos sabemos la importancia de las actualizaciones, muchas veces se corrigen errores, se tapan agujeros de seguridad o mejora el rendimiento.&lt;/p>
&lt;p>Actualizar en Windows es un albur, por lo general trae buenas cosas pero no siempre se sabe, y peor si el sistema que estás utilizando no es original, varias veces me tocó ver la leyenda esa de que tu windows no es original y esas cosas después de una actualización. La recomendación es, En windows actualiza bajo tu propio riesgo.&lt;/p>
&lt;p>Muchos programas incluyen una rutina de verificación que al momento de ejecutarse avisan de una nueva versión, otros como Chrome se actualizan en segundo plano, pero no todos hacen esto, vamos que no hay una norma establecida en la plataforma de las ventanitas.&lt;/p>
&lt;p>Seguir este consejo es mucho más sencillo en Linux que en windows, porque muchas veces al actualizar nuestro sistema lo hace con el kernel, aplicaciones del sistema operativo y con las aplicaciones del usuario. Además es un proceso muy sencillo, tu sistema esta actualizado con un par de clics.&lt;/p>
&lt;p>Una de las primeras cosas que hago en la mañana es ejecutar en Ubuntu:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>o si usas manjaro:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo pacman -Syyu
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para actualizar mi sistema mientras me tomo mi café matutino.&lt;/p>
&lt;h2 id="si-usas-windows-instala-un-antivirus">Si usas Windows instala un antivirus.
&lt;/h2>&lt;p>En Windows mi favorito es el &lt;a class="link" href="https://www.avast.com/es-mx/index" target="_blank" rel="noopener"
>Avast Free Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, así es, aún con su famosa vocecita que te dice en tono españolao &lt;em>La base de datos de virus ha sido actualizada…&lt;/em>, tiene una buena cantidad de escudos y muchas veces me ha sacado de un apuro, todo por el bajo costo de soportar los anuncios, una que otra encuesta ocasional, y los mensajes avisando de las promociones para actualizarlo a la versión de paga y esas cosas. Otra buena opción es &lt;a class="link" href="https://www.avira.com/es/index" target="_blank" rel="noopener"
>Avira Antivirus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/Captura-de-pantalla-de-2012-05-30-103927.png"
alt="El problema de la actualización de Avast para Linux" width="840">&lt;figcaption>
&lt;p>El problema de la actualización de Avast para Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hace poco intenté instalar un antivirus en Linux, sobre todo porque descargue un archivo que tenía mala pinta y no tenía forma de verificarlo. Intenté con &lt;em>Avast para Linux&lt;/em> pero me marcó un error después de actualizarlo, así que lo regresé a la maleta.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/avgscan.png"
alt="AVG en acción" width="657">&lt;figcaption>
&lt;p>AVG en acción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;em>AVG Antivirus&lt;/em> si se instaló pero carece de una interfaz gráfica, solo está disponible como órdenes desde una terminal, para mi no es problema pero para algunos puede ser complicado.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/Busqueda-de-virus.png"
alt="Búsqueda de virus usando ClamTk" width="840">&lt;figcaption>
&lt;p>Búsqueda de virus usando ClamTk&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;em>ClamAV&lt;/em> un clásico de todos los tiempos en el sistema del pingüino, funciona bien en Ubuntu y en CrunchBang, incluye una interfaz gráfica &lt;em>Clam tk&lt;/em>. Es fácil de operar y para escanear una memoria usb de manera ocasional es más que suficiente. El único problema que tiene es su velocidad de escaneo, si la cantidad de archivos a revisar es grande puede que pase una buena cantidad de tiempo para que termine la tarea.&lt;/p>
&lt;p>Para los que se preguntaron, ¿No?¿Nadie? bueno el archivo que descargué no tenía virus, ahora pueden estar más tranquilos :P&lt;/p>
&lt;h2 id="ten-cuidado-de-donde-te-conectas-a-internet">Ten cuidado de donde te conectas a Internet.
&lt;/h2>&lt;p>Caminando por un callejón oscuro, Andrés Manuel saca su laptop y dice - ¡Ahhh mira, hay un &lt;em>intejnet jin contrajeña&lt;/em>! ( &lt;em>risa macabra aquí)&lt;/em> y al día siguiente todo mundo se entera de que pasó charola.&lt;/p>
&lt;p>Ya en serio, muchas veces nos conectamos a internet en lugares poco confiables, eviten en lo posible conectarse en lugares públicos, parques, centros comerciales. En estos días es no es complicado instalar programas que olfatean el tráfico de una red en busca de contraseñas.&lt;/p>
&lt;p>Para evitar ser víctima de un &lt;em>juacker&lt;/em> curioso, prefiere enlaces seguros, si, ese candadito que aparece a un lado de la dirección o que comienza con https. Un enlace seguro hace que la comunicación entre tu equipo y el servidor esté encriptada, es decir solo es entendible para ustedes dos. En bancos es obligatorio utilizar un enlace seguro. Los servicios de Google como Gmail siempre lo utilizan, en facebook es una opción, debería estar activada todo el tiempo pero no siempre es así.&lt;/p>
&lt;h3 id="https-everywhere">HTTPS Everywhere
&lt;/h3>&lt;p>Existe una excelente herramienta que automáticamente prefiere los enlaces seguros de los sitios más importantes, se llama &lt;a class="link" href="https://www.eff.org/https-everywhere/" title="Ayuda a conectarse a sitios seguros"
target="_blank" rel="noopener"
>HTTPS Everywhere&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y está disponible como extensión para Firefox y Google Chrome.&lt;/p>
&lt;h3 id="tor">Tor
&lt;/h3>&lt;p>Para los más paranoicos &lt;strong>Tor&lt;/strong> (no, no es el de los Avengers). Tor es una herramienta muy especial, te ayuda a establecer un enlace seguro entre tu equipo y el que te quiere comunicar. Las peticiones rebotan por varios servidores encriptados ocultando tu ubicación.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/06/Tor-funcionando.png"
alt="Tor activo y funcionando" width="840">&lt;figcaption>
&lt;p>Tor activo y funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo mejor es que no necesitas instalar nada, Tor maneja unos paquetes de programas que puedes guardar incluso en una memoria USB y ejecutarlas cuando sea necesario.&lt;/p>
&lt;p>Tengan cuidado al usar este tipo de herramientas. Cuando intenté entrar a mi cuenta de Gmail usando Tor me dijo que la cancelaría temporalmente por considerar mi acceso como sospechoso. Y es que como habitualmente me conecto desde México le pareció raro que intentara ingresar desde Holanda :). Algo parecido sucedió con Facebook, pero no se le compara con las advertencias que me hizo Google, casi casi me dieron ganas de pedir perdón y no volverlo a hacer.&lt;/p>
&lt;p>Por cierto, el personaje de Andrés Manuel es ficticio y cualquier parecido con la realidad es pura coincidencia.&lt;/p>
&lt;h2 id="una-buena-contraseña">Una buena contraseña.
&lt;/h2>&lt;p>Olvida el 12345, o el 54321, algunos van más allá y hacen combinaciones… 1234554321 o el famoso QWERTY y algunos más avanzados… !”·$% , sip, es el 12345 pero presionando la tecla Shift.&lt;/p>
&lt;p>Una buena contraseña tiene cuando menos unos 15 caracteres, es una combinación de números, letras (mayúsculas y minúsculas) y símbolos.&lt;/p>
&lt;p>Pueden utilizar los servicios de un &lt;a class="link" href="https://linuxmanr4.com/2014/12/04/generador-de-contrasenas-javascript/" >generador de contraseñas&lt;/a>
, que les ayudará a elegir una contraseña con estas características.&lt;/p>
&lt;p>Y no se les olvide cambiarla cuando menos dos veces al año, aprovecho el recordatorio que me hace Google para hacerlo en varias cuentas importantes.&lt;/p>
&lt;p>Por último, la contraseña es como la pistola, el caballo o la mujer… ¡Nunca se prestan!.&lt;/p>
&lt;p>Lamentablemente recordar una buena contraseña es complicado, para eso existen programas como &lt;a class="link" href="https://www.keepassx.org/" target="_blank" rel="noopener"
>KeePassX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 que ayudan a tener un control adecuado y seguro de todas nuestras contraseñas.&lt;/p>
&lt;h2 id="que-tus-antenitas-de-vinil-detecten-las-presencia-del-enemigo">Que tus antenitas de vinil detecten las presencia del enemigo.
&lt;/h2>&lt;p>Hay peligros por todas partes, miras a un lado y esta ese correo raro advirtiendote de que fulanito o fulanita te ha eliminado del Mazzinger, si aquel sistema de mensajes instantáneos que fue muy popular en los 2000 (wooow que retro).&lt;/p>
&lt;p>Miras al otro y hay un enlace que te invita a descargar una barrita para el explorer que hace maravillas.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/7166130773/" title="Mensajes falsos por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm9.staticflickr.com/8153/7166130773_63a487c7b1_n.jpg"
loading="lazy"
alt="Mensajes falsos"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Vamos que hay que estar alertas, si tus antenitas te advierten de peligro, lo mejor es hacerles caso y preguntar antes de hacer clic o de instalar ese programa que ya incluye un crack.&lt;/p>
&lt;h2 id="los-peligros-de-las-redes-sociales">Los peligros de las redes sociales.
&lt;/h2>&lt;p>Con tanta red social es díficil llevar un control de todo lo que publicamos. Muchas veces lo hemos visto con los parientes de los personajes políticos,que la hija de fulanito con bolsas de marca de precio insulso paseándose por Europa y el hijo con un Ferrari de unos cuantos milloncitos, pero de dólares. La anestesista del seguro social con sus comentarios de mal gusto y publicando fotos desagradables para los enfermos y sus familias. Nadie esta exento de cometer este tipo de errores, la única forma de estar totalmente a salvo es borrando la cuenta de facebook, twitter, hi-5 … momento ¿Todavía existe Hi-5?&lt;/p>
&lt;p>Ok, me vi muy radical, se que algunas no van a borrar su cuenta de facebook porque si no no se enterarían de que el novio de fulanita esta saliendo con perenganita y así, pero por regla general, lo más recomendable es no publicar información sensible como direcciones, telefonos o planes a futuro. Desactivar la ubicación GPS que agregan algunos teléfonos celulares a nuestras fotos.&lt;/p>
&lt;p>La recomendación general es no publiques lo que no quieras que se entere todo el mundo, porque lo que subes a Internet, se queda en Internet. Irónicamente, el sentido común es el más escaso de los sentidos.&lt;/p>
&lt;p>Ok, fueron seis recomendaciones, pero creo que nadie las contó y si ustedes no lo dicen yo no diré nada… ¿Ustedes tienen otra recomendación que haya olvidado mencionar?&lt;/p>
&lt;h2 id="enlaces">Enlaces.
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20210801100219/https://filehippo.com/es/download_avast_antivirus/" title="Antivirus para Windows"
target="_blank" rel="noopener"
>Avast Antivirus Free Edition (Win)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://free.avg.com/us-en/download-free-all-product" title="Antivirus para linux"
target="_blank" rel="noopener"
>AVG Antivirus para Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.torproject.org/" title="Para navegar de manera anónima"
target="_blank" rel="noopener"
>Tor Project&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://strongpasswordgenerator.com/" title="Un buen generador de contraseñas en línea"
target="_blank" rel="noopener"
>Generador de contraseñas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.eff.org/https-everywhere/" title="Ayuda a conectarse a sitios seguros"
target="_blank" rel="noopener"
>HTTPS Everywhere&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Cargador de pilas alcalinas y recargables</title><link>https://linuxmanr4.com/2012/05/24/recargar-pilas-alcalinas/</link><pubDate>Fri, 25 May 2012 01:45:44 +0000</pubDate><guid>https://linuxmanr4.com/2012/05/24/recargar-pilas-alcalinas/</guid><description>&lt;p>Estaba curioseando en el catálogo de Steren buscando un cargador de baterías cuando me encontré con este producto que prometía recargar pilas alcalinas.&lt;/p>
&lt;p>Todos conocemos la advertencia tradicional que dicta: &lt;strong>No debes de recargar pilas alcalinas&lt;/strong> por eso me llamó mucho la atención un producto que prometía hacerlo.&lt;/p>
&lt;p>El cargador es el más caro de su categoría (240.00 MXP), pero en la primera oportunidad fuimos a comprarlo. Claro que al hacerlo le advertí al vendedor que si no hace lo que promete lo devolvería, me dijo que no había problema siempre y cuando guardara en buenas condiciones el empaque y conservara mi ticket de compra.&lt;/p>
&lt;p>Ya con el aparatito en casa tenía que probarlo :)&lt;/p>
&lt;h2 id="el-proceso-de-carga">El proceso de carga.
&lt;/h2>&lt;p>Busqué por toda la casa las voluntarias para la batería (¿si entendieron? la batería :P ok, no) de pruebas.&lt;/p>
&lt;p>Encontré tres buenas candidatas una batería alcalina marca patito made in china, una de reconocida marca también alcalina y una pila recargable de &lt;a class="link" href="http://es.wikipedia.org/wiki/Bater%C3%ADa_de_n%C3%ADquel_e_hidruro_met%C3%A1lico" target="_blank" rel="noopener"
>NiMH&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Con un multímetro medí el voltaje de cada una y todas estaban abajo de su valor nominal. Excepto la pila Duracell que realmente no estaba tan descargada.&lt;/p>
&lt;p>Dos cosas me gustan de este cargador. Lo primero es que no tengo que poner a cargar las pilas en pares. Ya he tenido otros cargadores y para que inicie el proceso de recarga tengo que poner un par.&lt;/p>
&lt;p>Lo segundo es que trata cada a cada pila de manera diferente, si pongo pilas alcalinas o recargables mezcladas automáticamente detecta su tipo y le da a cada una su tiempo necesario hasta que esta totalmente cargada.&lt;/p>
&lt;p>Una cosa que noté es que las pilas recargables se calientan bastante y el tiempo necesario para que este con la carga llena es mucho menor que el de una pila alcalina que lleva mucho más tiempo y casi no se calienta.&lt;/p>
&lt;p>Cada pila se muestra en el indicador, su nivel de carga y el display se ilumina de color verde. Cuando todas las pilas estan cargadas el display se apaga.&lt;/p>
&lt;h2 id="los-resultados">Los resultados.
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-06-45.jpg"
alt="2012-05-22-18-06-45">&lt;figcaption>
&lt;h4>2012-05-22-18-06-45&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-23-18-03-44.jpg"
alt="2012-05-23-18-03-44">&lt;figcaption>
&lt;h4>2012-05-23-18-03-44&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-23-18-04-08.jpg"
alt="2012-05-23-18-04-08">&lt;figcaption>
&lt;h4>2012-05-23-18-04-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-19-01-40.jpg"
alt="2012-05-22-19-01-40">&lt;figcaption>
&lt;h4>2012-05-22-19-01-40&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-10-08.jpg"
alt="2012-05-22-18-10-08">&lt;figcaption>
&lt;h4>2012-05-22-18-10-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-09-08.jpg"
alt="2012-05-22-18-09-08">&lt;figcaption>
&lt;h4>2012-05-22-18-09-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-07-12.jpg"
alt="2012-05-22-18-07-12">&lt;figcaption>
&lt;h4>2012-05-22-18-07-12&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todas las baterías mostraron una mejoría considerable, incluyendo la pila patito que brinco de un miserable 0.21 voltios a unos razonables 1.26 más que suficiente para un reloj de pared o un control remoto.&lt;/p>
&lt;p>El pequeño manual dice que las pilas alcalinas no se puede recargar más de 5 veces, pero si el destino de estas pilas era la basura y ahora las puedo reutilizar no me causa mucho problema.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>Steren debería de hacer un mejor trabajo promocionando sus productos. Por un lado menciona en su página web un cargador para pilas convencionales y cito:&lt;/p>
&lt;blockquote>
&lt;p>Cargador para pilas tipo AA y AAA que además de cargar pilas recargables de Ni-MH y Ni-CD, también te permite recargar baterías alcalinas convencionales hasta 5 veces, alargando su tiempo de vida y cuidando el medio ambiente. Puede recargar hasta cuatro pilas del mismo tipo al mismo tiempo.&lt;/p>&lt;/blockquote>
&lt;p>Pero en el pequeño manual que acompaña al producto dice:&lt;/p>
&lt;blockquote>
&lt;p>No intente recargar las baterías que no son de tipo recargable.&lt;/p>&lt;/blockquote>
&lt;p>Y un poco más adelante:&lt;/p>
&lt;blockquote>
&lt;p>Cargador inteligente, carga baterías alcalinas.&lt;/p>&lt;/blockquote>
&lt;p>¿Quién los entiende?&lt;/p>
&lt;p>Por eso mi escepticismo inicial y el motivo de hacer estas pruebas. Ahora me encuentro pilas por todos lados, pasé la voz a mis familiares y también me están juntando pilas mismas que regreso ya recargadas.&lt;/p>
&lt;p>Por cada pila que recargo es una que dejo de comprar, aumento su vida útil y se contamina menos el planeta.&lt;/p>
&lt;h2 id="advertencia">Advertencia.
&lt;/h2>&lt;p>Algunas pilas alcalinas no soportan de buena manera una recarga, poco tiempo después de recargarlas se &lt;em>“chorrean”&lt;/em> , es decir, empiezan a filtrar contenido de su interior, esto me ha pasado con baterías de la marca Duracell, pero extrañamente en unas genéricas de fabricación china y otras que compré en oferta en Radio Shack funcionan perfectamente tal y como lo pueden ver en la imagen.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/pilas-chorreadas.jpg"
alt="Pilas chorreadas" width="620">&lt;figcaption>
&lt;p>Pilas chorreadas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="enlaces">Enlaces
&lt;/h3>&lt;ul>
&lt;li>Cargador para pilas recargables o convencionales de tamaño AA y AAA Modelo: CRG-805&lt;/li>
&lt;/ul>
&lt;h2 id="actualización-22-ago-2013">Actualización 22-ago-2013
&lt;/h2>&lt;p>Lamentablemente ayer dejó de funcionar este cargador que tanto me gustaba.&lt;/p>
&lt;p>Puse unas pilas a cargar de manera usual y de repente escucho un chasquido, volteo a ver el cargador, la pantalla estaba haciendo “ojitos” y ¡PUM! ya no volvió a encender.&lt;/p>
&lt;p>Al parecer las pilas soltaron un líquido de su interior y este se metió dentro del cargador ocasionando un corto circuito.&lt;/p>
&lt;p>Lo más jocoso de todo es que no fueron unas pilas chinas las que echaron a perder el cargador, no fueron Energizer, Duracell o Sony, no … &lt;strong>¡FUERON STEREN!&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/pilas-chorreadas.jpg"
alt="Pilas chorreadas">&lt;figcaption>
&lt;h4>Pilas chorreadas&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/cargador-y-bater%C3%ADas-steren.jpg"
alt="Cargador y baterías de la marca Steren">&lt;figcaption>
&lt;h4>Cargador y baterías de la marca Steren&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/detalle-del-liquido-que-soltaron-las-bater%C3%ADas-marca-steren.jpg"
alt="Detalle del liquido que soltaron las baterías marca Steren">&lt;figcaption>
&lt;h4>Detalle del liquido que soltaron las baterías marca Steren&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/terminales-con-liquido.jpg"
alt="Terminales con liquido de las baterías">&lt;figcaption>
&lt;h4>Terminales con liquido de las baterías&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-23-18-04-08.jpg"
alt="2012-05-23-18-04-08">&lt;figcaption>
&lt;h4>2012-05-23-18-04-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-23-18-03-44.jpg"
alt="2012-05-23-18-03-44">&lt;figcaption>
&lt;h4>2012-05-23-18-03-44&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-19-01-40.jpg"
alt="2012-05-22-19-01-40">&lt;figcaption>
&lt;h4>2012-05-22-19-01-40&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-10-08.jpg"
alt="2012-05-22-18-10-08">&lt;figcaption>
&lt;h4>2012-05-22-18-10-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-09-08.jpg"
alt="2012-05-22-18-09-08">&lt;figcaption>
&lt;h4>2012-05-22-18-09-08&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-07-38.jpg"
alt="2012-05-22-18-07-38">&lt;figcaption>
&lt;h4>2012-05-22-18-07-38&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-06-45.jpg"
alt="2012-05-22-18-06-45">&lt;figcaption>
&lt;h4>2012-05-22-18-06-45&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/2012-05-22-18-07-12.jpg"
alt="2012-05-22-18-07-12">&lt;figcaption>
&lt;h4>2012-05-22-18-07-12&lt;/h4>
&lt;/figcaption>
&lt;/figure>
&lt;p>Llame al número de Servicio a Clientes de &lt;strong>Steren&lt;/strong> (01 800 500 9000) y fueron muy amables, lo tengo que reconocer, les expuse mi reclamo, pero es que mi caso es muy especial.&lt;/p>
&lt;p>¿Qué reclamo? el cargador estaba funcionando perfectamente, incluso ya tenía más de un año con él (expiró la garantía) y había recargado baterías de todo tipo y de todas las marcas.&lt;/p>
&lt;p>¿Las baterías? en el inciso 5 de la &lt;a class="link" href="https://web.archive.org/web/20150813195327/http://www.steren.com.mx/servicios/garantias.asp" target="_blank" rel="noopener"
>Información de garantías de Steren&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dice claramente que las baterías &lt;strong>NO CUENTAN CON GARANTÍA&lt;/strong>.&lt;/p>
&lt;p>Claro que lo que a mi me importaba era el cargador … mi cargador …snif.. snif…&lt;/p>
&lt;p>Me dijeron que si tenía la nota de compra de las baterías y que no fuera mayor a 10 días podían hacer algo, pero … caray, ¿Quién conserva la nota de compra de unas pilas? además las compre cargadas, en 10 días no iba a necesitar recargarlas, pero en fin, por un momento creí que iban a honrar la reputación de la marca, pero no fue así.&lt;/p>
&lt;p>Curiosamente el cargador funcionó bien hasta que le puse unas pilas de la misma marca del cargador ¡Ironías de la vida!.&lt;/p>
&lt;p>A &lt;strong>Steren&lt;/strong> le cuesta muy poco reemplazar el cargador y conservarme como cliente, claro que jamás le iba a volver una pila de la marca &lt;strong>Steren&lt;/strong>, ni loco que estuviera.&lt;/p>
&lt;p>Lamentablemente la frase &lt;strong>“Para nosotros su satisfacción es importante”&lt;/strong> son solo palabras bonitas.&lt;/p>
&lt;p>Todos los que me decían que no recargara pilas alcalinas ahora me deben de estar señalando con el dedo y diciendo —¡JA JA!,.&lt;/p>
&lt;p>Ni modo, ahora tendré que buscar otro cargador, se aceptan sugerencias … pero que no sean de &lt;strong>Steren&lt;/strong> por favor.&lt;/p></description></item><item><title>CrunchBang Linux en una Acer AO751h</title><link>https://linuxmanr4.com/2012/05/21/crunchbang-linux-en-mi-acer-ao751h/</link><pubDate>Tue, 22 May 2012 03:03:02 +0000</pubDate><guid>https://linuxmanr4.com/2012/05/21/crunchbang-linux-en-mi-acer-ao751h/</guid><description>&lt;p>Instalé la nueva versión de Ubuntu (Precise Pangolin) en mi lapita, pero no estuve muy a gusto con su desempeño y después de instalar E17 y cargarme la conexión inalámbrica sentí que era tiempo de probar otras opciones.&lt;/p>
&lt;h2 id="todos-los-caminos-conducen-a-debian">Todos los caminos conducen a Debian.
&lt;/h2>&lt;p>En los grupo de facebook de la tarjeta GMA500 continuamente aparecía el nombre de CrunchBang, así que me dije a mi mismo… mi mismo ¿Y porque no?&lt;/p>
&lt;p>Visité la página de la distribución y descubrí que esta basada en Debian con un poco de Openbox y otro poco de xfce.&lt;/p>
&lt;p>Demasiado pronto tuve que tomar mi primera elección &lt;strong>Stable&lt;/strong> o &lt;strong>Stable + Backports&lt;/strong>, esta última incluye las versiones de software más recientes adecuadas para aquellos que tiene el espíritu aventurero.. como yo :)&lt;/p>
&lt;h2 id="welcome-grub">Welcome Grub
&lt;/h2>&lt;p>La instalación aunque ligeramente diferente a un Ubuntu se desarrollo sin problemas, jajajaj iluso de mí.&lt;/p>
&lt;p>Terminó la instalación, retire la memoria USB, reinicie el equipo y ante mis ojos apareció un bonito mensaje con la leyenda &lt;strong>Welcome Grub&lt;/strong> ¡Y nada más! ya no iba ni para adelante ni para atrás. Eso me enseñará a hacer un respaldo primero, pero sabía que mis datos estaban ahí solo que por alguna razón Grub no estaba haciendo bien su trabajo.&lt;/p>
&lt;p>Demasiado pronto tuve que consultar al gran Google, afortunadamente CrunchBang tiene una buena documentación y ayuda mediante foros de discusión, aún así no fue fácil dar con la solución. Al parecer tenía un problema combinado de un bug de Debian Squeeze y uno relacionado con el hardware de mi Acer Aspire One 751h.&lt;/p>
&lt;h3 id="la-solución-al-mensaje-de-bienvenida-de-grub">La solución al mensaje de bienvenida de Grub.
&lt;/h3>&lt;p>Lo que me funcionó fue una combinación de dos consejos. Inicie nuevamente CruchBang pero ahora en modo live y abrí una terminal.&lt;/p>
&lt;p>Recuerden reemplazar sda1 por la partición donde tengan instalado CrunchBang, en mi caso fue sda6 porque tenía ya un windows xp instalado en el equipo (no me juzguen es el que viene de fábrica).&lt;/p>
&lt;p>En este punto edité el archivo &lt;em>/etc/default/grub&lt;/em> utilizando el editor de texto &lt;em>nano&lt;/em> que ya está instalado y quitar el comentario (o sea el sḿbolo de #) en la línea que dice:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">GRUB_TERMINAL=console
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Instalamos nuevamente GRUB y lo actualizamos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">grub-install /dev/sda
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">update-grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para salir del modo &lt;em>chroot&lt;/em>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">control-D
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Desmontamos lo montado :)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo umount -l $TARGET/dev/pts
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo umount -l $TARGET/dev
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo umount -l $TARGET/proc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo umount -l $TARGET/sys
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciamos, y si todo salio bien verán el menú de GRUB en lugar del mensaje de bienvenida &lt;strong>+One level UP&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/05/captura-de-pantalla-180512-201136.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/captura-de-pantalla-180512-201136.png"
loading="lazy"
alt="crunchbang linux inicio"
>&lt;/a>
&lt;/p>
&lt;h2 id="teclado-en-español">Teclado en español.
&lt;/h2>&lt;p>Al fin inicio mi pequeña lapita con CrunchBang (ahora que lo pienso no la he iniciado en windows) y me di cuenta de un pequeñiiiiisimo detalle. El teclado estaba mal configurado, no recuerdo si durante la instalación elegí Español o Latinoamericano y no quería reinstalarlo todo y pasar nuevamente por la corrección del problema de Grub.&lt;/p>
&lt;p>Afortunadamente no fue complicado arreglarlo. Lo único que hay que hacer es agregar la siguiente línea al archivo autostart que aparece en el menú &lt;em>Settings&lt;/em> - &lt;em>Openbox&lt;/em> - &lt;em>Edit autostart&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">setxkbmap -layout ‘es,es’ -model pc105
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/05/configuracion-del-teclado.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/configuracion-del-teclado.png"
loading="lazy"
alt="configuración del teclado en crunchbang "
>&lt;/a>
&lt;/p>
&lt;h2 id="agregar-la-verificación-ortográfica-en-español-a-geany">Agregar la verificación ortográfica en español a Geany
&lt;/h2>&lt;p>Trabajando con CrunchBang me di cuenta de que el editor de textos es Geany y me pareció una magnifica opción, busque un poco como hacer que pudiera verificar la ortografía en español, solo me faltaba instalar este paquete:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install aspell-es
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/05/instalando-aspell1.png"
loading="lazy"
alt="Instalando aspell en Crunchbang"
>&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Por el momento me siento muy a gusto con esta distribución, tiene un buen balance de aplicaciones de bajo consumo de recursos y desempeño. Al ser una distribución basada de Debian varios comandos me son familiares, no hay que olvidar que Ubuntu tiene sus orígenes en Debian.&lt;/p>
&lt;p>Como contra es que algunas opciones hay que hacerlas a mano, pero afortunadamente esta distro incluye unos scripts para instalar fácilmente software como LibreOffice, Chrome, Opera o soporte para impresoras.&lt;/p>
&lt;p>En estos momentos estoy considerando en instalarlo en otros equipos que están escasos de recursos.&lt;/p>
&lt;h2 id="enlaces">Enlaces
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20150207160917/http://crunchbanglinux.org/wiki/esp" target="_blank" rel="noopener"
>CrunchBang, Wiki en Español&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20121030081236/http://crunchbanglinux.org:80/forums/topic/15351/how-to-chroot-into-on-disk-when-you-can-not-boot-via-grub" target="_blank" rel="noopener"
>How to chroot into #! on disk when you can not boot via grub&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>Booting on Acer Inspire One 751h&lt;/li>
&lt;li>&lt;a class="link" href="http://distrowatch.com/table.php?distribution=crunchbang" target="_blank" rel="noopener"
>CrunchBang en DistroWatch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Descargar Ubuntu 12.04 LTS Precise Pangolin por bittorrent</title><link>https://linuxmanr4.com/2012/04/26/descargar-ubuntu-12-04-lts-precise-pangolin-por-bittorrent/</link><pubDate>Thu, 26 Apr 2012 14:16:26 +0000</pubDate><guid>https://linuxmanr4.com/2012/04/26/descargar-ubuntu-12-04-lts-precise-pangolin-por-bittorrent/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/ubuntu-12%5F04.png"
alt="Ubuntu 12.04 LTS Precise Pangolin">&lt;figcaption>
&lt;p>Ubuntu 12.04 LTS Precise Pangolin&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¡El día ha llegado!!! Hoy sale a la luz la nueva versión de Ubuntu 12.04 Precise Pangolín que además es una versión LTS.&lt;/p>
&lt;p>Siempre he dicho que la mejor forma de descargar una distribución de Linux es por bittorrent, es una descarga rápida y ayudas a propagar el programa.&lt;/p>
&lt;p>Les dejo los enlaces para descargar esta nueva versión de Ubuntu.&lt;/p>
&lt;h2 id="ubuntu-desktop">Ubuntu Desktop
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/precise/ubuntu-12.04-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-12.04-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/precise/ubuntu-12.04-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-12.04-desktop-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;h2 id="ubuntu-server">Ubuntu Server
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/precise/ubuntu-12.04-server-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-12.04-server-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/precise/ubuntu-12.04-server-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-12.04-server-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>&lt;a class="link" href="http://releases.ubuntu.com/precise/" target="_blank" rel="noopener"
>Otras versiones de Ubuntu 12.04 LTS (Precise Pangolin)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="kubuntu">Kubuntu
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20120707094540/http://cdimage.ubuntu.com/kubuntu/releases/precise/release/kubuntu-12.04-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>Desktop CD, 32bit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20120707082221/http://cdimage.ubuntu.com/kubuntu/releases/precise/release/kubuntu-12.04-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>Desktop CD, 64bit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20150812190430/http://www.kubuntu.org/getkubuntu/download" target="_blank" rel="noopener"
>Otras versiones de Kubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="lubuntu">Lubuntu
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20180407131530/http://cdimage.ubuntu.com:80/lubuntu/releases/12.04/release/lubuntu-12.04-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>lubuntu-12.04-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20180405151528/http://cdimage.ubuntu.com:80/lubuntu/releases/12.04/release/lubuntu-12.04-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>lubuntu-12.04-desktop-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20180416154024/http://cdimage.ubuntu.com:80/lubuntu/releases/12.04/release/" target="_blank" rel="noopener"
>Otras versiones de Lubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Si no lo conoces te invito a que veas el &lt;a class="link" href="http://www.ubuntu.com/tour/en/" target="_blank" rel="noopener"
>Tour Interactivo de Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Script para respaldar todas las bases de datos de un servidor MySQL</title><link>https://linuxmanr4.com/2012/04/25/script-respaldar-bases-de-datos-mysql/</link><pubDate>Thu, 26 Apr 2012 01:57:54 +0000</pubDate><guid>https://linuxmanr4.com/2012/04/25/script-respaldar-bases-de-datos-mysql/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/servidor-de-base-de-datos.png">
&lt;/figure>
&lt;p>Hoy en la mañana estaba leyendo este artículo llamado &lt;a class="link" href="http://blog.desdelinux.net/script-para-backups-automaticos-de-tu-servidor/" target="_blank" rel="noopener"
>Script para backups automáticos de tu servidor&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo vi y me pareció una buena idea hacer uno propio para respaldar todas las bases de datos que tengo en mi servidor &lt;a class="link" href="http://es.wikipedia.org/wiki/MySQL" target="_blank" rel="noopener"
>MySQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Tomé prestadas algunas ideas del script que muestran en DesdeLinux.net y otras del sitio Tail -f Backup de todas las bases de datos MySQL en archivos separados.&lt;/p>
&lt;p>El script de DesdeLinux es muy completo, hacen un respaldo de varios archivos, un vaciado de las bases de datos que consideran importantes y hasta envía un correo electrónico a los administradores con el resultado del respaldo. En lo personal a mi me gusta copiar archivos utilizando el comando &lt;a class="link" href="https://linuxmanr4.com/2012/02/27/reciclando-un-ipod-como-unidad-de-respaldo/" >rsync&lt;/a>
, pero esa es otra historia.&lt;/p>
&lt;p>Al principio intenté hacer un &lt;em>&lt;code>mysqldump&lt;/code>&lt;/em> de todas las bases de datos en un solo archivo, pero el resultado fue un mega archivo de 27 MB que era muy difícil de abrir para gedit (o cualquier otro editor de texto). Si solo necesito restaurar una base de datos en lugar de todas la tarea se puede complicar un poco.&lt;/p>
&lt;p>Por eso que decidí generar un solo archivo para cada base de datos del servidor MySQL. Ahí es donde entra en acción el script de Tail que explica muy bien como generar un archivo independiente por cada base de datos.&lt;/p>
&lt;p>El resultado es un archivo por cada base de datos que incluye en el nombre del archivo la fecha en la que fue realizado el respaldo.&lt;/p>
&lt;p>El script esta diseñado para ejecutarse en un equipo diferente al que ejecuta el servidor de base de datos, aunque supongo que si le ponen &lt;em>localhost&lt;/em> en la variable &lt;em>IP_SERVIDOR_MYSQL&lt;/em> también puede funcionar.&lt;/p>
&lt;p>Como un plus, el script realiza una optimización y reparación de todas las bases de datos del servidor antes de hacer el vaciado de las bases de datos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/sh
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa es software libre. Puede redistribuirlo y/o&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># modificarlo bajo los términos de la Licencia Pública General&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># de GNU según es publicada por la Free Software Foundation,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># bien de la versión 2 de dicha Licencia o bien (según su&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Este programa se distribuye con la esperanza de que sea&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># PROPÓSITO PARTICULAR. Para más detalles, véase la Licencia&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pública General de GNU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyleft 2012&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Autor: Linuxman inguanzo@gmail.com http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># versión 2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">NAME&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;MySQL Backup&amp;#34;&lt;/span> &lt;span class="c1"># Nombre script.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Descripción: Script para hacer un respaldo de todas las bases de datos de un servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">DATE&lt;/span>&lt;span class="p">:=&lt;/span>&lt;span class="k">$(&lt;/span>date +&lt;span class="s1">&amp;#39;%Y-%m-%d&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Variable para Fecha.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">TIME&lt;/span>&lt;span class="p">:=&lt;/span>&lt;span class="k">$(&lt;/span>date +&lt;span class="s1">&amp;#39;%R&amp;#39;&lt;/span>&lt;span class="k">)&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Variable para Hora.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">WORK_DIR&lt;/span>&lt;span class="p">:=/home/usuario/directorioderespaldo/&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Directorio de trabajo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">IP_SERVIDOR_MYSQL&lt;/span>&lt;span class="p">:=IP_DEL_SERVIDOR_MYSQL&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Dirección del servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">USUARIO&lt;/span>&lt;span class="p">:=root&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># Usuario con privilegios a la base de datos. Ej. root&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">: &lt;span class="si">${&lt;/span>&lt;span class="nv">DB_PASS&lt;/span>&lt;span class="p">:=CONTRASEÑA&lt;/span>&lt;span class="si">}&lt;/span> &lt;span class="c1"># La contraseña de root de nuestro servidor MySQL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Antes de respaldar optimizamos y reparamos las bases de datos.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">clear
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Revisando y reparando las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=========================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mysqlcheck -c -A --auto-repair -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Optimizando las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=========================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mysqlcheck -A -o -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u &lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cambiamos a nuestro directorio de trabajo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="nv">$WORK_DIR&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Iniciando el vaciado de todas las bases de datos.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;=================================================&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Iniciamos un vaciado de todas las bases de datos del servidor.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">TABLES&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>mysql -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u&lt;span class="nv">$USUARIO&lt;/span> --password&lt;span class="o">=&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span> --execute&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;SHOW DATABASES;&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span>awk &lt;span class="s1">&amp;#39;{print($1)}&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span>grep -v &lt;span class="s2">&amp;#34;Database&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span>grep -v &lt;span class="s2">&amp;#34;information_schema&amp;#34;&lt;/span>&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> table in &lt;span class="nv">$TABLES&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Respaldando la tabla &lt;/span>&lt;span class="nv">$table&lt;/span>&lt;span class="s2">...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">file&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nv">$table&lt;/span>.respaldo_&lt;span class="sb">`&lt;/span>date +%Y%m%d&lt;span class="sb">`&lt;/span>.sql
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> mysqldump -h &lt;span class="nv">$IP_SERVIDOR_MYSQL&lt;/span> -u&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$USUARIO&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -p&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$DB_PASS&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="nv">$table&lt;/span> &amp;gt; &lt;span class="nv">$file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Comprimiendo &lt;/span>&lt;span class="nv">$file&lt;/span>&lt;span class="s2"> ...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> gzip &lt;span class="nv">$file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;RESPALDO TERMINADO!!!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="ajustando-los-parámetros">Ajustando los parámetros
&lt;/h2>&lt;p>Para utilizarlo es necesario descargar el archivo, abrirlo y modificar los parámetros&lt;/p>
&lt;ul>
&lt;li>&lt;strong>WORK_DIR&lt;/strong> Es la ruta donde quieres que se guarden los archivos.&lt;/li>
&lt;li>&lt;strong>IP_SERVIDOR_MYSQL&lt;/strong> Es la dirección ip del servidor, también podría funcionar un nombre de dominio o si el servidor es la misma maquina en la que se ejecuta el script &lt;em>localhost&lt;/em> sería lo correcto.&lt;/li>
&lt;li>&lt;strong>USUARIO&lt;/strong> Un usuario con los permisos de acceso necesarios, &lt;em>root&lt;/em> funciona la mayoría de las veces.&lt;/li>
&lt;li>&lt;strong>DB_PASS&lt;/strong> La contraseña del usuario :)&lt;/li>
&lt;/ul>
&lt;p>Para ejecutar el script es necesario darle permisos de ejecución con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chmod +x respaldo_mysql.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y suerte !!!&lt;/p>
&lt;p>El script funciona muy bien en mi equipo y espero que en el de ustedes también. Si tienen alguna duda favor de poner un comentario.&lt;/p>
&lt;p>&lt;strong>Actualización&lt;/strong>. Este script dejó de funcionar por un error al intentar ejecutar varias tareas de manera simultánea, pueden ver la versión más reciente en: &lt;a class="link" href="https://linuxmanr4.com/2013/05/22/script-respaldar-mysql/" >Script para respaldar bases de datos MySQL versión 2&lt;/a>
.&lt;/p></description></item><item><title>Cambiar los archivos temporales de Chrome a un disco en RAM</title><link>https://linuxmanr4.com/2012/04/16/cambiar-los-archivos-temporales-de-chrome-a-un-disco-en-ram/</link><pubDate>Mon, 16 Apr 2012 14:08:20 +0000</pubDate><guid>https://linuxmanr4.com/2012/04/16/cambiar-los-archivos-temporales-de-chrome-a-un-disco-en-ram/</guid><description>&lt;p>Hace unos días publiqué este artículo &lt;a class="link" href="https://linuxmanr4.com/2012/04/06/maximizar-el-uso-de-la-memoria-ram/" >Maximizar el uso de la memoria RAM&lt;/a>
, y funciona bastante bien, pero desde un principio el objetivo era aprovechar este espacio que es mucho más rápido para alojar ahí los archivos temporales de Chrome.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/inguanzo@sysadminday-%5F011.jpeg"
alt="Usar un disco en RAM para los archivos temporales.">&lt;figcaption>
&lt;p>Usar un disco en RAM para los archivos temporales.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Busqué alguna opción que ajustar en chrome para reubicar la carpeta de archivos temporales, pero a menos que un lector me diga lo contrario no encontré una opción en Ajustes para hacerlo. Para lograrlo hay que iniciar Chrome con un modificador de la siguiente forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">chromium-browser --user-data-dir=/tmp&amp;amp;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa manera le indico a Chrome que los datos de usuario los guarde en la carpeta &lt;strong>/tmp&lt;/strong> que como pueden ver en la imagen está alojada en una carpeta temporal en RAM.&lt;/p>
&lt;p>¿Cuál es el propósito de todo esto?, no sé si a ustedes les pasa algo similar, pero he notado que abrir ciertas páginas aumentan considerablemente el uso del disco duro alentando su desempeño considerablemente, me refiero a páginas como Facebook o Google Plus. El único problema es que al reiniciar mi computadora todos los datos temporales se pierden y con ello algunas personalizaciones o extensiones, pero en mi netbook el aumento en el rendimiento vale la pena la molestia.&lt;/p>
&lt;h3 id="otros-artículos-de-interés">Otros artículos de interés
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Como instalar Manjaro Linux paso a paso, guía para principiantes.&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >Nuevas formas de actualizar Manjaro, pamac y yay entran al juego&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2022/02/17/error-al-instalar-las-guest-additions-en-virtualbox-exit-code-2/" >Error al instalar las Guest Additions en Virtualbox : Exit code 2&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Maximizar el uso de la memoria RAM</title><link>https://linuxmanr4.com/2012/04/06/maximizar-el-uso-de-la-memoria-ram/</link><pubDate>Fri, 06 Apr 2012 20:37:11 +0000</pubDate><guid>https://linuxmanr4.com/2012/04/06/maximizar-el-uso-de-la-memoria-ram/</guid><description>&lt;p>En estos días me dí a la tarea de optimizar un poco más el rendimiento de mi netbook.&lt;/p>
&lt;p>Buscando en internet me encontré con este artículo &lt;strong>Netbook optimization&lt;/strong> con una propuesta interesante.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/image.jpg"
alt="htop muestra el uso de la memoria RAM.">&lt;figcaption>
&lt;p>htop muestra el uso de la memoria RAM.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es muy simple, en lugar de guardar los archivos temporales y registros en el disco duro estos se escribiran en una partición temporal en la memoria RAM, que es mucho más rápida y se realizarán menos accesos al disco duro.&lt;/p>
&lt;p>El único problema es que los registros se pierden al apagar el equipo. Traté de hacer memoria cuando fue la última vez que vi un archivo de registro así que supuse que podía soportar la pérdida de estos archivos. Si algún día los necesito para depurar alguna aplicación solo comentaré algunas líneas.&lt;/p>
&lt;p>Para hacerlo solo es necesario agregar estas líneas al archivo &lt;em>/etc/fstab&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This first line is not strictly necessary.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tmpfs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">dev&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">shm&lt;/span> &lt;span class="n">tmpfs&lt;/span> &lt;span class="n">defaults&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tmpfs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">log&lt;/span> &lt;span class="n">tmpfs&lt;/span> &lt;span class="n">noexec&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">nosuid&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tmpfs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">tmp&lt;/span> &lt;span class="n">tmpfs&lt;/span> &lt;span class="n">noexec&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">nosuid&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tmpfs&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">tmp&lt;/span> &lt;span class="n">tmpfs&lt;/span> &lt;span class="n">noexec&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">nosuid&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reinicie el equipo y ¡Listo!&lt;/p>
&lt;p>Para revisar si funciona podemos teclear el comando df, verán nuevas particiones extras que ya tiene archivos en uso y ocupando espacio.&lt;/p>
&lt;p>Probé este consejo en JoliOS, pero es muy similar a Ubuntu así que no creo que exista mucho problema en aplicarlo.&lt;/p>
&lt;h3 id="otros-artículos-de-interés">Otros artículos de interés
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/" >Configurar una impresora LPD en Windows para imprimir desde Linux&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Como instalar Manjaro Linux paso a paso, guía para principiantes.&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >Nuevas formas de actualizar Manjaro, pamac y yay entran al juego&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Mis aplicaciones favoritas para Android (segunda parte)</title><link>https://linuxmanr4.com/2012/04/04/mis-aplicaciones-favoritas-para-android-segunda-parte/</link><pubDate>Wed, 04 Apr 2012 19:52:26 +0000</pubDate><guid>https://linuxmanr4.com/2012/04/04/mis-aplicaciones-favoritas-para-android-segunda-parte/</guid><description>&lt;p>Anteriormente había escrito Mis aplicaciones favoritas para Android, un pequeño listado de las aplicaciones que se han ganado un lugar en mi celular. Sin embargo, de ese tiempo a la fecha se han agregado varias apps nuevas que ahora tengo el gusto de compartirles.&lt;/p>
&lt;h2 id="airdroid">AirDroid
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/airdroid.jpg"
alt="AirDroid">&lt;figcaption>
&lt;p>AirDroid&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el pasado había instalado aplicaciones para subir archivos de mi netbook a mi celular sin cable con resultados poco favorables.&lt;/p>
&lt;p>Luego me topé con AirDroid y es una maravilla. Basta con conectar la netbook y el celular al mismo punto de acceso inalámbrico, en el celular aparece una dirección IP y una contraseña. Abro esa misma dirección en mi equipo, tecleo la contraseña y ¡Voalá! tengo control de mi celular, puedo ver y descargar las fotos, escuchar, subir o descargar las canciones que estan en mi cel o incluso mandar mensajes SMS.&lt;/p>
&lt;p>El único problema es la batería ya que la conexión WiFi puede consumirla rápidamente. Pero para un uso ocasional en el que no contamos con un cable es una excelente opción.&lt;/p>
&lt;p>&lt;a class="link" href="https://play.google.com/store/apps/details?id=com.sand.airdroid&amp;amp;hl=es" target="_blank" rel="noopener"
>Descargar AirDroid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="black-whip">Black Whip
&lt;/h2>&lt;p>Voy a ser honesto, descargué esta aplicación por su aparición en un episodio de &lt;strong>The Big Bang Theory&lt;/strong>. Aunque al parecer los protagonistas utilizan iPhones, hay una aplicación para Android que hace exactamente lo mismo.&lt;/p>
&lt;p>Sea el alma de las fiestas y las reuniones, no desperdicie la oportunidad de &amp;ldquo;latiguear&amp;rdquo; a sus amigos cuando les habla la esposa o la novia. :)&lt;/p>
&lt;p>Descargar el Látigo Negro&lt;/p>
&lt;h2 id="gps-status">GPS Status
&lt;/h2>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/gps-status.jpg"
loading="lazy"
alt="gps status"
>&lt;/p>
&lt;p>En mi última excursión a &lt;a class="link" href="https://linuxmanr4.com/2012/01/16/las-grutas-del-rosario/" >Las Grutas del Rosario&lt;/a>
esta aplicación me fue muy útil. Con ella marqué varios puntos de interés del recorrido. Me mostró las coordenadas del lugar, el estado de los satélites y una brújula. También tiene una opción para marcar un punto y de esa manera regresar a él, es algo sencillo pero en un viaje a pie puede ser de gran utilidad.&lt;/p>
&lt;p>&lt;a class="link" href="https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2" target="_blank" rel="noopener"
>Descargar GPS Status&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="qr-barcode-scanner">QR Barcode Scanner
&lt;/h2>&lt;p>En estos días trabajé en un proyecto en el que se requería incluir un código QR. Estos códigos se están volviendo muy populares y se les puede ver en publicidad, productos, televisión, revistas, etc. En fin, no tenía forma de revisar si el código generado realmente funciona así que descargué esta aplicación y funciona muy bien, incluso con la cámara de mi equipo que es de 3 mega pixeles.&lt;/p>
&lt;p>&lt;a class="link" href="https://play.google.com/store/apps/details?id=appinventor.ai_progetto2003.SCAN" target="_blank" rel="noopener"
>Descargar QR Barcode Scanner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="sky-map-de-google">Sky Map de Google
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/04/Screenshot%5F2014-04-15-01-24-13.png"
alt="Google Skymap">&lt;figcaption>
&lt;p>Google Skymap&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Soy un &lt;a class="link" href="https://linuxmanr4.com/2007/01/30/astronomia-para-aficionados/" >aficionado a la Astronomía&lt;/a>
, tengo un pequeño telescopio y de vez en cuando realizo mis observaciones. Para ubicar los planetas usaba (y todavía utilizo) Stellarium, luego acompañado de una brújula me orientaba.&lt;/p>
&lt;p>Pero ahora me acompaña este mapa estelar, tiene todo lo necesario para mostrarme el cielo, solo tengo tengo que apuntar la pantalla hacía el cuerpo celeste que tengo curiosidad y me dirá cual es. Más sencillo imposible.&lt;/p>
&lt;p>&lt;a class="link" href="https://play.google.com/store/apps/details?id=com.google.android.stardroid" target="_blank" rel="noopener"
>Descargar Sky Map&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="twicca">Twicca
&lt;/h2>&lt;p>Aunque mi teléfono con Android incluye el cliente oficial de Twitter con la última actualización todo se volvió más lento. Por eso probé con Twicca, un cliente de twitter muy ligerito, pero también muy funcional. Sin tanto adorno lo que hace lo hace muy bien. En lo particular me gusta el detalle de poder marcar los twitts de ciertas personas con un color.&lt;/p>
&lt;p>Descargar Twicca&lt;/p>
&lt;h2 id="winamp">Winamp
&lt;/h2>&lt;p>A Winamp lo tengo olvidado en el escritorio, en parte porque utilizó Linux y los reproductores para esta plataforma son muy buenos. En windows prefiero un reproductor ruso llamado Aimp. Pero la marca ha regresado a mi gracias a su programa para Android.&lt;/p>
&lt;p>Entre otras opciones tiene un control para poder controlar la música aunque mi teléfono este bloqueado, detalle que se agradece sobre todo cuando uno esta escuchando música en el transporte público. También monta automáticamente la memoria microSD solamente con conectar el teléfono y claro, reproduce mis archivos mp3 :P&lt;/p>
&lt;p>Descargar Winamp&lt;/p></description></item><item><title>Como descargar el SUA más actualizado</title><link>https://linuxmanr4.com/2012/03/20/descargar-sua-actualizado/</link><pubDate>Tue, 20 Mar 2012 15:15:39 +0000</pubDate><guid>https://linuxmanr4.com/2012/03/20/descargar-sua-actualizado/</guid><description>&lt;p>Descargar el SUA puede no ser fácil. Buscando la versión más reciente del SUA me di cuenta de una de esas cosas que solo pasan en México.&lt;/p>
&lt;p>Resulta que el SUA es un programa &lt;strong>obligatorio&lt;/strong> que utiliza el Instituto Mexicano del Seguro Social para el pago de cuotas, uno podría suponer que la forma de obtener la versión más reciente sería en el sitio del IMSS.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Complementos-SUA-2012-03-20%5F09-00-01.png"
alt="Página del IMSS">&lt;figcaption>
&lt;p>Página del IMSS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sin embargo en este sitio aparece un enlace a la versión 3.3.2 y para colmo apunta a un servidor que aparentemente está caído. Esto lo revisé desde antes del puente y a estas alturas creo que el encargado no ha regresado a su chamba.&lt;/p>
&lt;p>Curiosamente en el sitio del Infonavit existe un enlace correcto y funcionando del SUA versión 3.3.3.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Sistema-%C3%9Anico-de-Autodeterminaci%C3%B3n-2012-03-20_09-02-08.png"
alt="Descargar el SUA 3.3.3 en el Infonavit">&lt;figcaption>
&lt;p>Descargar el SUA 3.3.3 en el Infonavit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="enlaces-para-descargar-el-sua">Enlaces para descargar el SUA.
&lt;/h2>&lt;p>Mientras son peras o son manzanas les dejo los enlaces donde pueden descargar el SUA más reciente tanto del sitio del IMSS como del Infonavit.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/SUA-desde-el-IMSS.png"
alt="SUA desde el IMSS">&lt;figcaption>
&lt;p>SUA desde el IMSS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="http://www.imss.gob.mx/patrones/sua" target="_blank" rel="noopener"
>&lt;strong>Descargar el SUA desde el sitio del IMSS&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/SUA-portal-INFONAVIT.png"
alt="Descargar SUA en el portal del INFONAVIT">&lt;figcaption>
&lt;p>Descargar SUA en el portal del INFONAVIT&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Descargar el SUA desde el portal del INFONAVIT&lt;/strong>.&lt;/p></description></item><item><title>Nextgen Gallery, mostrar el ALT text como título de la imagen</title><link>https://linuxmanr4.com/2012/03/16/nextgen-gallery-alt-text-caption/</link><pubDate>Fri, 16 Mar 2012 21:52:57 +0000</pubDate><guid>https://linuxmanr4.com/2012/03/16/nextgen-gallery-alt-text-caption/</guid><description>&lt;p>NextGEN Gallery es un plugin muy popular en wordpress para el manejo de galerías de imágenes. Por default una galería no muestra ningún texto debajo de cada &lt;em>thumbnail&lt;/em>, pero a veces es necesario que así sea.&lt;/p>
&lt;h2 id="el-alt-text-como-título">El alt text como título
&lt;/h2>&lt;p>Por fortuna NextGen Gallery cuenta con un parámetro que permite mostrar un texto debajo de cada imagen&lt;/p>
\[ nggallery id=x **template=caption** \]&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/03/Por-default-muestra-el-texto-de-la-descripci%c3%b3n.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Por-default-muestra-el-texto-de-la-descripci%c3%b3n.png"
loading="lazy"
>&lt;/a>
&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/03/Manage-Gallery.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Manage-Gallery.png"
loading="lazy"
>&lt;/a>
&lt;/p>
&lt;p>Lo malo es que ese texto es el &lt;em>caption&lt;/em> o descripción de la imagen. Y para mi eso es malo, porque la descripción es muy larga y en ocasiones me echa a perder la alineación de las imágenes.&lt;/p>
&lt;p>Para mi es mucho más sencillo cambiar el código del plugin que cambiar las descripciones de todas las imágenes que tengo publicadas en mis galerías.&lt;/p>
&lt;p>Así que manos a la obra, no se les olvide hacer una copia de respaldo de los archivos que modifiquen por si algo sale mal, aún pueden recuperarse a un estado en el que funcionaban las cosas e intentarlo de nuevo.&lt;/p>
&lt;h2 id="ajustando-el-código">Ajustando el código.
&lt;/h2>&lt;p>Se puede cambiar fácilmente este comportamiento modificando el archivo &lt;strong>gallery-caption.php&lt;/strong> que se encuentra en la carpeta &lt;strong>nextgen-gallery/view&lt;/strong> en la carpeta de plugins de nuestra instalación de wordpress.&lt;/p>
&lt;p>Buscamos la sección que dice &lt;strong>Thumbnails&lt;/strong> y reemplazamos este código:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;span&amp;gt;&amp;lt;?php echo $image-&amp;gt;caption ?&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>por este otro:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;span&amp;gt;&amp;lt;?php echo $image-&amp;gt;alttext ?&amp;gt;&amp;lt;/span&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/03/Modificando-el-archivo-gallery-caption.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Modificando-el-archivo-gallery-caption.png"
loading="lazy"
alt="nextgen gallery alt text caption"
>&lt;/a>
&lt;/p>
&lt;p>De esa manera muestra en la parte inferior el texto &lt;strong>ALT&lt;/strong> en lugar de la Descripción.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/03/Galer%c3%ada-corregida.png" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Galer%c3%ada-corregida.png"
loading="lazy"
>&lt;/a>
&lt;/p>
&lt;p>Tengan en cuenta que Nextgen Gallery se actualiza mucho y probablemente estas instrucciones no van a ser totalmente exactas con el paso del tiempo. Pero al menos se darán una idea de que buscar y en donde.&lt;/p>
&lt;p>También tengan en cuenta de que si actualizan el plugin lo más probable es que pierdan estos cambios, pero no es complicado hacerlos de nuevo, así que tomen nota de lo que están haciendo.&lt;/p>
&lt;p>¡Buena suerte!&lt;/p></description></item><item><title>Conexiones inseguras a Banco Azteca por internet</title><link>https://linuxmanr4.com/2012/03/02/conexiones-inseguras-a-banco-azteca-por-internet/</link><pubDate>Fri, 02 Mar 2012 15:58:16 +0000</pubDate><guid>https://linuxmanr4.com/2012/03/02/conexiones-inseguras-a-banco-azteca-por-internet/</guid><description>&lt;p>Ayer me reportaron una sospecha de &lt;a class="link" href="https://es.wikipedia.org/wiki/Phishing" target="_blank" rel="noopener"
>phishing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el sitio de Banco Azteca.&lt;/p>
&lt;p>Que bueno que mis usuarios están aprendiendo a detectar cosas “sospechosas” o “anormales” y mejor aún que preguntan antes de hacer cualquier cosa. Para ser sinceros yo también tuve mis dudas para investigar si era una página real o no.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/03/Banco-Azteca-Conexiones.png"
alt="Conexión insegura en Banco Azteca">&lt;figcaption>
&lt;p>Conexión insegura en Banco Azteca&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hay varios puntos raros o sospechosos:&lt;/p>
&lt;ul>
&lt;li>El primero es que en el lugar donde se teclea el nombre de usuario y contraseña no es en un sitio seguro. La transmisión de estos datos debería de realizarse mediante conexiones cifradas, al menos es lo que nos han enseñado sitios como Google, Facebook y otros bancos.&lt;/li>
&lt;li>Luego viene el problema que el sitio tiene dos dominios diferentes con un comportamiento diferente, por ejemplo &lt;strong>bancoazteca.com&lt;/strong> no muestra un enlace seguro después de recibir el nombre de usuario y la contraseña. El sitio &lt;strong>bancoazteca.com.mx&lt;/strong> si muestra un enlace seguro pero con errores!!!&lt;/li>
&lt;/ul>
&lt;p>Ambos sitios son legítimos y funcionan, pero en estos tiempos no está de más ser un poco paranoicos.&lt;/p>
&lt;h3 id="otros-artículos-de-interés">Otros artículos de interés
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2015/05/19/impresora-hp-p1102w-imprime-toda-la-hoja-en-negro/" >Impresora HP p1102w imprime toda la hoja en negro&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2013/12/23/como-identificar-una-memoria-falsa/" >Cómo identificar una memoria falsa&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2008/02/15/curp-no-se-encuentra-en-la-base-de-datos/" >Cuando la CURP no se encuentra en la base de datos&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Cómo Reciclar tu iPod viejo como Unidad de Respaldo</title><link>https://linuxmanr4.com/2012/02/27/reciclar-ipod-unidad-de-respaldo/</link><pubDate>Mon, 27 Feb 2012 13:00:34 +0000</pubDate><guid>https://linuxmanr4.com/2012/02/27/reciclar-ipod-unidad-de-respaldo/</guid><description>&lt;p>¿Tienes un iPod antiguo acumulando polvo? ¡No lo deseches! En este artículo, te mostramos cómo reciclar tu iPod y transformarlo en una práctica unidad de respaldo para tus archivos. Reutilizar tu dispositivo no solo es una forma económica de aprovechar su capacidad de almacenamiento, sino también una solución ecológica para reducir residuos electrónicos.&lt;/p>
&lt;p>Sigue leyendo y descubre cómo convertir tu iPod en un disco duro externo funcional en pocos minutos.&lt;/p>
&lt;p>Hace tiempo que me regalaron un iPod clásico de 30 GB. Sabía que no estaba en buenas condiciones, a veces funcionaba y otras no, sospeché que era un detallito en el control circular porque al momento de usarlo el iPod se congelaba. En fin, como iPod no iba a funcionar, así que decidí usarlo como una &lt;strong>unidad de respaldo&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7036/6781155724%5Fcedd8da6a4.jpg"
alt="El ipod reciclado">&lt;figcaption>
&lt;p>El ipod reciclado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ntfs-fat32-xfs-o-reiserfs">NTFS, FAT32, XFS o ReiserFS
&lt;/h2>&lt;p>Formatear el iPod no fue complicado, solo hay que iniciar &lt;a class="link" href="http://gparted.sourceforge.net/" title="Gnome Partition Editor"
target="_blank" rel="noopener"
>Gparted&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y dependiendo del uso que le demos será el sistema de archivos.&lt;/p>
&lt;p>Por ejemplo, antes de escribir este artículo hice algunas pruebas. &lt;a class="link" href="http://es.wikipedia.org/wiki/FAT32#FAT32" title="File Allocation Table 32"
target="_blank" rel="noopener"
>FAT32&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es muy común y será reconocido prácticamente cualquier equipo y/o dispositivo al que lo conecte, pero para respaldos me quedó debiendo. Al intentar copiar un archivo ISO de un DVD simplemente no pudo soportar el tamaño del archivo. Así que para respaldos quedó descartado.&lt;/p>
&lt;p>El segundo intento lo hice con &lt;a class="link" href="http://es.wikipedia.org/wiki/NTFS" title="New Technology File System"
target="_blank" rel="noopener"
>NTFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, funcionó, pero tuvo dos problemas. El primero la velocidad del respaldo, varias veces creí que se había quedado trabado y el segundo fue que por alguna extraña razón, al desmontarlo y volverlo a conectar, me dijo que el formato del disco era irreconocible, no quise averiguar más e intenté con ….&lt;/p>
&lt;p>&lt;a class="link" href="http://es.wikipedia.org/wiki/XFS" target="_blank" rel="noopener"
>XFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es como el rayo McQueen, veeeeloooz (lo siento, creo que tuve demasiada sobreexposición a los sobrinos), pero ya en serio, el respaldo lo completó a muy buena velocidad, incluso con la copia del ISO del DVD que era un archivo de más de 4 GB.&lt;/p>
&lt;p>Los screenshots que aparecen de aquí en adelante corresponden a un viejo conocido, &lt;a class="link" href="http://es.wikipedia.org/wiki/ReiserFS" target="_blank" rel="noopener"
>ReiserFS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que también tiene la fama de ser muy rápido.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7064/6924689221%5Fcc9dbee94e.jpg"
alt="Creación de una partición ReiserFS">&lt;figcaption>
&lt;p>Creación de una partición ReiserFS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="crear-la-partición-en-el-ipod">Crear la partición en el iPod
&lt;/h2>&lt;p>Como lo mencioné al principio, para hacer la partición usé Gparted, el procedimiento es muy simple, pero si tiene dudas, por favor den un vistazo a &lt;a class="link" href="https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/" >Como formatear una memoria usb en linux&lt;/a>
.&lt;/p>
&lt;h2 id="problemas-con-los-permisos">Problemas con los permisos.
&lt;/h2>&lt;p>Si al principio no pueden crear una carpeta o escribir archivos en su nueva unidad es debido a un problema de permisos.&lt;/p>
&lt;ul>
&lt;li>Tecleen en una terminal &lt;strong>sudo nautilus&lt;/strong>&lt;/li>
&lt;li>Vayan a la carpeta &lt;strong>/media/nombre_de_nuestra_unidad&lt;/strong>&lt;/li>
&lt;li>Den clic con el botón derecho, y vayan a la sección de &lt;strong>Permisos&lt;/strong>&lt;/li>
&lt;li>Otorguen permisos a su usuario de lectura y escritura. Guarden los cambios y listo!!!&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7193/6924689217%5F951fa5c2f4.jpg"
alt="Estableciendo los permisos">&lt;figcaption>
&lt;p>Estableciendo los permisos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="rsync-todo-lo-que-alguna-vez-quiso-ser-xcopy-y-no-lo-logró">Rsync, todo lo que alguna vez quiso ser xcopy (y no lo logró).
&lt;/h2>&lt;p>Ahora para copiar los archivos he estado haciendo mis pininos con un viejo amigo de los administradores de sistemas linux &lt;strong>rsync&lt;/strong>. Esta pequeña e inocente instrucción es un monstruo, parece sencilla, pero su cantidad de opciones son para tomarse en serio. Para simplificarme la existencia decidí usar un conjunto de opciones mucho más sencillo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">rsync -avu /ruta/de/origen/ /ruta/de/destino
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm8.staticflickr.com/7196/6924689213%5F8231a390b8.jpg"
alt="Copiando los archivos con rsync">&lt;figcaption>
&lt;p>Copiando los archivos con rsync&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>la opción &lt;strong>-u&lt;/strong> solo actualiza, si vuelvo a ejecutar la misma instrucción, agrega los archivos nuevos y copia las versiones más recientes ahorrando mucho tiempo en respaldos frecuentes.&lt;/p>
&lt;h2 id="listo-para-trabajar-como-una-unidad-de-respaldo">Listo para trabajar como una unidad de respaldo
&lt;/h2>&lt;p>Una advertencia final, si hacen esto en el iPod aparecerá una leyenda de que necesita conectarse urgentemente al iTunes, y probablemente necesite una restaurada, pero no se preocupen, es normal, aunque probablemente no lo puedan usar como un iPod.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7057/6927236835%5F23567af59c.jpg"
alt="Mensaje que aparece en el iPod, aunque ya está listo para funcionar como una unidad de respaldo.">&lt;figcaption>
&lt;p>Mensaje que aparece en el iPod, aunque ya está listo para funcionar como una unidad de respaldo.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Reciclar tu iPod viejo como unidad de respaldo es una manera inteligente de darle una segunda vida a un dispositivo olvidado, ahorrando dinero y contribuyendo al cuidado del medio ambiente. Con unos simples pasos, puedes transformar tu iPod en una solución de almacenamiento práctica y funcional.&lt;/p>
&lt;p>Ahora, si me disculpan, tengo que respaldar algunos archivos.&lt;/p></description></item><item><title>Como formatear una memoria usb en linux</title><link>https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/</link><pubDate>Fri, 24 Feb 2012 02:36:46 +0000</pubDate><guid>https://linuxmanr4.com/2012/02/23/como-formatear-una-memoria-usb-en-linux/</guid><description>&lt;p>A continuación les voy a explicar como formatear una memoria USB en Ubuntu usando Gparted.&lt;/p>
&lt;p>&lt;a class="link" href="http://gparted.sourceforge.net/" target="_blank" rel="noopener"
>Gparted&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
esta disponible en el centro de software de Ubuntu y es la herramienta que se usa para borrar, crear, redimensionar particiones en discos duros. Así que aquí les va la &lt;strong>ADVERTENCIA&lt;/strong> Si aplican el siguiente consejo a una partición que no es una unidad USB pueden terminar perdiendo sus datos, así que por favor tengan mucho cuidado.&lt;/p>
&lt;p>Para instalar Gparted puede ir al centro de software de Ubuntu o teclear en una terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install gparted
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Inserten la memoria que deseen formatear y esperen a que aparezca en la pantalla.&lt;/p>
&lt;p>A continuación ejecute el programa Gparted.&lt;/p>
&lt;p>&lt;strong>1.&lt;/strong> Busquen la partición que corresponde a su memoria USB, yo por ejemplo me fijo en el tamaño ya que es la única partición que tengo de 1 GB (en la imagen aparece como de 981 &lt;a class="link" href="http://es.wikipedia.org/wiki/Mebibyte" title="Mebibyte"
target="_blank" rel="noopener"
>MiB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
).&lt;/p>
&lt;p>&lt;strong>2&lt;/strong> Con el botón derecho del mouse elegimos la opción &lt;strong>Desmontar&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6390597869/" title="-dev-sdf - GParted_025 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.staticflickr.com/6116/6390597869_02d083f288.jpg"
loading="lazy"
alt="-dev-sdf - GParted_025"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;strong>3&lt;/strong> Nuevamente con el botón derecho elegimos la partición y ahora le damos clic en la opción que dice &lt;strong>Formatear como&lt;/strong> y para las memorias USB el formato &lt;strong>fat32&lt;/strong> será el más adecuado.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6390597963/" title="-dev-sdf - GParted_027 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.staticflickr.com/6044/6390597963_41f3b8104c.jpg"
loading="lazy"
alt="-dev-sdf - GParted_027"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;strong>4&lt;/strong> Para finalizar presionamos el botón de &lt;strong>Aplicar todas las operaciones&lt;/strong>, está en la parte superior con forma de flechita.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6390598047/" title="-dev-sdf - GParted_028 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.staticflickr.com/6211/6390598047_424f0ed624.jpg"
loading="lazy"
alt="-dev-sdf - GParted_028"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Si todo sale bien verán el siguiente mensaje.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6390597771/" title="-dev-sdf - GParted_030 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.staticflickr.com/6032/6390597771_e6b9f6377e.jpg"
loading="lazy"
alt="-dev-sdf - GParted_030"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y eso es todo !!! la memoria ya esta formateada y lista para lo que gusten.&lt;/p>
&lt;p>&lt;a class="link" href="http://gparted.org/" target="_blank" rel="noopener"
>Gparted&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es una herramienta poderosa, puedes crear varias particiones de distintos tipos si así lo deseas, pero eso ya es al gusto y capricho del cliente.&lt;/p>
&lt;h2 id="actualización-soporte-para-varios-sistemas-de-archivos">Actualización: Soporte para varios sistemas de archivos.
&lt;/h2>&lt;p>Me dice el buen amigo Siddharta en los comentarios que para particionar con el formato ntfs es necesario instalar un paquete, y es cierto, pueden ver una lista de los formatos soportados y el paquete que tienen que instalar para habilitarlo en Gparted menú &lt;strong>Ver&lt;/strong> - &lt;strong>Soporte para sistema de archivos&lt;/strong>, en la columna &lt;strong>Software obligatorio&lt;/strong> dice el programa que se requiere para dar soporte a ese sistema de archivos.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6789199848/" title="Software Obligatorio para el manejo de sistemas de archivos por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm8.staticflickr.com/7057/6789199848_fa687ced2e.jpg"
loading="lazy"
alt="Software Obligatorio para el manejo de sistemas de archivos"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Por ejemplo, para dar soporte a &lt;strong>NFTS&lt;/strong> es necesario instalar el paquete &lt;strong>ntfsprogs&lt;/strong> con el ya conocido&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install ntfsprogs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>winPenPack, aplicaciones libres en tu memoria usb</title><link>https://linuxmanr4.com/2012/02/16/winpenpack-aplicaciones-libres-en-tu-memoria-usb/</link><pubDate>Thu, 16 Feb 2012 15:32:27 +0000</pubDate><guid>https://linuxmanr4.com/2012/02/16/winpenpack-aplicaciones-libres-en-tu-memoria-usb/</guid><description>&lt;p>winPenPack es un conjunto de aplicaciones libres portátiles que se pueden ejecutar directamente desde una memoria usb.&lt;/p>
&lt;p>Se me antoja como un kit de software escolar para estudiantes o para los informáticos como yo que queremos usar nuestras aplicaciones “para llevar” y utilizarlas cuando se ofrezcan.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/02/winPenPack.png"
alt="WinPenPack">&lt;figcaption>
&lt;p>WinPenPack&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La colección de programas es interesante y muy completa. Existen 3 versiones de winPenPack: &lt;em>Essential&lt;/em>, &lt;em>Full&lt;/em> y &lt;em>Personal&lt;/em>.&lt;/p>
&lt;p>Esta es una lista de aplicaciones de la versión &lt;em>Full&lt;/em>.&lt;/p>
&lt;h3 id="administración-de-documentos">Administración de documentos
&lt;/h3>&lt;ul>
&lt;li>SumatraPDF (lector de archivos .pdf)&lt;/li>
&lt;li>X-LibreOffice (Hoja de cálculo, procesador de palabras, presentaciones, bases de datos, Alternativa libre a Microsoft Office)&lt;/li>
&lt;li>X-SciTE (editor de texto)&lt;/li>
&lt;/ul>
&lt;h3 id="administración-de-información-personal">Administración de información personal
&lt;/h3>&lt;ul>
&lt;li>X-ANote (Notas)&lt;/li>
&lt;li>X-Planner (Herramienta para administración de proyectos)&lt;/li>
&lt;/ul>
&lt;h3 id="imágenes">Imágenes
&lt;/h3>&lt;ul>
&lt;li>JPEGView (Visualizador de imágenes)&lt;/li>
&lt;li>X-Gimp (Editor de Imágenes, alternativa libre a Photoshop)&lt;/li>
&lt;/ul>
&lt;h3 id="internet">Internet
&lt;/h3>&lt;ul>
&lt;li>X-FileZilla (Cliente FTP)&lt;/li>
&lt;li>X-Firefox (Navegador de internet)&lt;/li>
&lt;li>X-MagicMailMonitor (Monitor de correo)&lt;/li>
&lt;li>X-Pidgin (Cliente de mensajería instantánea como Messenger, Google Talk, ICQ, AIM)&lt;/li>
&lt;li>X-RSSOwl (Lector de RSS)&lt;/li>
&lt;li>X-Thunderbird (Cliente de correo electrónico)&lt;/li>
&lt;/ul>
&lt;h3 id="multimedia">Multimedia
&lt;/h3>&lt;ul>
&lt;li>X-Audacity (Editor de sonido)&lt;/li>
&lt;li>X-CdrTools FrontEnd (Software para quemar CD/DVD)&lt;/li>
&lt;li>X-VideoLAN (Reproductor de videos)&lt;/li>
&lt;li>X-xVideoServiceThief (Herramienta para descargar vídeos de varios sitios web)&lt;/li>
&lt;/ul>
&lt;h3 id="p2p---compartir-archivos">p2p - Compartir archivos
&lt;/h3>&lt;ul>
&lt;li>X-DcPlusPlus (cliente Direct Connect)&lt;/li>
&lt;li>X-Halite (Cliente para BitTorrent)&lt;/li>
&lt;li>X-HttpFileServer (Servidor de archivos vía web)&lt;/li>
&lt;li>X-Mule (p2p)&lt;/li>
&lt;/ul>
&lt;h3 id="securidad">Securidad
&lt;/h3>&lt;ul>
&lt;li>X-ClamWin (antivirus)&lt;/li>
&lt;li>X-Eraser (Herramienta para el borrado seguro de archivos)&lt;/li>
&lt;li>X-FreeOTFE (Creación de discos virtuales protegidos por contraseña)&lt;/li>
&lt;li>X-KeePass (Almacena y protege tus contraseñas)&lt;/li>
&lt;/ul>
&lt;h3 id="herramientas-de-sistema">Herramientas de sistema.
&lt;/h3>&lt;ul>
&lt;li>FreeFileSync (Herramienta de comparación y sincronización de carpetas)&lt;/li>
&lt;li>X-Abakt (Herramienta de respaldos)&lt;/li>
&lt;li>X-DiskCleaner (Busca y elimina archivos temporales del disco)&lt;/li>
&lt;li>X-JKDefrag (Herramienta de desfragmentación)&lt;/li>
&lt;li>X-StartupManager (Programa que permite administrar el proceso de arranque de Windows)&lt;/li>
&lt;li>X-Synkron (Permite sincronizar dos diferentes discos duros o carpetas)&lt;/li>
&lt;li>X-WinDirStat (Muestra el espacio ocupado por nuestros archivos en el disco)&lt;/li>
&lt;/ul>
&lt;h3 id="utilerías">Utilerías
&lt;/h3>&lt;ul>
&lt;li>X-7Zip (Herramienta para comprimir y descomprimir archivos)&lt;/li>
&lt;li>X-AstroGrep (buscador de archivos y carpetas)&lt;/li>
&lt;li>X-CamStudio (Permite capturar la actividad de la pantalla y guardarla como un archivo .avi)&lt;/li>
&lt;li>X-Lightscreen (Programa para hacer capturas de pantalla)&lt;/li>
&lt;li>X-muCommander (Administrador de archivos)&lt;/li>
&lt;li>X-Translate.Net (Cliente de servicios para hacer traducciones en línea)&lt;/li>
&lt;li>X-UniExtract (Permite extraer o mostrar el contenido de archivos de instalación)&lt;/li>
&lt;/ul>
&lt;h3 id="herramientas">Herramientas
&lt;/h3>&lt;ul>
&lt;li>EjectUSB (Herramienta para cerrar todos los programas que se están ejecutando en la memoria usb)&lt;/li>
&lt;/ul>
&lt;h3 id="librerías">Librerías
&lt;/h3>&lt;ul>
&lt;li>FFmpeg&lt;/li>
&lt;li>GTK+ for Windows&lt;/li>
&lt;li>LAME Encoder&lt;/li>
&lt;li>Java Runtime Environment (Nota: JRE no esta incluido, pero se descargará usando JavaGet)&lt;/li>
&lt;/ul>
&lt;p>Dependiendo de la versión que elijan será el tamaño de la descarga. Por ejemplo, la versión full pesa unos 640 MB, busqué, pero no encontré un archivo Torrent para descargar.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.winpenpack.com/" title="página de winPenPack"
target="_blank" rel="noopener"
>Página de winPenPack&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Función en Excel para calcular el ISPT anual</title><link>https://linuxmanr4.com/2012/01/27/funcion-en-excel-para-calcular-el-ispt-anual/</link><pubDate>Sat, 28 Jan 2012 00:03:01 +0000</pubDate><guid>https://linuxmanr4.com/2012/01/27/funcion-en-excel-para-calcular-el-ispt-anual/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Resultado-de-la-funci%C3%B3n.png">
&lt;/figure>
&lt;p>Me han pedido en el trabajo que desarrolle una función para calcular el ISPT anual en excel. Para ser sincero hace mucho tiempo que no programo en este lenguaje así que por favor sean piadosos si cometo una que otra barbaridad.&lt;/p>
&lt;p>Para el cálculo del ISPT es necesario consultar un tabulador. Para hacer el cálculo más rápido decidí incluirlas en una matriz, la función busca los valores apropiados de la &lt;strong>Cuota Fija&lt;/strong> y el &lt;strong>Porcentaje sobre excedente&lt;/strong>.&lt;/p>
&lt;p>También busca el &lt;strong>Crédito al salario&lt;/strong>, así que el resultado de la función es negativo quiere decir que es a favor.&lt;/p>
&lt;p>La función es Software Libre y claro que es perfectible, si quieren hacer alguna corrección o sugerir alguna modificación adelante.&lt;/p>
&lt;p>Si lo prefieren pueden descargar una hoja de cálculo de ejemplo &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2012/01/Calculo-del-ISPT.xls" >Calculo del ISPT&lt;/a>
.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Me dicen que esta función en realidad calcula la &lt;strong>Retención del ISR para sueldos y salarios&lt;/strong> y el Crédito al salario ahora se le llama &lt;strong>Subsidio para el empleo&lt;/strong>, la verdad no soy contador y desconozco los términos correctos. A lo único que le veo problema es con el nombre de las variables. En fin, si es necesario haré una versión 2 corregida y aumentada.&lt;/p>
&lt;h2 id="cálculos-para-el-ispt-del-2012">Cálculos para el ISPT del 2012.
&lt;/h2>&lt;p>El buen amigo &lt;strong>glezco21&lt;/strong> me envío por correo las modificaciones de esta función para calcular el ISPT (o como le quieran llamar) para el año 2012, pero no solo eso, hizo hojas de cálculo en formato de &lt;strong>Excel&lt;/strong> 20xx y las instrucciones para agregar la función como una definida por el usuario.&lt;/p>
&lt;p>Mis dos centavos fue hacer una hoja de cálculo en &lt;strong>LibreOffice&lt;/strong> con el código de la función. Si gustan pueden descargar los archivos en el siguiente enlace:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.dropbox.com/scl/fi/dulea5ssgbf06djsh4trj/ISPT-2012.rar?rlkey=5lshqfx1zuzjenjh2iroqhlt9&amp;amp;st=f7z0w4px&amp;amp;dl=0" target="_blank" rel="noopener"
>ISPT 2012.rar&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/ISPT-2012-libre-office.png">
&lt;/figure>
&lt;p>En el caso de LibreOffice no se les olvide ajustar la seguridad para la ejecución de macros. &lt;strong>Herramientas&lt;/strong> - &lt;strong>Opciones&lt;/strong> - &lt;strong>LibreOffice&lt;/strong> - &lt;strong>Seguridad&lt;/strong> - &lt;strong>Seguridad de macros&lt;/strong> - &lt;strong>Nivel de seguridad&lt;/strong> o prácticamente en el mismo menú en &lt;strong>Orígenes de confianza&lt;/strong> y agregar una ubicación de archivos de confianza.&lt;/p>
&lt;h2 id="actualización-10-dic-2012">Actualización 10-dic-2012
&lt;/h2>&lt;p>Gracias a los comentarios del amigo &lt;strong>GRR&lt;/strong>, se hizo una corrección en los cálculos de la función. Les pido que por favor descarguen esta última actualización. Nuevamente incluyo una versión para LibreOffice y una para Excel.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/icono_descargar.png"
loading="lazy"
>&lt;a class="link" href="https://www.dropbox.com/sh/0rev8s2xn01t98b/DfDxC2kqdz/ISPT%202012%20v20121210.rar" target="_blank" rel="noopener"
>Descargar ISPT 2012 v20121210&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="actualización-12-feb-2014">Actualización 12-feb-2014
&lt;/h2>&lt;p>Si buscan una versión más actualizada de este &lt;em>script&lt;/em> la pueden revisar en &lt;a class="link" href="https://linuxmanr4.com/2015/02/12/funcion-para-calcular-el-ispt-2014-en-excel-y-libreoffice/" title="Función para calcular el ISPT 2014 en Excel y LibreOffice"
>Función para calcular el ISPT 2014 en Excel y LibreOffice&lt;/a>
.&lt;/p></description></item><item><title>CodekaMX, cuando el software libre deja de serlo.</title><link>https://linuxmanr4.com/2012/01/18/codekamx-software-libre/</link><pubDate>Wed, 18 Jan 2012 18:17:36 +0000</pubDate><guid>https://linuxmanr4.com/2012/01/18/codekamx-software-libre/</guid><description>&lt;p>Hace tiempo hice algunas adaptaciones a un sistema español llamado Codeka y lo liberé con el nombre de &lt;a class="link" href="https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/" >CodekaMX&lt;/a>
, respeté lo más que pude los créditos anteriores y puse mi granito de arena corrigiendo algunos bugs y detalles menores.&lt;/p>
&lt;p>Unos vivales, hicieron un sistema (que ni le cambiaron el nombre) basándose en el código que liberé. promoviéndolo como software libre.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Codeka-Maximum-Filosof%C3%ADa.jpeg"
alt="Codeka Maximun - Filosofía - CodekaMX Software Libre">&lt;figcaption>
&lt;p>Codeka Maximun - Filosofía - CodekaMX Software Libre&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En los foros de su proyecto mencionan:&lt;/p>
&lt;blockquote>
&lt;p>Codeka MX ( Codeka Mexico) es un emprendimiento de Linuxman , este emprendimiento se llama CodeKa Mx (CodeKa Maximun) &lt;strong>y este grupo no tiene ninguna relacion con el empredimiento de Linuxman&lt;/strong> por lo tanto te sugerimos que instales el programa que nosotros te enviamos y leas los tutoriales o veas los videos que existen para la instalacion en un Servidor local todo lo cual aparece en el Foro o se hace relacion a ellos en el propio programa”3&lt;/p>&lt;/blockquote>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Relaci%C3%B3n-entre-Codeka-MX-y-Codeka-Maximun.jpeg"
alt="Relación entre Codeka MX y Codeka Maximun">&lt;figcaption>
&lt;p>Relación entre Codeka MX y Codeka Maximun&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aclaro que eso de “ninguna relación” quiere decir tomar todo el código ya desarrollado de mi página.&lt;/p>
&lt;p>No tendría problema con esto, de hecho para eso lo liberé para que lo usaran de la forma que quisieran, pero ahora me entero que pretenden ¡Cerrar el código! y cito:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;nosotros como equipo de trabajo lamentamos tambien esta situacion pero fue la unica alternativa que nos quedo a mano para impedir que algunos usuarios usufructasen de este emprendimiento en desmedro de la &lt;strong>comunidad&lt;/strong> .&amp;rdquo;&lt;/p>
&lt;p>&amp;ldquo;pronto volveremos a enviar este software pues estamos implementando un sistema con Zend Guard que va impedir o por lo menos dificultar enormente su distribucion con fines de lucro&amp;quot;2.&lt;/p>&lt;/blockquote>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Fines-de-lucro.jpeg"
alt="Hacer dinero no esta peleado con la licencia GPL.">&lt;figcaption>
&lt;p>Hacer dinero no esta peleado con la licencia GPL.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="software-libre">Software Libre
&lt;/h2>&lt;p>Entiéndase como “comunidad” a sus propios intereses. A estas personas les recuerdo que para ser software libre debe de cumplir con las 4 libertades.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>0 la libertad de usar el programa, con cualquier propósito.&lt;/strong>&lt;br>
El software libre se puede usar para cualquier propósito… cualquiera !!!!, público, privado, no hay restricciones al respecto.&lt;/li>
&lt;li>&lt;strong>1 la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.&lt;/strong>&lt;br>
Si cierran el código, esta libertad se trunca. No se puede adaptar, ni mejorar o actualizar.&lt;/li>
&lt;li>&lt;strong>2 la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.&lt;/strong>&lt;br>
Desde un principio limitan esta libertad, la descarga esta condicionada a una solicitud y envió por correo electrónico.&lt;/li>
&lt;li>&lt;strong>3 la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.&lt;/strong>&lt;br>
Otra vez, si cierran el código no se pueden hacer mejoras, mejoras que ellos mismos obtuvieron desde un software realmente libre.&lt;/li>
&lt;/ul>
&lt;p>El verdadero motivo para cerrar el código es que pretenden cobrar por su uso y esto afecta a sus propios interese$.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/%C3%81rea-de-trabajo-1_004.jpeg"
alt="Pretenden cerrar el código y cobrar por su uso.">&lt;figcaption>
&lt;p>Pretenden cerrar el código y cobrar por su uso.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De que lo pueden cerrar y cobrar, lo pueden hacer, lo que no pueden hacer es salir a la calle y promoverlo con la bandera de software libre, cuando realmente no lo es.&lt;/p>
&lt;h2 id="actualización-14-may-2012">Actualización 14-may-2012
&lt;/h2>&lt;p>He solicitado en los foros de Codeka Maximun(sic) el código de su última versión de su proyecto, sin embargo, me enviaron la versión de Codeka Maximun 16 mod 03, una versión anterior a la que menciono en este artículo.&lt;/p>
&lt;p>Las razones para no enviarme el código del proyecto de la siguiente versión que esta en desarrollo las pueden leer aqui.&lt;/p>
&lt;p>Mientras tanto, si ustedes gustan, pueden descargar directamente aquí la versión de Codeka Maximun 16 mod 03. En esta versión todavía se tiene acceso al código fuente.&lt;/p></description></item><item><title>Las Grutas del Rosario</title><link>https://linuxmanr4.com/2012/01/16/las-grutas-del-rosario/</link><pubDate>Mon, 16 Jan 2012 22:18:53 +0000</pubDate><guid>https://linuxmanr4.com/2012/01/16/las-grutas-del-rosario/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Grutas-del-Rosario.jpg" alt="Featured image of post Las Grutas del Rosario" />&lt;p>Debido a un articulo de la revista Nomádica tenía muchas ganas de visitar las Grutas del Rosario. Ayer mi pinguinitia y toda mi familia política preparamos la camioneta, pusimos tierra de por medio y nos dirigimos para donde iban los dos amigos o ¿más bien venían?.&lt;/p>
&lt;p>El viaje no es complicado, elegimos la ruta Torreón, Gómez Palacio, Bermejillo , Mapimí, Ejido Vicente Suárez porque es una ruta más poblada y vigilada, con eso de que la Comarca Lagunera ocupa el &amp;ldquo;honroso&amp;rdquo; séptimo lugar mundial entre las ciudades más peligrosas del planeta la seguridad se vuelve un factor a considerar.&lt;/p>
&lt;p>El camino esta lleno de señalamientos lo que hace muy difícil perderse y en una hora y media de camino llegamos a las grutas.&lt;/p>
&lt;p>Como buen geek me equipe con dos aplicaciones para android, una fue &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.google.android.maps.mytracks&amp;amp;pli=1" target="_blank" rel="noopener"
>My Tracks&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para grabar el recorrido y como respaldo &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2&amp;amp;pcampaignid=web_share" target="_blank" rel="noopener"
>GPS Status&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para tomar nota de las coordenadas de los lugares.&lt;/p>
&lt;p>Con la información de las dos aplicaciones pude hacer el siguiente mapa.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/Ruta-a-las-Grutas-del-Rosario.jpeg"
alt="Ruta a las Grutas del Rosario">&lt;figcaption>
&lt;p>Ruta a las Grutas del Rosario&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="http://maps.google.com/maps/ms?msid=210401194290624086071.0004b6a7ffcc69a70a2eb&amp;amp;msa=0&amp;amp;ll=25.665047,-103.682098&amp;amp;spn=0.883785,1.454315" target="_blank" rel="noopener"
>Grutas del Rosario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Google Maps.&lt;/p>
&lt;p>Cobran 40 pesos por persona que incluye una visita guiada a las grutas. Mi chaparrita ya había visitado el lugar en varias ocasiones, pero para mi era la primera, me dijo que ya esta mucho más arreglado, en el lugar hay un pequeño mirador, un comedor, instalaciones sanitarias, por supuesto las grutas y para los más extremos, una tirolesa.&lt;/p>
&lt;p>Para entrar a la gruta hay que subir una buena cantidad de escaleras, casi se me salía el corazón de la subida. Al llegar uno ve un boquete y esa es la entrada a las grutas, ahora hay unas escaleras de madera, pero antes había una micro escalera de caracol que aún puede verse pero ya no esta en uso.&lt;/p>
&lt;p>El espectáculo es maravilloso, miles de formaciones rocosas con las más caprichosas formas, el guía se encarga de mostrar como se han bautizado algunas, así conocimos al &lt;em>mostro&lt;/em>, a los reyes magos, a la veladora, el duende, etc. Con algunas si se requiere mucha imaginación, pero en otras el nombre adjudicado es más que evidente y el parecido asombroso. La humedad en el interior es de notarse, en un momento se me empañaron los lentes y puede ser un poco sofocante, aunque esto último creo que fue a mi pésima condición física.&lt;/p>
&lt;p>Al salir varios excursionistas se animaron a subirse a la tirolesa, el costo es de 150 pesos en un viaje de ida y vuelta, me hubiera animado a no se por lo que le pasó a &lt;em>&amp;ldquo;Paquito&amp;rdquo;&lt;/em>. Paquito en realidad era un &lt;em>&amp;ldquo;Pacote&amp;rdquo;&lt;/em> y se subio junto con un grupo de amigos (¿o eran familiares?), de ida el viaje fue sin problemas, pero de regreso paquito no terminó el recorrido y se quedó atorado poco antes de llegar al final.&lt;/p>
&lt;p>Los gritos de sus amigos (y de nosotros) fueron muchos y muy variados&amp;hellip; desde ¡Sube pelayo sube!, ¡SI SE PUEDE, SI SE PUEDE!, ¡Vamos paquito vamos!, al ver que no se movía ni para adelante ni para atrás.. ¡Que se tiiire, que se tireeee!, al final tuvieron que ir por él y remolcarlo hasta el final. Lo mejor fue que la siguiente persona que se subió a la mitad del recorrido lanzó el grito de ¡YO NO SOY PAQUITOOOOOOOOO! :)&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/01/El-Lejano-Oriente.jpg">
&lt;/figure>
&lt;p>De regreso llegamos a &lt;strong>El Lejano Oriente&lt;/strong> en Mapimí, que es una mezcla de Casa-Museo-Restaurante-Panadería, el lugar tiene en sus muros una buena colección de fotografías del lugar, del Puente de Ojuela, de Francisco Villa y una del Embajador de Irán!!! comiendo en el lugar. El pan de ahí esta buenísimo, se los recomiendo.&lt;/p>
&lt;p>Es una viaje que vale la pena para ver un espectáculo natural único, pero les advierto, no les garantizo que se puedan subir escaleras al otro día.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Me encontré un modulo de turismo del estado de Durango y me dicen que en temporada alta se organizan excursiones que incluyen transporte, la entrada a las grutas y alimentos a un muy buen precio y por un cantidad adicional un viajecito en la tirolesa.&lt;/p>
&lt;p>Aquí les dejo los teléfonos que vienen en los folletos:&lt;/p>
&lt;ul>
&lt;li>Oficina de turismo de Mapimí: 01 872 762 2107&lt;/li>
&lt;li>Dirección de turismo y cinematografía región Laguna: 01 871 714 1556&lt;/li>
&lt;li>Dirección de Fomento Económico y Turismo del municipio de Lerdo: 744 2968&lt;/li>
&lt;/ul></description></item><item><title>JoliOS 1.2 en la Acer AO751h</title><link>https://linuxmanr4.com/2012/01/06/jolios-1-2-en-la-acer-ao751h/</link><pubDate>Fri, 06 Jan 2012 15:17:55 +0000</pubDate><guid>https://linuxmanr4.com/2012/01/06/jolios-1-2-en-la-acer-ao751h/</guid><description>&lt;p>Una de mis primeras distros que probé cuando nuestra lapita llegó a la casa fue Jolicloud, pero el proyecto se actualizó y cambio de nombre, ahora es conocido como &lt;strong>Joli OS&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7151/6644670353%5F9820e923a2.jpg"
alt="jolios 1-2">&lt;figcaption>
&lt;p>jolios 1-2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hubiera seguido con Mint LXDE a no ser por un bug muy molesto que provocaba un *crash* en el sistema, al iniciar Chrome en algún momento al azar se reiniciaba el servidor X y me obligaba a iniciar sesión nuevamente. ¡Tache para Mint!.&lt;/p>
&lt;h2 id="conseguir-jolios">Conseguir JoliOS.
&lt;/h2>&lt;p>El proceso de instalación es bastante simple, bajar la ISO desde la página de &lt;a class="link" href="https://web.archive.org/web/20160301004406/http://www.jolicloud.com/" target="_blank" rel="noopener"
>JoliOS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, preparar la memoria USB para iniciar la computadora con ella con &lt;a class="link" href="https://linuxmanr4.com/2011/06/24/lili-linux-a-donde-vayas/" >Linux Live USB Creator&lt;/a>
y lo demás es zurcir y cantar. :)&lt;/p>
&lt;h2 id="problemas-con-el-hardware">Problemas con el hardware.
&lt;/h2>&lt;p>¡NO TIENE!, JoliOS tiene el mejor reconocimiento de hardware para este equipo, la red inalámbrica ¡Lista!, la fastidiosa tarjeta de video &lt;strong>GMA500&lt;/strong> ¡Lista!, los botoncitos de funciones para ajustar el brillo o el volumen ¡Listos!, no se puede pedir más, todo funciona desde el primer arranque.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7153/6644678755%5Faa893a71a3.jpg"
alt="Video a Pantalla completa">&lt;figcaption>
&lt;p>Video a Pantalla completa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="un-bug-con-chromium">Un bug con Chromium
&lt;/h2>&lt;p>Joli OS utiliza Chromium como navegador principal y para mostrar su curiosa interfaz de usuario, pero me pasó un detallito, poco después de iniciar Gmail o Google Plus el disco duro de la computadora entraba en una fase de muy alta actividad, tanto que hacía imposible usar el equipo. Revisé si existía algún proceso mal portado pero el consumo del CPU era bajo, apenas un 6%, eso si que estaba raro.&lt;/p>
&lt;p>Al parecer la versión de Chromium que tiene Joli OS tiene un bug, algo relacionado con una opción llamada &lt;strong>Habilitar protección contra phishing y software malintencionado&lt;/strong>, pero después de correr una actualización general del sistema se solucionó. Aunque siempre esta la opción de instalar &lt;strong>Firefox&lt;/strong> u &lt;strong>Opera&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm8.staticflickr.com/7013/6644674481%5Febeaf02da0.jpg"
alt="actualizacion del nickel-browser">&lt;figcaption>
&lt;p>actualizacion del nickel-browser&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otro detalle, buscando la forma de ejecutar el navegador desde la terminal pude detectar que el navegador no se llama de la forma usual, no es ni &lt;strong>chromium&lt;/strong> ni &lt;strong>google-chrome&lt;/strong>, en JoliOS se llama &lt;strong>nickel-browser&lt;/strong>.&lt;/p>
&lt;h2 id="tips-tips-tips">Tips, tips, tips.
&lt;/h2>&lt;p>JoliOS tiene una interfaz muy peculiar. Leí en un comentario de G+ que a una persona no le gustaba porque no se puede usar sin estar conectado a internet. Esto no es cierto, siempre esta a la mano un menú que aparece presionando la tecla &lt;strong>&amp;ldquo;Botón Derecho&amp;rdquo;&lt;/strong>, esa tecla que esta a la derecha de &lt;strong>Alt Gr&lt;/strong> y tiene forma de un menú con un puntero del mouse. De esa forma se puede iniciar cualquier programa instalado o explorar el sistema de archivos.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7003/6644679913%5F4c41278ac8.jpg"
alt="Menu alterno">&lt;figcaption>
&lt;p>Menu alterno&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Recién instalado no pude ver archivos de video, por eso instalé VLC con buenos resultados, los videos en pantalla completa se ven muy bien sin pausas o &lt;em>&amp;ldquo;arrastres&amp;rdquo;&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7153/6644678755%5Faa893a71a3.jpg"
alt="Video a Pantalla completa">&lt;figcaption>
&lt;p>Video a Pantalla completa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Prefiero hacer las actualizaciones desde la terminal, si no lo hubiera hecho de esta forma no se cuanto tiempo de hubiera tardado en corregir el error de Chromium.&lt;/p>
&lt;p>Sacar una cuenta de Joli OS tiene sus ventajas, como ya había instalado Jolicloud usé la misma cuenta para Joli OS, me identificó e inmediatamente se sincronizó y comenzó a instalar los programas que había elegido anteriormente. ¡Buen punto para Joli OS!&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>Después de probar varias versiones de Ubuntu y Mint, batallar varias veces con la configuración de la tarjeta de video, no poder ajustar el brillo de la pantalla, y que todo esto funcione desde el primer arranque con Joli OS hace la distribución de Linux ideal para este equipo.&lt;/p>
&lt;p>A lo mejor para los usuarios avanzados les puede ser rudimentario o demasiado &amp;ldquo;amigable&amp;rdquo;, pero en lo personal valoro el tiempo que me ahorra al no entretenerme con todos los ajustes y configuraciones para que funcione mi lapita.&lt;/p></description></item><item><title>Los subtítulos muestran letras raras</title><link>https://linuxmanr4.com/2011/12/30/los-subtitulos-muestran-letras-raras/</link><pubDate>Fri, 30 Dec 2011 18:43:57 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/30/los-subtitulos-muestran-letras-raras/</guid><description>&lt;p>Tengo una de esas televisiones con puerto USB y reproductor de medios que esta genial. Puedo ver fotos, escuchar música o reproducir mis películas y series favoritas.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7171/6601666801%5F9734636c2a.jpg"
alt="Codificación de los subtitulos incorrecta.">&lt;figcaption>
&lt;p>Codificación de los subtitulos incorrecta.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero tiene un pequeño problema, no muestra correctamente los subtítulos, la configuración de la tele solo  solo permite archivos que tengan una codificación &lt;strong>latin1 ( &lt;a class="link" href="https://es.wikipedia.org/wiki/ISO/IEC_8859-1" target="_blank" rel="noopener"
>iso-8859-1&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
)&lt;/strong> y la mayoría de los subtítulos que descargo están en &lt;a class="link" href="https://es.wikipedia.org/wiki/UTF-8" target="_blank" rel="noopener"
>&lt;strong>UTF-8&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Eso provoca que algunas letras se muestren de manera extraña, las eñes, los signos de admiración o interrogación, no es la gran cosa, pero si es algo molesto.&lt;/p>
&lt;h2 id="averiguar-la-codificación-de-un-archivo">Averiguar la codificación de un archivo.
&lt;/h2>&lt;p>Una forma sencilla de averiguar la codificación de un archivo es usando el comando &lt;em>file&lt;/em> de esta forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">file -bi archivo.srt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y la respuesta será similar a esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">text/plain; charset=utf-8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora estamos seguros que el formato del archivo es utf8.&lt;/p>
&lt;h2 id="el-comando-recode">El comando recode.
&lt;/h2>&lt;p>Cuando estoy en Linux o en windows no hay mayor problema, solo tengo que hacer un ajuste en el programa que estoy utilizando para reproducir el video. Pero en el televisor no tengo esa opción.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/codificacion-de-los-subtitulos-smplayer.png"
alt="Codificación de los subtítulos.">&lt;figcaption>
&lt;p>Codificación de los subtítulos.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Afortunadamente en Linux existe el comando &lt;a class="link" href="http://www.chiark.greenend.org.uk/doc/recode-doc/index.html#Top" target="_blank" rel="noopener"
>&lt;strong>recode&lt;/strong>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que permite cambiar la codificación del archivo en una sola línea.&lt;/p>
&lt;p>En mi caso quiero cambiar el archivo a &lt;strong>latin1&lt;/strong> así que la instrucción sería más o menos así &lt;strong>:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">recode ..l1 archivo.srt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y ya está listo para usarse, no más letras raras en los subtítulos.&lt;/p>
&lt;p>Para comprobar el cambio de codificación nuevamente usé el comando file y este fue el resultado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">text/plain; charset=iso-8859-1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Un detalle más, si al utilizar el comando &lt;strong>recode&lt;/strong> les aparece un mensaje como este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">recode: archivo.srt falló: Entrada inválida en el paso CHAR..ISO-8859-1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Entonces agrego un -f a la instrucción &lt;strong>recode&lt;/strong> para forzar la conversión y quedaría así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">recode -f ..l1 archivo.srt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>¡Y eso es todo!. Espero que este consejo les sea de utilidad.&lt;/p></description></item><item><title>Un acordeón para Luakit</title><link>https://linuxmanr4.com/2011/12/22/un-acordeon-para-luakit/</link><pubDate>Thu, 22 Dec 2011 17:27:06 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/22/un-acordeon-para-luakit/</guid><description>&lt;p>¿Se acuerdan de cuando en la escuela haciamos acordeones?, claro con fines puramente didácticos y como método de estudio.. si.. eso..&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7028/6554829791%5F710b45d739.jpg"
alt="Pantallazo acordeon Luakit">&lt;figcaption>
&lt;p>Pantallazo acordeon Luakit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Confieso que soy totalmente novato con &lt;strong>luakit&lt;/strong> y batallo un poco para recordar las órdenes más básicas.&lt;/p>
&lt;p>Por eso me hice un wallpaper a manera de acordeón.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7166/6554823481%5F326f33bfed.jpg"
alt="Luakit acordeon wallpaper">&lt;figcaption>
&lt;p>Luakit acordeon wallpaper&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo ajusto un poco el lugar de la pantalla de luakit, así de un vistazo recuerdo lo más fundamental, solo espero que no se me haga costumbre hacer &lt;em>acordioncitos&lt;/em>.&lt;/p></description></item><item><title>Luakit un navegador minimalista realmente ligero</title><link>https://linuxmanr4.com/2011/12/21/luakit-y-google-plus/</link><pubDate>Wed, 21 Dec 2011 12:00:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/21/luakit-y-google-plus/</guid><description>&lt;p>Hoy comencé la búsqueda de un navegador ligero, abrir páginas como Google Plus, Facebook o Gmail en Chrome me estaba saturando el equipo, el consumo de CPU se iba al tope y ni pensar hacer otra cosa durante esos picos.&lt;/p>
&lt;p>Al principio instalé Epiphany con buenos resultados, pero no podía abrir más de 4 ventanas al mismo tiempo porque de nuevo el uso del CPU se iba al tope. Luego intenté con Chrome más o menos con los mismos resultados. Expuse mi situación en Google Plus (ven, para eso sirven las redes sociales) y Jolsa me recomendó &lt;a class="link" href="https://luakit.github.io/" target="_blank" rel="noopener"
>Luakit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Jamás lo había escuchado, y me llamó la atención que era una descarga de unos cuantos kilobytes, ni siquiera llegaba a 1 mega, supuse que era algo realmente pobre. Pero OH Sorprais, me encontré con un navegadorcito ligero, muy minimalista, muy zen con buenas opciones. Centrado en el teclado (otro punto a su favor) y que utiliza algunos atajos de teclado que me son familiares.&lt;/p>
&lt;p>Todo iba bastante bien hasta que llegamos al punto de Google Plus. Pude iniciar sesión pero lo que me apareció fue un mensaje diciendo: &lt;strong>Tu navegador ya no se compatible&lt;/strong> y me ofreció varias opciones.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/El-navegador-ya-no-es-compatible.png">
&lt;/figure>
&lt;p>Lo dejé por un rato, y luego me dije a mi mismo&amp;hellip; mi mismo.. si luakit abre sin problemas gmail y facebook ¿Porque no puede abrir Google Plus?, entonces me dedique a buscar la forma de cambiar el identificador del navegador.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>Luakit tiene un archivo de configuración general en &lt;strong>globals.lua&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/xdg/luakit/globals.lua
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/globals.lua-etc-xdg-luakit-gedit%5F004.png"
alt="Editando el archivo de configuración de Luakit">&lt;figcaption>
&lt;p>Editando el archivo de configuración de Luakit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El truco fue reemplazar o comentar la linea que indica el &lt;em>useragent&lt;/em> por uno más amigable con Google Plus.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">globals.useragent = string.format(&amp;#34;Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0&amp;#34;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De pasada aproveché para cambiar la página de inicio modificando el mismo archivo.&lt;/p>
&lt;h2 id="pros-y-contras">Pros y contras.
&lt;/h2>&lt;p>Luakit tiene sus pros y sus contras, por ejemplo, tiene un bajísimo impacto en el CPU y puede resultar realmente útil en máquinas con mínimos recursos. Esta más centrado en el uso del teclado y esto puede ser una ventaja o desventaja dependiendo del enfoque. A mi me encantan las aplicaciones que se centran en el teclado, Synapse, Markdown, etc, pero a veces extraño el botón de retroceso o recarga o simplemente un corrector ortográfico mientras estoy escribiendo este artículo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/Luakit-Bajisimo-impacto-en-el-CPU.png"
alt="Luakit - Bajisimo impacto en el CPU">&lt;figcaption>
&lt;p>Luakit - Bajisimo impacto en el CPU&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Bueno mis 4 lectores, los dejo, es hora de la cena, más tarde buscaré una guía con los &lt;em>shortcuts&lt;/em> de teclado para Luakit. ¡Gracias Jolsa por el consejo! :)&lt;/p></description></item><item><title>Wicd en ubuntu con lxde</title><link>https://linuxmanr4.com/2011/12/19/wicd-en-ubuntu-con-lxde/</link><pubDate>Mon, 19 Dec 2011 16:39:38 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/19/wicd-en-ubuntu-con-lxde/</guid><description>&lt;p>Tengo una laptop con ya sus buenos megabytes recorridos. Tiene sus años pero todavía funciona de manera aceptable. Le instalé Ubuntu 11.04, pero para ser sinceros se pone rejega para ejecutar Gnome y por eso le instalé LXDE. Hasta aquí todo bien.&lt;/p>
&lt;p>El problema es que si instalo &lt;a class="link" href="http://lxde.org/" target="_blank" rel="noopener"
>LXDE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 no incluye un manejador de conexiones de redes inalámbricas y no me puedo conectar mediante la tarjeta wifi, solo con la tarjeta ethernet.&lt;/p>
&lt;p>Sabía del programa &lt;a class="link" href="http://wicd.sourceforge.net/" target="_blank" rel="noopener"
>Wicd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es muy útil porque no tiene dependencias gráficas así que funciona bien en Gnome, KDE, Lxde, Fluxbox y lo que le pongas.&lt;/p>
&lt;p>Para instalarlo fue suficiente con un:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install wicd
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/Pantallazo-Wicd-Network-Manager.png"
alt="Wicd Network Manager" width="674">&lt;figcaption>
&lt;p>Wicd Network Manager&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y todo debería de ser perfecto, si no fuera porque al intentar conectarme a una red con cifrado WPA2 me marca que no pudo validar la contraseña. Le moví a varias opciones del programa sin mucho éxito. Después de investigar un rato en internet la solución que funcionó fue…. &lt;em>pausa dramática&lt;/em> .. detener el servicio &lt;strong>Network Manager&lt;/strong> con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo service network-manager stop
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de hacer eso el problema desaparece.&lt;/p>
&lt;p>Claro que esto no ocurre en instalaciones que son específicamente con lxde, como &lt;a class="link" href="http://lubuntu.net/" target="_blank" rel="noopener"
>lubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o linux mint lxde.&lt;/p></description></item><item><title>VNC Client en Puppy Linux</title><link>https://linuxmanr4.com/2011/12/13/vnc-client-en-puppy-linux/</link><pubDate>Tue, 13 Dec 2011 17:12:44 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/13/vnc-client-en-puppy-linux/</guid><description>&lt;p>Hoy me tocó una de esas tareas que parece increíble que saque a flote. No estoy en mi lugar habitual de trabajo, se me ofreció conectarme remotamente a mi oficina para sacar un pendiente, lamentablemente no tenía una computadora disponible las demás las estaban utilizando.&lt;/p>
&lt;p>Encontré un equipo que funcionaba pero que no tiene disco duro, eso complica un poco las cosas, así que pedí prestando una computadora para descargar &lt;a class="link" href="https://puppylinux-woof-ce.github.io/" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y hacer una memoria USB de arranque. Hace rato que no la usaba y ví que hay nuevas versiones, usé la que dice Lucid Puppy (aka Lupu).&lt;/p>
&lt;p>Ahora vino lo difícil, conseguir el paquete con el vncviewer y que funcionara correctamente con mi versión de puppy.&lt;/p>
&lt;p>Buscando en los foros me encontré con este paquete vnc-4_1_3-x86.pet en los foros de discusión de Puppy en el tema &lt;a class="link" href="http://www.murga-linux.com/puppy/viewtopic.php?t=60878" target="_blank" rel="noopener"
>RealVNC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Descargué el paquete y al hacer click sobre él inicia el proceso de instalación. Cuando da el mensaje de que estaba listo, solo tuve que abrir una terminal y teclear el comando y la dirección IP del equipo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">vncviewer xxx.xxx.xxx.xxx
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/12/image-1.jpg"
alt="Puppy Linux ejecutando el VNC Client vncviewer">&lt;figcaption>
&lt;p>Puppy Linux ejecutando el VNC Client vncviewer&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y listo, no se ve de maravilla, pero está haciendo el trabajo. Puppy es una distro que te puede sacar de varios problemas, de hecho estoy escribiendo este artículo desde Puppy :)&lt;/p>
&lt;h3 id="otros-artículos-de-interés">Otros artículos de interés
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Como instalar Manjaro Linux paso a paso, guía para principiantes.&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/" >Configurar una impresora LPD en Windows para imprimir desde Linux&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2021/07/23/manjaro-pamac-yay/" >Nuevas formas de actualizar Manjaro, pamac y yay entran al juego&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Configurar la tarjeta GMA500 para dos monitores</title><link>https://linuxmanr4.com/2011/12/08/configurar-la-tarjeta-gma500-para-dos-monitores/</link><pubDate>Thu, 08 Dec 2011 12:30:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/08/configurar-la-tarjeta-gma500-para-dos-monitores/</guid><description>&lt;p>Tengo una pequeña notebook Acer Aspire One AO751h y recientemente conseguí otro monitor para usar mi equipo más cómodamente en casa.&lt;/p>
&lt;p>El problema es que al conectarlo no funcionó, probé presionando las teclas &lt;strong>Fn + F5&lt;/strong> sin ningún resultado.&lt;/p>
&lt;p>Para evitar malos entendidos mi configuración es la siguiente:&lt;/p>
&lt;ul>
&lt;li>Equipo Acer Aspire One AO751h con tarjeta gráfica GMA500&lt;/li>
&lt;li>Driver EMGD instalado siguiendo estas indicaciones Acer Aspire One AO751h con Linux Mint 11&lt;/li>
&lt;li>Linux Mint 11 LXDE.&lt;/li>
&lt;/ul>
&lt;p>LXDE tiene un comando para revisar la configuración de los monitores llamado &lt;strong>lxrandr&lt;/strong> pero solo me muestra la configuración de un solo monitor.&lt;/p>
&lt;figure>&lt;img src="http://farm7.staticflickr.com/6044/6380941513%5F1a767f723b.jpg"
alt="lxrandr - Mostrar ajustes">&lt;figcaption>
&lt;p>lxrandr - Mostrar ajustes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Supuse que tenía que modificar el archivo &lt;strong>xorg.conf&lt;/strong> , y después de investigar un poco en google probé modificando este archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /usr/share/X11/xorg.conf.d/10-emgd.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y lo reemplacé con esta información, pero por favor, hagan un respaldo primero del archivo solo por precaución.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Section &amp;#34;Module&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;dbe&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;dri&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;dri2&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;record&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;extmod&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Load &amp;#34;glx&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Monitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;MainMonitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ModelName &amp;#34;LCD Panel 1366×768&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Screen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;MainScreen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Device &amp;#34;MainDevice&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Monitor &amp;#34;MainMonitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> SubSection &amp;#34;Display&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Depth 24
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Modes &amp;#34;1366×768&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> EndSubSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Device&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;MainDevice&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Driver &amp;#34;emgd&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Driver &amp;#34;vesa&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> VendorName &amp;#34;Intel(R) DEG&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BoardName &amp;#34;Embedded Graphics&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BusID &amp;#34;0:2:0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> VideoRam 32768
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;PcfVersion&amp;#34; &amp;#34;1792&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ConfigId&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/name&amp;#34; &amp;#34;lvds-display&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/PortOrder&amp;#34; &amp;#34;24000&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/VideoRam&amp;#34; &amp;#34;32768&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DisplayConfig&amp;#34; &amp;#34;2&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DisplayDetect&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/Accel&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DRI&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DRI2&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/XVideo&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/XVideoBlend&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/TearFB&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/ShadowFB&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/SWCursor&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/General/name&amp;#34; &amp;#34;LVDS&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/General/Rotation&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/General/Edid&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/Attr/70&amp;#34; &amp;#34;100&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/Attr/71&amp;#34; &amp;#34;20300&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/Attr/72&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/FPInfo/BkltMethod&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/FPInfo/BkltEnable&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/2/General/name&amp;#34; &amp;#34;SVDO&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/2/General/Edid&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/2/General/EdidAvail&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/2/General/EdidNotAvail&amp;#34; &amp;#34;7&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Secondary (for dual-head only) display
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Monitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;VGAMonitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ModelName &amp;#34;VGA Output&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Screen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;VGAScreen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Device &amp;#34;VGADevice&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Monitor &amp;#34;VGAMonitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> SubSection &amp;#34;Display&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Depth 24
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Modes &amp;#34;1600×900&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> EndSubSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Device&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;VGADevice&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Driver &amp;#34;emgd&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> VendorName &amp;#34;Intel(R) DEG&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BoardName &amp;#34;Embedded Graphics&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BusID &amp;#34;0:2:0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;ServerLayout&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;Dual Head Layout&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen &amp;#34;MainScreen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen &amp;#34;VGAScreen&amp;#34; RightOf &amp;#34;MainScreen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;DRI&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Mode 0666
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;ServerFlags&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;AutoAddDevices&amp;#34; &amp;#34;false&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="10-emgdconf">10-emgd.conf
&lt;/h2>&lt;p>Estos son los resultados&amp;hellip;&lt;/p>
&lt;figure>&lt;img src="http://farm7.staticflickr.com/6091/6380941495%5F197304249b.jpg"
alt="2 monitores, el lcd y uno externo con la tarjeta GMA500">&lt;figcaption>
&lt;p>2 monitores, el lcd y uno externo con la tarjeta GMA500&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/xpNRCACyYb8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Creo que todavía se puede mejorar un poco la configuración, les mantendré al tanto de las modificaciones.&lt;/p>
&lt;h3 id="actualización-mostrar-solo-el-monitor-externo">Actualización: Mostrar solo el monitor externo.
&lt;/h3>&lt;p>Para mostrar solamente el monitor externo cambiamos el valor de &lt;strong>DisplayConfig&lt;/strong> a &lt;strong>1&lt;/strong> de la siguiente forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Option &amp;#34;ALL/1/General/DisplayConfig&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="otros-artículos-de-interés">Otros artículos de interés
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Como instalar Manjaro Linux paso a paso, guía para principiantes.&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2018/05/30/impresora-lpd-windows-linux/" >Configurar una impresora LPD en Windows para imprimir desde Linux&lt;/a>
&lt;/li>
&lt;li>&lt;a class="link" href="https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/" >Mis inicios con pfSense, comienza la aventura ¡Ahora sin Linux!&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Rooteando el Huawei U8150 IDEOS de Unefon</title><link>https://linuxmanr4.com/2011/12/03/rooteando-el-huawei-u8150-ideos-de-unefon/</link><pubDate>Sat, 03 Dec 2011 12:00:25 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/03/rooteando-el-huawei-u8150-ideos-de-unefon/</guid><description>&lt;p>Después de pensarlo mucho (ok no tanto) decidí instalarle un &lt;em>custom rom&lt;/em> a mi Huawei IDEOS U8150. Ya tengo un tiempecito con él y creo que todavía le puedo sacar más provecho.&lt;/p>
&lt;p>Vi las las instrucciones para hacerlo en los foros de &lt;a class="link" href="http://forum.xda-developers.com/wiki/Huawei_U8150_IDEOS" target="_blank" rel="noopener"
>XDA Developers Huawei U8150 IDEOS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, este sitio acumula información de una gran cantidad de celulares y es mi primer parada cuando quiero hacer este tipo de cosas.&lt;/p>
&lt;p>¡Manos a la obra!&lt;/p>
&lt;p>Lo primero es descargar el software &lt;a class="link" href="https://web.archive.org/web/20190902202902/https://forum.xda-developers.com/showthread.php?p=9109591#post9109591" target="_blank" rel="noopener"
>Z4Root&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Conectamos el teléfono a la computadora y &lt;strong>Activamos el almacenamiento USB&lt;/strong>.&lt;/p>
&lt;p>Activar el almacenamiento USB&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7030/6444302485%5F874b93dd52%5Fm.jpg"
alt="Activar el almacenamiento USB">&lt;figcaption>
&lt;p>Activar el almacenamiento USB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Copiamos el archivo que descargamos a la memoria microsd del teléfono.&lt;/p>
&lt;p>Desconectamos el teléfono de la computadora.&lt;/p>
&lt;p>Vamos al menú &lt;strong>Configuración&lt;/strong> , &lt;strong>Aplicaciones&lt;/strong> y activamos la opción que dice &lt;strong>Fuentes desconocidas&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7024/6444302077%5F61b0c43b14.jpg"
alt="Fuentes desconocidas">&lt;figcaption>
&lt;p>Fuentes desconocidas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para iniciar la instalación de la aplicación tendremos que usar un programa como el &lt;a class="link" href="https://market.android.com/details?id=com.metago.astro" target="_blank" rel="noopener"
>Astro file manager&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para seleccionarlo e instalarlo.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7023/6444301129%5F0e600736f2%5Fm.jpg"
alt="Ejecutando z4root con Astro File Manager">&lt;figcaption>
&lt;p>Ejecutando z4root con Astro File Manager&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez instalado, lo que sigue es ejecutarlo haciendo clic sobre él y presionamos el botón &lt;strong>Permanent root&lt;/strong>, probablemente sea necesario activar la opción de &lt;strong>Depuración de USB&lt;/strong> en el menú &lt;strong>Aplicaciones&lt;/strong>, &lt;strong>Desarrollo&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7035/6444300337%5Fbbef7b5bc6%5Fm.jpg"
alt="Permanent Root">&lt;figcaption>
&lt;p>Permanent Root&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7016/6444299683%5F343f19a930%5Fm.jpg"
alt="Depuración de USB">&lt;figcaption>
&lt;p>Depuración de USB&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7153/6444298983%5F5b04422b8b.jpg"
alt="Z4root en acción">&lt;figcaption>
&lt;p>Z4root en acción&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El teléfono se va a reiniciar, es perfectamente normal.. turi ruriiiii.. tic tac.&lt;/p>
&lt;p>Si todo salio bien al volver a ejecutar el programa Z4Root verán un botón nuevo &lt;strong>Un-root&lt;/strong>. ¡Excelente!&lt;/p>
&lt;p>Listo teléfono rooteado.&lt;/p>
&lt;figure>&lt;img src="http://farm8.staticflickr.com/7017/6444298531%5F9cdb96ee14.jpg"
alt="Listo teléfono rooteado.">&lt;figcaption>
&lt;p>Listo teléfono rooteado.&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Mejorando la duración de la batería con Jupiter</title><link>https://linuxmanr4.com/2011/12/01/mejorando-la-duracion-de-la-bateria-con-jupiter/</link><pubDate>Thu, 01 Dec 2011 12:00:01 +0000</pubDate><guid>https://linuxmanr4.com/2011/12/01/mejorando-la-duracion-de-la-bateria-con-jupiter/</guid><description>&lt;figure>&lt;img src="http://farm8.staticflickr.com/7018/6433392803%5F13aea69393.jpg"
alt="Jupiter Power Saver">&lt;figcaption>
&lt;p>Jupiter Power Saver&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Desde hace varios días tenía la intención de instalar Jupiter en mi lapita. El objetivo aumentar la duración de la batería aunque puede hacer otras cosas.&lt;/p>
&lt;p>No sabía si funcionaría en mi instalación de &lt;strong>Linux Mint LXDE&lt;/strong>, así que solo había una forma de averiguarlo, en una terminal tecleamos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo add-apt-repository ppa:webupd8team/jupiter
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get install jupiter
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hasta ahorita no he notado un aumento notable en el rendimiento de la batería, aunque hace los ajustes pertinentes, por ejemplo si conecto el equipo a la corriente eléctrica automáticamente cambia a &lt;strong>Maximum Performance&lt;/strong> y si la desconecto cambia a &lt;strong>Power Saver&lt;/strong>.&lt;/p>
&lt;p>Pero se gana su lugar por hacer otras cosas que en especialmente en esta versión de Mint no son tan sencillas, como cambiar la resolución de la pantalla y su orientación, activar o desactivar el Wifi o el touchpad o especificar las salidas de video a solamente el monitor externo o ambos monitores.&lt;/p>
&lt;p>Porque no lo prueban y me dicen si les funciona.&lt;/p></description></item><item><title>Cambiar las imágenes a otro dominio con SQL en Wordpress</title><link>https://linuxmanr4.com/2011/11/30/imagenes-sql-wordpress/</link><pubDate>Wed, 30 Nov 2011 19:35:20 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/30/imagenes-sql-wordpress/</guid><description>&lt;p>Ahora que cambié de &lt;strong>blogsome&lt;/strong> a &lt;strong>Wordpress&lt;/strong> muchas de las imágenes que estaban hospedadas en ese sitio quedaron mal referenciadas y por lo tanto no se muestran. Aprovechando la duda que dejo &lt;a class="link" href="https://linuxmanr4.com/2011/11/26/migrando-de-blogsome-a-wordpress/#comment-27023" >Warren Keffer&lt;/a>
en uno de los comentarios, esta es la forma de migrar las imágenes mediante SQL.&lt;/p>
&lt;p>No es muy complicado hacer el cambio, lo único que hay que hacer es una búsqueda sustitución con la función &lt;strong>REPLACE&lt;/strong> de MySQL.&lt;/p>
&lt;p>Primero es necesario copiar todas las imágenes a su nuevo dominio, en mi caso hice una carpeta dentro de mi instalación de wordpress.&lt;/p>
&lt;p>Busqué una imagen errónea y vi como estaba estructurado el enlace que era muy similar a este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">src=&amp;#39;/images/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El objetivo es sustituirlo por este otro:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;/wp-content/uploads/images/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La instrucción SQL quedaría más o menos así:&lt;/p>
&lt;p>UPDATE wp_posts SET post_content =REPLACE(post_content,&amp;ldquo;src=&amp;rsquo;/images/&amp;rdquo;,&amp;ldquo;src=&amp;rsquo;/wp-content/uploads/images/&amp;rdquo;);&lt;/p>
&lt;p>Para ejecutar esta instrucción utilicé el servicio de &lt;a class="link" href="http://www.phpmyadmin.net/home_page/index.php" title="Administrador de Mysql escrito en PHP"
target="_blank" rel="noopener"
>phpMyAdmin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que ofrece mi servicio de hosting.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6432118387/" title="Ejecuntando la instrucción SQL por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.staticflickr.com/6101/6432118387_c5d7023e7e.jpg"
loading="lazy"
alt="Ejecuntando la instrucción SQL"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Una vez que ejecuté la consulta la gran mayoría de mis imágenes estrenaron dominio nuevo y se muestran correctamente.&lt;/p></description></item><item><title>Número con letra, una función para LibreOffice Calc</title><link>https://linuxmanr4.com/2011/11/29/numero-con-letra-libreoffice-calc/</link><pubDate>Tue, 29 Nov 2011 15:14:55 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/29/numero-con-letra-libreoffice-calc/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/11/numero-con-letra.jpg" alt="Featured image of post Número con letra, una función para LibreOffice Calc" />&lt;p>Estuve buscando una función para obtener un número con letra usando una función para &lt;strong>LibreOffice Calc&lt;/strong>. Para Excel existen varias pero para &lt;strong>Calc&lt;/strong> son un poco más difíciles de encontrar.&lt;/p>
&lt;p>Luego me acordé del proyecto &lt;strong>Factura Libre&lt;/strong> que ya incluye una función para hacerlo. &lt;a class="link" href="https://linuxmanr4.com/2019/07/05/buscar-y-eliminar-archivos-en-una-sola-linea-con-find/" >Sólo necesitaba buscar&lt;/a>
el código y pegarlo en un proyecto nuevo.&lt;/p>
&lt;p>Para lograrlo hay que seguir estas instrucciones o descargar el ejemplo.&lt;/p>
&lt;h2 id="dónde-agregar-el-código-de-la-función">Dónde agregar el código de la función.
&lt;/h2>&lt;p>Vamos al menú &lt;strong>Herramientas&lt;/strong> &amp;gt;&amp;gt; &lt;strong>Macros&lt;/strong> &amp;gt;&amp;gt; &lt;strong>Organizar macros&lt;/strong> &amp;gt;&amp;gt; &lt;strong>BASIC…&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/BASIC.png"
alt="Agregar una macro nueva en BASIC.">&lt;figcaption>
&lt;p>Agregar una macro nueva en BASIC.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Seleccionamos la hoja de cálculo actual, presionamos el botón &lt;strong>Nuevo&lt;/strong> y le ponemos un nombre a nuestro módulo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/modulo-nuevo.jpg"
alt="Agregamos un módulo nuevo.">&lt;figcaption>
&lt;p>Agregamos un módulo nuevo.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Luego en la ventana que aparece pegamos el código de la función.&lt;/p>
&lt;h2 id="el-código-de-la-función-para-obtener-el-número-con-letra">El código de la función para obtener el número con letra.
&lt;/h2>&lt;p>Es importante eliminar el código por default del módulo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">REM ***** BASIC *****
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Sub Main
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">End Sub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora podemos copiar y pegar el código de la función en el módulo que acabamos de crear.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Option&lt;/span> &lt;span class="n">Explicit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;*************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; FUNCION PARA CONVERTIR NUMEROS A LETRAS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Copyright (C) 2005 Mauricio Baeza Servin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Véase la Licencia Pública General de GNU para más detalles.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; Mauricio Baeza - mauricio@correolibre.net&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;*************************************************************************************************&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Hago uso de variables bastante explicitas para facilitar la lectura del codigo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Los comentarios cumplen y complementan la misma funcion&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Ultima modificacion Octubre del 2002&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Argumentos:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Numero = Valor que deseamos convertir en texto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Moneda = es el nombre de la moneda a mostrar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Fraccion_Letras = Verdadero para que la fraccion de la moneda&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; tambien la convierta a letras&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Fraccion = Es el nombre de la fraccion de la moneda&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Texto_Inicial = Cualquier texto que quieras al principio del resultado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Texto_Final = Cualquier texto que quieras al finla del resultado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Estilo = Formato de salida&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; 1 = MAYUSCULAS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; 2 = minusculas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39; 3 = Tipo Titulo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Los valores negativos los convierte a positivos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;El valor minimo en 0, el valor maximo es 9,999,999,999,999.99&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Function&lt;/span> &lt;span class="n">Numeros_Letras&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">Numero&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Double&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Moneda&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Fraccion_Letras&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Boolean&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Fraccion&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Texto_Inicial&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Texto_Final&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">Estilo&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">NumTmp&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">intFraccion&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Texto_Inicial&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Convertimos a positivo si es negativo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Numero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Abs&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Numero&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">NumTmp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Numero&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;000000000000000.00&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">Numero&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;cero &amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Moneda&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">NumLet&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Left&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">15&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Or&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Moneda&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ElseIf&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Or&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;de &amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Moneda&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Moneda&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34; &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">Fraccion_Letras&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">intFraccion&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Right&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">intFraccion&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;con cero &amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fraccion&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;con un &amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Fraccion&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;con &amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">NumLet&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Right&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)))&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fraccion&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Right&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">Texto_Final&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">Estilo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">UCase&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">strLetras&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">LCase&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">strLetras&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strLetras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span> &lt;span class="s1">&amp;#39;StrConv(strLetras, vbProperCase)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Numeros_Letras&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strLetras&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Function&lt;/span> &lt;span class="n">NumLet&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">Numero&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Double&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">NumTmp&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">co1&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">co2&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">pos&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">dig&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">letra1&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">letra2&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">letra3&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">Leyenda&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Dim&lt;/span> &lt;span class="n">TFNumero&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">NumTmp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Numero&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;000000000000000&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="s1">&amp;#39;Le da un formato fijo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">co1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">TFNumero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Para extraer tres digitos cada vez&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Do&lt;/span> &lt;span class="n">While&lt;/span> &lt;span class="n">co1&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">co2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Do&lt;/span> &lt;span class="n">While&lt;/span> &lt;span class="n">co2&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Extrae un digito cada vez de izquierda a derecha&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">dig&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pos&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">co2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">dig&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">dig&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">dig&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">co2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">co2&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pos&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Loop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra3&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Centena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">uni&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">dec&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cen&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Decena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">uni&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">dec&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Unidad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">uni&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">dec&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">co1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;billon &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ElseIf&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;billones &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">And&lt;/span> &lt;span class="n">Val&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">NumTmp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;mil millones &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ElseIf&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;mil &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">And&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;millon &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ElseIf&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Or&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Or&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;millones &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;mil &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">co1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">co1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">TFNumero&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">TFNumero&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">letra3&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">letra2&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">letra1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Leyenda&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Leyenda&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">letra3&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Loop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">NumLet&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">TFNumero&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Function&lt;/span> &lt;span class="n">Centena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">cen&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">cen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cien &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;ciento &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;doscientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;trescientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cuatrocientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;quinientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;seiscientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;setecientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;ochocientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;novecientos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="n">Else&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Centena&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cTexto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Function&lt;/span> &lt;span class="n">Decena&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">dec&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">uni&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;diez &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;once &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;doce &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;trece &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;catorce &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;quince &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">6&lt;/span> &lt;span class="n">To&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;dieci&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;veinte &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ElseIf&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;veinti&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;treinta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cuarenta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cincuenta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;sesenta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;setenta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;ochenta &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;noventa &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="n">Else&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">And&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="n">Then&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;y &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Decena&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cTexto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Function&lt;/span> &lt;span class="n">Unidad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">uni&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ByVal&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">dec&lt;/span> &lt;span class="o">&amp;lt;&amp;gt;&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">uni&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;un &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;dos &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;tres &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cuatro &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;cinco &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="n">Case&lt;/span> &lt;span class="n">uni&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;seis &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;siete &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;ocho &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Case&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cTexto&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;nueve &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">Select&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Unidad&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cTexto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;Funcion que convierte al plural el argumento pasado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Private&lt;/span> &lt;span class="n">Function&lt;/span> &lt;span class="n">Plural&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ByVal&lt;/span> &lt;span class="n">Palabra&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">pos&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="n">Integer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dim&lt;/span> &lt;span class="n">strPal&lt;/span> &lt;span class="n">As&lt;/span> &lt;span class="ne">String&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">Len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Trim&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Palabra&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pos&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">InStr&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;aeiou&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Right&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Palabra&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">If&lt;/span> &lt;span class="n">pos&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="n">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strPal&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Palabra&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;s&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">strPal&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Palabra&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="s2">&amp;#34;es&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">End&lt;/span> &lt;span class="n">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Plural&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">strPal&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">End&lt;/span> &lt;span class="n">Function&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/codigo-de-la-macro-basic-libreoffice.jpg">
&lt;/figure>
&lt;h2 id="ajustando-la-salida-de-la-función-para-méxico">Ajustando la salida de la función para México
&lt;/h2>&lt;p>La función tiene 7 parámetros.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Numero&lt;/strong> = Valor que deseamos convertir en texto&lt;/li>
&lt;li>&lt;strong>Moneda&lt;/strong> = es el nombre de la moneda a mostrar&lt;/li>
&lt;li>&lt;strong>Fraccion_Letras&lt;/strong> = Para que la fracción de la moneda tambien la convierta a letras. 1 es VERDADERO, 0 (cero) es FALSO.&lt;/li>
&lt;li>&lt;strong>Fraccion&lt;/strong> = Es el nombre de la fraccion de la moneda&lt;/li>
&lt;li>&lt;strong>Texto_Inicial&lt;/strong> = Cualquier texto que quieras al principio del resultado&lt;/li>
&lt;li>&lt;strong>Texto_Final&lt;/strong> = Cualquier texto que quieras al final del resultado&lt;/li>
&lt;li>&lt;strong>Estilo&lt;/strong> = Formato de salida 1 = MAYÚSCULAS, 2 = minúsculas , 3 = Tipo Titulo&lt;/li>
&lt;/ul>
&lt;p>Los valores negativos los convierte a positivos. El valor minimo es 0, el valor maximo es 9,999,999,999,999.99&lt;/p>
&lt;p>Veamos, una fórmula como está dará el siguiente resultado:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">=NUMEROS_LETRAS(B4, &amp;#34;peso&amp;#34;,0, &amp;#34;centavos&amp;#34;, &amp;#34;Cantidad: &amp;#34;, &amp;#34;/100 M.N.&amp;#34;,1)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CANTIDAD: UN MIL DOSCIENTOS TREINTA Y CINCO PESOS 15/100 M.N.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="descarga-una-hoja-de-cálculo-de-ejemplo">Descarga una hoja de cálculo de ejemplo.
&lt;/h2>&lt;p>Si lo desean pueden descargar esta hoja de cálculo que muestra como se usa la función &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2011/11/LibreOffice-N%c3%bameros-a-Letras.ods.zip" >LibreOffice Números a Letras.ods&lt;/a>
&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/funcion-convertir-numero-letra-libreoffice.jpg"
alt="La función muestra la cantidad con letra con diferentes opciones de personalización.">&lt;figcaption>
&lt;p>La función muestra la cantidad con letra con diferentes opciones de personalización.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="revisando-las-opciones-de-seguridad">Revisando las opciones de seguridad
&lt;/h2>&lt;p>Un detalle final, si descarga el archivo de ejemplo, es probable que reciba una &lt;strong>alerta de seguridad&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/04/alerta-seguridad-macros-libreoffice.png">
&lt;/figure>
&lt;p>Es normal porque es cierto, el archivo contiene una macro. Solo tiene que presionar el botón de &lt;strong>Activar macros&lt;/strong> para que funcione o si es usted muy desconfiado, pues a copiar y pegar el código.&lt;/p>
&lt;p>Si vas a usar frecuentemente el archivo este mensaje puede parecer un poco molesto. Puedes ir a &lt;strong>Opciones&lt;/strong> - &lt;strong>LibreOffice&lt;/strong> - &lt;strong>Seguridad&lt;/strong> - &lt;strong>Seguridad de macros&lt;/strong> y tienes dos opciones. Bajar el nivel de seguridad o lo que yo hago, agregar una carpeta a las &lt;strong>Ubicaciones de archivos de confianza&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/04/ubicaciones-de-archivos-de-confianza.png">
&lt;/figure>
&lt;p>Muchas Gracias a &lt;a class="link" href="https://gitlab.com/mauriciobaeza" target="_blank" rel="noopener"
>Mauricio Baeza&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
por liberar este código bajo la licencia GPL.&lt;/p></description></item><item><title>Migrando de blogsome a wordpress</title><link>https://linuxmanr4.com/2011/11/26/migrando-de-blogsome-a-wordpress/</link><pubDate>Sun, 27 Nov 2011 04:15:44 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/26/migrando-de-blogsome-a-wordpress/</guid><description>&lt;h2 id="llegó-el-momento-del-cambio">Llegó el momento del cambio.
&lt;/h2>&lt;p>Durante muchos años recibí de blogsome un buen servicio, realmente pocas fallas y nada que una visita a los foros de soporte no resolviera. Pero todo llega a su fin, el servicio se despide de la red y creo que fue en el momento justo, ya era necesario para mi avanzar a las bondades que ofrece las versiones más recientes de wordpress.&lt;/p>
&lt;p>El cambio no ha sido sencillo, en blogsome ya tenía todo muy &lt;em>tuneado&lt;/em> producto de varios años de usar la plataforma, ahora me encuentro con que todo esta muy automatizado y las tareas más complicadas las hacen los &lt;em>plugins&lt;/em>, pero no me quejo, solo que ahora todo es muy diferente.&lt;/p>
&lt;h2 id="respaldando-la-información">Respaldando la información.
&lt;/h2>&lt;p>Primero lo más importante, recuperar la información almacenada, para eso hay 3 opciones en el menú &lt;strong>Backup&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6409207687/" title="manage - backup por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm8.staticflickr.com/7015/6409207687_d161c010b4.jpg"
loading="lazy"
alt="manage - backup"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;ul>
&lt;li>&lt;strong>El respaldo sin imágenes&lt;/strong>, que es básicamente un vaciado del la base de datos y la personalización de las plantillas.&lt;/li>
&lt;li>&lt;strong>El respaldo con imágenes&lt;/strong>, que es lo mismo que lo anterior más la descarga de todas las imágenes que hayamos subido a blogsome.&lt;/li>
&lt;li>&lt;strong>El archivo WXR&lt;/strong> que fue mi archivo salvador, contienen un respaldo de todos los artículos, categorías y comentarios del blog, pero no el respaldo de las plantillas.&lt;/li>
&lt;/ul>
&lt;p>Los dos primeros descargan un archivo PHP, lo que les recomiendo es que descarguen los archivos con la opción de &lt;em>Guardar enlace como…&lt;/em> y al final le cambien la extensión al archivo que descargaron por .zip ya que es un respaldo comprimido.&lt;/p>
&lt;h2 id="subir-el-respaldo-a-wordpress">Subir el respaldo a Wordpress.
&lt;/h2>&lt;p>Una vez que tengamos el respaldo, subiremos la información a Wordpress usando el archivo WXR, es la opción que ofrece menos complicaciones.&lt;/p>
&lt;p>En las sección de &lt;strong>Tools&lt;/strong> buscamos la herramienta &lt;strong>Import&lt;/strong> - &lt;strong>Wordpress&lt;/strong> &lt;a class="link" href="http://www.flickr.com/photos/linuxman/6409207151/" title="Wordpress import tool por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm8.staticflickr.com/7002/6409207151_363e3fd9a7.jpg"
loading="lazy"
alt="Wordpress import tool"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Ahí dice que el límite máximo para el archivo es de 64 MB, pero yo tuve problemas para subir mi respaldo que 16 MB. Me marcaba un error raro con la memoria y un número que no ayudaba mucho.&lt;/p>
&lt;p>Si tienen problemas para subir su archivo de respaldo pueden partirlo en partes mucho más manejables con el programa &lt;a class="link" href="http://www.rangerpretzel.com/content/view/20/1/" title="WXR file splitter"
target="_blank" rel="noopener"
>WXR File Splitter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, por ejemplo, mis problemas desaparecieron cuando le indique al programa que lo dividiera en pedazos de 5 MB. Eso me dio como resultado 4 archivos que fui subiendo uno por uno.&lt;/p>
&lt;h2 id="instalando-soporte-para-markdown">Instalando soporte para Markdown.
&lt;/h2>&lt;p>En mi caso tengo muchos artículos escritos usando &lt;a class="link" href="http://es.wikipedia.org/wiki/Markdown" title="Articulo de la wikipedia sobre Markdown"
target="_blank" rel="noopener"
>Markdown&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(incluso este mismo artículo), una opción que activé recientemente en blogsome pero que wordpress no la incluye de forma predeterminada. Para eso fue necesario instalar el plugin &lt;a class="link" href="http://mitcho.com/code/" title="Sitio del desarrollador de este plugin para wordpress"
target="_blank" rel="noopener"
>Markdown for WordPress and bbPress&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y asunto arreglado.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>Todavía estoy aprendiendo muchas cosas sobre este cambio, en unos días he hecho montones de ajustes, me falta la traducción de la plantilla pero lo más importante, los datos, ya están a salvo.&lt;/p></description></item><item><title>Script en Python para averiguar la contraseña por default de los Infinitum Huawei</title><link>https://linuxmanr4.com/2011/11/18/script-en-python-para-averiguar-la-contrasena-por-default-de-los-infinitum-huawei/</link><pubDate>Fri, 18 Nov 2011 19:11:12 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/18/script-en-python-para-averiguar-la-contrasena-por-default-de-los-infinitum-huawei/</guid><description>&lt;p>Estos temas son siempre polémicos y la conclusión es la misma, la seguridad de los modems Infinitums no es la más óptima que digamos.&lt;/p>
&lt;p>De hecho siempre me he preguntado porque siempre eligen contraseñas del tipo WEP que son tan endebles y por lo mismo nada recomendables.&lt;/p>
&lt;p>Anteriormente para poder &lt;em>“auditar”&lt;/em> la seguridad de una red wifi se hacia circo, maroma y teatro. Iniciar con un cd de linux, comenzar una captura de paquetes, aplicar un comando y después de unos 10 minutos la contraseña era revelada.&lt;/p>
&lt;p>Pero este método es absurdamente más sencillo. Hace tiempo que los amigos de &lt;a class="link" href="http://www.websec.mx/" target="_blank" rel="noopener"
>Websec&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se dieron cuenta de que los modems de la marca Huawei modelo HG520b, HG520c y HG530 generaban su &lt;strong>SSID&lt;/strong> y la contraseña WEP basandose en la &lt;a class="link" href="http://es.wikipedia.org/wiki/Direcci%C3%B3n_MAC" target="_blank" rel="noopener"
>Mac Address&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
del dispositivo. Desarrollaron un script en python que hace la misma función, escribieron un excelente articulo &lt;a class="link" href="http://www.websec.mx/blog/ver/mac2wepkey_huawei" target="_blank" rel="noopener"
>mac2wepkey - Huawei generador de WEP default&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
explicando todos los detalles técnicos.&lt;/p>
&lt;h2 id="cómo-obtener-la-mac-address">¿Cómo obtener la Mac Address?
&lt;/h2>&lt;p>En linux podemos usar programas como &lt;strong>inSSIDer&lt;/strong> para averiguar la MAC Address o incluso manejadores de red como WiCD también muestran esta información.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5100/5390877233%5Fe66b182594.jpg"
alt="inssider">&lt;figcaption>
&lt;p>inssider&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ejecutar-el-script-en-linux">Ejecutar el script en Linux
&lt;/h2>&lt;p>Ya con la mac address en mano, lo que sigue es ejecutar el script, en linux es muy sencillo porque la gran mayoría de las distribuciones tienen instalado python así que lo que sigue es abrir una terminal y teclear algo más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># mac2wepkey Huawei HG520 by hochoa@websec.mx - 12/2010&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">i&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a0&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a1&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a2&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a3&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a4&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a5&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a6&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a7&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a8&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a9&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a10&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a11&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a12&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a13&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a14&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a15&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n1&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n2&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n3&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n4&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n5&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n6&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n7&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n8&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n9&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n10&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n11&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n12&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n13&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n14&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n15&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n16&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n17&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n18&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n19&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n20&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n21&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n22&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n23&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n24&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n25&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n26&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n27&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n28&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n29&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n30&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n31&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n32&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n33&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">30&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">31&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">32&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">35&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">36&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">37&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">38&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">39&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">61&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">62&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">63&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">64&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">65&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">66&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ssid&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;b&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;c&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;d&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;e&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;f&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">hex2dec&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> #####################################################&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="s2">&amp;#34; # Huawei Echo Life HG520 mac2wepkey #&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="s2">&amp;#34; # hochoa@websec.mx - http://websec.mx #&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="s2">&amp;#34; #####################################################&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mac2&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">raw_input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> Ingresa la MAC: &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">replace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="mi">12&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">mac&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">insert&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">hex2dec&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mac2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]));&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s1&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a4&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a6&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a11&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n20&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a10&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a4&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a9&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s2&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n15&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n17&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a12&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n21&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n24&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a9&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n27&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n29&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a11&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n32&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s3&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n3&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n9&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a9&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n19&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n22&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a12&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n25&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a11&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a13&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n30&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n33&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s4&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n4&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n10&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n16&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n18&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a13&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n23&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n26&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n28&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a3&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a6&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ya&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n11&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a15&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">yb&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n12&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n31&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a15&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">yc&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a3&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a10&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">yd&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n6&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n13&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ye&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a3&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a10&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a7&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a8&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a14&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a5&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">]])&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> WEP = &amp;#34;&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ya&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">yb&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">yc&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">yd&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ye&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34; SSID = &amp;#34;&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ssid&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ssid&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">s2&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ssid&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">s3&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ssid&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">s4&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">python ./mac2wepkey.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6226/6359123739%5F63495865a3.jpg"
alt="Ejecutando mac2wepkey">&lt;figcaption>
&lt;p>Ejecutando mac2wepkey&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Le damos la mac address que nos solicita y el script regresa la &lt;a class="link" href="https://linuxmanr4.com/2008/03/16/auditando-contrasenas-wep-en-7-pasos/" >contraseña wep&lt;/a>
por default y el nombre de la red inalámbrica, ya saben el famoso INFINITUMxxxx.&lt;/p>
&lt;h2 id="y-en-windows">¿Y en Windows?
&lt;/h2>&lt;p>También se puede ejecutar, solo es necesario &lt;a class="link" href="http://www.python.org/getit/" target="_blank" rel="noopener"
>descargar Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
pero la versión 2.x por que hay muchas diferencias si usan la versión 3.x y podría no funcionar el script.&lt;/p>
&lt;p>inSSIDer también tiene disponible una versión para el sistema operativo de las ventanas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/11/mac2wepkey-en-windows.jpg"
alt="mac2wepkey en windows">&lt;figcaption>
&lt;p>mac2wepkey en windows&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="en-android">En Android.
&lt;/h2>&lt;p>El mismo algoritmo utilizado por este script de Python esta disponible como una aplicación para Android.&lt;/p>
&lt;p>Mac2WepKey HHG5XX&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Claro que este programa solo funciona si no se ha cambiado la contraseña por default o si es un modem Huawei, aunque una vez si me dio una contraseña correcta para un vetusto 2wire.&lt;/p>
&lt;p>La recomendación es la misma de toda la vida, &lt;strong>cambiar la contraseña por default ¡Por favor!&lt;/strong>, no les toma más que unos minutos de leer el manual o buscar en google como hacerlo.&lt;/p>
&lt;h3 id="referencias">Referencias:
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://www.websec.mx/files/mac2wepkey.py" target="_blank" rel="noopener"
>Descargar Mac2webkey.py&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.websec.mx/blog/ver/mac2wepkey_huawei" target="_blank" rel="noopener"
>mac2wepkey - Huawei generador de WEP default&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.metageek.net/products/inssider/" target="_blank" rel="noopener"
>inSSIDer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://wicd.sourceforge.net/" target="_blank" rel="noopener"
>WiCD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.python.org" target="_blank" rel="noopener"
>Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Acer Aspire One AO751h con Linux Mint 11 LXDE</title><link>https://linuxmanr4.com/2011/11/15/acer-aspire-one-ao751h-con-linux-mint-11-lxde/</link><pubDate>Wed, 16 Nov 2011 04:07:59 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/15/acer-aspire-one-ao751h-con-linux-mint-11-lxde/</guid><description>&lt;p>Soy fan de Ubuntu, es mi distro favorita para la mayoría de las veces que necesito instalar Linux en un equipo, pero en mi pequeña Acer no estaba funcionando como quería.&lt;/p>
&lt;p>Unity aún en su versión 2D le exige demasiado al equipo, una operación tan simple como mostrar el dash puede tardar insoportables segundos.&lt;/p>
&lt;p>JoliOS sigue siendo una buena opción, pero esa capa de simplicidad con la que está envuelto ya no va con mi estilo. No me malinterpreten, para un recién llegado JoliOS puede ser una solución simple y funcional pero a mi no me gusta.&lt;/p>
&lt;p>Últimamente &lt;a class="link" href="http://distrowatch.com/table.php?distribution=mint" target="_blank" rel="noopener"
>Linux Mint&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
está sonando mucho y me pareció una buena oportunidad para probarla. Esta distribución basada en Ubuntu con colores que tienden al verde ofrece un diseño elegante y una buena experiencia al usuario justo después de instalarla. ¿Pero funciona bien en mi pequeña lapita? sólo hay una forma de averiguarlo.&lt;/p>
&lt;h2 id="linux-mint-11-lxde">Linux Mint 11 LXDE.
&lt;/h2>&lt;p>Mint ofrece varios sabores de ambientes gráficos Fluxbox, GNOME, KDE, LXDE, Xfce. Elegí Lxde por ser un viejo conocido ( &lt;a class="link" href="https://linuxmanr4.com/2010/07/31/instalando-lubuntu/" >lubuntu&lt;/a>
), ya lo había probado en equipos con escasos recursos con buenos resultados. La versión 11 de Mint esta basado en Ubuntu 11.04 Natty Narwhal por lo que supuse que podía usar algunos trucos que usé con esta versión de Ubuntu.&lt;/p>
&lt;h2 id="la-instalación">La instalación.
&lt;/h2>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6349613436/" title="2011-11-15 18.38.01 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.static.flickr.com/6098/6349613436_ba4bea7b02.jpg"
loading="lazy"
alt="2011-11-15 18.38.01"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Preparé mi memoria usb con &lt;a class="link" href="https://web.archive.org/web/20250914071834/http://www.linuxliveusb.com/" target="_blank" rel="noopener"
>LinuxLive USB Creator&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y arranqué la lapita con ella. La instalación fue muy rápida, muy similar a la de Ubuntu pero me llamó la atención que no solicitara la instalación de software de terceros o codecs, por lo tanto el tiempo de la instalación fue mucho más rápida.&lt;/p>
&lt;h2 id="post-instalación">Post Instalación.
&lt;/h2>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6349613450/" title="lm pantalla de bienvenida por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.static.flickr.com/6099/6349613450_94e1708d11.jpg"
loading="lazy"
alt="lm pantalla de bienvenida"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h3 id="el-infame-gma500">El infame GMA500.
&lt;/h3>&lt;p>Como siempre tuve problemas con la tarjeta de video de mi equipo, el tristemente célebre GMA500 de Intel. La resolución nativa es de un inusual 1366x768 así que para corregir esto es necesario instalar un driver de video que lo soporte.&lt;/p>
&lt;p>Prefiero el driver EMGB, tiene un buen rendimiento en videos a pantalla completa y es el que tiene mejor soporte para esta versión de ubuntu (natty). Para instalarlo solo tuve que seguir las instrucciones del wiki de Ubuntu &lt;a class="link" href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/" target="_blank" rel="noopener"
>Hardware Support Components Video Cards Poulsbo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, en una terminal teclee lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo add-apt-repository ppa:gma500/emgd-1.8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>sudo apt-get update sudo apt-get install xorg-emgd emgd-dkms sudo emgd-xorg-conf&lt;/p>
&lt;p>y reiniciar para que los cambios surtan efecto.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6348867369/" title="Mint con su resolución correcta por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.static.flickr.com/6039/6348867369_fdccabcc0f.jpg"
loading="lazy"
alt="Mint con su resolución correcta"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h3 id="la-tarjeta-de-red-inalámbrica">La tarjeta de red inalámbrica.
&lt;/h3>&lt;p>Sin problemas a pesar de ser una Broadcom (BCM4312) y es que con las tarjetas de esta marca se pueden tener resultados mixtos, a veces funcionan a la primera, otras nos hace batallar un rato, pero ese no fue el caso con mi lapita.&lt;/p>
&lt;p>En el primer arranque me informó de la existencia de un driver propietario, solo tuve que activarlo, reiniciar y con eso fue más que suficiente.&lt;/p>
&lt;h3 id="ubuntu-tweak">Ubuntu Tweak
&lt;/h3>&lt;p>Aunque la selección de software es bastante buena en Mint, por ejemplo utiliza Gnome Player o VLC para la reproducción de videos, Exaile como reproductor de mp3 y Firefox como navegador web, la verdad es que estoy habituado a usar Chrome y Synapse en mi trabajo diario.&lt;/p>
&lt;p>Estos dos programas los instala &lt;a class="link" href="http://ubuntu-tweak.com/" target="_blank" rel="noopener"
>Ubuntu Tweak&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en un par de clics. Afortunadamente la versión actual de este Tweak se lleva bien con Mint.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/6348879103/" title="synapse por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm7.static.flickr.com/6052/6348879103_9152266ee0.jpg"
loading="lazy"
alt="synapse"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="el-rendimiento">El rendimiento.
&lt;/h2>&lt;p>Para mi gusto el enfoque de darle poder a la aplicación y no al entorno es el que me ha funcionado.  Me gusta que en con un par de teclas pueda iniciar la aplicación que quiero, hacer copias de archivos de vez en cuando, escuchar música mientras trabajo y eso lo logró sin problemas con Mint y &lt;a class="link" href="http://lxde.org/" target="_blank" rel="noopener"
>LXDE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Todavía le estoy tomando el gusto al sabor a menta de esta distribución, pero es un sabor agradable y refrescante. Lo que hace lo hace bien sin regodearse demasiado no hacer derroche de recursos.&lt;/p>
&lt;p>Sigo siendo fan de Ubuntu, pero creo que los amigos de Canonical deberían de aprender algunas cosas a la filosofía de Mint.&lt;/p></description></item><item><title>Administrando conexiones remotas con Remmina</title><link>https://linuxmanr4.com/2011/11/05/administrando-conexiones-remotas-con-remmina/</link><pubDate>Sat, 05 Nov 2011 17:30:56 +0000</pubDate><guid>https://linuxmanr4.com/2011/11/05/administrando-conexiones-remotas-con-remmina/</guid><description>&lt;p>¿Está buscando un programa para almacenar la información de conexión de varios escritorios remotos?, no busque usted más, &lt;a class="link" href="http://remmina.sourceforge.net/" target="_blank" rel="noopener"
>Remmina&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es el software que usted estaba buscando… ¡No pierda tiempo! … Abra su Centro de software de Ubuntu y selecciónelo para su instalación … Marque el 01-800-CANONICAL y no lo atenderá nadie porque este número lo acabo de inventar … ¡Llame YAAAA!&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/6315638162_0d837d9448.jpg"
loading="lazy"
alt="Centro de software de Ubuntu - Remmina"
>&lt;/p>
&lt;p>Fuera de broma me asombró mucho la simplicidad (pero no falto de opciones) de Remmina para hacer lo que tiene que hacer.&lt;/p>
&lt;p>Anteriormente, usaba &lt;a class="link" href="https://linuxmanr4.com/2011/03/30/administrar-conexiones-remotas-con-pac-manager/" >PAC Manager&lt;/a>
para administrar mis conexiones remotas y para ser sinceros, su diseño en la interfaz deja mucho que desear.&lt;/p>
&lt;p>Todo eso se olvida con Remmina, tiene un buen equilibrio de opciones con una interfaz limpia y bien cuidada.&lt;/p>
&lt;p>Utilizo este programa para administrar equipos remotos, generalmente clientes Windows que tienen instalado &lt;a class="link" href="http://www.tightvnc.com/" target="_blank" rel="noopener"
>TightVNC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y ocasionalmente uno que otro servidor con SSH.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/6315121033_ed955c0097.jpg"
loading="lazy"
alt="Remmina en acción"
>&lt;/p>
&lt;p>Otro detalle que me sorprendió al utilizar Remmina es la velocidad con la que logra las conexiones, un doble clic y ¡listo! Ahí está tu pantalla esperando órdenes.&lt;/p></description></item><item><title>Mis aplicaciones favoritas para Android</title><link>https://linuxmanr4.com/2011/10/29/mis-aplicaciones-favoritas-para-android/</link><pubDate>Sat, 29 Oct 2011 15:51:39 +0000</pubDate><guid>https://linuxmanr4.com/2011/10/29/mis-aplicaciones-favoritas-para-android/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/10/mis-aplicaciones-favoritas-para-android.jpg" alt="Featured image of post Mis aplicaciones favoritas para Android" />&lt;p>Con el paso del tiempo he instalado y quitado aplicaciones de mi teléfono. Las que han sobrevivido son estas.&lt;/p>
&lt;h2 id="go-launcher-ex">GO Launcher EX
&lt;/h2>&lt;p>Creo que la primer aplicación que le instalamos a un teléfono con Android es un Launcher. Hay una amplia variedad en el Market y probé varias, pero el único que me dio una buena relación de opciones, efectos, rapidez, estabilidad fue &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.gau.go.launcherex" target="_blank" rel="noopener"
>Go Launcher EX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="alarm-clock-xtrem">Alarm Clock Xtrem
&lt;/h2>&lt;p>Se volvió mi reloj despertador por muchas y buenas razones. Para empezar puedo configurar una gran cantidad de alarmas, elegir tonos, vibración o la música de mi teléfono, la música empieza a sonar &lt;em>in crescendo&lt;/em> (ya no más sustos al despertar, ni gallito madrugador molón) y para quitar la alarma tengo que resolver un par de problemas matemáticos como prueba fehaciente de que estoy despierto 🙂 . La exageración es que tiene una opción para desactivar la alarma cuando llegas a cierta velocidad, o sea cuando ya vas en camino.&lt;/p>
&lt;h2 id="astro-file-manager">Astro File Manager
&lt;/h2>&lt;p>Por dos razones necesito un file manager, la primera es que no hay forma de explorar los archivos de la memoria microSD, supongo en parte para que no borres cosas que no debes, pero a veces es necesario mover un archivo, copiarlo o simplemente transmitirlo por bluetooth. Para eso es muy útil esta herramienta. &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.metago.astro" target="_blank" rel="noopener"
>Astro File Manager&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="business-calendar-free">Business Calendar Free
&lt;/h2>&lt;p>Últimamente el calendario se ha convertido en parte de mi vida, organizo cumpleaños, reuniones, recordatorios, pero las opciones que trae la aplicación de Android son un poco limitadas. Esta app incluye un widget que te muestra tus próximas reuniones y es muy configurable. &lt;a class="link" href="https://play.google.com/store/apps/details?id=netgenius.bizcal" target="_blank" rel="noopener"
>Business Calendar Free&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="google-plus">Google Plus
&lt;/h2>&lt;p>Google Plus se ha convertido en mi red social favorita y su aplicación para Android es excelente !!! Google Plus&lt;/p>
&lt;h2 id="hhg5xx">HHG5XX
&lt;/h2>&lt;p>Pueden verlo desde varios enfoques, el principal es auditar redes inalámbricas aunque solo sirve para confirmar lo que ya sabemos. La gran mayoría de las personas no cambian la contraseña de la red inalámbrica y este programa se encarga de averiguar la contraseña por default de los routers Huawei de Infinitum. Y créanme… ¡Si funciona!&lt;br>
HHG5xx wep scanner free&lt;/p>
&lt;h2 id="mobo-player">Mobo Player
&lt;/h2>&lt;p>El reproductor que viene incluido es muy bueno, de hecho es de lo mejor, el problema viene cuando tienes una película en un formato complicado como flv o avi, es entonces cuando un reproductor más completo se vuelve necesario. Mobo Player.&lt;/p>
&lt;h2 id="realcalc">RealCalc
&lt;/h2>&lt;p>Esta aplicación la instalé más por nostalgia que por otra cosa. Me recuerda a las calculadoras científicas Casio que usé durante la preparatoria y en el ITL. &lt;a class="link" href="https://play.google.com/store/apps/details?id=uk.co.nickfines.RealCalc" target="_blank" rel="noopener"
>RealCalc&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="ubuntu-one">Ubuntu One
&lt;/h2>&lt;p>Lo uso más para obtener las fotos que tomo con mi celular y es que más simple no puede ser, tomo una foto, la sube a ubuntu one y cuando llego a mi casa inicia la sincronización y ahí está !!!. Ubuntu One Files.&lt;/p>
&lt;h2 id="wheres-my-droid">Where’s my droid
&lt;/h2>&lt;p>Para los olvidadizos esta app responde a la universal pregunta de ¿Dónde carajos dejé mi celular?, con un mensaje se soltará pitando como loquito y con otro discretamente te mandará como respuesta su ubicación con el GPS. Aunque claro que si por un descuido tu cel ya está en mejores manos es difícil que lo recuperes. Where&amp;rsquo;s My Droid.&lt;/p>
&lt;h2 id="wifi-analizer">Wifi Analizer
&lt;/h2>&lt;p>Me gusta esta app simplemente por una opción, tiene una especie de indicador de fuerza de señal con indicador analógico, pero lo más cool es el sonidito rastreador, suena con más frecuencia cuando esta cerca del punto de acceso inalámbrico además te hace parecer muy profesional, algo así como Egon y su aparatito que usaba en los cazafantasmas. &lt;a class="link" href="https://play.google.com/store/apps/details?id=com.pierwiastek.wifidata" target="_blank" rel="noopener"
>Wifi Analyzer&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="wifi-manager">Wifi Manager
&lt;/h2>&lt;p>Esta aplicación, la uso por su widget, me facilita mucho la existencia, poder elegir la red a la que me quiero conectar y ver algo de información extra al momento de conectarme como por ejemplo el nombre, la fuerza de la señal o simplemente para activar el wifi del teléfono. Wifi Manager.&lt;/p>
&lt;h2 id="zedge">Zedge
&lt;/h2>&lt;p>Esta app tiene una enorme galería de imágenes que se pueden usar como wallpaper, descargar ringtones y sonidos para notificaciones.&lt;br>
Zedge Ringtones &amp;amp; Wallpapers&lt;/p></description></item><item><title>Qalculate! Una calculadora para Ubuntu.</title><link>https://linuxmanr4.com/2011/10/21/qalculate-una-calculadora-para-ubuntu/</link><pubDate>Fri, 21 Oct 2011 17:50:11 +0000</pubDate><guid>https://linuxmanr4.com/2011/10/21/qalculate-una-calculadora-para-ubuntu/</guid><description>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6155/6267143618%5F50341b030b.jpg"
alt="Qalculate ">&lt;figcaption>
&lt;p>Qalculate&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Estaba buscando un reemplazo para la calculadora que tiene Ubuntu por default, está bien para operaciones sencillas, pero se quedó corta cuando quise hacer algo más complicado. Husmeando en el Centro de Software de Ubuntu me encontré con &lt;a class="link" href="http://qalculate.sourceforge.net/" target="_blank" rel="noopener"
>Qalculate!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Esta pequeña maravilla se las sabe de todas todas, tiene la tabla periódica que me hubiera servido horrores en la clase de &lt;a class="link" href="http://es.wikipedia.org/wiki/Estequiometr%C3%ADa" target="_blank" rel="noopener"
>Estequiometría&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de la Preparatoria.&lt;/p>
&lt;p>Operaciones con matrices que eran mi coco en las clases de &lt;a class="link" href="http://es.wikipedia.org/wiki/%C3%81lgebra_lineal" target="_blank" rel="noopener"
>Álgebra lineal&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
cuando estaba en el ITL.&lt;/p>
&lt;p>Grafica funciones, convierte unidades, descarga paridades cambiarias, este programa tiene mucho más de lo que pueda necesitar y lo logra con una interfaz sencilla.&lt;/p>
&lt;p>De haber conocido herramientas como esta cuando estuve en la escuela me hubieran hecho la vida mucho más sencilla.&lt;/p></description></item><item><title>Dudas sobre las actualizaciones de Ubuntu</title><link>https://linuxmanr4.com/2011/10/14/dudas-sobre-las-actualizaciones-de-versiones-de-ubuntu/</link><pubDate>Fri, 14 Oct 2011 15:29:59 +0000</pubDate><guid>https://linuxmanr4.com/2011/10/14/dudas-sobre-las-actualizaciones-de-versiones-de-ubuntu/</guid><description>&lt;p>Ubuntu liberó ayer su nueva versión 11.10 con el nombre de Oneiric Ocelot.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6225/6243244277%5F8ccd2c9b05.jpg"
alt="Ubuntu online tour">&lt;figcaption>
&lt;p>Ubuntu online tour&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="http://www.ubuntu.com/tour/" target="_blank" rel="noopener"
>Ubuntu 11.04 online tour&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Muchos de ustedes ya la descargaron o están en proceso de actualización, pero lo que voy a escribir aquí son comentarios que he visto en mis contactos de Google Plus.&lt;/p>
&lt;h2 id="la-actualización-de-ubuntu-1104-a-1110-tarda-demasiado">La actualización de Ubuntu 11.04 a 11.10 tarda demasiado.
&lt;/h2>&lt;p>Esto es perfectamente normal durante unos días después de la liberación. Simplemente los servidores se saturan por la gran cantidad de peticiones ¡Y que bueno! eso quiere decir que cada vez hay más personas que utilizan Ubuntu. Yo me esperaría unos 4 o 5 días antes de hacer el &lt;em>upgrade&lt;/em> del sistema operativo. También les recuerdo que sería una buena idea elegir un repositorio más rápido. (léa por favor &lt;a class="link" href="https://linuxmanr4.com/2010/05/04/4-pasos-para-preparar-a-ubuntu-para-el-uso-diario/" >4 pasos para preparar a Ubuntu para el uso diario&lt;/a>
).&lt;/p>
&lt;h2 id="qué-es-mejor-actualizar-o-instalar-desde-cero">¿Qué es mejor actualizar o instalar desde cero?
&lt;/h2>&lt;p>En lo personal siempre me ha gustado instalar desde cero, creo que tardo menos bajando el iso por bittorrent, hacer un &lt;em>live usb&lt;/em> e instalando que haciendo el upgrade, pero no hago actualizaciones seguido, generalmente instalo una y la siguiente no. ¿Porque?, pues porque sigo la regla de que si no esta roto no lo arreglo, mi ubuntu 11.04 actual funciona bien y con las personalizaciones que le he hecho estoy muy a gusto, pero se que tarde o temprano voy a querer ver las novedades de las nuevas versiones. Los más cautos solo instalan versiones LTS. Al final es una una decisión personal.&lt;/p>
&lt;h2 id="no-es-demasiado-sacar-una-nueva-versión-cada-6-meses">¿No es demasiado sacar una nueva versión cada 6 meses.?
&lt;/h2>&lt;p>Probablemente, pero a nadie se obliga a instalar las nuevas versiones. Precisamente por eso se liberan las versiones LTS que tienen un mayor tiempo de soporte, así no es necesario cambiar de versión por unos 5 años. Pero hay que entender que las versiones intermedias sirven para mejorar el producto, cada vez que se libera una nueva versión es sujeta al criterio de todo el mundo, las mejores opciones se quedan, otras se modifican, otras simplemente desaparecen.&lt;/p>
&lt;p>Lamentablemente tenemos el mal de &lt;em>markenting&lt;/em> llamado &lt;em>versionitis&lt;/em>, sentimos que si no tenemos la versión 2007,2010, 7 u 8 no estamos en la ola de la modernidad, pero eso no siempre es cierto.&lt;/p>
&lt;p>Una vez que fui a una conferencia de vendedores de Microsoft sobre el nuevo Windows Vista le pregunté al presentador –¿Que justifica la actualización de licencias y de hardware?¿Que puedo hacer con Vista que no puedo hacer con XP? … sigo esperando la respuesta (y curiosamente ya no me han invitado).&lt;/p>
&lt;p>Técnicamente si no podemos hacer algo con nuestra versión actual entonces es tiempo de actualizar de lo contrario ¿porque lo haríamos?.&lt;/p>
&lt;p>En linux las elecciones son la norma, que si Gnome o KDE, que si Ubuntu, Fedora, SUSE o Debian, Unity o Gnome 3, actualizar o no actualizar … ¿Es demasiado complicado? si, pero la libertad siempre es complicada.&lt;/p></description></item><item><title>Aquí tienen algunos consejos para ahorrar tinta, papel y tóner</title><link>https://linuxmanr4.com/2011/10/10/consejos-para-ahorrar-tinta-papel-y-toner/</link><pubDate>Tue, 11 Oct 2011 00:54:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/10/10/consejos-para-ahorrar-tinta-papel-y-toner/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/10/muchos_papeles_reagan_freeman_unsplash.jpg" alt="Featured image of post Aquí tienen algunos consejos para ahorrar tinta, papel y tóner" />&lt;p>Seamos sinceros, en estos tiempos no se puede desperdiciar nada, hay que estar al pendientes del consumo del papel, del tóner y la tinta por dos razones principales, ecología y economía.&lt;/p>
&lt;p>No hace muchos años la calidad del papel era muy superior, las tintas venían en cartuchos generosos y los tóner se rellenaban fácilmente, pero esos tiempos han cambiado.&lt;/p>
&lt;p>¿Han notado que el grueso de las hojas de papel es cada vez más delgado?, que los cartuchos de tinta son cada vez más pequeños y que ahora es más difícil rellenarlos?.&lt;/p>
&lt;p>Recientemente me he topado con la novedad de que los cartuchos de tóner HP traen un chip contador, puedes rellenarlos, pero si no se cambia el chip se niega a imprimir.&lt;/p>
&lt;p>Por eso en este artículo les comparto mi experiencia en el ahorro de tinta, papel, tóner, &lt;em>lizard&lt;/em>, &lt;em>spock&lt;/em>. (el que entendió entendió).&lt;/p>
&lt;h2 id="la-mejor-forma-de-ahorrar-papel-es-no-usando-papel">La mejor forma de ahorrar papel es no usando papel
&lt;/h2>&lt;p>En muchas oficinas y escuelas están tan acostumbrados a imprimir que no se ponen a pensar si es necesario o no, tal parece que si no esta impreso no existe o no se puede leer.&lt;/p>
&lt;p>Por eso es importante preguntarse si realmente es necesario imprimir, muchas de las veces la respuesta es no.&lt;/p>
&lt;p>Afortunadamente vivimos en una época en la que compartir información es cada vez más sencillo. Tareas, documentos, información se puede mandar por correo electrónico.&lt;/p>
&lt;p>Libros completos se pueden generar en PDF para que los alumnos los puedan leer sin necesidad de imprimirlos. Afortunadamente he visto con agrado que muchas instituciones educativas han adoptado a &lt;a class="link" href="https://moodle.org/" target="_blank" rel="noopener"
>Moodle&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en sus entornos de enseñanza, lo malo es que la mayoría son privadas. Espero que algún día no muy lejano el gobierno se ponga las pilas y también adopte estos sistemas donde sea posible.&lt;/p>
&lt;p>Recuerdo que una buena parte de mi carrera profesional no compré cuadernos, simplemente reciclaba las copias del semestre anterior para formar una libreta de apuntes a las que unía con un broche baco. Ninguno de mis maestros me puso objeción alguna por hacerlo. Además sólo cargaba con una libreta, si faltaban hojas las agregaba.&lt;/p>
&lt;p>Existen en Internet muchos programas para generar PDF, vienen a mi mente PrimoPDF, &lt;a class="link" href="https://es.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
también puede generarlos directamente sin la necesidad de software adicional. En Ubuntu si mandas a imprimir en un archivo te genera el PDF.&lt;/p>
&lt;p>Recuerden &amp;hellip; &lt;strong>Imprimir sólo lo realmente necesario.&lt;/strong>&lt;/p>
&lt;h2 id="tengo-que-imprimirlo-qué-hago">Tengo que imprimirlo ¿Qué hago?
&lt;/h2>&lt;p>ok, no me queda más que imprimir, he aquí algunos consejos para ahorrar tinta, papel o tóner&lt;/p>
&lt;h3 id="imprimir-páginas-web">Imprimir páginas web.
&lt;/h3>&lt;p>No se ha avanzado mucho en el tema desde los tiempos del ingrato internet explorer. Las páginas web se ven bien en pantalla, pero en papel es otra cosa. Muchas veces desperdiciamos papel y tinta imprimiendo encabezados, publicidad, comentarios o secciones de la página web que no necesitamos.&lt;/p>
&lt;p>Para eso utilizo los servicios de dos sitios web que hacen más o menos lo mismo, formatear páginas web para su impresión.&lt;/p>
&lt;p>Uno de ellos es &lt;a class="link" href="https://www.printfriendly.com/" target="_blank" rel="noopener"
>PrintFriendly.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, muchas veces el trabajo que realiza es más que suficiente, pero si quieren algo con más opciones y personalizable entonces el trabajo es para PrintWhatYouLike.com. Ambos sitios permiten descargar sus modificaciones en PDF, así se puede compartir sin necesidad de imprimirlos.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/10/PrintFriendly.png"
alt="PrintFriendly para imprimir solo lo necesario y economizar tinta y papel.">&lt;figcaption>
&lt;p>PrintFriendly para imprimir solo lo necesario y economizar tinta y papel.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="cambiar-la-configuración-de-la-impresora">Cambiar la configuración de la impresora.
&lt;/h3>&lt;p>La configuración por &lt;em>default&lt;/em> de muchas impresoras es generosa en el uso de la tinta. Cada fabricante es diferente pero si les puedo dar una lista de opciones que deben de buscar.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Economode&lt;/strong>. Muy usado en las impresoras HP ahorrar tóner.&lt;/li>
&lt;li>&lt;strong>Borrador&lt;/strong>. Ahorra tinta, pero muchas veces si escatima mucho en la calidad, probablemente para textos sea más que suficiente, para fotografías la mayoría de las veces entrega imágenes sin mucho color, se los dejo a su criterio.&lt;/li>
&lt;li>&lt;strong>Los famosos dpi (dots per inch)&lt;/strong>. ¿Que gasta menos tóner 600 dpi o 1200 dpi? un número menor gasta menos tóner pero se supone que entrega un trabajo de menor calidad, aunque tratándose de impresoras láser suele ser más que suficiente.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/10/Modificar-los-ajustes-de-la-impresora.png"
alt="Modificar los ajustes de la impresora">&lt;figcaption>
&lt;p>Modificar los ajustes de la impresora&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="instalar-y-usar-la-fuente-ecológicas">Instalar y usar la fuente ecológicas
&lt;/h3>&lt;p>El principio de la &lt;a class="link" href="https://web.archive.org/web/20100225173814/http://www.ecofont.com/es/productos/verde/fuente/descargar-ecofont.html" target="_blank" rel="noopener"
>Ecofont&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es muy sencillo, el interior de la fuente esta repleta de pequeños círculos, y al no tener que imprimir esos puntitos se ahorra tinta y tóner.&lt;/p>
&lt;p>En la oficina la usamos mucho en aquellos documentos que imprimimos frecuentemente. La fuente se puede descargar de muchos sitios y es gratuita.&lt;/p>
&lt;p>O también pueden usar una versión &lt;a class="link" href="https://es.wikipedia.org/wiki/Gracia_%28tipograf%C3%ADa%29" target="_blank" rel="noopener"
>Serif&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como la &lt;a class="link" href="https://web.archive.org/web/20150802154948/http://rymaneco.co.uk/download/ryman-eco.zip" target="_blank" rel="noopener"
>Ryman Eco&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/ecofont-rayman-fonts.jpg">
&lt;/figure>
&lt;p>¿Ustedes que hacen para ahorrar en tinta, papel o tóner?&lt;/p></description></item><item><title>Aumentar el rendimiento con zRAM</title><link>https://linuxmanr4.com/2011/10/06/aumentar-el-rendimiento-con-zram/</link><pubDate>Thu, 06 Oct 2011 14:04:09 +0000</pubDate><guid>https://linuxmanr4.com/2011/10/06/aumentar-el-rendimiento-con-zram/</guid><description>&lt;figure>&lt;img src="https://farm7.static.flickr.com/6176/6217444254_cf29c10b07.jpg"
alt="HTOP y zRam">&lt;figcaption>
&lt;p>HTOP y zRam&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Estaba leyendo este artículo &lt;a class="link" href="http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html" target="_blank" rel="noopener"
>Increased performance in linux with zram (virtual swap compressed in ram)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y me pareció un concepto interesante.&lt;/p>
&lt;p>Aumentar el rendimiento usando una memoria virtual comprimida que esta ubicada en la memoria RAM. Pero lo que más llamó mi atención fue la promesa de mejorar el desempeño en equipos viejos o con poca memoria RAM, aunque eso de &amp;ldquo;poca&amp;rdquo; estamos hablando de 1GB, con menos memoria no creo que sea muy funcional.&lt;/p>
&lt;p>Manos a la obra, para instalar zRam solo hay que teclear lo siguiente el la terminal:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo add-apt-repository ppa:shnatsel/zram
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get install zramswap-enabler
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>No tengo forma de medir el aumento de desempeño, pero al menos en la lapita (una Aspire One AO751h) se ha portado más &amp;ldquo;ligerita&amp;rdquo;, supongo por la disminución en número de accesos al disco duro.&lt;/p>
&lt;p>Los resultados pueden variar, pero vale la pena hacer el intento.&lt;/p></description></item><item><title>Notificación de Correo en Ubuntu</title><link>https://linuxmanr4.com/2011/09/26/notificacion-de-correo-en-ubuntu/</link><pubDate>Mon, 26 Sep 2011 20:52:32 +0000</pubDate><guid>https://linuxmanr4.com/2011/09/26/notificacion-de-correo-en-ubuntu/</guid><description>&lt;p>Primero configuré a Evolution para revisar mi correo electrónico en Ubuntu, es un buen programa, pero me empezó a dar unos problemillas al revisar mi cuenta IMAP. Así que decidí cambiarlo por Thunderbird.&lt;/p>
&lt;p>Ambos programas son muy buenos, el problema es que los tengo que tener ejecutando para que me avisen de la llegada de un nuevo correo electrónico.&lt;/p>
&lt;p>Buscando en el Centro de software de Ubuntu me encontré con &lt;strong>Notificación de correo&lt;/strong> (así o más simple la búsqueda). Lo instalé, di de alta mi cuenta de correo y personalicé el sonido de notificación a uno que tengo en mi celular.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6159/6186751728%5F93186a1ba3.jpg"
alt="Centro de software de Ubuntu - Notificación de correo">&lt;figcaption>
&lt;p>Centro de software de Ubuntu - Notificación de correo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Funciona y cada vez que llega un correo me aparece una alerta con el nombre de la cuenta y asunto del mensaje, ahora el problema es que no aparece en mi área de notificación.&lt;/p>
&lt;p>Recordé que en otro sitio decían como ocultar Skype del área de notificación y como recuperarlo, solo agregué &lt;strong>mail-notification&lt;/strong> a la lista de programas con este comando.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;div class=&amp;#34;xorg_conf&amp;#34; style=&amp;#34;font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;&amp;#34;&amp;gt;gsettings set com.canonical.Unity.Panel systray-whitelist &amp;lt;span style=&amp;#34;color: #0000ff;&amp;#34;&amp;gt;&amp;#34;[&amp;#39;JavaEmbeddedFrame&amp;#39;, &amp;#39;Mumble&amp;#39;, &amp;#39;Wine&amp;#39;, &amp;#39;hp-systray&amp;#39;, &amp;#39;Skype&amp;#39;, &amp;#39;mail-notification&amp;#39;]&amp;#34;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6178/6186227905%5Fbde80ba19f.jpg"
alt="Notificación de correo">&lt;figcaption>
&lt;p>Notificación de correo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>¡Y listo!!!, ahora sé cuando tengo correo electrónico sin tener abierto Evolution o Thunderbird.&lt;/p></description></item><item><title>Problemas con ADW Launcher en Android</title><link>https://linuxmanr4.com/2011/09/07/problemas-con-adw-launcher-en-android/</link><pubDate>Wed, 07 Sep 2011 17:36:21 +0000</pubDate><guid>https://linuxmanr4.com/2011/09/07/problemas-con-adw-launcher-en-android/</guid><description>&lt;h2 id="el-problema">El Problema.
&lt;/h2>&lt;p>Hace unos días instalé ADW Launcher un programa muy popular en Android para lanzar aplicaciones. El problema fue que instalé un &lt;em>theme&lt;/em> gratuito de Ubuntu para este launcher. Lo descargó, aplico los cambios y en el momento que veo mi celular me aparece este bonito error:&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6081/6124577098%5Fdd3d1af063.jpg"
alt="Error de la aplicación">&lt;figcaption>
&lt;p>Error de la aplicación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;blockquote>
&lt;p>¡Lo sentimos! La aplicación ADW.Launcher (proceso android.process.acore) se ha detenido de forma imprevista. Vuelve a intentarlo.&lt;/p>&lt;/blockquote>
&lt;p>Obviamente, el &lt;em>theme&lt;/em> está provocando un problema con el launcher, pero ¿Cómo desinstalarlo si no puedo accesar a la aplicación de &lt;strong>Configuración&lt;/strong> (algunos teléfonos le llaman &lt;strong>Ajustes&lt;/strong>)?&lt;/p>
&lt;h2 id="la-solución">La Solución.
&lt;/h2>&lt;p>Después de intentar la primera ley de Windows que consiste en reiniciar el teléfono (a la mala quitando la batería) recordé que Android está basado en Linux y, por lo tanto, este método no funciona.&lt;/p>
&lt;p>Busque algún atajo de teclado, pero no, así que se me ocurrió usar la función de &lt;strong>Buscar&lt;/strong> que tiene el mismo teléfono.&lt;/p>
&lt;p>Presioné el &lt;strong>botón de Lupa&lt;/strong> y tecleé la palabra &lt;strong>Configuración&lt;/strong>, aparece el ícono y pude entrar a la configuración del teléfono y desinstalar el &lt;em>theme&lt;/em> que causaba el problema&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6185/6124034771%5Fa02da31150.jpg"
alt="Atajo a la configuración">&lt;figcaption>
&lt;p>Atajo a la configuración&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es una solución simple y sencilla pero no obvia. Al menos evité hacer un &lt;em>Hard reset&lt;/em> a mi Android.&lt;/p></description></item><item><title>Como configurar un teléfono CISCO Unified IP Phone 9951 con Elastix</title><link>https://linuxmanr4.com/2011/09/05/telefono-cisco-9951-elastix/</link><pubDate>Mon, 05 Sep 2011 21:19:55 +0000</pubDate><guid>https://linuxmanr4.com/2011/09/05/telefono-cisco-9951-elastix/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/09/Tel%C3%A9fono-CISCO-9951.jpg" alt="Featured image of post Como configurar un teléfono CISCO Unified IP Phone 9951 con Elastix" />&lt;h2 id="introducción">Introducción.
&lt;/h2>&lt;p>El &lt;a class="link" href="http://www.cisco.com/en/US/prod/collateral/voicesw/ps6788/phones/ps10453/ps10513/data_sheet_c78-565680.html" target="_blank" rel="noopener"
>Cisco Unified IP Phone 9951&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un teléfono elegante con un display a color, excelente calidad en sus materiales, repleto de opciones y características, pero lograr que funcionara con elastix se estaba volviendo un dolor de cabeza. Al parecer este teléfono forma parte de una solución más completa llamada &lt;em>Cisco Unified Communications Manager&lt;/em> ,aunque es posible usarlo con asterisk no esta pensado como para simplificar su uso con él.&lt;/p>
&lt;figure>&lt;img src="https://farm7.staticflickr.com/6081/6117327961%5F738ea6c8fa%5Fz.jpg"
alt="Arranque del teléfono">&lt;figcaption>
&lt;p>Arranque del teléfono&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Fueron 2 días de &lt;em>googlear&lt;/em> todo tipo de información en páginas y foros hasta que por fin logré que se conectara al conmutador Elastix. Si se llegan a topar un con este teléfono estos son los puntos que deben de cubrir.&lt;/p>
&lt;h2 id="firmware">Firmware.
&lt;/h2>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6209/6117353595%5Fee5bbdcbb4.jpg"
alt="Phone Information">&lt;figcaption>
&lt;p>Phone Information&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Es un punto importante porque el firmware del aparato debe de soportar el estándar de comunicación &lt;a class="link" href="http://es.wikipedia.org/wiki/Session_Initiation_Protocol" title="Session Initiation Protocol"
target="_blank" rel="noopener"
>SIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. En el caso del 9951 tiene instalada la versión 9.x y según los foros que he leído esta versión soporta sin problemas este protocolo de comunicaciones. En otros modelos es probable que sea necesaria una actualización del firmware.&lt;/p>
&lt;h2 id="servidor-tftp">Servidor TFTP.
&lt;/h2>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6090/6117906476%5F3a5e5f26fd%5Fm.jpg"
alt="TFTPd32">&lt;figcaption>
&lt;p>TFTPd32&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Anteriormente había configurado teléfonos Linksys, nada más sencillo que abrir su página web, configurarlos, guardar los cambios y listo.&lt;/p>
&lt;p>Las cosas son muy diferentes con el 9951. Para empezar necesita de un servidor &lt;a class="link" href="http://es.wikipedia.org/wiki/TFTP" title="Trivial file transfer Protocol"
target="_blank" rel="noopener"
>TFTP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Al momento de iniciar el teléfono (o reconectarlo a la red) obtiene su dirección IP de un DHCP y luego busca su archivo de configuración XML (que discutiremos más adelante) en el servidor TFTP, este le proporciona el archivo y si todo salio bien veremos un teléfono listo para hacer llamadas.&lt;/p>
&lt;figure>&lt;img src="https://farm7.staticflickr.com/6209/6117327559%5F2a3fb68c9d%5Fz.jpg"
alt="Phone not registered">&lt;figcaption>
&lt;p>Phone not registered&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Provisionalmente instalé el programa &lt;a class="link" href="http://tftpd32.jounin.net/" target="_blank" rel="noopener"
>Tftpd32&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en una computadora con Windows, mientras investigo como hacerlo en el mismo servidor Elastix.&lt;/p>
&lt;p>Su configuración es mínima, en el mismo directorio donde se instalan los archivos del programa se copian los archivos de configuración del teléfono.&lt;/p>
&lt;h2 id="configuración-del-dns">Configuración del DNS.
&lt;/h2>&lt;p>Este punto puede ser un poco complicado. Verán, junto con la información que proporciona el servidor DHCP (como la dirección IP, los DNS y todo eso), también se puede configurar para que proporcione la dirección IP del servidor TFTP de nuestra red. El mismo programa Tftpd32 tiene un servidor DNS que soluciona este punto ya que se apunta a si mismo como el servidor TFTP.&lt;/p>
&lt;p>Pero no todos queremos eso, muchos ya tenemos un router o servidor DHCP que hace ese trabajo. Afortunadamente en IPCop solo es necesario agregar la opción &lt;strong>tftp-server-name&lt;/strong> y decirle cual es la dirección IP, solo que tengan cuidado de poner entre comillas la dirección del servidor.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6079/6117906520%5Fa48f13e691.jpg"
alt="Configuración del DHCP server">&lt;figcaption>
&lt;p>Configuración del DHCP server&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="configuración-de-elastix">Configuración de Elastix.
&lt;/h2>&lt;p>Lo primero es dar de alta una extensión de pruebas. Esto no tiene mayor complicación y es muy sencillo. Por ejemplo di de alta la extensión &lt;strong>99&lt;/strong> con el nombre de &lt;strong>Pruebas 9951&lt;/strong>.&lt;/p>
&lt;p>Para que se registre correctamente el teléfono hay que modificar dos archivos en la configuración del servidor Elastix. Ambos archivos están en la carpeta &lt;em>/etc/asterisk/&lt;/em> pero es más sencillo editarlos usando la herramienta &lt;strong>Asterisk File Editor&lt;/strong> que se encuentra en el menú &lt;strong>PBX&lt;/strong> - &lt;strong>Tools&lt;/strong>.&lt;/p>
&lt;h3 id="sip_customconf">sip_custom.conf
&lt;/h3>&lt;p>A este archivo le vamos a agregar las siguientes líneas:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">udpbindaddr=0.0.0.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tcpenable=yes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tcpbindaddr=0.0.0.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">callcounter=yes
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6061/6117906726%5F04c25fd6ff.jpg"
alt="sip\_custom">&lt;figcaption>
&lt;p>sip_custom&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="sip_custom_postconf">sip_custom_post.conf
&lt;/h3>&lt;p>Y a este otro lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[99]+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">transport=tcp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esta configuración es para la extensión 99, si tenemos más tenemos que declarar líneas similares, una por cada extensión. Básicamente le estamos diciendo a elastix que agregue &lt;strong>(+)&lt;/strong> a la extensión &lt;strong>99&lt;/strong> lo que se le indica.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6084/6117906642%5Fc3484f55bf.jpg"
alt="sip\_custom\_post">&lt;figcaption>
&lt;p>sip_custom_post&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="configuración-del-archivo-xml">Configuración del archivo XML.
&lt;/h2>&lt;p>Este es de los puntos más oscuros. Tomé como base archivo publicado en los foros de elastix&lt;/p>
\[2\]&lt;p> pero no funcionó. El articulo de Minden&lt;/p>
\[1\]&lt;p> menciona los parámetros básicos para lograr una conexión, pero no tiene un ejemplo para el 9951. Por último el artículo de Voip-info&lt;/p>
\[3\]&lt;p> menciona varios parámetros y los explica a detalle.&lt;/p>
&lt;p>El archivo XML debe de tener un nombre especial formado con la &lt;em>Mac Address&lt;/em> del dispositivo.&lt;/p>
&lt;p>Ejemplo: Si la Mac Address del dispositivo es 1234567890AB el nombre del archivo sería,&lt;/p>
&lt;p>SEP + Mac Address del dispositivo.cnf.xml&lt;/p>
&lt;p>SEP1234567890AB.cnf.xml&lt;/p>
&lt;p>Este archivo es el que se debe de copiar al servidor TFTP para que lo proporcione al teléfono durante su arranque.&lt;/p>
&lt;p>Con esta información y revisando los logs de elastix hice un archivo de configuración base, espero que les sirva. Deben de sustituir los valores que puse en mayúsculas y entre corchetes por los apropiados para su instalación.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-xml" data-lang="xml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">&amp;lt;device&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;deviceProtocol&amp;gt;&lt;/span>SIP&lt;span class="nt">&amp;lt;/deviceProtocol&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sshUserId&amp;gt;&lt;/span>admin&lt;span class="nt">&amp;lt;/sshUserId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sshPassword&amp;gt;&lt;/span>cisco&lt;span class="nt">&amp;lt;/sshPassword&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featurePolicyFile&amp;gt;&lt;/span>DefaultFP.xml&lt;span class="nt">&amp;lt;/featurePolicyFile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;devicePool&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dateTimeSetting&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dateTemplate&amp;gt;&lt;/span>D/M/Ya&lt;span class="nt">&amp;lt;/dateTemplate&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timeZone&amp;gt;&lt;/span>SA Pacific Standard Time&lt;span class="nt">&amp;lt;/timeZone&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ntps&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ntp&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;name&amp;gt;&lt;/span>[DIRECCIÓN IP DEL SERVIDOR DE HORA (NTP)]&lt;span class="nt">&amp;lt;/name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ntpMode&amp;gt;&lt;/span>Unicast&lt;span class="nt">&amp;lt;/ntpMode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/ntp&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/ntps&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/dateTimeSetting&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callManagerGroup&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;members&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;member&lt;/span> &lt;span class="na">priority=&lt;/span>&lt;span class="s">&amp;#34;0&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callManager&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ports&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ethernetPhonePort&amp;gt;&lt;/span>2000&lt;span class="nt">&amp;lt;/ethernetPhonePort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipPort&amp;gt;&lt;/span>5060&lt;span class="nt">&amp;lt;/sipPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;securedSipPort&amp;gt;&lt;/span>5061&lt;span class="nt">&amp;lt;/securedSipPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/ports&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;processNodeName&amp;gt;&lt;/span>[DIRECCIÓN IP DEL SERVIDOR ELASTIX]&lt;span class="nt">&amp;lt;/processNodeName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/callManager&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/member&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/members&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/callManagerGroup&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/devicePool&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;commonProfile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;phonePassword/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;backgroundImageAccess&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/backgroundImageAccess&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callLogBlfEnabled&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/callLogBlfEnabled&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/commonProfile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;loadInformation&amp;gt;&lt;/span>sip9951.9-0-0-77&lt;span class="nt">&amp;lt;/loadInformation&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;vendorConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;disableSpeaker&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/disableSpeaker&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;disableSpeakerAndHeadset&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/disableSpeakerAndHeadset&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;pcPort&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/pcPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;settingsAccess&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/settingsAccess&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;garp&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/garp&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;voiceVlanAccess&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/voiceVlanAccess&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;videoCapability&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/videoCapability&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoSelectLineEnable&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/autoSelectLineEnable&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;webAccess&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/webAccess&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;spanToPCPort&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/spanToPCPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;loggingDisplay&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/loggingDisplay&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;loadServer/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/vendorConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;networkLocale&amp;gt;&lt;/span>Spain&lt;span class="nt">&amp;lt;/networkLocale&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;networkLocaleInfo&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;name&amp;gt;&lt;/span>Spanish_Spain&lt;span class="nt">&amp;lt;/name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;uid&amp;gt;&lt;/span>64&lt;span class="nt">&amp;lt;/uid&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;version&amp;gt;&lt;/span>1.0.0.0-1&lt;span class="nt">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/networkLocaleInfo&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;deviceSecurityMode&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/deviceSecurityMode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;authenticationURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;directoryURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;idleURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;informationURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;messagesURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;proxyServerURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;servicesURL/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpForSCCPPhoneConfig&amp;gt;&lt;/span>96&lt;span class="nt">&amp;lt;/dscpForSCCPPhoneConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpForSCCPPhoneServices&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/dscpForSCCPPhoneServices&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpForCm2Dvce&amp;gt;&lt;/span>96&lt;span class="nt">&amp;lt;/dscpForCm2Dvce&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;transportLayerProtocol&amp;gt;&lt;/span>4&lt;span class="nt">&amp;lt;/transportLayerProtocol&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;capfAuthMode&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/capfAuthMode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;capfList&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;capf&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;phonePort&amp;gt;&lt;/span>3804&lt;span class="nt">&amp;lt;/phonePort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/capf&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/capfList&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;certHash/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;encrConfig&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/encrConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipProfile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipProxies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;backupProxy&amp;gt;&lt;/span>USECALLMANAGER&lt;span class="nt">&amp;lt;/backupProxy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;backupProxyPort&amp;gt;&lt;/span>5060&lt;span class="nt">&amp;lt;/backupProxyPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;emergencyProxy&amp;gt;&lt;/span>USECALLMANAGER&lt;span class="nt">&amp;lt;/emergencyProxy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;emergencyProxyPort&amp;gt;&lt;/span>5060&lt;span class="nt">&amp;lt;/emergencyProxyPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;outboundProxy/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;outboundProxyPort/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;registerWithProxy&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/registerWithProxy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/sipProxies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipCallFeatures&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;cnfJoinEnabled&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/cnfJoinEnabled&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callForwardURI&amp;gt;&lt;/span>x--serviceuri-cfwdall&lt;span class="nt">&amp;lt;/callForwardURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callPickupURI&amp;gt;&lt;/span>x-cisco-serviceuri-pickup&lt;span class="nt">&amp;lt;/callPickupURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callPickupListURI&amp;gt;&lt;/span>x-cisco-serviceuri-opickup&lt;span class="nt">&amp;lt;/callPickupListURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callPickupGroupURI&amp;gt;&lt;/span>x-cisco-serviceuri-gpickup&lt;span class="nt">&amp;lt;/callPickupGroupURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;meetMeServiceURI&amp;gt;&lt;/span>x-cisco-serviceuri-meetme&lt;span class="nt">&amp;lt;/meetMeServiceURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;abbreviatedDialURI&amp;gt;&lt;/span>x-cisco-serviceuri-abbrdial&lt;span class="nt">&amp;lt;/abbreviatedDialURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;rfc2543Hold&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/rfc2543Hold&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callHoldRingback&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/callHoldRingback&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;localCfwdEnable&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/localCfwdEnable&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;semiAttendedTransfer&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/semiAttendedTransfer&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;anonymousCallBlock&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/anonymousCallBlock&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callerIdBlocking&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/callerIdBlocking&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dndControl&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/dndControl&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;remoteCcEnable&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/remoteCcEnable&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/sipCallFeatures&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipStack&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipInviteRetx&amp;gt;&lt;/span>6&lt;span class="nt">&amp;lt;/sipInviteRetx&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipRetx&amp;gt;&lt;/span>10&lt;span class="nt">&amp;lt;/sipRetx&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerInviteExpires&amp;gt;&lt;/span>180&lt;span class="nt">&amp;lt;/timerInviteExpires&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerRegisterExpires&amp;gt;&lt;/span>3600&lt;span class="nt">&amp;lt;/timerRegisterExpires&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerRegisterDelta&amp;gt;&lt;/span>5&lt;span class="nt">&amp;lt;/timerRegisterDelta&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerKeepAliveExpires&amp;gt;&lt;/span>120&lt;span class="nt">&amp;lt;/timerKeepAliveExpires&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerSubscribeExpires&amp;gt;&lt;/span>120&lt;span class="nt">&amp;lt;/timerSubscribeExpires&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerSubscribeDelta&amp;gt;&lt;/span>5&lt;span class="nt">&amp;lt;/timerSubscribeDelta&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerT1&amp;gt;&lt;/span>500&lt;span class="nt">&amp;lt;/timerT1&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;timerT2&amp;gt;&lt;/span>4000&lt;span class="nt">&amp;lt;/timerT2&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;maxRedirects&amp;gt;&lt;/span>70&lt;span class="nt">&amp;lt;/maxRedirects&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;remotePartyID&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/remotePartyID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;userInfo&amp;gt;&lt;/span>None&lt;span class="nt">&amp;lt;/userInfo&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/sipStack&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoAnswerTimer&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/autoAnswerTimer&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoAnswerAltBehavior&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/autoAnswerAltBehavior&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoAnswerOverride&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/autoAnswerOverride&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;transferOnhookEnabled&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/transferOnhookEnabled&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;enableVad&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/enableVad&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;preferredCodec&amp;gt;&lt;/span>none&lt;span class="nt">&amp;lt;/preferredCodec&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dtmfAvtPayload&amp;gt;&lt;/span>101&lt;span class="nt">&amp;lt;/dtmfAvtPayload&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dtmfDbLevel&amp;gt;&lt;/span>3&lt;span class="nt">&amp;lt;/dtmfDbLevel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dtmfOutofBand&amp;gt;&lt;/span>avt&lt;span class="nt">&amp;lt;/dtmfOutofBand&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;alwaysUsePrimeLine&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/alwaysUsePrimeLine&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;alwaysUsePrimeLineVoiceMail&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/alwaysUsePrimeLineVoiceMail&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;kpml&amp;gt;&lt;/span>3&lt;span class="nt">&amp;lt;/kpml&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;natEnabled&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/natEnabled&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;natAddress&amp;gt;&lt;/span>[DIRECCIÓN IP DEL SERVIDOR ELASTIX]&lt;span class="nt">&amp;lt;/natAddress&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;stutterMsgWaiting&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/stutterMsgWaiting&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callStats&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/callStats&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;silentPeriodBetweenCallWaitingBursts&amp;gt;&lt;/span>10&lt;span class="nt">&amp;lt;/silentPeriodBetweenCallWaitingBursts&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;disableLocalSpeedDialConfig&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/disableLocalSpeedDialConfig&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;startMediaPort&amp;gt;&lt;/span>10000&lt;span class="nt">&amp;lt;/startMediaPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;stopMediaPort&amp;gt;&lt;/span>20000&lt;span class="nt">&amp;lt;/stopMediaPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;voipControlPort&amp;gt;&lt;/span>5060&lt;span class="nt">&amp;lt;/voipControlPort&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpForAudio&amp;gt;&lt;/span>184&lt;span class="nt">&amp;lt;/dscpForAudio&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpVideo&amp;gt;&lt;/span>136&lt;span class="nt">&amp;lt;/dscpVideo&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dscpForTelepresence&amp;gt;&lt;/span>128&lt;span class="nt">&amp;lt;/dscpForTelepresence&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ringSettingBusyStationPolicy&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/ringSettingBusyStationPolicy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;softKeyFile&amp;gt;&lt;/span>softkey.xml&lt;span class="nt">&amp;lt;/softKeyFile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dialTemplate&amp;gt;&lt;/span>dialplan.xml&lt;span class="nt">&amp;lt;/dialTemplate&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;phoneLabel&amp;gt;&lt;/span>[ETIQUETA DEL TELEFONO]&lt;span class="nt">&amp;lt;/phoneLabel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sipLines&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;line&lt;/span> &lt;span class="na">button=&lt;/span>&lt;span class="s">&amp;#34;1&amp;#34;&lt;/span> &lt;span class="na">lineIndex=&lt;/span>&lt;span class="s">&amp;#34;1&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureID&amp;gt;&lt;/span>9&lt;span class="nt">&amp;lt;/featureID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureLabel&amp;gt;&lt;/span>[ETIQUETA DE LA EXTENSIÓN]&lt;span class="nt">&amp;lt;/featureLabel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;name&amp;gt;&lt;/span>[NUMERO DE EXTENSION]&lt;span class="nt">&amp;lt;/name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;displayName&amp;gt;&lt;/span>[ETIQUETA DE LA EXTENSIÓN]&lt;span class="nt">&amp;lt;/displayName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;contact&amp;gt;&lt;/span>[NUMERO DE EXTENSION]&lt;span class="nt">&amp;lt;/contact&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;proxy&amp;gt;&lt;/span>USECALLMANAGER&lt;span class="nt">&amp;lt;/proxy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;port&amp;gt;&lt;/span>5060&lt;span class="nt">&amp;lt;/port&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoAnswer&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;autoAnswerEnabled&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/autoAnswerEnabled&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/autoAnswer&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callWaiting&amp;gt;&lt;/span>3&lt;span class="nt">&amp;lt;/callWaiting&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;authName&amp;gt;&lt;/span>[NUMERO DE EXTENSION]&lt;span class="nt">&amp;lt;/authName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;authPassword&amp;gt;&lt;/span>[CONTRASEÑA DE LA EXTENSION]&lt;span class="nt">&amp;lt;/authPassword&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;sharedLine&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/sharedLine&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;messageWaitingLampPolicy&amp;gt;&lt;/span>1&lt;span class="nt">&amp;lt;/messageWaitingLampPolicy&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;messagesNumber&amp;gt;&lt;/span>*97&lt;span class="nt">&amp;lt;/messagesNumber&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ringSettingIdle&amp;gt;&lt;/span>4&lt;span class="nt">&amp;lt;/ringSettingIdle&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;ringSettingActive&amp;gt;&lt;/span>5&lt;span class="nt">&amp;lt;/ringSettingActive&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;forwardCallInfoDisplay&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callerName&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/callerName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;callerNumber&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/callerNumber&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;redirectedNumber&amp;gt;&lt;/span>false&lt;span class="nt">&amp;lt;/redirectedNumber&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;dialedNumber&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/dialedNumber&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/forwardCallInfoDisplay&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;maxNumCalls&amp;gt;&lt;/span>4&lt;span class="nt">&amp;lt;/maxNumCalls&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;busyTrigger&amp;gt;&lt;/span>2&lt;span class="nt">&amp;lt;/busyTrigger&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/line&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;line&lt;/span> &lt;span class="na">button=&lt;/span>&lt;span class="s">&amp;#34;2&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureID&amp;gt;&lt;/span>21&lt;span class="nt">&amp;lt;/featureID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureLabel&amp;gt;&lt;/span>[ETIQUETA DE MARCADO RÀPIDO]&lt;span class="nt">&amp;lt;/featureLabel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;speedDialNumber&amp;gt;&lt;/span>[EXTENSIÓN O NUMERO DE MARCADO RÀPIDO]&lt;span class="nt">&amp;lt;/speedDialNumber&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureOptionMask&amp;gt;&lt;/span>0&lt;span class="nt">&amp;lt;/featureOptionMask&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/line&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;line&lt;/span> &lt;span class="na">button=&lt;/span>&lt;span class="s">&amp;#34;3&amp;#34;&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureID&amp;gt;&lt;/span>20&lt;span class="nt">&amp;lt;/featureID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;featureLabel&amp;gt;&lt;/span>Directorio&lt;span class="nt">&amp;lt;/featureLabel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;serviceURI&amp;gt;&lt;/span>TFTP:directorio.xml&lt;span class="nt">&amp;lt;/serviceURI&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/line&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/sipLines&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;lt;/sipProfile&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nt">&amp;lt;/device&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Esta es una lista de los valores que he estado modificando dentro del archivo XML.&lt;/p>
&lt;p>Para especificar un servidor de hora:&lt;/p>
&lt;ntp>
&lt;name>\[DIRECCIÓN IP DEL SERVIDOR DE HORA (NTP)\]&lt;/name>
&lt;ntpmode>Unicast&lt;/ntpmode>
&lt;/ntp>
&lt;p>Indicar la dirección del servidor Elastix:&lt;/p>
&lt;p>&lt;processnodename>&lt;/p>
\[DIRECCIÓN IP DEL SERVIDOR ELASTIX\]&lt;p>&lt;/processnodename>&lt;/p>
&lt;p>Etiqueta del teléfono (aparece en la esquina superior derecha de la pantalla):&lt;/p>
&lt;p>&lt;phonelabel>&lt;/p>
\[ETIQUETA DEL TELEFONO\]&lt;p>&lt;/phonelabel>&lt;/p>
&lt;p>Información para la conexión de la extensión:&lt;/p>
&lt;p>&lt;name>&lt;/p>
\[NUMERO DE EXTENSION\]&lt;p>&lt;/name>&lt;authName>&lt;/p>
\[NUMERO DE EXTENSION\]&lt;p>&lt;/authName>&lt;br>
&lt;authPassword>&lt;/p>
\[CONTRASEÑA DE LA EXTENSION\]&lt;p>&lt;/authPassword>&lt;/p>
&lt;h2 id="conclusiones">Conclusiones
&lt;/h2>&lt;p>Todavía me falta mucho por hacer con este teléfono. Tengo pendiente pasarle una lista de teléfonos a manera de directorio, pero mientras tanto ya puede hacer y recibir llamadas.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6070/6117328155%5F5fb5339387%5Fm.jpg"
alt="Telefono conectado exitosamente a Elastix">&lt;figcaption>
&lt;p>Telefono conectado exitosamente a Elastix&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6090/6117329005%5F728e659af3%5Fm.jpg"
alt="Recibiendo una llamada">&lt;figcaption>
&lt;p>Recibiendo una llamada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="actualización-2011-09-30">Actualización 2011-09-30
&lt;/h2>&lt;p>Acabo de encontrar otro archivo de configuración mucho más completo y que te da más funcionalidad al teléfono.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6125/6198322500%5F1e1f2e7839.jpg"
alt="Cisco 9951 archivo de configuración XML">&lt;figcaption>
&lt;p>Cisco 9951 archivo de configuración XML&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2011/09/SEP012345679AB.cnf_.xml_.zip" >SEP012345679AB.cnf.xml.zip&lt;/a>
&lt;/p>
&lt;p>Ahorita estoy investigando el uso de &lt;a class="link" href="http://sourceforge.net/projects/open79xxdir/" target="_blank" rel="noopener"
>Open79xx XML Directory&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Este programa permite administrar una lista telefónica que carga automáticamente el teléfono.&lt;/p>
&lt;h2 id="actualización-2012-06-05">Actualización 2012-06-05
&lt;/h2>&lt;p>Si durante las llamadas escuchan un &lt;em>beep&lt;/em> de manera intermitente, por favor busquen este valor en el archivo xml de configuración y cambien su valor a cero.&lt;/p>
&lt;p>&lt;recordingTone>0&lt;/recordingTone>&lt;/p>
&lt;h3 id="referencias">Referencias
&lt;/h3>&lt;ul>
&lt;li>\[1\] &lt;a class="link" href="https://web.archive.org/web/20181128094249/http://www.minded.ca/2009-12-16/configure-cisco-ip-phones-with-asterisk/" title="Guía para configurar teléfonos IP Phone Cisco con asterisk"
target="_blank" rel="noopener"
>Configure Cisco IP Phones with Asterisk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Una excelente guía sobre los puntos que hay que cuidar para que funcione este teléfono. Lamentablemente no cubre al Cisco 9951 pero aún así dio algo de luz en el camino.&lt;/li>
&lt;li>\[2\] &lt;strong>TEMA: Cisco firmware SIP 9.x con Asterisk (9951 / 9971)&lt;/strong>. Este fue el primer tema que ví. Lo malo de este artículo es que es muy escueto y muchas dudas las tuve que ir deduciendo.&lt;/li>
&lt;li>\[3\] &lt;a class="link" href="http://www.voip-info.org/wiki/view/Asterisk&amp;#43;phone&amp;#43;cisco&amp;#43;79x1&amp;#43;xml&amp;#43;configuration&amp;#43;files&amp;#43;for&amp;#43;SIP" target="_blank" rel="noopener"
>Asterisk phone cisco 79x1 xml configuration files for SIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Lo valioso de este articulo es que explica muchos de los puntos de configuración del archivo XML que sirve para configurar el teléfono.&lt;/li>
&lt;/ul></description></item><item><title>Programa en Python para descargar imágenes de una página web</title><link>https://linuxmanr4.com/2011/09/01/programa-python-descargar-imagenes/</link><pubDate>Thu, 01 Sep 2011 14:43:42 +0000</pubDate><guid>https://linuxmanr4.com/2011/09/01/programa-python-descargar-imagenes/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/09/programa_python_descargar_imagenes.jpg" alt="Featured image of post Programa en Python para descargar imágenes de una página web" />&lt;h2 id="el-problema">El problema.
&lt;/h2>&lt;p>Necesitaba descargar las imágenes de un sitio. Intenté de varias formas con resultados mixtos. Al principio usé wget, pero por más que le moví a los parámetros del comando descargaba de todo menos las imágenes. Sospecho que el problema fue que los archivos que quería descargar estaban en otros sitios conocidos por hospedar imágenes como Flickr o ImageShack. Era tiempo de ver otras opciones.&lt;/p>
&lt;h2 id="posibles-soluciones">Posibles soluciones.
&lt;/h2>&lt;p>Primero intenté con &lt;a class="link" href="https://addons.mozilla.org/es-es/firefox/addon/downthemall/" target="_blank" rel="noopener"
>DownThemAll&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un &lt;em>archifamoso&lt;/em> complemento para firefox que permite descargar archivos de una página. Con la opción del filtro permite especificar únicamente las imágenes. Hace el trabajo, pero con demasiados clics de ratón. Lo dejé como plan B.&lt;/p>
&lt;p>&lt;strong>Image Harvester&lt;/strong> parecía ser justo lo que necesitaba. Lamentablemente resulto demasiado lento y de resultados dudosos. Después de 10 minutos jamás vi una imagen JPG en la enormidad de directorios que hizo el script. Afortunadamente inspeccionando su código surgío una idea.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.atareao.es/ubuntu/conociendo-ubuntu/descargar-las-imagenes-de-una-pagina-web-desde-el-terminal/" target="_blank" rel="noopener"
>ImageDownloader&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un script desarrollado por &lt;a class="link" href="https://plus.google.com/102913904287856676595/posts" target="_blank" rel="noopener"
>Lorenzo Carbonell&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. La &lt;a class="link" href="https://linuxmanr4.com/2015/03/17/codeacademy-una-buena-idea-mal-ejecutada/" >idea era buena&lt;/a>
, buscar en una página todas las etiquetas &lt;strong>img&lt;/strong> para luego descargarlas, simple y elegante. Sin embargo este script adolece de un gran problema, al encontrar la primera imagen con una referencia relativa ¡El programa truena! así que tampoco fue una solución.&lt;/p>
&lt;h2 id="imagedownloader--wget">ImageDownloader + wget
&lt;/h2>&lt;p>Primero quiero aclarar que mis habilidades con python son muy básicas, así que cualquier sugerencia será bienvenida. Modificando un poco el script de Image Downloader y encargandole la tarea de descargar los archivos a wget logré mi objetivo.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6205/6103292402%5F1d71d54595.jpg"
alt="idw descargando imágenes">&lt;figcaption>
&lt;p>idw descargando imágenes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todavía tiene problemas con rutas de imágenes relativas pero ya no truena y simplemente continua con la siguiente imagen. Todos los archivos los descarga en el directorio que se esta ejecutando.&lt;/p>
&lt;p>Si lo necesitan o lo quieren modificar pueden descargar idw.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#! /usr/bin/python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: iso-8859-1 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">__author__&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Lorenzo Carbonell&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">__date__&lt;/span> &lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;$10/06/2011&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyright (C) 2011 Lorenzo Carbonell&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lorenzo.carbonell.cerezo@gmail.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This program is free software: you can redistribute it and/or modify&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># it under the terms of the GNU General Public License as published by&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># the Free Software Foundation, either version 3 of the License, or&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># (at your option) any later version.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This program is distributed in the hope that it will be useful,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># GNU General Public License for more details.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># You should have received a copy of the GNU General Public License&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># along with this program. If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Modificaciones para usarlo con wget: Linuxman http://linuxman.blogsome.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">urllib2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">re&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">os.path&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">basename&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">urlparse&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">urlsplit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">EXTENSIONS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.png&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.jpeg&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">download_images_from_url&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">url&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lower&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">startswith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;http://&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">url&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lower&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">startswith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;https://&amp;#39;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;http://&lt;/span>&lt;span class="si">%s&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="n">url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="s1">&amp;#39;Downloading from &lt;/span>&lt;span class="si">%s&lt;/span>&lt;span class="s1">...&amp;#39;&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="n">url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlContent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">urllib2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urlopen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Búsqueda del tag img en la página web.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># HTML image tag: &amp;lt;img src=&amp;#34;url&amp;#34; alt=&amp;#34;some_text&amp;#34;/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">imgUrls&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">re&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">findall&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;img .*?src=&amp;#34;(.*?)&amp;#34;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">urlContent&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># download all images&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">imgUrl&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">imgUrls&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># El print me sirvio para identificar los url relativos,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># a continuación intenta descargar el archivo con wget.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="n">imgUrl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;wget -q -nc &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">imgUrl&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">args&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">args&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="s1">&amp;#39;I need an url to download images&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="n">args&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">download_images_from_url&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">args&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>El siguiente paso será resolver las rutas relativas, o probablemente usar axel en lugar de wget para acelerar las descargas.&lt;/p>
&lt;h2 id="actualización-agosto-2015">Actualización agosto 2015
&lt;/h2>&lt;p>Nuevamente necesité de usar este script y tuve que hacerle unas pequeñas mejoras. El mayor cambio fue el ejecutable de Python, ya que este script esta codificado en Python2 y si no le especifico otra cosa Manjaro manda llamar a Python3 provocando errores en la ejecución del programa.&lt;/p>
&lt;p>Esta es la versión corregida y ligeramente modificada.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/09/idw-script-en-python-para-descargar-im%C3%A1genes.jpg"
alt="idw script en python para descargar imágenes">&lt;figcaption>
&lt;p>idw script en python para descargar imágenes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#! /usr/bin/python2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: iso-8859-1 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">__author__&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Lorenzo Carbonell&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">__date__&lt;/span> &lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;$10/06/2011&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># IDW descarga todas las imágenes disponibles en un URL.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Copyright (C) 2011 Lorenzo Carbonell&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># lorenzo.carbonell.cerezo@gmail.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This program is free software: you can redistribute it and/or modify&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># it under the terms of the GNU General Public License as published by&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># the Free Software Foundation, either version 3 of the License, or&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># (at your option) any later version.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This program is distributed in the hope that it will be useful,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># GNU General Public License for more details.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># You should have received a copy of the GNU General Public License&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># along with this program. If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Modificaciones para usarlo con wget: Linuxman http://linuxmanr4.com&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">urllib2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">re&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">os.path&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">basename&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">urlparse&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">urlsplit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">EXTENSIONS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.png&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;.jpeg&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">download_images_from_url&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">url&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lower&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">startswith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;http://&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">url&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lower&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">startswith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;https://&amp;#39;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;http://&lt;/span>&lt;span class="si">%s&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="n">url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="s1">&amp;#39;Descargando de &lt;/span>&lt;span class="si">%s&lt;/span>&lt;span class="s1">...&amp;#39;&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="n">url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlContent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">urllib2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urlopen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Búsqueda del tag img en la página web.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># HTML image tag: &amp;lt;img src=&amp;#34;url&amp;#34; alt=&amp;#34;some_text&amp;#34;/&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">imgUrls&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">re&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">findall&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;img .*?src=&amp;#34;(.*?)&amp;#34;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">urlContent&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Descargar todas las imágenes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">imgUrl&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">imgUrls&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># El print me sirvio para identificar los url relativos,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># a continuación intenta descargar el archivo con wget.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="n">imgUrl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">system&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;wget -q -nc &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">imgUrl&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">args&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">args&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="s1">&amp;#39;Necesito una dirección URL para descargar imágenes&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="n">args&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">download_images_from_url&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">args&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="mi-versión-septiembre-2022">Mi versión (septiembre 2022)
&lt;/h2>&lt;p>Han pasado algunos años desde que escribí este artículo y ahora que se un poco más sobre Pyhton decidí hacer mi propia versión de este programa.&lt;/p>
&lt;p>El resultado es un código mucho más simple. Solamente utilizo dos módulos: &lt;a class="link" href="https://pypi.org/project/requests/" target="_blank" rel="noopener"
>requests&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para las descargas y &lt;a class="link" href="https://docs.python.org/es/3/library/re.html" target="_blank" rel="noopener"
>re&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para manejar las expresiones regulares.&lt;/p>
&lt;p>También uso otra expresión regular (que no es perfecta) pero que involucra diferentes tipos de conexión como http y https. También incluye ahora un formato que en aquellos días no era muy popular &lt;a class="link" href="https://linuxmanr4.com/2020/07/30/convertir-archivos-jpg-a-webp-con-python/" >Webp&lt;/a>
.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: utf_8 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Descargar Imágenes de una página web ... diw.py&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Este programa encuentra todas los enlaces a imágenes en una página web
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">y las descarga.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">re&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">URL&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;https://centaurodelnorte.com/ex-hacienda-la-loma-cuna-de-la-division-del-norte/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;descarga.html&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Guardamos el archivo para consulta y referencia.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># pero es opcional&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URL&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtener las direcciones de las imágenes usando expresiones regulares.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">html&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;utf-8&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">regex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">r&lt;/span>&lt;span class="s2">&amp;#34;(?:(?:https?)+\:\/\/+[a-zA-Z0-9_ÑñÁáÉéÍíÓóÚú\/\._-]{1,})+(?:(?:jpe?g|png|gif|webp))&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">matches&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">re&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">findall&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">regex&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">html&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Descargamos las imágenes encontradas.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">matches&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nombre_archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rfind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;/&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nombre_archivo&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Una novedad para mi fue el uso de la función &lt;a class="link" href="https://docs.python.org/es/3/library/stdtypes.html?highlight=rfind" target="_blank" rel="noopener"
>rfind&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para separar el nombre del archivo del url de la imagen. Me pareció una solución muy elegante al problema.&lt;/p>
&lt;p>De último minuto hice una corrección en la expresión regular para que también incluyera &lt;strong>vocales acentuadas&lt;/strong> y la letra &lt;strong>ñ&lt;/strong> como elementos del enlace. Son poco frecuentes, pero me di cuenta haciendo algunas pruebas que si puede pasar.&lt;/p>
&lt;h2 id="agregando-opciones">Agregando opciones
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/09/diw%5Fagregando%5Fopciones.png">
&lt;/figure>
&lt;p>Para hacer la ejecución del código más flexible decidí incluir el manejo de opciones. Por el momento la única opción es el URL de la página que se quiere analizar para descargar las imágenes.&lt;/p>
&lt;p>Usando el módulo &lt;a class="link" href="https://docs.python.org/es/3/howto/argparse.html" target="_blank" rel="noopener"
>Argparse&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es muy sencillo. El código quedó más o menos así.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env python3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># -*- coding: utf_8 -*-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Descargar Imágenes de una página web ... diw.py&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ------------------------------------------------&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">Este programa encuentra todas los enlaces a imágenes en una página web
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">y las descarga.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">argparse&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">re&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Empezamos con un parámetro que es la url que quiero analizar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">parser&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">argparse&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ArgumentParser&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">description&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Descarga las imágenes de una página web.&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">parser&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">add_argument&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;-u&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;--url&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">help&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;URL de la página.&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">required&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">args&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">parser&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parse_args&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">URL&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">args&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;descarga.html&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Guardamos el archivo para consulta y referencia.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># pero es opcional&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">URL&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">archivo&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtener las direcciones de las imágenes usando expresiones regulares.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">html&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;utf-8&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">regex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">r&lt;/span>&lt;span class="s2">&amp;#34;(?:(?:https?)+\:\/\/+[a-zA-Z0-9_ÑñÁáÉéÍíÓóÚú\/\._-]{1,})+(?:(?:jpe?g|png|gif|webp))&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">matches&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">re&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">findall&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">regex&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">html&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Descargamos las imágenes encontradas.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">matches&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nombre_archivo&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rfind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;/&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">respuesta&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nombre_archivo&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">respuesta&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">content&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pues eso es todo, happy coding y hasta la próxima.&lt;/p></description></item><item><title>Edición de imágenes por lote con Gimp (Batch Image Processor)</title><link>https://linuxmanr4.com/2011/08/19/edicion-de-imagenes-por-lote-con-gimp-batch-image-processor/</link><pubDate>Fri, 19 Aug 2011 14:57:54 +0000</pubDate><guid>https://linuxmanr4.com/2011/08/19/edicion-de-imagenes-por-lote-con-gimp-batch-image-processor/</guid><description>&lt;p>No es un secreto que uso &lt;a class="link" href="http://www.gimp.org/" target="_blank" rel="noopener"
>GIMP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, muchas de las imágenes de este blog han sido adaptadas y retocadas usando este programa y con el tiempo se ha vuelto en uno de mis favoritos tanto en linux como en windows.&lt;/p>
&lt;p>Muchas veces hay que preparar las imagenes antes de empezar a trabajar con ellas, uno de los ajustes más frecuentes es el &lt;em>resize&lt;/em> o cambio de tamaño de la imagen. Para hacer esto con Gimp tenía que hacerlo una imagen a la vez o utilizar un programa como &lt;a class="link" href="http://photobatch.stani.be/" target="_blank" rel="noopener"
>Phatch&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para hacer los ajustes a la imagen.&lt;/p>
&lt;p>Pero me encontré con David’s Batch Processor, un plug-in para GIMP que permite realizar ajustes básicos a varias imágenes por lote.&lt;/p>
&lt;p>Instalarlo en Windows es sencillo, solo hay que bajar el archivo y colocarlo en la carpeta de plug-ins de GIMP. En Ubuntu hay que trabajar un poquito más porque hay que compilarlo.&lt;/p>
&lt;p>Primero descargué el archivo &lt;a class="link" href="http://www.ozemail.com.au/~hodsond/dbpSrc-1-1-9.tgz" target="_blank" rel="noopener"
>http://www.ozemail.com.au/~hodsond/dbpSrc-1-1-9.tgz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
del sitio del proyecto y extraje los archivos en una carpeta.&lt;/p>
&lt;p>Para poder compilar el plug-in tienen que estar instalados los paquetes &lt;strong>g++&lt;/strong> y &lt;strong>libgimp2.0-dev&lt;/strong> que se pueden encontrar muy fácilmente en el &lt;em>Centro de software de Ubuntu&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6070/6059363246%5Fbea57c392c.jpg"
alt="libgimp2.0-dev instalado">&lt;figcaption>
&lt;p>libgimp2.0-dev instalado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En una terminal hay que ejecutar el comando &lt;strong>make install&lt;/strong> y listo, compila e instala en una sola pasada.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6089/6059363080%5F2b248e421e.jpg"
alt="Compilando el plugin dbp">&lt;figcaption>
&lt;p>Compilando el plugin dbp&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si después quieren quitar el paquete &lt;strong>libgimp2.0-dev&lt;/strong> lo pueden hacer con toda confianza, solo es necesario para el paso anterior y se ahorrarán unos 68 MB de espacio.&lt;/p>
&lt;p>Si todo salio bien deberán de ver &lt;strong>Batch Process&amp;hellip;&lt;/strong> en el menú &lt;strong>Filtros&lt;/strong> de Gimp.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6065/6058816423%5Ff9fba7a0ed.jpg"
alt="dbp funcionando">&lt;figcaption>
&lt;p>dbp funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Espero que les sea útil :)&lt;/p></description></item><item><title>Arranque de ubuntu optimizado con e4rat</title><link>https://linuxmanr4.com/2011/08/10/arranque-de-ubuntu-optimizado-con-e4rat/</link><pubDate>Wed, 10 Aug 2011 13:50:12 +0000</pubDate><guid>https://linuxmanr4.com/2011/08/10/arranque-de-ubuntu-optimizado-con-e4rat/</guid><description>&lt;p>Hace poco seguí el tutorial &lt;a class="link" href="http://www.howtogeek.com/69753/how-to-cut-your-linux-pcs-boot-time-in-half-with-e4rat/" target="_blank" rel="noopener"
>How To Cut Your Linux PC’s Boot Time in Half With E4rat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que explica como optimizar el arranque de los equipos usando una herramienta llamada e4rat.&lt;/p>
&lt;p>&lt;a class="link" href="http://e4rat.sourceforge.net/" target="_blank" rel="noopener"
>e4rat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un conjunto de herramientas para acelerar el proceso de arranque, así como las aplicaciones que se cargan durante el arranque. A través de la reubicación física e4rat elimina los tiempos de búsquedas y los retrasos de rotación. Esto lleva a una alta tasa de transferencia del disco duro.&lt;/p>
&lt;p>Puede parecer un poco complicado pero no lo es, lo hice en mi netbook y en la computadora del trabajo con buenos resultados. Y para muestra les traigo este video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/W-BxSUrJi8g"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Algunas aplicaciones que uso con frecuencia como chrome, empathy o skype las inicio automáticamente. E4rat durante el proceso de recopilación de información incluye todo aquello que se inicie 2 minutos después del arranque. Noten como justo en el momento de aparecer el escritorio skype ya esta listo e iniciando sesión.&lt;/p></description></item><item><title>Axel acelerador de descargas</title><link>https://linuxmanr4.com/2011/08/01/axel-acelerador-de-descargas/</link><pubDate>Mon, 01 Aug 2011 18:18:49 +0000</pubDate><guid>https://linuxmanr4.com/2011/08/01/axel-acelerador-de-descargas/</guid><description>&lt;p>Gracias a este &lt;a class="link" href="https://plus.google.com/100982477706078305934/posts/QcttSDTeTFT" target="_blank" rel="noopener"
>comentario&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de &lt;a class="link" href="https://plus.google.com/100982477706078305934/posts" target="_blank" rel="noopener"
>Julio Poisot&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me enteré de &lt;a class="link" href="https://web.archive.org/web/20080420055347/http://alioth.debian.org/projects/axel/" target="_blank" rel="noopener"
>Axel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Axel intenta acelerar la descarga de procesos HTTP/FTP usando múltiples conexiones para cada archivo. Es muy ligero, no tiene dependencias y se puede utilizar como un clon de &lt;em>wget&lt;/em>.&lt;/p>
&lt;p>Para instalarlo en linux solo es necesario teclear&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install axel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="desde-la-terminal">Desde la terminal.
&lt;/h2>&lt;p>Para ejecutarse en una terminal basta con escribir &lt;em>axel&lt;/em> seguido de la url del archivo a descargar.&lt;/p>
&lt;figure>&lt;img src="https://farm7.static.flickr.com/6027/5999020808_89d9594833.jpg"
alt="axel linea de comandos">&lt;figcaption>
&lt;p>axel linea de comandos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="apt-fast">apt-fast
&lt;/h2>&lt;p>&lt;a class="link" href="https://web.archive.org/web/20080607015421/http://www.mattparnell.com/projects/apt-fast-and-axel-roughly-26x-faster-apt-get-installations-and-upgrades.html" target="_blank" rel="noopener"
>apt-fast&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es una combinación de &lt;em>apt-get&lt;/em> y &lt;em>axel&lt;/em> que permite descargar las actualizaciones o instalaciones más rápidamente ya que utiliza a axel para descargar los archivos.&lt;/p>
&lt;p>Se tiene que instalar el script pero no es complicado.&lt;/p>
&lt;p>Primero se baja el archivo &lt;a class="link" href="https://web.archive.org/web/20190430015013/https://www.mattparnell.com/linux/apt-fast/apt-fast.sh" target="_blank" rel="noopener"
>apt-fast.sh&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Se abre una terminal y en el lugar donde se descargo el archivo teclear lo siguiente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mv apt-fast.sh apt-fast
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod +x apt-fast
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo mv apt-fast /usr/bin
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y listo, se usa de manera muy similar a &lt;em>apt-get&lt;/em> por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-fast update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-fast upgrade
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://farm7.static.flickr.com/6001/5998469307_5597f68a94.jpg"
alt="apt fast update">&lt;figcaption>
&lt;p>apt fast update&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa manera nuestro Ubuntu esta actualizado de manera más rápida.&lt;/p>
&lt;h2 id="extensión-de-chrome">Extensión de chrome
&lt;/h2>&lt;p>Pero también lo podemos usar en Chrome, para eso es necesario instalar la extensión Download Assistant.&lt;/p>
&lt;figure>&lt;img src="https://farm7.static.flickr.com/6149/5998471493_17d403152f.jpg"
alt="download assistant">&lt;figcaption>
&lt;p>download assistant&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://farm7.static.flickr.com/6148/5998472329_18fa7a6f90.jpg"
alt="Iniciando la descarga con Axel">&lt;figcaption>
&lt;p>Iniciando la descarga con Axel&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Esta extensión nos da la oportunidad de elegir nuestro manejador de descargas favorito en varias plataformas incluyendo &lt;em>JDownloader&lt;/em> ¡yeeeeei!.&lt;/p></description></item><item><title>Samsung Galaxy Ace GT-5830L</title><link>https://linuxmanr4.com/2011/07/21/samsung-galaxy-ace-gt-5830l/</link><pubDate>Fri, 22 Jul 2011 01:03:32 +0000</pubDate><guid>https://linuxmanr4.com/2011/07/21/samsung-galaxy-ace-gt-5830l/</guid><description>&lt;p>Sigan mi consejo, no compren celulares por moda, es cuento de nunca acabar y para el siguiente mes ya salio otro teléfono mejor y más barato. Pero que quieren que haga si mi chaparrita y yo no pudimos resistir la tentación de comprar este teléfono. Lamentablemente por el momento solo lo tienen disponible en Telcel.&lt;/p>
&lt;h1 id="características">Características.
&lt;/h1>&lt;figure>&lt;img src="http://farm7.static.flickr.com/6134/5962800622%5F2ac5f4dd58.jpg"
alt="Pantalla inicial">&lt;figcaption>
&lt;p>Pantalla inicial&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6023/5962800612%5F40e1d30862.jpg"
alt="Modelo y versión de Android">&lt;figcaption>
&lt;p>Modelo y versión de Android&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De entrada lo que más llama la atención es su peso liviano y su generosa pantalla. Su diseño es muy similar al de un iPhone aunque claro , estamos hablando de un teléfono que ejecuta el sistema android.&lt;/p>
&lt;p>El Galaxy Ace es un equipo de mediano, así que no me parece justo compararlo con su hermano mayor el Galaxy S ( o el más reciente el S II), sin embargo es un buen equipo en su rango de precio.&lt;/p>
&lt;p>Como siempre la calidad de sus fotos y videos es muy buena ya que cuenta con unos generosos 5 megapixeles y tiene opciones muy similares a las del &lt;a class="link" href="https://linuxmanr4.com/2010/06/09/samsung-tocco-o-s5560/" title="Samsung Tocco S5560"
>Samsung Tocco&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6014/5962800604%5F09b8e8de75.jpg"
alt="avion mañanero">&lt;figcaption>
&lt;p>avion mañanero&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/GfdR7pxQVlc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/k1-4QWhEHZ8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Quiero destacar el buen audio que tienen los videos, se escucha hasta el zumbido de una mosca !!!&lt;/p>
&lt;h1 id="contras">Contras
&lt;/h1>&lt;p>El sistema operativo esta muy contaminado con opciones de Telcel, pero eso era de esperarse al ser un teléfono de esta compañía. Viene con dos tapas una negra y otra de color blanco, pero utiliza un cierre a presión, me parece que con cualquier golpe se abre y saldría volando la batería pero claro nadie quiere que eso ocurra.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6128/5962800606%5Fa952605389.jpg"
alt="Contaminación de Telcel">&lt;figcaption>
&lt;p>Contaminación de Telcel&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h1 id="desbloqueo">Desbloqueo
&lt;/h1>&lt;p>Para desbloquearlo utilicé los servicios de &lt;a class="link" href="http://www.gsmliberty.net/" title="Servicio de desbloqueo de celulares"
target="_blank" rel="noopener"
>GSMLiberty.net&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tienen buen servicio y aunque a veces te hacen esperar un poco no te abandonan. Además un tip, si mandas un video a youtube mencionando sus servicios la desbloqueada es gratis. :).&lt;/p>
&lt;p>Ellos me dijeron que no se podía mediante IMEI, pero me mandaron el software y las instrucciones para desbloquearlo.&lt;/p>
&lt;p>En este momento aunque el teléfono me dice que esta desbloqueado no lo he podido utilizar con Unefon, al parecer hay un detalle con este proveedor de telefonía espero solucionarlo pronto.&lt;/p>
&lt;p>Después de hacer que funcione con Unefon, el paso siguiente sería flashearlo, pero esa es otra historia.&lt;/p>
&lt;h2 id="actualización-sobre-el-desbloqueo">Actualización sobre el desbloqueo.
&lt;/h2>&lt;p>Pues resulta que los amigos de GSMLiberty cumplieron, me dijeron que tecleara &lt;strong>*#7465625#&lt;/strong> en el celular y aparece la siguiente pantalla.&lt;/p>
&lt;figure>&lt;img src="http://farm7.static.flickr.com/6135/5962800608%5F764e75ba44.jpg"
alt="Información del desbloqueo">&lt;figcaption>
&lt;p>Información del desbloqueo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Donde dice &lt;strong>Bloqueo de red \[OFF\]&lt;/strong> es precisamente el dato que indica que el teléfono esta desbloqueado.&lt;/p>
&lt;p>Sin embargo tenía el problema que después de ponerle el chip de Unefon, al arrancar me aparecía un candadito que decía &lt;strong>Bloqueo de red&lt;/strong> y abajo un botón de &lt;strong>Rechazar&lt;/strong>.&lt;/p>
&lt;p>Al presionar el botón arranca normalmente el teléfono con la leyenda de &lt;strong>Sólo llamadas de emergencia&lt;/strong>, me apaparecían las barritas de señal completas y a un lado un iconito de una simcard con un signo de admiración.&lt;/p>
&lt;p>Al final se solucionó cambiando totalmente el firmware del teléfono. Para eso seguí las instrucciones del buen amigo Carvax en su artículo &lt;a class="link" href="http://carvax.com.mx/flasheo-universal-galaxy-ace/" target="_blank" rel="noopener"
>Instalar Android 2.2.1, 2.3.3 y 2.3.4 en Samsung Galaxy ACE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y después las instrucciones de este video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/dabgZUqgNlo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Después de hacer todo esto al fin me aparece la red de Unefon en el Galaxy Ace.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.phonearena.com/phones/Samsung-Galaxy-Ace_id5145" title="Samsung Galaxy Ace - PhoneArena"
target="_blank" rel="noopener"
>Ficha Técnica Phone Arena&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="http://www.gsmarena.com/samsung_galaxy_ace_s5830-3724.php" title="Samsung Galaxy Ace - GSMArena"
target="_blank" rel="noopener"
>Ficha Técnica GSMArena&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;em>P.D. : Yo sigo con mi HTC Wizard, ese canijo es indestructible !!!&lt;/em>&lt;/p></description></item><item><title>Como restaurar un respaldo en Elastix</title><link>https://linuxmanr4.com/2011/07/14/como-restaurar-un-respaldo-en-elastix/</link><pubDate>Thu, 14 Jul 2011 21:09:11 +0000</pubDate><guid>https://linuxmanr4.com/2011/07/14/como-restaurar-un-respaldo-en-elastix/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/conmutador-elastix-tarjetas-openvox.jpg" alt="Featured image of post Como restaurar un respaldo en Elastix" />&lt;p>Mal inicio de semana el que tuve. Durante el fin de semana hubo sobrecargas eléctricas en el trabajo, al llegar el lunes temprano de buen humor después de haber pasado el fin de semana viendo un maratón de &lt;em>Game of Thrones&lt;/em> con mi chaparrita me encuentro con un escenario de pesadilla.&lt;/p>
&lt;p>Un servidor en muy malas condiciones, fallaron dos de sus 3 discos duros y el conmutador Elastix (ahora &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) que al parecer había sobrevivido estoicamente en realidad estaba mal herido y agonizaba.&lt;/p>
&lt;p>Aquella computadora Duron con sus vetustos 512 MB en RAM fue reemplazada con un Celeron y la memoria se duplicó (no necesita más).&lt;/p>
&lt;p>Afortunadamente tenía un respaldo de la configuración, no me quiero ni imaginar el infierno que hubiera sido reconfigurar todas las extensiones. La reinstalación de elastix fue muy rápida unos 20 minutos y ya estaba listo para &lt;em>responder a mi llamado&lt;/em> :) (chiste local).&lt;/p>
&lt;p>Pero me di cuenta de algo, elastix tiene la opción de generar un respaldo, incluso lo puedes descargar, pero &lt;strong>NO TIENE OPCIÓN PARA SUBIR UN RESPALDO&lt;/strong>. Esta bien que confíen en la plataforma , pero los &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >discos duros&lt;/a>
no son eternos.&lt;/p>
&lt;h2 id="a-donde-copiar-el-archivo">¿A donde copiar el archivo?
&lt;/h2>&lt;p>Buscando información sobre como restaurar un respaldo en Elastixun me di cuenta de que hacerlo en el mismo equipo era muy fácil, pero transferir ese respaldo a otro equipo es un poquito más complicado.&lt;/p>
&lt;p>Para restaurar un respaldo que se encuentra en otra computadora a Elastix solo hay que copiar tu archivo de respaldo a la carpeta &lt;strong>/var/www/backup/&lt;/strong>  del equipo nuevo,  recargar la página de respaldos, seleccionar el respaldo que acabo de subir y presionar el botón &lt;strong>Restaurar&lt;/strong>.&lt;/p>
&lt;p>Para subir el archivo utilicé el programa &lt;a class="link" href="http://winscp.net/eng/docs/lang:es" title="WinSCP Free SFTP, SCP and FTP client for Windows"
target="_blank" rel="noopener"
>Winscp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con el usuario de &lt;strong>root&lt;/strong> y su contraseña.&lt;/p>
&lt;p>Solo tengan la precaución de revisar que las versiones de Elastix de la máquina de origen y destino sea exactamente la misma, de lo contrario podrían recibir un mensaje de advertencia.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/07/Elastix-Warning-Versions-to-restore-are-different.png"
alt="Warning Versions to restore are different">&lt;figcaption>
&lt;p>Warning Versions to restore are different&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si quieren una lista de las diferentes versiones que se han publicado de Elastix lo pueden hacer &lt;a class="link" href="http://sourceforge.net/projects/elastix/files/Elastix%20PBX%20Appliance%20Software/" target="_blank" rel="noopener"
>aquí&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En menos de media hora ya tenía el &lt;a class="link" href="https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/" >conmutador telefónico&lt;/a>
listo para pedir ayuda y refacciones.&lt;/p>
&lt;p>¡Gracias software libre!&lt;/p></description></item><item><title>Calamaris + IPCop</title><link>https://linuxmanr4.com/2011/07/01/calamaris-ipcop/</link><pubDate>Fri, 01 Jul 2011 16:10:47 +0000</pubDate><guid>https://linuxmanr4.com/2011/07/01/calamaris-ipcop/</guid><description>&lt;p>&lt;a class="link" href="http://cord.de/tools/squid/calamaris/" target="_blank" rel="noopener"
>Calamaris&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un programa desarrollado en Perl5 que genera reportes con información útil a partir de los archivos de registro (logfiles) de &lt;a class="link" href="http://www.squid-cache.org/" target="_blank" rel="noopener"
>squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En mi caso tengo un proxy transparente con &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y Calamaris me entrega datos sobre las peticiones y consumo de ancho de banda que hacen mis usuarios. Puedo utilizar esta información para establecer bloqueos de sitios, o administrar mejor el ancho de banda con los &lt;a class="link" href="https://linuxmanr4.com/2011/05/25/ipcop-y-los-delay-pools-de-squid/" >delay pools&lt;/a>
.&lt;/p>
&lt;p>Afortunadamente, es muy sencillo instalar &lt;a class="link" href="https://web.archive.org/web/20190926005014/http://calamaris.advproxy.net/" target="_blank" rel="noopener"
>Calamaris en IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ya que cuenta con un &lt;em>add-on&lt;/em>. ya instalado podemos generar los reportes en el menú &lt;strong>Logs&lt;/strong> - &lt;strong>Informes del proxy&lt;/strong>.&lt;/p>
&lt;p>Acabo de sacar el reporte del mes de Junio:&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5264/5891360386%5F94ee55344d.jpg"
alt="IPCop - Informes del Proxy -">&lt;figcaption>
&lt;p>IPCop - Informes del Proxy -&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Los dominios que tienen la mayor cantidad de solicitudes son obvios, Google y Facebook. Pero el que se lleva el premio al consumo de ancho de banda es YouTube, y eso que ya tomé algunas medidas :)&lt;/p></description></item><item><title>LiLi, Linux a donde vayas</title><link>https://linuxmanr4.com/2011/06/24/lili-linux-a-donde-vayas/</link><pubDate>Fri, 24 Jun 2011 16:31:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/24/lili-linux-a-donde-vayas/</guid><description>&lt;p>Linux Live USB Creator es un software gratuito y de código abierto para Windows. Lili crea en 5 simples pasos memorias &lt;a class="link" href="https://linuxmanr4.com/2017/07/06/usb-de-arranque/" >USB de arranque&lt;/a>
y virtualizadas que corren distribuciones de Linux.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5074/5866486655%5F7dbe6da0e1.jpg"
alt="Bajando Puppy linux 02">&lt;figcaption>
&lt;p>Bajando Puppy linux 02&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se pueden crear Linux live&amp;rsquo;s a partir de una imagen iso, un cd o te lo descarga de internet ya que tiene una lista con las principales distribuciones.&lt;/p>
&lt;p>Ideal para probar distros nuevas, hacer demostraciones, o para usar un sistema operativo seguro en un ambiente que no lo es, como puede ser un ciber café o en la escuela.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5155/5866486799%5F09c2bffdc6.jpg"
alt="Puppy Linux corriendo en VirtualBox">&lt;figcaption>
&lt;p>Puppy Linux corriendo en VirtualBox&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El sitio está muy bien estructurado (en inglés) y resuelve la mayoría de las dudas que se puedan tener con el programa o con alguna de sus opciones. Lili permite llevar tu Linux a donde quieras.&lt;/p></description></item><item><title>spoolsv.exe hace lenta la computadora</title><link>https://linuxmanr4.com/2011/06/17/spoolsvexe-hace-lenta-la-computadora/</link><pubDate>Fri, 17 Jun 2011 15:55:09 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/17/spoolsvexe-hace-lenta-la-computadora/</guid><description>&lt;p>Recibí el reporte de un usuario que me decía que su equipo estaba muy lento, y efectivamente así era !!! :)&lt;/p>
&lt;h2 id="los-síntomas">Los síntomas
&lt;/h2>&lt;p>Al revisar los procesos con el &lt;em>Administrador de tareas de Windows&lt;/em> me di cuenta que un solo proceso estaba ocupando toda la atención del microprocesador.&lt;/p>
&lt;p>El proceso pertenecía al programa &lt;strong>spoolsv.exe&lt;/strong> y se podía apreciar que ocupaba el 99% de uso del equipo, provocando que la computadora estuviera demasiado lenta.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5232/5842166715%5Feb78a1ec01%5Fm.jpg"
alt="Spooler o Cola de impresión">&lt;figcaption>
&lt;p>Spooler o Cola de impresión&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="diagnóstico">Diagnóstico
&lt;/h2>&lt;p>El archivo spoolsv.exe es el &lt;strong>Spooler&lt;/strong> o el administrador de la &lt;strong>Cola de Impresión&lt;/strong>, si ocurre un problema al momento de imprimir o un problema con la comunicación de la impresora provoca que este proceso acapare demasiados recursos.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;p>Buscando en google, algunos sugieren reiniciar el servicio, otros que borren los trabajos de impresión que provocan el problema, lo mejor es que se haga ambos. Para hacerlo más sencillo se hizo un archivo .bat que automatiza la tarea.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bat" data-lang="bat">&lt;span class="line">&lt;span class="cl">&lt;span class="p">@&lt;/span>&lt;span class="k">echo&lt;/span> off
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">net stop spooler
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ping -w 1000 1.1.1.1 &lt;span class="p">&amp;gt;&lt;/span> nul
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">echo&lt;/span> Borrando archivos del spool…
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">del&lt;/span> &lt;span class="nv">%systemroot%&lt;/span>\system32\spool\PRINTERS\*.* /Q
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ping -w 1000 1.1.1.1 &lt;span class="p">&amp;gt;&lt;/span> nul
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">net start spooler
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3297/5842713642%5Ff4aab1c532.jpg"
alt="compu lenta - archivo bat">&lt;figcaption>
&lt;p>compu lenta - archivo bat&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con eso paramos el servicio, borramos los archivos que pudieran estar pendientes o corrompidos y volvemos a iniciar el spool de impresión.&lt;/p>
&lt;p>Una nota, si es en &lt;em>windows 7/vista&lt;/em> entonces es necesario ejecutar el archivo bat como administrador.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5115/5842166505%5F67a52424f1.jpg"
alt="Ejecutar como administrador">&lt;figcaption>
&lt;p>Ejecutar como administrador&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Con eso debería ser suficiente para recuperar el control del equipo.&lt;/p>
&lt;h2 id="net-helpmsg-2186">NET HELPMSG 2186
&lt;/h2>&lt;p>A veces el servicio esta tan ocupado que no es suficiente con la solicitud de pararlo, y en su lugar &lt;a class="link" href="https://linuxmanr4.com/2020/11/03/error-al-obtener-la-informacion-del-descriptor-del-archivo/" >obtenemos este mensaje de error&lt;/a>
: net helmsg 2186 . Si esto ocurre con frecuencia entonces no nos queda más remedio que usar la fuerza bruta.&lt;/p>
&lt;p>En lugar de detener el servicio con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">net stop spooler
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sustituimos esa línea con una terminación del proceso que quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">taskkill /im spoolsv.exe /f
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso debería de bastar para recuperar el control de nuestro equipo.&lt;/p></description></item><item><title>Acer AO751h y el driver EMGD</title><link>https://linuxmanr4.com/2011/06/16/acer-ao751h-y-el-driver-emgd/</link><pubDate>Thu, 16 Jun 2011 13:30:13 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/16/acer-ao751h-y-el-driver-emgd/</guid><description>&lt;p>Cuando llegó la mini lapita inmediatamente me di a la tarea de instalarle Ubuntu. El único problema que me encontré fue con el driver de video.&lt;/p>
&lt;p>Mucho se ha escrito sobre el poco interés de Intel por hacer un buen driver para la GMA 500. Incluso cuenta con un grupo de Facebook con una cantidad numerosa de fans que están molestos con el pobre soporte para esta tarjeta.&lt;/p>
&lt;p>En ese entonces le instalé el driver PSB con sentimientos encontrados. Pude ver la pantalla a su resolución nativa (1366x768) y logré ver videos a pantalla completa haciendo algunos trucos con mplayer.&lt;/p>
&lt;p>Con el tiempo apareció una respuesta de Intel para su tarjeta con el driver EMGD, pero para poder probarlo tuve que actualizarme a la versión 11.04.&lt;/p>
&lt;h2 id="instalar-ubuntu-1104-natty-narwhal">Instalar Ubuntu 11.04 natty narwhal.
&lt;/h2>&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5838847527_ac771a615a.jpg"
loading="lazy"
alt="ubuntu natty narwhal unity 2d"
>&lt;/p>
&lt;p>Instalar Ubuntu no fue mayor problema, preparé la memoria usb, aunque después de un segundo intento, no se porque tengo problemas con una memoria kingston y tuve que preparar otra memoria de marca desconocida que arrancó a la primera !!??.&lt;/p>
&lt;p>Me dio gusto ver que el proceso de instalación ha mejorado bastante justo después del primer arranque ya estaban instalados el driver propietario de la tarjeta inalámbrica y los paquetes restringidos.&lt;/p>
&lt;h2 id="instalar-los-drivers-de-video">Instalar los drivers de video.
&lt;/h2>&lt;p>Con ubuntu recién instalado abrí una terminal y teclee las instrucciones que aparecen en el wiki de ubuntu sobre el tema:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo add-apt-repository ppa:gma500/emgd
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt-get install xorg-emgd emgd-dkms
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo emgd-xorg-conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciar y listo, apareció la pantalla con la resolución correcta.&lt;/p>
&lt;h2 id="instalar-unity-2d">Instalar Unity 2D
&lt;/h2>&lt;p>El rendimiento del equipo con Unity no me gustó, el panel superior y los iconos del launcher se veían borrosos y algunos efectos se tardaban demasiado. Por eso le dí una oportunidad a Unity 2D.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install unity-2d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5839398848_1ea7c56881.jpg"
loading="lazy"
alt="ubuntu natty narwhal escritorios"
>&lt;/p>
&lt;p>El rendimiento mejoró bastante, sin embargo, algunos efectos se ven medio raros, como el selector de las areas de trabajo, pero casi no lo uso, en su lugar utilizo la combinación de teclas Ctrl – Alt – Derecha.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>La mejora en el desempeño es notable, abrí un video en pantalla completa directamente del reproductor de películas totem sin una configuración especial y para mi eso ya es ganancia.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5838847177_ea09cf3c5b.jpg"
loading="lazy"
alt="reproducción de video con totem"
>&lt;/p>
&lt;p>Lamentablemente sigue sin poder reproducir satisfactoriamente un video en pantalla completa de youtube. Se nota que requiere de un esfuerzo extra y el video lo reproduce lentamente con demasiados brincos en la imagen.&lt;/p>
&lt;p>El driver EMGD de Intel es una mejora, pero no una respuesta satisfactoria, espero que con el tiempo se siga mejorando o aparezca un driver libre definitivo.&lt;/p>
&lt;h2 id="no-muestra-la-resolución-de-1366x768">No muestra la resolución de 1366x768
&lt;/h2>&lt;p>Un amigo del grupo de facebook menciona que al hacer estos pasos sigue sin mostrar la resolución nativa que es de 1366x768, en lugar de esto aparece con 1024x768.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Section &amp;#34;ServerLayout&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;Default Layout&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen 0 &amp;#34;Screen0&amp;#34; 0 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Device&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;Intel_IEGD-0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Driver &amp;#34;emgd&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> VendorName &amp;#34;Intel(R) DEG&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BoardName &amp;#34;Embedded Graphics&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> BusID &amp;#34;0:2:0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Screen 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;PcfVersion&amp;#34; &amp;#34;1792&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ConfigId&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;PortDrivers&amp;#34; &amp;#34;lvds&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/name&amp;#34; &amp;#34;lvds-display&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/PortOrder&amp;#34; &amp;#34;40000&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DisplayConfig&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/DisplayDetect&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/General/VideoRAM&amp;#34; &amp;#34;131072&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/General/name&amp;#34; &amp;#34;LVDS&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Option &amp;#34;ALL/1/Port/4/General/Rotation&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/General/Edid&amp;#34; &amp;#34;1&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;ALL/1/Port/4/Attr/70&amp;#34; &amp;#34;0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Screen&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;Screen0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Device &amp;#34;Intel_IEGD-0&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Monitor &amp;#34;LVDS&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> SubSection &amp;#34;Display&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Depth 24
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Modes &amp;#34;1366x768&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> EndSubSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Monitor&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Identifier &amp;#34;LVDS&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ModelName &amp;#34;LCD Panel 1366x768&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;DRI&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Mode 0666
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Section &amp;#34;Extensions&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Option &amp;#34;composite&amp;#34; &amp;#34;enable&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EndSection
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="ver-videos-de-youtube-en-pantalla-completa">Ver videos de Youtube en pantalla completa
&lt;/h2>&lt;p>Tan sencillo como ir al &lt;strong>Centro de software&lt;/strong> e instalar &lt;strong>minitube&lt;/strong>.&lt;/p>
&lt;p>Minitube es una aplicación que no requiere de &lt;em>Flash Player&lt;/em> y funciona bastante bien incluso en pantalla completa pero por alguna razón al hacer otra búsqueda se cierra inesperadamente.&lt;/p>
&lt;p>De todos modos ver los videos directamente en la página de youtube es muy lento y ni pensarlo en pantalla completa.&lt;/p>
&lt;h2 id="otros-lugares-de-interés">Otros lugares de interés
&lt;/h2>&lt;ul>
&lt;li>Intel Poulsbo (GMA500) Dissatisfaction Group&lt;/li>
&lt;li>wiki ubuntu - [Hardware Support Components Video Cards Poulsbo](&lt;a class="link" href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/#EMGD" target="_blank" rel="noopener"
>https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/#EMGD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
driver)&lt;/li>
&lt;li>&lt;a class="link" href="http://en.wikipedia.org/wiki/Intel_GMA#GMA_500" target="_blank" rel="noopener"
>Intel GMA 500 en la wikipedia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Jugar Ajedrez en Linux</title><link>https://linuxmanr4.com/2011/06/13/jugar-ajedrez-en-linux/</link><pubDate>Mon, 13 Jun 2011 21:33:11 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/13/jugar-ajedrez-en-linux/</guid><description>&lt;p>Hace poco reavive mi gusto por el ajedrez. Un tío mio fue el que me enseño los movimientos básicos cuando era un niño y más tarde en la Casa de la Cultura de Torreón me dieron mis arrastradas en este noble juego.&lt;/p>
&lt;p>No recuerdo el nombre de mi profesor, pero si que jugaba contra todos los asistentes, estaba yo de lo más concentrado, cuando al llegar mi turno le dio un vistazo al tablero, se le iluminó el rostro y le dijo a todos los alumnos -¡Vengan a ver, este mate es muy bonito! - y en menos de 4 jugadas tuve que colocar a mi rey en posición horizontal :S.&lt;/p>
&lt;p>Para mejorar en el Ajedrez es necesario practicarlo, y me di a la tarea de buscar algunos programas disponibles en linux para jugar Ajedrez.&lt;/p>
&lt;h2 id="eboard">eboard
&lt;/h2>&lt;p>El primero que me encontré fue &lt;a class="link" href="https://web.archive.org/web/20231226070214/http://www.bergo.eng.br/eboard/" target="_blank" rel="noopener"
>eboard&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, disponible en el centro de software de Ubuntu. Junto con él hay que instalar algunos motores de ajedrez como son &lt;a class="link" href="http://en.wikipedia.org/wiki/Sjeng_%28Chess%29" target="_blank" rel="noopener"
>Sjeng&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="http://es.wikipedia.org/wiki/Crafty" target="_blank" rel="noopener"
>Crafty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Si has jugado una partida en &lt;a class="link" href="http://lichess.org/" target="_blank" rel="noopener"
>lichess&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
entonces ya te has enfrentado a este último.&lt;/p>
&lt;h2 id="arena-chess">Arena Chess
&lt;/h2>&lt;p>Pero fue mi profesor que natación el que me guío por el camino de los motores para jugar Ajedrez más famosos, él quería el &lt;a class="link" href="http://es.wikipedia.org/wiki/Rybka" target="_blank" rel="noopener"
>Rybka&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="http://www.playwitharena.com/?Welcome_to_Arena" target="_blank" rel="noopener"
>Arena Chess&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo tiene incluido por default.&lt;/p>
&lt;p>Arena no es un programa para linux, sin embargo se ejecuta sin problemas utilizando &lt;a class="link" href="https://www.winehq.org/" title="WineHQ"
target="_blank" rel="noopener"
>Wine&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, de hecho el programa es prácticamente portable. Lo tengo en mi memoria y puedo jugar con el mismo programa en windows y luego en linux, incluso puedo continuar en donde me quedé. :)&lt;/p>
&lt;p>El punto fuerte de Arena es que se le pueden instalar una gran cantidad de motores siempre y cuando estos cumplan con el protocolo UCI, de entrada tiene estos motores instalados:&lt;/p>
&lt;ul>
&lt;li>Anmon&lt;/li>
&lt;li>&lt;strong>Rybka&lt;/strong>&lt;/li>
&lt;li>Hermann&lt;/li>
&lt;li>Ruffian&lt;/li>
&lt;li>SOS&lt;/li>
&lt;li>&lt;strong>Spike&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Este juego de motores es suficiente para hacerte pensar un buen rato. Pero buscando un poco me encontré con estos motores adicionales:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.cruxis.com/chess/houdini.htm" target="_blank" rel="noopener"
>Houdini Chess Engine&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.chessprogramming.org/RobboLito" target="_blank" rel="noopener"
>RobboLito&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://stockfishchess.org/" target="_blank" rel="noopener"
>Stockfish&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/06/arena-chess-en-linux.png"
alt="Arena Chess">&lt;figcaption>
&lt;p>Arena Chess&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Incluso se pueden organizar torneos entre ellos. &lt;strong>Houdini&lt;/strong> me sorprendió bastante, tiene la estrategia de que si va perdiendo logra escapar obteniendo cuando menos un empate.&lt;/p>
&lt;p>El único pero que le encuentro es que Arena tiene una gran cantidad de menús y opciones, lo que puede hacerlo un tanto confuso, pero una vez que logras configurarlo y ubicar donde están las cosas, iniciar una partida esta a dos clics de distancia.&lt;/p>
&lt;p>Actualmente sigo siendo malo en el Ajedrez, no se que me pasa que empiezo bien y termino mal, pero al menos ahora puedo practicar un poco más. Ahhh y si alguien le logra ganar a Houdini ¡Guarden la partida! :)&lt;/p></description></item><item><title>Rastreador de tormentas y huracanes</title><link>https://linuxmanr4.com/2011/06/10/rastreador-de-tormentas-y-huracanes/</link><pubDate>Fri, 10 Jun 2011 14:12:00 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/10/rastreador-de-tormentas-y-huracanes/</guid><description>&lt;p>Inicia la temporada de Huracanes y no esta de más tener a la mano una herramienta como &lt;a class="link" href="http://www.stormpulse.com" target="_blank" rel="noopener"
>Storm Pulse&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Esta página proporciona información muy completa sobre tormentas y huracanes. De un vistazo se puede conocer la ubicación, categoría, zona de influencia, velocidad, trayectoria probable, etc. En fin todo lo que se necesite saber para tomar todas las precauciones posibles.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3012/5817711505%5F5fe20c6df6.jpg"
alt="Ruta del huracán Adrian">&lt;figcaption>
&lt;p>Ruta del huracán Adrian&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pero no solo da información de los eventos en curso, también cuenta con un archivo histórico, como por ejemplo, El &lt;a class="link" href="http://www.stormpulse.com/hurricane-alex-2010" target="_blank" rel="noopener"
>Huracán Alex&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tantos destrozos causó en la hermana ciudad de Monterrey.&lt;/p>
&lt;p>Este año ha tenido fenómenos meteorológicos atípicos, como el &lt;a class="link" href="https://web.archive.org/web/20131014192637/http://tvolucion.esmas.com/noticieros/noticiero-con-joaquin-lopez-doriga/112124/el-golpe-tornados-mexico" target="_blank" rel="noopener"
>Tornado en el Estado de México&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
? ¿Cuando se había visto algo así?, en fin, lo mejor es estar informado y ponernos las pilas con el cuidado del planeta.&lt;/p>
&lt;h2 id="windy-al-rescate">Windy al rescate
&lt;/h2>&lt;p>Lamentablemente Storm Pulse se volvió de pago y para ser honestos, no todos justificamos el pago de tanta información.&lt;/p>
&lt;p>Afortunadamente hay una buena alternativa con &lt;a class="link" href="https://www.windy.com/" target="_blank" rel="noopener"
>Windy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Sólo que su opción para hacer seguimiento de huracanes esta un poco oculta.&lt;/p>
&lt;p>Una vez abierta la página hacemos clic en la esquina superior izquierda para mostrar el menú y luego en donde dice &lt;strong>Seg. de huracanes&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/01/windy%5Fseguimiento%5Fhuracanes.webp">
&lt;/figure>
&lt;p>Así nos mostrará todos los huracanes activos en el mundo. ubicación y posibles trayectorias.&lt;/p>
&lt;p>Espero que esta información les sea de utilidad.&lt;/p></description></item><item><title>Dial plan para llamadas locales</title><link>https://linuxmanr4.com/2011/06/08/dial-plan-para-llamadas-locales/</link><pubDate>Wed, 08 Jun 2011 21:51:39 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/08/dial-plan-para-llamadas-locales/</guid><description>&lt;p>Hace poco se me ofreció hacer un pequeño dial plan para un SPA 922 que solo permita hacer llamadas locales. Supongo que este dial plan se puede utilizar en muchos equipos de la línea Sipura, Linksys o Cisco.&lt;/p>
&lt;p>El dial plan tiene muchas opciones, pero en este caso lo vamos a utilizar para rechazar una secuencia de números, como por ejemplo llamadas de larga distancia, internacionales o celulares.&lt;/p>
&lt;p>Veamos este ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;code&amp;gt;( 01x.! | 00x.! | 044x.! | 045x.! | x.)&amp;lt;/code&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Todo el dialplan debe de estar encerrado entre paréntesis y cada una de las reglas separadas por el una &lt;a class="link" href="http://en.wikipedia.org/wiki/Vertical_bar" target="_blank" rel="noopener"
>barra vertical (pipe | )&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>El signo de exclamación al final de la regla indica que se rechace esa secuencia, el teléfono cuelga y muestra la leyenda &lt;em>Call Ended&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4078/4821031863%5F43d1557d50.jpg"
alt="Teléfono SPA922">&lt;figcaption>
&lt;p>Teléfono SPA922&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este dial plan rechaza los números que comienzan con:&lt;/p>
&lt;ul>
&lt;li>01 Larga distancia nacional&lt;/li>
&lt;li>00 Larga distancia internacional&lt;/li>
&lt;li>044 Llamadas a celulares&lt;/li>
&lt;li>045 Llamadas a celulares el que llama paga.&lt;/li>
&lt;/ul>
&lt;p>Y acepta todos los demás números.&lt;/p>
&lt;p>Para modificar este valor se abre el navegador en la dirección ip del equipo y presionan &lt;strong>Admin login&lt;/strong> - &lt;strong>Advanced&lt;/strong>- &lt;strong>Ext 1&lt;/strong> en la sección &lt;strong>Dial Plan&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3193/5812717913%5Fdc45a174f9.jpg"
alt="Sipura SPA Configuration - Dial Plan">&lt;figcaption>
&lt;p>Sipura SPA Configuration - Dial Plan&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Foro en el Senado: Software libre en México</title><link>https://linuxmanr4.com/2011/06/06/foro-en-el-senado-software-libre-en-mexico/</link><pubDate>Mon, 06 Jun 2011 14:47:06 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/06/foro-en-el-senado-software-libre-en-mexico/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/06/Foro-en-el-Senado-Software-libre-en-Mexico.jpg" alt="Featured image of post Foro en el Senado: Software libre en México" />&lt;p>El 2 de junio pasado hubo una mesa de trabajo en el Senado de la República, el tema &lt;strong>Software Libre en México, Reflexiones y Oportunidades&lt;/strong>.&lt;/p>
&lt;p>El evento contó con la presencia de &lt;a class="link" href="https://linuxmanr4.com/2013/06/07/richard-m-stallman-en-torreon/" >Richard Stallman&lt;/a>
que habló sobre las bondades del software libre.&lt;/p>
&lt;p>Muchos países han visto en el software libre una oportunidad para ofrecer mejores servicios a un costo mucho menor para el erario. Dinero que puede ser utilizado en otras áreas con mayor urgencia.&lt;/p>
&lt;p>El foro es un comienzo modesto, pero es un comienzo, habrá que insistir para convencer a los políticos a que aprovechen las oportunidades que les ofrece el software libre.&lt;/p>
&lt;p>Les dejo un video del canal del congreso con la conferencia.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/XrZ0RhpYaLA" target="_blank" rel="noopener"
>https://youtu.be/XrZ0RhpYaLA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>El juego "Adivina el número" en Python</title><link>https://linuxmanr4.com/2011/06/01/adivina-el-numero-en-python/</link><pubDate>Wed, 01 Jun 2011 18:37:33 +0000</pubDate><guid>https://linuxmanr4.com/2011/06/01/adivina-el-numero-en-python/</guid><description>&lt;p>Cuando era niño mis padres me compraron una Commodore 16, leí el manual sobre cómo conectarla, la prendí y me apareció un mensajito que decía &lt;a class="link" href="http://es.wikipedia.org/wiki/BASIC" target="_blank" rel="noopener"
>BASIC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
:) .&lt;/p>
&lt;p>Era obvio que no podía hacer mucho con mi nuevo &amp;ldquo;juguete&amp;rdquo; sin aprender un poco sobre este lenguaje, así que poco tiempo después también me compraron el libro &lt;strong>Basic para Niños&lt;/strong>.&lt;/p>
&lt;p>En el aparecía un robotito llamado Arturo (creo que era por R2D2) que con ingenio y graciosas ilustraciones explicaba los vericuetos del lenguaje.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/basic-para-ninos.jpg"
loading="lazy"
alt="Basic para niños, Gracias a Miguel Ponce que me hizo el favor de mandarme la foto."
>
&lt;br />&lt;small>Basic para niños, Gracias a Miguel Ponce que me hizo el favor de mandarme la foto.&lt;/small>&lt;/p>
&lt;p>Uno de los programas era &lt;strong>Adivina el número&lt;/strong>, supongo que es un ejemplo muy popular para niños porque me lo acabo de encontrar nuevamente en el libro &lt;a class="link" href="http://inventwithpython.com/" target="_blank" rel="noopener"
>Invent your own computer games with Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Esta es mi versión del mismo programa según como lo recuerdo en aquel libro (aunque la memoria me puede fallar) escrito ahora en Python.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/06/adivina%5Fel%5Fnumero%5Fterminal.webp"
alt="Adivina el número desde la terminal">&lt;figcaption>
&lt;p>Adivina el número desde la terminal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Juego de adivina el número.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">random&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">number&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Hola !!!, estoy pensando un número del 1 al 100. Tienes 6 oportunidades para adivinarlo&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;¿Cual es tu número?&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">guess&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">guess&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">guess&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">guessesTaken&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s1">&amp;#39;. Muy bajo&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">guessesTaken&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="s1">&amp;#39;. Muy alto&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Tu número esta fuera de rango. Intenta con otro número.&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">guessesTaken&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Excelente !!! Adivinaste mi número en &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">guessesTaken&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s1">&amp;#39; oportunidades!&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">guess&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">number&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">number&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;No, El número que estaba pensando es el &amp;#39;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">number&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>O ejecutarlo directamente en el navegador usando el servicio &lt;a class="link" href="https://www.online-python.com/WgeXaqjwxr" target="_blank" rel="noopener"
>On-line Python&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Segundo Congreso Internacional de Software Libre</title><link>https://linuxmanr4.com/2011/05/30/segundo-congreso-internacional-de-software-libre/</link><pubDate>Mon, 30 May 2011 13:22:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/05/30/segundo-congreso-internacional-de-software-libre/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/floss2.png"
alt="floss 2.0">&lt;figcaption>
&lt;p>floss 2.0&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El &lt;a class="link" href="https://web.archive.org/web/20140406055156/http://www.estudiosdeldesarrollo.net:80/floss2/" target="_blank" rel="noopener"
>Segundo Congreso Internacional de Software Libre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se llevará a cabo los días 1 y 2 de junio del 2011, en la ciudad de Zacatecas, México. El marco del evento será el Auditorio de la &lt;a class="link" href="http://www.estudiosdeldesarrollo.net/" target="_blank" rel="noopener"
>Unidad Académica en Estudios del Desarrollo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de la Universidad Autónoma de Zacatecas.&lt;/p>
&lt;h3 id="software-libre-y-la-uaz">Software Libre y la U.A.Z.
&lt;/h3>&lt;p>La tendencia mundial y los casos de éxito en el uso de software libre por parte de empresas, universidades y gobiernos alrededor del mundo, advierten al menos un camino alterno a seguir en cuanto a la elección de la plataforma de software y, evidentemente, el software libre juega ya un papel muy importante. La plataforma académica parece ser el medio más indicado para la divulgación de este tipo de tecnología y, en el estado de Zacatecas la Unidad Académica en Estudios del Desarrollo de la UAZ ha venido promoviendo este movimiento mediante la elaboración de dos proyectos usando este tipo de software: El Sistema de Información sobre Migración y Desarrollo para el Estado de Zacatecas y El Sistema de Información Geográfico para el Estado de Zacatecas.&lt;/p>
&lt;p>Dentro del quehacer de la Unidad Académica en Estudios del Desarrollo se encuentran el análisis, discusión, evaluación y la generación de insumos en diferentes campos del conocimiento, que contribuyan al desarrollo del estado de Zacatecas y del país con una perspectiva internacional. Es por ello que la difusión y divulgación de tecnologías de información que promuevan el desarrollo, como el software libre, resulta de gran importancia dentro del proyecto estratégico de la Unidad Académica en Estudios del Desarrollo.&lt;/p>
&lt;h3 id="programa">Programa
&lt;/h3>&lt;p>Día 1, miércoles 1 de Junio.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Richard Stallman&lt;/strong>, Free Software Foundation, USA; &lt;em>El Movimiento del Software Libre y el Sistema Operativo GNU/Linux&lt;/em>&lt;/li>
&lt;li>&lt;strong>Offray Vladimir Luna Cárdenas&lt;/strong>, Pontificia Universidad Javeriana, Colombia; &lt;em>Nómadas digitales, libre cultura y aprendizaje&lt;/em>&lt;/li>
&lt;li>&lt;strong>Rubén Rodríguez (Quidam)&lt;/strong>, Director del Proyecto Trisquel GNU/Linux, España; &lt;em>Introducción a la distribución libre Trisquel GNU/Linux&lt;/em>&lt;/li>
&lt;li>&lt;strong>Jose E. Marchesi&lt;/strong>, Agencia Espacial Europea, Alemania; &lt;em>El Proyecto GNU: software y comunidad&lt;/em>&lt;/li>
&lt;/ul>
&lt;p>Día 2, jueves 2 de Junio.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Fernando Javier Magariños Lamas ‘Mancha’&lt;/strong>, Instituto de Geofísica de la UNAM, México; &lt;em>Software libre para una sociedad libre&lt;/em>&lt;/li>
&lt;li>&lt;strong>Guillermo Valdés Lozano&lt;/strong>, Grupo de Usuarios de GNU/Linux de la Laguna, México; &lt;em>Estudiando el Cablegate de Wikileaks con Software Libre&lt;/em>&lt;/li>
&lt;li>&lt;strong>Maximino Gerardo Luna Estrada&lt;/strong>, Unidad Académica en Estudios del Desarrollo, UAZ, México; &lt;em>El software libre: una alternativa viable para la administración pública&lt;/em>&lt;/li>
&lt;li>&lt;strong>José Masdeu&lt;/strong>, Jefe Centro de Datos, Investigacion y Desarrollo, Dirección General de Tecnología, Poder Judicial de la Nación, Argentina; &lt;em>El DataCenter LIBRE en el Estado. Un caso de éxito&lt;/em>&lt;/li>
&lt;li>&lt;strong>Corinto Meffe&lt;/strong>, Ministerio de Planeación, Presupuesto y Administración Gobierno de Brasil, Brasil. &lt;em>Las reflexiones con los resultados de la experiencia brasileña del software público&lt;/em>&lt;/li>
&lt;/ul>
&lt;h3 id="dirección">Dirección
&lt;/h3>&lt;p>Edificio de Doctorado en Estudios del Desarrollo, detrás de Biblioteca Central&lt;br>
Av. Preparatoria S/N, Col. Loma Dorada,&lt;br>
Apartado postal 3-138, C.P. 98065.&lt;br>
Zacatecas, Zac., México.&lt;/p>
&lt;h3 id="más-información-en">Más información en…
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20140406055156/http://www.estudiosdeldesarrollo.net:80/floss2/" target="_blank" rel="noopener"
>Segundo Congreso Internacional de Software Libre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20111109114251/http://www.oem.com.mx/laprensa/notas/n2078640.htm" target="_blank" rel="noopener"
>Artículo publicado en La Prensa&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Source: &lt;a class="link" href="https://web.archive.org/web/20150923190736/http://www.movimientolibre.com/articulos/congreso-iberoamericano-foss-2011.html" target="_blank" rel="noopener"
>Gulag&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>IPCop y los Delay Pools de Squid</title><link>https://linuxmanr4.com/2011/05/25/ipcop-y-los-delay-pools-de-squid/</link><pubDate>Wed, 25 May 2011 22:04:29 +0000</pubDate><guid>https://linuxmanr4.com/2011/05/25/ipcop-y-los-delay-pools-de-squid/</guid><description>&lt;p>El otro día estaba leyendo un artículo de Hector Daniel Cortés sobre los &lt;a class="link" href="http://hdaniel67.blogspot.com/2011/05/squid-delaypool.html" target="_blank" rel="noopener"
>delay_pool en squid&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, el tiene el problema que mucho de su tráfico se va en sitios como youtube o facebook y me pregunté si se podría hacer algo parecido en IPCop.&lt;/p>
&lt;p>Los &lt;strong>delay_pool&lt;/strong> es la forma en la que squid controla el ancho de banda. Explicar como configurar esta opción de squid es un tema aparte, al final dejaré material de referencia.&lt;/p>
&lt;p>Lamentablemente IPCop no tiene un lugar en alguna de sus páginas para configurar Delay Pools así que todo se tiene que hacer a mano.&lt;/p>
&lt;p>Lo primero que tenemos que hacer es editar el archivo &lt;strong>acl&lt;/strong> que se encuentra en la ruta &lt;strong>/var/ipcop/proxy/&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3389/5759939314%5F378f4f6c58.jpg"
alt="Edición del archivo acl">&lt;figcaption>
&lt;p>Edición del archivo acl&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para hacerlo utilicé la herramienta &lt;a class="link" href="http://winscp.net/eng/docs/lang:es" target="_blank" rel="noopener"
>winscp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que me permite editar directamente el archivo en el servidor. Recuerden que para conectarse es con el usuario root y su contraseña (no el usuario admin), el puerto es el 222 y claro habilitar el acceso en el menú &lt;strong>Sistema&lt;/strong>- &lt;strong>Acceso SSH&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>Advertencia:&lt;/strong> Antes de empezar a hacer nuestros ajustes no está de más hacer un respaldo del archivo.&lt;/p>
&lt;p>Al final de este archivo agregué esta pequeña definición que limita el &lt;a class="link" href="https://linuxmanr4.com/2010/05/18/monitorear-el-ancho-de-banda-con-ipcop-e-iptraf/" >ancho de banda&lt;/a>
de una computadora a unos 50 Kb/s&lt;/p>
&lt;p>Ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">acl abusivos src 192.168.0.x #Lista de equipos a controlar
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delay_pools 1 #Numero de delay pools
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delay_class 1 1 #El delay pool 1 es de clase 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delay_access 1 allow abusivos #Permitimos el acceso al grupo &amp;#34;abusivos&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delay_parameters 1 40000/50000 #Establecemos el ancho de banda permitido al grupo.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Se guardan los cambios y para activarlos es necesario reiniciar squid , la forma más sencilla que se me ocurrió es ir al menú &lt;strong>Servicios&lt;/strong> - &lt;strong>Proxy&lt;/strong> desmarcar la casilla que dice: &lt;strong>Habilitado en Green&lt;/strong>, presionar el botón de guardar para luego volver a marcar la casilla y nuevamente guardamos. Haciendo esto se activan los cambios que acabamos de hacer.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3505/5759939442%5Feaa0f68634.jpg"
alt="desactivar y activar el proxy">&lt;figcaption>
&lt;p>desactivar y activar el proxy&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se puede ajustar la definición del los delay pools volviendo a editar el archivo y aplicando los cambios y ¡Voalá!&lt;/p>
&lt;p>Para saber más:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://wiki.squid-cache.org/Features/DelayPools" target="_blank" rel="noopener"
>squid-cache wiki - Feature: Delay Pools&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como conectar IPCop a Infinitum</title><link>https://linuxmanr4.com/2011/05/20/como-conectar-ipcop-a-infinitum/</link><pubDate>Fri, 20 May 2011 22:01:58 +0000</pubDate><guid>https://linuxmanr4.com/2011/05/20/como-conectar-ipcop-a-infinitum/</guid><description>&lt;p>Una de las preguntas más frecuentes que me hacen es ¿Cómo conectar IPCop a Infinitum?, supongo que estas indicaciones se pueden aplicar a cualquier proveedor de internet, pero este es el más popular en México.&lt;/p>
&lt;p>Para explicar un poco mejor como se hacen las conexiones hice este pequeño diagrama.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3092/5741191808%5Fa4aa5a80c2%5Fz.jpg"
alt="Diagrama de conexión entre Infinitum e IPCop">&lt;figcaption>
&lt;p>Diagrama de conexión entre Infinitum e IPCop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="las-zonas-de-ipcop">Las zonas de IPCop
&lt;/h2>&lt;p>IPCop divide las conexiones por zonas:&lt;/p>
&lt;ul>
&lt;li>La zona &lt;strong>RED&lt;/strong> que es la que conecta a Internet.&lt;/li>
&lt;li>La zona &lt;strong>GREEN&lt;/strong> que es nuestra red local.&lt;/li>
&lt;li>La zona &lt;strong>BLUE&lt;/strong> que para clientes inalámbricos&lt;/li>
&lt;li>La zona &lt;strong>ORANGE&lt;/strong> que es la DMZ o zona desmilitarizada.&lt;/li>
&lt;/ul>
&lt;p>Quiero aclarar que jamás he instalado IPCop con zonas &lt;strong>BLUE&lt;/strong> y/o &lt;strong>ORANGE&lt;/strong>, en mi trabajo no se ha requerido.&lt;/p>
&lt;p>IPCop se vuelve cliente del router de Infinitum. Para lograr esto hay que configurar la tarjeta &lt;strong>RED&lt;/strong> para que tome la información de conexión de nuestro proveedor de internet.&lt;/p>
&lt;p>La configuración se realiza durante la instalación de IPCop, pero si se quieren hacer ajustes después existe el comando &lt;strong>setup&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/05/ipcop-setup.gif"
alt="Para hacer algunos ajustes a un ipcop ya instalado existe el programa setup.">&lt;figcaption>
&lt;p>Para hacer algunos ajustes a un ipcop ya instalado existe el programa setup.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Los demás se vuelven clientes de IPCop. Es muy importante que las dos zonas &lt;strong>RED&lt;/strong> y &lt;strong>GREEN&lt;/strong> tengan un rango de IP&amp;rsquo;s diferentes. Todo esto se configura durante la instalación de IPCop.&lt;/p>
&lt;p>El diagrama también muestra como proporcionar una conexión inalámbrica sin la necesidad de una zona &lt;strong>BLUE&lt;/strong>. Para esto conecto un access point a la zona GREEN, de esta manera sigues teniendo control sobre tus clientes inalámbricos y puedes colocar todos los puntos de acceso que desees ya que la distancia entre tus clientes que necesitan una conexión wireless y el servidor IPCop no será un problema.&lt;/p>
&lt;p>Espero que este diagrama ayude a resolver algunas dudas o cuando menos crear algunas nuevas :)&lt;/p></description></item><item><title>Problema con las tarjetas Broadcom BCM43xx en Ubuntu 11.04</title><link>https://linuxmanr4.com/2011/04/29/problema-con-las-tarjetas-broadcom-bcm43xx-en-ubuntu-1104/</link><pubDate>Fri, 29 Apr 2011 14:47:19 +0000</pubDate><guid>https://linuxmanr4.com/2011/04/29/problema-con-las-tarjetas-broadcom-bcm43xx-en-ubuntu-1104/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/04/Problema-con-las-tarjetas-Broadcom-BCM43xx-en-Ubuntu-11_04.jpg" alt="Featured image of post Problema con las tarjetas Broadcom BCM43xx en Ubuntu 11.04" />&lt;p>Hoy en la mañana terminé de instalar Ubuntu 11.04 en una laptop que tengo para hacer pruebas. Es una Compaq Presario V2000, en un equipo algo antiguo, pero que todavía funciona muy bien.&lt;/p>
&lt;p>El primer problema que tuve fue que no me detecto la tarjeta de red inalámbrica, creo que lo hizo correctamente en la versión 10.04, pero en esta ocasión el administrador de la red me dijo que faltaba el firmware y tampoco me la detectó automáticamente.&lt;/p>
&lt;p>No recordaba que tarjeta inalámbrica tiene mi equipo, así que ejecuté este comando en una terminal para averiguarlo.&lt;/p>
&lt;p>&lt;code>lspci | grep Broadcom&lt;/code>&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5027/5669319153%5F8b185601c6.jpg"
alt="lspci">&lt;figcaption>
&lt;p>lspci&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver el resultado es una tarjeta BCM4318. Lo que sigue es bien simple, instalar el paquete &lt;em>firmware-b43-installer&lt;/em> que se encargará de bajar e instalar el firmware de esta tarjeta.&lt;/p>
&lt;p>Puede usar synaptic o una terminal para instalar el paquete.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5266/5669319147%5Fd6bc1d06ef.jpg"
alt="firmware">&lt;figcaption>
&lt;p>firmware&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install firmware-b43-installer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y en un momento verán como se activa la tarjeta de red inalámbrica.&lt;/p>
&lt;p>Todavía no me acostumbro a Unity (y creo que jamás lo haré) para mí es más práctico iniciar los programas con Gnome Do y siento que la barrita lateral me roba espacio en la pantalla. En fin, cada quien sus gustos.&lt;/p></description></item><item><title>Listo para descargar Ubuntu 11.04 natty narwhal</title><link>https://linuxmanr4.com/2011/04/28/listo-para-descargar-ubuntu-1104-natty-narwhal/</link><pubDate>Thu, 28 Apr 2011 13:37:04 +0000</pubDate><guid>https://linuxmanr4.com/2011/04/28/listo-para-descargar-ubuntu-1104-natty-narwhal/</guid><description>&lt;p>Ya está listo para descargar Ubuntu 11.04 !!!&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5147/5665179912%5F20d228181c.jpg"
alt="ubuntu-11-04">&lt;figcaption>
&lt;p>ubuntu-11-04&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para evitar sobrecargar los servidores les recomiendo que lo bajen usando bittorrent:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-alternate-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-alternate-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-desktop-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>ubuntu-11.04-netbook-i386.iso.torrent&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-server-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-server-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/11.04/ubuntu-11.04-server-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-11.04-server-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>Veamos que tal está la propuesta de Canonical con respecto a Unity. Solamente por este detalle vale la pena la descarga. No olviden visitar la página de &lt;a class="link" href="http://www.ubuntu.com/ubuntu/features" target="_blank" rel="noopener"
>Features&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para ver las novedades.&lt;/p></description></item><item><title>Múltiples líneas en la descripción de los artículos</title><link>https://linuxmanr4.com/2011/04/12/multiples-lineas-en-la-descripcion-de-los-articulos/</link><pubDate>Tue, 12 Apr 2011 20:43:32 +0000</pubDate><guid>https://linuxmanr4.com/2011/04/12/multiples-lineas-en-la-descripcion-de-los-articulos/</guid><description>&lt;p>Ayer Roberto publicó este comentario en el artículo sobre &lt;a class="link" href="https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/" >Codeka MX&lt;/a>
:&lt;/p>
&lt;p>&lt;em>&amp;ldquo;Hola ha todos este es un excelente programa CODEKA, me gustaría saber si hay una forma de realizar esto en la descripción al facturar, es decir escribir más en descripción del producto, por ejemplo ahora acepta como 50 caracteres, y si escribo más, no hace el salto de línea, si no que se borran las demas letras, y se truncan en la misma linea. por ejemplo hace esto:&lt;/em>&lt;/p>
&lt;p>implantación y mantenimento de sold&lt;/p>
&lt;p>y quiero esto:&lt;/p>
&lt;p>implantación y mantenimento de soldura para&lt;br>
rayos x de segunda generacion.&lt;/p>
&lt;p>Que acepte mas en descripción, que se pueda describir mas el producto o servicio, y que de su salto de línea, en la misma descripción-Gracias a todos por sus aportaciones.&amp;rdquo;&lt;/p>
&lt;p>Veamos como resolver esto, primero y antes que nada, no esta de más hacer un respaldo al archivo &lt;strong>imprimir_factura.php&lt;/strong> que esta en el directorio &lt;strong>fpdf&lt;/strong> de codeka mx. Si algo sale mal siempre podemos regresar a nuestra versión anterior.&lt;/p>
&lt;p>Ahora si, manos a la obra !!!. Al abrir el archivo &lt;strong>imprimir_factura.php&lt;/strong>, alrededor de la línea 96 nos encontramos con el código que se encarga de mostrar la descripción en la factura.&lt;/p>
&lt;p>$acotado= &lt;a class="link" href="http://www.php.net/substr" target="_blank" rel="noopener"
>substr&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
( &lt;a class="link" href="http://www.php.net/mysql_result" target="_blank" rel="noopener"
>mysql_result&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
($rs_articulos,0,&amp;ldquo;descripcion&amp;rdquo;),0,45);&lt;br>
$pdf-&amp;gt;Cell(112,4,$acotado,0,0,&amp;lsquo;L&amp;rsquo;);&lt;/p>
&lt;p>El culpable de que aparezcan las descripciones recortadas es la función &lt;strong>substr&lt;/strong> de PHP, esta se encarga de limitar el texto a 45 letras. Podríamos aumentar el tamaño pero eso ocasionaría que el texto se empalmara con el precio unitario y con el subtotal.&lt;/p>
&lt;p>Así que cambiaremos el código anterior por este:&lt;/p>
&lt;p>$y=$pdf-&amp;gt;GetY();&lt;br>
$acotado= &lt;a class="link" href="http://www.php.net/mysql_result" target="_blank" rel="noopener"
>mysql_result&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
($rs_articulos,0,&amp;ldquo;descripcion&amp;rdquo;);&lt;br>
$pdf-&amp;gt;MultiCell(115,4,$acotado,0,&amp;lsquo;L&amp;rsquo;);$pdf-&amp;gt;SetXY(149,$y);&lt;/p>
&lt;p>La función &lt;a class="link" href="http://www.fpdf.org/es/doc/gety.htm" target="_blank" rel="noopener"
>GetY&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
nos guardará la posición de Y dentro del documento y lo almacenamos en una variable, al terminar de escribir la descripción regresamos nuestra posición a este valor para que el precio unitario y el subtotal aparezcan alineados con el resto.&lt;/p>
&lt;p>Para mostrar la descripción, en lugar de usar la función &lt;a class="link" href="http://www.fpdf.org/es/doc/cell.htm" target="_blank" rel="noopener"
>Cell&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ahora usamos &lt;a class="link" href="http://www.fpdf.org/es/doc/multicell.htm" target="_blank" rel="noopener"
>MultiCell&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que permite varias líneas en una celda. Eso hará el truco.&lt;/p>
&lt;p>Un poco más adelante nos encontraremos con este código:&lt;/p>
&lt;p>$pdf-&amp;gt;Cell(20,4,$importe2,0,0,&amp;lsquo;R&amp;rsquo;);&lt;br>
$pdf-&amp;gt;Ln(10);&lt;/p>
&lt;p>En este caso cambié el parámetro de la función &lt;a class="link" href="http://www.fpdf.org/es/doc/ln.htm" target="_blank" rel="noopener"
>Ln&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de 5 a 10 para que hiciera un salto más grande y no se empalmaran los renglones.&lt;/p>
&lt;p>Y eso es todo. Al final la factura debe de ser muy similar a esta:&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5267/5613857879%5Ff3f1f4099b.jpg"
alt="Varias líneas en la descripción de las facturas">&lt;figcaption>
&lt;p>Varias líneas en la descripción de las facturas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Siguiendo esta lógica podrás modificar cualquier reporte de Codeka MX para que muestre varias líneas en la descripción de los artículos o cualquier otro campo que necesites.&lt;/p></description></item><item><title>El Flisol 2011 en Plaza 4 Caminos</title><link>https://linuxmanr4.com/2011/04/11/el-flisol-2011-en-plaza-4-caminos/</link><pubDate>Mon, 11 Apr 2011 13:48:44 +0000</pubDate><guid>https://linuxmanr4.com/2011/04/11/el-flisol-2011-en-plaza-4-caminos/</guid><description>&lt;p>El sábado fue el FLISOL 2011 en Plaza 4 Caminos. Creo que es la primera vez que llego tan temprano, alcancé a ver el final de la última conferencia y me gustó ver tanta gente en el evento.&lt;/p>
&lt;p>Me dio gusto saludar a los amigos, platicar un poco, ver las novedades, por un momento en lugar de FLISOL parecía exhibición de gadgets, y es que había de todo!!! iphones, androides, galaxy tabs, yo no cambio mi ladrillote por nada.&lt;/p>
&lt;p>Empezó la instalación y no se porque tengo la &amp;ldquo;fortuna&amp;rdquo; de encargarme de los casos difíciles. Llegó una persona intentando recuperar un equipo portátil &lt;em>old-fashion-retro-paleolitico&lt;/em>, al parecer el equipo tenía 192 MB en RAM y eso reduce mucho las opciones. Arrancó bien con &lt;a class="link" href="http://puppylinux.org" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y al parecer reconoció la tarjeta de red inalámbrica, pero por un problema local no teníamos internet, así que no pudimos comprobar su correcto funcionamiento.&lt;/p>
&lt;p>Estimado Jorge (el dueño del equipo) si lees esto te puedo recomendar &lt;a class="link" href="http://lubuntu.net/" target="_blank" rel="noopener"
>lubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, creo que te puede dar buenos resultados en tu equipo porque esta distro está especializada en computadoras con poca memoria ( [requerimientos mínimos para lubuntu](&lt;a class="link" href="https://wiki.ubuntu.com/Lubuntu#System" target="_blank" rel="noopener"
>https://wiki.ubuntu.com/Lubuntu#System&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
requirements)).&lt;/p>
&lt;p>No recuerdo bien el modelo de tu equipo, pero creo que es muy similar a este&amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3310209998/" title="hp pavillion ze5300 como sujeto de pruebas por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3357/3310209998_5fc4b194f4.jpg"
loading="lazy"
alt="hp pavillion ze5300 como sujeto de pruebas"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>La imagen corresponde al artículo &lt;a class="link" href="https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/" >Instalando Ubuntu sin CD - netinstall&lt;/a>
, a ese equipo logré instalarle Lxde y todavía funciona aunque lo utilizó solamente en emergencias.&lt;/p>
&lt;p>La mayoría eligió a Ubuntu para la instalación, cerca de mi estaban instalando un Fedora y del otro lado estaba una computadora con Puppy funcionando.&lt;/p>
&lt;p>Si se quedaron con ganas de asistir, no duden en acercarse al &lt;a class="link" href="http://www.gulag.org.mx/" target="_blank" rel="noopener"
>Gulag&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, ahí viene cuando será la próxima reunión o quizás se puedan dar pláticas en sus escuelas.&lt;/p></description></item><item><title>Encom Linux Console</title><link>https://linuxmanr4.com/2011/04/06/encom-linux-console/</link><pubDate>Wed, 06 Apr 2011 13:42:01 +0000</pubDate><guid>https://linuxmanr4.com/2011/04/06/encom-linux-console/</guid><description>&lt;p>No es un misterio que soy fan de la saga de Tron (ok solo son dos películas, pero no importa), es por eso que todo lo relacionado con la película me interesa.&lt;/p>
&lt;p>Estaba leyendo un artículo de Josh Nimoy sobre su trabajo en &lt;a class="link" href="https://web.archive.org/web/20120930184856/http://jtnimoy.net/?q=178" target="_blank" rel="noopener"
>Tron Legacy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un escrito plagado de imágenes interesantes que definitivamente no debes de dejar pasar.&lt;/p>
&lt;p>Lo primero que llamó mi atención en esta imagen fue la pantalla de &lt;a class="link" href="http://es.wikipedia.org/wiki/Emacs" target="_blank" rel="noopener"
>Emacs&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, y poco después en la esquina superior izquierda con unas letras pequeñitas la leyenda &lt;strong>Encom Linux Console&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/04/encom-linux-console.webp"
loading="lazy"
alt="Encom Linux Console ¡Niceeee!"
>&lt;/p>
&lt;p>Me pareció un buen detalle para compartir. :)&lt;/p></description></item><item><title>Administrar conexiones remotas con PAC Manager</title><link>https://linuxmanr4.com/2011/03/30/administrar-conexiones-remotas-con-pac-manager/</link><pubDate>Wed, 30 Mar 2011 21:42:53 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/30/administrar-conexiones-remotas-con-pac-manager/</guid><description>&lt;figure>&lt;img src="http://farm6.static.flickr.com/5147/5574798961%5F9be5b9fc71.jpg"
alt="PAC Manager">&lt;figcaption>
&lt;p>PAC Manager&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hace poco tuve que realizar varias tareas en equipos remotos. El problema es que son demasiados equipos, varios programas diferentes y muchas contraseñas para recordar.&lt;/p>
&lt;p>Generalmente para windows utilizo &lt;a class="link" href="http://www.tightvnc.com/" target="_blank" rel="noopener"
>tightvnc&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que funciona muy bien con el &lt;em>vncviewer&lt;/em> de Linux y claro el obligatorio ssh para los servidores y equipos con linux.&lt;/p>
&lt;p>Afortunadamente me encontré con &lt;a class="link" href="https://web.archive.org/web/20230317063455/https://sites.google.com/site/davidtv/" target="_blank" rel="noopener"
>PAC Manager&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y hace un excelente trabajo. Este programa agrupa conexiones (para un mejor orden) y permite administrar conectarse a otros equipos con protocolos tan diversos como SSH, vncviewer, FTP, rdesktop, sftp o telnet.&lt;/p>
&lt;p>Para instalarlo solo tuve que bajar el archivo &lt;a class="link" href="http://sourceforge.net/projects/pacmanager/" target="_blank" rel="noopener"
>pac-2.5.5.9-all.deb&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que funciona bien en mi Ubuntu Lucid Lynx.&lt;/p>
&lt;p>Tiene una interfaz un poco cruda y a veces es un poco complicado encontrar algunas opciones, pero una vez que todo esta bien configurado todo corre sobre ruedas.&lt;/p>
&lt;p>Ahora todo lo que tengo que hacer es dar de alta los equipos que quiero controlar remotamente y ¡Listo!.&lt;/p></description></item><item><title>FLISOL 2011 en Torreón</title><link>https://linuxmanr4.com/2011/03/28/flisol-2011-en-torreon/</link><pubDate>Mon, 28 Mar 2011 22:07:03 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/28/flisol-2011-en-torreon/</guid><description>&lt;figure>&lt;img src="http://farm6.static.flickr.com/5097/5568843295%5Fa0445f89e5.jpg"
alt="Poster del Flisol 2011">&lt;figcaption>
&lt;p>Poster del Flisol 2011&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este año el Festival Latinoamericano de Instalación de Software Libre aka Flisol estrenará sede ya que se realizará en Plaza 4 Caminos, específicamente en el lobby del primer piso frente a Cimaco ( a un costado del Chillis).&lt;/p>
&lt;p>&lt;a class="link" href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=torre%C3%B3n&amp;#43;coahuila&amp;amp;aq=&amp;amp;sll=25.562265,-103.447266&amp;amp;sspn=49.541829,92.900391&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Torre%C3%B3n,&amp;#43;Coahuila&amp;#43;de&amp;#43;Zaragoza,&amp;#43;M%C3%A9xico&amp;amp;ll=25.543871,-103.428009&amp;amp;spn=0.049323,0.090723&amp;amp;z=14&amp;amp;layer=c&amp;amp;cbll=25.560385,-103.433573&amp;amp;panoid=2WBMGiz1FOtjrspvAJRiKw&amp;amp;cbp=12,120.57,,0,-10.3" target="_blank" rel="noopener"
>Ver mapa más grande&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Este año se impartirán 3 pláticas:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>11:00 am&lt;/strong> ¿Qué es el software libre? por Guillermo Valdés (aka Guivaloz)&lt;/li>
&lt;li>&lt;strong>12:00 pm.&lt;/strong> HTML5 El futuro de la web abierta por Óscar Barajas (aka GnDx).&lt;/li>
&lt;li>&lt;strong>1:00 pm.&lt;/strong> Herramientas para la seguridad por Luis Ángel Pulido (aka Raptor).&lt;/li>
&lt;/ul>
&lt;p>Al terminar las conferencias inicia el Installfest en el que si gustan pueden llevar sus equipos para instalarle algún sabor de Linux.&lt;/p>
&lt;h3 id="lanzamiento-de-gnome-30">Lanzamiento de Gnome 3.0
&lt;/h3>&lt;p>La versión 3.0 del &lt;a class="link" href="https://www.gnome.org/" target="_blank" rel="noopener"
>entorno de escritorio Gnome&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
será lanzada el próximo 6 de abril del presente. Así que también celebraremos el lanzamiento de este proyecto, fue fundado por dos mexicanos: &lt;a class="link" href="http://es.wikipedia.org/wiki/Miguel_de_icaza" target="_blank" rel="noopener"
>Miguel de Icaza&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="http://es.wikipedia.org/wiki/Federico_Mena" target="_blank" rel="noopener"
>Federico Mena&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Con tal motivo, el FLISoL 2011 también será &lt;a class="link" href="http://live.gnome.org/ThreePointZero/LaunchParty#Mexico" target="_blank" rel="noopener"
>sede del festejo del lanzamiento&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>¡No falte usted!&lt;/p>
&lt;p>Más información:&lt;/p>
&lt;ul>
&lt;li>Página del evento en facebook.&lt;/li>
&lt;li>Artículo sobre el Flisol en la página del Gulag.&lt;/li>
&lt;/ul></description></item><item><title>Unefon IDEOS, El Android de los pobres</title><link>https://linuxmanr4.com/2011/03/17/unefon-ideos-el-android-de-los-pobres/</link><pubDate>Thu, 17 Mar 2011 15:41:47 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/17/unefon-ideos-el-android-de-los-pobres/</guid><description>&lt;p>Recientemente vi anunciado en un folleto de &lt;strong>Unefon&lt;/strong> un teléfono con &lt;strong>Android&lt;/strong> por la &amp;ldquo;módica&amp;rdquo; cantidad de 2,999 pesos !!!, era un Huawei IDEOS &lt;strong>U8150&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5175/5535072394%5F470ed4ccb4.jpg"
alt="Unefon IDEOS">&lt;figcaption>
&lt;p>Unefon IDEOS&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Intenté buscar más información el sitio web de &lt;a class="link" href="https://www.unefon.com.mx/" target="_blank" rel="noopener"
>Unefon&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero no da más información que la que viene en el folleto.&lt;/p>
&lt;p>Dice que tiene Android 2.2, una cámara de 3.2 Mega pixeles, Wifi, Bluetooth pero no da detalles como cantidad de memoria o cuando menos la marca del teléfono (al parecer es un Huawei, pero esto no lo he confirmado).&lt;/p>
&lt;p>El precio suena atractivo, el hecho de que tenga una versión decente de Android y Wifi lo hacen interesante. Lo que no se es como se porta Unefon en lo que a transmisión de datos se refiere y a la calidad de las llamadas.&lt;/p>
&lt;p>Hace mucho tiempo tuve un Unefon que curiosamente perdía la señal al entrar a mi casa, cosa que no me incomodaba en lo absoluto puesto que era el teléfono del trabajo :), espero que haya mejorado en ese aspecto. Telcel esta teniendo cada vez más problemas con la calidad de las llamadas y la transmisión de datos, en lo personal he visto muchos problemas con los equipos Blackberry que maneja Telcel, así que puede ser una buena oportunidad de cambiar de compañía de &lt;a class="link" href="https://linuxmanr4.com/2010/03/22/registrar-tu-telefono-celular/" >telefonía celular&lt;/a>
.&lt;/p>
&lt;p>¿Alguien ya tiene un &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2011/12/03/rooteando-el-huawei-u8150-ideos-de-unefon/" >Unefon IDEOS&lt;/a>
&lt;/strong>, para que nos cuente su experiencia con este equipo.?&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>El teléfono es un &lt;strong>Huawei HW U8150&lt;/strong>, encontré las especificaciones completas &lt;a class="link" href="https://web.archive.org/web/20150914194900/http://www.phonearena.com/phones/Huawei-U8150-IDEOS_id4917/fullspecs" target="_blank" rel="noopener"
>aquí&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/BlMi6xmnZg8?t=198" target="_blank" rel="noopener"
>https://youtu.be/BlMi6xmnZg8?t=198&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Rails para Zombies</title><link>https://linuxmanr4.com/2011/03/16/rails-para-zombies/</link><pubDate>Wed, 16 Mar 2011 22:32:54 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/16/rails-para-zombies/</guid><description>&lt;figure>&lt;img src="http://farm6.static.flickr.com/5257/5532719399%5F84ac2f314f.jpg"
alt="Rails for zombies">&lt;figcaption>
&lt;p>Rails for zombies&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me tomó más de lo esperado pero al fin pude terminar &lt;a class="link" href="https://web.archive.org/web/20180529034133/http://railsforzombies.org/" target="_blank" rel="noopener"
>Rails for Zombies&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. No lo tomé como un curso ni no más bien como un ejercicio mental, como una especie de rompecabezas &lt;em>&amp;ldquo;programadoril&amp;rdquo;&lt;/em> que tenía que solucionar.&lt;/p>
&lt;p>Hubo momentos que no fue sencillo y me atoré en algunos &lt;strong>Labs&lt;/strong>, tardé un poco en entender que &lt;strong>Ruby&lt;/strong> es un lenguaje &lt;a class="link" href="http://es.wikipedia.org/wiki/Case_sensitive" target="_blank" rel="noopener"
>case sensitive&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y los mensajes de error como que no son muy claros ¡Ohhh aquellos tiempos del Turbo Pascal!.&lt;/p>
&lt;p>Sin embargo, como que quedan ganas de seguir, probablemente inicie un proyectito sencillo para continuar aprendiendo.&lt;/p></description></item><item><title>DraftSight, Software CAD para Linux</title><link>https://linuxmanr4.com/2011/03/15/draftsight-software-cad-para-linux/</link><pubDate>Tue, 15 Mar 2011 14:50:08 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/15/draftsight-software-cad-para-linux/</guid><description>&lt;p>Anteriormente, había escrito sobre &lt;a class="link" href="https://linuxmanr4.com/2010/09/15/draftsight-una-alternativa-para-autocad/" >DraftSight&lt;/a>
, me llamó la atención la posibilidad de abrir archivos &lt;strong>DWG&lt;/strong> de &lt;strong>Autocad&lt;/strong> y la promesa de una versión para linux.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5254/5528863667%5Fefaa15f422.jpg"
alt="DraftSight para Linux">&lt;figcaption>
&lt;p>DraftSight para Linux&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La espera ha terminado, pueden &lt;a class="link" href="http://www.3ds.com/products/draftsight/download-draftsight/" target="_blank" rel="noopener"
>Descargar DraftSight&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en versiones para Windows, Linux (en .deb y en .rpm) y una versión beta para Mac OSX.&lt;/p>
&lt;p>Probablemente, los profesionales del diseño seguirán eligiendo a AutoCAD, pero para mí que los abro ocasionalmente y hago pequeñas modificaciones está genial. He abierto planos realmente complicados sin problemas a una excelente velocidad.&lt;/p>
&lt;p>DraftSight no es software libre, pero si es gratuito, solo abarca planos en 2D, pero puede ser más que suficiente para muchos que no pueden pagar una licencia de AutoCAD o están considerando otras opciones.&lt;/p></description></item><item><title>OpenShot, un editor de video</title><link>https://linuxmanr4.com/2011/03/09/openshot-un-editor-de-video/</link><pubDate>Wed, 09 Mar 2011 14:42:04 +0000</pubDate><guid>https://linuxmanr4.com/2011/03/09/openshot-un-editor-de-video/</guid><description>&lt;p>Ubuntu incluye por default un editor de video llamado Pitivi, pero me sentí mucho más cómodo con &lt;a class="link" href="http://www.openshotvideo.com/" target="_blank" rel="noopener"
>OpenShot&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5177/5511638215%5F2fa3c5d457.jpg"
alt="OpenShot - Buenos días Colorín">&lt;figcaption>
&lt;p>OpenShot - Buenos días Colorín&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Sin saber mucho del tema en unos cuantos minutos pude hacer mis pininos y editar un video basado en algunas fotografías que tenía a la mano. Es bastante simple arrastrar y soltar las imágenes, agregar una pista de sonido, jugar un poco con las transiciones y ¡Listo!, el video va emergiendo solito.&lt;/p>
&lt;p>Solo un consejo, tienen que instalar un paquete adicional, en mi caso que utilizo ubuntu 10.04 tuve que agregar el paquete &lt;strong>libavformat-extra-52&lt;/strong>. De lo contrario Openshot se cierra solo o marca un error al intentar exportar el vídeo.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5258/5511638261%5Fdf9c764ec9.jpg"
alt="Instalando libavformat-extra-52">&lt;figcaption>
&lt;p>Instalando libavformat-extra-52&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez que el video fue de mi agrado, solo falta exportar el proyecto, elegí el perfil Web óptimo para YouTube HD y este es el resultado.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/6Bp2OG9yL1E"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>No se encontró el candado Microsip (H0007)</title><link>https://linuxmanr4.com/2011/01/13/no-se-encontro-el-candado-microsip/</link><pubDate>Fri, 14 Jan 2011 03:16:20 +0000</pubDate><guid>https://linuxmanr4.com/2011/01/13/no-se-encontro-el-candado-microsip/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2011/01/Candado-Microsip.jpg" alt="Featured image of post No se encontró el candado Microsip (H0007)" />&lt;p>Microsip es un sistema muy utilizado en la Comarca Lagunera. Es un veterano en sistemas contables, he mantenido un contacto más o menos distante con él desde su versión de MS-DOS.&lt;/p>
&lt;p>Ahora se ha renovado y tiene una versión para windows. Lo bueno es que utiliza como motor de base de datos a &lt;a class="link" href="https://es.wikipedia.org/wiki/Firebird" target="_blank" rel="noopener"
>Firebird&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, ¿Se acuerdan de él?, tenía un conflicto por el nombre con Mozilla, por eso ahora el navegador se llama Firefox y creo que salió ganando.&lt;/p>
&lt;h2 id="con-una-vpn">Con una VPN.
&lt;/h2>&lt;p>No existe problema alguno de comunicación entre &lt;strong>Microsip&lt;/strong> – &lt;strong>VPN&lt;/strong> – &lt;strong>Firebird&lt;/strong>, el detalle surge con el candado electrónico &lt;strong>HASP&lt;/strong>.&lt;/p>
&lt;p>Su comportamiento por &lt;em>default&lt;/em> es buscar en todos los equipos que &lt;a class="link" href="https://linuxmanr4.com/2010/04/30/montar-una-carpeta-de-red-compartida-de-windows-en-linux/" >comparten su red&lt;/a>
, pero si el candado se encuentra del otro lado de la VPN, entonces al ejecutar el programa, cuando este intenta validar las licencias, aparece el error &lt;strong>“No se encontró el candado Microsip (&amp;hellip;.)&lt;/strong>”.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/9a2QaH" target="_blank" rel="noopener"
>https://flic.kr/p/9a2QaH&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;em>El famoso error H0007&lt;/em>&lt;/p>
&lt;h3 id="la-solución">La solución.
&lt;/h3>&lt;p>Es bastante simple, aunque nos tomó algo de tiempo encontrarla al amigo de Microsip y a mí. Teníamos cierta idea de lo que pasaba y también de la solución, pero al estar manipulando un sistema de seguridad pecabamos de prudentes.&lt;/p>
&lt;p>Con algo de insistencia la solución salió a la luz. HASP tiene una herramienta de configuración. En la computadora cliente, abrimos una página web con la dirección http://localhost:1947 . Aparecerá la siguiente pantalla:&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/9a2QaM" target="_blank" rel="noopener"
>https://flic.kr/p/9a2QaM&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Buscamos la sección que dice &lt;strong>Configuration&lt;/strong> - &lt;strong>Access to Remote License Managers&lt;/strong> y en la parte que dice &lt;strong>Specify Search Parameters&lt;/strong> le indicamos la dirección IP del equipo que tiene instalado el candado HASP.&lt;/p>
&lt;p>Presionamos el botón de &lt;strong>Submit&lt;/strong> , y con un poco de suerte eso será suficiente para que Microsip encuentre el candado y valide las licencias.&lt;/p>
&lt;h2 id="problemas-con-el-firewall-de-windows">Problemas con el Firewall de Windows.
&lt;/h2>&lt;p>Si el consejo anterior no funciona, entonces hay que revisar el &lt;strong>firewall&lt;/strong> de Windows. Para comprobarlo, se puede desactivar temporalmente el Firewall en el &lt;a class="link" href="https://linuxmanr4.com/2014/11/25/actualizar-microsip-con-un-servidor-web-local/" >servidor de Microsip&lt;/a>
e intentar abrir nuevamente un programa. Si funciona entonces no hay duda. El problema es con el firewall.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/firewall-desactivado.png"
alt="Firewall desactivado - No se encontró el candado Microsip.">&lt;figcaption>
&lt;p>Firewall desactivado - No se encontró el candado Microsip.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para solucionarlo hay que agregar una entrada permitiendo el uso del &lt;strong>puerto 1947&lt;/strong> en los protocolos &lt;strong>TCP&lt;/strong> y &lt;strong>UDP&lt;/strong>.&lt;/p>
&lt;p>Hay que ir al &lt;strong>Panel de control&lt;/strong> - &lt;strong>Firewall de Windows&lt;/strong> - &lt;strong>Configuración Avanzada&lt;/strong>. Hacer clic en &lt;strong>Reglas de entrada&lt;/strong> y luego en el lado derecho &lt;strong>Nueva Regla&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/Agregar-regla-al-firewall.png"
alt="Agregar regla al firewall - No se encontró el candado Microsip.">&lt;figcaption>
&lt;p>Agregar regla al firewall - No se encontró el candado Microsip.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Agregamos una regla para el protocolo &lt;strong>TCP&lt;/strong> y otra para &lt;strong>UDP&lt;/strong>, ambos con el puerto &lt;strong>1947&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2018/10/Permitiendo-el-puerto-1947-TCP.png"
alt="Agregando los puertos - No se encontró el candado Microsip.">&lt;figcaption>
&lt;p>Agregando los puertos - No se encontró el candado Microsip.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de que se agregaron estas reglas, hay que activar nuevamente el firewall de windows. Si Microsip encuentra el candado y abre el programa el problema se ha solucionado.&lt;/p>
&lt;h2 id="servicio-detenido-sentinel-ldk-license-manager-2024">Servicio detenido: Sentinel LDK License Manager (2024)
&lt;/h2>&lt;p>Por alguna extraña razón que no acabo de entender, el servicio &lt;strong>Sentinel LDK License Manager&lt;/strong> que es el encargado de validar las licencias de Microsip no inicia durante el arranque del equipo que hace las funciones de &lt;strong>Servidor&lt;/strong>.&lt;/p>
&lt;p>Y aunque está configurado con un &lt;strong>Tipo de Inicio Automático&lt;/strong> al revisar el estado del servicio esta detenido.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/06/Estado-del-servicio-Sentinel-LDK-License-Manager.jpg"
alt="Estado del servicio Sentinel LDK License Manager.">&lt;figcaption>
&lt;p>Estado del servicio Sentinel LDK License Manager.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Así que toca Iniciar el servicio.&lt;/p>
&lt;p>Y para evitar problemas futuros le digo que Reinicie el servicio al presentar el primer y el segundo error.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2024/06/Reiniciar-el-servicio-Sentinel-LDK-License-Manager.jpg"
alt="En caso de errores configurar un reinicio del servicio.">&lt;figcaption>
&lt;p>En caso de errores configurar un reinicio del servicio.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si hay más problemas creo que ya es necesario una revisión más exhaustiva.&lt;/p></description></item><item><title>Errores al validar los CFD en la página del SAT</title><link>https://linuxmanr4.com/2011/01/05/errores-al-validar-los-cfd-en-la-pagina-del-sat/</link><pubDate>Wed, 05 Jan 2011 15:11:00 +0000</pubDate><guid>https://linuxmanr4.com/2011/01/05/errores-al-validar-los-cfd-en-la-pagina-del-sat/</guid><description>&lt;p>Anote usted la primera del año con respecto a sistemas de gobierno. En el 2011 entra en vigor la factura electrónica, los muy famosos Comprobantes Fiscales Digitales (CFD), lo malo es que ya empezamos con los &amp;ldquo;detallitos&amp;rdquo;.&lt;/p>
&lt;p>Hasta hace una semana hice varias pruebas con &lt;a class="link" href="https://linuxmanr4.com/2010/11/29/facturacion-electronica-libre/" >Factura Libre&lt;/a>
y sin problemas, pero al estar revisando la versión para Windows me di cuenta de que ya no estaba validando correctamente los archivos .xml.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5042/5326789705%5F58bc0fbeb8.jpg"
alt="Comprobante inválido">&lt;figcaption>
&lt;p>Comprobante inválido&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al principio creí que era algún bug en la versión para Windows, generalmente uso la versión para linux y no me había arrojado ningún problema.&lt;/p>
&lt;p>Pero no, al parecer, &amp;ldquo;alguien&amp;rdquo; le movió &amp;ldquo;algo&amp;rdquo; al validador y se ha vuelto todo un caos. ¡Justo al momento de escribir este artículo me aparece simplemente un cuadro en negro !!!!&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5124/5327399836%5F7d1e54fa8e.jpg"
alt="Validador del SAT en negro">&lt;figcaption>
&lt;p>Validador del SAT en negro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como emergencia estoy usando un programa llamado &lt;a class="link" href="http://validacfd.com/" target="_blank" rel="noopener"
>ValidaCFD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, no es oficial, pero dado que el programa oficial no funciona validaCFD nos puede sacar un poco del atolladero.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5046/5326789767%5F045dd9eb15.jpg"
alt="validaCFD">&lt;figcaption>
&lt;p>validaCFD&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Estimados lectores&amp;hellip; ¿Ustedes también tienen el mismo problema son el &lt;a class="link" href="https://linuxmanr4.com/2022/04/21/obtener-la-constancia-de-situacion-fiscal-usando-la-aplicacion-sat-id/" >SAT&lt;/a>
? ¿Usan un validador externo?&lt;/p></description></item><item><title>Samsung Galaxy S vs. Nexus S</title><link>https://linuxmanr4.com/2010/12/20/samsung-galaxy-s-vs-nexus-s/</link><pubDate>Mon, 20 Dec 2010 22:29:54 +0000</pubDate><guid>https://linuxmanr4.com/2010/12/20/samsung-galaxy-s-vs-nexus-s/</guid><description>&lt;figure>&lt;img src="http://farm6.static.flickr.com/5126/5278649866%5F073a213dda.jpg"
alt="Samsung Galaxy vs Nexus S">&lt;figcaption>
&lt;p>Samsung Galaxy vs Nexus S&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;em>&amp;ldquo;Querido y muy apreciado Santa Clos,&lt;/em>&lt;/p>
&lt;p>&lt;em>En esta Navidad me gustaría un teléfono celular, pero no estoy seguro si comprar un Nexus S o un Samsung Galaxy S.&lt;/em>&lt;/p>
&lt;p>&lt;em>El que quieras traerme será bien recibido.&amp;rdquo;&lt;/em>&lt;/p>
&lt;p>Aunque la carta es en broma, el deseo es auténtico y para hacerle las cosas más fáciles a Santa les comparto una breve investigación sobre el tema.&lt;/p>
&lt;p>Estos dos teléfonos han estado rondando en mi mente haciéndome ojitos con sus brillantes pantallas &lt;a class="link" href="http://es.wikipedia.org/wiki/AMOLED" target="_blank" rel="noopener"
>amoled&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ambos tienen características muy similares y son fabricados por Samsung (el Nexus One fue fabricado por HTC). El punto a definir es ¿Cual es una mejor compra?.&lt;/p>
&lt;p>Lamentablemente en México no existe oficialmente el Nexus S y el Galaxy S esta siendo distribuido por Telcel con planes draconianos. Nuevamente, como ocurre con muchos gadgets de última generación, la mejor opción a mi consideración es conseguirlos desbloqueados en Estados Unidos.&lt;/p>
&lt;p>Según la información que he leído, el Samsung Galaxy S es mejor en pantalla, procesador, almacenamiento y conectividad.&lt;/p>
&lt;p>En Estados Unidos se cotiza más caro el Nexus S que el Galaxy S entre 100 y 150 USD según las últimas ofertas que vi en Ebay.&lt;/p>
&lt;p>Si tuviera el dinero a la mano definitivamente me quedaría con el Galaxy S, pero ¿Ustedes cual prefieren? ¿Conocen alguno mejor?&lt;/p>
&lt;p>Webreference:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.amitbhawani.com/blog/google-nexus-s-vs-samsung-galaxy/" target="_blank" rel="noopener"
>Google Nexus S Vs Samsung Galaxy S Comparison – Pros &amp;amp; Cons&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.ebay.com/sch/i.html?_nkw=nexus&amp;#43;s" target="_blank" rel="noopener"
>Nexus S en Ebay&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.ebay.com/sch/i.html?_nkw=samsung&amp;#43;galaxy&amp;#43;s" target="_blank" rel="noopener"
>Galaxy S en Ebay&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20101212224319/http://www.time.com/time/specials/packages/article/0,28804,2035319_2033840_2033837,00.html" target="_blank" rel="noopener"
>Revista Time: Los 10 mejores gadgets del 2010 - Samsung Galaxy S&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>IPCop + OpenVPN (Zerina) + Roadwarrior + Ubuntu</title><link>https://linuxmanr4.com/2010/12/08/ipcop-openvpn-zerina-roadwarrior-ubuntu/</link><pubDate>Thu, 09 Dec 2010 00:24:33 +0000</pubDate><guid>https://linuxmanr4.com/2010/12/08/ipcop-openvpn-zerina-roadwarrior-ubuntu/</guid><description>&lt;p>Desde hace mucho tiempo tengo instalados servidores IPCop que utilizan el addon OpenVPN de Zerina para comunicarse entre sí. La conexión &lt;em>net to net&lt;/em> es excelente, jamas me ha dado ningún problema, pero por alguna razón no había intentado una conexión &lt;em>roadwarrior&lt;/em>.&lt;/p>
&lt;p>Establecer una conexión &lt;em>roadwarrior&lt;/em> desde ubuntu es relativamente sencillo, estos son los pasos:&lt;/p>
&lt;h3 id="crear-el-usuario-en-el-servidor-ipcop">Crear el usuario en el servidor IPCop
&lt;/h3>&lt;p>Un paso antes aunque un poco obvio es tener un servidor &lt;a class="link" href="https://linuxmanr4.com/2008/10/01/una-vpn-net2net-usando-ipcop-y-openvpn/" >IPCop con el addon OpenVPN de Zerina&lt;/a>
funcionando.&lt;/p>
&lt;p>En el servidor IPCop vamos al menú &lt;strong>VPNs - OpenVPN&lt;/strong> en la sección &lt;strong>Roadwarrior Estado y control del cliente:&lt;/strong>, presionamos el botón &lt;strong>Agregar&lt;/strong> y llenamos el formulario con la información necesaria.&lt;/p>
&lt;p>La traducción que tengo es un poco inexacta, en donde dice &lt;strong>Fichero de Contraseña PKCS12&lt;/strong> teclean la contraseña (igual en la confirmación). No se les vaya a olvidar POOOOR FAVOOOOR :)&lt;/p>
&lt;p>Una vez creado nuestro usuario aparecerá en la lista y descargamos el archivo con la configuración de la conexión y el certificado en un archivo .zip&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5125/5245392608%5F67a52c35b1.jpg"
alt="agregar usuario">&lt;figcaption>
&lt;p>agregar usuario&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Eso es todo lo que tenemos que hacer en el servidor IPCop.&lt;/p>
&lt;h3 id="configurar-ubuntu-para-la-conexión-roadwarrior">Configurar Ubuntu para la conexión Roadwarrior.
&lt;/h3>&lt;p>El administrador de red de Gnome en Ubuntu no tiene soporte para redes OpenVPN, por eso es necesario instalarlo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install network-manager-openvpn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora vamos a copiar el archivo zip a una carpeta de nuestro equipo con ubuntu y descomprimimos su contenido. Con una terminal y en el directorio donde descomprimimos los archivos tecleamos lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">openssl pkcs12 -nocerts -in (nombre del archivo).p12 -out userkey.pem
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">openssl pkcs12 -nokeys -clcerts -in (nombre del archivo).p12 -out usercert.pem
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">openssl pkcs12 -nokeys -cacerts -in (nombre del archivo).p12 -out userca.pem
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Donde (nombre del archivo).p12 es el nombre de su archivo ¡Abusados ehhhh!. Básicamente el archivo .p12 tiene toda la información de la conexión, pero nosotros necesitamos separarla en 3 archivos diferentes. Es normal que durante la ejecución les pida la contraseña del enlace, aquella que les pedí que no olvidaran ¿Recuerdan?.&lt;/p>
&lt;p>A partir de aquí todo es muy sencillo, abrimos el Administrador de Red y vamos a la parte del menú que dice &lt;strong>Conexiones VPN&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5044/5245392398%5F6fcace97e5.jpg"
alt="Administrador de redes - Conexiones VPN">&lt;figcaption>
&lt;p>Administrador de redes - Conexiones VPN&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El archivo zip incluye un archivo con extensión .ovpn , lo vamos a importar.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5090/5245392458%5F5164f0ea91.jpg"
alt="Importar archivo ovpn">&lt;figcaption>
&lt;p>Importar archivo ovpn&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo demás es ir llenando los espacios con los certificados que fuimos generando anteriormente y claro la contraseña del enlace.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5087/5244790785%5F0724d94406.jpg"
alt="Editando la conexión">&lt;figcaption>
&lt;p>Editando la conexión&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora si, llegó el momento cuchi cuchi&amp;hellip;. el momento ya vas que chutas. Si todo salio bien el momento de selecciona la conexión VPN se enlazará con su servidor IPCop y mostrará un icono de un pequeño candado. ¡Felicidades! Ahora pueden trabajar desde cualquier lugar en el que se encuentren y tengan una conexión a Internet&amp;hellip; ¡Momento !!!!!!!! Ufffff :S&lt;/p>
&lt;h3 id="actualización-2011-06-26-openvpn-y-ubuntu-1104">Actualización 2011-06-26. OpenVPN y Ubuntu 11.04
&lt;/h3>&lt;p>Al actualizar a Ubuntu me di cuenta de que lo mencionado en este articulo ya no funcionaba. Pero es una buena noticia ya que se simplifico, ya no es necesario extraer los certificados del archivo &lt;strong>.p12&lt;/strong>, en su lugar usamos este mismo archivo directamente en cada uno de los espacios.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5266/5875490074%5Fdb54b744d1.jpg"
alt="OpenVPN IPCop y Ubuntu 11\_04">&lt;figcaption>
&lt;p>OpenVPN IPCop y Ubuntu 11_04&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y eso es suficiente para lograr una conexión exitosa.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3167/5874929173%5Fc136161a31.jpg"
alt="Conexión exitosa a la VPN">&lt;figcaption>
&lt;p>Conexión exitosa a la VPN&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>webgrafía:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.logicalnetworking.net/?p=79" target="_blank" rel="noopener"
>OpenVPN and Gnome Network Manager&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20171116010446/http://www.openvpn.eu/index.php?id=35" target="_blank" rel="noopener"
>OpenVPN for IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Facturación Electrónica Libre</title><link>https://linuxmanr4.com/2010/11/29/facturacion-electronica-libre/</link><pubDate>Mon, 29 Nov 2010 14:44:25 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/29/facturacion-electronica-libre/</guid><description>&lt;p>Durante el fin de semana le di una buena leída al proyecto &lt;a class="link" href="http://www.universolibre.org/node/11" target="_blank" rel="noopener"
>Factura Libre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
desarrollado por Mauricio Baeza Servin.&lt;/p>
&lt;p>¡Solamente utiliza software libre! , OpenOffice, python, openssl y xsltproc , con estos programas genera los certificados, los sellos, los archivos xml y hasta el reporte mensual.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4085/5218038014%5F3aea79dbdb.jpg"
alt="Factura Libre">&lt;figcaption>
&lt;p>Factura Libre&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En varios artículos de su página explica los siguientes puntos.&lt;/p>
&lt;ol>
&lt;li>&lt;a class="link" href="http://www.universolibre.org/node/12" target="_blank" rel="noopener"
>Instalación de factura libre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.universolibre.org/node/13" target="_blank" rel="noopener"
>Generación de los Certificados y Sellos digitales&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://www.universolibre.org/node/14" target="_blank" rel="noopener"
>Datos iniciales y uso del sistema&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ol>
&lt;h2 id="actualización">Actualización
&lt;/h2>&lt;p>Aparecieron nuevas instrucciones corregidas y mejoradas además de un video.&lt;/p>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20111013195615/http://www.universolibre.org/node/15" target="_blank" rel="noopener"
>Implantación de la Factura Electrónica Libre 4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Factura libre utiliza OOo Basic como lenguaje de programación, pero supongo que los algoritmos se pueden cambiar prácticamente a cualquier otro lenguaje. Hasta ahorita lo he probado prácticamente sin complicaciones en el Ubuntu 10.04 que tengo instalado en mi lapita. También se puede ejecutar en Windows pero la instalación de algunos programas complica un poco las cosas.&lt;/p>
&lt;p>Factura libre es ideal para los que facturan servicios, pero para los que buscan más opciones lo pueden modificar o construir algo a partir de este proyecto.&lt;/p>
&lt;p>Los comandos utilizados para obtener el Certificado y el sello valen la visita a la página de Universo Libre.&lt;/p>
&lt;p>La Secretaría de Hacienda debería de apoyar y promover proyectos como este, después de todo, ellos son los más interesados en hacer que se cumplan las normas que establecen.&lt;/p>
&lt;h2 id="actualización-2010-11-30-bug-en-windows---la-declaración-de-la-constante-archivo_cadena">Actualización 2010-11-30 Bug en Windows - La declaración de la constante ARCHIVO_CADENA
&lt;/h2>&lt;p>Con Linux funciona muy bien, pero existe un bug que me causo problemas en Windows. Afortunadamente, lo encontré y es que en Windows no me generaba correctamente la cadena original.&lt;/p>
&lt;p>Abrimos el archivo &lt;strong>FacturaLibre.ods&lt;/strong>. Para corregir el bug se tiene que acceder al código, así que vamos al menú &lt;strong>Herramientas - Macros - Organizar Macros - OpenOffice.org Basic&lt;/strong> .&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5125/5221947084%5F6a7cc4c21b.jpg"
alt="Editar la Macro">&lt;figcaption>
&lt;p>Editar la Macro&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se elige cualquier macro de la sección FacturaLibre.ods y presionamos el botón editar.&lt;/p>
&lt;p>En la parte de abajo se verán muchas pestañas, ese es el código de la aplicación. En donde dice &lt;strong>Globales&lt;/strong> podemos ver el bug en todo su esplendor.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4140/5221347913%5Fbac5b5b7d1.jpg"
alt="bug factura libre ARCHIVO\_CADENA">&lt;figcaption>
&lt;p>bug factura libre ARCHIVO_CADENA&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La declaración de la constante &lt;strong>ARCHIVO_CADENA&lt;/strong> esta duplicada. La correcta es la primera, por eso solamente es necesario comentar la declaración de la segunda y con eso el problema ya no existe.&lt;/p>
&lt;p>El bug se hace visible porque al momento de generar el archivo PDF en lugar de aparecer la cadena original sale el código del archivo xslt.&lt;/p>
&lt;p>Es recomendable revisar que el &lt;a class="link" href="https://linuxmanr4.com/2011/01/05/errores-al-validar-los-cfd-en-la-pagina-del-sat/" >CFD es válido&lt;/a>
con la herramienta que nos proporciona el SAT.&lt;/p>
&lt;figure>&lt;img src="http://farm6.static.flickr.com/5245/5221348303%5F443e362caa.jpg"
alt="CFD Válido">&lt;figcaption>
&lt;p>CFD Válido&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Cabe aclarar que esto solo ocurre en windows, porque la generación de la cadena original ocurre en un archivo bat (en donde se origina el bug) y en Linux se utiliza un pequeño programa en Python.&lt;/p>
&lt;p>Webgrafía. :&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.universolibre.org/node/12" target="_blank" rel="noopener"
>Universo Libre, Factura Libre&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20111222012618/http://www.universolibre.org:80/node/7" target="_blank" rel="noopener"
>Aprendiendo OOo Basic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="https://web.archive.org/web/20111007084302/https://www.consulta.sat.gob.mx/SICOFI_WEB/ModuloECFD_Plus/ValidadorComprobantes/Validador.asp" target="_blank" rel="noopener"
>Validador de forma y sintaxis de Comprobantes Fiscales Digitales&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;/ul></description></item><item><title>DebPBX, VoIP en Debian.</title><link>https://linuxmanr4.com/2010/11/25/debpbx/</link><pubDate>Thu, 25 Nov 2010 14:58:44 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/25/debpbx/</guid><description>&lt;p>Una buena noticia, me acabo de enterar de un proyecto que ofrece servicios de telefonía &lt;a class="link" href="http://es.wikipedia.org/wiki/Voz_sobre_IP" target="_blank" rel="noopener"
>VoIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
basado en Debian. Elastix que es la que manejo está basada en CentOS.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4089/5206254167%5F46d5a98105.jpg"
alt="DebPBX - fop">&lt;figcaption>
&lt;p>DebPBX - fop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="características">Características:
&lt;/h2>&lt;ul>
&lt;li>Basado en Debian Lenny 5.0.5 - netinst para 32 bits y 64 bits, también esta disponible una Imagen para Virtual Box.&lt;/li>
&lt;li>Asterisk es una distribución compilada.&lt;/li>
&lt;li>Tiene un mejor desempeño y rendimiento que otras distribuciones.&lt;/li>
&lt;li>Fácil de usar.&lt;/li>
&lt;li>Robusto y confiable.&lt;/li>
&lt;li>Contraseñas generadas al azar, para aumentar la seguridad.&lt;/li>
&lt;li>Instalación desatendida desde el CD-ROM que pesa sólo 256 MB&lt;/li>
&lt;/ul>
&lt;h2 id="incluye-el-siguiente-software">Incluye el siguiente software:
&lt;/h2>&lt;ul>
&lt;li>5.0.5 Debian Lenny - versión netinst&lt;/li>
&lt;li>Asterisk Versión: 01/04/1929&lt;/li>
&lt;li>Asterisk Addons Versión: 1.4.10&lt;/li>
&lt;li>Completar DAHDI Versión: 2.2.1.1 2.2.1.1&lt;/li>
&lt;li>libpri Versión: 1.4.10.2&lt;/li>
&lt;li>spandsp Versión: 0.0.6pre12&lt;/li>
&lt;li>AGX-AST-ADDONS Versión: 1.4.24.5&lt;/li>
&lt;li>FreePBX versión: 2.7.0&lt;/li>
&lt;li>avantfax Versión: 3.1.6&lt;/li>
&lt;li>avantfax Versión: 3.3.1&lt;/li>
&lt;li>A2Billing Versión: 1.7.0&lt;/li>
&lt;li>Sistema de archivos: ReiserFS (En instalación desatendida)&lt;/li>
&lt;li>Integración con Skype&lt;/li>
&lt;/ul>
&lt;p>Ahorita estoy muy contento con &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Elastix (ahora Issabel)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero algunos querrán aprovechar las bondades de Debian. Es lo bueno del software libre, siempre hay opciones.&lt;/p>
&lt;h3 id="referencias">Referencias:
&lt;/h3>&lt;ul>
&lt;li>Proyecto DebPBX&lt;/li>
&lt;li>Canal en Youtube de DebPBX.&lt;/li>
&lt;/ul></description></item><item><title>Cache DNS</title><link>https://linuxmanr4.com/2010/11/21/cache-dns/</link><pubDate>Sun, 21 Nov 2010 20:51:23 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/21/cache-dns/</guid><description>&lt;p>Me recomendaron instalar algún programa para hacer dns caching en mi lapita. En los comentarios de mi articulo anterior sugirieron dnsmasq, pero buscando las instrucciones en google me topé con pdnsd.&lt;/p>
&lt;h3 id="pdnsd">pdnsd
&lt;/h3>&lt;p>Esta diseñado especialmente para funcionar como caché de DNS. Al estar optimizado para esta tarea tiene un tamaño pequeño y un bajo consumo de memoria.&lt;/p>
&lt;p>La información del caché se guarda permanentemente en el disco duro, muy útil en equipos que se reinician frecuentemente como lo hago con mi lapita.&lt;/p>
&lt;h3 id="instalar-pdnsd-en-ubuntu">Instalar pdnsd en Ubuntu.
&lt;/h3>&lt;p>Instalar pdnsd en Ubuntu es de lo más sencillo. Iniciamos el &lt;strong>centro de software&lt;/strong> y buscamos el paquete. Presionamos el botón de instalar y cuando aparezca un cuadro de debconf preguntando el tipo de configuración le decimos &lt;strong>use root servers&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/5196065594/" title="pdnsd 01 Instalacion por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4087/5196065594_a915c75f4c.jpg"
loading="lazy"
alt="pdnsd 01 Instalacion"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y comprobamos que este activo y funcionando.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/5196066652/" title="pdnsd 02 status ok por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm6.static.flickr.com/5121/5196066652_1f70923486.jpg"
loading="lazy"
alt="pdnsd 02 status ok"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Al hacer: &lt;em>nmap localhost&lt;/em> vemos que esta listo el puerto 53 para escuchar peticiones de dominio.&lt;/p>
&lt;p>Y al teclear : &lt;em>nslookup &lt;a class="link" href="https://www.google.com" target="_blank" rel="noopener"
>www.google.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
127.0.0.1&lt;/em> que es una consulta al dns local nos responde favorablemente.&lt;/p>
&lt;h3 id="configurar-a-ubuntu-para-que-use-el-dns-local">Configurar a Ubuntu para que use el DNS local.
&lt;/h3>&lt;p>Una vez que esta listo nuestro caché de dns, ahora hay que indicarle a ubuntu que lo utilice.&lt;/p>
&lt;p>Vamos al menú &lt;strong>Sistema - Preferencias - Conexiones de red&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/5195468067/" title="pdnsd Editando los DNS por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm6.static.flickr.com/5122/5195468067_e8d94d95a2.jpg"
loading="lazy"
alt="pdnsd Editando los DNS"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Ajustamos los valores IPv4 de nuestra conexión. Modificamos el método &lt;strong>Sólo direcciones automáticas (DHCP)&lt;/strong>.&lt;/p>
&lt;p>Agregamos la dirección &lt;em>127.0.0.1&lt;/em> al principio de la lista de nuestros servidores DNS.&lt;/p>
&lt;p>Si todo salio bien veremos que el tiempo en las consultas al DNS han disminuido notablemente.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/5196067738/" title="pdnsd 03 Rendimiento por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4147/5196067738_15a27456b6.jpg"
loading="lazy"
alt="pdnsd 03 Rendimiento"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h3 id="configurando-pdnsd-para-que-use-los-dns-de-google">Configurando pdnsd para que use los dns de Google
&lt;/h3>&lt;p>Por último vamos a editar el archivo &lt;em>/etc/pdnsd.conf&lt;/em>, en la sección de server comentamos las líneas sobre resolvconf y agreguegamos las siguientes líneas&lt;/p>
&lt;p>Haré una anotación en mi articulo anterior &lt;a class="link" href="https://linuxmanr4.com/2010/11/15/instalar-squid-localmente-ubuntu/" >Instalar Squid localmente en Ubuntu&lt;/a>
sobre como configurar squid3 para que utilice los servicios de pdnsd como el dns local.&lt;/p>
&lt;p>&lt;strong>Actualización 2010-11-23&lt;/strong>&lt;/p>
&lt;p>Al parecer el servicio pdnsd tiene un ligero problemita con ubuntu. Bueno en realidad no es problema de pdnsd, lo que ocurre es que la red no esta disponible cuando inicia el servicio y eso hace que no este aceptando consultas a dominios nuevos.&lt;/p>
&lt;p>La solución es simple, hay que decirle a pdnsd que reinicie cuando ya este lista la conexión.&lt;/p>
&lt;p>Para esto creamos un archivo nuevo:&lt;/p>
&lt;p>&lt;code>sudo gedit /etc/NetworkManager/dispatcher.d/99pdnsd&lt;/code> &lt;a class="link" href="http://www.flickr.com/photos/linuxman/5202517117/" title="Reiniciando pdnsd por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4131/5202517117_94116190a5_m.jpg"
loading="lazy"
alt="Reiniciando pdnsd"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y agregamos el siguiente código.&lt;/p>
&lt;p>&lt;strong>eth1&lt;/strong> es mi tarjeta de red inalámbrica, supongo que tengo que agregar unas líneas similares si lo quiero hacer para mi tarjeta de red ethernet &lt;strong>eth0&lt;/strong>.&lt;/p>
&lt;p>Guardamos el archivo y le damos permisos de ejecución con&lt;/p>
&lt;p>&lt;code>sudo chmod 755 99pdnsd&lt;/code>&lt;/p>
&lt;p>Cuando se vuelva a establecer la conexión reinicia pdnsd y listo !!!&lt;/p>
&lt;p>Webgrafía | &lt;a class="link" href="https://bugs.launchpad.net/ubuntu/&amp;#43;source/pdnsd/&amp;#43;bug/452351" target="_blank" rel="noopener"
>pdnsd requires manual restart after new WiFi connection gets established&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>Instalar Squid localmente en Ubuntu</title><link>https://linuxmanr4.com/2010/11/15/instalar-squid-localmente-ubuntu/</link><pubDate>Tue, 16 Nov 2010 02:10:55 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/15/instalar-squid-localmente-ubuntu/</guid><description>&lt;p>Acabo de instalar squid en mi netbook, el objetivo es simple, acelerar un poco las cosas en mi conexión de internet.&lt;/p>
&lt;p>No he tenido suerte con los proveedores de internet y sus conexiones son inestables. Lo curioso es que en ocasiones esta muy rápido y en otras muy lento. Me siento como &lt;a class="link" href="http://www.youtube.com/watch?v=egwzm6qjpQM" target="_blank" rel="noopener"
>Enjuto Mojamuto con su conexión wifi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&amp;hellip; ( Wiiiifiiiiiiii ).&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4124/5180638190%5F9cf98ce976.jpg"
alt="squid instalado en ubuntu">&lt;figcaption>
&lt;p>squid instalado en ubuntu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hacer esto no es complicado, lo primero es instalar squid en mi equipo. Al momento de buscar el paquete vi que estaba disponible squid3 y me dije &amp;hellip; ¿porque no?, en una terminal tecleamos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install squid3
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para verificar que esta listo y esperando peticiones vamos a usar nmap:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nmap localhost
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si no esta instalado lo hacemos con un &lt;em>sudo apt-get install nmap&lt;/em>, si todo sale bien verán que esta el puerto 3128 activo y esperando peticiones.&lt;/p>
&lt;p>Ahora indicamos que el &lt;a class="link" href="http://es.wikipedia.org/wiki/Proxy" target="_blank" rel="noopener"
>proxy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
local es nuestro proxy por default del sistema. Vamos al menú &lt;strong>Sistema - Preferencias - Proxy de la red&lt;/strong>.&lt;/p>
&lt;p>Elegimos una &lt;strong>Configuración manual del proxy&lt;/strong>, le pedimos que use el mismo proxy para todos los protocolos y usamos el puerto 3128.&lt;/p>
&lt;p>Quizas no es una solución muy elegante, pero al menos con esta modificaciones me ha permitido terminar de escribir este artículo :).&lt;/p>
&lt;h2 id="actualización-2010-11-24">&lt;strong>Actualización 2010-11-24&lt;/strong>
&lt;/h2>&lt;p>Acabo de terminar mis experimentos sobre &lt;a class="link" href="https://linuxmanr4.com/2010/11/21/cache-dns/" >DNS Caching&lt;/a>
es justo que squid3 también aproveche la rapidez de las consultas de dominio.&lt;/p>
&lt;p>Para hacer esto abrimos el archivo de configuración de squid3&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/squid3/squid.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y buscamos la sección que dice &lt;strong>dns_nameservers&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4152/5204367992%5Fcbee4e8734.jpg"
alt="dns\_nameservers">&lt;figcaption>
&lt;p>dns_nameservers&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo hay que agregar una línea que diga.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">dns_nameservers 127.0.0.1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reiniciamos squid3&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo /etc/init.d/squid3 restart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y eso es todo :) .&lt;/p></description></item><item><title>PixieLive para netbooks con chip GMA500 (aka poulsbo, psb)</title><link>https://linuxmanr4.com/2010/11/05/pixielive-para-netbooks-con-chip-gma500-aka-poulsbo-psb/</link><pubDate>Sat, 06 Nov 2010 01:09:31 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/05/pixielive-para-netbooks-con-chip-gma500-aka-poulsbo-psb/</guid><description>&lt;p>En mi búsqueda por una &lt;a class="link" href="http://es.wikipedia.org/wiki/Distro" target="_blank" rel="noopener"
>distro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
optimizada para mi netbook acer one AO751h me topé con &lt;a class="link" href="http://www.pixielive.org/" target="_blank" rel="noopener"
>PixieLive&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es una distro basada en Gentoo y declara estar optimizada para equipos que tienen el chip gráfico &lt;a class="link" href="http://en.wikipedia.org/wiki/Intel_GMA#GMA_500_on_Linux" target="_blank" rel="noopener"
>Intel GMA500&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="http://farm2.static.flickr.com/1438/5150141770%5Ff2d012672e.jpg"
alt="PixieLive">&lt;figcaption>
&lt;p>PixieLive&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="lo-malo">Lo malo
&lt;/h2>&lt;p>Declaro que PixieLive no es para los recién llegados en linux. Es una distro que recién comienza y su página, manuales y el proceso para configurar una memoria USB para su arranque no esta tan simplificada como con Ubuntu o Jolicloud.&lt;/p>
&lt;p>Otra cosa que no me gusta es su wallpaper, justo cuando carga Gnome aparece una imagen de &amp;hellip; tadaaaaan ¿Campanita? &amp;hellip;. ¿es en serio?, aparte de que se pueden buscar un problema con Disney, simplemente no me agrada, me parece muy infantil.&lt;/p>
&lt;p>Los paquetes son muy limitados, aunque su selección inicial es buena y bien pensada. Pero si necesitas instalar algo más vas a tener que esperar a que el equipo de desarrollo libere el programa correspondiente.&lt;/p>
&lt;p>Probablemente, la usaría frecuentemente, incluso pensé en aprovechar el puerto de la memoria micro SD para iniciar PixieLive desde ahí, pero lamentablemente no soporta mi tarjeta de red inalámbrica, una Broadcom BCM4312 y ese amigos, ese si que es un gran problema. Solo me queda estar al pendiente por si liberan el driver para este tipo de tarjetas.&lt;/p>
&lt;h2 id="lo-bueno">Lo bueno
&lt;/h2>&lt;p>El arranque con PixieLive es muy veloz y en general su desempeño es muy bueno, por momentos se me olvidó que todo lo estaba ejecutando desde la memoria USB.&lt;/p>
&lt;p>Y claro, el motivo para probar PixieLive fue revisar su desempeño gráfico, aunque reconoce la resolución nativa del monitor 1366x768 desde el arranque, tiene los mismos problemas de desempeño que otras distros.&lt;/p>
&lt;p>Pero la culpa es en gran parte de Intel, ya que no ha desarrollado un buen driver propietario o cuando menos liberado las especificaciones para que la comunidad haga un driver decente. Desafortunadamente es un chip gráfico muy utilizado en las netbooks modernas y el hecho de que existan estos problemas alejan a las personas a probar linux en estos equipos.&lt;/p>
&lt;p>Mientras tanto, a esperar a Jolicloud versión 1.1 que según dicen tiene importantes mejoras en rendimiento y características.&lt;/p></description></item><item><title>Centro de entretenimiento con una Acer Revo</title><link>https://linuxmanr4.com/2010/11/01/centro-de-entretenimiento-con-una-acer-revo/</link><pubDate>Mon, 01 Nov 2010 20:47:44 +0000</pubDate><guid>https://linuxmanr4.com/2010/11/01/centro-de-entretenimiento-con-una-acer-revo/</guid><description>&lt;p>La semana pasada terminé un proyecto, no fue para mi, pero no descarto hacerlo algún día. Me consiguieron una &lt;a class="link" href="http://en.wikipedia.org/wiki/Acer_Aspire_Revo" target="_blank" rel="noopener"
>Acer Revo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y las misión fue conectarla a una televisión para hacer una versión mexicana de Google TV :).&lt;/p>
&lt;p>Las acer revo tienen un hardware interesante, por un lado tienen especificaciones modestas, un microprocesador atom, un 1GB en RAM y 160 GB en disco duro. Pero lo bueno es que tienen una tarjeta de video nVidia y un puerto HDMI, lo que hace posible la reproducción de videos de alta definición sin problemas.&lt;/p>
&lt;p>Lo único que le hice fue aumentarle la memoria a 2 GB y quedó más que lista para la batalla.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8d4J4c" target="_blank" rel="noopener"
>https://flic.kr/p/8d4J4c&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Le instalé dos programas para que funcionará como un centro de entrenenimiento, el primero fue el ya muy conocido xbmc (ahora &lt;a class="link" href="https://kodi.tv/" target="_blank" rel="noopener"
>kodi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) , me gusta mucho este software porque es muy sencillo de instalar y de configurar. El otro fue &lt;a class="link" href="https://web.archive.org/web/20101030101434/http://www.boxee.tv/" target="_blank" rel="noopener"
>boxee&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que aunque esta basado en el anterior tiene algunas apps que lo hacen muy atractivo, aplicaciones que permiten reproducir el Pandora o el Netflix. El equipo se quedó con el windows xp que trae de fábrica,&lt;/p>
&lt;p>Una vez que tuve el equipo listo solo faltó integrarlo todo, como el equipo es muy ligero y la TV era enorme, con un par de tiras de velcro fijé la computadora en la parte trasera de la televisión. Como &lt;a class="link" href="https://linuxmanr4.com/2019/03/22/como-programar-un-control-remoto-steren-rm-2000/" >control remoto&lt;/a>
un juego de mouse y teclado inalámbricos completaron el conjunto.&lt;/p>
&lt;p>En las imágenes pueden ver el prototipo, lamentablemente no pude tomar fotos del proyecto ya terminado, pero créanme, el resultado se veía espectacular !!!!.&lt;/p></description></item><item><title>Ubuntu Font en Windows y Chrome</title><link>https://linuxmanr4.com/2010/10/14/ubuntu-font-en-windows-y-chrome/</link><pubDate>Thu, 14 Oct 2010 15:43:01 +0000</pubDate><guid>https://linuxmanr4.com/2010/10/14/ubuntu-font-en-windows-y-chrome/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/ubuntufont.png"
alt="Ubuntu font family">&lt;figcaption>
&lt;p>Ubuntu font family&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me parece que la nueva fuente de Ubuntu es un disfrute visual (lo siento Droid Sans), logré instalarla en mi Ubuntu 10.04 pero me gustó tanto que no tarde en instalarla en Windows.&lt;/p>
&lt;p>Pueden descargar los archivos .ttf desde &lt;a class="link" href="http://font.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu font family&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Y para rematar, con esta extensión para Chrome Ubuntu 10.10 (unified font style) v1.0 todas las páginas se muestran con esta tipografía.&lt;/p>
&lt;p>¡Yuhuuuuuu! :)&lt;/p></description></item><item><title>Bittorrents de Ubuntu 10.10 "Maverick Meerkat"</title><link>https://linuxmanr4.com/2010/10/11/bittorrents-de-ubuntu-1010-maverick-meerkat/</link><pubDate>Mon, 11 Oct 2010 14:53:19 +0000</pubDate><guid>https://linuxmanr4.com/2010/10/11/bittorrents-de-ubuntu-1010-maverick-meerkat/</guid><description>&lt;p>Todavía estoy considerando si actualizo o no mi instalación de Ubuntu 10.04, sobre todo porque es una versión LTS y eso me garantiza varios años en la actualización de paquetes, pero de que lo voy a bajar ¡Claro que lo voy a bajar!&lt;/p>
&lt;p>Ayer todavía estaban algo saturados los servidores de descarga, por eso, siempre es preferible bajar el archivo .iso usando el protocolo &lt;a class="link" href="http://es.wikipedia.org/wiki/Bittorrent" target="_blank" rel="noopener"
>bittorrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h3 id="torrents-de-ubuntu-1010">Torrents de Ubuntu 10.10
&lt;/h3>&lt;figure>&lt;img src="https://farm5.static.flickr.com/4153/5072015284_78211d7488_m.jpg"
alt="Ubuntu 10.10">&lt;figcaption>
&lt;p>Ubuntu 10.10&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;ul>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-alternate-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-alternate-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-alternate-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-alternate-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-desktop-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-server-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-server-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/maverick/ubuntu-10.10-server-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-10.10-server-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Enviar faxes por el servidor Hylafax de Elastix</title><link>https://linuxmanr4.com/2010/10/07/enviar-faxes-por-el-servidor-hylafax-de-elastix/</link><pubDate>Thu, 07 Oct 2010 20:32:19 +0000</pubDate><guid>https://linuxmanr4.com/2010/10/07/enviar-faxes-por-el-servidor-hylafax-de-elastix/</guid><description>&lt;p>Ahora que ya tenemos bien instalado nuestro conmutador elastix, como que se antoja aprovechar las opciones de envío de Fax automático mediante el servicio que proporciona &lt;a class="link" href="http://es.wikipedia.org/wiki/Fax#Software_emulador_de_fax" target="_blank" rel="noopener"
>Hylafax&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En lo personal el uso del fax me parece algo antidiluviano, pero tenemos que reconocer que en ocasiones es el único modo de mandar documentos a ciertos lugares.&lt;/p>
&lt;p>Bueno ya basta de tanto bla bla bla y ¡Manos a la obra! &amp;hellip;&lt;/p>
&lt;p>Existen dos programas que recomienda el mismo Elastix para esta tarea &lt;a class="link" href="http://jhylafax.sourceforge.net/" target="_blank" rel="noopener"
>JHylaFAX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y Winprint Hylafax , se pueden ver en la sección de &lt;em>Extras - Downloads - Fax Utilities&lt;/em>.&lt;/p>
&lt;p>WinPrint me dio muchos problemas con Windows 7, tuve que descargar un &lt;a class="link" href="http://www.lorenzomonti.it/winprinthylafax/" target="_blank" rel="noopener"
>dll parchado&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y aunque lo pude hechar a andar los mensajes que me mostraba el programa son muy molestos.&lt;/p>
&lt;p>De aquí en adelante solo se mencionará JHylafax, he comprobado su funcionamiento y como esta basado en Java prácticamente puede funcionar en cualquier sistema operativo.&lt;/p>
&lt;h3 id="configurar-el-conmutador-elastix">Configurar el conmutador elastix.
&lt;/h3>&lt;p>Primero tenemos que decirle a nuestro conmutador elastix que puede recibir peticiones desde otras direcciones IP, por default solo tiene permitido &lt;em>localhost&lt;/em> y &lt;em>127.0.0.1&lt;/em>, es recomendable no mover esos valores.&lt;/p>
&lt;p>Agregamos las direcciones IP desde las que vamos a permitir el envío de fax. Esto lo hacemos en la sección &lt;em>Fax - Fax Clients&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4124/5060144735%5F5cc91670d8.jpg"
alt="IP Permitidas">&lt;figcaption>
&lt;p>IP Permitidas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="configurar-jhylafax">Configurar JHylafax
&lt;/h3>&lt;p>Es muy sencillo, primero bajamos &lt;a class="link" href="http://sourceforge.net/projects/jhylafax/files/" target="_blank" rel="noopener"
>JHylafax&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Nos entregan un archivo .jar , en Windows debería bastar con hacer doble clic al archivo, en linux hay que ejecutarlo con java desde la consola o se puede crear un arrancador.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">java -jar jhylafax-1.4.0-app.jar
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo primero que veremos es el asistente de configuración.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4153/5060756144%5Fa021862dd3.jpg"
alt="Hylafax Server Connection">&lt;figcaption>
&lt;p>Hylafax Server Connection&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En el campo servidor ingresamos la dirección IP de nuestro conmutador Elastix.&lt;/p>
&lt;p>Y como usuarios &lt;strong>root&lt;/strong>, no es necesario proporcionar contraseña, pero si es requerido que el usuario exista. El puerto lo dejamos como esta.&lt;/p>
&lt;p>De ahí en adelante son campos personalizados, nombre y dirección de correo (las notificaciones de errores se mandan por correo), también se puede ajustar la calidad del envío o el tamaño del papel.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4085/5060756218%5Ff9b88c904e.jpg"
alt="Envio de fax">&lt;figcaption>
&lt;p>Envio de fax&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="enviando-un-fax">Enviando un fax
&lt;/h3>&lt;p>¿Listos para mandar un fax?, solo tienen que hacer clic en icono del sobrecito y les aparecerá la siguiente pantalla.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4085/5060756218%5Ff9b88c904e.jpg"
alt="Envio de fax">&lt;figcaption>
&lt;p>Envio de fax&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Número&lt;/strong> es el número de teléfono al que le vas a mandar el fax. Estos números se pueden guardar en una libreta de direcciones que incluye el mismo programa. Les recuerdo que si es necesario algún número para marcar hacia el exterior también lo incluyan.&lt;/p>
&lt;p>&lt;strong>Documento&lt;/strong> son los archivos que deseas mandar ¡Advertencia! sólo se pueden mandar archivos en formato PDF o txt.&lt;/p>
&lt;p>&lt;strong>Fecha&lt;/strong> se puede indicar que lo mande inmediatamente o agendarlo para una fecha y hora determinada, esta opción debe de ser el infierno de los procrastinadores :)&lt;/p>
&lt;p>&lt;strong>Incluir Portada&lt;/strong> Si seleccionamos esta opción nos aparecerán más datos que llenar, toda esta información sirve para formar una Portada de Fax que se mandará al principio.&lt;/p>
&lt;p>Al presionar el botón de OK, le mandamos el trabajo al servidor Hylafax y dejamos que haga el resto. Si todo salio bien, en unos minutos veremos el estatus el envio en &lt;strong>Enviados&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4084/5060817046%5F9b3eaa1c62.jpg"
alt="Faxes enviados">&lt;figcaption>
&lt;p>Faxes enviados&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Todavía estoy buscando alguna solución que se integre mejor con Windows 7, algo que me ahorre el paso de imprimir mi documento en PDF.&lt;/p></description></item><item><title>Acer Aspire One AO751h con Jolicloud</title><link>https://linuxmanr4.com/2010/10/05/acer-aspire-one-ao751h-con-jolicloud/</link><pubDate>Tue, 05 Oct 2010 18:02:32 +0000</pubDate><guid>https://linuxmanr4.com/2010/10/05/acer-aspire-one-ao751h-con-jolicloud/</guid><description>&lt;p>Pues resulta que el sábadito alegre mi linda pingüinita me dio la agradable sorpresa de un regalo de cumpleaños adelantado.&lt;/p>
&lt;p>Tadaaaaaaan, con ustedes una netbook Acer Aspire One AO751h &amp;hellip;&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5053939977_b44f235743_m.jpg"
loading="lazy"
alt="Su empaque original"
>&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5054560520_13a812c0d2_m.jpg"
loading="lazy"
alt="grub"
>&lt;/p>
&lt;p>Ya se imaginarán, me entro una especie de ansiedad jajajaja &amp;hellip; lo primero que hice, creo que incluso antes de iniciarlo con Windows fue instalarle &lt;a class="link" href="http://www.ubuntu.com/netbook/get-ubuntu/download" target="_blank" rel="noopener"
>Ubuntu Netbook Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero no duro mucho debido a un problema con el driver de video. Al encender el equipo me mostró una resolución de 1024x768 cuando la resolución del equipo es de 1366x768.&lt;/p>
&lt;p>Al parecer este es un problema muy común en varios modelos de netbooks (no solo Acer) debido a que Intel no ofrece un buen driver para Linux.&lt;/p>
&lt;p>La página de ayuda de Ubuntu ofrece alguna luz al respecto &lt;a class="link" href="https://help.ubuntu.com/community/AspireOne/AO751h" target="_blank" rel="noopener"
>Aspire One AO751h&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Esta página muestra el soporte para la tarjeta de vídeo Intel GMA500 &amp;ldquo;Poulsbo&amp;rdquo; en varias versiones de Ubuntu. &lt;a class="link" href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/" target="_blank" rel="noopener"
>Hardware Support Components Video Cards Poulsbo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Todo este material de lectura lo dejé para más tarde porque quería probar &lt;a class="link" href="https://web.archive.org/web/20160301004406/http://www.jolicloud.com/" target="_blank" rel="noopener"
>Jolicloud&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>La instalación fue muy sencilla, pero lo que más llamó mi atención es que durante el arranque activó mi tarjeta de red inalámbrica y con la resolución correcta.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5054561018_f15b6495f6.jpg"
loading="lazy"
alt="Arranque de Jolicloud"
>&lt;/p>
&lt;p>Ahora lo complicado fue &amp;ldquo;entenderle&amp;rdquo; , los detalles en la interfaz están muy optimizados para pantallas pequeñas, esta es la pantalla inicial ..&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/5054107007_89bec2bf50.jpg"
loading="lazy"
alt="Pantalla inicial"
>&lt;/p>
&lt;h2 id="atajos-de-teclado">Atajos de teclado.
&lt;/h2>&lt;p>Estos atajos de teclado les van a hacer la vida más sencilla con Jolicloud.&lt;/p>
&lt;ul>
&lt;li>Tecla Windows -&amp;gt; Muestra el menú principal&lt;/li>
&lt;li>Alt-Tab -&amp;gt; Cambia la ventana actual entre las aplicaciones&lt;/li>
&lt;li>Alt+F1 -&amp;gt; Abre una terminal&lt;/li>
&lt;li>Alt+F2 -&amp;gt; Inicia el arrancador de programas de Gnome&lt;/li>
&lt;li>Alt+F4 -&amp;gt; Cierra la ventana actual&lt;/li>
&lt;li>Tecla de menús -&amp;gt; Muestra un menú desplegable con todas los programas y herramientas instalados&lt;/li>
&lt;/ul>
&lt;h2 id="opción-inválida-al-montar-el-volumen">Opción inválida al montar el volumen.
&lt;/h2>&lt;p>Esto fue algo curioso, una vez que terminé mi instalación de Jolicloud borré mi memoria USB y recuperé los archivos que tenía. Al momento de insertarla en la computadora me aparecia un mensaje de error&amp;hellip; &amp;ldquo;Opción inválida al montar el volumen&amp;rdquo;, lo divertido fue que solamente aparecía con la memoria que use para instalar, puse otras y me las reconocía sin problemas. Incluso llegué a formatear la memoria sin resultado, así que después de googlear un poco, seguí la recomendación de editar el archivo fstab.&lt;/p>
&lt;p>Al revisarlo me apareció una partición declarada como cdrom !!!, yo no tenía tal cosa !!! procedí a comentar la línea, aplique los cambios con &amp;hellip;&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo mount -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="pros-y-contras">Pros y Contras.
&lt;/h2>&lt;p>Jolicloud hace un buen trabajo, no he tenido que lidiar con la tarjeta de video o con la tarjeta de red inalámbrica, inicia y se apaga muy rápidamente.&lt;/p>
&lt;p>Una vez que te acostumbras a la distribución de la pantalla vez que es muy práctica, realmente se aprovecha muy bien el espacio, conocer los atajos de teclado ayuda mucho.&lt;/p>
&lt;p>Lo malo, siento que la tarjeta de video todavía puede ofrecer mucho más. Espero que con el tiempo Intel se ponga las pilas y ofrezca un buen driver para Linux.&lt;/p>
&lt;p>La función de Sleep no funciona, la compu se va a dormir y no regresa de su sueño. ¡Canija dormilona!.&lt;/p>
&lt;p>En general Jolicloud me parece una buena opción para la nueva lapita, pero me conozco, en la primera oportunidad voy a instalarle algo distinto, sobre todo para sacarle más jugo a la tarjeta de video.&lt;/p>
&lt;p>¿Alguna distro que me recomienden para este equipo?.&lt;/p></description></item><item><title>Jalar una llamada de un conmutador Elastix</title><link>https://linuxmanr4.com/2010/09/23/jalar-una-llamada-de-un-conmutador-elastix/</link><pubDate>Thu, 23 Sep 2010 18:09:39 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/23/jalar-una-llamada-de-un-conmutador-elastix/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/09/Linksys-SPA922.jpg" alt="Featured image of post Jalar una llamada de un conmutador Elastix" />&lt;p>Es una situación muy común, el teléfono de tu compañero esta sonando y te tienes que mover a su lugar para contestar la llamada. Pero no es necesario, es muy sencillo  jalar una llamada a tu extensión con un conmutador &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Elastix (ahora Issabel)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Después de darle muchas vueltas al asunto intentando configurar el parámetro &lt;em>pickugrop&lt;/em> de cada extensión me decidí a utilizar una opción que ya esta configurada por default.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/09/jalar%5Fllamada%5Felastix.png"
alt="Como jalar una llamada con Elastix">&lt;figcaption>
&lt;p>Como jalar una llamada con Elastix&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para jalar una llamada solo tienes que teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">** + número de extensión que esta timbrando
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso se transfiere la llamada a tu extensión.&lt;/p>
&lt;p>Parece algo muy trivial, pero busqué un buen rato en google y la solución no apareció de una manera tan clara.&lt;/p>
&lt;h2 id="problemas-con-linksys-spa922-y-spa942">&lt;strong>Problemas con Linksys SPA922 y SPA942&lt;/strong>
&lt;/h2>&lt;p>Al probar esta funcionalidad en los teléfonos Linksys SPA922 y SPA942 pasó algo curioso, al presionar el segundo * inmediatamente cortaba la llamada y aparecía el mensaje &amp;ldquo;Call Ended&amp;rdquo;.&lt;/p>
&lt;p>La solución fue cambiar un dial plan por uno que aceptara el segundo asterisco.&lt;/p>
&lt;p>Para modificarlo hay que abrir la página web del aparato, ir a &lt;em>Admin Login&lt;/em> → &lt;em>Advanced&lt;/em> → &lt;em>EXT1&lt;/em> → &lt;em>Dial Plan&lt;/em> y modificarlo por algo parecido a esto.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">(x|*x.|x.)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si el dial plan anterior no funcionó, pruebe con este otro:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">(*x.|**x.|x.)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/09/Dial-Plan-2.png"
alt="Dial Plan para jalara una llamada- Linksys SPA922">&lt;figcaption>
&lt;p>Dial Plan para jalara una llamada- Linksys SPA922&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este dial plan permite marcar dos asteriscos y un número que es la opción para &lt;em>pickup call&lt;/em> definida en Elastix.&lt;/p></description></item><item><title>DraftSight, una alternativa para Autocad</title><link>https://linuxmanr4.com/2010/09/15/draftsight-una-alternativa-para-autocad/</link><pubDate>Wed, 15 Sep 2010 21:04:38 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/15/draftsight-una-alternativa-para-autocad/</guid><description>&lt;p>&lt;a class="link" href="http://es.wikipedia.org/wiki/AutoCAD" target="_blank" rel="noopener"
>Autocad&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es uno de los programas más difíciles de reemplazar en el mundo del software libre. &lt;a class="link" href="https://web.archive.org/web/20101219161602/http://www.3ds.com:80/es/products/draftsight/draftsight-overview/" target="_blank" rel="noopener"
>DraftSight&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es un programa de diseño interesante que promete sacar una versión para Linux en este año.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4993568959/" title="Probando Draftsight por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4089/4993568959_06211d4912.jpg"
loading="lazy"
alt="Probando Draftsight"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Descargué la versión disponible para windows y darle un vistazo, pude importar algunos archivos que ya tenía y trabajar sin problemas con ellos. Incluso los pude guardar en el mismo formato de Autocad.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/KgJjZrq5q8s"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Como todos los programas de este tipo toma un rato dominarlo, sin embargo, las opciones básicas son claras y algunos no requerimos más opciones que la visualización y la impresión.&lt;/p>
&lt;p>Aquí aplica la famosa regla del 80 - 20, ¿Porque va a pagar una licencia de Autocad si lo único que desea es poder ver el archivo o imprimirlo?, DraftSight permite abrir, imprimir, modificar y guardar en el mismo formato de Autocad ¡sin costo!.&lt;/p>
&lt;p>Mientras sale a la luz la versión prometida para Linux este programa me sirve para ver archivos de Autocad 2010 y guardarlos en un formato más viejito.&lt;/p></description></item><item><title>Cuarto Congreso Internacional de Software Libre</title><link>https://linuxmanr4.com/2010/09/08/cuarto-congreso-internacional-de-software-libre/</link><pubDate>Wed, 08 Sep 2010 15:35:07 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/08/cuarto-congreso-internacional-de-software-libre/</guid><description>&lt;p>El Grupo de Usuarios de GNU/Linux de la Laguna (GULAG) en conjunto con el Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Laguna (ITESM) organizan el IV Congreso Internacional de Software Libre. El evento donde los grandes gurús nos compartirán sus experiencias, se impartirán talleres para poner en práctica programas libres y ejerceremos nuestra libertad de compartir conocimientos y software.&lt;/p>
&lt;p>La propuesta central de las conferencias de esta edición del Congreso es compartir las experiencias del uso del software libre en la iniciativa privada y en el gobierno. También se realizarán talleres, donde aprenderemos y pondremos en práctica lenguajes de programación y detección de vulnerabilidades de sistemas operativos.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4154/4971364842%5F834785fb0a.jpg"
alt="4º Congreso Internacional de Software Libe">&lt;figcaption>
&lt;p>4º Congreso Internacional de Software Libe&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>Conferencias viernes 10 de septiembre&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>10:00 Ceremonia de Inauguración .&lt;/li>
&lt;li>10:20 Maximino Luna: El Software Libre, una alternativa viable para el gobierno.&lt;/li>
&lt;li>11:40 Alfonso Arjona: .&lt;/li>
&lt;li>13:00 Adarsh Bhardway: Las Open Sources transforman todo.&lt;/li>
&lt;li>14:20 RECESO.&lt;/li>
&lt;li>15:40 Rafael Bucio: Técnicas de Wardriving en redes inalámbricas.&lt;/li>
&lt;li>17:00 Oscar Barajas: Software Libre para Sistemas Operativos.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Talleres sábado 11 de septiembre&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>10:00 Antonio Gurza: Taller de Pen Testing.&lt;/li>
&lt;li>10:00 Max de Mendizabal: Creación de cursos con Moodle.&lt;/li>
&lt;li>10:00 Maximino Luna: Inkscape y JessyInk para elaboración de presentaciones.&lt;/li>
&lt;li>10:00 Rafael Bucio: Programación Bash GTK+ II parte.&lt;/li>
&lt;/ul>
&lt;p>El evento es totalmente gratuito, pero sería recomendable que registraras tu asistencia al evento. Forma de Registro.&lt;/p></description></item><item><title>Facturación electrónica Verdades y Rumores</title><link>https://linuxmanr4.com/2010/09/06/facturacion-electronica-verdades-y-rumores/</link><pubDate>Mon, 06 Sep 2010 19:25:29 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/06/facturacion-electronica-verdades-y-rumores/</guid><description>&lt;p>Hoy me llegó un correo electrónico con este mensaje&amp;hellip;&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4133/4964892814%5F6fd985519e.jpg"
alt="Verdades y Rumores sobre la facturación electrónica">&lt;figcaption>
&lt;p>Verdades y Rumores sobre la facturación electrónica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A todos los que nos encargamos de algún sistema de facturación nos interesa, pero lo que llamó mi atención es lo de &lt;strong>OBLIGATORIA&lt;/strong>.&lt;/p>
&lt;p>Para saber a exactamente a que le tiramos consulté la página del SAT y me encontré con este &lt;a class="link" href="ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/boletines/com2010_123.pdf" >Comunicado de prensa&lt;/a>
, resalte los puntos que considero más importantes en negritas.&lt;/p>
&lt;p>A partir del 1 de enero de 2011, inicia el cambio, &lt;strong>de manera paulatina&lt;/strong>, al uso generalizado de la facturación electrónica&lt;/p>
&lt;ul>
&lt;li>Se amplían los mecanismos para emisión de comprobantes para todos los contribuyentes&lt;/li>
&lt;li>Los contribuyentes pueden optar desde ahora por el esquema facturación electrónica&lt;/li>
&lt;li>Los actuales comprobantes fiscales impresos podrán seguir utilizándose hasta vencerse, sin importar el monto que amparen&lt;/li>
&lt;li>Se prevé que &lt;strong>los contribuyentes con ingresos iguales o menores a 4 millones de pesos puedan seguir expidiendo comprobantes impresos&lt;/strong>, sin importar el monto que amparen&lt;/li>
&lt;/ul>
&lt;p>Comparando, como que el mensaje que maneja el correo no es el mismo al que publica el SAT ¿cierto?.&lt;/p>
&lt;p>Apenas si he rascado un poco el tema de la facturación electrónica y es que la información que veo en el SAT es complicada y confusa, un auténtico galimatías.&lt;/p>
&lt;p>Supongo que dedicándole una buena cantidad de tiempo podría desarrollar alguna solución que pudiera adaptar al sistema que tengo actualmente, pero ¿Por qué no desarrollan un API?, ¿Por qué añadirle una complejidad innecesaria a algo que se puede hacer de manera sencilla?.&lt;/p>
&lt;p>Solo espero que todo esto no se haga un caos como con el SUA.&lt;/p></description></item><item><title>Grandstream Handtytone 286 en Elastix</title><link>https://linuxmanr4.com/2010/09/03/grandstream-handtytone-286-en-elastix/</link><pubDate>Fri, 03 Sep 2010 21:56:25 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/03/grandstream-handtytone-286-en-elastix/</guid><description>&lt;p>Los Grandstream son unos ATA (Analogue Terminal Adapter) muy económicos y muy sencillos de configurar. Este tipo de aparatitos se vuelven necesarios si quieres conectar un teléfono normal como puede ser un teléfono inálambrico o un fax.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/handytone286.jpg"
loading="lazy"
alt="Handytone 286 de Grandstream"
>&lt;/p>
&lt;p>Son aparatos muy simples, en un extremo se conectan a la red y en el otro al teléfono normal.&lt;/p>
&lt;p>Como no tienen display puede ser un poco complicado averiguar la dirección ip que obtuvieron, para averiguarla hay que hacer los siguiente.&lt;/p>
&lt;ol>
&lt;li>Descolgar el teléfono y marcar &lt;strong>\_ \_ \*&lt;/strong> (tres veces asterisco).&lt;/li>
&lt;li>Escucharan un código de error (todavía no se registra al servidor elastix)&lt;/li>
&lt;li>Presionan la tecla &lt;strong>#&lt;/strong> para que entre en el menú de opciones.&lt;/li>
&lt;li>Presionan &lt;strong>02&lt;/strong> que es la opción en la que les va a decir la dirección ip del aparatito, les reto a que la anoten en el primer intento :)&lt;/li>
&lt;/ol>
&lt;p>Claro que todo esto y la explicación de muchas más opciones las pueden encontrar en el &lt;/p>
\[Manual de usuario para el handytone 286\]&lt;p>(&lt;a class="link" href="http://www.grandstream.com/user" target="_blank" rel="noopener"
>http://www.grandstream.com/user&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
_manuals/HandyTone.pdf).&lt;/p>
&lt;p>Abrimos una página web y tecleamos la dirección IP, les pedirá una contraseña que es &lt;strong>admin&lt;/strong>.&lt;/p>
&lt;p>Vamos a la pestaña que dice &lt;strong>ADVANCED SETTINGS 1&lt;/strong>, aquí es donde ocurre la magia.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4955370446/" title="Configuracion de un Grandstream Handytone 286 para elastix por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4146/4955370446_d030667c80.jpg"
loading="lazy"
alt="Configuracion de un Grandstream Handytone 286 para elastix"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Claro que para que funcione se debe de dar primero la extensión en el servidor Elastix, realmente es muy sencillo.&lt;/p>
&lt;p>Solo quiero agregar un detalle, la extensión al parecer no detectaba correctamente los tonos de las teclas y es indispensable para revisar el buzón de voz o hacer transferencias de llamadas.&lt;/p>
&lt;p>Para eso cambiamos el valor de &lt;strong>Send DTMF&lt;/strong> y solo seleccionamos la opción de &lt;strong>via RTP (RFC2833)&lt;/strong>.&lt;/p>
&lt;p>Guardamos las configuraciones, reiniciamos el aparatito y listo con eso debe de funcionar correctamente.&lt;/p>
&lt;p>&lt;em>P.D: Parafraseando un poco a Bob Ross&lt;/em>&lt;/p>
&lt;p>Soy su amigo Linuxman, me despido deseándoles felices llamadas&amp;hellip;. hasta la próxima.&lt;/p></description></item><item><title>Como abrir Hulu y Pandora desde México</title><link>https://linuxmanr4.com/2010/09/02/como-abrir-hulu-y-pandora-desde-mexico/</link><pubDate>Thu, 02 Sep 2010 22:57:20 +0000</pubDate><guid>https://linuxmanr4.com/2010/09/02/como-abrir-hulu-y-pandora-desde-mexico/</guid><description>&lt;p>Tanto &lt;a class="link" href="http://www.hulu.com/" target="_blank" rel="noopener"
>hulu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(sitio de videos) como &lt;a class="link" href="http://www.pandora.com/" target="_blank" rel="noopener"
>Pandora&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(sitio de música) mantienen una restricción geográfica. El servicio solo esta disponible en los Estados Unidos.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4106/4952702142%5Fe3493afe0e%5Fm.jpg"
alt="error hulu">&lt;figcaption>
&lt;p>error hulu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4149/4952109887%5F83abaa4b90%5Fm.jpg"
alt="error pandora">&lt;figcaption>
&lt;p>error pandora&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Afortunadamente, existe una solución, el programa &lt;a class="link" href="http://hotspotshield.com/" target="_blank" rel="noopener"
>hotspot shield&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ofrece un enlace VPN a Estados Unidos que supera la prueba de verificación de origen.&lt;/p>
&lt;p>La instalación es sencilla, solo hay que tener cuidado de no instalar junto con el programa una de esas barritas que se le pegan al Explorer.&lt;/p>
&lt;p>Una vez que está instalado y ejecutándose solo hay que volver a abrir las páginas para comprobar que ya no existe tal restricción.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4127/4952109729%5Febc59b37f8.jpg"
alt="hulu ultravioleta">&lt;figcaption>
&lt;p>hulu ultravioleta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo tiene algunos inconvenientes, inserta un cintillo de publicidad en la parte superior de las páginas y que solo está disponible para Windows.&lt;/p></description></item><item><title>Problemas con el iPod y el iTunes</title><link>https://linuxmanr4.com/2010/08/31/problemas-con-el-ipod-y-el-itunes/</link><pubDate>Tue, 31 Aug 2010 22:15:14 +0000</pubDate><guid>https://linuxmanr4.com/2010/08/31/problemas-con-el-ipod-y-el-itunes/</guid><description>&lt;p>Hoy ha sido uno de esos días frustrantes, me trajeron un iPod y la computadora porque no pueden sincronizar las canciones.&lt;/p>
&lt;p>Ahora vienen la lista de anormalidades&amp;hellip;&lt;/p>
&lt;p>Al conectar el iPod me aparece que quiere instalar una cámara !!!&lt;/p>
&lt;p>En la lista de Hardware, el iPod me aparece con un iconito de exclamación de color amarillo (cosa que indica un problema) en la sección de Dispositivos de imágenes o.O&lt;/p>
&lt;p>Si dejo todo como está sin moverle nada, en el iTunes me aparece el iPod y lo sincroniza !!! WTF.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4131/4946614674%5Feaeee7c0ec.jpg"
alt="Problemas con el itunes y con el ipod">&lt;figcaption>
&lt;p>Problemas con el itunes y con el ipod&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si por alguna razón termino el &lt;strong>Asistente para hardware nuevo encontrado&lt;/strong> con un error, puesto que nunca encuentra el driver adecuado, el iPod hace un ruidito, como que se reinicia y cancela la sincronización que estaba en curso.&lt;/p>
&lt;p>Ya intenté desinstalar todo lo relacionado con Apple (iTunes, Safari, Quicktime, Bonjour, etc) , reinicie y reinstalé el iTunes y nada !!! sigue igual !!!.&lt;/p>
&lt;p>Creo que no me queda de otra más que aplicarle la primera ley de Windows: Para todo mal reinstalar y para todo bien también.&lt;/p>
&lt;p>Total creo que ya le hacía falta :)&lt;/p></description></item><item><title>Mi primera distro, Caldera OpenLinux</title><link>https://linuxmanr4.com/2010/08/28/mi-primera-distro-caldera-openlinux/</link><pubDate>Sat, 28 Aug 2010 14:27:36 +0000</pubDate><guid>https://linuxmanr4.com/2010/08/28/mi-primera-distro-caldera-openlinux/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/Caldera-OpenLinux-1.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/01/Caja-Reverso.jpg">
&lt;/figure>
&lt;p>Es divertido cuando buscando una cosa te encuentras con otra. El otro día me encontré con mi primera &lt;a class="link" href="http://es.wikipedia.org/wiki/Distribuci%C3%B3n_Linux" target="_blank" rel="noopener"
>distro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Linux que fue &lt;a class="link" href="http://en.wikipedia.org/wiki/Caldera_OpenLinux" target="_blank" rel="noopener"
>Caldera OpenLinux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Durante mis últimos años de carrera en el ITL escuche a un orador en una conferencia platicar sobre Linux y el Software Libre, en aquellos días Microsoft era lo máximo y Bill Gates el nerd (no existía el término geek) que todos queríamos ser ¡Ah como han pasado los años!.&lt;/p>
&lt;p>Seguí informándome en las revistas principalmente PC Magazine y PC World este sistema operativo. En en mi primer trabajo tuve la oportunidad de darme el gusto de comprar mi primera distribución de Linux que en aquellos días me costó la cantidad de 50 USD.&lt;/p>
&lt;p>Ni pensar en descargarlo porque en solo tenía disponible una conexión a Internet mediante un módem. Un amigo me prestó su tarjeta de crédito internacional y un compañero de trabajo me hizo el favor de traerme el paquete desde Estados Unidos.&lt;/p>
&lt;p>No solo era mi primer Linux, también era el primer software que pagaba con dinero producto de mi trabajo. Ceremoniosamente me dispuse a abrir el paquete, con cuidado quité el plástico protector y fueron saliendo de la caja 3 CD&amp;rsquo;s, 1 floppy, un manual y varios cupones.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8w2F3H" target="_blank" rel="noopener"
>https://flic.kr/p/8w2F3H&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Manos a la obra, para instalarlo, tengo que confesar que aunque el artículo de la revista decía que era uno de las distribuciones más sencillas de instalar (la otra era Red Hat) hacer las particiones al disco duro no fue sencillo y en un &lt;em>&amp;ldquo;intonto&amp;rdquo;&lt;/em> por hacer que mi Windows y Linux convivieran terminé borrando todas las particiones de mi disco duro. Ni modo dicen que echando a perder se aprende. OpenLinux tenía la monada de que una vez que finalizaba el interrogatorio y mientras instalaba los paquetes cargaba un juego de Tetris para que te entretuvieras mientras terminaba.&lt;/p>
&lt;p>&lt;a class="link" href="https://www.flickr.com/photos/linuxman/4934911880/" target="_blank" rel="noopener"
>https://www.flickr.com/photos/linuxman/4934911880/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Poco a poco le fui agarrando el modo, claro que tuve que leer mucho para hacer casi cualquier cosa. En el trabajo me facilitaron una computadora de 333 Mhz o algo así, de hecho no tenía un uso específico y era &amp;ldquo;antigua&amp;rdquo; y lenta para dársela a un usuario.&lt;/p>
&lt;p>Le instalé Linux pero ¿Y luego?, ¿Qué podía hacer con ella?, este equipo sin propósito terminó haciendo un respaldo todas las noches de la información del servidor, era un respaldo del respaldo porque la unidad de cinta tenía problemas frecuentemente. Eso era por las noches, de día le conecté una impresora láser y funcionaba como un servidor de impresión para la red de windows gracias a Samba.&lt;/p>
&lt;p>Tiempo después me encontré con Mandrake (ahora &lt;a class="link" href="https://web.archive.org/web/20250313074054/https://tuxedo.org/mandriva/" target="_blank" rel="noopener"
>Mandriva&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
), me pareció más sencillo de instalar y tenía un buen manejo de paquetes, pero esa &amp;hellip; esa es otra historia.&lt;/p></description></item><item><title>3 consejos SEO para blogsome</title><link>https://linuxmanr4.com/2010/08/24/3-consejos-seo-para-blogsome/</link><pubDate>Tue, 24 Aug 2010 20:49:49 +0000</pubDate><guid>https://linuxmanr4.com/2010/08/24/3-consejos-seo-para-blogsome/</guid><description>&lt;p>Estos 3 simples consejos SEO le pueden ayudar a mejorar la manera en que ven su sitio los buscadores. Está enfocado a blogsome y a los &lt;a class="link" href="http://www.smarty.net/" target="_blank" rel="noopener"
>Smarty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
tags que utiliza, pero se pueden adaptar a otros servicios de hospedaje.&lt;/p>
&lt;h2 id="el-título">El título.
&lt;/h2>&lt;p>Todo comenzó leyendo este artículo &lt;a class="link" href="http://sixrevisions.com/content-strategy/5-common-seo-mistakes-with-web-page-titles/" target="_blank" rel="noopener"
>Common SEO Mistakes with Web Page Titles&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, entonces me di cuenta de que estaba cometiendo el error de incluir el nombre de mi blog en el título de las páginas, peor aún ¡En el comienzo!.&lt;/p>
&lt;p>Para corregir esto modifique el tag Title para que quedara de la siguiente manera:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;title&amp;gt;{single_post_title prefix=&amp;#39;&amp;#39;}{single_cat_title prefix=&amp;#39;&amp;#39;}&amp;lt;/title&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa manera queda solamente el título del artículo o de la categoría.&lt;/p>
&lt;h2 id="el-meta-tag-description">El META TAG Description.
&lt;/h2>&lt;p>Anteriormente, tenía un contenido fijo como descripción de mi página. No no no , eso no se hace, es mejor tener una descripción personalizada para cada artículo.&lt;/p>
&lt;p>Para eso aprovechamos el campo &lt;strong>Excerpt&lt;/strong> que viene al comienzo, antes de escribir el artículo. Si se deja ese espacio en blanco, entonces toma los primeros párrafos del texto del artículo.&lt;/p>
&lt;p>El código para blogsome quedaría así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;meta name=&amp;#34;description&amp;#34; content=&amp;#34;{capture name=resumen}{the_excerpt}{/capture}{$smarty.capture.resumen|strip_tags}&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Vean como primero &amp;ldquo;capturo&amp;rdquo; el valor del excerpt en la variable &lt;strong>resumen&lt;/strong>, a esta variable le aplico un &lt;em>strip_tags&lt;/em> para quitarle cualquier código html que inserta automáticamente wordpress.&lt;/p>
&lt;p>Aquí pueden ver como poco a poco se puede apreciar este cambio en los listados de Google.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/4924599194_e00724912c.jpg"
loading="lazy"
alt="META TAG Description"
>&lt;/p>
&lt;h2 id="el-canonical-link">El Canonical Link.
&lt;/h2>&lt;p>Según las propias palabras de Google, el canonical link &amp;ldquo;It&amp;rsquo;s a hint that we honor strongly&amp;rdquo; &lt;a class="link" href="https://web.archive.org/web/20101016131151/https://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html" target="_blank" rel="noopener"
>Specify your canonical&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es opcional, pero se recomienda mucho ponerlo.&lt;/p>
&lt;p>Un enlace se puede expresar de diferentes maneras y conducir al mismo destino (ej, &lt;a class="link" href="https://www.midominio.com" target="_blank" rel="noopener"
>www.midominio.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
ó midominio.com ). El canonical link te permite aclarar cual es el enlace que prefieres.&lt;/p>
&lt;p>Para incluirlo en blogsome agregamos esta línea entre los tags head.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;link rel=&amp;#34;canonical&amp;#34; href=&amp;#34;{bloginfo show=&amp;#39;url&amp;#39;}{$smarty.server.REQUEST_URI}&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Hace poco implementé estas modificaciones y poco a poco he visto un aumento en el número de visitas de mi página. Espero que a ustedes también les sean de utilidad estas recomendaciones.&lt;/p></description></item><item><title>Aplicaciones portátiles para Linux</title><link>https://linuxmanr4.com/2010/08/05/aplicaciones-portatiles-para-linux/</link><pubDate>Thu, 05 Aug 2010 19:14:07 +0000</pubDate><guid>https://linuxmanr4.com/2010/08/05/aplicaciones-portatiles-para-linux/</guid><description>&lt;p>Las aplicaciones portátiles para Windows ya tienen tiempo, siempre es conveniente tener uno que otro programas en nuestra memoria USB para llevarlas a donde se requiera.&lt;/p>
&lt;p>No hace mucho me enteré de &lt;a class="link" href="https://web.archive.org/web/20240000000000*/http://portablelinuxapps.org/" target="_blank" rel="noopener"
>PortableLinuxApps.org&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, este sitio ofrece aplicaciones Linux que no requieren de instalación.&lt;/p>
&lt;figure>&lt;img src="https://farm5.static.flickr.com/4142/4863379295_b305b7c4de.jpg"
alt="Portable Linux Apps">&lt;figcaption>
&lt;p>Portable Linux Apps&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Voy a bajar algunas para ejecutarlas en mi equipo casero, de esa manera no tengo que instalarlas y estarán a un clic de distancia.&lt;/p>
&lt;figure>&lt;img src="https://farm5.static.flickr.com/4075/4864069680_f2da0e31a9.jpg"
alt="Aplicaciones listas para ejecutarse desde mi memoria.">&lt;figcaption>
&lt;p>Aplicaciones listas para ejecutarse desde mi memoria.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se me ocurre que en el caso de intentar algún soporte técnico a distancia le puedo mandar la liga del TeamViewer a mi interlocutor, él solo lo tiene que descargar, darle doble clic y listo, podré ver la situación de primera mano.&lt;/p>
&lt;p>También me di cuenta de programas que no conocía como Xara Extream o Jokosher, así poco a poco iré armando un juego de aplicaciones listas para cuando se me ofrezcan.&lt;/p></description></item><item><title>Instalando Lubuntu</title><link>https://linuxmanr4.com/2010/07/31/instalando-lubuntu/</link><pubDate>Sat, 31 Jul 2010 14:34:21 +0000</pubDate><guid>https://linuxmanr4.com/2010/07/31/instalando-lubuntu/</guid><description>&lt;p>Mi computadora estaba con Ubuntu Lucid Lynx y lo ejecutaba bien, pero como si equipo tiene poca memoria iniciaba con &lt;a class="link" href="http://lxde.org/" target="_blank" rel="noopener"
>LXDE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en lugar de Gnome.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4153/4845892767%5Fa7aac34dde.jpg"
alt="Home sweet home.">&lt;figcaption>
&lt;p>Home sweet home.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hace poco me enteré que salio Lubuntu basado en Ubuntu 10.04 así que decidí instalarlo, principalmente por su selección de paquetes enfocados a sistemas con poca memoria.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4086/4846513204%5Fb52170bb49.jpg"
alt="Información del sistema">&lt;figcaption>
&lt;p>Información del sistema&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El arranque es rápido como de costumbre. No he tenido problemas, solo le he instalado el plugin de flash para poder ver los videos de youtube y con eso ha sido más que suficiente.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4145/4846513146%5Fb2bcdff41c.jpg"
alt="Chrome">&lt;figcaption>
&lt;p>Chrome&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si están interesados les recomiendo que le den un vistazo a &lt;a class="link" href="https://web.archive.org/web/20160422122018/http://lubuntu.net/blog/lubuntu-1004-now-available-download" target="_blank" rel="noopener"
>Lubuntu 10.04 is now available for download&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>También es visita obligada el &lt;a class="link" href="http://lubuntu.net/blog" target="_blank" rel="noopener"
>Blog de Lubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esta repleto de Screencasts que explican como hacer varias tareas en Lubuntu.&lt;/p></description></item><item><title>SFLphone, Soft Phone para Linux</title><link>https://linuxmanr4.com/2010/07/26/sflphone-soft-phone-para-linux/</link><pubDate>Mon, 26 Jul 2010 22:26:59 +0000</pubDate><guid>https://linuxmanr4.com/2010/07/26/sflphone-soft-phone-para-linux/</guid><description>&lt;p>Estoy haciendo pruebas con varios Soft Phone para linux. Al principio intenté con la opción de una cuenta &lt;a class="link" href="http://es.wikipedia.org/wiki/Session_Initiation_Protocol" target="_blank" rel="noopener"
>SIP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que trae el mismo Empathy, pero no es funcional, carece de los númeritos necesarios para cuando navegas en los menús del sistema de buzón de voz.&lt;/p>
&lt;p>Hasta ahorita el que más me ha convencido es &lt;a class="link" href="https://web.archive.org/web/20140211124511/http://sflphone.org/" target="_blank" rel="noopener"
>SFLphone&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es simple y muy sencillo de configurar.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4831785959/" title="SFLPhone por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4091/4831785959_d9074d4344.jpg"
loading="lazy"
alt="SFLPhone"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Entre las muchas opciones con las que viene incluido tiene dos puntos a su favor que me hacen preferirlo:&lt;/p>
&lt;ul>
&lt;li>Soporta el protocolo &lt;a class="link" href="http://es.wikipedia.org/wiki/IAX2" target="_blank" rel="noopener"
>IAX2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>Y tiene una buena integración con PulseAudio , el servidor de sonido de Ubuntu.&lt;/li>
&lt;/ul>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4832396220/" title="Recibiendo una llamada por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4088/4832396220_5c6a125a6f.jpg"
loading="lazy"
alt="Recibiendo una llamada"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Para una lista completa de las opciones que tiene pueden visitar la página de &lt;a class="link" href="https://web.archive.org/web/20150221040425/http://sflphone.org/features" target="_blank" rel="noopener"
>Features&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. SFL Phone esta amparado por la licencia GNU GPL v3.&lt;/p>
&lt;p>¿Ustedes conocen algún otro que valga la pena probar?&lt;/p></description></item><item><title>Como configurar un SPA922 para un conmutador Elastix</title><link>https://linuxmanr4.com/2010/07/23/como-configurar-un-spa922-para-un-conmutador-elastix/</link><pubDate>Fri, 23 Jul 2010 19:06:55 +0000</pubDate><guid>https://linuxmanr4.com/2010/07/23/como-configurar-un-spa922-para-un-conmutador-elastix/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/linksys-spa922.jpg" alt="Featured image of post Como configurar un SPA922 para un conmutador Elastix" />&lt;p>El proyecto del conmutador Elastix va viento en popa. Me acaban de llegar los teléfonos Linksys &lt;a class="link" href="http://www.cisco.com/en/US/products/ps10036/" target="_blank" rel="noopener"
>SPA922&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y son una chulada.&lt;/p>
&lt;p>Escribo esto como una guía de como configurarlos, de hecho se parece mucho a la configuración del SPA3102, pero vámonos por partes.&lt;/p>
&lt;h2 id="configurar-una-extensión-en-el-servidor-elastix">Configurar una extensión en el servidor elastix.
&lt;/h2>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4077/4821083281%5F2ffdf5098f.jpg"
alt="Configurar la extensión">&lt;figcaption>
&lt;p>Configurar la extensión&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo primero es dar de alta la extensión en el servidor &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Elastix (ahora Issabel)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, no voy a dar muchos detalles al respecto porque lo mejor es leer los dos libros que recomiendo en este artículo &lt;a class="link" href="https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/" >Construyendo un conmutador telefónico con Elastix&lt;/a>
.&lt;/p>
&lt;p>Lo más importante de este paso es dar de alta una extensión SIP , su número y la contraseña (aquí le llaman Secret ).&lt;/p>
&lt;h2 id="conectar-el-teléfono-y-conseguir-su-dirección-ip">Conectar el teléfono y conseguir su dirección IP
&lt;/h2>&lt;p>Conectar el teléfono no tiene mayor ciencia, puse el cable ethernet en el puerto llamado WAN y lo conecté a la energía electrica.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m23P2" target="_blank" rel="noopener"
>https://flic.kr/p/8m23P2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m5dcA" target="_blank" rel="noopener"
>https://flic.kr/p/8m5dcA&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Una vez que arranca el teléfono presionamos el botón de Configuración (tiene forma de hoja de papel) para tener acceso al menú.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m5d8q" target="_blank" rel="noopener"
>https://flic.kr/p/8m5d8q&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Navegamos hasta el menú &lt;em>9 Network&lt;/em>, por default el aparatito esta configurado par obtener su dirección IP de un servidor DHCP.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m23v4" target="_blank" rel="noopener"
>https://flic.kr/p/8m23v4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Más abajo podemos ver la dirección IP, en mi caso fue 192.168.0.128&lt;/p>
&lt;p>Con esa dirección abrimos un navegador y veremos la página inicial de bienvenida del dispositivo.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m23iH" target="_blank" rel="noopener"
>https://flic.kr/p/8m23iH&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="configurar-el-spa922">Configurar el SPA922
&lt;/h2>&lt;p>Ahora si, llegó el momento chucu chucu&amp;hellip;&lt;/p>
&lt;p>Hacemos clic en &lt;em>Admin login&lt;/em> y luego en &lt;em>Advanced&lt;/em> y vamos a la pestaña &lt;strong>SIP&lt;/strong>.&lt;/p>
&lt;p>Vamos a la sección &lt;em>RTP Parameters&lt;/em>, y modificamos el valor &lt;em>RTP Packet Size&lt;/em> a 0.020&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4141/4821646854%5Ffcb88bcb70.jpg"
alt="RTP Packet Size">&lt;figcaption>
&lt;p>RTP Packet Size&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora vamos a la pestaña &lt;strong>Ext 1&lt;/strong> y localizamos la sección &lt;em>Proxy and Registration&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4118/4821030297%5Fa020d7ca1f.jpg"
alt="Registro del SPA922">&lt;figcaption>
&lt;p>Registro del SPA922&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ajustamos los siguiente valores:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Proxy : Aquí ponemos la dirección IP de nuestro servidor elastix.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Use outbound proxy: no
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Register: yes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Register expires: 300
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Make call without reg: yes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Ans call without reg: yes
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En la sección &lt;em>Suscriber Information&lt;/em>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">User ID: El número de la extensión que configuramos
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Password: La contraseña de la extensión ( secret en elastix )
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Use Auth ID: no
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En la sección &lt;em>&lt;a class="link" href="https://linuxmanr4.com/2011/06/08/dial-plan-para-llamadas-locales/" >Dial Plan&lt;/a>
&lt;/em> (un poco más abajo):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Dial Plan: (*x.|**x.|x.)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4135/4821646912%5F37fb02cf5d.jpg"
alt="dial plan">&lt;figcaption>
&lt;p>dial plan&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la pestaña &lt;em>Phone&lt;/em> en la sección &lt;em>General&lt;/em>, ajustamos el valor del &lt;em>Voice mail number&lt;/em>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/voice-mail.png"
alt="voice mail number">&lt;figcaption>
&lt;p>voice mail number&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahí escribo el &lt;a class="link" href="https://linuxmanr4.com/2014/01/22/codigos-para-elastix-shortcodes/" >shortcode&lt;/a>
 para  obtener  el buzón de voz de mi extensión, en mi caso es &lt;strong>*97&lt;/strong>.&lt;/p>
&lt;p>Presionamos el botón que dice &lt;em>Submit All Changes&lt;/em> que esta al final de la página y hacemos &amp;ldquo;changuitos&amp;rdquo;.&lt;/p>
&lt;h2 id="comprobando-la-extensión">Comprobando la extensión
&lt;/h2>&lt;p>Ahora vamos a revisar si todo esta correcto, nuevamente presionamos el botón de configuración y navegamos hasta el menú &lt;em>11 Status&lt;/em> y de ahí a &lt;em>Ext1&lt;/em>&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m23AB" target="_blank" rel="noopener"
>https://flic.kr/p/8m23AB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Como pueden ver en la imagen dice &lt;em>Registered&lt;/em> eso quiere decir que ingresó correctamente a nuestro servidor Elastix, el nombre de usuario y contraseña fueron correctos.&lt;/p>
&lt;p>Además pueden ver un relojito en cuenta regresiva, ese valor lo ajustamos en &lt;em>Register Expires&lt;/em>, establecí un valor corto de 300 segundos (o 5 minutos) porque estoy haciendo pruebas con el equipo, pero probablemente cuando estén instalados aumente ese valor a cada hora ( 3600 ).&lt;/p>
&lt;p>Claro que no hay mejor prueba que hacer y recibir llamadas :P&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/8m5cVd" target="_blank" rel="noopener"
>https://flic.kr/p/8m5cVd&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="configurar-el-horario-de-verano">Configurar el horario de verano
&lt;/h2>&lt;p>Estos teléfonos muestran un &lt;a class="link" href="https://linuxmanr4.com/2009/04/04/cambio-de-horario-a-ajustar-los-relojes/" >reloj en la pantalla y con los cambios en el horario&lt;/a>
de verano es normal que muestren la hora incorrectamente. He probado muchas cosas pero esta es la que mejor me ha funcionado.&lt;/p>
&lt;p>Primero debemos de establecer un servidor NTP, primero entramos a la página de configuración de nuestro teléfono y ya saben &lt;strong>Admin Login&lt;/strong>  y &lt;strong>Advanced&lt;/strong> (ambos en la esquina superior derecha). Luego vamos a la pestaña &lt;strong>System&lt;/strong> y establecemos un valor para &lt;strong>Primary NTP Server&lt;/strong>. Yo uso un servidor local, pero también pueden usar la hora oficial de méxico &lt;em>cronos.cenam.mx&lt;/em> y presionan el botón &lt;strong>Submit All Changes&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/Primary-NTP-Server.png"
alt="Primary NTP Server">&lt;figcaption>
&lt;p>Primary NTP Server&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Luego vamos a la pestaña &lt;strong>Regional&lt;/strong> en la sección de &lt;strong>Miscellaneous&lt;/strong> y revisamos que el &lt;strong>Time Zone&lt;/strong> sea el correcto . También agregamos esta regla en donde dice &lt;strong>Daylight Saving Time Rule&lt;/strong>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">start=4/1/7/2:0:0;end=10/-1/7/2:0:0;save=1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/Regional-Miscellaneous.png"
alt="Daylight Saving Time Rule">&lt;figcaption>
&lt;p>Daylight Saving Time Rule&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la mayoría de México, el horario de verano empieza el primer domingo de abril y termina el último domingo de octubre. La regla ayuda a ajustar el reloj quitando y agregando una hora en esos días.&lt;/p>
&lt;h3 id="adiós-al-horario-de-verano">Adiós al Horario de Verano
&lt;/h3>&lt;p>En el 2023 se dejó de aplicar el horario de verano, así que para desactivar los cambios solo hay que dejar en blanco la &lt;strong>Daylight Saving Time Rule&lt;/strong> y establecer el &lt;strong>Daylight Saving Time Enable&lt;/strong> a no.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2023/04/adios%5Fal%5Fhorario%5Fde%5Fverano.webp"
alt="Adiós al Horario de Verano">&lt;figcaption>
&lt;p>Adiós al Horario de Verano&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aclaro que esta es la configuración más básica, el dispositivo tiene muchas más opciones, pero con esto es más que suficiente para iniciar a utilizar los equipos.&lt;/p></description></item><item><title>Problemas para abrir Facebook en Chrome y Firefox</title><link>https://linuxmanr4.com/2010/07/22/problemas-para-abrir-facebook-en-chrome-y-firefox/</link><pubDate>Thu, 22 Jul 2010 15:55:42 +0000</pubDate><guid>https://linuxmanr4.com/2010/07/22/problemas-para-abrir-facebook-en-chrome-y-firefox/</guid><description>&lt;p>Ayer no pude abrir Facebook desde Chrome, al principio no le di mucha importancia.&lt;/p>
&lt;p>Más tarde intenté abrirlo, pero ahora usando Firefox, lo abrió sin problemas.&lt;/p>
&lt;p>Sin embargo, al instalar la actualización 3.6.7 de Firefox también dejó de abrir la página de Facebook.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4119/4818598704%5F1f53126f71%5Fz.jpg"
alt="Problemas para abrir facebook">&lt;figcaption>
&lt;p>Problemas para abrir facebook&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden ver en la imagen lo único que muestra es una página en blanco.&lt;/p>
&lt;p>&lt;a class="link" href="https://x.com/Danielgonza/status/19262404931" target="_blank" rel="noopener"
>@DanielGonza&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me sugiere instalar la extensión IE Tab provisionalmente.&lt;/p>
&lt;p>Me niego a usar Internet Explorer para accesar la página de facebook. Así que esperaré a que facebook o los navegadores arreglen el problema.&lt;/p></description></item><item><title>Construyendo un conmutador telefónico con Elastix</title><link>https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/</link><pubDate>Mon, 05 Jul 2010 15:04:02 +0000</pubDate><guid>https://linuxmanr4.com/2010/07/05/construyendo-un-conmutador-telefonico-con-elastix/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/07/conmutador-elastix-tarjetas-openvox.jpg" alt="Featured image of post Construyendo un conmutador telefónico con Elastix" />&lt;p>Hace como tres semanas tuvimos un desagradable incidente en el trabajo. La noche anterior hubo una fuerte tormenta eléctrica en la Comarca Lagunera y al llegar a la oficina tuve el &amp;ldquo;agradable&amp;rdquo; recibimiento de un conmutador telefónico agonizante.&lt;/p>
&lt;p>Dos de sus módulos se fueron al cielo de los conmutadores y los que quedaban resultaban inútiles sin los otros.&lt;/p>
&lt;p>Después del estupor inicial y de comunicar a la empresa con teléfonos inalámbricos tenía que volver a echar a andar el conmutador.&lt;/p>
&lt;h2 id="plan-a">Plan A
&lt;/h2>&lt;p>Llamé a la empresa en Monterrey que nos vendió e instaló el conmutador y nos mando las cotizaciones para ver las opciones. Como es un aparato ya algo “viejito” se podría reemplazar las piezas con unas usadas con la aclaración de que no tendría garantía, lo que, según su cotización saldría en unos 4,000 USD. O ya de plano comprar todo un equipo nuevo, lo que subiría el costo a unos 6,000 USD poco más, poco menos.&lt;/p>
&lt;h2 id="plan-b">Plan B
&lt;/h2>&lt;p>Conseguir las piezas por internet, que afortunadamente si se pudo y nos vamos a ahorrar una gran suma, aunque van a tardar un poco en llegar.&lt;/p>
&lt;p>Pensandolo con calma me pude dar cuenta de lo costoso que pueden ser estos equipos, lo exclusivos de los aparatos y si algo se descompone tienes que depender de un tercero.&lt;/p>
&lt;p>Tiempo atras había leído varios articulos de mi amigo &lt;a class="link" href="http://elcanibal.com/" target="_blank" rel="noopener"
>El Cánibal&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
sobre servidores que ejecutaban &lt;a class="link" href="http://www.asterisk.org/" target="_blank" rel="noopener"
>asterisk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y voz sobre ip, pero como no se me había tenido la necesidad no tenía idea de como montar uno.&lt;/p>
&lt;p>Después de una llamada con él usando skype junté la suficiente información como para hacer un servidorcito de pruebas.&lt;/p>
&lt;h2 id="receta-para-un-servidor-elastix-de-pruebas">Receta para un servidor elastix de pruebas.
&lt;/h2>&lt;h3 id="manuales">&lt;strong>Manuales&lt;/strong>
&lt;/h3>&lt;p>No se puede ir a la guerra sin fusil, y en este caso me armé de dos excelentes documentos. &lt;a class="link" href="https://sourceforge.net/projects/elastix/files/Tutorials_Docs_Manuals/Elastix%20Without%20Tears/" target="_blank" rel="noopener"
>Elastix with out tears&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Ben Sharif y &lt;a class="link" href="http://sourceforge.net/projects/elastix/files/Tutorials_Docs_Manuals/Elastix%20a%20Ritmo%20de%20Merengue/Elastix%20a%20Ritmo%20de%20Merengue%20rev%201.3.pdf/download" target="_blank" rel="noopener"
>Elastix a ritmo de merengue&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de Alfio Muñoz.&lt;/p>
&lt;p>Ambos documentos se complementan, los consultaba constantemente y son mi primer fuente de consulta ante cualquier duda.&lt;/p>
&lt;h3 id="software">&lt;strong>Software&lt;/strong>
&lt;/h3>&lt;p>Por recomendación de Oscar &lt;em>aka &lt;a class="link" href="http://elcanibal.com/" target="_blank" rel="noopener"
>El Cánibal&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/em>, descargué Elastix (ahora &lt;a class="link" href="https://www.issabel.org/" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) , una distribución de software libre basada en Cent OS que incluye programas como Asterisk, Hylafax, &lt;a class="link" href="http://www.igniterealtime.org/projects/openfire/" target="_blank" rel="noopener"
>Openfire&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, Postfix, vTigerCRM y SugarCRM.&lt;/p>
&lt;p>Estos programas en conjunto permiten dar servicios de:
• Voz sobre IP con funciones de &lt;a class="link" href="http://es.wikipedia.org/wiki/PBX" target="_blank" rel="noopener"
>PBX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
• Fax
• Mensajería Instantánea
• Email
• Colaboración&lt;/p>
&lt;p>Como no tenía una computadora disponible instalé elastix en una computadora con &lt;a class="link" href="https://linuxmanr4.com/tags/virtualbox/" >VirtualBox&lt;/a>
, le puse una configuración mínima de 384 MB en RAM y 8 GB de espacio en el disco duro, la tarjeta de red la configuré en modo Bridge para que quedara dentro de mi misma subred.&lt;/p>
&lt;p>Como telefonos de software bajé Xten lite para &lt;a class="link" href="https://linuxmanr4.com/2006/01/17/el-problema-es-la-eleccion-windows-linux-osx/" >windows y en linux&lt;/a>
hice pruebas con Empathy, este último recibe las llamadas pero queda un poco corto en otras funciones.&lt;/p>
&lt;h3 id="hardware">&lt;strong>Hardware&lt;/strong>
&lt;/h3>&lt;p>Tengo un par de &lt;a class="link" href="https://linuxmanr4.com/2007/08/14/extension-remota-del-conmutador-usando-spa3102-o-sipura-3000/" >Linksys SPA3102&lt;/a>
que había utilizado en un &lt;a class="link" href="https://linuxmanr4.com/2007/08/14/extension-remota-del-conmutador-usando-spa3102-o-sipura-3000/" >experimento anterior&lt;/a>
. Estos aparatitos son una maravilla !!!, se configuran mediante una página web y tienen dos puertos uno FXO (Line) y otro FXS (Phone).&lt;/p>
&lt;p>Uno lo configuré como extensión conectándolo al puerto que dice Phone (FXS), este fue el má sencillo de configurar siguiendo la guía &lt;strong>SPA3102 and FreePBX HOWTO&lt;/strong>.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4136/4763624059%5F862cb169fe.jpg"
alt="Extensión con un SPA3102">&lt;figcaption>
&lt;p>Extensión con un SPA3102&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El otro lo puse como troncal conectando una línea telefónica al puerto &lt;strong>Line&lt;/strong> (FXO), este aparatito es el que se encarga de ser el intermediario entre la línea (en este caso de Axtel) y el servidor Elastix.&lt;/p>
&lt;p>Este no fue tan sencillo de configurar, literalmente me sacó canas verdes y un día de leer tutoriales y manuales.&lt;/p>
&lt;p>En los primeros intentos logré que salieran las llamadas, pero para recibir no se podía, simplemente no le pasaba la estafeta a la extensión que programé.&lt;/p>
&lt;p>Fue hasta que dí con este tutorial How to setup a Linksys SPA-3102 or Sipura
SPA-3000 with FreePBX (ya no funciona este enlace, en su lugar pueden probar
&lt;a class="link" href="http://www.gkhan.in/configure-spa3102-sip-trunk-elastix/" title="Permalink to How to Configure SPA3102 as SIP Trunk on Elastix"
target="_blank" rel="noopener"
>How to Configure SPA3102 as SIP Trunk on Elastix&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) y releerlo en más de una ocasión que pude hacer que funcionara.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4115/4763624189%5Fb0b1e8d0da.jpg"
alt="SPA3102 configurado como troncal">&lt;figcaption>
&lt;p>SPA3102 configurado como troncal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al final mi instalación quedó de la siguiente manera:&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4100/4764261822%5F2ff0b7e928%5Fz.jpg"
alt="Diagrama de conexiones del conmutador elastix">&lt;figcaption>
&lt;p>Diagrama de conexiones del conmutador elastix&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="planes-futuros">&lt;strong>Planes futuros&lt;/strong>
&lt;/h2>&lt;p>Todo este trabajo fue para montar un servidor de pruebas, el siguiente paso es instalar todo en un equipo real.&lt;/p>
&lt;p>Sustituiré el SPA3102 que esta como troncal con una tarjeta &lt;strong>Openvox A400P&lt;/strong> con capacidad de 4 líneas telefónicas.&lt;/p>
&lt;p>Como todas las partes del conmutador son “genéricas” espero que en el caso de una falla poder conseguir fácilmente las refacciones. Además su sistema de respaldos es genial, con un par de clics hice una copia de mi configuración para poder regresar a ella si hacía algo mal.&lt;/p>
&lt;p>Todavía me falta conseguir teléfonos IP y adaptadores ATA (para poder conectarle máquinas de FAX o teléfonos normales). El problema es que hay una enorme variedad de modelos de estos aparatos, estoy buscando entre equipos Grandstream, Linksys, Cisco, pero si ustedes saben de uno que cumpla con el sello de calidad mexicano de las 3 B, se los agradecería mucho.&lt;/p>
&lt;p>Como ven este artículo no es una guía de instalación, apenas si rasca un poco sobre la superficie del amplio tema de conmutadores que usan &lt;a class="link" href="https://linuxmanr4.com/2008/03/07/como-apoyar-el-software-libre-sin-ser-un-activista/" >software libre&lt;/a>
, sin embargo, espero que sea un buen punto de partida.&lt;/p>
&lt;h2 id="actualización">Actualización.
&lt;/h2>&lt;p>Les tengo dos noticias: la mala es que debido a la venta de Elastix tengo que dejar de recomendar este producto. Simplemente no se vale agarrar el trabajo de toda una comunidad para luego venderlo a la competencia. Pueden leer la historia completa en &lt;a class="link" href="https://linuxmanr4.com/2017/05/05/bienvenida-issabel/" >Adiós Elastix, bienvenida Issabel&lt;/a>
.&lt;/p>
&lt;p>La buena es que la comunidad ha sacado un producto libre que se llama Issabel y que al menos en sus comienzos es muy similar a Elastix. Hay opciones de migración de Elastix a Issabel y promete muchas cosas buenas gracias a su activo desarrollo.&lt;/p>
&lt;p>Si van a emprender la aventura de Voz sobre IP prefieran &lt;a class="link" href="https://x.com/issabelip?lang=es" target="_blank" rel="noopener"
>Issabel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
sobre otras opciones.&lt;/p></description></item><item><title>Buscando vulnerabilidades con Nessus</title><link>https://linuxmanr4.com/2010/06/23/buscando-vulnerabilidades-con-nessus/</link><pubDate>Wed, 23 Jun 2010 21:05:06 +0000</pubDate><guid>https://linuxmanr4.com/2010/06/23/buscando-vulnerabilidades-con-nessus/</guid><description>&lt;p>Hoy tuve una charla con un viejo amigo, me contó de unos problemas que tiene con su servidor y para estar más seguros le di una escaneada de seguridad con &lt;a class="link" href="http://nessus.org/nessus/" target="_blank" rel="noopener"
>Nessus&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al final resultó que no tenía muchos problemas, la mayoría tenían un riesgo de low. Pero ya estando instalado me puse a darle una revisada a mis equipos principales.&lt;/p>
&lt;figure>&lt;img src="https://farm2.static.flickr.com/1416/4728585424_c589322a3b.jpg"
alt="Nessus">&lt;figcaption>
&lt;p>Nessus&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El primero de la lista es un servidor Linux corriendo ebox, el segundo es un Windows 2000.&lt;/p>
&lt;p>Los resultados son evidentes, tengo poco que hacer en Linux y en Windows no me quedan muchas opciones, creo que para resolver la mayoría de las vulnerabilidades sería comprando una licencia más reciente del Windows en su versión server (desconozco cuál es la más reciente), pero muy probablemente eso también conllevaría comprar un equipo nuevo. Me parece demasiado pagar si el que tengo actualmente está funcionando bien.&lt;/p>
&lt;p>Y luego Microsoft se queja de que Dell está diciendo que Linux es más seguro, no es una declaración que se hizo a la ligera, ¡Es un hecho!&lt;/p></description></item><item><title>El mundial con Google Chrome</title><link>https://linuxmanr4.com/2010/06/15/el-mundial-con-google-chrome/</link><pubDate>Tue, 15 Jun 2010 19:12:14 +0000</pubDate><guid>https://linuxmanr4.com/2010/06/15/el-mundial-con-google-chrome/</guid><description>&lt;p>En mi artículo anterior platicaba sobre la novedad que tiene Google wave para comentar sobre los partidos del mundial. Todavía pueden participar en este wave que hice sobre &lt;a class="link" href="https://wave.google.com/wave/waveref/googlewave.com/w&amp;#43;LmD-KrZkeBf" target="_blank" rel="noopener"
>México vs Francia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y hacer sus predicciones.&lt;/p>
&lt;p>Desafortunadamente, muchos de los partidos son en horario laboral, pero con un poco de ayuda de un par de extensiones para Chrome podemos seguir de cerca a nuestro equipo favorito.&lt;/p>
&lt;p>&lt;a class="link" href="https://chrome.google.com/extensions/featured/worldcup?hl=es" target="_blank" rel="noopener"
>¿Que les parece decorar tu Chrome con los colores de tu selección?&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4015/4703512623%5F75d67fc559.jpg"
alt="chrome mexicanizado">&lt;figcaption>
&lt;p>chrome mexicanizado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Méxicooo&amp;hellip; Méxicooooo.&lt;/p>
&lt;p>Y para estar al tanto de los horarios de los partidos, noticias y marcadores está la extensión de FIFA.com&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4059/4704152352%5F8791d61288.jpg"
alt="Fifa Chrome Extension">&lt;figcaption>
&lt;p>Fifa Chrome Extension&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4041/4704152400%5F66b34625c8.jpg"
alt="alerta">&lt;figcaption>
&lt;p>alerta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me acaban de informar que en ciertos lugares han bloqueado las páginas de Televisa y TV Azteca que transmiten los partidos, pueden revisar &lt;a class="link" href="http://mundialenvivo.com/" target="_blank" rel="noopener"
>Mundial en vivo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que publica videos y noticias de los partidos del mundial.&lt;/p></description></item><item><title>El mundial con Google Wave : México vs Francia</title><link>https://linuxmanr4.com/2010/06/11/el-mundial-con-google-wave-mexico-vs-francia/</link><pubDate>Fri, 11 Jun 2010 22:34:35 +0000</pubDate><guid>https://linuxmanr4.com/2010/06/11/el-mundial-con-google-wave-mexico-vs-francia/</guid><description>&lt;p>Me acabo de encontrar esta opción llamada &lt;a class="link" href="http://wave.google.com/footballfever.html" target="_blank" rel="noopener"
>Google Wave Football&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que te permite seguir de cerca el mundial de fútbol.&lt;/p>
&lt;p>El partido de hoy ya es historia, ahora en miras del próximo &lt;a class="link" href="https://wave.google.com/wave/waveref/googlewave.com/w&amp;#43;LmD-KrZkeBf" target="_blank" rel="noopener"
>México vs. Francia ¡Hagan sus predicciones!&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Uno nunca sabe, igual y hacemos del 17 de Junio el nuevo 5 de mayo :)&lt;/p>
&lt;p>¡Vámos México!&lt;/p></description></item><item><title>Samsung Tocco o S5560</title><link>https://linuxmanr4.com/2010/06/09/samsung-tocco-o-s5560/</link><pubDate>Wed, 09 Jun 2010 21:28:39 +0000</pubDate><guid>https://linuxmanr4.com/2010/06/09/samsung-tocco-o-s5560/</guid><description>&lt;p>Sigo muy contento con mi HTC Wizard rara vez cambio de teléfono celular, sin embargo, mi pingüinita es otra historia, se obsesionó con el Samsung Tocco S5560 y como se ha portado bien ;) no me quedó más remedio que embarcarme con ella a la aventura.&lt;/p>
&lt;h2 id="buen-diseño">Buen diseño.
&lt;/h2>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4046/4686462546%5F13a99a5f82%5Fm.jpg"
alt="IMG\_6882">&lt;figcaption>
&lt;p>IMG_6882&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4017/4685831075%5F6aa9ca0de6%5Fm.jpg"
alt="IMG\_6883">&lt;figcaption>
&lt;p>IMG_6883&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4023/4685831709%5F4a1e8e07ed%5Fm.jpg"
alt="IMG\_6884">&lt;figcaption>
&lt;p>IMG_6884&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Comparado con mi “ladrillito” retro, el Tocco esta adelante en cuanto a diseño, es ligero, pequeño y elegante, sus botones tienen una buena ubicación.&lt;/p>
&lt;p>Es un celular basado en pantalla táctil, y tengo que confesar que este celular tiene un espiritú masoquista ya que le gusta el toque “rudo”.&lt;/p>
&lt;p>Escribir una dirección de internet o un mensaje se puede convertir en toda una odisea si no se esta acostumbrado a la sensibilidad de la pantalla.&lt;/p>
&lt;h2 id="wi-fi">Wi-Fi
&lt;/h2>&lt;figure>&lt;img src="http://farm2.static.flickr.com/1306/4685832313%5Fbdc32c0a85.jpg"
alt="IMG\_6886">&lt;figcaption>
&lt;p>IMG_6886&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Para su precio es difícil de creer que tenga una conexión Wi-fi, pero la tiene, y fue uno de los motivos de su compra. Una conexión inálambrica lo hace conveniente en aquellos lugares en los que se cuenta con una conexión ya que se puede navegar, ver videos o platicar por msn.&lt;/p>
&lt;h2 id="programas">Programas
&lt;/h2>&lt;p>El sistema operativo que usa es SHP (en mi vida lo había escuchado) y esta es la razón por la que es un poco complicado instalarle aplicaciones.&lt;/p>
&lt;p>Sin embargo incluye Java y eso hace posible instalarle juegos como los SIMS o un cliente de mensajería como el eBuddy para conectarse al messenger. En un principio intentamos con &lt;a class="link" href="https://web.archive.org/web/20130621002252/http://www.fring.com/" target="_blank" rel="noopener"
>Fring&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, que es un programa que soporta muchos más protocolos (incluido skype), pero jamás funcionó.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4025/4685833847%5Fee6933dceb.jpg"
alt="IMG\_6890">&lt;figcaption>
&lt;p>IMG_6890&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El navegador del Tocco se llama Samsung Mobile Browser y esta basado en &lt;a class="link" href="http://es.wikipedia.org/wiki/WebKit" target="_blank" rel="noopener"
>Webkit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esta chulada permite la ejecución de javascript y de flash, así es amigos, el iPhone 4 no puede, pero este pequeño sí :)&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4045/4686464938%5Fc57a9c1d9b%5Fm.jpg"
alt="IMG\_6887">&lt;figcaption>
&lt;p>IMG_6887&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4033/4686465582%5F9d247e6d4a%5Fm.jpg"
alt="IMG\_6889">&lt;figcaption>
&lt;p>IMG_6889&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como dato curioso, al principio creíamos que no se instalaban, pero las aplicaciones Java aparecen en la sección de juegos ¡Duhhh!.&lt;/p>
&lt;h2 id="cáaaamara--y-acción">Cáaaamara … y acción
&lt;/h2>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4052/4686466478%5Ff07521383f.jpg"
alt="IMG\_6891">&lt;figcaption>
&lt;p>IMG_6891&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La cámarita tiene una resolución de ¡ 5 megapixelotes !, cada imagen puede llegar a los 2 megas, esta plagado de opciones, incluso se pueden tomar fotos panorámicas y para ejemplo pueden ver esta imagen del &lt;a class="link" href="https://linuxmanr4.com/2009/08/15/mi-esposa-sobrevivio-al-seguro-social/" >seguro social&lt;/a>
.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4039/4686494570%5Fa36510324e.jpg"
alt="Foto panorámica del Samsung Tocco">&lt;figcaption>
&lt;p>Foto panorámica del Samsung Tocco&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Como pueden apreciar no hay ninguna señorita en su lugar, a eso le llamo progreso, que el derechohabiente se atienda solo !!!.&lt;/p>
&lt;h2 id="funciones-útiles">Funciones útiles
&lt;/h2>&lt;p>Este teléfono tiene un par de funciones muy útiles que no he visto en otros celulares. Por ejemplo tiene una función que se llama &lt;em>llamada fingida&lt;/em>, se deja presionado el botón de volumen, vibra un poco para decirte que recibió la orden y después de un minuto suena como si estuvieras recibiendo una llamada. Ideal para safarte de reuniones aburridas, solo tienes que hacer una actuación convincente :).&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4037/4686466872%5F865a8e175a%5Fm.jpg"
alt="IMG\_6892">&lt;figcaption>
&lt;p>IMG_6892&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4072/4686468524%5Fc3d904869b%5Fm.jpg"
alt="IMG\_6894">&lt;figcaption>
&lt;p>IMG_6894&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Otra función que me parece debería de estar todos los teléfonos celulares, si la activas y cambian la tarjeta SIM de tu celular, este mandará un mensaje a una lista avisando que le cambiaron la tarjeta SIM y además incluye el número de teléfono para que llames y le amablemente le digas a la persona que tiene el télefono que ese ¡NO es su celular!&lt;/p>
&lt;p>En general es un buen equipo a un buen precio, si quieren más información, pueden ver la &lt;a class="link" href="https://web.archive.org/web/20100623123119/http://www.samsung.com/mx/consumer/mobile-phones/mobile-phones/telcel/GT-S5560CWLTCE/index.idx?pagetype=prd_detail&amp;amp;tab=specification" target="_blank" rel="noopener"
>Ficha Técnica Samsung Tocco&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;h2 id="actualización-30-jun-2010">Actualización 30-Jun-2010
&lt;/h2>&lt;p>Este celular es una maravilla, gracias a su función panorámica de la cámara pudimos tomar esta foto de la lluvia lagunera :)&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4059/4712676160%5F4c3a2c1b9c.jpg"
alt="Ahí viene la lluvia lagunera">&lt;figcaption>
&lt;p>Ahí viene la lluvia lagunera&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="actualización-22-jul-2010">Actualización 22-Jul-2010
&lt;/h2>&lt;p>A petición de jcanalex que en uno de los comentarios solicitó un video grabado con el celular, aquí lo tiene.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/H"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Esto pasa en el desierto, nada más se junta una buena cantidad de agua y quien sabe de donde aparecen las ranitas.&lt;/p>
&lt;p>Los archivos los genera en formato mp4, tengo que aclarar que no es de la mejor calidad, porque se le puede aumentar, pero ten en cuenta que un archivo muy grande tarda demasiado en subirse a youtube.&lt;/p>
&lt;h2 id="actualización-18-sep-2010">Actualización 18-Sep-2010
&lt;/h2>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4109/5001442350%5F71997a09b0.jpg"
alt="Manual Samsung Tocco S5560 en español">&lt;figcaption>
&lt;p>Manual Samsung Tocco S5560 en español&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hay muchas dudas que se resuelven fácilmente leyendo el manual, por eso les dejo el &lt;a class="link" href="http://downloadcenter.samsung.com/content/UM/201005/20100524100224453/GT-S5560_UM_LTN_Spanish_Rev.1.0_100211.pdf" target="_blank" rel="noopener"
>Manual del Samsung Tocco S5560 en español&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en formato PDF. Y de esa menara responder a algunas dudas con referencia a las páginas de este manual.&lt;/p></description></item><item><title>Hongos en los CD</title><link>https://linuxmanr4.com/2010/06/03/hongos-en-los-cd/</link><pubDate>Thu, 03 Jun 2010 16:15:18 +0000</pubDate><guid>https://linuxmanr4.com/2010/06/03/hongos-en-los-cd/</guid><description>&lt;p>Ayer se me ofreció usar mi disco de Trinity Rescue Kit y al colocarlo noté que estaba desarrollando un hongo :( .&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4050/4666709218%5F3646b1bca4.jpg"
alt="Hongos en los CDs">&lt;figcaption>
&lt;p>Hongos en los CDs&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Afortunadamente, no es algo que me ocurra frecuentemente, pero sí me ha llegado a pasar en un par de ocasiones. Como guardo mis CD de trabajo en una torre, inmediatamente me puse a revisar los demás para ver si presentaban &amp;ldquo;síntomas&amp;rdquo; y evitar un &amp;ldquo;contagio&amp;rdquo;.&lt;/p>
&lt;p>Investigando un poco en internet logré ponerle nombre al acusado. Al parecer el culpable es un hongo muy común llamado &lt;a class="link" href="http://es.wikipedia.org/wiki/Geotrichum" target="_blank" rel="noopener"
>Geotrichum&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;&amp;hellip; El hongo se alimenta del carbono y el nitrógeno de la capa plástica de policarbonato, destruyendo así las pistas de información. Este hongo crece y se reproduce con facilidad dentro de la estructura de un CD o DVD &amp;hellip;&amp;rdquo;&lt;/p>&lt;/blockquote>
&lt;p>Desconozco si los discos grabables son más susceptibles que los originales, pero después de todo, el CD ya está pasando a la historia y los DVD&amp;rsquo;s serán reemplazados por los &lt;a class="link" href="http://es.wikipedia.org/wiki/Blueray" target="_blank" rel="noopener"
>Blu-ray&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>¡Esto no pasaba con los &lt;a class="link" href="http://es.wikipedia.org/wiki/VHS" target="_blank" rel="noopener"
>VHS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
!&lt;/p></description></item><item><title>Convertir y reproducir archivos WebM de video</title><link>https://linuxmanr4.com/2010/05/27/convertir-y-reproducir-archivos-de-video-webm-vp8-primeras-impresiones/</link><pubDate>Thu, 27 May 2010 20:31:12 +0000</pubDate><guid>https://linuxmanr4.com/2010/05/27/convertir-y-reproducir-archivos-de-video-webm-vp8-primeras-impresiones/</guid><description>&lt;p>Hace unos días Google anuncio el proyecto &lt;a class="link" href="http://www.webmproject.org/" target="_blank" rel="noopener"
>WebM&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
dedicado al desarrollo de un formato de video de alta calidad disponible para todos.&lt;/p>
&lt;p>El proyecto recibe apoyo de muchas compañías y de los principales navegadores como Opera, Mozilla, Adobe, Google en un intento de convertirlo en el formato de video estándar para &lt;a class="link" href="http://es.wikipedia.org/wiki/HTML5" target="_blank" rel="noopener"
>HTML5&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al parecer también estará disponible en Internet Explorer, pero no creo que lo este en Safari ya que Apple esta promocionando su propio estándar de video.&lt;/p>
&lt;p>Hoy vi el anuncio de &lt;a class="link" href="http://www.mirovideoconverter.com/" target="_blank" rel="noopener"
>Miro Video Converter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un programa que utiliza &lt;a class="link" href="http://www.ffmpeg.org/" target="_blank" rel="noopener"
>FFMPEG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para convertir archivos de video. Lo que distingue a este programa es que se puede optimizar el resultado para ciertos equipos como iPods, equipos Android y claro el motivo de este artículo el formato WebM.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4042/4645218801%5Fa263da7baf.jpg"
alt="miro video converter">&lt;figcaption>
&lt;p>miro video converter&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Convertir un archivo avi normal de 180 MB duró más de dos horas resultando un archivo de tan solo 59 MB, claro que el tiempo de conversión puede variar mucho de acuerdo a la capacidad de los equipos.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4024/4645832722%5F3b60690954.jpg"
alt="tamaño de los archivos">&lt;figcaption>
&lt;p>tamaño de los archivos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Encontrar un programa para ver los archivos resultantes es otra tarea. De momento sólo &lt;a class="link" href="http://people.videolan.org/~jb/webm/" target="_blank" rel="noopener"
>VLC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en una versión especial puede reproducir este tipo de archivos.&lt;/p>
&lt;p>La calidad del archivo la puedo catalogar como aceptable, en escenas oscuras se pueden apreciar como se &amp;ldquo;pixelea&amp;rdquo; la imagen.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4053/4645832926%5F5e5cfa3e1d.jpg"
alt="reproduciendo el archivo webm">&lt;figcaption>
&lt;p>reproduciendo el archivo webm&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Tomando en cuenta que es un formato enfocado a la web el tamaño del archivo es un objetivo más importante que la calidad visual pero en fin, es un buen comienzo y ya veremos a donde nos lleva Google con su propuesta.&lt;/p></description></item><item><title>Modificar el valor autoindex de Mysql con phpMyAdmin</title><link>https://linuxmanr4.com/2010/05/24/modificar-el-valor-autoindex-de-mysql-con-phpmyadmin/</link><pubDate>Mon, 24 May 2010 17:27:24 +0000</pubDate><guid>https://linuxmanr4.com/2010/05/24/modificar-el-valor-autoindex-de-mysql-con-phpmyadmin/</guid><description>&lt;p>Atendiendo a la pregunta de Captain Zion &amp;hellip; en su &lt;a class="link" href="https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/#comment-13872" >comentario&lt;/a>
&lt;/p>
&lt;p>_&amp;ldquo;Hola buenas linuxman, tu sabes como puedo iniciar el conteo de las facturas ya las elimine desde la base de datos para que empieze de 0 pero veo que no lo respeta. manda el consecutivo de las siguientes numeraciones. Bueno espero que tu sepas donde las aloja , ya me volvi loco con editarlas. Saludos&amp;rdquo;&lt;br>
_&lt;/p>
&lt;p>Este es un problema muy común, quizás no es importante cuando estamos haciendo pruebas, pero al hacer una instalación final si nos gustará comenzar desde cero.&lt;/p>
&lt;p>Afortunadamente es muy sencillo de corregir con &lt;a class="link" href="http://www.phpmyadmin.net/home_page/index.php" target="_blank" rel="noopener"
>phpMyAdmin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Abrimos la tabla &lt;em>facturas&lt;/em>, podemos ver que el valor de autoindex esta en 123&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4008/4635637913%5F91128b1090.jpg"
alt="El valor de autoindex">&lt;figcaption>
&lt;p>El valor de autoindex&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En una base de datos en blanco supongo que quieres que ese valor sea 1.&lt;/p>
&lt;p>En el menú operaciones , cambiamos el valor de &lt;em>auto_increment&lt;/em> a 1 que es el valor que deseamos.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3336/4635637993%5Fb9c15995fb.jpg"
alt="Menú operaciones">&lt;figcaption>
&lt;p>Menú operaciones&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y eso es todo !!!, al dar de alta otra factura en codeka mx, se puede ver que ya sigue la secuencia correcta :)&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4042/4636243244%5Fc0fceb62d4.jpg"
alt="Autoindex corregido">&lt;figcaption>
&lt;p>Autoindex corregido&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nada más como sugerencia, este tipo de ajustes solamente se recomiendan en instalaciones nuevas, porque es muy fácil crear inconsistencias en la base de datos.&lt;/p></description></item><item><title>Monitorear el ancho de banda con IPCop e IPTraf</title><link>https://linuxmanr4.com/2010/05/18/monitorear-el-ancho-de-banda-con-ipcop-e-iptraf/</link><pubDate>Tue, 18 May 2010 17:30:19 +0000</pubDate><guid>https://linuxmanr4.com/2010/05/18/monitorear-el-ancho-de-banda-con-ipcop-e-iptraf/</guid><description>&lt;p>En ocasiones he tenido que hacer el papel de &amp;ldquo;detective&amp;rdquo; tratando de averiguar que es lo que pasa con el ancho de banda que administra mi servidor IPCop.&lt;/p>
&lt;p>El problema es simple, supongamos que una persona esta bajando un archivo con un programa de esos llamados P2P (coof, ares, coof emule cof), estos programas pueden llegar a ser muy eficientes al momento de descargar archivos y por eficientes me refiero a que fácilmente pueden consumir todo tu ancho de banda.&lt;/p>
&lt;p>Pero &amp;hellip; ¿Cómo averiguar cuales son las computadoras que están ocupando el ancho de banda?&lt;/p>
&lt;p>IPCop tiene un administrador de ancho de banda muy rudimentario. Solamente se pueden establecer prioridades a ciertos puertos pero nada más. Tampoco ofrece una opción de monitoreo, pero todavía podemos hacer algo al respecto.&lt;/p>
&lt;h2 id="instalar-iptraf-en-ipcop">Instalar IPTraf en IPCop
&lt;/h2>&lt;p>Primero vamos a bajar de &lt;a class="link" href="https://web.archive.org/web/20110902083459/http://www.ipadd.de/binary-v14.html" target="_blank" rel="noopener"
>IPCop addon binaries&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, en esta página encontraras editores, utilerías, analizadores, pero el programa que nos interesa se llama IPTraf y esta en la sección de &lt;em>Net traffic monitoring&lt;/em>.&lt;/p>
&lt;p>El procedimiento de instalación es muy similar para todos los programas de esta página:&lt;/p>
&lt;p>Descargar el programa de tu elección (en este caso IPTraf) de la página &lt;a class="link" href="https://web.archive.org/web/20100707032313/http://www.ipadd.de/binary-v14.html" target="_blank" rel="noopener"
>IPCop addon binaries&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Copiar el archivo a IPCop a cualquier directorio de tu elección, en windows puedes usar &lt;a class="link" href="http://winscp.net/eng/docs/lang:es" target="_blank" rel="noopener"
>WinSCP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o SCP, solo recuerda que el puerto es el 222 y tampoco se te olvide habilitar el acceso SSH en el menú &lt;em>Sistema&lt;/em> - &lt;em>Acceso SSH&lt;/em>.&lt;/p>
&lt;p>Nos conectamos a IPCop mediante consola, para eso podemos usar &lt;a class="link" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank" rel="noopener"
>putty&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en windows o ssh en linux , simplemente abrimos una terminal y tecleamos &lt;code>ssh root@192.168.0.1 -p 222&lt;/code> (recuerden cambiar la ip por la de su servidor ipcop).&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4042/4618698065%5F1e6a12a309.jpg"
alt="acceso mediante ssh">&lt;figcaption>
&lt;p>acceso mediante ssh&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Entrar como el usuario root.&lt;/p>
&lt;p>Cambiar el directorio donde copiamos el archivo, por ejemplo cd /tmp&lt;/p>
&lt;p>Descomprimir el archivo con &lt;em>tar xvfz archivo_del_addon.tar.gz&lt;/em>&lt;/p>
&lt;p>Ir al directorio donde se descomprimieron los archivos.&lt;/p>
&lt;p>Para instalar el addon teclear &lt;em>./install -i&lt;/em> (para desinstalar &lt;em>./install -u&lt;/em> )&lt;/p>
&lt;h2 id="usando-iptraf">Usando IPTraf
&lt;/h2>&lt;p>La mitad del camino es instalar iptraf, lo que sigue es utilizarlo. En la misma terminal que acabamos de usar para instalar, tecleamos &lt;em>iptraf&lt;/em>, si todo sale bien verán una pantalla como esta.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4027/4618698253%5F8cd8655c5a.jpg"
alt="pantalla de inicio de iptraf">&lt;figcaption>
&lt;p>pantalla de inicio de iptraf&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Vamos a la opción que dice &lt;em>LAN station monitor&lt;/em> y aparecerá una lista de las interfaces de red. Elijo la que corresponde a GREEN en mi caso eth0. Si tienen duda sobre cual es su tarjeta de red GREEN, pueden ir al menú &lt;em>Estado&lt;/em> - &lt;em>Estado de la red&lt;/em>.&lt;/p>
&lt;p>Dejamos que junte unos paquetes y podemos ver lo que pasa por la tarjeta eth0, lamentablemente lo que vemos son las &lt;a class="link" href="http://es.wikipedia.org/wiki/Direcci%C3%B3n_MAC" target="_blank" rel="noopener"
>mac address&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de las tarjetas de red.&lt;/p>
&lt;p>Para averiguar la mac adress de la tarjeta GREEN, nuevamente vamos al menú &lt;em>Estado&lt;/em> - &lt;em>Estado de la red&lt;/em>, para las direcciones de los clientes podemos usar la información que muestra el servidor DHCP, menú &lt;em>Servicios&lt;/em> - &lt;em>Servidor DHCP&lt;/em>.&lt;/p>
&lt;p>Una simple observación nos puede dar idea de como se esta repartiendo el ancho de banda.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4044/4618696689%5Ff45130cb27.jpg"
alt="Paquetes entrando y saliendo de eth0.">&lt;figcaption>
&lt;p>Paquetes entrando y saliendo de eth0.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la parte superior (75.8) podemos ver el trafico correspondiente a la tarjeta GREEN, reconocida por su mac address, y en la parte inferior una computadora que esta usando 69.4, por lo tanto esta es la computadora que esta usando la mayor parte del ancho de banda usado por IPCop. Bueno estos valores no son elevados pero nos da una idea de quien esta usando el servicio.&lt;/p>
&lt;p>Ahora que ya sabemos quién es el que esta consumiendo el ancho de banda podemos ir a desconectarle la tarjeta de red, echarle un vistazo o administrar su acceso a internet con &lt;a class="link" href="http://www.blockouttraffic.de/" target="_blank" rel="noopener"
>Blockout traffic&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o &lt;a class="link" href="https://web.archive.org/web/20100419014607/http://www.urlfilter.net/" target="_blank" rel="noopener"
>URLFilter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Tengan en cuenta que un aumento en el consumo de ancho de banda los probables culpables suelen ser programas p2p, virus, sitios de videos o las actualizaciones de windows, ahora sabrán que computadora origina todo esto y podrán tomar medidas al respecto.&lt;/p></description></item><item><title>No puedo sincronizar aplicaciones en el iPad (Solucionado)</title><link>https://linuxmanr4.com/2010/05/08/no-puedo-sincronizar-aplicaciones-en-el-ipad-solucionado/</link><pubDate>Sat, 08 May 2010 18:20:45 +0000</pubDate><guid>https://linuxmanr4.com/2010/05/08/no-puedo-sincronizar-aplicaciones-en-el-ipad-solucionado/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4589160617/" title="Llega en Julio a México por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3317/4589160617_45bb52f5c4_m.jpg"
loading="lazy"
alt="Llega en Julio a México"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Hace un par de días llegó un iPad a mis manos, mi misión era hacer un primer acercamiento para trabajar con el aparatito. Todo iba de maravilla hasta que me encontré con uno de esos &amp;ldquo;detallitos&amp;rdquo; que te ponen a googlear como loco.&lt;/p>
&lt;p>Lo conecté en mi computadora y todo funcionó bien, le pude subir unos videos y aplicaciones gratuitas, pero después de entregarlo a la persona que lo va a utilizar empezó el calvario.&lt;/p>
&lt;p>Al intentar instalar aplicaciones, simplemente no se dejaba, decía que no había permisos, que para otorgarselos tenía que ir al menú &lt;strong>Store&lt;/strong> - &lt;strong>Dar autorización al equipo &amp;hellip;&lt;/strong>, pero igual, seguía sin funcionar.&lt;/p>
&lt;p>Intente restaurando el iPad y nada, Reinstalando el iTunes ¡Tampoco!, llegó el momento de dejar de adivinar y llegó Google al rescate, me encontré este articulo de un compañero con el mismo problema en los foros de discusión de Apple Cannot sync apps on PC :: &amp;ldquo;authorize computer&amp;rdquo; message apears probé su solución y ¡Listo!&lt;/p>
&lt;p>La solución fue&amp;hellip;. &lt;strong>Iniciar iTunes como administrador&lt;/strong>!!!!&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4589159421/" title="Ejecutar itunes como administrador por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3309/4589159421_f9a1d7a802.jpg"
loading="lazy"
alt="Ejecutar itunes como administrador"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Quiero aclarar que todo sincronizaba bien, canciones, fotos, videos, todo menos las aplicaciones, al hacerlo en modo administrador dejó de aparecer el problema. Al parecer es un detalle en Windows Vista.&lt;/p>
&lt;p>No dudo que este problema se corrija en las nuevas versiones de iTunes, mientras tanto, espero que este consejo les sea de utilidad.&lt;/p></description></item><item><title>4 pasos para preparar a Ubuntu para el uso diario</title><link>https://linuxmanr4.com/2010/05/04/4-pasos-para-preparar-a-ubuntu-para-el-uso-diario/</link><pubDate>Wed, 05 May 2010 00:04:27 +0000</pubDate><guid>https://linuxmanr4.com/2010/05/04/4-pasos-para-preparar-a-ubuntu-para-el-uso-diario/</guid><description>&lt;p>Después de instalar Ubuntu hay 4 cosas que hago para tenerlo listo para el uso diario.&lt;/p>
&lt;p>&lt;strong>1.- Cambiar el repositorio de Ubuntu por uno más rápido.&lt;/strong>
El repositorio de México es leeeeeeento, para cambiarlo vamos a &lt;em>Sistema&lt;/em> - &lt;em>Administración&lt;/em> - &lt;em>Orígenes del Software&lt;/em> , en &lt;em>Descargar desde&lt;/em> &amp;hellip; elegimos &lt;em>Otro&lt;/em> y presionamos el botón de &lt;em>Seleccionar el mejor servidor&lt;/em>, con eso será suficiente.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/4579701724_5db322ff7a.jpg"
loading="lazy"
alt="Mejor servidor"
>&lt;/p>
&lt;p>&lt;strong>2.- Instalar los drivers propietarios.&lt;/strong>
Esto es muy sencillo porque es prácticamente Ubuntu lo hace todo, vamos a &lt;em>Administración&lt;/em> - &lt;em>Controladores de Hardware&lt;/em> , elegimos el controlador recomendado que generalmente es lo más conveniente.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/4579701760_59b912e2d7.jpg"
loading="lazy"
alt="Controladores de hardware"
>&lt;/p>
&lt;p>&lt;strong>3.- Descargar los paquetes extras.&lt;/strong>
Este paquete nos permite reproducir archivos mp3, muchos formatos de video, java, flash, instalar los extras se vuelve indispensable.&lt;/p>
&lt;p>&lt;strong>4.- Instalar Ubuntu Tweak.&lt;/strong>
La mejor aplicación para cambiar opciones, instalar paquetes de última generación, Ubuntu Tweak se ha vuelto en muy poco tiempo en un &lt;a class="link" href="https://linuxmanr4.com/2013/04/30/eliminar-paquetes-que-no-son-necesarios-en-manjaro/" >paquete necesario&lt;/a>
en cualquier instalación de ubuntu.&lt;/p>
&lt;p>Con él se puede instalar Chrome y otros paquetes muy interesantes, así que conviene que le den una buena revisada a sus opciones.&lt;/p></description></item><item><title>Montar una carpeta de red compartida de Windows en Linux</title><link>https://linuxmanr4.com/2010/04/30/montar-una-carpeta-de-red-compartida-de-windows-en-linux/</link><pubDate>Fri, 30 Apr 2010 20:32:13 +0000</pubDate><guid>https://linuxmanr4.com/2010/04/30/montar-una-carpeta-de-red-compartida-de-windows-en-linux/</guid><description>&lt;p>Tengo una carpeta compartida en un servidor ebox que contiene una gran colección de música en formato mp3.&lt;/p>
&lt;p>La configuro de manera que se cargue en el arranque en una carpeta de mi directorio home y siempre que reinstalo Ubuntu pierdo la configuración de esa carpeta.&lt;/p>
&lt;p>Pero esta vez decidí anotar mis cambios :)&lt;/p>
&lt;p>Primero hago una carpeta en mi directorio home a la que le puse el nombre de &lt;strong>eboxmp3&lt;/strong>.&lt;/p>
&lt;p>y le di permisos amplios y generales con &lt;strong>chmod 777 /home/inguanzo/eboxmp3&lt;/strong>&lt;/p>
&lt;p>Reviso si esta instalado el paquete para montar carpetas con samba:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo aptitude install smbfs
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Edito el archivo fstab con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/fstab
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y agrego la siguiente linea:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">//IP_SERVIDOR/musicamp3 /home/inguanzo/eboxmp3 smbfs iocharset=utf8,UID=1000,username=inguanzo,password=CONTRASEÑA 0 0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Donde IP_SERVIDOR es la IP de mi maquina con ebox.&lt;br>
iocharset=utf8 evita que salgan carácter es raros en los nombres de archivos con ñ o letras acentuadas.&lt;br>
UID=1000 evita que aparezcan los iconos con el símbolo del candado (bloqueados).&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3345/4566562314%5Fdccbaeb897.jpg"
alt="sin candados">&lt;figcaption>
&lt;p>sin candados&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora si, hasta la próxima versión de Ubuntu :)&lt;/p></description></item><item><title>Ubuntu 10.04 Lucid Lynx , al fin ha sido liberado</title><link>https://linuxmanr4.com/2010/04/29/ubuntu-1004-lucid-lynx-al-fin-ha-sido-liberado/</link><pubDate>Thu, 29 Apr 2010 18:05:37 +0000</pubDate><guid>https://linuxmanr4.com/2010/04/29/ubuntu-1004-lucid-lynx-al-fin-ha-sido-liberado/</guid><description>&lt;p>Toda la mañana los ubunteros hemos estado al pendiente de la liberación de &lt;a class="link" href="https://web.archive.org/web/20100323055003/http://releases.ubuntu.com/releases/10.04/" target="_blank" rel="noopener"
>Ubuntu 10.04&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Al fin en twitter y en buzz se dio la noticia de que ya estaba disponible y la noticia ha corrido como reguero de pólvora por todas las redes sociales.&lt;/p>
&lt;p>Su liberación se retrasó por un bug que encontraron de último minuto, en sí el error no era grave, pero decidieron incluir la corrección en la versión final. El bug en cuestión no mostraría a Windows (u otros sistemas operativos) en la lista de opciones del menú de GRUB y no estoy seguro, pero&amp;hellip; ¿Sería eso tan malo?&lt;/p>
&lt;p>No pierdan tiempo &amp;hellip;. !!!&lt;/p>
&lt;p>&lt;a class="link" href="https://web.archive.org/web/20100323055003/http://releases.ubuntu.com/releases/10.04/" target="_blank" rel="noopener"
>Para descargar Ubuntu 10.04 LTS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.ubuntu.com/products/whatisubuntu/1004features" target="_blank" rel="noopener"
>Para ver las nuevas opciones que incluye Lucid Lynx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Recuerden que con bittorrent, entre más usuarios lo descargan, es mejor !!!.&lt;/p></description></item><item><title>Desde el Flisol 2010 en la UAC</title><link>https://linuxmanr4.com/2010/04/26/desde-el-flisol-2010-en-la-uac/</link><pubDate>Mon, 26 Apr 2010 18:46:45 +0000</pubDate><guid>https://linuxmanr4.com/2010/04/26/desde-el-flisol-2010-en-la-uac/</guid><description>&lt;p>El sábado tuve la oportunidad de asistir al FLISOL , muchas computadoras, muchas pórtatiles, muchas netbooks, muchos conocidos, muchos nuevos rostros, como siempre en un buen ambiente. Las copias de las distros más populares estaban a toda maquina ¡Los quemadores echaban humo!&lt;/p>
&lt;p>Cuando llegué el reto era hacer funcionar una par de vejestorios en busca de una oportunidad ¡Y la consiguieron!, el reto era difícil por su limitada cantidad de RAM, una de ellas tenía 90 MB, pero &lt;a class="link" href="http://puppylinux.org/" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
salio al rescate. Me hubiera gustado probar lubuntu en esos equipos.&lt;/p>
&lt;p>Este año no tuve suerte, estuve más salado que un charal, intenté instalar Ubuntu 10.04 RC en una portatil, pero un detalle electrico hizo que se apagara la computadora en dos ocasiones sin completar la instalación, y es una lástima porque en ambas oportuidades ya tenían un buen avance. Lo bueno es que vieron como se instalaba les dejé el disco, espero que terminen la instalación :).&lt;/p>
&lt;p>La novedad fue un iPad que llevó &lt;a class="link" href="https://web.archive.org/web/20110921050654/http://gndx.org/2010/04/gndx-ya-tiene-ipad/" target="_blank" rel="noopener"
>Gndx&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
¡Esta supremo! (el iPad claro :P ), lástima que estos aparatitos sean tan caros, pero demonios&amp;hellip; ¡Como dan ganas de tener uno! :P&lt;/p></description></item><item><title>Google Street View en la Comarca Lagunera</title><link>https://linuxmanr4.com/2010/04/15/google-street-view-en-la-comarca-lagunera/</link><pubDate>Thu, 15 Apr 2010 15:54:28 +0000</pubDate><guid>https://linuxmanr4.com/2010/04/15/google-street-view-en-la-comarca-lagunera/</guid><description>&lt;p>El 24 de Junio del 2009 tomé esta foto &amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4522902953/" title="The Google Car por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2770/4522902953_de1aca046c.jpg"
loading="lazy"
alt="The Google Car"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Hoy pude ver su contra parte &amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4523537322/" title="Street view por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2726/4523537322_a35cd11839.jpg"
loading="lazy"
alt="Street view"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Si se fijan pueden ver mi mano saliendo del taxi y tomando la foto al vuelo.&lt;/p>
&lt;p>Ahora se puede ver la Comarca Lagunera utilizando Google Street View !!!!&lt;/p>
&lt;p>Por ejemplo: &lt;a class="link" href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=Museo&amp;#43;casa&amp;#43;del&amp;#43;cerro&amp;amp;sll=25.5443,-103.427353&amp;amp;sspn=0.189265,0.363579&amp;amp;ie=UTF8&amp;amp;hq=Museo&amp;#43;casa&amp;#43;del&amp;#43;cerro&amp;amp;hnear=&amp;amp;ll=25.534542,-103.467865&amp;amp;spn=0,0.045447&amp;amp;t=h&amp;amp;z=15&amp;amp;layer=c&amp;amp;cbll=25.53451,-103.467568&amp;amp;panoid=6g6l4fqFz1UYPsQtyAffOw&amp;amp;cbp=12,195.63,,0,-7.32" target="_blank" rel="noopener"
>La Casa del Cerro&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o el &lt;a class="link" href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=plaza&amp;#43;de&amp;#43;armas&amp;amp;sll=25.534503,-103.467565&amp;amp;sspn=0.023815,0.045447&amp;amp;ie=UTF8&amp;amp;hq=Plaza&amp;#43;de&amp;#43;Armas&amp;amp;hnear=Plaza&amp;#43;de&amp;#43;Armas,&amp;#43;Col.&amp;#43;Plan&amp;#43;de&amp;#43;Ayala,&amp;#43;Torre%C3%B3n,&amp;#43;Dg,&amp;#43;M%C3%A9xico&amp;amp;ll=25.535471,-103.452845&amp;amp;spn=0,0.045447&amp;amp;t=h&amp;amp;z=15&amp;amp;layer=c&amp;amp;cbll=25.538069,-103.462257&amp;amp;panoid=NTM-zCki451tseNVqAG6uw&amp;amp;cbp=12,122.18,,0,-15.32" target="_blank" rel="noopener"
>Museo Arocena&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el centro de Torreón.&lt;/p></description></item><item><title>Teamviewer para Linux</title><link>https://linuxmanr4.com/2010/04/14/teamviewer-para-linux/</link><pubDate>Wed, 14 Apr 2010 20:04:18 +0000</pubDate><guid>https://linuxmanr4.com/2010/04/14/teamviewer-para-linux/</guid><description>&lt;p>Amigos, hoy les tengo una excelente noticia. En lo particular he usado infinidad de veces a TeamViewer para dar soporte técnico a amigos que utilizan el sistema operativo de las ventanitas.&lt;/p>
&lt;p>Ahora damas y caballeros&amp;hellip;. redoble de tambores &amp;hellip;. con ustedes &amp;hellip; taaadaaaaaaaaaaaaaan&lt;/p>
&lt;p>TeamViewer para Linux !!!!&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4520980361/" title="Teamviewer para linux por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4024/4520980361_008637e7fc.jpg"
loading="lazy"
alt="Teamviewer para linux"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>La pueden descargar &lt;a class="link" href="http://www.teamviewer.com/es/download/index.aspx?os=linux" target="_blank" rel="noopener"
>aqui&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4520980837/" title="Control remoto en acción por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4051/4520980837_6c8e47f577.jpg"
loading="lazy"
alt="Control remoto en acción"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Esto abre un mundo de posibilidades, y es que aunque es posible compatir un escritorio con un par de clics en Ubuntu, las cosas se complican cuando se trata de dos computadoras que están conectadas en redes diferentes.&lt;/p>
&lt;p>Los paquetes cubren la mayoría de las distribuciones más populares, Red Hat, Fedora, Suse, Mandriva, Debian y Ubuntu.&lt;/p></description></item><item><title>Los beneficios del software legal</title><link>https://linuxmanr4.com/2010/03/24/los-beneficios-del-software-legal/</link><pubDate>Wed, 24 Mar 2010 22:56:00 +0000</pubDate><guid>https://linuxmanr4.com/2010/03/24/los-beneficios-del-software-legal/</guid><description>&lt;p>Me acabo de topar con este artículo en la Revista del Consumidor titulado &lt;strong>Conoce los beneficios del software legal&lt;/strong>.&lt;/p>
&lt;p>Admiro el valor del autor para poner su nombre en semejante aberración, solo por citar algunas de las ventajas que menciona:&lt;/p>
&lt;ul>
&lt;li>Protege tu equipo de daños irreparables&lt;/li>
&lt;li>Previene la pérdida o deterioro de tu información&lt;/li>
&lt;li>Previene de virus informáticos y códigos maliciosos&lt;/li>
&lt;/ul>
&lt;p>Conforme iba leyendo el listado mis ojos buscaban algún emoticón que declarara ironía o broma, pero no.&lt;/p>
&lt;p>Ya han hecho una serie de comentarios bien fundamentados explicándole punto por punto las imprecisiones de este articulo.&lt;/p>
&lt;p>Lo que me preocupa es el mensaje que están dando, la revista del consumidor ( y por ende la PROFECO) están del lado de unas empresas y no del consumidor.&lt;/p>
&lt;p>La PROFECO En lugar de ver por los intereses de las compañías que lo único que buscan es un interés ecónomico, bien podían defender al consumidor, por ejemplo a la fecha no me han atendido mi queja sobre como Microsoft me puede regresar mi dinero por una licencia de Windows que viene en un equipo nuevo, una licencia que no pretendo ni quiero usar, puesto que uso Ubuntu. A la fecha no he tenido respuesta.&lt;/p>
&lt;p>Si quieren dejarle su opinión a Óscar (el autor de esa mala broma) ¡Adelante!, solo me gustaría encontrármelo para decirle :&lt;/p>
&lt;p>&lt;strong>¡El software libre también es legal!&lt;/strong>&lt;/p></description></item><item><title>Un script para convertir videos a formato avi y pegar subtítulos en linux</title><link>https://linuxmanr4.com/2010/03/10/x2avi-un-script-para-convertir-videos-a-formato-avi-y-pegar-subtitulos-en-linux/</link><pubDate>Wed, 10 Mar 2010 22:39:48 +0000</pubDate><guid>https://linuxmanr4.com/2010/03/10/x2avi-un-script-para-convertir-videos-a-formato-avi-y-pegar-subtitulos-en-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/03/pexels-photo-207580.jpeg" alt="Featured image of post Un script para convertir videos a formato avi y pegar subtítulos en linux" />&lt;p>Con la compra del movie box surgió el pequeño problema de que no soporta todos los formatos de video. Tengo algunos archivos en &lt;a class="link" href="http://es.wikipedia.org/wiki/Matroska" target="_blank" rel="noopener"
>matroska&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que no reproduce. Otro detalle es que la fuente que usa para los subtitulos no es la adecuada, es muy pequeña y no se ve bien en la televisión.&lt;/p>
&lt;p>Para solucionar estos problemas desarrollé un pequeño script para convertir un archivo de video a .avi y pegarle los subtitulos si es necesario. Esta basado en el rmvb en xbox con linux (mencoder) que vi en el blog de Toro.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/sh
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">case&lt;/span> &lt;span class="nv">$#&lt;/span> in
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="m">1&lt;/span> &lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> -e &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> Convirtiendo el archivo &lt;span class="nv">$1&lt;/span> a formato avi.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> mencoder -oac mp3lame -lameopts &lt;span class="nv">cbr&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">128&lt;/span> -ovc xvid -xvidencopts &lt;span class="nv">bitrate&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1200&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -o &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">.avi&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> Cambio de formato terminado.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> El archivo &lt;span class="nv">$1&lt;/span> no existe.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="m">2&lt;/span> &lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> -e &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="o">[&lt;/span> -e &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$2&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> Convirtiendo y subtitulando el archivo &lt;span class="nv">$1&lt;/span> a formato avi
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> mencoder -oac mp3lame -lameopts &lt;span class="nv">cbr&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">128&lt;/span> -ovc xvid -xvidencopts &lt;span class="nv">bitrate&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1200&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -sub &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$2&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> xvidencopts &lt;span class="nv">pass&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span> -o &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$1&lt;/span>&lt;span class="s2">-sub.avi&amp;#34;&lt;/span> -subfont-text-scale 3.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> Cambio de formato y subtitulado terminado.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="o">==========================================================================&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> Alguno de los archivos no existe !!!.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">esac&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Es muy fácil de usar, el primer parámetro es el archivo de video, y opcionalmente el segundo que es el archivo con los subtitulos.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">x2avi video.avi subtitulos.srt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Como todo es perfectible, si notan algún detalle que se pueda mejorar no duden en dejar un comentario.&lt;/p></description></item><item><title>Eliminar los kernels instalados con Ubuntu Tweak</title><link>https://linuxmanr4.com/2010/03/05/eliminando-los-kernels-instalados-con-ubuntu-tweak/</link><pubDate>Fri, 05 Mar 2010 22:51:33 +0000</pubDate><guid>https://linuxmanr4.com/2010/03/05/eliminando-los-kernels-instalados-con-ubuntu-tweak/</guid><description>&lt;p>Cada vez que instalaba alguna actualización del kernel me aparecía una nueva entrada en mi menú de grub. Esta bien cuando son una o dos, pero después de un rato se empiezan a acumular y eso no me gusta.&lt;/p>
&lt;p>Antiguamente bastaba con editar el archivo de configuración de grub para eliminar las entradas extras, pero con esta nueva versión de grub no es tan sencillo.&lt;/p>
&lt;p>La solución me llegó gracias a una opción de &lt;a class="link" href="http://ubuntu-tweak.com/" target="_blank" rel="noopener"
>Ubuntu Tweak&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tiene la opción de limpiar kernels.&lt;/p>
&lt;p>En realidad es muy sencillo, selecciono la opción &lt;strong>limpiador de paquetes&lt;/strong> y luego &lt;strong>limpiar kernels&lt;/strong>, claro que primero hay que desbloquear la opción tecleando la contraseña de root.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4409838034/" title="limpiador de kernels - Ubuntu Tweak por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4014/4409838034_3996396221.jpg"
loading="lazy"
alt="limpiador de kernels - Ubuntu Tweak"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Solito se encarga de hacer lo necesario, no solamente me quita las entradas de grub, también borra los archivos que no se están usando y ahorro un poco de espacio.&lt;/p>
&lt;p>Como muy probablemente se habrán movido las opciones del menú de grub, con el &lt;a class="link" href="https://linuxmanr4.com/2009/11/05/administrar-grub2-en-ubuntu-karmic-koala/" >Administrador de arranque&lt;/a>
lo vuelvo a acomodar a mi gusto.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4409072553/" title="administrador de arranque por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4007/4409072553_bec6c8e90a.jpg"
loading="lazy"
alt="administrador de arranque"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>No dejen de darle un vistazo a Ubuntu Tweak, tiene opciones muy interesantes.&lt;/p></description></item><item><title>Mejorando retratos con GIMP</title><link>https://linuxmanr4.com/2010/03/04/mejorando-retratos-con-gimp/</link><pubDate>Thu, 04 Mar 2010 16:38:37 +0000</pubDate><guid>https://linuxmanr4.com/2010/03/04/mejorando-retratos-con-gimp/</guid><description>&lt;p>Todo comenzó comezo con este Buzz de @Toro.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4406041289/" title="Imagen original por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4053/4406041289_f362afe335.jpg"
loading="lazy"
alt="Imagen original"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En el aparece una modelo de El siglo de Torreón con algunas imperfecciones en el rostro, y como un gimpazo no se le niega a nadie, siguiendo las indicaciones de este video tutotial de tatica ( &lt;a class="link" href="http://tatica.org/2010/01/24/gimp100podcast-n%C2%BA4-piel-de-porcelana-porcelain-skin/" target="_blank" rel="noopener"
>Gimp100Podcast nº4: Piel de porcelana / Porcelain Skin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) este fue el resultado.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4406807434/" title="Imagen mejorada con Gimp por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2733/4406807434_159dc119b2.jpg"
loading="lazy"
alt="Imagen mejorada con Gimp"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Después del retoque le aplique el filtro &lt;a class="link" href="http://docs.gimp.org/es/plug-in-lic.html" target="_blank" rel="noopener"
>Van Gogh (LIC)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Siguiendo con el lema de &amp;ldquo;Un gimpazo no se le niega a nadie&amp;rdquo;, este es el resultado de un retoque digital a nuestra maestra &lt;a class="link" href="http://www.youtube.com/watch?v=GArsOB5zmNI" target="_blank" rel="noopener"
>Elba Esther Gordillo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
,&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4406807414/" title="Mejorando a Elba Esther con Gimp por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4024/4406807414_fc2d46b9e5.jpg"
loading="lazy"
alt="Mejorando a Elba Esther con Gimp"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>¿A poco no se ve mejor?&lt;/p></description></item><item><title>Tacos de perro en Torreón</title><link>https://linuxmanr4.com/2010/02/25/tacos-de-perro-en-torreon/</link><pubDate>Fri, 26 Feb 2010 00:01:25 +0000</pubDate><guid>https://linuxmanr4.com/2010/02/25/tacos-de-perro-en-torreon/</guid><description>&lt;p>¿Ya les llegó el correo donde mencionan un rastro clandestino de perros que surte a varias taquerías de la región?, algunos mencionan que está en la colonia polvorera, otros traen la advertencia de 5 tacos por 30 pesos.&lt;/p>
&lt;figure>&lt;img src="http://3.bp.blogspot.com/%5FqDr0-bJjK-Y/SX6U5ol8w7I/AAAAAAAAJGQ/TrdUI7W2iRs/s320/TACOS0.GIF">
&lt;/figure>
&lt;p>&lt;strong>Es falso !!!!!!&lt;/strong>&lt;/p>
&lt;p>Ni fue en Zapopan &amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://fecipa.blogspot.com/2009/01/descubren-distribuidor-de-carne-de.html" target="_blank" rel="noopener"
>http://fecipa.blogspot.com/2009/01/descubren-distribuidor-de-carne-de.html&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Ni en Monterrey &amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.regiolove.com/?p=34" target="_blank" rel="noopener"
>http://www.regiolove.com/?p=34&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>NI EN LA COMARCA LAGUNERA !!!!&lt;/p>
&lt;p>Por favor leán lo que reenvían&amp;hellip; ¡POR FAVOR!&lt;/p>
&lt;p>P.D. Pobre del buen amigo Estetoscopio, qué quemón le han dado, espero que no venda tacos o carne.&lt;/p></description></item><item><title>Letrero de alta tensión</title><link>https://linuxmanr4.com/2010/02/20/letrero-de-alta-tension/</link><pubDate>Sat, 20 Feb 2010 18:46:15 +0000</pubDate><guid>https://linuxmanr4.com/2010/02/20/letrero-de-alta-tension/</guid><description>&lt;p>Me pidieron un letrero de alta tensión, y lo primero que hice fue buscarlo ya hecho en internet.&lt;/p>
&lt;p>Vi varios pero de muy baja calidad, así que ¿Por qué no hacerlo en inkscape?&lt;/p>
&lt;p>¡Es muy sencillo, solo es un triángulo, una forma de rayo y el letrero de abajo, en 5 minutos está listo !!!&lt;/p>
&lt;p>Les dejo el archivo de trabajo de Inkscape, por si quieren modificarlo a su gusto.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/02/alta-tension.png"
alt="letrero alta tensión eléctrica">&lt;figcaption>
&lt;p>letrero alta tensión eléctrica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2021/11/letrero_alta_tension.svg_.zip" >Descargar archivo de inkscape&lt;/a>
&lt;/p></description></item><item><title>Como recuperar GRUB 2 después de instalar Windows</title><link>https://linuxmanr4.com/2010/02/16/como-recuperar-grub2-despues-de-instalar-windows/</link><pubDate>Tue, 16 Feb 2010 16:30:00 +0000</pubDate><guid>https://linuxmanr4.com/2010/02/16/como-recuperar-grub2-despues-de-instalar-windows/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/02/grub2.png"
alt="Grub2">&lt;figcaption>
&lt;p>Grub2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ayer tuve un problema con un disco duro, después de varios años de leal servicio empezó a tener problemas y para mi mala fortuna empecé a perder archivos.&lt;/p>
&lt;p>Rápidamente, inicié en Linux e hice un respaldo general, pero un disco duro que pierde datos ya no es un disco duro confiable, así que compré un disco duro nuevecito y le instalé Windows 7, he escuchado buenos comentarios sobre este nuevo S.O. y a fin de cuentas tarde o temprano lo tenía que instalar, les recuerdo que de los errores de Windows vivimos mucho informáticos así que más vale conocerlo un poco, aunque sea para saber como arreglarlo.&lt;/p>
&lt;p>Primero bajé un disco llamado &lt;a class="link" href="http://www.supergrubdisk.org/" target="_blank" rel="noopener"
>Super Grub Disk&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, pero no para arreglar mi GRUB, sino para arrancar el Linux que tenía instalado.&lt;/p>
&lt;p>Una vez con mi Linux iniciado (Ubuntu 9.10) abrí una terminal y ejecuté lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo fdisk -l
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este comando es importante, porque gracias a él supe que el disco duro (tengo uno para Windows y otro para Linux) en el que está funcionando mi Ubuntu era el sdb, se reconoce fácilmente porque muestra las particiones formateadas como swap y linux native.&lt;/p>
&lt;p>Ahora si, con esta información ejecutamos lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo grub-mkconfig
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo grub-install /dev/sdb
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Recuerden que sdb es donde tengo mi Linux instalado.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo update-grub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de esto reiniciamos.&lt;/p>
&lt;p>Si todo salió bien volverán a ver su menú de GRUB pidiéndoles el sistema operativo con el que quieren iniciar.&lt;/p></description></item><item><title>Como separar la parte entera de un número y sus decimales en PHP</title><link>https://linuxmanr4.com/2010/02/05/como-separar-la-parte-entera-de-un-numero-y-decimales-con-php/</link><pubDate>Fri, 05 Feb 2010 22:42:05 +0000</pubDate><guid>https://linuxmanr4.com/2010/02/05/como-separar-la-parte-entera-de-un-numero-y-decimales-con-php/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/02/Parte-entera-y-decimal-PHP.jpg" alt="Featured image of post Como separar la parte entera de un número y sus decimales en PHP" />&lt;p>Al trabajar con &lt;a class="link" href="https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/" >Codeka MX&lt;/a>
tuve que hacer una adaptación al momento de imprimir el total de una factura con letra.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/explode%5Fphp.png"
alt="Ejemplo del uso de la función">&lt;figcaption>
&lt;p>Ejemplo del uso de la función&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En México se acostumbra poner la parte entera de la cantidad con letra, seguido de un xx/100 M.N. para la parte decimal.&lt;/p>
&lt;p>Por ejemplo:&lt;/p>
&lt;p>&lt;em>3,527.50 sería tres mil quinientos veintisiete pesos 50/100 M.N.&lt;/em>&lt;/p>
&lt;p>Para esto hay que separar la parte entera de la parte decimal.&lt;/p>
&lt;p>Después de ver varios enfoques, el que más me gustó por su sencillez fue utilizando la función &lt;a class="link" href="http://php.net/manual/en/function.explode.php" target="_blank" rel="noopener"
>explode&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Siguiendo con el ejemplo, supongamos que la variable &lt;em>$total&lt;/em> contiene el valor que quiero separar.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$total&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mf">3527.50&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$decimales&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">explode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;.&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="nv">$total&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>la variable decimales es un arreglo, de manera que almacena en el indice 0 lo que encuentre antes del punto, y en el indice 1 lo que sigue de manera que:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$decimales&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="nx">contiene&lt;/span> &lt;span class="nx">el&lt;/span> &lt;span class="nx">valor&lt;/span> &lt;span class="nx">de&lt;/span> &lt;span class="mi">3527&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$decimales&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="nx">contiene&lt;/span> &lt;span class="nx">el&lt;/span> &lt;span class="nx">valor&lt;/span> &lt;span class="nx">de&lt;/span> &lt;span class="mi">50&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/07/parte%5Fentera%5Fdecimales%5Fphp.jpg">
&lt;/figure>
&lt;p>Y eso es todo, así de simple.&lt;/p></description></item><item><title>Video tutoriales de GIMP</title><link>https://linuxmanr4.com/2010/02/04/video-tutoriales-de-gimp/</link><pubDate>Thu, 04 Feb 2010 17:02:11 +0000</pubDate><guid>https://linuxmanr4.com/2010/02/04/video-tutoriales-de-gimp/</guid><description>&lt;p>Maria &amp;ldquo;tatica&amp;rdquo; Leandro es la autora de esta serie de &lt;a class="link" href="http://tatica.org/category/gimp100podcast/" target="_blank" rel="noopener"
>video tutoriales enfocados al uso de Gimp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, nuestro editor de imágenes favorito.&lt;/p>
&lt;p>De una manera sencilla explica como mejorar tus fotos, todos son muy recomendables, me esta enseñando herramientas y técnicas que no conocía.&lt;/p>
&lt;p>Por ejemplo, siguiendo este tutorial:&lt;/p>
&lt;p>Mejoré un par de fotos:&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2678/4330643268%5Fc659e2b932.jpg"
alt="Plaza Tacuba">&lt;figcaption>
&lt;p>Plaza Tacuba&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2691/4329910677%5Fe353b1f5d0.jpg"
alt="Última Morada - Panteón de Dolores">&lt;figcaption>
&lt;p>Última Morada - Panteón de Dolores&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A las chicas quizás les llame más la atención este otro, &lt;a class="link" href="http://tatica.org/2010/01/24/gimp100podcast-n%c2%ba4-piel-de-porcelana-porcelain-skin/" target="_blank" rel="noopener"
>Piel de Porcelana con Gimp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>CODEKA MX, sistema de facturación web para México</title><link>https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/</link><pubDate>Thu, 28 Jan 2010 16:39:44 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/28/codeka-mx-sistema-de-facturacion-web-para-mexico/</guid><description>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4020/4310270540%5F5bdc9c8c00%5Fo.png"
alt="codekamx">&lt;figcaption>
&lt;p>codekamx&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="historia">Historia.
&lt;/h2>&lt;p>Hace un mes me di a la búsqueda de un sistema para la administración de un pequeño negocio, algo sencillo que cumpliera con las tareas más fundamentales, fue así como di con Codeka un desarrollo español.&lt;/p>
&lt;p>Vi que tenía las funciones que necesitaba, pero me enfrenté a dos problemas, al ser un software español esta “regionalizado” para ese país es decir, la moneda es el euro y el separador de miles es el punto, tiene una gran cantidad de errores y al parecer no han continuado con su desarrollo por lo tanto no creo que se vayan a corregir pronto.&lt;/p>
&lt;p>Revisé los foros para buscar solución a los problemas, ahí me encontré el desarrollo de Oscar Pizarro, ahí ofrecía una versión corregida de codeka y manuales por una pequeña contribución. Pagué la cantidad, lamentablemente no está totalmente corregida, todavía incluye muchos bugs. También me di cuenta de que la versión que maneja como demo en su web no es la que está disponible para descarga.&lt;/p>
&lt;p>Oscar también ofrece una versión turbo cargada de codeka llamada Facturemas pero lamentablemente cerró el código así que no vi esa aplicación en mi futuro.&lt;/p>
&lt;p>Después de pensarlo un poco, puse manos a la obra, empecé a depurar los errores y a personalizar la aplicación al mercado mexicano. Supongo que todavía tiene algunos errores pero nada que no pueda arreglarse.&lt;/p>
&lt;h2 id="que-hace-codeka-mx">Que hace Codeka MX.
&lt;/h2>&lt;p>Estas son las funciones que maneja el software:&lt;/p>
&lt;ul>
&lt;li>Administra clientes y proveedores.&lt;/li>
&lt;li>Organiza los artículos en familias.&lt;/li>
&lt;li>Genera si es necesario el código de barras del artículo.&lt;/li>
&lt;li>Elabora ordenes de salida y recibos de mercancía.&lt;/li>
&lt;li>Controla la facturación.&lt;/li>
&lt;li>Control de los cobros y pagos \[Tesorería\]&lt;/li>
&lt;li>Corte de caja del día.&lt;/li>
&lt;li>Un sencillo punto de venta.&lt;/li>
&lt;li>Administración de copias de seguridad.&lt;/li>
&lt;li>La mayoría de los documentos los exporta a formato PDF.&lt;/li>
&lt;/ul>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2780/4309610505%5F6d17245816%5Fm.jpg"
alt="Codeka MX - Inicio">&lt;figcaption>
&lt;p>Codeka MX - Inicio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2717/4309601615%5Fb66c6523d8%5Fm.jpg"
alt="Codeka MX - Cobros a clientes">&lt;figcaption>
&lt;p>Codeka MX - Cobros a clientes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2717/4310338594%5Fd25961846c%5Fm.jpg"
alt="Codeka MX Salida de mercancía">&lt;figcaption>
&lt;p>Codeka MX Salida de mercancía&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4050/4310338562%5F9b9b513843%5Fm.jpg"
alt="Codeka MX - Cierre de caja">&lt;figcaption>
&lt;p>Codeka MX - Cierre de caja&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4002/4309601411%5F950cea9e4a%5Fm.jpg"
alt="Codeka MX - Punto de venta">&lt;figcaption>
&lt;p>Codeka MX - Punto de venta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4066/4310338512%5F400e3f3a62%5Fm.jpg"
alt="Codeka MX - Clientes">&lt;figcaption>
&lt;p>Codeka MX - Clientes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2732/4311908212%5Fe82d53d3e0%5Fm.jpg"
alt="Codeka MX - Codigos de Barras">&lt;figcaption>
&lt;p>Codeka MX - Codigos de Barras&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="requisitos-del-sistema">Requisitos del sistema.
&lt;/h2>&lt;p>Un servidor web como Apache que soporte &lt;a class="link" href="http://php.net/index.php" target="_blank" rel="noopener"
>PHP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, &lt;a class="link" href="https://www.mysql.com/" target="_blank" rel="noopener"
>MySQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como base de datos y &lt;a class="link" href="http://www.phpmyadmin.net/home_page/index.php" target="_blank" rel="noopener"
>phpMyAdmin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para algunas tareas de administración al principio y el navegador web &lt;a class="link" href="https://www.mozilla.org/es-MX/firefox/new/" target="_blank" rel="noopener"
>Firefox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, es recomendable usarlo porque lo he usado con otros navegadores y tiene algunos detallitos en cuanto a como se muestra en la pantalla.&lt;/p>
&lt;p>Todo esto lo podemos obtener de una manera muy sencilla instalando &lt;a class="link" href="http://www.appservnetwork.com/" target="_blank" rel="noopener"
>Appserv Open Project&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
un pequeño proyecto nos instala todo lo necesario en windows.&lt;/p>
&lt;p>Para linux también se puede pero las instrucciones pueden variar mucho dependiendo de la distro que se elija.&lt;/p>
&lt;h2 id="instalación">Instalación.
&lt;/h2>&lt;p>1.- Lo primero bajar e instalar &lt;a class="link" href="http://www.appservnetwork.com/" target="_blank" rel="noopener"
>Appserv&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, durante la instalación se nos va a preguntar la contraseña del administrador de la base de datos (la vamos a necesitar después).&lt;/p>
&lt;p>2.- Bajar Codeka MX, esta es la primer versión y provisionalmente la puedes bajar de aquí: &lt;a class="link" href="https://linuxmanr4.com/wp-content/uploads/2010/01/2010-01-28-codekamx.rar" >2010-01-28-codekamx&lt;/a>
&lt;em>(sha256sum 886beb47b7cc14720030bad57d3a3a3473c9819386e617eee2fbe918920373ea)&lt;/em> .&lt;/p>
&lt;p>Descomprime su contenido en la carpeta C:\AppServ\www (sustituye la C si elegiste otra unidad).&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4010/4310378268%5F0297751322.jpg"
alt="Codeka mx descomprimir el archivo">&lt;figcaption>
&lt;p>Codeka mx descomprimir el archivo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>3.- Una vez instalado vamos a crear la base de datos. Inicia firefox y abre esta dirección &lt;em>http://localhost/phpMyAdmin/&lt;/em> te va a pedir la clave de usuario (root) y la contraseña (la que te dije que íbamos a necesitar).&lt;/p>
&lt;p>En ese lugar ve a donde dice &lt;strong>Crear nueva base de datos&lt;/strong> , dale un nombre , por ejemplo codekamx y presiona el botón de crear.&lt;/p>
&lt;figure>&lt;img src="http://farm5.static.flickr.com/4070/4309654999%5F80703ba14e.jpg"
alt="Creacion de la base de datos">&lt;figcaption>
&lt;p>Creacion de la base de datos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez creada, presionamos Importar, elegimos el archivo que esta en &lt;em>C:\AppServ\www\codekamx&lt;/em> que se llama &lt;em>Base de datos inicial.sql&lt;/em> y le damos en continuar.&lt;/p>
&lt;p>Con eso hemos creado la base de datos y tenemos algunos datos iniciales.&lt;/p>
&lt;p>4.- Modificar los archivos de configuración.&lt;/p>
&lt;p>El primer archivo a modificar es &lt;em>config.php&lt;/em> que esta en &lt;em>C:\AppServ\www\codekamx&lt;/em> en este archivo se almacena la información de la conexión de la base de datos.&lt;/p>
&lt;p>Para efectos prácticos puedes usar la contraseña de root y la contraseña que hayas elegido, el servidor sería localhost y el nombre de la base de datos que acabamos de crear.&lt;/p>
&lt;p>Siguiendo estos pasos quedaría algo muy similar a esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$Usuario&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;root&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* nombre de usuario de la base de datos */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$Password&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;contraseña&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* Contraseña de la base de datos */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$Servidor&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;localhost&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* Servidor , generalmente localhost */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$BaseDeDatos&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;codekamx&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* Nombre de la base de datos */&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora viene algo que para mi gusto es una aberración, pero bueeeno creo que será una de las primeras cosas a cambiar en la siguiente versión, en el archivo &lt;em>parametros.php&lt;/em> que esta en la carpeta &lt;em>C:\AppServ\www\codekamx\parametros&lt;/em> aproximadamente por la línea 890, hay que ajustar los valores nuevamente con la información de la conexion de la base de datos.&lt;/p>
&lt;p>Quedaría más o menos así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$conn&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">mysql_connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">“localhost”&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">“root”&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">“contraseña”&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">mysql_select_db&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">“codekamx”&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">return&lt;/span> &lt;span class="nv">$conn&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Si todo salio bien, al abrir la página &lt;em>http://localhost/codekamx/&lt;/em> te debe de mostrar la siguiente pantalla:&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2780/4309610505%5F6d17245816.jpg"
alt="Codeka MX - Inicio">&lt;figcaption>
&lt;p>Codeka MX - Inicio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>5.- Información inicial.&lt;/p>
&lt;p>Para empezar a usar codeka, es necesario cargar alguna información inicial:&lt;/p>
&lt;ul>
&lt;li>Impuestos&lt;/li>
&lt;li>Entidades Bancarias&lt;/li>
&lt;li>Ubicaciones&lt;/li>
&lt;li>Embalajes&lt;/li>
&lt;li>Formas de Pago&lt;/li>
&lt;li>Clientes&lt;/li>
&lt;li>Proveedores&lt;/li>
&lt;li>Familia de Artículos&lt;/li>
&lt;li>Artículos&lt;/li>
&lt;/ul>
&lt;p>La base de datos inicial ya cargó algunos valores, también en el menú Parámetros del sistema se personalizan los datos de la empresa como nombre, dirección, etc.&lt;/p>
&lt;h2 id="conclusiones">Conclusiones.
&lt;/h2>&lt;p>El sistema es pequeñito, pero a veces es lo único que se requiere, supongo que puede funcionar muy bien en negocios que se dedican a la comercialización de productos, además llegar un control, aunque sea sencillo, es mejor que no llevar ninguno.&lt;/p>
&lt;p>Espero sus comentarios, reporte de bugs, detalles de traducción, en fin, cualquier aporte que mejore este sistemita.&lt;/p>
&lt;h3 id="actualización">Actualización.
&lt;/h3>&lt;p>En internet esta circulando otra versión de Codeka que aunque se hace llamar de manera muy parecida no es lo mismo. Sobre todo porque se anuncia bajo la bandera de Software Libre pero no lo es. Les recomiendo que lean este otro artículo &lt;a class="link" href="https://linuxmanr4.com/2012/01/18/codekamx-software-libre/" >Codeka MX, cuando el software libre deja de serlo.&lt;/a>
&lt;/p></description></item><item><title>Como evitar que vean mi lista de amigos en facebook</title><link>https://linuxmanr4.com/2010/01/21/como-evitar-que-vean-mi-lista-de-amigos-en-facebook/</link><pubDate>Thu, 21 Jan 2010 20:06:08 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/21/como-evitar-que-vean-mi-lista-de-amigos-en-facebook/</guid><description>&lt;p>He invertido una buena cantidad de tiempo tratando de encontrar la opción donde se evite que aparezcan visibles para todo el mundo mi lista de amigos en facebook.&lt;/p>
&lt;p>Claro que si piensa uno en el tema de la &lt;strong>privacidad&lt;/strong> lo mejor sería no tener &lt;a class="link" href="https://es.wikipedia.org/wiki/Facebook" target="_blank" rel="noopener"
>facebook&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
o ninguna otra red social, pero tal parece que eso no es una opción en nuestros días.&lt;/p>
&lt;p>Algunas personas prefieren que su lista de amigos sea privada sea visible solo para sus amigos o que no sea disponible para nadie. Esta es la forma de hacer esos ajustes.&lt;/p>
&lt;h2 id="ajustando-la-configuración">Ajustando la configuración
&lt;/h2>&lt;p>Uno podría pensar que el lugar ideal para comenzar a buscar sería en &lt;em>Configuración de Privacidad&lt;/em> en el menú &lt;em>Configuración&lt;/em> ¡Pues no es ciertoooo! (sabían que lo diría :) ).&lt;/p>
&lt;p>Tienen que hacer clic en el menú &lt;strong>Perfil&lt;/strong>, ir a la sección de &lt;strong>Amigos&lt;/strong> y hacer clic en el botón que dice &lt;strong>Editar Privacidad&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2010/01/21/como-evitar-que-vean-mi-lista-de-amigos-en-facebook/como-evitar-que-vean-mi-lista-de-amigos-en-facebook_linuxmanr4/" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2010/01/Como-evitar-que-vean-mi-lista-de-amigos-en-facebook_linuxmanr4.png"
loading="lazy"
alt="como evitar que vean mi lista de amigos en facebook"
>&lt;/a>
&lt;/p>
&lt;p>Ahora solo tienes que responder a la pregunta &lt;strong>¿Quién puede ver tu lista de amigos? ,&lt;/strong> de esa forma puedes indicarle a facebook quién puede ver tu lista de amigos.&lt;/p>
&lt;p>Y eso es todo :)&lt;/p></description></item><item><title>Un editor para trabajar en PHP , Komodo Edit</title><link>https://linuxmanr4.com/2010/01/18/un-editor-para-trabajar-en-php-komodo-edit/</link><pubDate>Mon, 18 Jan 2010 17:53:14 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/18/un-editor-para-trabajar-en-php-komodo-edit/</guid><description>&lt;p>En estos días he escrito poco, estoy ocupado adaptando un proyecto al ambiente mexicano.&lt;/p>
&lt;p>Esta desarrollado en PHP y apenas estoy haciendo mis pininos en este lenguaje, por cierto, para los que comenzamos me ha sido de gran utilidad este &lt;a class="link" href="http://mundogeek.net/archivos/2009/11/26/tutorial-rapido-de-php/" target="_blank" rel="noopener"
>Tutorial rápido de PHP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al principio comencé utilizando &lt;a class="link" href="http://www.flos-freeware.ch/notepad2.html" target="_blank" rel="noopener"
>Notepad2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="https://notepad-plus-plus.org/" target="_blank" rel="noopener"
>Notepad++&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que tiene la ventaja de resaltar el código escrito en &lt;a class="link" href="http://php.net/index.php" target="_blank" rel="noopener"
>PHP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Supongo que hay más editores especializados o mejores (se aceptan recomendaciones), pero me he sentido muy cómodo utilizando Komodo Edit (entendieron el chiste?.. no ? .. suuuu).&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4285560948/" title="komodo edit por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4051/4285560948_efcc59b5fc.jpg"
loading="lazy"
alt="komodo edit"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Funciona en los 3 sistemas operativos más importantes (Linux, Max y otro que no recuerdo ;) ). Todavía no reviso todas las opciones que tiene, pero me gusta el hecho de que me autocompleta las variables y las funciones básicas de PHP. Además que logré instalarle un &lt;em>scheme&lt;/em> diferente con un fondo oscuro que a mí me gusta.&lt;/p>
&lt;p>Ustedes ¿Cuál recomiendan?&lt;/p></description></item><item><title>Como configurar la ciudad del clima en Enna Media Center</title><link>https://linuxmanr4.com/2010/01/10/como-configurar-la-ciudad-del-clima-en-enna-media-center/</link><pubDate>Sun, 10 Jan 2010 22:03:54 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/10/como-configurar-la-ciudad-del-clima-en-enna-media-center/</guid><description>&lt;p>Enna se ha portado muy bien en tanke (mi computadora con 256 MB en RAM), de hecho el único problema que había tenido es la configuración del clima.&lt;/p>
&lt;p>En la documentación del proyecto no lo explican muy bien, pero después de investigar un poco, me di cuenta de que era muy simple.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4263289337/" title="Enna mostrando el clima de Torreón por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4057/4263289337_97040281f7.jpg"
loading="lazy"
alt="Enna mostrando el clima de Torreón"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Enna utiliza &lt;em>Google Weather API&lt;/em>, para estar seguros que la API regresa resultados podemos probar con esta página:&lt;/p>
&lt;p>&lt;code>http://www.google.com/ig/api?weather=[ciudad]&lt;/code>&lt;/p>
&lt;p>Donde &lt;/p>
\[ciudad\]&lt;p> lo reemplazamos por la ciudad que quieres obtener el clima, por ejemplo &lt;strong>torreon&lt;/strong> no me dio ningún resultado, pero &lt;strong>Torreón, COAH&lt;/strong> si, ese texto es el que debo de poner en mi archivo de configuración.&lt;/p>
&lt;p>El archivo esta en tu directorio de usuario /.enna/enna.cfg&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4263145223/" title="archivo enna cfg por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2684/4263145223_50d272fb34_o.jpg"
loading="lazy"
alt="archivo enna cfg"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Con este detalle solucionado está listo mi media center en casa, con su permiso voy a ver unos capítulos de Fringe.&lt;/p></description></item><item><title>Enna, Media Center Open Source</title><link>https://linuxmanr4.com/2010/01/08/enna-media-center-open-source/</link><pubDate>Fri, 08 Jan 2010 23:39:17 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/08/enna-media-center-open-source/</guid><description>&lt;p>Añada usted un elemento más a la lista de Media Centers libres, en esta caso se trata de &lt;a class="link" href="http://enna.geexbox.org/" target="_blank" rel="noopener"
>Enna&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, de los creadores de GeexBox.&lt;/p>
&lt;p>Enna es una aplicación del tipo Media Center con una interfaz de usuario sencilla, se basa en las librerías Enlightenment Foundations Libraries (EFL) para la interfaz gráfica de usuario y las bibliotecas GeeXboX para la reproducción multimedia y de recuperación de información.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4258091262/" title="enna-01 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4042/4258091262_a0730de55f.jpg"
loading="lazy"
alt="enna-01"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Pequeño, ligero, rápido, lo que hace lo hace bien, sin ser demasiado complicado y por el tipo de librerías que usa supongo un bajo consumo de recursos. Además que no tuvo ningún problema en reproducir archivos con subtítulos de texto y archivos .rmvb&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4258091892/" title="enna-04 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm5.static.flickr.com/4034/4258091892_b6345945da.jpg"
loading="lazy"
alt="enna-04"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Capaz de reproducir archivos de video, música, fotos, algunos comics en línea y claro, información del clima.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4258091806/" title="enna-03 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2724/4258091806_e27793e508.jpg"
loading="lazy"
alt="enna-03"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Solo tiene un pequeño detalle, por el momento la configuración del programa se hace editando un archivo de texto, supongo que cuando el programa esté más maduro se podrán realizar ajustes directamente en el programa.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4258091378/" title="enna-02 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2677/4258091378_2309979e9b.jpg"
loading="lazy"
alt="enna-02"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Mientras tanto, no está de más estar al pendiente de su desarrollo.&lt;/p></description></item><item><title>Hermano en la tierra</title><link>https://linuxmanr4.com/2010/01/05/hermano-en-la-tierra/</link><pubDate>Tue, 05 Jan 2010 21:20:14 +0000</pubDate><guid>https://linuxmanr4.com/2010/01/05/hermano-en-la-tierra/</guid><description>&lt;figure>&lt;img src="http://farm5.static.flickr.com/4001/4249185030%5F99979611fb.jpg"
alt="Hermano en la tierra">&lt;figcaption>
&lt;p>Hermano en la tierra&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Mi esposa insistió durante mucho tiempo en que leyera este libro, su lectura me acompañó durante el viaje que hicimos a Zacatecas y me distrajo de la ventanilla y de las películas vhs (si&amp;hellip; vhs) que pasaron en el camión.&lt;/p>
&lt;p>Es un buen libro, muy crudo como la realidad que enfrenta el personaje. Un mundo que sufrió los embates de ataques con bombas nucleares. Su lectura es ágil, inmediatamente te engancha y quieres saber sobre el futuro incierto de Danny.&lt;/p>
&lt;p>Esta disponible en las librerías del fondo de cultura económica a un precio muy accesible.&lt;/p>
&lt;p>Ahora ya suena un poco lejano, pero hubo un momento en que la ficción que narra el autor estuvo a punto de volverse realidad.&lt;/p></description></item><item><title>Icono al estilo de Adobe CS4 pero con inkscape</title><link>https://linuxmanr4.com/2009/12/18/icono-al-estilo-de-adobe-cs4-pero-con-inkscape/</link><pubDate>Fri, 18 Dec 2009 18:10:41 +0000</pubDate><guid>https://linuxmanr4.com/2009/12/18/icono-al-estilo-de-adobe-cs4-pero-con-inkscape/</guid><description>&lt;p>En mi Twitter vi a varios amigos con su avatar estilo Adobe CS4 y para no quedarme con las ganas hice uno parecido utilizando &lt;a class="link" href="http://www.inkscape.org/?lang=es" target="_blank" rel="noopener"
>inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4195644044/" title="inkscape adobe icon style por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2751/4195644044_28b5e4ae67.jpg"
loading="lazy"
alt="inkscape adobe icon style"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>No me quedó lo que se dice idéntico y probablemente existen mejores formas de hacerlo, pero no me quise meter en muchas complicaciones y lo hice de una manera muy sencilla.&lt;/p>
&lt;p>Primero dibujé un cuadro con el color sólido, y luego otro, pero de color claro con un gradiente con un degradado radial y ajustando su transparencia, pude darle ese efecto de brillo.&lt;/p>
&lt;p>Lo más complicado fue conseguir el tipo de letra, que después de una ligera investigación en Google me dice que es Myriad Pro.&lt;/p>
&lt;p>Al texto le apliqué el efecto &lt;strong>Sombra interior&lt;/strong>, que está en el menú &lt;strong>Filtros&lt;/strong> - &lt;strong>Sombras y Brillos&lt;/strong>.&lt;/p>
&lt;p>Pero para que lo puedan ajustar a su gusto, cambiar el color y personalizar las letras, les dejo el archivo para que lo descarguen.&lt;/p></description></item><item><title>Ink la película</title><link>https://linuxmanr4.com/2009/12/03/ink-la-pelicula/</link><pubDate>Thu, 03 Dec 2009 22:58:27 +0000</pubDate><guid>https://linuxmanr4.com/2009/12/03/ink-la-pelicula/</guid><description>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/4C5I1SavGyA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Ink es una de esas películas que te atrapan, de las que quieres saber más porque solo te dan pedazos de información durante el transcurso de la película.&lt;/p>
&lt;p>1 &amp;hellip; 2&amp;hellip; 3&amp;hellip; 4&amp;hellip;.&lt;/p>
&lt;p>Es cine independiente de bajo presupuesto y por lo que cuentan, las principales compañías distribuidoras se negaron a proyectar este trabajo de un concepto visual muy llamativo e interesante.&lt;/p>
&lt;p>1 &amp;hellip; 2&amp;hellip; 3&amp;hellip; 4&amp;hellip;.&lt;/p>
&lt;p>Es el mismo público el que se ha encargado promover film por las mismas recomendaciones de quienes la han visto. No se si alguna vez se llegará a proyectar en las salas de cine mexicanas, me gustaría verla en la pantalla grande.&lt;/p>
&lt;p>Ink es un cine diferente, es un aire fresco a todas las predecibles producciones americanas. Si la pueden descargar de Internet ¡Háganlo! y luego me platican que les pareció.&lt;/p>
&lt;p>1 &amp;hellip; 2&amp;hellip; 3&amp;hellip; 4&amp;hellip;.&lt;/p></description></item><item><title>Disminuir el acceso al disco duro : swappiness</title><link>https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/</link><pubDate>Thu, 03 Dec 2009 15:43:25 +0000</pubDate><guid>https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/</guid><description>&lt;p>Como ya lo he comentado, la computadora de mi casa, la famosa tanke, ya tiene su Ubuntu karmic koala y &lt;a class="link" href="https://linuxmanr4.com/2009/11/18/lxde-un-entorno-de-escritorio-ligero/" >lxde&lt;/a>
como ambiente gráfico, cumple la noble función de centro de entretenimiento, vemos series, películas y claro navegamos por el internet usando Google Chrome.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4155048619/" title="Tanke por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2641/4155048619_ef57429602_o.jpg"
loading="lazy"
alt="Tanke"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Decidí probar un ajuste al valor de &lt;em>swappiness&lt;/em>, el ajuste de este valor, si es más pequeño hace mayor uso de la memoria RAM (o menos swap, como lo quieran ver) y un valor mayor hace menos uso de la memoria RAM, y por consiguiente más accesos al disco duro.&lt;/p>
&lt;p>En el caso de tanke son notorios los accesos al disco porque el disco duro hace un ruidito característico. A veces parece que va a volar el disco duro :D&lt;/p>
&lt;p>Por default este valor esta ajustado a 60&lt;/p>
&lt;p>Lo podemos comprobar tecleando en una terminal lo siguiente.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo cat /proc/sys/vm/swappiness
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para ajustarlo tecleamos:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo sysctl -w vm.swappiness=10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A pesar de tener poca memoria RAM el valor de 10 funcionó muy bien para mí. Para hacer el cambio permanente tenemos que editar un archivo.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/sysctl.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y agregamos al final del archivo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">vm.swappiness=10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ahora en el siguiente arranque este valor será del default del equipo.&lt;/p></description></item><item><title>Ubuntu One</title><link>https://linuxmanr4.com/2009/11/30/ubuntu-one/</link><pubDate>Mon, 30 Nov 2009 23:47:19 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/30/ubuntu-one/</guid><description>&lt;p>Apenas acabo de abrir mi cuenta de &lt;a class="link" href="https://web.archive.org/web/20120502004430/https://one.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu One&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, esta es una novedad en Karmic, y al ver la opción en el menú pues me decidí a probarla. :D&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4147932831/" title="ubuntu one por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2593/4147932831_52bc0bf1a7.jpg"
loading="lazy"
alt="ubuntu one"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En tres patadas ya tenía lista mi cuenta, subí un tar con las imágenes del calendario que acabo de hacer, y ahorita estoy explorando las opciones de compartir archivos.&lt;/p>
&lt;p>¿Por qué?, pues porque al hacer un calendario libre es justo que también incluya las fuentes de los archivos en &lt;a class="link" href="http://www.inkscape.org/?lang=es" target="_blank" rel="noopener"
>Inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para promover la filosofía libre de usar, modificar, copiar y mejorar.&lt;/p>
&lt;p>Por eso voy a compartir los archivos a los que estén interesados y tengan una cuenta en Ubuntu One, solo tienen que dejarme un comentario en el blog para darles los permisos y compartir la carpeta ( o también se los puedo mandar por correo electrónico)&lt;/p>
&lt;p>La manufactura del calendario es por demás simple, no representan ningún grado de complejidad, aunque puede ser un buen ejercicio para aquellos que comienzan a utilizar esta herramienta de diseño.&lt;/p>
&lt;p>Para todos aquellos que quieran saber un poco más sobre Inkscape hay un libro electrónico llamado &lt;a class="link" href="http://tavmjong.free.fr/INKSCAPE/" target="_blank" rel="noopener"
>A guide to Inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
muy detallado y con muchos ejemplos.&lt;/p></description></item><item><title>Proyecto Calendario Libre 2010</title><link>https://linuxmanr4.com/2009/11/26/proyecto-calendario-libre-2010/</link><pubDate>Thu, 26 Nov 2009 19:50:16 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/26/proyecto-calendario-libre-2010/</guid><description>&lt;p>Estoy haciendo un pequeño proyecto con &lt;a class="link" href="http://www.inkscape.org/?lang=es" target="_blank" rel="noopener"
>inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.La idea es hacer un pequeño calendario con personajes, empresas o mascotas relacionadas con Linux y el software libre.&lt;/p>
&lt;p>Creo que debe de comenzar con Stallman, quizás febrero sea Torvalds, tengo la idea de poner la el logo de la nueva versión de Ubuntu para el mes de abril, pero siento que me faltan algunas mujeres (SFW por favor).&lt;/p>
&lt;p>¿Tienen alguna idea para el resto de los meses?
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4136771192/" title="Enero 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2526/4136771192_4e029f9a27_m.jpg"
loading="lazy"
alt="Enero 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4136293217/" title="Febrero 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2795/4136293217_fe6dc50492_m.jpg"
loading="lazy"
alt="Febrero 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4137161120/" title="Marzo 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2584/4137161120_c7f52842d6_m.jpg"
loading="lazy"
alt="Marzo 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4136420335/" title="Abril 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2520/4136420335_4f62e627ec_m.jpg"
loading="lazy"
alt="Abril 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4137208884/" title="Mayo 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2673/4137208884_13f9a406db_m.jpg"
loading="lazy"
alt="Mayo 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4138295671/" title="Mayo 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2598/4138295671_6ee9d36935_m.jpg"
loading="lazy"
alt="Mayo 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4138340867/" title="Julio 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2726/4138340867_233f556d53_m.jpg"
loading="lazy"
alt="Julio 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4138376609/" title="Agosto 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2750/4138376609_c73f822279_m.jpg"
loading="lazy"
alt="Agosto 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4139173264/" title="2010-09_calendario_libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2639/4139173264_c5e3ac78b6_m.jpg"
loading="lazy"
alt="2010-09_calendario_libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4139471300/" title="Octubre 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2745/4139471300_8c62d6e065_m.jpg"
loading="lazy"
alt="Octubre 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4139526262/" title="Noviembre 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2662/4139526262_1a183e6419_m.jpg"
loading="lazy"
alt="Noviembre 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4138655661/" title="Diciembre 2010 Calendario libre por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2572/4138655661_8b1d522522_m.jpg"
loading="lazy"
alt="Diciembre 2010 Calendario libre"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Se aceptan sugerencias :P&lt;/p>
&lt;p>&lt;strong>Actualización 01-12-2009&lt;/strong>&lt;/p>
&lt;p>Gracias a los comentarios de todos terminé el proyecto, claro que a lo mejor a alguién tiene mejores habilidades en el diseño, o simplemente no le gustó una foto y quisiera poner otra. A lo mejor alguien querrá hacer un calendario de su familia o viajes o viejas &amp;hellip; amistades claro.&lt;/p>
&lt;p>Así que siguiendo con el espíritu libre del mismo calendario, les dejo los archivos de trabajo que hice en Inkscape para que lo usen, mejoren, copien y distribuyan a su gusto.&lt;/p>
&lt;p>&lt;a class="link" href="https://docs.google.com/leaf?id=0B3CKNBdOD8epNGFiOGM2MWQtZjg5YS00OGViLWIxOTAtMjcwNDU2NGU1Yzhi&amp;amp;hl=es" target="_blank" rel="noopener"
>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/descargar_calendario_libre_02.png"
loading="lazy"
alt="Descargar Calendario Libre 2010"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p></description></item><item><title>SETI@Home: Búsqueda de Inteligencia Extraterrestre en casa</title><link>https://linuxmanr4.com/2009/11/24/busqueda-de-inteligencia-extraterrestre-en-casa/</link><pubDate>Tue, 24 Nov 2009 21:26:10 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/24/busqueda-de-inteligencia-extraterrestre-en-casa/</guid><description>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/contactopelicula.jpg"
loading="lazy"
alt="Pelicula Contacto"
>&lt;/p>
&lt;p>No se si vieron la película &lt;a class="link" href="http://www.imdb.com/title/tt0118884/" target="_blank" rel="noopener"
>Contacto&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, basada en el libro del mismo nombre de &lt;a class="link" href="http://es.wikipedia.org/wiki/Carl_Sagan" target="_blank" rel="noopener"
>Carl Sagan&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En el comienzo la protagonista esta en el &lt;a class="link" href="http://maps.google.com/maps?t=h&amp;amp;hl=es&amp;amp;ie=UTF8&amp;amp;ll=18.345442,-66.754603&amp;amp;spn=0.01222,0.030813&amp;amp;z=15" target="_blank" rel="noopener"
>Radio Telescopio de Arecibo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en Puerto Rico, su trabajo consiste más o menos en interpretar las señales del telescopio para encontrar inteligencia extraterrestre.&lt;/p>
&lt;p>Eso mismo hace el proyecto &lt;a class="link" href="http://setiathome.berkeley.edu/index.php" target="_blank" rel="noopener"
>SETI@Home&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, las señales de radio telescopio consisten principalmente de ruido, buscar patrones en ese desastre no es sencillo, por eso amablemente donas un poco del poder de cómputo de tu equipo para hacer los cálculos necesarios que permitan detectar posibles señales de vida inteligente en el espacio.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4132024008/" title="SETI@Home por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2613/4132024008_f5e7cc900f.jpg"
loading="lazy"
alt="SETI@Home"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Un pequeño programa, que también incluye un protector de pantalla hará todo el trabajo por ti, descargará un paquete de datos, los procesará, subirá los resultados y bajará un paquete nuevo.&lt;/p>
&lt;p>Existe la pequeña posibilidad de que sea tu computadora la que descubra el punto en el cielo donde existe vida fuera de este planeta.&lt;/p>
&lt;p>&lt;em>Más información en la wikipedia: &lt;a class="link" href="http://es.wikipedia.org/wiki/SETI@Home" target="_blank" rel="noopener"
>SETI@Home&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/em>&lt;/p></description></item><item><title>LXDE un entorno de escritorio ligero</title><link>https://linuxmanr4.com/2009/11/18/lxde-un-entorno-de-escritorio-ligero/</link><pubDate>Thu, 19 Nov 2009 01:03:02 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/18/lxde-un-entorno-de-escritorio-ligero/</guid><description>&lt;figure>&lt;img src="http://farm3.static.flickr.com/2694/4116384296%5Fc7e84fa8c7.jpg"
alt="LXDE Screenshot">&lt;figcaption>
&lt;p>LXDE Screenshot&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Aunque tanke ha sacado la casta al permitir que se le instale Ubuntu 9.10 en ocasiones no puede con todo.&lt;/p>
&lt;p>Tanke es una computadora de la vieja guardia, una HP vectra con 256 MB en RAM que vio sus mejores días; sin embargo, cuenta con un disco duro SCSI y una tarjeta de video Matrox que debió ser la envidia de su época. Ahora cuando quiero instalar algo mediante apt-get el disco duro hace unos ruidos que se me figura ver a un pajarito con su cincel al más puro estilo de los pica piedra grabando la información a marrazo limpio.&lt;/p>
&lt;p>Para no cargarle la mano instalé &lt;a class="link" href="https://www.lxde.org/" target="_blank" rel="noopener"
>LXDE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Para instalarlo tan simple como abrir una terminal y teclear:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install lxde
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cerrar la sesión para luego iniciarla nuevamente con LXDE (en lugar de Gnome).&lt;/p>
&lt;p>LXDE funciona bastante bien y por el momento se ha convertido en mi escritorio de cabecera en tanke. Aunque se rumora que está por salir Google OS, ya veremos cuáles son sus requerimientos :D&lt;/p></description></item><item><title>Pruebas de Hardware a un Blackberry</title><link>https://linuxmanr4.com/2009/11/17/pruebas-de-hardware-a-un-blackberry/</link><pubDate>Wed, 18 Nov 2009 00:07:45 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/17/pruebas-de-hardware-a-un-blackberry/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4112922905/" title="Blackberry Bold 9000 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2790/4112922905_df2de52592_o.png"
loading="lazy"
alt="Blackberry Bold 9000"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En ocasiones cuando tenemos problemas con un Blackberry surge la duda, ¿será el hardware o el software?&lt;/p>
&lt;p>Para despejar la incógnita existe una función oculta que nos ayuda a realizar una serie de pruebas en el hardware.&lt;/p>
&lt;p>Para comenzar hay que ir a &lt;strong>Opciones/Estado&lt;/strong> y teclear la palabra &lt;strong>test&lt;/strong>, aparecerá una aplicación que te indicará el tipo de pruebas, pueden ser del teclado, la pantalla, el gps, o todas las disponibles.&lt;/p>
&lt;p>Para avanzar solo hay que hacer clic en el trackball para iniciar la siguiente prueba o para terminar.&lt;/p></description></item><item><title>Fallo al obtener la lista de compartición del servidor - Ubuntu Karmic Koala</title><link>https://linuxmanr4.com/2009/11/12/fallo-al-obtener-la-lista-de-comparticion-del-servidor-ubuntu-karmic-koala/</link><pubDate>Thu, 12 Nov 2009 20:00:08 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/12/fallo-al-obtener-la-lista-de-comparticion-del-servidor-ubuntu-karmic-koala/</guid><description>&lt;p>&lt;strong>El problema.&lt;/strong>&lt;/p>
&lt;p>El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú &lt;strong>Lugares - Red - Red de Windows&lt;/strong> y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">No se puede montar el lugar.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Fallo al obtener la lista de compartición del servidor.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm3.static.flickr.com/2523/4099006722%5Fb6feb1b596.jpg"
alt="No se pudo montar el lugar">&lt;figcaption>
&lt;p>No se pudo montar el lugar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>&lt;strong>La solución&lt;/strong>.&lt;/p>
&lt;p>La encontré en este &lt;a class="link" href="https://web.archive.org/web/20100310202751/http://ubuntuforums.org/showpost.php?p=7366839&amp;amp;postcount=10" target="_blank" rel="noopener"
>artículo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo.&lt;/p>
&lt;p>&lt;em># &amp;ndash; Aquí inicia el articulo de los foros de Ubuntu &amp;ndash;&lt;/em>&lt;/p>
&lt;p>1- En principio es necesario que estén instalados:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">samba samba-common smbclient winbind
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>2- Luego editar el archivo /etc/samba/smb.conf&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/samba/smb.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A los cambios necesarios para adaptar el sistema, según los&lt;/p>
&lt;p>tutoriales de samba es necesario tener presente que:&lt;/p>
&lt;p>a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el&lt;/p>
&lt;p>nombre de grupo de trabajo de los ordenadores que debe ser el mismo.&lt;/p>
&lt;p>b- Borrar el &amp;ldquo;;&amp;rdquo; de la linea:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">name resolver order = lmhosts hosts wins bcast
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>3- Editar el archivo /etc/nsswitch.conf&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo gedit /etc/nsswitch.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Buscar la linea que dice:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Agregar wins antes de dns&lt;/p>
&lt;p>para que la línea quede así:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>#-- Aquí termina el articulo de los foros de Ubuntu &amp;ndash;&lt;/em>&lt;/p>
&lt;p>Ahora para hacer efectivos los cambios podemos reiniciar samba con:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo /etc/init.d/samba restart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>y para estar seguros también lo haremos con el servicio winbind:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo /etc/init.d/winbind restart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cerramos la sesión, solo para evitar confusiones con nautilus y si todo salió bien este será el resultado.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2794/4098252969%5F01dec87590.jpg"
alt="Equipos compartidos">&lt;figcaption>
&lt;p>Equipos compartidos&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Listo !!! Ahora si sin problemas a buscar esos archivos compartidos.&lt;/p></description></item><item><title>Moovida Media Center</title><link>https://linuxmanr4.com/2009/11/11/moovida-media-center/</link><pubDate>Thu, 12 Nov 2009 00:55:09 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/11/moovida-media-center/</guid><description>&lt;p>Anteriormente le di un vistazo a XBMC, ahora le toca el turno a Moovida Media Center.&lt;/p>
&lt;p>Su instalación en Ubuntu no es complicada. Primero agregamos la siguiente &lt;em>Línea de APT&lt;/em> en los &lt;em>Orígenes del Software&lt;/em>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ppa:moovida-packagers/ppa
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm3.static.flickr.com/2603/4096154125%5F5bf23b04ef.jpg"
alt="Agregando el repositorio">&lt;figcaption>
&lt;p>Agregando el repositorio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y después de recargar nuestros repositorios todo se instala con un:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install moovida
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Recién instalado buscará nuestros archivos multimedia (música, fotos y videos) en los lugares usuales, pero creo que todos tenemos nuestros archivos en ubicaciones particulares, así que hay que indicarle al programa que carpetas se quieren agregar y cual es su contenido.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2484/4096122735%5F9bb016f36c.jpg"
alt="Películas">&lt;figcaption>
&lt;p>Películas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de la carga inicial aparecerán todo lo que pudo reconocer, películas , series, música y fotos.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2505/4096879104%5Fd42f2111c5.jpg"
alt="Musica">&lt;figcaption>
&lt;p>Musica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me agrada mucho su forma de presentar cada medio, lo hace de una manera vistosa y a la vez elegante, sin sobrecarga de efectos innecesarios de una manera que hace lo menos indispensable el ratón.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2515/4096882160%5Fc288c0a38c.jpg"
alt="Imagenes">&lt;figcaption>
&lt;p>Imagenes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Moovida tiene una serie de agregados, que permiten mostrar contenido en línea como fotos en flickr, videos en youtube o música de Jamendo.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2633/4096123673%5Fa82c997209.jpg"
alt="Musica">&lt;figcaption>
&lt;p>Musica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A lo mejor peco de optimista, pero lo voy a instalar en la computadora de la casa (le puse como nombre tanke), con sus 256 MB en RAM veamos como se porta este media center :D&lt;/p></description></item><item><title>Administrar GRUB 2 en Ubuntu Karmic Koala</title><link>https://linuxmanr4.com/2009/11/05/administrar-grub2-en-ubuntu-karmic-koala/</link><pubDate>Thu, 05 Nov 2009 22:02:38 +0000</pubDate><guid>https://linuxmanr4.com/2009/11/05/administrar-grub2-en-ubuntu-karmic-koala/</guid><description>&lt;p>Durante mucho tiempo me las arreglé bastante bien editando manualmente el archivo de configuración de grub.&lt;/p>
&lt;p>Eliminaba kernels extras sin mayor problema, ajustaba el tiempo de espera y el sistema operativo por default, pero todo cambio con esta nueva versión de Ubuntu.&lt;/p>
&lt;p>La nueva versión de grub que viene en karmic koala no tienen nada de malo solo que no es a lo que estaba acostumbrado, pero se soluciona con unos cuantos clics de ratón.&lt;/p>
&lt;p>Usando del Centro de software de ubuntu (otra novedad) busqué el paquete llamado &lt;strong>Administrador de arranque&lt;/strong>.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4079000810/" title="Instalando el administrador de arranque por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2612/4079000810_dd6a6b2657.jpg"
loading="lazy"
alt="Instalando el administrador de arranque"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Una vez instalado buscamos en el menú &lt;strong>Sistema - Administración - Administrador de arranque&lt;/strong> &lt;a class="link" href="http://www.flickr.com/photos/linuxman/4078246211/" title="configuracion del administrador de arranque por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2796/4078246211_bf64d7994d.jpg"
loading="lazy"
alt="configuracion del administrador de arranque"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y hacemos los ajustes necesarios.&lt;/p>
&lt;p>¿Quién dijo que Linux era complicado? :P&lt;/p></description></item><item><title>A bajar Ubuntu 9.10 Karmic Koala</title><link>https://linuxmanr4.com/2009/10/29/a-bajar-ubuntu-910-karmic-koala/</link><pubDate>Thu, 29 Oct 2009 15:14:27 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/29/a-bajar-ubuntu-910-karmic-koala/</guid><description>&lt;p>&lt;img src="https://linuxmanr4.com/imgf/4053584947_d79e01c1ea_o.jpg"
loading="lazy"
alt="Ubuntu Karmic Koala"
>&lt;/p>
&lt;p>Después de estar contando los días al fin está con nosotros la nueva versión de &lt;a class="link" href="http://www.ubuntu.com/" target="_blank" rel="noopener"
>Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
con el nombre de Karmic Koala.&lt;/p>
&lt;p>Como es de esperarse, los servidores están un poco saturados, así que lo mejor es utilizar bittorrent para descargar el iso.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-alternate-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-alternate-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-alternate-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-alternate-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-desktop-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-desktop-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-server-amd64.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-server-amd64.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="http://releases.ubuntu.com/9.10/ubuntu-9.10-server-i386.iso.torrent" target="_blank" rel="noopener"
>ubuntu-9.10-server-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>En esta ocasión pretendí hacer un upgrade, pero las novedades en cuanto a grub me esta tentando a hacer nuevamente una instalación desde cero.&lt;/p>
&lt;p>Si quieren ver qué novedades trae el Koala pueden leer este.&lt;/p>
&lt;p>&lt;strong>Update:&lt;/strong>&lt;/p>
&lt;p>Para los que están buscando los códigos md5 de los archivos para comprobar una descarga correcta, aquí están:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">836440698456aa2936a4347b5485fdd6 *ubuntu-9.10-alternate-amd64.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">3faa345d298deec3854e0e02410973dc *ubuntu-9.10-alternate-i386.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">dc51c1d7e3e173dcab4e0b9ad2be2bbf *ubuntu-9.10-desktop-amd64.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">d91659de6e945dbb96eb8970b2b4590a *ubuntu-9.10-desktop-armel+dove.img
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">297875d2a7531824a0fb08f241d33e85 *ubuntu-9.10-desktop-armel+imx51.img
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8790491bfa9d00f283ed9dd2d77b3906 *ubuntu-9.10-desktop-i386.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ed6e77587b87fe0d92a2f21855869f00 *ubuntu-9.10-netbook-remix-i386.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">14707e8847b9c9ba2dd1869fb5086e4f *ubuntu-9.10-server-amd64.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">55618ad5f180692f9dac20cbff352634 *ubuntu-9.10-server-i386.iso
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">37a04db193b1a342f961f59aea2fada8 *wubi.exe
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Haciendo olas con Google Wave</title><link>https://linuxmanr4.com/2009/10/23/haciendo-olas-con-google-wave/</link><pubDate>Fri, 23 Oct 2009 15:07:30 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/23/haciendo-olas-con-google-wave/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/4036705831/" title="Google Wave por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2444/4036705831_8027541366.jpg"
loading="lazy"
alt="Google Wave"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Hace más de una semana que recibí mi invitación para Google Wave, lamentablemente desde mi anuncio en Twitter no me han llegado invitaciones para repartir, así que les pido paciencia, supongo que Google las libera por &amp;ldquo;oleadas&amp;rdquo; (entendieron? oleadas no? suuuuuu).&lt;/p>
&lt;p>En ocasiones Wave se vuelve una especie de chat, y se complica seguir las conversaciones. No tiene una forma clara de distinguir que escribió cada uno de los integrantes de la ola y cuando son más de 10 los participantes se vuelve un tsunami de colaboración.&lt;/p>
&lt;p>Utilizar wave con un navegador diferente a Chrome es un martirio, mi firefox se alentó tanto que hizo imposible el uso de wave y mis demás páginas abiertas en ese momento.&lt;/p>
&lt;p>Mi primera impresión es que Wave todavía está muuuuy verde, aunque de inmediato puedes ver el potencial de la plataforma. El simple hecho de arrastrar y soltar imágenes, URL de videos y que aparezcan integrados en la ola enriquece la experiencia. Pero se tiene que trabajar en la confusión que implican olas con muchos participantes.&lt;/p>
&lt;p>En cuanto tenga invitaciones se los haré saber, ya tengo una lista de espera, pero veo que algunos que me lo solicitaron ya consiguieron la suya, así que tendré que hacer otra lista :D.&lt;/p>
&lt;p>Por lo pronto no hay que perderse la evolución de Wave, se antoja para cosas muy interesantes :).&lt;/p></description></item><item><title>I love Droid Font</title><link>https://linuxmanr4.com/2009/10/19/i-love-droid-font/</link><pubDate>Mon, 19 Oct 2009 20:20:23 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/19/i-love-droid-font/</guid><description>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3478/4027326196%5Fccec8257ca.jpg"
alt="i\_love\_droid\_font">&lt;figcaption>
&lt;p>i_love_droid_font&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No se porque visualmente me parece tremendamente atractiva la tipografía Droid.&lt;/p>
&lt;p>Esta tipografía es creada por &lt;a class="link" href="http://www.ascendercorp.com/" target="_blank" rel="noopener"
>Ascender Corporation&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
especialmente para su uso en la plataforma Android, destinada a las pequeñas pantallas de teléfonos móviles.&lt;/p>
&lt;p>Desde que la descubrí la uso en todas partes, en Windows, en Linux, en editores y navegadores, simplemente me parece genial. Visualmente, me parece muy sencilla y cómoda de leer.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2456/4026504047%5F2c60201e22.jpg"
alt="mozilla-droid">&lt;figcaption>
&lt;p>mozilla-droid&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si quieren probarla, puede descargar un paquete para windows desde este &lt;a class="link" href="http://damieng.com/blog/2007/11/14/droid-font-family-courtesy-of-google-ascender" target="_blank" rel="noopener"
>artículo&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En Ubuntu es más sencillo, solo tienen que teclear :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo aptitude install ttf-droid
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y ustedes ¿Cuál es su Tipografía favorita?&lt;/p></description></item><item><title>Probando Windows 7</title><link>https://linuxmanr4.com/2009/10/17/probando-windows-seven/</link><pubDate>Sat, 17 Oct 2009 15:08:23 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/17/probando-windows-seven/</guid><description>&lt;p>Ayer me dispuse a darle un vistazo al nuevo Windows Seven. Conseguirlo no fue difícil, en varios sitios de Internet se distribuye el .iso junto con algo que llaman el &amp;ldquo;activador&amp;rdquo; (no se que signifique).&lt;/p>
&lt;p>De entrada la instalación me ha parecido sencilla. Obvio tuve que hacer ajustes en mi maquina de pruebas de &lt;a class="link" href="https://linuxmanr4.com/2022/02/17/error-al-instalar-las-guest-additions-en-virtualbox-exit-code-2/" >VirtualBox&lt;/a>
, acostumbrada a probar distros de Linux sus 256 MB iniciales y sus 5 GB de disco no fueron suficientes, tuve que aumentar a 1 GB en RAM y duplicar el espacio en disco duro solamente para que me permitiera instalarlo, no sorprende era algo que esperaba.&lt;/p>
&lt;p>No tengo la referencia de la instalación de Vista, pero si puedo ver que al fin Microsoft le ha aprendido algunos trucos a Linux, unas breves preguntas, se pone a copiar sus archivitos y después de un rato inicia el famoso sistema operativo.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2510/4019536812%5F4398caab03.jpg"
alt="Windows seven, instalación">&lt;figcaption>
&lt;p>Windows seven, instalación&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La primer advertencia, casi inmediatamente de iniciar, la eterna cantaleta de &amp;ldquo;No tengo antivirus&amp;rdquo; , puuuuuf, hay cosas que no cambian :(&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2576/4019536106%5Ff85e36c7e5.jpg"
alt="Y comienza con &amp;#39;Instala un antivirus&amp;#39;">&lt;figcaption>
&lt;p>Y comienza con &amp;lsquo;Instala un antivirus&amp;rsquo;&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Le instalé la versión gratuita de Avast, solo para que dejara de molestar.&lt;/p>
&lt;p>Lo estuve probando por un rato, haciendo clic por aquí y por allá, supongo que las novedades son más cuestiones de fondo, pero me sorprendí al ver que para jugar ajedrez se requiere de aceleración gráfica!!!&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2598/4019539850%5F6ff30cee3f.jpg"
alt="Aceleración para jugar ajedrez">&lt;figcaption>
&lt;p>Aceleración para jugar ajedrez&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>No estoy seguro todavía de su rendimiento y estabilidad, todos sabemos que un Windows recién instalado es rápido, en alguna ocasión tendré la oportunidad de instalarlo en un sistema real.&lt;/p>
&lt;p>Mientras tanto, no olvidemos que muy pronto será el lanzamiento de la nueva versión de Ubuntu 9.10 Karmic Koala&lt;/p>
&lt;p>En &lt;a class="link" href="https://x.com/linuxmanr4" target="_blank" rel="noopener"
>Twitter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se armó un revuelo solo porque mencioné que estaba probando windows 7, vamos ni que fuera para tanto :D&lt;/p></description></item><item><title>Equipos Maltratados</title><link>https://linuxmanr4.com/2009/10/06/equipos-maltratados/</link><pubDate>Tue, 06 Oct 2009 18:35:26 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/06/equipos-maltratados/</guid><description>&lt;p>Si hubiera alguna agencia para denunciar el abuso a los equipos ya estaría poniendo una denuncia&amp;hellip;&lt;/p>
&lt;p>Un compañero me trajo la computadora de su hijo, al parecer la intentó formatear y en algo se atoró.&lt;/p>
&lt;p>Al abrirla, vean como estaba la tarjeta de video &amp;hellip;.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3987997584/" title="Tarjeta de video maltratada por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3447/3987997584_315b0cae32.jpg"
loading="lazy"
alt="Tarjeta de video maltratada"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Eso explicaba muchas cosas, al revisarla más detenidamente, al parecer se les cayó la computadora, tiene algunos golpes, le falta el botón de reset más lo que se le acumule esta semana.&lt;/p>
&lt;p>¡Caray, si no quieren su compu, donenla!!!&lt;/p></description></item><item><title>Cuando MySQL confunde la ñ con la n</title><link>https://linuxmanr4.com/2009/10/03/cuando-mysql-confunde-la-n-con-la-n/</link><pubDate>Sat, 03 Oct 2009 15:15:30 +0000</pubDate><guid>https://linuxmanr4.com/2009/10/03/cuando-mysql-confunde-la-n-con-la-n/</guid><description>&lt;p>Llevaba 3 días tratando de resolver un problema con mi base de datos.&lt;/p>
&lt;p>No me quejo, llevo mucho tiempo trabajando con MySQL como mi base de datos principal sin problema alguno, de hecho el error fue mío por desconocer la codificación adecuada para el proyecto.&lt;/p>
&lt;p>El problema era que cuando hacía una consulta no me mostraba los datos correctamente. Por ejemplo, si le pedía la información relacionada con el artículo AÑ056 , me regresaba los datos del artículo AÑ056 y los del AN056 !!!, no distinguía la diferencia entre uno y otro. ¡No distinguía la diferencia entre la n y la ñ!&lt;/p>
&lt;p>Al principio creí que era un problema del Conector ODBC que uso en Windows, pero después de hacer unas consultas en Google quedó descartado.&lt;/p>
&lt;p>Segundo sospechoso fue la codificación y es que por default MySQL en Windows se instala con latin1, al parecer esta codificación presenta problemas al momento de crear índices con caracteres especiales como la ñ o letras acentuadas.&lt;/p>
&lt;p>Por cierto, sigan mi consejo, es importantísimo &lt;strong>hacer un respaldo de los datos&lt;/strong>, por estar concentrado en los cambios de la codificación por poco y pierdo los datos. Y si es posible, trabajen en una base de datos local de pruebas para no interrumpir el trabajo de la base en producción.&lt;/p>
&lt;p>Después de hacer varios intentos y de recuperar en cada uno de ellos mi base de datos original, el problema se solucionó cambiando la codificación de toda la base de datos y en especial en el campo que me estaba ocasionando problemas.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3976556017/" title="database encode por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2557/3976556017_a477a7dcdb_o.png"
loading="lazy"
alt="database encode"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>La base de datos quedó de la siguiente forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Character set: utf8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Collation: utf8_unicode_ci
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>La codificación del campo fue la que me causó mayor problema (y es el origen del bug), intenté con varias codificaciones hasta que dí con la que me funcionó, por ejemplo si intentaba con un collation utf8&lt;em>general_ci me daba un error de _Duplicate entry&lt;/em>, supongo que era un error por el valor del campo llave duplicado.&lt;/p>
&lt;p>Y con un utf8_unicode_ci , me decía que los datos eran demasiado grandes para el campo.&lt;/p>
&lt;p>Al final quedó de la siguiente manera:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3976549555/" title="Cambiando la codificación del campo por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3491/3976549555_2f464f55db_o.png"
loading="lazy"
alt="Cambiando la codificación del campo"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Character set: utf8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Collation: utf8_spanish_ci
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Eso solucionó el problema y al hacer las consultas me regresó correctamente los registros adecuados. :)&lt;/p>
&lt;p>¡Pasen un buen fin de semana !!!&lt;/p></description></item><item><title>EL bendito winmail.dat</title><link>https://linuxmanr4.com/2009/09/02/el-bendito-winmaildat/</link><pubDate>Wed, 02 Sep 2009 21:44:19 +0000</pubDate><guid>https://linuxmanr4.com/2009/09/02/el-bendito-winmaildat/</guid><description>&lt;p>Esta es una de esas cosas que odio de Microsoft, cree que todo el mundo usa office y todo el mundo tiene Outlook.&lt;/p>
&lt;p>En más de una ocasión he recibido la llamada de &amp;ndash; &amp;ldquo;Me llegó un correo con un adjunto winmail.dat&amp;rdquo;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3882705140/" title="winmail por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2600/3882705140_16e2d44987.jpg"
loading="lazy"
alt="winmail"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Aun siguiendo las indicaciones de este consejo de la página de ayuda &lt;a class="link" href="http://office.microsoft.com/es-es/outlook/HA101530183082.aspx" target="_blank" rel="noopener"
>Los destinatarios reciben un archivo de datos adjuntos denominado winmail.dat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
mi usuario sigue recibiendo este tipo de archivos.&lt;/p>
&lt;p>Hace tiempo que tengo este problema y lo solucionaba con un programa llamado &lt;a class="link" href="http://www.eolsoft.com/freeware/winmail_opener/" target="_blank" rel="noopener"
>Winmail Opener&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Pero hoy rebuscando un poco en Internet me enteré de que existe una extensión para Thunderbird llamada &lt;a class="link" href="https://addons.mozilla.org/en-US/thunderbird/addon/4433" target="_blank" rel="noopener"
>LookOut&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(ingenioso cierto?).&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3881896187/" title="lookout por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2615/3881896187_3ee36b23b1.jpg"
loading="lazy"
alt="lookout"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>La misión de este &lt;em>addon&lt;/em> es simple, desvelar el misterio tras el contenido del archivo &lt;strong>winmail.dat&lt;/strong> ¡Simple!&lt;/p></description></item><item><title>Puppy Linux es la onda</title><link>https://linuxmanr4.com/2009/08/29/puppy-linux-es-la-onda/</link><pubDate>Sat, 29 Aug 2009 15:06:36 +0000</pubDate><guid>https://linuxmanr4.com/2009/08/29/puppy-linux-es-la-onda/</guid><description>&lt;p>Es de todos conocido que la computadora de mi casa tiene sus problemitas de capacidad, el principal es la memoria y una tarjeta de video integrada que no da mucha batalla.&lt;/p>
&lt;p>Anoche arranque mi &lt;em>ipodsote&lt;/em> con &lt;a class="link" href="http://www.puppylinux.org/" target="_blank" rel="noopener"
>Puppy Linux&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y solo puedo decir WOOOW (y no es comercial de infinitum.. aclarando).&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3867853732/" title="Reproduciendo mp3 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2596/3867853732_a6119f104d_o.png"
loading="lazy"
alt="Reproduciendo mp3"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Al principio te sacas un poco de onda, pero conforme encuentras los &lt;em>wizards&lt;/em> para configurar la red y el escritorio todo es mucho más sencillo.&lt;/p>
&lt;p>Es muy rápido y aunque utiliza programas que en mi vida había visto pude navegar, montar mis particiones, escuchar música y hasta ver videos sin problemas.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3867070193/" title="Cambio de los iconos por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3545/3867070193_4867b912a3_o.png"
loading="lazy"
alt="Cambio de los iconos"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>No sé cómo opera, pero vean la cantidad de memoria libre, mi computadora que generalmente se arrastraba ahora muestra todo al más ligero toque del ratón.&lt;/p>
&lt;p>Creo que Puppy se está ganando un lugarcito en mi unidad de CD, ahora solo me falta revisar como guardar las configuraciones. :)&lt;/p>
&lt;p>Definitivamente, Puppy se ha puesto las pilas, no es la primera vez que le doy un vistazo a esta distribución de Linux, pero ahora si la veo perfectamente utilizable.&lt;/p></description></item><item><title>Tercer Congreso Nacional de Software Libre</title><link>https://linuxmanr4.com/2009/08/28/tercer-congreso-nacional-de-software-libre/</link><pubDate>Fri, 28 Aug 2009 16:41:26 +0000</pubDate><guid>https://linuxmanr4.com/2009/08/28/tercer-congreso-nacional-de-software-libre/</guid><description>&lt;p>Este 12 de septiembre con motivo del tercer aniversario del &lt;a class="link" href="http://gulag.org.mx/" target="_blank" rel="noopener"
>GULAG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y con el fin de traer a nuestra región distinguidos ponentes del Software Libre da inicio el Tercer Congreso Nacional de Software Libre.&lt;/p>
&lt;p>Un día donde los grandes gurús nos compartirán sus experiencias, donde se impartirán talleres para poner en práctica programas libres y donde ejercemos nuestra libertad de compartir conocimientos y software.&lt;/p>
&lt;p>Se impartirán una serie de conferencias y talleres relacionados con el mundo del Software Libre.&lt;/p>
&lt;p>&lt;strong>Conferencias&lt;/strong>&lt;/p>
&lt;p>10 a.m.
KDE y México
Guillermo Antonio Amaral Bastidas&lt;/p>
&lt;p>11 a.m.
Seguridad en Entornos Web
Rafael Bucio Velázquez&lt;/p>
&lt;p>12 p.m.
Nubes a través de mi ventana (Cloud Computing)
Luis Germán Ramírez&lt;/p>
&lt;p>&lt;strong>Talleres simultáneos.&lt;/strong>&lt;/p>
&lt;p>2 p.m.
Diseño gráfico con GIMP e Inkscape
Guillermo Valdés&lt;/p>
&lt;p>2 p.m.
Usando librerías gráficas con Bash
Rafael Bucio Velázquez&lt;/p>
&lt;p>2 p.m.
Hardening y Hacking en Linux
Jorge Altamirano Astorga&lt;/p>
&lt;p>&lt;strong>Lugar del evento.&lt;/strong>&lt;/p>
&lt;p>El evento será en la &lt;a class="link" href="http://www.uane.edu.mx/" target="_blank" rel="noopener"
>Universidad Autónoma del Noreste&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
Campus Torréon.
En el auditorio de usos múltiples.
El Eriazo del y Periférico s/n , en Torreón Coah.&lt;/p>
&lt;p>&lt;strong>Costo.&lt;/strong>&lt;/p>
&lt;p>La asistencia al evento es &lt;strong>totalmente libre y gratuita&lt;/strong>, pero sería recomendable registrarse previamente.&lt;/p>
&lt;p>Existen pocos eventos como esté en la Comarca Lagunera y es una buena oportunidad para entrar en contacto con la ideología del Software Libre.&lt;/p></description></item><item><title>Rescatando al soldado IPCop</title><link>https://linuxmanr4.com/2009/08/22/rescatando-al-soldado-ipcop/</link><pubDate>Sat, 22 Aug 2009 16:17:01 +0000</pubDate><guid>https://linuxmanr4.com/2009/08/22/rescatando-al-soldado-ipcop/</guid><description>&lt;p>Ayer si que tuve un día muy ajetreado, muy temprano comenzó con frecuentes desconexiones a internet, llamé a mi proveedor de internet y me dijo que todo estaba normal, fue cuando dije&amp;hellip; Ohhh ohhhhh.&lt;/p>
&lt;p>Y es que un servidor IPCop es un caballito de batalla, no se raja ni da problemas a meeeenos, a menos que tenga problemas con el hardware y eso fue lo que pasó.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3845027423/" title="Aguantó hasta donde pudo por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2437/3845027423_920d4dc893.jpg"
loading="lazy"
alt="Aguantó hasta donde pudo "
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Incluso no le tengo un monitor conectado, como esa computadora es de prender y haz lo tuyo no lo necesitaba, al conectarle un monitor ¡Horror!, me di cuenta de que mi servidor IPCop se estaba reiniciando de manera espontánea.&lt;/p>
&lt;p>No aguantaba ni 5 minutos encendido, por eso iba y venía el internet.&lt;/p>
&lt;p>Intenté detectar cuál era la pieza que provocaba el fallo, pero llegué hasta la motherboard. En un principio creí que era el disco duro de 6 GB, este ha sido el disco duro con el que empecé a instalar IPCop, pero no, sigue tan sano como el primer día :)&lt;/p>
&lt;p>Afortunadamente, tenía otra computadora de la que pude tomar piezas para armar otro servidor. Aproveché para ponerle 512MB en RAM (originalmente tenía 256 MB) , le puse el mismo disco duro y la tarjeta de red 3COM de la computadora que falleció.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3845079755/" title="El nuevo servidor por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3536/3845079755_f203de674a.jpg"
loading="lazy"
alt="El nuevo servidor"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Tenía el pendiente de la tarjeta de red integrada, obvio eran diferentes y pensaba como le iba a hacer para que la reconociera o configurarla, pero al primer arranque funcionó.&lt;/p>
&lt;p>De hecho me admiró como tomó el control nuevamente del Internet. Como si nada hubiera pasado. :)&lt;/p></description></item><item><title>Montar particiones NTFS con Trinity Rescue Kit</title><link>https://linuxmanr4.com/2009/08/19/montar-particiones-ntfs-con-trinity-rescue-kit/</link><pubDate>Wed, 19 Aug 2009 18:55:51 +0000</pubDate><guid>https://linuxmanr4.com/2009/08/19/montar-particiones-ntfs-con-trinity-rescue-kit/</guid><description>&lt;p>Desde hace varios días estuve intentando quitar un virus de la computadora de mi cuñis.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2602/3837988638%5F1bc018e465.jpg"
alt="Virus maldito">&lt;figcaption>
&lt;p>Virus maldito&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nod32 hizo una buena labor quitando la mayoría pero no pudo con un tal BHO.NGN , que se encontraba en un archivo dll en la carpeta c:\windows\system32&lt;/p>
&lt;p>El problema con la eliminación de este archivo es que estaba siendo bloqueado por 3 procesos importantes de Windows (uno de ellos el bendito Explorer). Incluso reiniciando en modo a prueba de fallos se mantenía el archivo amarrado en su lugar.&lt;/p>
&lt;p>Ayer fui armado con mi &lt;a class="link" href="https://trinityhome.org/" target="_blank" rel="noopener"
>Trinity Rescue Kit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, arranque con la unidad de CD e inicie normalmente.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2022/03/20220309%5F094228.webp">
&lt;/figure>
&lt;p>Para montar las particiones del disco duro existe el siguiente comando&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">mountallfs -g
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>el parámetro -g monta en modo lectura/escritura las particiones NTFS.&lt;/p>
&lt;p>A manera de informe después de ejecutar el comando indica en que directorios esta montada cada partición, en mi caso Windows estaba en la carpeta /sda2 , lo demás fue usar comandos básicos de Linux para eliminar los archivos infectados.&lt;/p>
&lt;p>Inicie Windows de manera normal y nuevamente corrí el antivirus, esta vez salió sin problemas.&lt;/p>
&lt;p>Esa no te la sabías virus de porquería :P&lt;/p></description></item><item><title>Google Chrome con soporte para temas</title><link>https://linuxmanr4.com/2009/08/07/google-chrome-con-soporte-para-temas/</link><pubDate>Fri, 07 Aug 2009 17:04:26 +0000</pubDate><guid>https://linuxmanr4.com/2009/08/07/google-chrome-con-soporte-para-temas/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3797901569/" title="Temas en chrome por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2639/3797901569_ff8aa614ea.jpg"
loading="lazy"
alt="Temas en chrome"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Al instalar la ultima actualización de la versión de desarrollo de Google Chrome (3.0.195.6), me doy cuenta de que ya tiene soporte para temas :)&lt;/p>
&lt;p>No es algo muy necesario, aunque si es una opción muy popular, creo que este navegador encontrará un serio repunte cuando anuncio el soporte para &lt;em>addons&lt;/em>.&lt;/p>
&lt;p>Mientras tanto me doy gusto cambiando su apariencia :)&lt;/p></description></item><item><title>Canción del administrador de sistemas</title><link>https://linuxmanr4.com/2009/07/31/dia-del-administrador-de-sistemas/</link><pubDate>Fri, 31 Jul 2009 15:30:27 +0000</pubDate><guid>https://linuxmanr4.com/2009/07/31/dia-del-administrador-de-sistemas/</guid><description>&lt;p>El último viernes del mes de Julio se festeja el &lt;a class="link" href="http://www.sysadminday.com/" target="_blank" rel="noopener"
>día del Administrador de Sistemas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>En este día, esta canción se ha convertido en el himno para aquellos que nos dedicamos a bloquear el por&amp;hellip; perdón a administrar los recursos informáticos :P&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/udhd9fmOdCs"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Creo que alguna vez vi este video subtitulado, pero ya no lo encontré así que aqui esta la traducción:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Hay&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">tipo&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">trabaja&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">otra&lt;/span> &lt;span class="n">sala&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">o&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">otro&lt;/span> &lt;span class="n">piso&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">el&lt;/span> &lt;span class="n">es&lt;/span> &lt;span class="n">ese&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">llamas&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cuando&lt;/span> &lt;span class="n">tu&lt;/span> &lt;span class="n">documento&lt;/span> &lt;span class="n">no&lt;/span> &lt;span class="n">está&lt;/span> &lt;span class="n">más&lt;/span> &lt;span class="n">ahí&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">es&lt;/span> &lt;span class="n">probablemente&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">muchacho&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pero&lt;/span> &lt;span class="n">puede&lt;/span> &lt;span class="n">ser&lt;/span> &lt;span class="n">una&lt;/span> &lt;span class="n">chica&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">o&lt;/span> &lt;span class="n">algo&lt;/span> &lt;span class="n">intermedio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">el&lt;/span> &lt;span class="n">es&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="err">ú&lt;/span>&lt;span class="n">nico&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">la&lt;/span> &lt;span class="n">oficina&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">sabe&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">significa&lt;/span> &lt;span class="err">“&lt;/span>&lt;span class="n">PC&lt;/span> &lt;span class="n">Load&lt;/span> &lt;span class="n">Letter&lt;/span>&lt;span class="err">”&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">El&lt;/span> &lt;span class="n">es&lt;/span> &lt;span class="n">tu&lt;/span> &lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ahora&lt;/span> &lt;span class="n">está&lt;/span> &lt;span class="n">probablemente&lt;/span> &lt;span class="n">leyendo&lt;/span> &lt;span class="n">comics&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y&lt;/span> &lt;span class="n">comienzas&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">temblar&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">miedo&lt;/span> &lt;span class="n">cuando&lt;/span> &lt;span class="n">tienes&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">ver&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">una&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sus&lt;/span> &lt;span class="n">caras&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="s2">&amp;#34;que idiota&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Tienes&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">virus&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">perdiste&lt;/span> &lt;span class="n">tu&lt;/span> &lt;span class="n">password&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">o&lt;/span> &lt;span class="n">solo&lt;/span> &lt;span class="n">no&lt;/span> &lt;span class="n">puedes&lt;/span> &lt;span class="n">imprimir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">en&lt;/span> &lt;span class="n">una&lt;/span> &lt;span class="n">hora&lt;/span> &lt;span class="err">é&lt;/span>&lt;span class="n">l&lt;/span> &lt;span class="n">aparece&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">se&lt;/span> &lt;span class="n">agacha&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">mirar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">el&lt;/span> &lt;span class="n">pelea&lt;/span> &lt;span class="n">para&lt;/span> &lt;span class="n">salvar&lt;/span> &lt;span class="n">tus&lt;/span> &lt;span class="n">archivos&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">puede&lt;/span> &lt;span class="n">estar&lt;/span> &lt;span class="n">ahí&lt;/span> &lt;span class="n">todo&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">día&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pero&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">veces&lt;/span> &lt;span class="n">solo&lt;/span> &lt;span class="n">aprieta&lt;/span> &lt;span class="s2">&amp;#34;caps lock&amp;#34;&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">se&lt;/span> &lt;span class="n">va&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pero&lt;/span> &lt;span class="err">¡&lt;/span>&lt;span class="n">hey&lt;/span>&lt;span class="o">!&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">repente&lt;/span> &lt;span class="n">mi&lt;/span> &lt;span class="n">password&lt;/span> &lt;span class="err">¡&lt;/span>&lt;span class="n">funciona&lt;/span>&lt;span class="o">!&lt;/span> &lt;span class="err">¡&lt;/span>&lt;span class="n">hurra&lt;/span>&lt;span class="o">!&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">¡&lt;/span>&lt;span class="n">Hurra&lt;/span> &lt;span class="n">hurra&lt;/span>&lt;span class="o">!&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">feliz&lt;/span> &lt;span class="n">día&lt;/span> &lt;span class="n">del&lt;/span> &lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistema&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">le&lt;/span> &lt;span class="n">voy&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">comprar&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">regalo&lt;/span> &lt;span class="n">para&lt;/span> &lt;span class="n">decirle&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;tenerte cerca significa que me quedo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">estúpido&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">desinformado&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y&lt;/span> &lt;span class="n">puedo&lt;/span> &lt;span class="n">seguir&lt;/span> &lt;span class="n">abriendo&lt;/span> &lt;span class="n">adjuntos&lt;/span> &lt;span class="o">.&lt;/span>&lt;span class="n">exe&lt;/span> &lt;span class="n">en&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">email&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y&lt;/span> &lt;span class="n">olvidarme&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">nombre&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">mi&lt;/span> &lt;span class="n">madre&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y&lt;/span> &lt;span class="n">seguir&lt;/span> &lt;span class="n">nombrando&lt;/span> &lt;span class="n">archivos&lt;/span> &lt;span class="n">con&lt;/span> &lt;span class="n">espacios&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">ampersands&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">dos&lt;/span> &lt;span class="n">puntos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">¡&lt;/span>&lt;span class="n">ohhh&lt;/span>&lt;span class="o">!&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">te&lt;/span> &lt;span class="n">doy&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">pastel&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">te&lt;/span> &lt;span class="n">doy&lt;/span> &lt;span class="n">un&lt;/span> &lt;span class="n">abrazo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">te&lt;/span> &lt;span class="n">compro&lt;/span> &lt;span class="n">la&lt;/span> &lt;span class="n">taza&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="s2">&amp;#34;el mejor administrador de sistemas del mundo&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">solo&lt;/span> &lt;span class="n">ayúdame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">borra&lt;/span> &lt;span class="n">mis&lt;/span> &lt;span class="s2">&amp;#34;websites recientemente vistos&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">recupera&lt;/span> &lt;span class="n">mis&lt;/span> &lt;span class="n">configuraciones&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">red&lt;/span> &lt;span class="n">así&lt;/span> &lt;span class="n">puedo&lt;/span> &lt;span class="n">encontrar&lt;/span> &lt;span class="n">mi&lt;/span> &lt;span class="n">disco&lt;/span> &lt;span class="n">F&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">uh&lt;/span>&lt;span class="o">...&lt;/span> &lt;span class="n">enchufa&lt;/span> &lt;span class="n">mi&lt;/span> &lt;span class="n">mouse&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Molestalo&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="n">estarás&lt;/span> &lt;span class="n">despedido&lt;/span> &lt;span class="n">para&lt;/span> &lt;span class="n">mañana&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">la&lt;/span> &lt;span class="n">mañana&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">porque&lt;/span> &lt;span class="err">é&lt;/span>&lt;span class="n">l&lt;/span> &lt;span class="n">es&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">tipo&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">sabe&lt;/span> &lt;span class="n">que&lt;/span> &lt;span class="n">estuviste&lt;/span> &lt;span class="n">navegando&lt;/span> &lt;span class="n">paginas&lt;/span> &lt;span class="n">porno&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">entonces&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">no&lt;/span> &lt;span class="n">te&lt;/span> &lt;span class="n">olvides&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">ser&lt;/span> &lt;span class="n">bueno&lt;/span> &lt;span class="n">con&lt;/span> &lt;span class="n">tu&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">administrador&lt;/span> &lt;span class="n">de&lt;/span> &lt;span class="n">sistemasssssssssss&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Por cierto, si alguien quiere mandar uno que otro presente, aquí esta la &lt;a class="link" href="https://web.archive.org/web/20090730203402/http://www.thinkgeek.com/" target="_blank" rel="noopener"
>lista de regalos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
:P&lt;/p></description></item><item><title>URLFilter en IpCop, acceso a usuarios por direccion IP</title><link>https://linuxmanr4.com/2009/07/25/urlfilter-en-ipcop-acceso-a-usuarios-por-direccion-ip/</link><pubDate>Sat, 25 Jul 2009 17:33:10 +0000</pubDate><guid>https://linuxmanr4.com/2009/07/25/urlfilter-en-ipcop-acceso-a-usuarios-por-direccion-ip/</guid><description>&lt;p>Acabo de instalar URLFilter, lamentablemente algunos usuarios se recreaban la pupila en sitios &lt;a class="link" href="http://es.wikipedia.org/wiki/NSFW" target="_blank" rel="noopener"
>NSFW&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, el problema no es que se &amp;ldquo;entretengan&amp;rdquo; con este tipo de sitios, si no que estos lugares en ocasiones instalan mugre y media en las computadoras y claro después se le tiene que invertir un buen de tiempo corriendo antivirus y antispywares.&lt;/p>
&lt;p>La &lt;a class="link" href="https://web.archive.org/web/20131210000745/http://urlfilter.net/faq.html" target="_blank" rel="noopener"
>instalación de URLFilter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
no presenta problemas.&lt;/p>
&lt;p>Pero (siempre hay uno, no es cierto), el detalle es que aplica los bloqueos a todos los usuarios de la red.&lt;/p>
&lt;p>¿Que pasa si quiero dejar una máquina sin bloqueos? Entonces tenemos que recurrir a dar permisos mediante direcciones IP, no es la única solución, pero es muy sencilla de poner en marcha.&lt;/p>
&lt;p>Urlfilter esta basado en &lt;a class="link" href="https://web.archive.org/web/20220809102044/http://squidguard.org/" target="_blank" rel="noopener"
>squidGuard&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
así que la documentación de este proyecto se puede aplicar prácticamente sin problemas en Urlfilter.&lt;/p>
&lt;p>Lo primero es localizar el archivo de configuración de squidGuard en &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IpCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, lo ubiqué en :&lt;/p>
&lt;p>&lt;code>/etc/squidGuard/squidGuard.conf&lt;/code> &lt;a class="link" href="http://www.flickr.com/photos/linuxman/3755610294/" title="Editando el archivo de configuración con nano por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3496/3755610294_219bdb350e.jpg"
loading="lazy"
alt="Editando el archivo de configuración con nano"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Ese es el archivo que tenemos que modificar. Todavía tengo el pendiente de que si hago algún cambio vía web se pierdan mis modificaciones así que tengan eso en mente.&lt;/p>
&lt;p>En la documentación de squidGuard encontré &lt;a class="link" href="https://web.archive.org/web/20220813003050/http://www.squidguard.org/Doc/extended.html" target="_blank" rel="noopener"
>Reglas basadas en una IP de origen&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que me sirvió de guía para hacer mis cambios.&lt;/p>
&lt;p>Lo primer fue definir mi grupo de administradores, así que agregue estas lineas al archivo de configuración:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">src admins {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ip 192.168.0.x/255.255.255.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>donde 192.168.0.x es la IP a la que le voy a dar los permisos.&lt;/p>
&lt;p>Una vez que tengo definidos mi grupo de usuarios administradores, ahora hay que darle los permisos correspondientes agregando unas líneas en la sección acl:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">acl {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> admins {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pass all
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> redirect http://192.168.0.1:81/redirect.cgi?category=%t
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> default { pass custom-allowed !ads !adv !aggressive ...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> redirect http://192.168.0.1:81/redirect.cgi?category=%t
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De esa manera todos tendrían el internet filtrado, menos los que aparezcan en la lista de admins.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3754809859/" title="Acceso denegado... no more porn en el trabajo. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2624/3754809859_ab9496338f_o.jpg"
loading="lazy"
alt="Acceso denegado… no more porn en el trabajo."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Igual se puede refinar mucho más las opciones a los administradores, pero eso será más adelante.&lt;/p></description></item><item><title>Quinto Aniversario de este blog</title><link>https://linuxmanr4.com/2009/07/24/quinto-aniversario-de-este-blog/</link><pubDate>Sat, 25 Jul 2009 00:44:16 +0000</pubDate><guid>https://linuxmanr4.com/2009/07/24/quinto-aniversario-de-este-blog/</guid><description>&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/quinto.png"
loading="lazy"
alt="Quinto Aniversario"
>&lt;/p>
&lt;p>No me había dado cuenta, pero hoy se cumplen 5 años de este espacio.&lt;/p>
&lt;p>Días atras habia planeado escribir alguna especie de resumen pero mis ocupaciones en el trabajo han hecho que me haya olvidado totalmente de la fecha.&lt;/p>
&lt;p>Solo me gustaría comentar a aquellos que han encontrado algo útil en este blog, a los que han dejado su comentario o a los que solamente encuentran entretenida la lectura de las sonseras que escribo ¡Muchas gracias!.&lt;/p></description></item><item><title>Creando un logo para twitter laguna</title><link>https://linuxmanr4.com/2009/07/24/creando-un-logo-para-twitter-laguna/</link><pubDate>Fri, 24 Jul 2009 16:09:17 +0000</pubDate><guid>https://linuxmanr4.com/2009/07/24/creando-un-logo-para-twitter-laguna/</guid><description>&lt;p>Nació un personaje en twitter conocido como @twittlag que más o menos agrupa a los twitterlos laguneros.&lt;/p>
&lt;p>Me di a la tarea de hacer un pequeño avatar para el usuario, tenía más o menos la idea, pero no contaba con la afable crítica de mis compañeros.&lt;/p>
&lt;p>El primer intento:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3751883623/" title="Primera versión por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3456/3751883623_963ab747b1_m.jpg"
loading="lazy"
alt="Primera versión"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Me dijeron que era muy católico&amp;hellip; ok.. es cierto, pero yo no tengo la culpa de que en Torreón tengamos semejante iconote a la vista de todos en el cerro de las Noas.&lt;/p>
&lt;p>En fin, pues me dispuse a hacer un segundo bosquejo &amp;hellip;&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3751883705/" title="Segundo Intento por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2583/3751883705_31b492c3a7_m.jpg"
loading="lazy"
alt="Segundo Intento"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Este diseño les gustó un poco más, pero me dijeron que no incluía a Gómez Palacio o a Lerdo.&lt;/p>
&lt;p>Encontrar cosas que representen a Torreón es más o menos sencillo, está el Cristo, el típico torreón, en un tiempo hasta las pacas del algodón servían para representar a la ciudad pero Gómez y Lerdo son más difíciles.&lt;/p>
&lt;p>Algunos mencionaron la estrella hecha con focos en Gómez y otros el avión de Francisco Sarabia en Lerdo.&lt;/p>
&lt;p>Pero a mi se me ocurrió esta última versión más &amp;ldquo;incluyente&amp;rdquo; :P&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3751883751/" title="La tercera es la vencida ... logo twitter laguna por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2442/3751883751_44b3604b99.jpg"
loading="lazy"
alt="La tercera es la vencida … logo twitter laguna"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Todas las imágenes están hechas con &lt;a class="link" href="http://www.inkscape.org/?lang=es" target="_blank" rel="noopener"
>inkscape&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Norton Internet Security no permite abrir páginas en Explorer o Firefox pero si el MSN</title><link>https://linuxmanr4.com/2009/07/09/norton-internet-security-no-permite-abrir-paginas-en-explorer-o-firefox-pero-si-el-msn/</link><pubDate>Thu, 09 Jul 2009 18:17:18 +0000</pubDate><guid>https://linuxmanr4.com/2009/07/09/norton-internet-security-no-permite-abrir-paginas-en-explorer-o-firefox-pero-si-el-msn/</guid><description>&lt;p>Dos días me tardé en encontrar al culpable pero lo logré &amp;hellip;.&lt;/p>
&lt;p>Todo comenzó hace un par de días, llegó una nueva compañera de trabajo con su flamante HP nuevecita con el infame windows vista home edition premium.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2511/3704209947%5Fc6e0f19e07.jpg"
alt="HP con el infame windows vista">&lt;figcaption>
&lt;p>HP con el infame windows vista&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La idea era darle acceso a la red del trabajo, pero era imposible, aunque estaba conectada a la red no lograba establecer una conexión con mi servidor &lt;a class="link" href="http://ebox-platform.com/" target="_blank" rel="noopener"
>Ebox&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Al revisar la computadora me di cuenta de que tenía DOS antivirus instalados y ejecutándose, el Norton Internet Security (que supongo venía de fábrica) y el &lt;a class="link" href="http://free.avg.com/" target="_blank" rel="noopener"
>AVG Free Edition&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Quité ambos, le di una pasada con el ccleaner y reinstalé el AVG, pero ahora al hacer esto marque el comienzo de mi calvario.&lt;/p>
&lt;p>Inexplicablemente el windows no abría ninguna página, ni usando el Internet Explorer 7 ni con Mozilla Firefox, pero extrañamente si se podía conectar al MSN y al Skype.&lt;/p>
&lt;p>¿Donde estaba el culpable? creí que era el firewall de vista, pero después de desactivarlo se comportaba de la misma manera.&lt;/p>
&lt;p>Tardé dos días persiguiendo al fantasma, búsquedas intensivas en bing no me dieron ningún resultado (pero eso ya lo sabía), así formulé una hipótesis que al parecer fue la correcta.&lt;/p>
&lt;p>Por alguna extraña razón una parte del Norton Internet Security seguía viva en la computadora ¿Donde?, no lo se exactamente, pero ¿Cómo eliminar un programa que ya había desinstalado?.&lt;/p>
&lt;p>Gracias a Google que me dio la ubicación de una herramienta de la misma Symantec llamada &lt;a class="link" href="http://tinyurl.com/l8ndgg" target="_blank" rel="noopener"
>Norton Removal Tool&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un pequeño archivo que literalmente barre con todo rastro de algunos productos de esta compañía.&lt;/p>
&lt;p>El programa me hizo algunas advertencias, capturar un captcha y después de reiniciar, tras unos laaaaargos minutos de suspenso (¿Les tengo que recordar que el arranque de vista es leeeeeeeeeeento? ) ¡Al fin! todo regresó a la normalidad.&lt;/p>
&lt;p>En ocasiones ya he mencionado que Norton (y Symantec) han hecho una industria con los errores de Windows, pero en un afán de &amp;ldquo;proteger&amp;rdquo; este sistema operativo se pierde rapidez en el sistema. En varias ocasiones he visto personas con computadoras que se arrastran después de quitar el Norton han recuperado la agilidad de sus equipos.&lt;/p>
&lt;p>¿Ustedes siguen usando productos de Symantec?&lt;/p></description></item><item><title>Twitter recargado con greasemonkey</title><link>https://linuxmanr4.com/2009/06/08/twitter-recargado-con-greasemonkey/</link><pubDate>Mon, 08 Jun 2009 15:04:52 +0000</pubDate><guid>https://linuxmanr4.com/2009/06/08/twitter-recargado-con-greasemonkey/</guid><description>&lt;p>Una de las razones por las que no he abandonado a Firefox (aunque Chrome constantemente me hace ojitos) es por la cantidad de agregados que lo complementan.&lt;/p>
&lt;p>Uno de ellos es &lt;a class="link" href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank" rel="noopener"
>GreaseMonkey&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que &amp;ldquo;mejora&amp;rdquo; ciertas páginas mediante la ejecución de pequeños códigos en Javascript.&lt;/p>
&lt;p>Específicamente &lt;a class="link" href="http://userscripts.org/scripts/search?q=twitter&amp;amp;x=0&amp;amp;y=0" target="_blank" rel="noopener"
>para Twitter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
existen muchos scripts disponibles.&lt;/p>
&lt;p>En lo personal me gusta &lt;a class="link" href="http://userscripts.org/scripts/show/40617" target="_blank" rel="noopener"
>@troynt&amp;rsquo;s Twitter Script&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que añade muchas y buenas mejoras.&lt;/p>
&lt;p>Muestra de manera organizada las respuestas a los twitts:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3607783068/" title="Respuestas y botón de retwit por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3600/3607783068_45ba1390c8_o.png"
loading="lazy"
alt="Respuestas y botón de retwit"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>y muestra el directamente en la pagina los videos publicados:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3607783804/" title="Previsualizacion de videos de youtube integrado por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3330/3607783804_b818e16a18.jpg"
loading="lazy"
alt="Previsualizacion de videos de youtube integrado"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Entre otras muchas cosas.&lt;/p>
&lt;p>Creo que no me esta funcionando la función de auto refresh pero eso ahorita lo corrijo.&lt;/p>
&lt;p>Actualización.&lt;/p>
&lt;p>Instalé el &lt;a class="link" href="http://userscripts.org/scripts/show/34009" target="_blank" rel="noopener"
>Twitter Auto Refresh&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, ahora se actualiza la página cada 60 segundos.&lt;/p></description></item><item><title>Problemas para actualizar JDownloader</title><link>https://linuxmanr4.com/2009/06/05/problemas-para-actualizar-jdownloader/</link><pubDate>Fri, 05 Jun 2009 20:40:58 +0000</pubDate><guid>https://linuxmanr4.com/2009/06/05/problemas-para-actualizar-jdownloader/</guid><description>&lt;p>No me pasó la primera vez que lo usé, pero durante la instalación en la computadora de mi pingüinita batallé horrores para actualizarlo.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3251/3598216725%5Fdeb19eb147.jpg"
alt="jdownloader actualización">&lt;figcaption>
&lt;p>jdownloader actualización&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Recién instalado me decía que existían 20 actualizaciones disponibles, según esto terminaba para luego reiniciar e indicarme que había 11 actualizaciones más y de ahí no salí. :S&lt;/p>
&lt;p>Luego se me ocurrió algo, no estoy seguro si es la solución definitiva, pero ya me funcionó, así que se los dejo como tip a ver si a ustedes también les funciona.&lt;/p>
&lt;p>El chiste es cerrar JDownloader, y esto es bien importante, para estar seguros busquen todos los procesos javaw ( o java ) en el Administrador de tareas y finalicen su ejecución.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3650/3599040980%5F2ba92a6507%5Fm.jpg"
alt="Finalizar el proceso Javaw">&lt;figcaption>
&lt;p>Finalizar el proceso Javaw&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Luego abran una terminal de Windows, vayan al directorio donde tienen instalado JDownloader y ejecuten el actualizador de esta manera.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">java -jar jdupdate.jar
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y déjenlo que haga su trabajo, si todo salio bien, después de un rato tendrán el programa debidamente actualizado.&lt;/p></description></item><item><title>Ubuntu con 4 GB en RAM</title><link>https://linuxmanr4.com/2009/06/03/ubuntu-con-4-gb-en-ram/</link><pubDate>Wed, 03 Jun 2009 20:34:29 +0000</pubDate><guid>https://linuxmanr4.com/2009/06/03/ubuntu-con-4-gb-en-ram/</guid><description>&lt;p>Tuve la oportunidad de agregarle otros 2 GB a mi computadora del trabajo.&lt;/p>
&lt;p>En Windows XP no me extrañó que tuviera problemas para que me reconociera esa cantidad de memoria. Un amigo en Twitter me recomendó una página, pero al investigar un poco los comentarios en varios sitios, decidí dejarlo como estaba, luego salé más caro el caldo que las albóndigas.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/consejotwitter.png"
alt="Twitter si sirve de algo. :)">&lt;figcaption>
&lt;p>Twitter si sirve de algo. :)&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que sí me tomó de sorpresa fue que mi flamante Ubuntu 9.04 Jaunty Jackalope ¡Tampoco me los reconocía!&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3329/3592636723%5F9fdd652b03.jpg"
alt="No me reconocía toda la memoria instalada">&lt;figcaption>
&lt;p>No me reconocía toda la memoria instalada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En lugar de los 4 GB instalados solo me mostraba 3.2 GB y eso calienta.&lt;/p>
&lt;p>Después de un chapuzón en Google di con este consejo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo sudo apt-get install linux-headers-server linux-image-server linux-server
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Mencionaban algunos problemas con el driver de NVIDIA, pero yo no he tenido ninguno, funcionó bien y a la primera.&lt;/p>
&lt;p>Después de instalar el nuevo kernel y reiniciar la computadora, este es el resultado.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3562/3592637513%5Fb364b90f53.jpg"
alt="Ubuntu con el kernel para servidores">&lt;figcaption>
&lt;p>Ubuntu con el kernel para servidores&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Después de iniciar los programas que uso frecuentemente en Ubuntu, la gráfica de uso de memoria es prácticamente una &lt;em>línea mortal&lt;/em> :)&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3636/3593444824%5Fb5ee92d6f0.jpg"
alt="Mostrando el uso de recursos">&lt;figcaption>
&lt;p>Mostrando el uso de recursos&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Gantz</title><link>https://linuxmanr4.com/2009/05/25/gantz/</link><pubDate>Tue, 26 May 2009 00:57:07 +0000</pubDate><guid>https://linuxmanr4.com/2009/05/25/gantz/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3565204814/" title="Gantz Volumen 1 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm3.static.flickr.com/2474/3565204814_f328079c2c.jpg"
loading="lazy"
alt="Gantz Volumen 1"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Hace ya un buen tiempo nuestra amiga Ake me presto en una ocasión el primer volumen de &lt;a class="link" href="http://es.wikipedia.org/wiki/Gantz" target="_blank" rel="noopener"
>Gantz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Mi primera reacción fue un poco adversa, el primer volumen esta envuelto de un misterio asfixiante, nadie sabe nada, pero eso mismo hace que busques saber más.&lt;/p>
&lt;p>La historia claramente esta enfocada a un publico adulto, tiene una fuerte carga violenta y erótica, pero a la vez llena de valores que unen a individuos muy dispares ante una situación inminente de matar o morir.&lt;/p>
&lt;p>Al terminar el primer volumen quise saber más de los personajes, entonces me di cuenta de que fanático (un amplio conocido por todos) tiene a su disposición &lt;a class="link" href="https://web.archive.org/web/20090131042425/http://sdd-fanatico.blogspot.com/2009/01/gantz.html" target="_blank" rel="noopener"
>los 26 capítulos del anime de Gantz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/SJ5ICtGn6u8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Sin embargo el final de este anime no deja satisfecho a nadie.&lt;/p>
&lt;p>Por eso y gracias a una recomendación de Ake, continuo la historia en MoarManga de &lt;a class="link" href="https://web.archive.org/web/20081208102417/http://moarmanga.com/serie/gantz.html" target="_blank" rel="noopener"
>los volúmenes posteriores al anime&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Gantz es como las películas de Tarantino, a algunos les gusta a otros les desagrada, pero vean unos capítulos solo por ver que pasa.&lt;/p></description></item><item><title>Chrome sin publicidad</title><link>https://linuxmanr4.com/2009/05/22/chrome-sin-publicidad/</link><pubDate>Fri, 22 May 2009 22:33:24 +0000</pubDate><guid>https://linuxmanr4.com/2009/05/22/chrome-sin-publicidad/</guid><description>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3334/3554552449%5F2d25ffefef.jpg"
alt="Sin publicidad usando Chrome">&lt;figcaption>
&lt;p>Sin publicidad usando Chrome&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Chrome es un navegador excelente, lamentablemente en Firefox me he acostumbrado a ver las páginas sin publicidad.&lt;/p>
&lt;p>A lo mejor en un futuro cercano se permitirá el desarrollo de complementos pero mientras esto ocurre estoy haciendo pruebas con &lt;a class="link" href="http://www.privoxy.org/" target="_blank" rel="noopener"
>Privoxy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Privoxy es un web proxy con capacidad de filtrado que remueve entre otras cosas la publicidad que satura el internet.&lt;/p>
&lt;p>Una vez instalado, solo hay que decirle a Chrome que use el servidor proxy 127.0.0.1 con el puerto 8118.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3388/3554572539%5F22d5d2af64.jpg"
alt="Configurando Privoxy en Chrome">&lt;figcaption>
&lt;p>Configurando Privoxy en Chrome&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Si lo hicieron correctamente, al visitar el siguiente URL&lt;/p>
&lt;p>&lt;a class="link" href="http://config.privoxy.org/" target="_blank" rel="noopener"
>http://config.privoxy.org/&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>podrán ver el aviso de que todo esta ok.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2440/3554577119%5F033b91d074.jpg"
alt="Privoxy funcionando">&lt;figcaption>
&lt;p>Privoxy funcionando&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Visite Jerez , o como conseguir fotos fácilmente en Flickr</title><link>https://linuxmanr4.com/2009/05/18/visite-jerez/</link><pubDate>Mon, 18 May 2009 16:56:18 +0000</pubDate><guid>https://linuxmanr4.com/2009/05/18/visite-jerez/</guid><description>&lt;p>De pura casualidad di con el sitio &lt;a class="link" href="https://web.archive.org/web/20130902044103/http://www.visitejerez.com/" target="_blank" rel="noopener"
>www.visitejerez.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, estaba ojeando su material cuando me dije&amp;hellip;¡Ah caray! esas imágenes se parecen a las fotos de mi último viaje a Jerez.&lt;/p>
&lt;p>¿Y que creen?, pues que si eran :)&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2310/3542354083%5Fb54fccd64f%5Fo.jpg"
alt="Visite Jerez">&lt;figcaption>
&lt;p>Visite Jerez&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3359/3211095260%5F4f08811779%5Fm.jpg"
alt="Fuente en el Jardín">&lt;figcaption>
&lt;p>Fuente en el Jardín&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3441/3211095954%5F418739e4be%5Fm.jpg"
alt="Portales Inguanzo">&lt;figcaption>
&lt;p>Portales Inguanzo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Las fotografías las usaron en la sección Enamorate de Jerez, lo malo es que hábilmente recortaron las imágenes para que no apareciera la marca de agua que puse en ellas, bueno al menos no lo hicieron en todas.&lt;/p>
&lt;p>No me molesta que usen mis imágenes, no soy un fotógrafo profesional, pero mínimo que me den el crédito correspondiente.&lt;/p>
&lt;p>Voy a contactar al responsable del sitio a ver si podemos llegar a un buen acuerdo.&lt;/p></description></item><item><title>Flisol 2009</title><link>https://linuxmanr4.com/2009/04/27/flisol-2009/</link><pubDate>Mon, 27 Apr 2009 17:32:36 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/27/flisol-2009/</guid><description>&lt;p>Lamentablemente no pude llegar antes al FLISOL (recomendación no lleven esposas no geeks a estos eventos), pero pude convivir con el grupo.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3480506114/" title="La banda :P por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3640/3480506114_8992135966.jpg"
loading="lazy"
alt="La banda :P"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Me di la oportunidad de darle un vistazo a KDE 4, se ve bien, pero me sigue gustando más Gnome.&lt;/p>
&lt;p>Muchas instalaciones, mucha gente, buenas las conferencias, todo estuvo excelente !!!!!&lt;/p>
&lt;p>Este año hubo bastantes reseñas sobre el evento.&lt;/p>
&lt;p>Identidad Geek en el FLISOL.&lt;/p>
&lt;p>Flisol en el GULAG.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.elsiglodetorreon.com.mx/noticia/429721.realizan-festival-de-software-libre.html" target="_blank" rel="noopener"
>Realizan festival de software libre (nota en El siglo de Torreón)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Sin considerar fotos y comentarios en Flickr y en facebook.&lt;/p></description></item><item><title>Screenshot Ubuntu Jaunty Jackalope</title><link>https://linuxmanr4.com/2009/04/24/screenshot-ubuntu-jaunty-jackalope/</link><pubDate>Fri, 24 Apr 2009 22:27:12 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/24/screenshot-ubuntu-jaunty-jackalope/</guid><description>&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3472075696/" title="Nueva versión de Ubuntu por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3612/3472075696_16a99d6502.jpg"
loading="lazy"
alt="Nueva versión de Ubuntu"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Efectivamente, la velocidad de arranque de la nueva versión de ubuntu es espectacular, en 15 segundos aprox. ya esta lista la ventana en la que me esta pidiendo mi nombre de usuario.&lt;/p>
&lt;p>Me hizo cosas extrañas, incluso se me reinicio una vez (espero que no sea aquel bug de video), y otra vez me aparecio aque error en el que no podía accesar a las carpetas compartidas de mi entorno de red.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3471284183/" title="bug al explorar carpetas de red. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3326/3471284183_01ab9992e0.jpg"
loading="lazy"
alt="bug al explorar carpetas de red."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Al parecer encontré una solución a esto, solo espero que me lo confirme la comunidad de los foros de Ubuntu.&lt;/p></description></item><item><title>Disponible Ubuntu 9.04 Jaunty Jackalope</title><link>https://linuxmanr4.com/2009/04/23/disponible-ubuntu-904-jaunty-jackalope/</link><pubDate>Thu, 23 Apr 2009 14:31:00 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/23/disponible-ubuntu-904-jaunty-jackalope/</guid><description>&lt;p>Me encanta el olor de un iso quemado por la mañana&amp;hellip;.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3468576042/" title="Ubuntu904 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3542/3468576042_25ba9b3616_o.jpg"
loading="lazy"
alt="Ubuntu904"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Como siempre recomiendo su descarga mediante Torrent para no saturar los servidores.&lt;/p>
&lt;p>&lt;a class="link" href="http://releases.ubuntu.com/9.04/ubuntu-9.04-desktop-i386.iso.torrent" target="_blank" rel="noopener"
>http://releases.ubuntu.com/9.04/ubuntu-9.04-desktop-i386.iso.torrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Más opciones de descarga aquí.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.ubuntu.com/products/whatisubuntu/904features/" target="_blank" rel="noopener"
>Más información sobre esta nueva versión de Ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Estoy ansioso por probar &lt;a class="link" href="http://es.wikipedia.org/wiki/Ext4" target="_blank" rel="noopener"
>ext4&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;strong>Actualización.&lt;/strong>&lt;/p>
&lt;p>Ubuntu listo !!!&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3468843547/" title="Ubuntu instalado por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3547/3468843547_4841974979.jpg"
loading="lazy"
alt="Ubuntu instalado"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>¡Es cierto!, ¡el arranque es endemoniadamente rápido !!!! :P&lt;/p></description></item><item><title>MySQL Tuner, Un asesor en el rendimiento de servidores MySQL</title><link>https://linuxmanr4.com/2009/04/18/mysql-tuner-un-asesor-en-el-rendimiento-de-servidores-mysql/</link><pubDate>Sat, 18 Apr 2009 15:21:12 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/18/mysql-tuner-un-asesor-en-el-rendimiento-de-servidores-mysql/</guid><description>&lt;p>Ayer me puse a moverle un poco a &lt;a class="link" href="https://github.com/major/MySQLTuner-perl" target="_blank" rel="noopener"
>MySQL Tuner&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, este pequeño script hecho en Perl revisa la configuración de tu servidor MySQL para mejorar el rendimiento y la estabilidad.&lt;/p>
&lt;p>Para poder ejecutarlo es necesario tener instalado Perl (algo que es muy común) y el programa mysql-admin que se instala fácilmente con un:&lt;/p>
&lt;p>&lt;code>sudo apt-get install mysql-client-5.0&lt;/code> &lt;a class="link" href="http://www.flickr.com/photos/linuxman/3452143021/" title="MySQL Tuner: Parametros del script por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3334/3452143021_50082c3e94.jpg"
loading="lazy"
alt="MySQL Tuner: Parametros del script"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Lo que sigue es ejecutar el script, como si servidor mysql esta en otra computadora hay que agregar algunos parámetros, como la ubicación y cantidades de memoria disponible.&lt;/p>
&lt;p>&lt;code>./mysqltuner.pl --host ip_del_servidor_mysql --forcemem 512 --forceswap 768&lt;/code>&lt;/p>
&lt;p>Rápidamente hace un análisis y emite sus recomendaciones.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2009/04/18/mysql-tuner-un-asesor-en-el-rendimiento-de-servidores-mysql/viendo-las-recomendaciones-de-mysql-tuner/" >&lt;img src="https://linuxmanr4.com/wp-content/uploads/2009/04/viendo-las-recomendaciones-de-mysql-tuner.jpg"
loading="lazy"
alt="Revisando las recomendaciones de MySQL Tuner"
>&lt;/a>
&lt;/p>
&lt;p>Ya hice varios ajustes siguiendo sus recomendaciones, básicamente aumentando algunos valores por *default*. Ahorita estoy revisando el porque mis aplicaciones no cierran correctamente su conexión a la base de datos.&lt;/p></description></item><item><title>¿Cómo buscar campos duplicados en Mysql?</title><link>https://linuxmanr4.com/2009/04/14/buscar-duplicados-en-mysql/</link><pubDate>Tue, 14 Apr 2009 16:36:12 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/14/buscar-duplicados-en-mysql/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/sql.png"
alt="sql para encontrar duplicados - efecto fotocopia">&lt;figcaption>
&lt;p>sql para encontrar duplicados - efecto fotocopia&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Se me ofreció buscar campos duplicados en una base de datos &lt;a class="link" href="https://linuxmanr4.com/tags/mysql/" >MySQL&lt;/a>
. Claro que hacerlo a mano es muy laborioso así que con una pequeña consulta se resuelve el problema.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">nombre_campo&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">count&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">nombre_tabla&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">GROUP&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">BY&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">nombre_campo&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">HAVING&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">count&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/07/count.png"
alt="count sql">&lt;figcaption>
&lt;p>count sql&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que se pueden agregar más campos en la parte de &lt;strong>SELECT&lt;/strong>. Al final el campo &lt;a class="link" href="https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html" target="_blank" rel="noopener"
>Count&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
nos regresa el número de veces que se repite el campo.&lt;/p></description></item><item><title>El colmo con Bancanet</title><link>https://linuxmanr4.com/2009/04/14/el-colmo-con-bancanet/</link><pubDate>Tue, 14 Apr 2009 15:28:36 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/14/el-colmo-con-bancanet/</guid><description>&lt;p>En varias ocasiones he demostrado mi inconformidad por el sitio de Banca electrónica de Banamex, sobre todo porque exige el uso de Internet Explorer.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3442021758/" title="Bancanet de Banamex por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3556/3442021758_53fe869199_m.jpg"
loading="lazy"
alt="Bancanet de Banamex"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>También tiene un diseño fataaaaal, me ha tocado auxiliar a mis usuarios con los detalles de esta aplicación y realmente esta muy mal. Para colmo de males hacen cambios sin avisar.&lt;/p>
&lt;p>Ayer un amigo me aviso que simplemente no podía hacer operaciones porque no le aparecía el cuadrito donde tecleaba la clave dinámica. Y efectivamente, hicieron un cambio y donde supuestamente aparecía ya no lo hacía más.&lt;/p>
&lt;p>Tuvimos que hablar al soporte técnico, y nos dieron la solución inmediatamente (al parecer ya es un bug común y no era el primero en hablar). Algún simpático hizo que el cuadrito donde se teclea la clave dinámica apareciera en una ventana emergente (pop-up).&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3442020890/" title="Desactivar el bloqueador de elementos emergentes. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3596/3442020890_b7cb8a2bb7_o.png"
loading="lazy"
alt="Desactivar el bloqueador de elementos emergentes."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>No se si el bloqueador de elementos emergentes esta activado por default en IE 7, pero para que funcione Bancanet tuve que desactivarlo Menú &lt;em>Herramientas - Bloqueador de elementos emergentes - Desactivar&lt;/em>.&lt;/p>
&lt;p>Para colmo ¿Tienen ideas de cuantas barras de herramientas de Explorer tienen bloqueador de ventanas emergentes?, para no batallar también desinstalé la barra de Google.&lt;/p>
&lt;p>Uno puede suponer que un banco debe de contar con los recursos como para generar una aplicación web coherente y funcional, pero no es el caso con Banamex.&lt;/p></description></item><item><title>Los Jacales en Peñon Blanco Durango</title><link>https://linuxmanr4.com/2009/04/13/los-jacales-en-penon-blanco-durango/</link><pubDate>Mon, 13 Apr 2009 16:31:46 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/13/los-jacales-en-penon-blanco-durango/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2009/04/penon-blanco.jpg" alt="Featured image of post Los Jacales en Peñon Blanco Durango" />&lt;p>Este fin de semana me fui de colado con mi familia política a gozar de la naturaleza en un lugar de lo más escondido en la sierra de Durango.&lt;/p>
&lt;p>En algún momento después de pasar por el poblado de Peñón Blanco agarramos un camino de terracería rumbo a un ejido llamado Los Jacales.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3338/3437813863%5F7dea16cbf4.jpg"
alt="Peñon Blanco">&lt;figcaption>
&lt;p>Peñon Blanco&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y de pronto, ahí en medio de la nada y sin más publicidad que un anuncio sencillo con una flecha que decía Balnearios, llegamos a un ojo de agua termal que salía directamente de la piedra del cerro.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Wk_OCcxjmNU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Inteligentemente distribuidas estaban 2 albercas y un chapoteadero que se alimentaban directamente del agua termal.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3542/3437813313%5Fc2470c2820.jpg"
alt="Mas Albercas">&lt;figcaption>
&lt;p>Mas Albercas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Y algo que me pareció extraordinario, ni en el Puente de Ojuela, o en La Concha, o en Cuatro Ciénegas había un Hostal como el que estaba en este pequeño lugar.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3626/3437812729%5Fc2c9176184.jpg"
alt="El Hostal">&lt;figcaption>
&lt;p>El Hostal&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hecho con toda la mano, bien orientado para ver el amanecer, con camas, baños, sillas, mesas y cocina. Lo curioso es que aunque cuenta con un boiler ¡No lo necesita! agarra el agua directamente del pozo de agua termal, lo vacía en una cisterna y ¡zas! agua caliente para todos :P&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3635/3437814209%5Fff72f89d0c.jpg"
alt="El amanecer de Peñon Blanco">&lt;figcaption>
&lt;p>El amanecer de Peñon Blanco&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El agua invita a no salir en todo el día, de no ser por las quemadas solares no lo hubieramos hecho :), paseamos por los alrededores hasta que llenamos de naturaleza , acampamos y pasamos en este maravilloso lugar toda la noche.&lt;/p>
&lt;p>Una recomendación muy importante, no dejen nada tirado en el suelo, las casas de campaña siempre bien cerradas y en la noche es importante contar con una lámpara para ver por donde se pisa. Es el campo la vida esta en todo su apogeo, durante la noche nos encontramos con tres alacranes (mascota oficial del estado de Durango), nos “arrulló” el canto de un sapo :) y en el día contamos con las constantes visitas de un pájaro (lamentablemente no se su nombre) de color rojo intenso :P.&lt;/p>
&lt;p>&lt;strong>Actualización&lt;/strong> Vi un artículo en la revista Nomádica en la que aparece un ave muy similar a la que ví y platicando con el Dr. &lt;a class="link" href="https://plus.google.com/104686764269323402805/about" target="_blank" rel="noopener"
>Francisco Valdés Perezgasga&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
me dio el nombre del ave, que al parecer es un &lt;strong>Capiturrín&lt;/strong> un papamoscas, el nombre científico es &lt;em>Pyrocephalus rubinus&lt;/em> que quiere decir Pájaro rojo con cabeza de fuego. La foto es de su autoría y está disponible en su cuenta de Flickr.&lt;/p>
&lt;figure>&lt;img src="http://farm1.static.flickr.com/55/108912030%5F8d0d47ae3e.jpg"
alt="Capiturrín">&lt;figcaption>
&lt;p>Capiturrín&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3652/3437813569%5F172fa13ba0.jpg"
alt="Información del sitio turistico">&lt;figcaption>
&lt;p>Información del sitio turistico&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="ubicación">Ubicación
&lt;/h2>&lt;p>Las coordenadas GPS son: 24.948320,-104.149044 muy cerca del poblado &lt;strong>San Antonio de los Jacales.&lt;/strong>&lt;/p>
&lt;p>Hace poco tuvimos la oportunidad de ir a la Concha con el matrimonio Toro. El lugar sigue siendo espectacular, pero a pesar de que hay un letrero que prohíbe meter cerveza vimos todo lo contrario. Jóvenes con cagüama y cigarro en mano , lamentable el hecho de ver colillas flotando en el agua :(&lt;/p>
&lt;p>Pero este lugar es prácticamente desconocido y sus visitantes son más conscientes, todo mundo recogiendo su basura para conservar lo mejor posible este hermoso paraje.&lt;/p>
&lt;p>La visita resulta muy económica, 25 pesos piocha por día y si quiere dormir en el Hostal son 50 pesitos más, eso si mujeres de un lado y hombres de otro aunque existe una recamara para familias disponible por el mismo precio.&lt;/p>
&lt;p>Yo ya tuve mi dosis de sol y de naturaleza para toda la década :P, si tienen ganas de aventura no olviden llegar a este pequeño oasis en el desierto.&lt;/p></description></item><item><title>Museo General Francisco Villa</title><link>https://linuxmanr4.com/2009/04/08/museo-general-francisco-villa/</link><pubDate>Wed, 08 Apr 2009 17:13:33 +0000</pubDate><guid>https://linuxmanr4.com/2009/04/08/museo-general-francisco-villa/</guid><description>&lt;p>Ayer mi pingüinita y yo nos fuimos al nuevo Museo de la Revolución, ese que esta atras de Soriana Independencia.&lt;/p>
&lt;p>No sé cómo explicarlo, la casa que funciona como museo está perfectamente restaurada, las exposiciones bien montadas, pantallas táctiles por todos lados, proyectores, iluminación impecable, vamos tiene hasta un sistema contra incendios muy moderno, pero no se, como que esta muy &amp;ldquo;fancy&amp;rdquo;, me decepcionó un poco la prohibición de tomar fotos de cualquier tipo (incluyendo celulares) dentro del museo.&lt;/p>
&lt;p>Gracias a un video de El siglo de Torreón me enteré de que se acababa de abrir un nuevo museo en honor al General Francisco Villa.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3423628853/" title="Museo General Francisco Villa por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3577/3423628853_7798fc607e.jpg"
loading="lazy"
alt="Museo General Francisco Villa"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>El museo está ubicado por la Donato Guerra No. 159 norte, muy cerca de la Alameda Zaragoza y déjenme decirles que que difereeeencia, este museo si está ambientado con muebles de la época, objetos revolucionarios y fotos que jamás había visto.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424434270/" title="Fotografias. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3660/3424434270_602d681287.jpg"
loading="lazy"
alt="Fotografias."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>El señor (se me olvidó pedirle su nombre) comparte la afición por la vida de Villa, aunque esta claro que me la gana pero por mucho y platicar sobre mi general en ese lugar es una experiencia muy agradable, con total libertad para tomar fotografías.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424481756/" title="Platicando sobre mi General VIlla por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3397/3424481756_8734091257.jpg"
loading="lazy"
alt="Platicando sobre mi General VIlla"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Pasamos por la sala, la cocina y los demás cuartos de la casa donde nos iban explicando cada una de las peculiaridades de cada habitación, incluso hasta me presto un sombrero y unas cananas para tomarme una foto :P&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424435092/" title="Patio central por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3227/3424435092_8afdae9183.jpg"
loading="lazy"
alt="Patio central"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424434714/" title="Recamara por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3650/3424434714_7d14261a90_m.jpg"
loading="lazy"
alt="Recamara"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424434490/" title="Villa super star. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3389/3424434490_2d247b8a59_m.jpg"
loading="lazy"
alt="Villa super star."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3424434106/" title="Esta foto de villa jamas la habia visto. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3562/3424434106_b433d01dc6_m.jpg"
loading="lazy"
alt="Esta foto de villa jamas la habia visto."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Si tienen oportunidad, no duden en visitar este museo, no se van a arrepentir, la entrada es gratuita y el horario es de martes a domingo de 4:00 p.m a 8:00 p.m.&lt;/p></description></item><item><title>Buscar la disponibilidad de dominios sin que te los ganen</title><link>https://linuxmanr4.com/2009/03/25/buscar-la-disponibilidad-de-dominios-sin-que-te-los-ganen/</link><pubDate>Wed, 25 Mar 2009 23:56:34 +0000</pubDate><guid>https://linuxmanr4.com/2009/03/25/buscar-la-disponibilidad-de-dominios-sin-que-te-los-ganen/</guid><description>&lt;p>Estoy muy molesto, ya van un par de veces que me &amp;ldquo;ganan&amp;rdquo; un dominio al revisar su disponibilidad en páginas web que ofrecen este servicio.&lt;/p>
&lt;p>Revisas que si está disponible y cuando regresas para comprarlo te llevas la desagradable sorpresa de que alguien más ya lo tomó. Y es que algunas de estas páginas lo registran por ti para luego vendértelo claro que mucho más caro.&lt;/p>
&lt;p>Por el momento estoy haciendo mis búsquedas con el comando whois de Linux&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">whois dominio.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3626/3386402198%5F5e1b4c151c.jpg"
alt="whois">&lt;figcaption>
&lt;p>whois&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>De esa manera reviso la disponibilidad del dominio, pero en estos momentos estoy demasiado paranoico.&lt;/p>
&lt;p>¿Ya les ha pasado esto? ¿Saben de una forma segura para verificar la disponibilidad de dominios sin que te los ganen?&lt;/p></description></item><item><title>Cultura y software libre - Jornadas TIC</title><link>https://linuxmanr4.com/2009/03/20/cultura-y-software-libre-jornadas-tic/</link><pubDate>Fri, 20 Mar 2009 16:51:32 +0000</pubDate><guid>https://linuxmanr4.com/2009/03/20/cultura-y-software-libre-jornadas-tic/</guid><description>&lt;p>Ayer me dieron la oportunidad de dar una plática sobre Cultura y Software Libre en las Jornadas TIC, fueron aproximadamente dos horas entre una presentación, pero lo mejor fue la discusión que se dio al ir profundizando en el tema.&lt;/p>
&lt;p>Dudas, muchos comentarios, a algunos de los asistentes siento que los apabulle un poco y es que todavía estan en la era &lt;em>Pro-Microsoft&lt;/em> y descubrir todo un universo alternativo puede ser un poco perturbador.&lt;/p>
&lt;p>Tuve la agradable sorpresa de encontrarme con un profesor de matemáticas de cuando estaba en la secundaria&amp;hellip;. (auuuuuullén lobos :P )&lt;/p>
&lt;p>&lt;img src="http://lh4.ggpht.com/_cj3Kte_OUFI/ScO0ve3jP2I/AAAAAAAAE3M/3jx2JiRJ4VU/s400/jornadas%20tic%20009.jpg"
loading="lazy"
>De Jornadas TIC&lt;/p>
&lt;p>Contestar a todas las inquietudes en dos tristes horas es imposible, por eso hago este articulo para intentar resolver algunas, creo que debí apuntarlas pero aquí están algunas de las que recuerdo:&lt;/p>
&lt;h2 id="descargar-ubuntu">&lt;strong>Descargar Ubuntu.&lt;/strong>
&lt;/h2>&lt;p>Algunos mencionaron que tenían dificultades para descargar Ubuntu, yo considero que la mejor forma es utilizando &lt;a class="link" href="http://es.wikipedia.org/wiki/BitTorrent_%28programa%29" target="_blank" rel="noopener"
>Bittorrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Pueden descargar &lt;a class="link" href="http://www.utorrent.com/" target="_blank" rel="noopener"
>microTorrent&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que es un pequeño programa para bajar archivos torrent para windows.&lt;/p>
&lt;p>Una vez que lo instalan, lo que sigue es bajar el archivo .torrent de la distribución que desean para que comience la descarga.&lt;/p>
&lt;h3 id="torrent-para-ubuntu-810">Torrent para Ubuntu 8.10
&lt;/h3>&lt;p>Una vez que se tiene el archivo, con extensión .iso lo que sigue es quemar la imagen del cd usando Nero o cualquier otro programa de quemado de CDs.&lt;/p>
&lt;h2 id="edubuntu">&lt;strong>Edubuntu.&lt;/strong>
&lt;/h2>&lt;p>Mencioné que existe una versión de Ubuntu especializada en educación. Al parecer las cosas han cambiado un poco desde la última vez que revisé el proyecto, ahora hay que instalar primero ubuntu y luego bajar un segundo cd con las aplicaciones.&lt;/p>
&lt;p>Lo pueden descargar con bittorrent usando este archivo.&lt;/p>
&lt;p>Una breve descripción de &lt;a class="link" href="https://web.archive.org/web/20211004015341/http://www.edubuntu.com/" target="_blank" rel="noopener"
>Edubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
la pueden encontrar aquí y aquí.&lt;/p>
&lt;h2 id="programas-libres">&lt;strong>Programas Libres.&lt;/strong>
&lt;/h2>&lt;p>Una excelente guía de aplicaciones libres que incluye un listado por categorías es &lt;a class="link" href="http://web.archive.org/web/20140102105108/http://freealts.com/" target="_blank" rel="noopener"
>Alternativas Libres&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Es un buen sitio para comenzar.&lt;/p>
&lt;h2 id="stellarium-y-openofficeorg">&lt;strong>Stellarium y OpenOffice.org&lt;/strong>
&lt;/h2>&lt;p>Como programa educativo les mostré &lt;a class="link" href="http://www.stellarium.org/es/" target="_blank" rel="noopener"
>Stellarium&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, les recuerdo que este programa está disponible para Windows, Linux y Mac.&lt;/p>
&lt;p>Y como alternativa a Office 2007, &lt;a class="link" href="http://es.openoffice.org/index.html" target="_blank" rel="noopener"
>OpenOffice.org&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
muchas escuelas se ahorrarían una cantidad muy importante en licencias nada más con utilizar esta suite de aplicaciones. Y créanme no pasa nada, en términos de software lo mejor es &lt;strong>enseñar habilidades&lt;/strong> en lugar de enseñar programas, porque ¿Quién sabe con que sorpresa nos salga Microsoft con Office 7 :)?&lt;/p>
&lt;p>Si tienen alguna otra duda, pues adelante para eso están los comentarios :)&lt;/p></description></item><item><title>Perdida de conexión a un servidor MySQL mediante ODBC y MS Access</title><link>https://linuxmanr4.com/2009/03/17/perdida-de-conexion-a-un-servidor-mysql-mediante-odbc-y-ms-access/</link><pubDate>Tue, 17 Mar 2009 19:04:49 +0000</pubDate><guid>https://linuxmanr4.com/2009/03/17/perdida-de-conexion-a-un-servidor-mysql-mediante-odbc-y-ms-access/</guid><description>&lt;p>Desde hace tiempo hice un sistema que utiliza a Microsoft Access pero el motor de base de datos esta en &lt;a class="link" href="https://www.mysql.com/" target="_blank" rel="noopener"
>MySQL&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Utilizando el &lt;a class="link" href="https://dev.mysql.com/downloads/connector/odbc/5.1.html" target="_blank" rel="noopener"
>conector ODBC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
el origen de los datos es transparente para Access y con eso puedo tener un sistema más eficiente al momento de realizar algunas consultas.&lt;/p>
&lt;p>Todo funcionaba de maravilla, hasta que llegó el momento de unir dos sucursales mediante una VPN, coloqué el servidor en un extremo y algunos de los clientes en el otro, entonces fue cuando empecé a recibir mensajes como este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">MySQL Server has gone away (#2006)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lo malo es que este error provocaba congelamientos en el sistema o evitaba que se guardaran los últimos cambios, cosa que definitivamente puede llevar el calificativo de &lt;em>no good&lt;/em>.&lt;/p>
&lt;p>Al parecer ya es un bug conocido según &lt;a class="link" href="https://bugs.mysql.com/bug.php?id=4869" target="_blank" rel="noopener"
>este reporte&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Ahí mencionan que lograron evitarlo haciendo una pequeña consulta cada cierto tiempo para mantener viva la conexión.&lt;/p>
&lt;p>Eso era relativamente sencillo de intentar, siempre tengo un formulario abierto en el que tengo el menú de opciones, así que ahí decidí poner el código.&lt;/p>
&lt;p>Abri el formulario en modo diseño y modifique la propiedad &lt;em>Intervalo de cronómetro&lt;/em>&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3550/3363598508%5Fb0fd597d6f%5Fo.png"
alt="timer">&lt;figcaption>
&lt;p>timer&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El valor esta en milisegundos así que 10000 equivale a 10 segundos, este valor se puede ir &amp;ldquo;ajustando&amp;rdquo;, más largo si no es tan frecuente el problema, hasta encontrar un valor óptimo.&lt;/p>
&lt;p>Ahora generé un código en la propiedad &lt;em>Al cronómetro&lt;/em>, en este punto hay varias maneras de hacerlo, básicamente lo que se requiere es hacer una pequeña consulta, así que inserté el siguiente código:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Private Sub Form_Timer()
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dim dbMidb As Database
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dim qdfConsulta As QueryDef
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dim rst As DAO.Recordset
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dim strConsulta As String
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> On Error GoTo Error:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;Inicializa los parametros de la consulta.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Set dbMidb = CurrentDb
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Set qdfConsulta = dbMidb.CreateQueryDef(&amp;#34;&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;Ejecuta una consulta sencilla para mantener viva la conexión.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> strConsulta = &amp;#34;SELECT usuarios.usuario FROM usuarios;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> qdfConsulta.SQL = strConsulta
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Set rst = qdfConsulta.OpenRecordset
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Error:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#39;Terminamos el recordset
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> rst.Close
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">End Sub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Claro que la instrucción SQL expresada en la variable &lt;em>strConsulta&lt;/em> puede ser diferente dependiendo del nombre de las tablas de cada proyecto, elegí la tabla de usuarios porque a lo mucho me regresa 10 registros.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3476/3362780515%5F8e5022c652.jpg"
alt="consulta">&lt;figcaption>
&lt;p>consulta&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora solo falta comprobar que se este ejecutando la consulta. Al revisar la gráfica puedo ver un pequeño &amp;ldquo;pulso&amp;rdquo; cada cierto tiempo que me dice que efectivamente todo esta funcionando como se planeo.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3596/3363598456%5F4ffceda123.jpg"
alt="grafica">&lt;figcaption>
&lt;p>grafica&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Quiero suponer que el problema se debe a algún detalle en el ODBC de Windows, pero mientras sale un arreglo mejor esta consulta intermitente me está funcionando.&lt;/p></description></item><item><title>Instalando Enlightenment en Little Star</title><link>https://linuxmanr4.com/2009/03/10/instalando-enlightenment-en-little-star/</link><pubDate>Tue, 10 Mar 2009 22:15:29 +0000</pubDate><guid>https://linuxmanr4.com/2009/03/10/instalando-enlightenment-en-little-star/</guid><description>&lt;p>Hace tiempo comentaba sobre Dessert Storm (aka little-star) la computadora en la que no me quedó de otra más que &lt;a class="link" href="https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/" >instalarle Ubuntu por la tarjeta de red&lt;/a>
.&lt;/p>
&lt;p>Con 512 MB en RAM seamos honestos, la máquina no tiene la velocidad de &lt;a class="link" href="http://es.wikipedia.org/wiki/Flash_%28c%C3%B3mic%29" target="_blank" rel="noopener"
>Flash&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, así que decidí quitarle un poco de peso encima instalándole Enlightenment.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3631/3344568711%5F20f784496e.jpg"
alt="instalandoE17">&lt;figcaption>
&lt;p>instalandoE17&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Seguí este tutorial &lt;a class="link" href="http://cafelinux.org/OzOs/content/how-install-ozos-desktop-existing-os" target="_blank" rel="noopener"
>How To: Install the OzOS desktop on an existing OS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para instalar la versión más reciente de Enlightenment conocida como E17.&lt;/p>
&lt;p>Es la primera vez que compilo un programa desde cero, se tardó más de una hora en bajar el código y compilarlo, claro que todo lo hace el script de instalación pero si me llegué a desesperar un poquito. Si no es por &lt;a class="link" href="http://conky.sourceforge.net/" target="_blank" rel="noopener"
>conky&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
hubiera creído que el proceso estaba suspendido.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3348/3344568419%5F7d7cb0c77a.jpg"
alt="E17-recien\_instalado">&lt;figcaption>
&lt;p>E17-recien_instalado&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El resultado final es un escritorio ágil que prácticamente no se tarda nada en cargar :P&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3579/3345402888%5F67eb4c00d7.jpg"
alt="2009-03-10-155854">&lt;figcaption>
&lt;p>2009-03-10-155854&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Jornadas de Educación y TIC</title><link>https://linuxmanr4.com/2009/03/04/jornadas-de-educacion-y-tic/</link><pubDate>Wed, 04 Mar 2009 18:37:29 +0000</pubDate><guid>https://linuxmanr4.com/2009/03/04/jornadas-de-educacion-y-tic/</guid><description>&lt;p>La Universidad Iberoamericana y &lt;a class="link" href="http://www.mayeutic.com/" target="_blank" rel="noopener"
>Mayeutic Consultores&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
organizan las primeras Jornadas de Educación y TIC este 18, 19 y 20 de marzo en las instalaciones de la misma universidad.&lt;/p>
&lt;p>Las platicas van dirigidas a :&lt;/p>
&lt;ul>
&lt;li>Personal docente y administrativo de todos los ámbitos y etapas educativas interesados en las TIC.&lt;/li>
&lt;li>Licenciados en educación e instituciones formadoras de docentes.&lt;/li>
&lt;li>Personas interesadas en el mundo de la educación y las TIC y el aprendizaje colaborativo.&lt;/li>
&lt;/ul>
&lt;p>Los objetivos de las jornadas son:&lt;/p>
&lt;ul>
&lt;li>Difundir el uso de las &lt;a class="link" href="http://es.wikipedia.org/wiki/Tecnolog%C3%ADas_de_informaci%C3%B3n_y_comunicaci%C3%B3n" target="_blank" rel="noopener"
>TIC&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en el entorno educativo.&lt;/li>
&lt;li>Implementación de las TIC a partir de experiencias practicas.&lt;/li>
&lt;li>Reflexionar sobre el papel activo del profesorado en una implementación efectiva de las TIC en el aula.&lt;/li>
&lt;/ul>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3329042378/" title="Jornadas Educación y TIC por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3643/3329042378_3bae615cae.jpg"
loading="lazy"
alt="Jornadas Educación y TIC"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3329042658/" title="Jornadas Educación y TIC por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3384/3329042658_702573178f.jpg"
loading="lazy"
alt="Jornadas Educación y TIC"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Para mayores informes:&lt;/p>
&lt;p>&lt;a class="link" href="http://www.mayeutic.com/" target="_blank" rel="noopener"
>Mayeutic eConsultores&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Tel. (871) 719 0303&lt;/p>
&lt;p>&lt;a class="link" href="mailto:info@mayeutic.com" >info@mayeutic.com&lt;/a>
&lt;/p></description></item><item><title>Instalando Ubuntu sin CD - netinstall</title><link>https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/</link><pubDate>Wed, 25 Feb 2009 22:08:34 +0000</pubDate><guid>https://linuxmanr4.com/2009/02/25/instalando-ubuntu-sin-cd-netinstall/</guid><description>&lt;p>Esta vez no me la pusieron nada fácil. Me llegó una laptop de la vieja guardia, con el tiempo (y el buen uso) dejó de funcionar la batería, la unidad de cd, la unidad de disquetes y dos puertos usb.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3357/3310209998%5F5fc4b194f4.jpg"
alt="hp pavillion ze5300 como sujeto de pruebas">&lt;figcaption>
&lt;p>hp pavillion ze5300 como sujeto de pruebas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La computadora funcionaba pero un buen día le pegó una de esas cosas raras que le dan a windows y la computadora simplemente dejó de arrancar, bueno lo intentaba pero sin mucho éxito.&lt;/p>
&lt;p>Me negaba a destinarla al cementerio de los equipos olvidados así que me puse a investigar un poco como podría darle algo de uso a este equipo.&lt;/p>
&lt;p>Como los medios tradicionales de instalación no se podían aplicar en este caso pues echamos mano de los poco tradicionales.&lt;/p>
&lt;p>La computadora puede arrancar a través de la tarjeta de red usando &lt;a class="link" href="http://es.wikipedia.org/wiki/PXE" target="_blank" rel="noopener"
>PXE&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>El tutorial que más me ayudó fue &lt;a class="link" href="http://ubuntuforums.org/showthread.php?t=327597&amp;amp;highlight=pxe&amp;#43;install&amp;#43;intrepid" target="_blank" rel="noopener"
>HOWTO: Install Ubuntu via Netboot/PXE using Windows&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Sin embargo creo que me hizo batallar mas de la cuenta, y es que en mi afán de querer instalar ubuntu intrepid bajé los paquetes para esta versión de Ubuntu, no estoy muy seguro si es un defecto en los paquetes, pero simplemente no pude. Afortunadamente los paquetes de Hardy funcionan de maravilla. Así que opté por este último, espero poder hacer un &lt;em>dist-upgrade&lt;/em> más adelante.&lt;/p>
&lt;p>Para hacerles la vida más sencilla a mis lectores (y probablemente a mi en un futuro) hice un paquete rar con el programa servidor &lt;a class="link" href="http://tftpd32.jounin.net/" target="_blank" rel="noopener"
>Tftp32&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y los archivos necesarios para iniciar la instalación de Hardy Heron.&lt;/p>
&lt;p>De esta manera fue como configuré tFTPd32, recuerden hacer las modificaciones necesarias para su red, espero que les sirva de guía.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3038/3310209396%5F20935ca480.jpg"
alt="tftpd32-dhcp-configuracion">&lt;figcaption>
&lt;p>tftpd32-dhcp-configuracion&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3430/3310209342%5F6e30c20041.jpg"
alt="tftpd32-dhcp">&lt;figcaption>
&lt;p>tftpd32-dhcp&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al iniciar la computadora con la tarjeta de red (presionando F12) carga la información desde el servidor tftp32 y muestra el programa de instalación.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3406/3309381083%5F5d15387019.jpg"
alt="Instalando Ubuntu via red">&lt;figcaption>
&lt;p>Instalando Ubuntu via red&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Ahora serenidad y paciencia para que descargue e instale los paquetes.&lt;/p>
&lt;h2 id="actualización">&lt;strong>Actualización:&lt;/strong>
&lt;/h2>&lt;p>Después de mucho intentar con el repositorio de Ubuntu en México, me di cuenta de que no era la mejor opción, el que me ha funcionando de maravilla es &lt;code>http://mirror.cs.umn.edu/&lt;/code> , en el momento de elegir la replica, se retrocede un paso y se puede teclear un repositorio personalizado.&lt;/p>
&lt;p>Otra cosa es no elegir paquetes&amp;hellip; es mejor que termine la instalación, al final tendremos solo la linea de comandos, ingresamos y tecleamos&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo aptitude install ubuntu-desktop
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para tener un ubuntu gráfico.&lt;/p></description></item><item><title>JDownloader, para bajar archivos de Megaupload y Rapidshare</title><link>https://linuxmanr4.com/2009/02/20/jdownloader-para-bajar-archivos-de-megaupload-y-rapidshare/</link><pubDate>Fri, 20 Feb 2009 21:21:07 +0000</pubDate><guid>https://linuxmanr4.com/2009/02/20/jdownloader-para-bajar-archivos-de-megaupload-y-rapidshare/</guid><description>&lt;p>No se como pude vivir tanto tiempo sin &lt;a class="link" href="http://jdownloader.org/" target="_blank" rel="noopener"
>jDownloader&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Todo el tiempo bajo archivos de Rapidshare o de Megaupload para estar al tanto de mis series de televisión favoritas (por cierto The Mentalist esta goooood).&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3393/3295265537%5Ffe648c4839.jpg"
alt="jDownloader ">&lt;figcaption>
&lt;p>jDownloader&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que hace jDownloader es simplificarnos la existencia, administrando las descargas de estos sitios. Simplemente le paso el enlace del archivo que deseo bajar y listo !!!, ocasionalmente me pregunta un &lt;a class="link" href="http://es.wikipedia.org/wiki/Captcha" target="_blank" rel="noopener"
>captcha&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que no logró reconocer pero en general hace un excelente trabajo.&lt;/p>
&lt;p>Incluso llega a descomprimir los archivos una vez que ha finalizado la descarga y hasta tiene un complemento para firefox.&lt;/p>
&lt;p>Como esta desarrollado en &lt;a class="link" href="https://linuxmanr4.com/2019/12/05/exception-in-thread-unsupported-major-minor-version-52-0-otra-vez-java/" >Java existe una versión&lt;/a>
para Windows, Linux o Mac y es código abierto !!!!.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3439/3297971248%5F668b95e1ca.jpg"
alt="jDownloader desde Ubuntu">&lt;figcaption>
&lt;p>jDownloader desde Ubuntu&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solo un detalle, tuve algunos problemas para descargar el programa desde la página oficial, pero encontré un &lt;a class="link" href="https://web.archive.org/web/20240515144341/https://www.softpedia.com/get/Internet/Download-Managers/JDownloader.shtml" target="_blank" rel="noopener"
>mirror en softpedia&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Ahora si&amp;hellip; Bajando que es gerundio :)&lt;/p></description></item><item><title>El wallpaper de la lámpara</title><link>https://linuxmanr4.com/2009/02/19/el-wallpaper-de-la-lampara/</link><pubDate>Thu, 19 Feb 2009 23:51:44 +0000</pubDate><guid>https://linuxmanr4.com/2009/02/19/el-wallpaper-de-la-lampara/</guid><description>&lt;p>El 14 de febrero fuimos a cenar a un Pizza Hut, estábamos esperando nuestra orden cuando ¡Zaaaas!, se fue la luz. :)&lt;/p>
&lt;p>En ese momento tomé esta foto a la lámpara.&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3294108380/" title="14 feb 105 por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3500/3294108380_baeca35dcb.jpg"
loading="lazy"
alt="14 feb 105"
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Que luego modifiqué para hacer este sencillo wallpaper :)&lt;/p>
&lt;p>&lt;a class="link" href="http://www.flickr.com/photos/linuxman/3294109106/" title="El wallpaper de la lámpara. por linuxman, en Flickr"
target="_blank" rel="noopener"
>&lt;img src="http://farm4.static.flickr.com/3359/3294109106_7340eef8ca.jpg"
loading="lazy"
alt="El wallpaper de la lámpara."
>&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Todo con el poder de GIMP.&lt;/p></description></item><item><title>Coraline</title><link>https://linuxmanr4.com/2009/02/16/coraline/</link><pubDate>Mon, 16 Feb 2009 19:56:13 +0000</pubDate><guid>https://linuxmanr4.com/2009/02/16/coraline/</guid><description>&lt;p>El sábado tuve la oportunidad de ir a ver Coraline con mi esposa y mi cuñada favorita :D. Llegamos a los cines que estan en Intermall porque en ese lugar se exhibe la versión en 3D.&lt;/p>
&lt;p>Hace muchos años que fui a ver una película en 3D y te regalaban unos lentes de papel para ver la película, ahora son unos lentes más profesionales, pero caray como batallé para colocarlos encima de mis lentes graduados, de lo contrario no iba a ver absolutamente nada.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/kKIqq0cSm-U" target="_blank" rel="noopener"
>https://youtu.be/kKIqq0cSm-U&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>La película es fascinante, te atrapa en su historia, y aunque su mercado es el público infantil puede ser perturbadora para niños muy pequeños, varios de los niños en la sala si se sacaron de onda con algunas escenas :D ( ahhhh mellooooo ).&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3604/3285655172%5F060b1f8506%5Fm.jpg"
alt="Cines de Intermall">&lt;figcaption>
&lt;p>Cines de Intermall&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3387/3284835953%5F1cbf64fee1%5Fm.jpg"
alt="Amor por siempre">&lt;figcaption>
&lt;p>Amor por siempre&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3549/3284836691%5F731f0639ca%5Fm.jpg"
alt="Más flaca y desaparece">&lt;figcaption>
&lt;p>Más flaca y desaparece&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3507/3284836993%5Fe947471c75%5Fm.jpg"
alt="La Rosa Concha">&lt;figcaption>
&lt;p>La Rosa Concha&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3303/3285654638%5Fe7b481b664%5Fm.jpg"
alt="Amor por siempre - Los Concursantes">&lt;figcaption>
&lt;p>Amor por siempre - Los Concursantes&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al &lt;a class="link" href="https://linuxmanr4.com/2015/07/16/el-futuro-de-las-salas-de-cine/" >salir de los cines&lt;/a>
, nos encontramos con un evento de Televisa Laguna llamado &lt;strong>Amor por siempre&lt;/strong> y tras bambalinas estaba la Rosa Concha .. akakakakakakakakaa :P&lt;/p>
&lt;p>Al salir como ya es costumbre este 14 de febrero nos encontramos con varios vehículos tapizados con notas amorosoas &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3355/3285680868%5F28ca9b49ae%5Fm.jpg"
alt="14 de Febrero - 001">&lt;figcaption>
&lt;p>14 de Febrero - 001&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>por favor ¡NO LO HAGAN! es suuuper vergonzoso para el afectado. Algunas mujeres lo hacen para marcar territorio, pero lo peor es que al arrancar el vehículo vas dejando notitas de amor por el camino. Hay que tener mas conciencia ecológica ¡Caray!&lt;/p></description></item><item><title>Recuperando un Sony Ericsson W580i que no enciende</title><link>https://linuxmanr4.com/2009/02/04/recuperando-un-sony-ericsson-w580i-que-no-enciende/</link><pubDate>Wed, 04 Feb 2009 19:23:50 +0000</pubDate><guid>https://linuxmanr4.com/2009/02/04/recuperando-un-sony-ericsson-w580i-que-no-enciende/</guid><description>&lt;p>Ayer el teléfono de mi pingüina simplemente se negó a iniciar. Sip aquel teléfono prometido que justo habíamos terminado de pagar y que ya tenía más del año que cubre la garantía, simplemente se negaba a encender.&lt;/p>
&lt;p>Por un momento creí que era la batería, pero al revisarla con el multímetro estaba perfecta.&lt;/p>
&lt;p>Lo que hacía el celular es que al presionar el botón de encendido, vibraba un poco y en ocasiones mostraba el logo de Sony Ericsson para inmediatamente apagarse.&lt;/p>
&lt;p>Total que fuimos al centro de atención a clientes. Es curioso, operan tan mecánicamente que les impide dar un buen servicio, verán llegamos con la señorita, escribió un reporte, recibió el teléfono, que lo iban a revisar que no tuviera golpes o humedad y que nos diéramos la vuelta en unos 20 minutos.&lt;/p>
&lt;p>Un detalle que nos llamó mucho la atención es que en la cabina de al lado estaba una señora prácticamente con el mismo problema que nosotros mmmm &amp;hellip;..&lt;/p>
&lt;p>( 30 minutos más tarde )&lt;/p>
&lt;p>Pues el teléfono no tenía ni golpes, ni humedad y como tampoco tenía garantía (porque ya tiene más de un año de su compra) pues tampoco no lo podía recibir !!!!!, entonces ¿Para que hacer tanto papeleo si a fin de cuentas no le podían hacer nada?.&lt;/p>
&lt;p>Nos mandó a un establecimiento llamado Hospital de celulares (por la Soriana Constitución), llegamos a un lugar estilo puestero repleto de posters del Santos y Máscaras de Lucha Libre (muy buena colección por cierto). El encargado más se tardo en tomarlo que en dar su veredicto&amp;hellip; 450 pesos.&lt;/p>
&lt;p>Le pregunté &amp;ndash; ¿Porqué tan caro?&lt;/p>
&lt;p>-- Pues es que hay cambiarle todo el software.&lt;/p>
&lt;p>Como no tenía esa cantidad de dinero en ese momento nos retiramos del lugar. Lo bueno de toda esta aventura es que me dieron las pistas necesarias :) , la batería estaba bien, el celular no tenía ni golpes ni humedad, y el encargado del establecimiento me dio la pista de que había que cambiarle todo el software ¡Eso lo puedo hacer yo! :) .&lt;/p>
&lt;p>Al parecer es un problema muy común, porque Google regresa una buena cantidad de páginas relacionadas con el tema, pero me decidí a aplicar el método que recomienda el fabricante.&lt;/p>
&lt;p>El sitio de Sony Ericsson indica los &lt;a class="link" href="http://tinyurl.com/asl3dp" target="_blank" rel="noopener"
>puntos que hay que revisar para volver a la vida un celular que no enciende&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Seguí todas las indicaciones hasta que dí con el último recurso&amp;hellip;&lt;/p>
&lt;p>&lt;em>Actualiza el teléfono con la última versión del software con &lt;a class="link" href="https://web.archive.org/web/20100107092549/http://www.sonyericsson.com/cws/support/softwaredownloads/detailed/updateservice/w580i?cc=ar&amp;amp;lc=es" target="_blank" rel="noopener"
>Servicio de actualización de Sony Ericsson&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/em> &lt;em>(enlace actualizado)&lt;/em> y garantiza el mejor rendimiento de tu teléfono.&lt;/p>
&lt;p>Descargue el programa de actualización, que para ser honestos hace tooodo el proceso de una manera muy sencilla, sólo hay que seguir las indicaciones.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3106/3253971150%5F06c3f65412%5Fm.jpg"
alt="sshot-1">&lt;figcaption>
&lt;p>sshot-1&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3443/3253145221%5F97e9403304%5Fm.jpg"
alt="sshot-2">&lt;figcaption>
&lt;p>sshot-2&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3501/3253145265%5F24af94e249%5Fm.jpg"
alt="sshot-3">&lt;figcaption>
&lt;p>sshot-3&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3320/3253971394%5Fe3ac7ed02f%5Fm.jpg"
alt="sshot-4">&lt;figcaption>
&lt;p>sshot-4&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Solito detecta el firmware adecuado, instala todo, hace las advertencias necesarias y después de unos 15 minutos&amp;hellip;.&lt;/p>
&lt;p>TADAAAAAAAAA !!!!&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3491/3254004812%5F3c9eb8cd54%5Fm.jpg"
alt="w580i 001">&lt;figcaption>
&lt;p>w580i 001&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3342/3253177781%5F5dc23fe53f%5Fm.jpg"
alt="w580i 002">&lt;figcaption>
&lt;p>w580i 002&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3255/3253178275%5F3d39f984df%5Fm.jpg"
alt="w580i 005">&lt;figcaption>
&lt;p>w580i 005&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Claro que el celular regresó a su configuración de fábrica, pero eso es lo de menos, me ahorre una buena cantidad de dinero y recuperamos el celular. :)&lt;/p></description></item><item><title>MusicTracker, poner la música que escuchas en Pidgin</title><link>https://linuxmanr4.com/2009/01/30/musictracker-poner-la-musica-que-escuchas-en-pidgin/</link><pubDate>Fri, 30 Jan 2009 15:47:29 +0000</pubDate><guid>https://linuxmanr4.com/2009/01/30/musictracker-poner-la-musica-que-escuchas-en-pidgin/</guid><description>&lt;p>Desde hace tiempo había notado que varios de mis contactos de Pidgin mostraban la música que estaban escuchando en ese momento. Aunque me causaba curiosidad, no había buscado la manera de hacer algo parecido en Pidgin.&lt;/p>
&lt;p>De casualidad me encontré con &lt;a class="link" href="https://code.google.com/archive/p/pidgin-musictracker/" target="_blank" rel="noopener"
>MusicTracker&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un complemento de &lt;a class="link" href="http://www.pidgin.im/" target="_blank" rel="noopener"
>Pidgin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que hace precisamente esa función.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3388/3238388181%5Ff2a016e76e.jpg"
alt="MusicTracker">&lt;figcaption>
&lt;p>MusicTracker&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Hace un excelente trabajo, prácticamente no tuve que hacer nada más que instalarlo, porque de inmediato reconoció que estaba utilizando &lt;a class="link" href="http://www.aimp.ru/index.php?do=lang-en" target="_blank" rel="noopener"
>AIMP2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, mi reproductor favorito en Windows.&lt;/p>
&lt;p>En Linux prefiero el complemento que usa &lt;a class="link" href="http://www.exaile.org/" target="_blank" rel="noopener"
>Exaile&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3426/3238388171%5F5ed96bee0c.jpg"
alt="Exaile">&lt;figcaption>
&lt;p>Exaile&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Trinity Rescue Kit en busca del virus maldito</title><link>https://linuxmanr4.com/2009/01/24/trinity-rescue-kit-en-busca-del-virus-maldito/</link><pubDate>Sat, 24 Jan 2009 17:02:41 +0000</pubDate><guid>https://linuxmanr4.com/2009/01/24/trinity-rescue-kit-en-busca-del-virus-maldito/</guid><description>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3425/3222163157%5Fee6499fca9.jpg"
alt="trinity rescue kit">&lt;figcaption>
&lt;p>trinity rescue kit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Anteriormente había escrito sobre como &lt;a class="link" href="https://linuxmanr4.com/2008/08/25/resetear-contrasenas-de-windows-con-trinity-rescue-kit/" >borrar una contraseña de windows&lt;/a>
, &lt;a class="link" href="https://linuxmanr4.com/2008/11/10/santos-archivos-eliminados/" >recuperar archivos eliminados&lt;/a>
o &lt;a class="link" href="https://linuxmanr4.com/2008/11/12/a-respaldar-que-el-mundo-se-va-a-acabar/" >como hacer un respaldo&lt;/a>
con Trinity Rescue Kit.&lt;/p>
&lt;p>Ahora le toca la monserga de buscar y eliminar virus a una maquina con windows :S&lt;/p>
&lt;p>Ayer me entregaron una compu con un comportamiento por demás erratico y con un antivirus de esos &amp;ldquo;panditos&amp;rdquo; que jamás se había actualizado, me la llevaron porque al momento de reproducir un DVD el audio se arrastra, como que no puede con el ritmo de reproducción.&lt;/p>
&lt;p>Como parte de la rutina es el escaneo de virus, y el antivirus que traia instalado la compu no me daba buena espina, puse a trabajar mi navajita suiza del &lt;a class="link" href="https://trinityhome.org/" target="_blank" rel="noopener"
>Trinity Rescue Kit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que ha demostrado ser muy útil para muchas tareas de recuperación del pobre windows.&lt;/p>
&lt;p>Lo único que hay que hacer es iniciar la computadora con el cd y teclear.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">virusscan -a fprot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>virusscan es un script, en este caso le indico que baje la última versión de f-prot y que haga un escaneo y desinfección de todos los &lt;a class="link" href="https://linuxmanr4.com/2009/12/03/disminuir-el-acceso-al-disco-duro-swappiness/" >discos duros&lt;/a>
locales de la computadora :)&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3459/3223035398%5F607145df7a.jpg"
alt="TRK Buscando virus.">&lt;figcaption>
&lt;p>TRK Buscando virus.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>F-Prot no es la única opción, también puede usar ClamAV, AVG (uno de mis favoritos para windows), o el BitDefender.&lt;/p>
&lt;p>Lo demás es dejar que el script haga su trabajo :)&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3260/3223162742%5Fbe645513c1%5Fm.jpg"
alt="Virus encontrado">&lt;figcaption>
&lt;p>Virus encontrado&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>No se pudo obtener el libro de direcciones de MSN</title><link>https://linuxmanr4.com/2009/01/12/no-se-pudo-obtener-el-libro-de-direcciones-de-msn/</link><pubDate>Mon, 12 Jan 2009 17:49:39 +0000</pubDate><guid>https://linuxmanr4.com/2009/01/12/no-se-pudo-obtener-el-libro-de-direcciones-de-msn/</guid><description>&lt;p>Hoy no pude iniciar mi sesión de MSN en &lt;a class="link" href="http://pidgin.im/" target="_blank" rel="noopener"
>Pidgin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, supuse que era por alguna especie de problema con los servidores de Microsoft (como ya ha ocurrido muchas veces) pero no, ahora el problema fue un poco mas serio.&lt;/p>
&lt;p>Al parecer hicieron un cambio de protocolo (algo que ver con el &amp;ldquo;Live&amp;rdquo;), todo se soluciona instalando msn-pecan, que pueden descargar &lt;a class="link" href="https://code.google.com/archive/p/msn-pecan/downloads" target="_blank" rel="noopener"
>aqui&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3508/3191155901%5F42458b116c.jpg"
alt="wlm">&lt;figcaption>
&lt;p>wlm&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En Ubuntu todo se arregla con un:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">sudo apt-get install msn-pecan
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y claro tienen que cambiar el protocolo de su cuenta, en lugar de MSN, cambiarlo por WLM y listo !!!! a seguir en linea.&lt;/p></description></item><item><title>Antes del MP3</title><link>https://linuxmanr4.com/2009/01/09/antes-del-mp3/</link><pubDate>Fri, 09 Jan 2009 16:27:44 +0000</pubDate><guid>https://linuxmanr4.com/2009/01/09/antes-del-mp3/</guid><description>&lt;p>Ahora que tuve la oportunidad de tomar varias fotos, y me encontré con estas piezas del recuerdo :)&lt;/p>
&lt;figure>&lt;img src="http://lh5.ggpht.com/%5Fcj3Kte%5FOUFI/SWd2s9zOx4I/AAAAAAAAEmg/DvdgNZYXubE/s400/jerez-pueblo-magico-001.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh5.ggpht.com/%5Fcj3Kte%5FOUFI/SWd2tNHBtHI/AAAAAAAAEmo/wghaq7PlpFA/s400/jerez-pueblo-magico-002.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh6.ggpht.com/%5Fcj3Kte%5FOUFI/SWd2tOwKWfI/AAAAAAAAEmw/V894i-tF%5FzA/s400/jerez-pueblo-magico-003.jpg">
&lt;/figure>
&lt;p>Hace ya algunos años tuve un trabajo en el radio y me tocó lidiar con estos discos, una vez puse una canción y se escuchaba bastante bien hasta que comenzó la voz del cantante y me di cuenta de que estaban mal las revoluciones (los discos pequeños eran de 45 rpm y los grandes de 33 rpm si más no recuerdo) !!!!! , en mi novatez la cambie de tingazo la velocidad y se escucho bastante cómico.&lt;/p>
&lt;p>Ufff, como que ya pasaron algunos añitos :P. Este pequeño cachorro tiene la expresión adecuada para el caso!!!!&lt;/p>
&lt;figure>&lt;img src="http://lh6.ggpht.com/%5Fcj3Kte%5FOUFI/SWd2te7BDbI/AAAAAAAAEm4/yqSv2rb8QYk/s400/jerez-pueblo-magico-004.jpg">
&lt;/figure></description></item><item><title>Jerez Zacatecas Pueblo Mágico</title><link>https://linuxmanr4.com/2009/01/08/jerez-pueblo-magico/</link><pubDate>Thu, 08 Jan 2009 17:37:22 +0000</pubDate><guid>https://linuxmanr4.com/2009/01/08/jerez-pueblo-magico/</guid><description>&lt;p>Ayer regresé de mis vacaciones en Jerez Zacatecas, no tienen idea de lo bien que se duerme y lo bien que se come :).&lt;/p>
&lt;p>Eso sí, me tuve que aclimatar, pero a los 3 días ya no sentía tan fuerte el frío que hace en la región.&lt;/p>
&lt;p>Tomé muchas fotos, &lt;a class="link" href="https://linuxmanr4.com/tags/jerez/" >Jerez&lt;/a>
está muy cambiado y es que me doy cuenta de que ahora es Pueblo Mágico :) y mi primera sorpresa fue que algunos de los edificios más importantes cuentan con una iluminación especial en las noches que resalta su arquitectura.&lt;/p>
&lt;p>Quiero agradecer también a todos los amigos con los que tuve la oportunidad de convivir y con beber por todas sus atenciones :)&lt;/p>
&lt;figure>&lt;img src="http://lh5.ggpht.com/%5Fcj3Kte%5FOUFI/SWYu7nGAgQI/AAAAAAAAEcU/HvzOWGeuEE4/s400/jerez-pueblo-magico-004.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh3.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwc2Tl-pI/AAAAAAAAEhY/ork3wK4KUPk/s400/jerez-pueblo-magico-045.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwhKktvQI/AAAAAAAAEho/hrzLjCXId9M/s400/jerez-pueblo-magico-047.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYvdXE8Y4I/AAAAAAAAEeE/2Da7Ptr6HmE/s400/jerez-pueblo-magico-018.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh3.ggpht.com/%5Fcj3Kte%5FOUFI/SWYv41sZh3I/AAAAAAAAEfc/Yc9mHL2UWBc/s400/jerez-pueblo-magico-029.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh3.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwSglmi4I/AAAAAAAAEgw/uGXa7HoU2%5Fc/s400/jerez-pueblo-magico-039.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwz90uf9I/AAAAAAAAEio/9tUzZuSVTZU/s400/jerez-pueblo-magico-055.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh5.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwujIgajI/AAAAAAAAEiQ/QH%5Fc29m2Eng/s400/jerez-pueblo-magico-052.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYvSHEdC9I/AAAAAAAAEds/B0LtWUEnyaw/s400/jerez-pueblo-magico-015.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh3.ggpht.com/%5Fcj3Kte%5FOUFI/SWYv8iG60aI/AAAAAAAAEfw/lXE5t7TMz1k/s400/jerez-pueblo-magico-031.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh5.ggpht.com/%5Fcj3Kte%5FOUFI/SWYxEpykWqI/AAAAAAAAEjs/DvwMrEr3xpc/s400/jerez-pueblo-magico-063.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYwYRjEvwI/AAAAAAAAEhA/oNFMvncMHe4/s400/jerez-pueblo-magico-042.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.ggpht.com/%5Fcj3Kte%5FOUFI/SWYxb64CuYI/AAAAAAAAEks/wphWP4vl30g/s400/jerez-pueblo-magico-071.jpg">
&lt;/figure>
&lt;figure>&lt;img src="http://lh6.ggpht.com/%5Fcj3Kte%5FOUFI/SWYxc7rwx1I/AAAAAAAAEk0/0UTU%5FYl-1s8/s400/jerez-pueblo-magico-072.jpg">
&lt;/figure></description></item><item><title>Rescatar un celular mojado metiéndolo en arroz</title><link>https://linuxmanr4.com/2008/12/24/rescatar-celular-mojado-arroz/</link><pubDate>Wed, 24 Dec 2008 17:16:21 +0000</pubDate><guid>https://linuxmanr4.com/2008/12/24/rescatar-celular-mojado-arroz/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/12/arroz-para-rescatar-un-celular-que-fue-mojado.jpg" alt="Featured image of post Rescatar un celular mojado metiéndolo en arroz" />&lt;p>En caso de emergencia se puede rescatar un celular mojado metiéndolo en arroz, es solo para situaciones desesperadas, pero puede aumentar las probabilidades de recuperar tu teléfono celular sin mayores daños.&lt;/p>
&lt;p>Hace dos días un usuario me trajo un celular ( &lt;a class="link" href="http://www.phonearena.com/phones/Motorola-i530_id706" target="_blank" rel="noopener"
>Motorola i530&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) con tendencias suicidas. Apuradamente intentaba quitarle la batería diciendome - A ver si puedes hacer algo por él -&lt;/p>
&lt;p>Ok.. debo de aclarar que milagros no hago :/ , pero me acordé que hace tiempo vi un articulo sobre dispositivos mojados y como volvían a la vida después de unos días de guardarlos en arroz.&lt;/p>
&lt;h2 id="una-tacita-de-arroz-por-favor">Una tacita de arroz, por favor.
&lt;/h2>&lt;p>Lo más importante es &lt;strong>QUITAR INMEDIATAMENTE LA BATERÍA.&lt;/strong> Tengan en cuenta que dejar la batería o intentar recargar el teléfono cuando no esta completamente seco es precisamente lo que provoca fallas en los celulares. Los problemas pueden ser muy variados, desde equipos que no encienden, o no funciona la pantalla touch o &lt;a class="link" href="https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/" >no recargan la batería o se niegan a cargar&lt;/a>
aún con el cargador conectado.&lt;/p>
&lt;p>Luego procedí a cubrir el espacio de la batería con un poco de papel higiénico o con una servilleta que también absorbe la humedad y deja pasar libremente el aire, lo hice para evitar que el arroz o su polvo inundara los espacios internos del celular.&lt;/p>
&lt;p>Metí el celular y el arroz en una bolsa, recuerden que es arroz sin cocinar (no me pregunten el porqué de la aclaración) y si es nuevo es mucho mejor, un arroz que ha pasado mucho tiempo en la alacena no absorbe bien la humedad. Luego cerré muy bien la bolsa, el objetivo es que el arroz capture toda la humedad en el interior del dispositivo, pasó un día, le coloqué la pila y nada :S hacía como un intento de prender pero pude ver todavía unas enormes gotas de agua dentro de la pantalla.&lt;/p>
&lt;p>Me hice a la idea de que iba a dar malas noticias.&lt;/p>
&lt;p>Al segundo día&amp;hellip;. Tadaaaaaaaaaaaan .. prendió y me pidio la tarjeta SIM. ¡VICTORIA!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/12/tel%C3%A9fono-motorola-recuperado-despu%C3%A9s-de-meterlo-en-arroz.jpg"
alt="Este telefono mojado fue recuperado después de meterlo en arroz">&lt;figcaption>
&lt;p>Este telefono mojado fue recuperado después de meterlo en arroz&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>y ahí esta jalando como si nada hubiera pasado. :)&lt;/p>
&lt;p>Momento !!!!!!! ¿Como se &lt;a class="link" href="https://linuxmanr4.com/2013/04/08/como-saber-si-un-celular-fue-mojado/" >mojó el celular&lt;/a>
submarinista? &amp;hellip;. iuuuuuuuuuuuuuu , mejor no pregunto 8O&lt;/p></description></item><item><title>A respaldar que el mundo se va a acabar</title><link>https://linuxmanr4.com/2008/11/12/a-respaldar-que-el-mundo-se-va-a-acabar/</link><pubDate>Wed, 12 Nov 2008 22:36:51 +0000</pubDate><guid>https://linuxmanr4.com/2008/11/12/a-respaldar-que-el-mundo-se-va-a-acabar/</guid><description>&lt;p>Antier me llegó una de esas enfermitas, pero venía misteriosa, llegó con un - Ahí te mandan Inguanzo - claro que yo me quedé con cara de what, la dejé porque simplemente no sabía cuál era el problema y estaba ocupado en otros menesteres.&lt;/p>
&lt;p>Al otro día no falta la llamada del usuario preguntando:&lt;/p>
&lt;p>- ¿Qué ondas ya está mi compu?&lt;/p>
&lt;p>ehhh , pues que tiene para empezar&amp;hellip; ¿Que tiene?&lt;/p>
&lt;p>- No prende.&lt;/p>
&lt;p>Ahh ok.. Ahorita la reviso. ;)&lt;/p>
&lt;p>Por lo que me dijo mi usuario supuse que era la fuente de poder, y ¿Qué creen?&amp;hellip; PUES NO ES CIERTO !!!!!&lt;/p>
&lt;p>La computadora prende, intenta iniciar Windows, llega a un punto y PUUUUUUUUuuuuuummm se reinicia, vuelve a comenzar, llega al mismo punto y PUUUuuuuuuuuummm otra vez.. y asi en un ciclo infinito, hasta me dieron ganas de dejarla como una especie de serie navideña geek :), la computadora no mostraba ningún mensaje de error, NADA.&lt;/p>
&lt;p>Llamé a mi usuario, le pregunté que archivos quería que le guardara, porque no quise batallar, le iba a aplicar la primera ley de windows al equipo.&lt;/p>
&lt;p>Saque mi disco de &lt;a class="link" href="https://linuxmanr4.com/2008/08/25/resetear-contrasenas-de-windows-con-trinity-rescue-kit/" >Trinity&lt;/a>
&lt;a class="link" href="https://linuxmanr4.com/2008/11/10/santos-archivos-eliminados/" >Rescue&lt;/a>
Kit (que se esta volviendo muy útil), inicie la computadora con él y al terminar de arrancar teclee lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fileserver -g
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://linuxmanr4.com/imgf/3026068420_bd4d3394a8_o.jpg"
loading="lazy"
alt="trinity samba"
>&lt;/p>
&lt;p>¿Cuál es el propósito de todo esto?, es absurdamente sencillo, la instrucción monta todos los discos duros de la computadora y los vuelve disponible como compartidos en una red de Windows. ¡Listo para copiar y respaldar!, tan sencillo que hasta Eduardo Arcos puede hacerlo :P&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/3025244305_c7e10e5c8f.jpg"
loading="lazy"
alt="trinity samba server"
>&lt;/p>
&lt;p>Una vez que tenemos la información en un lugar seguro, pues a partirle su mandarina a Windows que para eso fue creado. :)&lt;/p></description></item><item><title>Santos Archivos Eliminados</title><link>https://linuxmanr4.com/2008/11/10/santos-archivos-eliminados/</link><pubDate>Mon, 10 Nov 2008 21:17:59 +0000</pubDate><guid>https://linuxmanr4.com/2008/11/10/santos-archivos-eliminados/</guid><description>&lt;p>A veces sinceramente no me lo explico, mientras estaba en la mesa redonda del Simposium de la LAB recibí un mensaje a mi celular diciendo que habían eliminado unos archivos importantes del servidor. Como tenía respaldo de los archivos no me preocupé demasiado.&lt;/p>
&lt;p>Al otro día pregunto -¿Qué archivos quieren recuperar? -, cuando me explicaron como sucedieron los hechos me quedé &lt;em>freeze&lt;/em>, mi usuario al que voy a llamar amablemente Usuario X vio que estaban sus archivos en un &amp;ldquo;servidor&amp;rdquo; y, por lo tanto, procedió a eliminarlos inmediatamente, no sé qué configuración trae Windows Vista que crea una carpeta compartida de los documentos (claro que con clave de acceso requerida), pero como mi amable Usuario X tenía acceso total de los archivos (claro era su propia computadora) borro lo que había en aquel &amp;ldquo;servidor&amp;rdquo; indiscreto y sí.. está suponiendo bien mi estimado lector por consecuencia lógica elimino también los archivos de su computadora.&lt;/p>
&lt;p>Imágenes, hojas de cálculo, documentos, y una que otro archivo de trabajo importante pasaron a una especie de limbo digital al que supuestamente tenía que rescatar (si como no, ¡Milagros no hago!), lamentablemente en el intento (no en la desesperación) de recuperar los archivos, movió , quitó , jurguneo la papelera de reciclaje, sin mucho éxito la verdad.&lt;/p>
&lt;p>Un consejo, si ya borraron los archivos y no estan en la papelera de reciclaje&amp;hellip; NI LE MUEVAN, APAGUEN LA COMPUTADORA y pueden intentar lo siguiente.&lt;/p>
&lt;p>Anteriormente, había usado a &lt;a class="link" href="https://linuxmanr4.com/2008/08/25/resetear-contrasenas-de-windows-con-trinity-rescue-kit/" >Trinity para resetear la contraseña de usuario en Windows&lt;/a>
. Ahora lo usé para aplicar un desborrado (undelete) a una partición de windows.&lt;/p>
&lt;p>Lo primero es iniciar la computadora con el CD de Trinity y montar una unidad de red en donde se recibirán los archivos recuperados.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">smbmount //192.168.0.x/recuperados /root/recup
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Donde 192.168.0.x es la IP de una computadora en la que declaré una carpeta como compartida, en este caso &lt;em>recuperados&lt;/em> y que es el lugar en donde se recibiran los archivos, &lt;em>recup&lt;/em> es un carpeta que hice con la instrucción &lt;em>mkdir recup&lt;/em> en la carpeta root en el sistema de archivos que hace el mismo Trinity.&lt;/p>
&lt;p>Una vez montada la unidad de red, ora si, viene el momento chucu chucu, el momento ya vaz que chutas, el momento chingüengüenchon de intentar recuperar los despojos de los archivos eliminados.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nftsundelete /dev/sda3 -u -m *.jpg -p 100 -d /root/recup
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;figure>&lt;img src="http://farm4.static.flickr.com/3210/3020461204%5F0254c536b7.jpg"
alt="undelete con trinity rescue kit">&lt;figcaption>
&lt;p>undelete con trinity rescue kit&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Donde:&lt;/p>
&lt;p>/dev/sda3 es la partición ntfs de windows (o sea donde estaban los archivos).&lt;/p>
&lt;p>&lt;strong>-u&lt;/strong> es la opción de UNDELETE&lt;/p>
&lt;p>&lt;strong>-m *.jpg&lt;/strong> quiere decir archivos que terminen con la extensión JPG, pero después se puede ejecutar lo mismo para las extensiones .doc, .xls o lo que se quiera recuperar.&lt;/p>
&lt;p>&lt;strong>-p 100&lt;/strong> indica que sean archivos 100% recuperables, digo para que queremos recuperar basura ¿cierto?.&lt;/p>
&lt;p>&lt;strong>-d /root/recup&lt;/strong> es la carpeta donde se guardan los archivos recuperados, pero como anteriormente se monto una unidad de red los archivos se guardan en otra computadora.&lt;/p>
&lt;p>Se recuperó algo, pero se perdieron otras cosas, algunos archivos en Excel ya no quisieron abrir, pero ni modo &amp;hellip; Más se perdió en Tabasco.&lt;/p></description></item><item><title>Ajustando la codificación de caracteres en Samba</title><link>https://linuxmanr4.com/2008/11/01/ajustando-la-codificacion-de-caracteres-en-samba/</link><pubDate>Sat, 01 Nov 2008 16:25:46 +0000</pubDate><guid>https://linuxmanr4.com/2008/11/01/ajustando-la-codificacion-de-caracteres-en-samba/</guid><description>&lt;p>Ya quedó mi servidor de archivos windows basado en un servidor Ebox. Me gusta porque es sencillo administrar los usuarios y los grupos de usuarios desde su interfaz web.&lt;/p>
&lt;p>Lamentablemente me dí cuenta que al momento de copiar archivos los nombres no quedaban bien, de un lado aparecia por ejemplo &amp;ldquo;Contigo aprendí.mp3&amp;rdquo; y en el servidor Ebox decía &amp;ldquo;Contigo aprend_.mp3&amp;rdquo;, lo mismo pasaba con las demás letras acentuadas, la letra ñ, etc.&lt;/p>
&lt;p>Se soluciona muy fácil basta con agregar estas dos líneas en la sección de global.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[global]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">dos charset = 850
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">unix charset = ISO8859-15
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>En el archivo &lt;em>/etc/samba/smb.conf/&lt;/em>&lt;/p>
&lt;p>&lt;img src="https://farm4.static.flickr.com/3059/2991515365_54f23182e9.jpg"
loading="lazy"
alt="ebox samba"
>&lt;/p>
&lt;p>El problema es que la configuración de ebox es muy simple y si modifico a mano el archivo Ebox no me respeta esa modificación.&lt;/p>
&lt;p>Voy a ver si le instalo &lt;em>swat&lt;/em> para administrar &lt;a class="link" href="http://us6.samba.org/samba/" target="_blank" rel="noopener"
>Samba&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Bloqueando el messenger con IPCop - El enfoque OpenDNS</title><link>https://linuxmanr4.com/2008/10/03/bloqueando-el-messenger-con-ipcop-el-enfoque-opendns/</link><pubDate>Fri, 03 Oct 2008 21:28:15 +0000</pubDate><guid>https://linuxmanr4.com/2008/10/03/bloqueando-el-messenger-con-ipcop-el-enfoque-opendns/</guid><description>&lt;p>Una forma muy sencilla de bloquear mensajeros (y páginas no deseadas) en una red controlada por un servidor &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
es utilizando los servicios de &lt;a class="link" href="http://www.opendns.com/" target="_blank" rel="noopener"
>OpenDNS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Primero obtenemos una cuenta en OpenDNS y agregamos la dirección IP de nuestro servidor IPCop &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/agregar%5Fred.png"
alt="Agregamos una red">&lt;figcaption>
&lt;p>Agregamos una red&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Una vez que esta dada de alta, simplemente agregamos las categorías que queremos restringir &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/messenger.png"
alt="Con esto se bloquean los pirncipales mensajeros">&lt;figcaption>
&lt;p>Con esto se bloquean los pirncipales mensajeros&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En este caso &lt;em>Instant Messaging&lt;/em>.&lt;/p>
&lt;p>No se les olvide que para que funcione tiene que configurar el servidor para que use a &lt;a class="link" href="https://linuxmanr4.com/2008/05/05/ipcop-y-opendns/" >OpenDNS como sus servidores de Resolución de Dominios&lt;/a>
.&lt;/p>
&lt;p>Haciendo estos pequeños ajustes, este es el resultado !!!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/errormsn.JPG"
alt="Error en la conexiÃ³n al Messenger Numero 81000036">&lt;figcaption>
&lt;p>Error en la conexiÃ³n al Messenger Numero 81000036&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La desventaja es que aplica a todas las computadoras de la red, así que si se quiere permitir que un usuario con síndrome de abstinencia tenga acceso a su &lt;em>Mazzinger&lt;/em>, se tiene que usar otro enfoque.&lt;/p></description></item><item><title>Una VPN net2net usando IPCop y OpenVPN</title><link>https://linuxmanr4.com/2008/10/01/una-vpn-net2net-usando-ipcop-y-openvpn/</link><pubDate>Wed, 01 Oct 2008 18:12:09 +0000</pubDate><guid>https://linuxmanr4.com/2008/10/01/una-vpn-net2net-usando-ipcop-y-openvpn/</guid><description>&lt;p>Me acabo de aventar una VPN net2net entre las dos sucursales del trabajo, claro usando &lt;a class="link" href="https://www.ipcop.org/" target="_blank" rel="noopener"
>IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y el addon OpenVPN de Zerina.&lt;/p>
&lt;p>Lo primero es tener dos servidores ipCop correctamente configurados y con la última actualización de ipCop instalada (al momento de escribir esto es la 1.4.21).&lt;/p>
&lt;p>Luego instalar el addonn de Zerina, tiene que ser el Alpha Release para que funcione, por eso instalé el paquete ZERINA-0.9.7a14 .&lt;/p>
&lt;p>Nada mas hay que tener cuidado, hay que modificar una línea en el script de instalación para que no arroje un error sobre la versión del ipCop. Básicamente hay que cambiar el valor que aparece en la imagen por la versión de ipcop que tienes instalada.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/5qtKUt" target="_blank" rel="noopener"
>https://flic.kr/p/5qtKUt&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Ahora viene lo complicado, hay que leer &amp;hellip; Afortunadamente Zerina tiene un manual en español para hacer una VPN net2net que esta lo bastante completo y bien explicado.&lt;/p>
&lt;p>Siguiendo esos pasos, prácticamente a la primera funcionó la &lt;a class="link" href="https://es.wikipedia.org/wiki/Red_privada_virtual" target="_blank" rel="noopener"
>VPN&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
al primer intento.&lt;/p>
&lt;p>Lo complicado fue hacer los ajustes entre las dos redes, sobre todo por que las direcciones IP&amp;rsquo;s cambiaron, mientran es una red tengo una del tipo 192.168.0.x en la otra es 192.168.10.x así que fue necesario cambiar las direcciones de los &lt;a class="link" href="https://linuxmanr4.com/2016/08/15/como-programar-un-control-remoto-universal-gowin/" >controles remotos&lt;/a>
y esas cosas.&lt;/p>
&lt;p>Otro &lt;a class="link" href="https://linuxmanr4.com/2016/05/03/puedo-imprimir-en-una-impresora-compartida-windows/" >problema fue compartir las impresoras&lt;/a>
, me tomó un rato descubrir que lo mejor era dar de alta los recursos de la otra red usando la ip en lugar de su nombre de red.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/impresora.png"
alt="Impresora en el otro lado de la VPN">&lt;figcaption>
&lt;p>Impresora en el otro lado de la VPN&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>También tuve que desactivar el firewall de windows, que por alguna razón evitaba que pudiera ver los recursos compartidos de la computadora.&lt;/p>
&lt;p>La mejora en el desempeño de la comunicación entre ambas sucursales ha mejorado mucho, ahora solo me falta bloquear algunos servicios en la otra red porque al parecer los usuarios ya descubrieron que se pueden conectar al &lt;em>Mazinger&lt;/em>&amp;hellip; ¡Chales! :)&lt;/p></description></item><item><title>No carga la batería del Blackberry</title><link>https://linuxmanr4.com/2008/09/11/no-carga-la-bateria-del-blackberry/</link><pubDate>Thu, 11 Sep 2008 18:33:27 +0000</pubDate><guid>https://linuxmanr4.com/2008/09/11/no-carga-la-bateria-del-blackberry/</guid><description>&lt;p>A veces me traen todo tipo de aparatos, hoy me trajeron un Blackberry al que extrañamente se le agotaba la batería.&lt;/p>
&lt;p>Me puse a revisarlo un poco, y claro que tenía un problema ¡Lo mojaron!, la batería trae una pequeña calcomanía que se vuelve de color rosa cuando se moja.&lt;/p>
&lt;figure>&lt;img src="http://farm4.static.flickr.com/3139/2849085064%5F5e8de95908.jpg"
alt="Bateria Mojada">&lt;figcaption>
&lt;p>Bateria Mojada&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/09/Etiquetas-de-celulares-mojados.jpg"
alt="Etiquetas de celulares mojados">&lt;figcaption>
&lt;p>Etiquetas de celulares mojados&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Lo que me admira es que funcionará :P&lt;/p>
&lt;p>Voy a intentar el &lt;a class="link" href="https://linuxmanr4.com/2008/12/24/rescatar-celular-mojado-arroz/" >truco del arroz&lt;/a>
, a ver si logra recuperar algo de su funcionalidad anterior.&lt;/p>
&lt;h2 id="actualización-19-sep-2012">Actualización 19-sep-2012
&lt;/h2>&lt;p>Ayer me trajeron un Blackberry con un problema muy similar al que mencionan en los comentarios.&lt;/p>
&lt;p>El equipo conectado a una computadora mediante cable se negaba a cargar, aunque ya lo había hecho de esta forma en ocasiones anteriores.&lt;/p>
&lt;p>Revisé el voltaje de la batería y estaba un poco bajo, pero no totalmente agotada, eso se me hizo raro porque a mi juicio debería de ser suficiente como para arrancar el equipo y continuar con su proceso de carga normal.&lt;/p>
&lt;p>Entonces le aplique este procedimiento a la batería &lt;a class="link" href="https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/" >Cingular 8125 se niega a arrancar (o problemas con la batería&lt;/a>
que ya me ha funcionado en ocasiones anteriores, solo que esta vez utilicé un eliminador de corriente viejo que entrega 6 voltios (tengan cuidado si empiezan a sentir que las terminales se ponen calientes), con este eliminador en unos 2 minutos esta lista para recibir la carga.&lt;/p>
&lt;p>El Blackberry ya pudo iniciar y lo conecté a la computadora, me apareció el icono en la parte superior del teléfono con una batería y un rayito indicando que estaba conectado. Pero poco tiempo después me daba el mensaje de que el equipo tenía la &lt;strong>batería baja&lt;/strong> y que iba a apagarse.&lt;/p>
&lt;p>Mi amigo me dijo que no tenía el cargador original del equipo, y que funcionó conectándolo a uno de los puertos USB de un xBox 360 hasta que estuvo totalmente cargado.&lt;/p>
&lt;p>No se que problema tengan los equipos Blackberry, pero por lo visto es una falla muy común.&lt;/p>
&lt;h2 id="batería-hinchada">Batería hinchada.
&lt;/h2>&lt;p>A continuación les traigo un claro ejemplo de porque no se debe de exponer una batería a la humedad, aunque algunos evitan las sutilezas y zambullir sería una mejor palabra para lo que hacen con sus equipos.&lt;/p>
&lt;p>Si tu batería empieza a verse &lt;strong>abombada&lt;/strong> o &lt;strong>hinchada&lt;/strong> es tiempo de buscar un reemplazo. Las imágenes que les muestro hicieron que la tapa trasera del equipo ya no pudiera cerrar.&lt;/p></description></item><item><title>La llegada del Nazas</title><link>https://linuxmanr4.com/2008/09/11/la-llegada-del-nazas/</link><pubDate>Thu, 11 Sep 2008 17:01:51 +0000</pubDate><guid>https://linuxmanr4.com/2008/09/11/la-llegada-del-nazas/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/09/Atardecer-Nazas-2008-023.jpg" alt="Featured image of post La llegada del Nazas" />&lt;p>Hace 17 años fue la última vez que el lecho seco del río Nazas llevó agua. Pues ayer durante la madrugada vuelve a ocurrir este hecho que atrae tanto la atención de los laguneros.&lt;/p>
&lt;p>Fuimos en la tarde a ver si ya había llegado el agua todo para encontrarnos un gran caos vial.&lt;/p>
&lt;p>Que por cierto estaba tomando fotos desde el puente peatonal cuando una persona de seguridad de Chilchota se acercó y me pidio muy amablemente (sin sarcasmo) que borrara las fotos, me reusé y solamente eliminé las fotos en donde salía el edificio, ¡Chaaales!, no si el miedo no anda en Hummer :P&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-001.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-002.jpg">
&lt;/figure>
&lt;p>Claro que llegamos y ya había gente esperando el agua. Algunos imprudentemente estaban en lecho seco.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-003.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-004.jpg">
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-008.jpg">
&lt;/figure>
&lt;p>Mejor nos fuimos a visitar a una amiga que venía de Saltillo, y es claro que el suceso llama la atención de todos, hasta los polis estaban tomando fotos con su celular, el tráfico puede esperar :P&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-010.jpg">
&lt;/figure>
&lt;p>Cuando regresamos a eso de las 11 de la noche no había nada de agua todavía, así que hoy tempranito en la mañana, mi pingüinita y yo nos lanzamos y ahora si pudimos admirar de este bello panorama.&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-025.jpg?ssl=1"
loading="lazy"
>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-023.jpg?ssl=1"
loading="lazy"
>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-020.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-017.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-016.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-015.jpg?ssl=1"
loading="lazy"
>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-014.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-013.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>Unos jóvenes agarraron una culebra que me supongo también tuvo que ser desalojada por el agua del río.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-019.jpg">
&lt;/figure>
&lt;p>Lo feo del asunto, es que te das cuenta que la construcción de al menos este puente no fue lo adecuada. Fíjense en la base de los pilares, ¡Estaban huecas!&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-022.jpg">
&lt;/figure>
&lt;p>Y la basura que arrastra el Río :S&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/Nazas-2008-028.jpg">
&lt;/figure>
&lt;p>El &lt;a class="link" href="https://linuxmanr4.com/2010/08/03/nuevamente-corre-el-agua-en-el-vado-del-rio-nazas-2010/" >agua volvió a correr sobre el Nazas&lt;/a>
después de 17 años, un acontecimiento digno de verse.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/HB" target="_blank" rel="noopener"
>https://youtu.be/HB&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
_thEUvdF4&lt;/p></description></item><item><title>Resetear contraseñas de Windows con Trinity Rescue Kit</title><link>https://linuxmanr4.com/2008/08/25/resetear-contrasenas-de-windows-con-trinity-rescue-kit/</link><pubDate>Mon, 25 Aug 2008 17:41:28 +0000</pubDate><guid>https://linuxmanr4.com/2008/08/25/resetear-contrasenas-de-windows-con-trinity-rescue-kit/</guid><description>&lt;p>Hoy tuve la oportunidad de resetear una contraseña de un Windows Vista que no se porque dejo de reconocer la contraseña, lo intentamos de mil maneras y nada, así que tomé el CD de &lt;a class="link" href="https://trinityhome.org/" target="_blank" rel="noopener"
>Trinity Rescue Kit&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y con las instrucciones de este video fue cosa de no más de 5 minutos.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Ybdy-UBrFtQ"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Así de sencillo :D&lt;/p></description></item><item><title>Ba-k.com ahora como Bakunos.com</title><link>https://linuxmanr4.com/2008/07/28/ba-kcom-ahora-como-bakunoscom/</link><pubDate>Mon, 28 Jul 2008 18:49:44 +0000</pubDate><guid>https://linuxmanr4.com/2008/07/28/ba-kcom-ahora-como-bakunoscom/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/logo%5F01.png"
alt="Bakunos.com">&lt;figcaption>
&lt;p>Bakunos.com&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Pues aunque parezca increíble a Ba-k.com uno de los foros en español más importantes le robaron el dominio, así que de ahora en adelante será conocido como &lt;a class="link" href="http://www.bakunos.com" target="_blank" rel="noopener"
>bakunos.com&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Aún me parece muy difícil que alguien haya robado un dominio, no me parece del todo imposible, de todos modos si esto ocurrió habla muy mal de Godaddy por no atender un reclamación válida.&lt;/p>
&lt;p>Pero recuerden que los que visitamos este sitio no lo hacemos por su título, si no por su contenido que afortunadamente permanece intacto.&lt;/p>
&lt;p>La historia completa directamente de su autor&amp;hellip; Ba-k ahora bakunos.com? que pasa? cual es real?&lt;/p>
&lt;p>Me pregunto si el malandrín que ahora tiene el dominio Ba-k.com se merece que la horca por ¡Robo de vacas! :P&lt;/p></description></item><item><title>Cuando no tienes la contraseña de la computadora con Windows</title><link>https://linuxmanr4.com/2008/07/22/cuando-no-tienes-la-contrasena-de-la-computadora-con-windows/</link><pubDate>Tue, 22 Jul 2008 19:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2008/07/22/cuando-no-tienes-la-contrasena-de-la-computadora-con-windows/</guid><description>&lt;p>&lt;a class="link" href="https://flic.kr/p/56X7Se" target="_blank" rel="noopener"
>https://flic.kr/p/56X7Se&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Nunca falta aquel usuario que se va de vacaciones, se ofrece algo, vas a revisar y claro&amp;hellip; ¡Cambio su contraseña!, no es necesario formatear y aunque pudieras recuperar los datos, como es algo temporal, no quieres invertirle demasiado tiempo.&lt;/p>
&lt;p>Para eso sale al rescate Linux con &lt;a class="link" href="https://www.system-rescue.org/" target="_blank" rel="noopener"
>System Rescue CD&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y su programa &lt;strong>ntpass&lt;/strong> que te ayuda a resetear las contraseñas de Windows, lo necesario para poder entrar y asignar una nueva contraseña.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/56X7Qp" target="_blank" rel="noopener"
>https://flic.kr/p/56X7Qp&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>System Rescue CD tiene una lista interesante de &lt;a class="link" href="https://www.system-rescue.org/System-tools/" target="_blank" rel="noopener"
>utilerías&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que van desde Herramientas de particionado, para recuperar particiones, antivirus, herramientas de diagnóstico y recuperación.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/56X7SV" target="_blank" rel="noopener"
>https://flic.kr/p/56X7SV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>¿Ustedes conocen otra distro similar o mejor?&lt;/p></description></item><item><title>Piporro y La nave de los monstruos</title><link>https://linuxmanr4.com/2008/07/05/piporro-y-la-nave-de-los-monstruos/</link><pubDate>Sat, 05 Jul 2008 16:26:01 +0000</pubDate><guid>https://linuxmanr4.com/2008/07/05/piporro-y-la-nave-de-los-monstruos/</guid><description>&lt;p>Hoy en la mañana mientras me preparaba para ir al trabajo pasaron esta película &amp;hellip;&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/12/la-nave-de-los-monstruos.jpg">
&lt;/figure>
&lt;p>Recuerdo que la primera vez que la vi hace ya algunos añitos, me cae que los monstruos si me daban miedo, me supongo que en su época fue una superproducción.&lt;/p>
&lt;p>Ahora que la volví a ver, juro que no paraba de reírme, al &lt;em>mostro&lt;/em> esquelético se le veían los hilos que hacían que moviera las quijadas cuando hablaba, había como 5 versiones diferentes de la famosa nave espacial y no se en que momento Lorena Velazquez pasó de extraterrestre querendona en busca de amor a Vampira chupasangre.&lt;/p>
&lt;p>Lo que rescata a la película son las genialidades que soltaba &lt;a class="link" href="https://es.wikipedia.org/wiki/Eulalio_Gonz%C3%A1lez_%22Piporro%22" target="_blank" rel="noopener"
>Eulalio Gonzalez&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
en los diálogos.. ¡Ajuuuuuuuaaaa!&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/-cTNV-ADF64"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>Como configurar una VPN con IPCOP</title><link>https://linuxmanr4.com/2008/06/10/como-configurar-una-vpn-con-ipcop/</link><pubDate>Tue, 10 Jun 2008 23:32:09 +0000</pubDate><guid>https://linuxmanr4.com/2008/06/10/como-configurar-una-vpn-con-ipcop/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/zerina.png"
alt="Zerina VPN para IPCop">&lt;figcaption>
&lt;p>Zerina VPN para IPCop&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>A veces es muy conveniente tener acceso a tu red local a través de Internet, para darle una revisada al ipcop mismo o para revisar algunos equipos.&lt;/p>
&lt;p>Últimamente lo he estado usando para revisar equipos que tienen que estar prendidos muy temprano, lo que hago al despertar es conectarme desde mi casa, reviso que todo este bien y listo. No tengo que ir corriendo al trabajo para ver que todo este bien.&lt;/p>
&lt;p>&lt;a class="link" href="https://linuxmanr4.com/2008/10/01/una-vpn-net2net-usando-ipcop-y-openvpn/" >IPCop tiene una opción de VPN&lt;/a>
, pero en lugar de usarla instalé una que se llama Zerina for IPCop, la documentación es amplia y la instalación es realmente muy sencilla.&lt;/p>
&lt;p>La opción que configuré es la de RoadWarrior (Guerrero del camino ¿A poco no esta suave el nombrecito).&lt;/p>
&lt;p>Bajé el &lt;a class="link" href="https://web.archive.org/web/20120103131824/http://www.openvpn.se/download.html" target="_blank" rel="noopener"
>OpenVPN GUI&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y lo tengo siempre en mi memoria USB junto con mi Certificado, así si ocurre alguna emergencia probablemente pueda ayudar sin tener que trasladarme demasiado.&lt;/p>
&lt;p>Si siguen las instrucciones no tardarán mucho en tener lista la VPN para su red.&lt;/p></description></item><item><title>Aumentando TX Power</title><link>https://linuxmanr4.com/2008/05/20/aumentando-tx-power/</link><pubDate>Tue, 20 May 2008 21:18:10 +0000</pubDate><guid>https://linuxmanr4.com/2008/05/20/aumentando-tx-power/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/tx%5Fpower.png"
alt="TX Power">&lt;figcaption>
&lt;p>TX Power&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Llevaba 3 días con un enlace de 5.3 km. totalmente inestable, excelente por las mañanas, pero al primer intercambio de datos aterrizaba el &lt;a class="link" href="https://linuxmanr4.com/2006/10/10/la-historia-del-chanate-radioactivo/" >Chanate radioactivo&lt;/a>
en la antena y PUUUM , se caía el enlace.&lt;/p>
&lt;p>Moví, ajusté, maldije, volví a mover, devolví el dispositivo a sus valores de fábrica por accidente (no sin antes perder un poco de cabello del susto), volví a maldecir, hasta que por fin se me ocurrió preguntarle a Mirim (el que me inicio en esto del dd-wrt) y me dijó que aumentara el valor de &lt;em>TX Power&lt;/em> en &lt;em>Wireless - Advanced Settings&lt;/em>.&lt;/p>
&lt;p>Anteriormente, me había advertido de que no aumentara mucho ese valor, pero al parecer las condiciones meteorológicas que actualmente predominan en la región está afectando el enlace y tiene cierta lógica, la Comarca Lagunera es un lugar seco y últimamente ha estado nublado y ha caído granizo en un par de ocasiones.&lt;/p>
&lt;p>El valor mágico fue 180, más del doble que su valor inicial que era de 70, pero el enlace se está portando como en sus mejores días, nada más voy a esperar a que estas condiciones pasen y lo voy a bajar poco a poco a su valor inicial.&lt;/p>
&lt;p>¡Gracias Mirim!&lt;/p></description></item><item><title>IPCop y OpenDNS</title><link>https://linuxmanr4.com/2008/05/05/ipcop-y-opendns/</link><pubDate>Mon, 05 May 2008 19:09:15 +0000</pubDate><guid>https://linuxmanr4.com/2008/05/05/ipcop-y-opendns/</guid><description>&lt;p>En estos días modifique el IPCop que tengo para que utilizara el servicio de &lt;a class="link" href="https://www.opendns.com" target="_blank" rel="noopener"
>OpenDNS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>¿Porque usar OpenDNS? tuve algunos problemas con los DNS de mi proveedor de internet y se requería una rápida respuesta. Al probar la resolución de OpenDNS fue correcta y eso fue más que suficiente para hacer el cambio.&lt;/p>
&lt;p>Pero no solamente por eso, el hecho de que ofrezca una protección contra phishing y mediante la creación de una cuenta tengas la posibilidad de &lt;a class="link" href="https://linuxmanr4.com/2019/01/25/pfblockerng-ayuda-a-bloquear-publicidad-sitios-maliciosos-y-otras-amenazas/" >bloquear sitios&lt;/a>
potencialmente inseguros me da cierta tranquilidad en la red que administro.&lt;/p>
&lt;p>El proceso es muy sencillo, basta con editar el archivo&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">nano&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ipcop&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ethernet&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">settings&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y modificar los valores de DNS1 y DNS2 a :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">208.67.222.222
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">208.67.220.220
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>que son los que utiliza &lt;strong>OpenDNS&lt;/strong>.&lt;/p>
&lt;p>El resultado es simple y efectivo, al intentar accesar una página que esta catalogada dentro de una categoría prohibida se bloquea su acceso.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2274/2468699484%5F3c9fd1c825%5Fo.jpg"
alt="Bloqueo OpenDNS">&lt;figcaption>
&lt;p>Bloqueo OpenDNS&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Gnome Do en PCLinuxOS</title><link>https://linuxmanr4.com/2008/04/03/gnome-do-en-pclinuxos/</link><pubDate>Thu, 03 Apr 2008 21:33:27 +0000</pubDate><guid>https://linuxmanr4.com/2008/04/03/gnome-do-en-pclinuxos/</guid><description>&lt;p>&lt;a class="link" href="https://flic.kr/p/4CMFbX" target="_blank" rel="noopener"
>https://flic.kr/p/4CMFbX&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Hace tiempo intenté instalar Gnome Do en PCLinux sin mucho éxito. Ayer de curiosidad revisé y ya estaba disponible el paquete para su descarga.&lt;/p>
&lt;p>Sin embargo no funcionaba la combinación de teclas de arranque del programa ( Super + Espacio ).&lt;/p>
&lt;p>Al correr la aplicación desde una terminal me apareció el siguiente error.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Could not add global keybinding: libtomboy
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Al parecer es un problema con la librería &lt;em>libtomboy&lt;/em>, buscando un poco me encontré en los &lt;a class="link" href="http://ubuntuforums.org/showthread.php?t=305447&amp;amp;page=2" target="_blank" rel="noopener"
>foros de ubuntu&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
una interesante sugerencia.&lt;/p>
&lt;p>Utilizar a Compiz Fusión para arrancar el programa.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4CMFc2" target="_blank" rel="noopener"
>https://flic.kr/p/4CMFc2&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Tan sencillo como iniciar el &lt;em>Compiz Settings Manager&lt;/em> y agregar las entradas correctas en la sección de &lt;em>General Options&lt;/em>.&lt;/p>
&lt;p>Me supongo que con actualizaciones posteriores ya no será necesario hacer esto, pero mientras tanto ya está solucionado. :P&lt;/p></description></item><item><title>Mis experiencias usando DD-WRT en un equipo WAP54G</title><link>https://linuxmanr4.com/2008/04/02/dd-wrt-en-wap54g/</link><pubDate>Wed, 02 Apr 2008 22:30:25 +0000</pubDate><guid>https://linuxmanr4.com/2008/04/02/dd-wrt-en-wap54g/</guid><description>&lt;p>&lt;a class="link" href="https://flic.kr/p/4CEk8N" target="_blank" rel="noopener"
>https://flic.kr/p/4CEk8N&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>¡Esta vivoooooo!&lt;/p>
&lt;p>Después de pasarme dos días experimentando, al fin tengo un resultado más o menos estable con &lt;a class="link" href="https://dd-wrt.com/" target="_blank" rel="noopener"
>dd-wrt&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y los linksys WAP54G.&lt;/p>
&lt;p>Instalé el firmware &lt;strong>dd-wrt.v24-9344_NEWD_micro.bin&lt;/strong> que fue el que recomendaron en los foros para un WAP54G v3.1 aunque también lo instalé en otro versión 2.0&lt;/p>
&lt;p>Hasta ahorita he logrado mantener un buen enlace de 5 km, con estos aparatos, todavía no estoy seguro porque fue que dejaron de funcionar los anteriores con el firmware original.&lt;/p>
&lt;p>Tengo la sospecha de que era por la saturación de canales en el área. Cuando instalé los dispositivos hace ya casi dos años el territorio estaba prácticamente virgen, ahora que hice una pequeña exploración del área.&lt;/p>
&lt;p>Gracias a la opción &lt;em>Site Survey&lt;/em> me di cuenta de que el lugar estaba bastante saturado, me llegué a topar con hoteles, universidades y una buena cantidad de infinitums ofreciendo a diestra y siniestra sus señales.&lt;/p>
&lt;p>Cuando menos 3 puntos de acceso ofrecían sus servicios en el mismo canal que el mío y no se porque extraña razón el canal 11 era el único que funcionaba medianamente bien.&lt;/p>
&lt;h2 id="canales-adicionales">Canales adicionales
&lt;/h2>&lt;p>Aprovechando que el nuevo firmware ofrece 3 canales más decidí probarlos (normalmente son del 1 al 11, dd-wrt llegá hasta el 14), Lo que les puedo decir es que se logran muy buenas velocidades en el canal 14 como se puede ver en la gráfica.&lt;/p>
&lt;p>Quiero agradecer la ayuda proporcionada por &lt;em>El Fantasma&lt;/em>, aunque por un error de comunicación y casi al final de la charla me di cuenta de que todos sus consejos estaban enfocados a los WRT54G (que tienen un router incorporado) y que no eran al 100% aplicables con los &lt;a class="link" href="https://linuxmanr4.com/2007/12/18/antenas-baratas-2-la-ez-12/" >WAP54G&lt;/a>
que solamente tienen un puerto Ethernet.&lt;/p>
&lt;h2 id="tx-power">TX Power
&lt;/h2>&lt;p>También noté que el valor &lt;em>TX Power&lt;/em> se estableció por default a 70 ( cuando de fabrica tienen un valor de 28).&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4CAhDF" target="_blank" rel="noopener"
>https://flic.kr/p/4CAhDF&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Recordé que mirim me había recomendado que no estableciera un valor mayor de 80 porque podría quemar el aparato así que mejor le puse un valor más conservador de 50, aunque de todos modos no estoy muy tranquilo que digamos.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4CEB8y" target="_blank" rel="noopener"
>https://flic.kr/p/4CEB8y&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En general es muuuy bueno este firmware, solo una recomendación que probablemente les puede ahorrar muchos dolores de cabeza, cada vez que hagan un cambio, primero guárdalo y luego aplíquelo. Se ahorrarán una buena cantidad de tiempo, se los aseguró :P&lt;/p></description></item><item><title>Problema con GRUB, Falta NTLDR</title><link>https://linuxmanr4.com/2008/03/14/problema-con-grub-falta-ntldr/</link><pubDate>Fri, 14 Mar 2008 19:00:21 +0000</pubDate><guid>https://linuxmanr4.com/2008/03/14/problema-con-grub-falta-ntldr/</guid><description>&lt;p>&lt;a class="link" href="https://flic.kr/p/4ydLvG" target="_blank" rel="noopener"
>https://flic.kr/p/4ydLvG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Aquí me tienen escribiendo desde Fedora 8, no sin antes llevarme un ligero sustito.&lt;/p>
&lt;p>Resulta que instalé sin muchos contratiempos, pero al reiniciar y verificar que pudiera arrancar correctamente con mi partición de Windows me aparece este error.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4ydLvy" target="_blank" rel="noopener"
>https://flic.kr/p/4ydLvy&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Falta NTLDR&lt;br>
Ctrl + Alt + Supr para reiniciar.&lt;/strong>&lt;/p>&lt;/blockquote>
&lt;p>Después de recoger mi cabello, comprobar que fedora iniciaba correctamente y que mis particiones de Windows estaban completas, pues a buscar en Google la posible solución.&lt;/p>
&lt;p>Intenté varias cosas, incluso estuve a punto de agarrar el cd de instalación de Windows para &amp;ldquo;recuperar&amp;rdquo; el MBR del disco duro (o sea tumbar &lt;a class="link" href="https://linuxmanr4.com/2014/04/05/de-grub-fsck-y-mi-compu-mx/" >GRUB&lt;/a>
) cuando di con esta solución que me funcionó.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4ydLvJ" target="_blank" rel="noopener"
>https://flic.kr/p/4ydLvJ&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Inicie una terminal y teclee &lt;code>su -&lt;/code> para tener privilegios de root.&lt;/p>
&lt;p>Edité el archivo de configuración de GRUB con&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">gedit /boot/grub/grub.conf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y modifique el archivo de esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">title&lt;/span> &lt;span class="n">Windows&lt;/span> &lt;span class="n">XP&lt;/span> &lt;span class="n">UE7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#agregado para evitar la FALTA de NTLDR&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rootnoverify&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">chainloader&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Para obtener esto:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">title&lt;/span> &lt;span class="n">Windows&lt;/span> &lt;span class="n">XP&lt;/span> &lt;span class="n">UE7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">#agregado para evitar la FALTA de NTLDR&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">map&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">map&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rootnoverify&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">hd1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">chainloader&lt;/span> &lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con eso pude iniciar sin problemas.&lt;/p></description></item><item><title>Cambiando el firmware de un WRT54g a DD-WRT</title><link>https://linuxmanr4.com/2008/03/12/cambiando-el-firmware-de-un-wrt54g-a-dd-wrt/</link><pubDate>Wed, 12 Mar 2008 21:07:27 +0000</pubDate><guid>https://linuxmanr4.com/2008/03/12/cambiando-el-firmware-de-un-wrt54g-a-dd-wrt/</guid><description>&lt;p>Hoy en la mañana me pasó algo curioso en el trabajo, recibí una llamada de soporte en la que una computadora no tenía conexión inalámbrica a la red.&lt;/p>
&lt;p>Revisé lo usual y curiosamente la computadora sí se conectaba pero no podía negociar su dirección IP mediante el servidor DCHP del dispositivo.&lt;/p>
&lt;p>Aplique la primera ley de windows al aparatito, o sea lo reinicié y nada&amp;hellip; siguió en las mismas.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4xNcgi" target="_blank" rel="noopener"
>https://flic.kr/p/4xNcgi&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>El pequeño router es un &lt;a class="link" href="https://es.wikipedia.org/wiki/WRT54G" target="_blank" rel="noopener"
>WRT54G&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
de la marca &lt;a class="link" href="https://linuxmanr4.com/2006/05/09/enlaces-inalambricos-usando-linksys-wap54g/" >Linksys&lt;/a>
y hace tiempo que tenía la tentación de cambiarle el firmware por un &lt;a class="link" href="https://dd-wrt.com/" target="_blank" rel="noopener"
>DD-WRT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Pero por varias razones no me había atrevido, porque no entendía bien las instrucciones, por el miedo a echarlo a perder y terminar con un pisapapeles demasiado caro, bueno el chiste es que hice a un lado todo eso y me aplique a buscar la información necesaria para hacerlo.&lt;/p>
&lt;p>Encontré los &lt;a class="link" href="http://www.bitsum.com/openwiking/owbase/ow.asp?WRT54G5_CFE#h9" target="_blank" rel="noopener"
>pasos a seguir&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, espeficicamente en la sección que dice &lt;strong>For the WRT54G v5, v5.1, and v6 ONLY&lt;/strong>, ya que el mio es una versión 6.&lt;/p>
&lt;p>Después de seguir los pasos y en un redoble de tambores apareció la siguiente pantalla.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4xNchV" target="_blank" rel="noopener"
>https://flic.kr/p/4xNchV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>TATAAAAAAAAAN !!!, lo demás fue configurarlo de igual manera que como estaba anteriormente para que el cambio fuera transparente a mis usuarios pero fue algo muy sencillo, ahora veo que me aparecen mas opciones, con calma voy a ver que más se puede hacer con este firmware.&lt;/p></description></item><item><title>Cómo apoyar el software libre sin ser un activista</title><link>https://linuxmanr4.com/2008/03/07/como-apoyar-el-software-libre-sin-ser-un-activista/</link><pubDate>Fri, 07 Mar 2008 19:23:39 +0000</pubDate><guid>https://linuxmanr4.com/2008/03/07/como-apoyar-el-software-libre-sin-ser-un-activista/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/03/usa-software-libre.png" alt="Featured image of post Cómo apoyar el software libre sin ser un activista" />&lt;p>Muchos empezamos en el mundo del software libre con un entusiasmo tan exacerbado que se contagia (o puede caer mal según el caso), queremos que todos instalen linux, odien el sobreprecio de las Macs o las inseguridades intrínsecas de Windows, pero siendo sincero, no todos comparten nuestros gustos y aficiones.&lt;/p>
&lt;p>Hace una buena cantidad de años mi buen amigo español &lt;strong>RamónCorominas&lt;/strong> me mandó este texto que no tiene desperdicio.&lt;/p>
&lt;p>Es una guía para promover el &lt;a class="link" href="https://linuxmanr4.com/2014/05/20/el-software-libre-como-herramienta-para-la-educacion/" >software libre&lt;/a>
sin ideas radicales, apoyando en lo que se puede, aún si no se tienen habilidades técnicas, lo importante es iniciar un cambio, que no pare, que continúe en movimiento y que los demás descubran por gusto las bondades del software libre.&lt;/p>
&lt;p>Espero que lo disfruten.&lt;/p>
&lt;h2 id="cómo-apoyar-el-software-libre-sin-ser-un-activista">Cómo apoyar el software libre sin ser un activista.
&lt;/h2>&lt;p>&lt;em>Por &lt;a class="link" href="https://x.com/tinitun" target="_blank" rel="noopener"
>Ramón Corominas&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/em>&lt;/p>
&lt;p>Expongo a continuación algunas formas de apoyar el software libre (o al menos no apoyar al software propietario), que no requieren de programación, ni de conocimientos técnicos o de traducción, ni de compromiso alguno, ni de dinero… Y tampoco de demasiado tiempo.&lt;/p>
&lt;h3 id="1-interésate-por-el-software-libre">1. Interésate por el software libre.
&lt;/h3>&lt;p>Nada más simple, simplemente lee algo sobre el tema, aprende de qué va, asimila su existencia e interioriza lo que significa que el código sea abierto y por lo tanto pueda ser mejorado por cualquiera con los conocimientos apropiados.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/03/libertades-del-software-libre.png"
alt="libertades del software libre">&lt;figcaption>
&lt;p>libertades del software libre&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Respira el espíritu colaborativo y la idea de que se pueden hacer cosas entre todos. No tienes que hacerlo tú, no te preocupes, simplemente piensa en los beneficios que eso supone para todos, y siéntete bien porque hay personas que colaboran activamente para crear una sociedad más justa.&lt;/p>
&lt;h3 id="2-haz-notar-tu-interés-a-otros">2. Haz notar tu interés a otros.
&lt;/h3>&lt;p>Informa a otras personas sobre la existencia y concepto del software libre. Informa a las instituciones que te proporcionan formación gratuita en software propietario de que también te interesa que lo hagan con los programas de software libre que puedan ser equiparables o al menos con conceptos parecidos.&lt;/p>
&lt;p>Diles que quieres conocer sus posibilidades. Y si el software propietario supone un coste para ti y el software libre no, exige a esas mismas instituciones que te den formación en el programa de software libre. Con&lt;br>
eso conseguirás varias cosas:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Ayudar (¿obligar?) a que las instituciones conozcan el software libre&lt;/strong> y a que lo tengan en cuenta tanto en sus planes formativos como (quizá)&lt;br>
en sus planes económicos.&lt;/li>
&lt;li>&lt;strong>Ayudar (¿obligar?) a que las instituciones dejen de consentir los&lt;br>
monopolios establecidos por el software propietario en la actualidad&lt;/strong>,&lt;br>
alegando que lo pide la mayoría. Exigiendo formación en software libre&lt;br>
puedes ayudar a generar en las instituciones la necesidad de un cambio&lt;br>
en sus políticas.&lt;/li>
&lt;li>&lt;strong>Mejorar la calidad de la formación para quienes vengan detrás de ti&lt;/strong>.&lt;br>
Los formadores tendrán más experiencia y sabrán resolver mejor las dudas.&lt;/li>
&lt;li>&lt;strong>Incentivar el conocimiento del software libre por otros usuarios&lt;/strong>. Al&lt;br>
aumentar las opciones de formación ofrecidas por las propias instituciones, otros usuarios conocerán su existencia. Si las instituciones pueden ofrecer más opciones de formación, lo lógico es que planteen las alternativas a las personas a las que van a formar.&lt;/li>
&lt;li>&lt;strong>Mejorar la calidad del propio software libre&lt;/strong>, al aumentar el&lt;br>
conocimiento del mismo y hacer posible detectar antes los fallos de&lt;br>
programación, o las mejoras que se pueden introducir.&lt;/li>
&lt;li>&lt;strong>Forzar una bajada de precios del software propietario&lt;/strong>, al aumentar la&lt;br>
competencia.&lt;/li>
&lt;/ul>
&lt;h3 id="3-prueba-el-software-libre">3. Prueba el software libre.
&lt;/h3>&lt;p>No hace falta que programes nada, simplemente pruébalo y decide si es apropiado para ti. Tampoco hace falta que sigas usándolo si no te convence, pero al menos dale una oportunidad. &lt;strong>Compara&lt;/strong>. De esa manera, podrás opinar por experiencia propia y no basándote en lo que opinen los demás, que suelen ser poco objetivos (tanto si están a favor como en contra). En definitiva, ten criterio propio.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/03/excelente.gif"
alt="excelente">&lt;figcaption>
&lt;p>excelente&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h3 id="4-da-tu-opinión-sobre-el-software-libre">4. Da tu opinión sobre el software libre.
&lt;/h3>&lt;p>Tanto si te convence lo que has probado como si no, explica por qué, qué cosas buenas le ves y qué fallos encuentras, y también qué mejoras te gustaría que tuviera.&lt;/p>
&lt;p>&lt;strong>Realimenta&lt;/strong>. Si puedes, ponte en contacto con los desarrolladores y hazles llegar tus críticas o sugerencias… O simplemente tus ánimos. Para muchos desarrolladores que programan software libre de forma desinteresada, el apoyo de los usuarios puede ser el mejor incentivo y, desde luego, harás que se sientan motivados para seguir desarrollando los programas. La mejor recompensa es saber que “hay alguien ahí” utilizando las aplicaciones.&lt;/p>
&lt;h3 id="5-usa-software-libre">5. Usa software libre.
&lt;/h3>&lt;p>Si has probado algún programa de software libre que te convence, sigue usándolo y dile a otros que lo usas y por qué. Dale publicidad. &lt;strong>Apasiónate&lt;/strong> por la idea que hay detrás del desarrollo colaborativo y transmite ese entusiasmo.&lt;/p>
&lt;p>No sólo lograrás que aumente la motivación de los programadores, también darás un toque de atención a las empresas de software propietario para que mejoren sus productos, y muy probablemente la competencia ayudará a que bajen los precios de los programas comerciales.&lt;/p>
&lt;p>Ambas fórmulas pueden y deben coexistir. El software libre puede ayudar muchísimo a optimizar la relación calidad-precio de los programas comerciales.&lt;/p>
&lt;h3 id="6-no-utilices-sin-pagarlos-programas-comerciales">6. No utilices sin pagar los programas comerciales.
&lt;/h3>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/03/copyright.jpg"
alt="copyright">&lt;figcaption>
&lt;p>copyright&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Este es quizá el punto más difícil de entender (y desgraciadamente, de cumplir). Aunque en un principio puede parecer que nos beneficia, usar una copia de un programa sin pagar la licencia, ayuda, sobre todo, a mantener la posición predominante de la empresa que fabrica ese programa (aunque éstas, por supuesto, lo negarán).&lt;/p>
&lt;p>Por un lado, les permite justificar sus elevados precios y echar balones fuera acusando a otros de ser los culpables de sus propias políticas de precios, argumentando que las copias ilegales suponen un “robo” (para mí esto es una falacia, porque por definición el robo supone una reducción de stocks del producto que aquí no se da).&lt;/p>
&lt;p>Por otro lado, extender el uso de programas sin licencia ayuda a convertir a estos programas en “estándares de facto”, lo que a la larga no hace sino garantizar el monopolio. Todos sabemos que gran parte del éxito de los productos de &lt;a class="link" href="https://www.microsoft.com" target="_blank" rel="noopener"
>Microsoft&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
se basa en su facilidad para ser copiados y &amp;ldquo;crackeados&amp;rdquo;, no en su calidad intrínseca. Si quieres que haya más opciones, o simplemente que bajen los precios de los programas comerciales existentes para no tener que copiarlos ilegalmente, lo mejor es empezar por no utilizarlos.&lt;/p>
&lt;p>Además, como hemos visto, algunos cracks pueden suponer otros riesgos&lt;br>
para la seguridad del sistema.&lt;/p>
&lt;h3 id="7-y-si-no-te-parece-aceptable-ninguna-de-estas-opciones">7. Y si no te parece aceptable ninguna de estas opciones…
&lt;/h3>&lt;p>Si después de todo ninguna de esas posibilidades es buena o válida para ti, NO TE QUEJES (o no demasiado). Puedes no estar interesado en el software libre, o no estar interesado en difundirlo; puedes no tener tiempo o ganas de probarlo, o no tener tiempo o ganas de comentarlo, o no usarlo porque no te convence; puedes incluso hacer algo ilícito (que no ilegal) y usar un programa no autorizado. Pero, desde luego, si no estás dispuesto a hacer nada por cambiar la situación, indirectamente la estás fomentando, y habrá que suponer que estás conforme con ella.&lt;/p>
&lt;p>Y el tiempo que pierdes quejándote podrías estar empleándolo en hacer algo constructivo para que la situación cambie.&lt;/p></description></item><item><title>La antena del escurridor de aluminio para el Wifi</title><link>https://linuxmanr4.com/2008/03/03/la-antena-del-escurridor-de-aluminio-wifi/</link><pubDate>Mon, 03 Mar 2008 16:15:29 +0000</pubDate><guid>https://linuxmanr4.com/2008/03/03/la-antena-del-escurridor-de-aluminio-wifi/</guid><description>&lt;p>Hace rato que tenía la inquietud de hacer una antena para mi adaptador USB, un &lt;a class="link" href="https://linuxmanr4.com/2007/09/12/adaptador-usb-wireless-enuwi-g2-de-encore-con-ubuntu-la-solucion-que-me-funciono/" >ENUWI-G2&lt;/a>
que ya ha sido motivo de varios artículos.&lt;/p>
&lt;p>Quería algo sencillo y que no fuera necesario modificar mi tarjeta USB, primero porque no soy muy bueno en la electrónica y no quería echarla a perder por algún error que cometiera.&lt;/p>
&lt;h2 id="la-ez-12">La EZ-12
&lt;/h2>&lt;p>El primer prototipo fue la &lt;a class="link" href="https://linuxmanr4.com/2007/12/18/antenas-baratas-2-la-ez-12/" >EZ-12&lt;/a>
pero siguiendo las instrucciones duplique su tamaño.&lt;/p>
&lt;figure>&lt;img src="http://lh6.google.es/inguanzo/R8wcGqm3rII/AAAAAAAABCA/PqRHG1YACrU/s288/100%5F0115.JPG">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.google.es/inguanzo/R8wcIKm3rJI/AAAAAAAABCI/k0rH0Wc0EBY/s288/100%5F0116.JPG">
&lt;/figure>
&lt;p>En la cruz del diagrama fui cortando el cartón hasta que se cupiera el adaptador, cuidando de no quedará muy flojo para que no fuera necesario utilizar una cinta para fijarla.&lt;/p>
&lt;p>Los resultados de esta antena fueron significativos, pude ver varias redes que estaban a mi alrededor y que sin la antena ni siquiera aparecían. Sin embargo la mejora en la señal no fue suficiente como para lograr una conexión.&lt;/p>
&lt;h2 id="la-antena-del-bote-de-resistol">La antena del bote de resistol.
&lt;/h2>&lt;p>Mi siguiente intento fue con un bote de Resistol de tamaño mediano, hecho de pura lámina, le hice un par de orificios estratégicamente localizados.&lt;/p>
&lt;figure>&lt;img src="http://lh3.google.es/inguanzo/R8wcR6m3rPI/AAAAAAAABC4/7o5bET9iLOQ/s288/100%5F0117.JPG">
&lt;/figure>
&lt;figure>&lt;img src="http://lh5.google.es/inguanzo/R8wcJam3rKI/AAAAAAAABCQ/euIKqCvaILI/s288/100%5F0118.JPG">
&lt;/figure>
&lt;p>El que mejor funcionó fue el orificio que hice más cercano al fondo, nuevamente logré ver las redes que estaban disponibles a mi alrededor (y algunas nuevas), esta vez si logré concretar un enlace, pero demasiado inestable.&lt;/p>
&lt;h2 id="la-antena-del-escurridor-de-aluminio">La antena del escurridor de aluminio.
&lt;/h2>&lt;p>Fui con mi pingüina a surtir la despensa de la semana a Soriana, cuando vi un escurridor de aluminio de 22 cm , si no servía como antena su destino siguiente sería la cocina de mi chaparrita :D .&lt;/p>
&lt;p>Pero no fue así, funcionó muy bien, con una liga y algo de cinta de aislar logre obtener muy buenos resultados.&lt;/p>
&lt;figure>&lt;img src="http://lh4.google.es/inguanzo/R8wcLKm3rLI/AAAAAAAABCY/BLCEszlZMQA/s400/100%5F0122.JPG">
&lt;/figure>
&lt;figure>&lt;img src="http://lh4.google.es/inguanzo/R8wcNKm3rMI/AAAAAAAABCg/o8Dhoe6B13Q/s400/100%5F0123.JPG">
&lt;/figure>
&lt;p>Luego conseguí una extensión usb un poco más larga para orientar la antena por la ventana de la recamará y ¡Voalá!, casi sin mover nada ya estaba conectado.&lt;/p>
&lt;figure>&lt;img src="http://lh5.google.es/inguanzo/R8wcOam3rNI/AAAAAAAABCo/l8T7YFHYRt0/s400/100%5F0124.JPG">
&lt;/figure>
&lt;figure>&lt;img src="http://lh5.google.es/inguanzo/R8wcQam3rOI/AAAAAAAABCw/IHnTkYRCpMU/s400/100%5F0126.JPG">
&lt;/figure>
&lt;p>Muchas de las ideas sobre los objetos que podía utilizar como antenas las obtuve de este sitio en el que ilustra diferentes diseños caseros.&lt;/p>
&lt;p>Costo total del proyecto, 30 pesos ya que el escurridor estaba en oferta :D&lt;/p></description></item><item><title>Cuando la CURP no se encuentra en la base de datos</title><link>https://linuxmanr4.com/2008/02/15/curp-no-se-encuentra-en-la-base-de-datos/</link><pubDate>Fri, 15 Feb 2008 15:35:47 +0000</pubDate><guid>https://linuxmanr4.com/2008/02/15/curp-no-se-encuentra-en-la-base-de-datos/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/02/pexels-photo-325229.jpeg" alt="Featured image of post Cuando la CURP no se encuentra en la base de datos" />&lt;p>En el trabajo frecuentemente me piden que les imprima la CURP (Clave Única de Registro de Población), y es que este documento se esta volviendo cada vez más indispensable. El problema es cuando la CURP no se encuentra en la base de datos.&lt;/p>
&lt;h2 id="qué-es-la-curp">¿Qué es la CURP?
&lt;/h2>&lt;p>La definición oficial de la CURP es la siguiente:&lt;/p>
&lt;blockquote>
&lt;p>La Clave Única de Registro de Población es un instrumento que permite registrar en forma individual a todas las personas que residen en el territorio nacional, así como a los mexicanos que radican en el extranjero y sirve como llave de acceso a las bases de datos de la Administración Pública Federal y entidades federativas.&lt;/p>&lt;/blockquote>
&lt;p>A la mayoría no nos importaría mucho este numerito, a no ser que te lo piden para hacer casi cualquier trámite ante el gobierno. Al principio se suponía que la CURP iba a ser reemplazar a otros números gubernamentales como el del Seguro Social o el RFC, pero la realidad es que se ha convertido en un número más que hay que saber, tener y conservar.&lt;/p>
&lt;h2 id="cómo-se-obtiene-la-curp">¿Cómo se obtiene la CURP?
&lt;/h2>&lt;p>Generalmente no hay mayor problema, se abre  la &lt;a class="link" href="https://www.gob.mx/curp/" target="_blank" rel="noopener"
>página para buscar la CURP&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Se llena un formulario y si todo sale bien el sistema te devuelve un documento para imprimir que contiene tu CURP.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/consulta-curp-agosto-2019.png"
alt="Nueva página para consultar la CURP (agosto 2019).">&lt;figcaption>
&lt;p>Nueva página para consultar la CURP (agosto 2019).&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="qué-hacer-si-lacurp-no-se-encuentra-en-la-base-de-datos">¿Qué hacer si la CURP no se encuentra en la base de datos?
&lt;/h2>&lt;p>Si la persona que busca su CURP es mayor de 50 años la búsqueda de la CURP puede complicarse considerablemente. Si la búsqueda no arroja un resultado obtendrá una Constancia que siendo sinceros, no sirve de nada.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2291/2265448060%5F41541e8e8d.jpg"
alt="El número 800">&lt;figcaption>
&lt;p>El número 800&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Al menos tiene un número telefónico para informes. Marque el número &lt;strong>800 911 1111&lt;/strong>, que es el número de atención del &lt;a class="link" href="https://www.gob.mx/segob/renapo" target="_blank" rel="noopener"
>Registro Nacional de Población&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
 para averiguar que es lo que procede en estos casos. Uffff, reto a cualquiera a que aguante más de un minuto la grabación de &amp;ldquo;De momento nuestros operadores se encuentran ocupados, le suplicamos permanecer en la línea, Gracias &amp;hellip; De momento &amp;hellip;&amp;rdquo; y así en un ciclo irritante que te invita a colgar.&lt;/p>
&lt;p>También existen Módulos para hacer correcciones y aclaraciones. Para localizar el más cercano a usted puede consultar este &lt;a class="link" href="https://www.gob.mx/cms/uploads/attachment/file/39942/DirectoriodeModulosCURP.pdf" target="_blank" rel="noopener"
>Directorio de módulos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Pero lo más probable es que no se escape de ir a su oficina del  &lt;strong>Registro Civil&lt;/strong> más cercana para que lo asesoren o hacer su trámite. Una vez que esté registrado podrá consultar su CURP por internet las veces siguientes que lo necesite.&lt;/p></description></item><item><title>Como comprar memoria para una portátil</title><link>https://linuxmanr4.com/2008/02/05/como-comprar-memoria-para-una-portatil/</link><pubDate>Tue, 05 Feb 2008 16:24:41 +0000</pubDate><guid>https://linuxmanr4.com/2008/02/05/como-comprar-memoria-para-una-portatil/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/kingston-busqueda-marca-modelo.jpg" alt="Featured image of post Como comprar memoria para una portátil" />&lt;p>Debido al posto sobre los drivers de XP para una &lt;a class="link" href="https://web.archive.org/web/20120121193353//2008/01/04/acer-4520-con-windows-xp/" target="_blank" rel="noopener"
>acer 4520 ( y 4320)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
han surgido varias dudas con respecto a otros temas.&lt;/p>
&lt;p>Betos escribe:&lt;/p>
&lt;p>&lt;em>&amp;ldquo;Hola, tengo una lap aspire 4520 y quisiera cambiar la memoria Ram a 1Gb, ¿como debo comprar?, es decir que características, etc. y si la instalación es sencilla o debe ser especializado..Gracias&amp;rdquo;&lt;/em>&lt;/p>
&lt;p>Pues veras Beto, la instalación no es complicada, solamente quitar unos tornillos, quitar la memoria anterior y colocar la nueva.&lt;/p>
&lt;p>Yo generalmente voy al sitio de &lt;a class="link" href="https://www.kingston.com/latam" target="_blank" rel="noopener"
>Kingston&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y voy donde dice &lt;strong>Búsqueda por sistema / dispositivo&lt;/strong> para encontrar algo de información sobre el tema.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/05/kingston-busqueda-marca-modelo.jpg"
alt="busqueda de memorias en kingston">&lt;figcaption>
&lt;p>busqueda de memorias en kingston&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2008/02/memoriasji6.jpg">
&lt;/figure>
&lt;p>En lo primero que me fijo es en el máximo de memoria que permite, por ejemplo, cuando busque una memoria para mi celular, me di cuenta que el máximo soportado era de 2 GB, así que ni para que invertir en una memoria de 4 GB ¿cierto?.&lt;/p>
&lt;p>No mencionas que memoria tienes actualmente instalada, pero me supongo que han de ser unos 512 MB, que muy probablemente estén repartidos en 2 memorias de 256 MB para aprovechar la tecnología &lt;a class="link" href="https://es.wikipedia.org/wiki/Dual_Channel" target="_blank" rel="noopener"
>Dual Channel&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
. Todo esto lo supongo porque tuve muy poco tiempo la computadora a la que le hice el &lt;em>downgrade&lt;/em> de Vista a XP y no me fije en esos detalles.&lt;/p>
&lt;p>Dicho esto tienes la opción de comprar dos memorias idénticas de 512 MB (para utilizar el Dual Channel) o comprar una sola tarjeta de 1 GB, pero revisa los costos, a lo mejor te conviene más comprar 2 tarjetas de 1 GB.&lt;/p>
&lt;p>Ahora ya sabes que memoria pedir, incluso puedes usar el código de referencia de Kingston ya que es una marca muy popular.&lt;/p>
&lt;p>¡Suerte en tu búsqueda!&lt;/p></description></item><item><title>Como hacer un irrigador casero para el jardín</title><link>https://linuxmanr4.com/2008/01/31/como-hacer-un-irrigador-casero-para-el-jardin/</link><pubDate>Thu, 31 Jan 2008 20:28:47 +0000</pubDate><guid>https://linuxmanr4.com/2008/01/31/como-hacer-un-irrigador-casero-para-el-jardin/</guid><description>&lt;p>En las tiendas podemos ver muchos tipos de &lt;a class="link" href="https://www.amazon.com.mx/Bearbro-autom%C3%A1tico-giratorio-cobertura-ajustable/dp/B08MQ32ZZL/" target="_blank" rel="noopener"
>irrigadores&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para el jardín, pero esta es una forma sencilla de &lt;a class="link" href="https://linuxmanr4.com/category/mejorando-la-casa/" >fabricar&lt;/a>
uno.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4pnaFf" target="_blank" rel="noopener"
>https://flic.kr/p/4pnaFf&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="material-necesario">&lt;strong>Material necesario.&lt;/strong>
&lt;/h2>&lt;ul>
&lt;li>Una botella de plástico. Sirve cualquier tipo de botella, de refresco, agua purificada, etc&amp;hellip;&lt;/li>
&lt;li>Manguera.&lt;/li>
&lt;li>Cinta de aislar.&lt;/li>
&lt;li>Un clavo&lt;/li>
&lt;/ul>
&lt;h2 id="forma-de-elaboración">Forma de elaboración
&lt;/h2>&lt;p>Prácticamente no tiene mayor ciencia, se hacen unos agujeros con el clavo a la botella de plástico, nada más cuidando con la distribución para que el riego sea uniforme y procurando que no sean muy grandes para que se logre el efecto que queremos.&lt;/p>
&lt;p>Lo más difícil es lograr que la manguera no se salga de la botella por la presión, esto se puede lograr con cinta de aislar o comprando en una ferretería la conexión necesaria.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/4pi8mv" target="_blank" rel="noopener"
>https://flic.kr/p/4pi8mv&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Se conecta todo, se abre la llave y ¡Listooo! ya tenemos nuestro irrigador casero para el jardín.&lt;/p></description></item><item><title>Antenas baratas 2, La EZ-12</title><link>https://linuxmanr4.com/2007/12/18/antenas-baratas-2-la-ez-12/</link><pubDate>Tue, 18 Dec 2007 20:14:06 +0000</pubDate><guid>https://linuxmanr4.com/2007/12/18/antenas-baratas-2-la-ez-12/</guid><description>&lt;p>Las &lt;a class="link" href="https://linuxmanr4.com/2015/06/22/antena-para-wifi-ez-10/" >EZ-10&lt;/a>
que hice caducaron, el centro en donde se ensartaba la antena se venció y terminaron por apuntar al cielo. :P&lt;/p>
&lt;p>Eso me dio la oportunidad de probar otro diseño, las &lt;a class="link" href="http://freeantennas.com/projects/template2/index.html" target="_blank" rel="noopener"
>EZ-12&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Bajé el diseño, y lo que hice fue calcarlo en una carpeta para sacar la plantilla de las dos antenas.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/2120472933_e0b40697a3.jpg"
loading="lazy"
alt="El diseño de la antena"
>&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/2121249908_5e79c544c2.jpg"
loading="lazy"
alt="Diseño calcado en una carpeta"
>&lt;/p>
&lt;p>En casa le pegue el papel aluminio, siguiendo el consejo de mi amiga &lt;a class="link" href="https://alcazares.wordpress.com/" target="_blank" rel="noopener"
>Irian&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
puse la parte más brillante del papel de cara a la antena.&lt;/p>
&lt;p>Lo demás fue armar el diseño y colocarlo.&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/2121249952_0fee57524b_z.jpg"
loading="lazy"
alt="Antena armada y lista"
>&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/imgf/2120513773_d42d42c0a2_z.jpg"
loading="lazy"
alt="Vista lateral de la antena"
>&lt;/p>
&lt;p>Espero que estas duren mucho más ya que al tener dos puntos de contacto con la antena del WAP54g evitará que se doblen y cambien su orientación.&lt;/p></description></item><item><title>Adaptador USB Wireless ENUWI-G2 de Encore con Ubuntu, la solución que me funcionó.</title><link>https://linuxmanr4.com/2007/09/12/adaptador-usb-wireless-enuwi-g2-de-encore-con-ubuntu-la-solucion-que-me-funciono/</link><pubDate>Thu, 13 Sep 2007 01:57:11 +0000</pubDate><guid>https://linuxmanr4.com/2007/09/12/adaptador-usb-wireless-enuwi-g2-de-encore-con-ubuntu-la-solucion-que-me-funciono/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/ENUWIG2.jpg"
alt="Enuwi-g2 de encore usa">&lt;figcaption>
&lt;p>Enuwi-g2 de encore usa&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En un articulo anterior comentaba que no funcionaba bien mi tarjeta de red ENUWI-G2.&lt;/p>
&lt;p>Mi inexperiencia con tarjetas de red inalámbricas en Linux me llevó a cometer varios errores.&lt;/p>
&lt;p>El primero fue llegar e instalar &lt;em>ndiswrapper&lt;/em> directamente sin revisar primero que la tarjeta ya había sido detectada por Linux.&lt;/p>
&lt;p>El segundo fue un error de investigación, estaba empeñado en configurar el driver rt73, ya que según el cd que acompañaba al adaptador incluía un driver para Linux (que jamas logré compilar) tenia un archivo llamado &lt;em>Release Note&lt;/em> que decía:&lt;/p>
&lt;p>&lt;em>RALINK TECHNOLOGY, CORP.
RALINK RT73 Wireless Card
SOFTWARE DRIVER RELEASE NOTE&lt;/em>&lt;/p>
&lt;p>Fue un detalle que me quitó mucho tiempo.&lt;/p>
&lt;p>Después decidí dedicar mis esfuerzos con Xubuntu Gusty Gibbon Tribe 5 que es donde estoy escribiendo esta nota, no sirvió mucho, ya que presentaba más o menos los mismos problemas que la instalación anterior con Gnome.&lt;/p>
&lt;p>Cuando reinstalé xubuntu me di cuenta de que este ya me había reconocido la tarjeta.&lt;/p>
&lt;p>Al hacer &lt;code>sudo modprobe -r rtl8187&lt;/code> desaparecía la tarjeta inalámbrica.&lt;/p>
&lt;p>Me di cuenta de ese modulo porque la primera vez que instalé &lt;em>ndiswrapper&lt;/em> me apareció un mensaje como este:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">device ( ) present (alternate driver: rtl8187)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Después de buscar y rebuscar en los foros de Ubuntu encontré la solución final siguiendo este tutorial:&lt;/p>
&lt;p>RTL8187 with ndiswrapper (network manager disabled)&lt;/p>
&lt;p>Básicamente es descartar el modulo rtl8187 que viene con la distribución y reemplazarlo con el driver para windows 98 utilizando &lt;a class="link" href="https://es.wikipedia.org/wiki/NDISwrapper" target="_blank" rel="noopener"
>ndiswrapper.&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;img src="https://farm2.static.flickr.com/1022/1371900455_8f35621e84.jpg"
loading="lazy"
alt="Red Inalambrica en Xubuntu"
>&lt;/p>
&lt;p>Hace tiempo que no experimentaba esa sensación de satisfacción al lograr alguna tarea con Linux :D&lt;/p></description></item><item><title>Extensión remota del conmutador usando SPA3102 (o Sipura 3000)</title><link>https://linuxmanr4.com/2007/08/14/extension-remota-del-conmutador-usando-spa3102-o-sipura-3000/</link><pubDate>Tue, 14 Aug 2007 23:46:29 +0000</pubDate><guid>https://linuxmanr4.com/2007/08/14/extension-remota-del-conmutador-usando-spa3102-o-sipura-3000/</guid><description>&lt;p>Por azares del destino uno de los equipos que tenía para ofrecer una extensión remota del conmutador pasó a mejor vida después de un apagón.&lt;/p>
&lt;p>Iba a comprar su reemplazo pero la verdad me dolío el codo pagar 800 usd por un solo equipo que ya se notaba algo obsoleto.&lt;/p>
&lt;p>Los elegidos para sustituirlos fueron unos equipos SPA3102 de &lt;a class="link" href="https://linuxmanr4.com/2018/11/23/s-o-s-phone-in-recovery-mode-en-un-linksys-spa942/" >Linksys&lt;/a>
de 76 usd cada uno :P&lt;/p>
&lt;figure>&lt;img src="http://farm2.static.flickr.com/1216/1120376318%5F53a1e52212.jpg"
alt="spa3102-Front">&lt;figcaption>
&lt;p>spa3102-Front&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;figure>&lt;img src="http://farm2.static.flickr.com/1281/1120376408%5Fdecbcfb201.jpg"
alt="spa3102-reverso">&lt;figcaption>
&lt;p>spa3102-reverso&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Acabo de terminar de configurarlos, creí que iba a ser más difícil, sobre todo después de ver el montonal de opciones que tienen, pero gracias a este tutorial la tarea fue más sencilla.&lt;/p>
&lt;p>Solo tuve que sustituir mentalmente el PAP2T por el un SPA3102 y en lugar de ser la &lt;a class="link" href="https://es.wikipedia.org/wiki/Red_Telef%C3%B3nica_Conmutada" target="_blank" rel="noopener"
>PSTN&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
lo conecté a una extensión del conmutador.&lt;/p></description></item><item><title>Arreglar una imagen torcida con GIMP</title><link>https://linuxmanr4.com/2007/08/03/arreglar-una-imagen-torcida-con-gimp/</link><pubDate>Fri, 03 Aug 2007 16:11:51 +0000</pubDate><guid>https://linuxmanr4.com/2007/08/03/arreglar-una-imagen-torcida-con-gimp/</guid><description>&lt;p>La idea original de la mayoría de estos videos surgen del blog de &lt;a class="link" href="https://www.dzoom.org.es/noticia-1695.html" target="_blank" rel="noopener"
>Dzoom&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
(un excelente blog de fotografía), sin embargo ellos usan Photoshop para ilustrar la mayoría de sus ejercicios, yo en cambio uso &lt;a class="link" href="https://linuxmanr4.com/tags/gimp-2/" >Gimp&lt;/a>
.&lt;/p>
&lt;p>En esta ocasión vamos a arreglar una imagen torcida, es decir que tiene cierta inclinación con respecto al horizonte.&lt;/p>
&lt;p>El proceso es muy sencillo.&lt;/p>
&lt;ol>
&lt;li>Con la herramienta de &lt;strong>medición&lt;/strong> marcamos la línea por donde pasa el horizonte, eso nos da el ángulo de la línea en la parte inferior de la imagen.&lt;/li>
&lt;li>Con la información de ese ángulo, rotamos la imagen. El ángulo es negativo si el giro es contrario a las manecillas del reloj ( o hacia la izquierda).&lt;/li>
&lt;li>Como lo más probable es que nos queden &amp;ldquo;huecos&amp;rdquo; en la imagen, el paso final es Recortarla.&lt;/li>
&lt;/ol>
&lt;p>Pero el video ilustra mejor estos pasos.&lt;/p>
&lt;p>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/ugHng8CVdC4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
La imagen fue tomada en la carretera camino a Cuatrociénegas.&lt;/p></description></item><item><title>Museo del Ferrocarril en Torreón Coahuila</title><link>https://linuxmanr4.com/2007/07/02/museo-del-ferrocarril-en-torreon/</link><pubDate>Mon, 02 Jul 2007 20:50:37 +0000</pubDate><guid>https://linuxmanr4.com/2007/07/02/museo-del-ferrocarril-en-torreon/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2007/07/Paola-y-los-trenes-002.jpg" alt="Featured image of post Museo del Ferrocarril en Torreón Coahuila" />&lt;p>Debido a un compromiso contraído con mi sobrina de 2 años (casi 3), fuimos al Museo del Ferrocarril para que viera de cerca los trenes.&lt;/p>
&lt;p>Ese inusitado interés fue por mi culpa, le mostré una imagen de un tren que tengo en el celular, pero no creí que tuviera tal efecto es su personita.&lt;/p>
&lt;p>Ir al &lt;a class="link" href="https://linuxmanr4.com/tags/museos/" >museo&lt;/a>
del Ferrocarril es como hacer un viaje a los orígenes de la ciudad de &lt;a class="link" href="https://linuxmanr4.com/2019/02/19/torreon-antiguo-comunidad-google-plus/" >Torreón&lt;/a>
. Te transporta al estilo de vida en el que el tren era la mejor forma de viajar.&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-01.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i2.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-02.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-03.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-04.jpg?ssl=1"
loading="lazy"
>&lt;img src="https://i0.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-05.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>&lt;img src="https://i1.wp.com/linuxmanr4.com/wp-content/uploads/2021/05/Museo-del-Ferrocarril-Torreon-Coahuila-06.jpg?ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>Una vez cumplida mi promesa creo que puedo hacer un comercial con mi sobrinita diciendo - Mi tío ¡Si Cumple! - (Aclarando que nada que ver con campañas políticas ehhhh)&lt;/p>
&lt;p>Si tiene un tiempo libre y quiere hacer un paseo con los niños no deje de visitar este museo.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://goo.gl/maps/qvHEuDUG3wqLqEua6" target="_blank" rel="noopener"
>Museo del Ferrocarril (Google Maps)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Generar un marco para las imágenes con GIMP</title><link>https://linuxmanr4.com/2007/06/09/enmarcar-imagenes-con-gimp/</link><pubDate>Sat, 09 Jun 2007 19:36:02 +0000</pubDate><guid>https://linuxmanr4.com/2007/06/09/enmarcar-imagenes-con-gimp/</guid><description>&lt;p>En ocasiones una imagen puede mejorar mucho agregando un pequeño marco.&lt;/p>
&lt;p>Esta sencilla tarea se puede hacer con &lt;a class="link" href="https://linuxmanr4.com/tags/gimp/" >Gimp&lt;/a>
en menos de 1 minuto.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/DgJPqlBqHAc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Lo único que hay que hacer es abrir una imagen e ir al menú &lt;strong>&lt;a class="link" href="https://linuxmanr4.com/2015/01/22/filtros-de-instagram-en-gimp/" >Filtros&lt;/a>
&lt;/strong> - &lt;strong>Decorativos&lt;/strong> - &lt;strong>Añadir borde…&lt;/strong>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2007/06/Filtro-A%C3%B1adir-borde-de-Gimp.jpg"
alt="Filtro Añadir borde de Gimp">&lt;figcaption>
&lt;p>Filtro Añadir borde de Gimp&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Seleccionar el ancho del borde en píxeles, un color y el valor de &lt;strong>Delta&lt;/strong> es para darle un efecto triangular a la esquina del borde, si no desean ese efecto pueden poner el valor de 1 y tendrán un borde liso.&lt;/p></description></item><item><title>Cambiar el color de los ojos con GIMP en menos de 3 minutos.</title><link>https://linuxmanr4.com/2007/06/01/cambiar-el-color-de-los-ojos-con-gimp-en-menos-de-3-minutos/</link><pubDate>Fri, 01 Jun 2007 12:00:40 +0000</pubDate><guid>https://linuxmanr4.com/2007/06/01/cambiar-el-color-de-los-ojos-con-gimp-en-menos-de-3-minutos/</guid><description>&lt;p>Ayer vi este tutorial en dZoom para &lt;a class="link" href="http://www.dzoom.org.es/noticia-1651.html" target="_blank" rel="noopener"
>Cambiar el color de los ojos con Photoshop en 3 minutos&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Yo no me quise quedar atrás y grabé este video con los detalles de como hace, es muy similar pero utilizando &lt;a class="link" href="https://linuxmanr4.com/2015/01/22/filtros-de-instagram-en-gimp/" >Gimp&lt;/a>
.&lt;/p>
&lt;h2 id="procedimiento">Procedimiento.
&lt;/h2>&lt;ol>
&lt;li>Agregar una capa transparente por encima de la capa donde están los ojos a los que se le quiere cambiar la tonalidad.&lt;/li>
&lt;li>En esa capa vamos a elegir un pincel y el color que se quiere obtener y coloreamos el iris del ojo.&lt;/li>
&lt;li>Por último, se cambia el &lt;em>modo&lt;/em> de la capa a &lt;strong>Tono&lt;/strong> y verán como obtienen el efecto que desean.&lt;/li>
&lt;/ol>
&lt;p>No es complicado y si tienen alguna duda, pueden ver el video.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/0xoL6SA_cc8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>Tan rápido como un 1,2,3 !!!&lt;/p></description></item><item><title>Cingular 8125 se niega a arrancar (o problemas con la batería)</title><link>https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/</link><pubDate>Thu, 21 Dec 2006 23:29:16 +0000</pubDate><guid>https://linuxmanr4.com/2006/12/21/cingular-8125-se-niega-a-arrancar-o-problemas-con-la-bateria/</guid><description>&lt;p>Resulta que llega a mis manos un teléfono &lt;a class="link" href="https://linuxmanr4.com/category/celulares/" >celular&lt;/a>
de la marca Cingular 8125 (también conocido como &lt;a class="link" href="https://en.wikipedia.org/wiki/HTC_Wizard" target="_blank" rel="noopener"
>HTC Wizard&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
) en calidad de &amp;ldquo;pisapapeles caro&amp;rdquo;. Me habían comentado que lo dejaron toda la noche cargando, pero aun así el teléfono no arrancaba. Y efectivamente, después de intentar una serie de &amp;ldquo;resets&amp;rdquo; el celular seguía en las mismas. :(&lt;/p>
&lt;p>Después de echarme un clavado en Google di con una solución medio extraña pero efectiva.&lt;/p>
&lt;figure>&lt;img src="http://farm1.static.flickr.com/142/329522656%5F73f35f90f9.jpg"
alt="las herramientas">&lt;figcaption>
&lt;p>las herramientas&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Puse manos a la obra. Las indicaciones eran sencillas, pelar los hilos de un cable USB, identificar los hilos de alimentación de energía (que proporcionan 5 voltios) e identificar cuál era el positivo y el negativo.&lt;/p>
&lt;p>Como no tenía un cable USB que echar a perder utilicé el cordón de un mouse USB que ya no funcionaba para tal efecto.&lt;/p>
&lt;p>Identificar cuáles de los 4 hilos y su polaridad fue cosa fácil usando un multímetro sencillo.&lt;/p>
&lt;p>Una vez echo esto, llegó el momento &amp;ldquo;Chucu-Chucu&amp;rdquo;, colocar correctamente los hilos positivo y negativo con su correspondiente en la batería durante 3 o 4 minutos aproximadamente e inmediatamente colocarla en el teléfono para que continuara su carga con su cable USB como se hace normalmente.&lt;/p>
&lt;p>Me sentí como Doctor dando &amp;ldquo;electroshocks&amp;rdquo; a una batería que ya estaba más alla de las fronteras de este mundo, pero ¡FUNCIONÓ! :) .&lt;/p>
&lt;figure>&lt;img src="http://farm1.static.flickr.com/123/329522634%5Fa337295a78%5Fm.jpg"
alt="Cingular 8125 cargando">&lt;figcaption>
&lt;p>Cingular 8125 cargando&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>El problema es un bug en el Cingular 8125 que continúa funcionando aun cuando los niveles de energía de la batería son demasiado bajos. En la mayoría de los celulares eso es automático, te aparece alguna alerta de batería baja y si llega a un nivel mínimo simplemente el celular se apaga y no deja que continúes trabajando, pero el Cingular no lo hace.&lt;/p>
&lt;h2 id="actualización-23-ene-2008">&lt;strong>Actualización 23-Ene-2008&lt;/strong>
&lt;/h2>&lt;p>Me llegó el siguiente correo electrónico de César:&lt;/p>
&lt;p>&lt;em>Hola lei tu solucione en Internet del htc 8125 de la batería y el mio hace exactamente lo mismo, ya tengo el voltaje de 5 v cd pero necesito saber en que pines de la batería lo conecto , podrías decirme por favor, me urge.&lt;br>
Gracias&lt;/em>&lt;/p>
&lt;p>Es sencillo, la batería tiene marcado de que lado estan los polos positivo y negativo.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2166/2214717280%5Fae9352740f.jpg"
alt="Bateria del HTC Wizard (aka Cingular 8125)">&lt;figcaption>
&lt;p>Bateria del HTC Wizard (aka Cingular 8125)&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Tienes que colocar la punta de los cables en el primer y ultimo conector, positivo del cable con el positivo de la batería, del mismo modo con el polo negativo.&lt;/p>
&lt;figure>&lt;img src="http://farm3.static.flickr.com/2373/2214742124%5F15637a30e0.jpg"
alt="Conexiones de la batería.">&lt;figcaption>
&lt;p>Conexiones de la batería.&lt;/p>
&lt;/figcaption>
&lt;/figure></description></item><item><title>Trabajando con ipCop</title><link>https://linuxmanr4.com/2006/11/17/trabajando-con-ipcop/</link><pubDate>Fri, 17 Nov 2006 22:38:50 +0000</pubDate><guid>https://linuxmanr4.com/2006/11/17/trabajando-con-ipcop/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2013/07/Gr%C3%A1ficos-del-sistema-usando-heap-GDSF.png" alt="Featured image of post Trabajando con ipCop" />&lt;p>Platicando con Jorge salio a colación &lt;a class="link" href="https://www.censornet.com/" target="_blank" rel="noopener"
>ipCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, en mi mente curiosa estaba investigando &lt;a class="link" href="https://www.censornet.com/" target="_blank" rel="noopener"
>Censornet&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
como una mejor alternativa para compartir el Internet (y aumentar la seguridad) en mi red interna. Pues hace 5 días puse manos a la obra e instalé ipCop en una computadora Pentium IV con 256 MB de memoria y un disco duro de 6.4 GB.&lt;/p>
&lt;p>La instalación duró escasos 15 minutos y eso porque me detenía para leer con calma las pantallas, no vaya ser que la fuera a regar en algo.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/stGCT" target="_blank" rel="noopener"
>https://flic.kr/p/stGCT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Pantalla Principal.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/stGDG" target="_blank" rel="noopener"
>https://flic.kr/p/stGDG&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Gráficas de tráfico.&lt;/p>
&lt;p>ipCop tiene muchos addons que aumentan las características del sistema base.&lt;/p>
&lt;p>Uno de ellos es &lt;a class="link" href="https://web.archive.org/web/20050908235232/http://www.copfilter.org/" target="_blank" rel="noopener"
>CopFilter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, y el motivo principal para instalarlo fue buscar una alternativa antispam (ves Levitha, así es como se combate el spam ;) ). Usa una mezcla de &lt;a class="link" href="http://spamassassin.apache.org/" target="_blank" rel="noopener"
>SpamAssasin&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
y &lt;a class="link" href="http://www.clamav.net/" target="_blank" rel="noopener"
>ClamAV&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
para filtrar el correo electrónico que llega a mi red y lo mejor es que lo hace de manera transparente, no tengo que cambiar nada en los programas de correo electrónico.&lt;/p>
&lt;p>Hoy en la mañana pude ver con gusto como hay un correo en cuarentena porque fue catalogado como &lt;a class="link" href="http://es.wikipedia.org/wiki/Phishing" target="_blank" rel="noopener"
>phishing&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/stGDW" target="_blank" rel="noopener"
>https://flic.kr/p/stGDW&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Capturando amenazas.&lt;/p>
&lt;p>Si estan interesados en ipCop les recomiendo que primero le den una hojeada a estos tutoriales.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="http://www.howtoforge.com/perfect_linux_firewall_ipcop" target="_blank" rel="noopener"
>The Perfect Linux Firewall Part I &amp;ndash; IPCop&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/li>
&lt;li>&lt;a class="link" href="http://www.howtoforge.com/perfect_linux_firewall_ipcop_p2" target="_blank" rel="noopener"
>The Perfect Linux Firewall Part II &amp;ndash; IPCop &amp;amp; Copfilter&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Aclaración&lt;/strong>. IPCop dejó de actualizarse desde el 2019. Si quieren una alternativa les recomiendo &lt;a class="link" href="https://linuxmanr4.com/2018/12/07/mis-inicios-con-pfsense/" >pfSense&lt;/a>
.&lt;/p></description></item><item><title>La Historia del Chanate Radioactivo</title><link>https://linuxmanr4.com/2006/10/10/la-historia-del-chanate-radioactivo/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0000</pubDate><guid>https://linuxmanr4.com/2006/10/10/la-historia-del-chanate-radioactivo/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/chanatus-radioactivus.webp" alt="Featured image of post La Historia del Chanate Radioactivo" />&lt;p>En mi primer trabajo después de salir del Tecnológico de la Laguna se originó la siguiente
historia.&lt;/p>
&lt;p>El Internet estaba en su apogeo y la opción que teníamos para conectarnos a Internet no estaba resultado costeable. En aquellos días se le pagaba a Infosel cierta cantidad por minuto conectado a Internet. Para colmo de males todo era por módem así que ocupabamos líneas telefónicas de la compañía y en ocasiones la misma cuenta se usaba para el servicio casero de mis jefes. Ya se imaginarán el cuentón que salía mensualmente por una conexión lentísima.&lt;/p>
&lt;p>Después de revisar nuestras opciones (en aquellos días no había megared y mucho menos infinitum) nos decidimos por probar con un &lt;a class="link" href="https://linuxmanr4.com/2006/05/09/enlaces-inalambricos-usando-linksys-wap54g/" >enlace inalámbrico&lt;/a>
a una Universidad Local, aunque decirlo era más fácil que hacerlo.&lt;/p>
&lt;p>La distancia era el principal problema, pero con la ayuda de algunos artilugios de la época logramos navegar a una velocidad más decente y pudimos compartir el Internet en nuestra pequeña red local.&lt;/p>
&lt;p>Un día comenzó a ocurrir algo por demás extraño&amp;hellip;&lt;/p>
&lt;p>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/quiscalus-mexicanus.webp"
loading="lazy"
alt="Chanate (Quiscalus Mexicanus)"
>&lt;/p>
&lt;p>Todos los días a eso del mediodía bajaba la velocidad del enlace a casi punto muerto para regresar dentro de unas horas después, en ocasiones no lo hacía hasta el día siguiente.&lt;/p>
&lt;p>Estábamos desconcertados mi compañero de Sistemas y yo. Hablamos al soporte técnico y vinieron a checar la calidad del enlace y un montón de cosas más. Funcionaba, pero al otro día a la misma hora ¡Pum! adiós al enlace.&lt;/p>
&lt;p>La presión era mucha, nuestros jefes nos llamaron a una junta para reclamarnos que tenían el Internet más lento y caro del planeta. Y no los culpo, un módem tenía más ancho de banda.&lt;/p>
&lt;p>Durante la junta me preguntaron que era lo que estaba pasando con el Internet y de la nada se me ocurrió la Historia del Chanate Radioactivo&amp;hellip;&lt;/p>
&lt;p>&lt;em>Un Chanate había anidado en la antena del enlace y por efecto de la microonda habían mutado sus huevos dando origen al Chanate Radioactivo (ponga música de película aquí), por eso cada vez que regresaba el ave a su nido se iba la señal del enlace.&lt;/em>&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/images/chanate%5Fradioactivo.jpg"
alt="El Chanate Radioactivo">&lt;figcaption>
&lt;p>El Chanate Radioactivo&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>La verdad no se porque les conté esa historia y tampoco se de que oscuro lugar de mi cerebro salio, pero creo que les hizo un poco de gracia. Ya no nos hicieron más cuestionamientos a mi compañero y a mi y salimos de la junta.&lt;/p>
&lt;p>Yo sabía que si les contaba otro capitulo del Chanate Radioactivo me podía costar el trabajo así que después de mucho averiguar dimos con la falla y asunto arreglado ya no fue necesario recurrir a nuestro plumífero personaje.&lt;/p>
&lt;p>Fue una locura, fue arriesgado pero a veces esa respuesta, por increíble o ridícula que parezca fue mejor que quedarse callado.&lt;/p>
&lt;p>Si un día de estos ven a un ave negra con la mirada fija hacia ustedes, no lo duden se trata de &amp;hellip;. EL CHANATE RADIOACTIVO.&lt;/p>
&lt;h2 id="agradecimiento">Agradecimiento
&lt;/h2>&lt;p>Le quiero agradecer al amigo Antonio Gil, me parece increíble que un amigo de twitter se haya acordado de este artículo después de 20 años.&lt;/p>
&lt;blockquote>
&lt;p>@linuxmanR4 &lt;br /> De pura casualidad me topé con este artículo y no pude evitar de aquel &lt;br /> mítico Chanate Radioactivo 😅🤣&lt;a class="link" href="https://t.co/gUanhtsHAM" target="_blank" rel="noopener"
>https://t.co/gUanhtsHAM&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;br />— Antonio Gil (@Antonio_Gil_) &lt;a class="link" href="https://x.com/Antonio_Gil_/status/2027528376307654956" target="_blank" rel="noopener"
>February 27, 2026&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>&lt;/blockquote>
&lt;p>Todo gracias a un chanate mexicano que está haciendo de las suyas en las lejanas tierras de Corea del Sur.&lt;/p>
&lt;p>¡Vaya que ha llegado lejos!&lt;/p></description></item><item><title>¿Cuál fue tu primer computadora? aquella que recuerdas con cariño</title><link>https://linuxmanr4.com/2006/05/17/cual-fue-tu-primera-computadora/</link><pubDate>Wed, 17 May 2006 19:04:15 +0000</pubDate><guid>https://linuxmanr4.com/2006/05/17/cual-fue-tu-primera-computadora/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/08/commodore_16.jpg" alt="Featured image of post ¿Cuál fue tu primer computadora? aquella que recuerdas con cariño" />&lt;h2 id="prólogo">Prólogo.
&lt;/h2>&lt;p>Hace tiempo me invitaron varias personas a contestar un meme, en lo personal no me gusta, me parece una especie blogueril de carta cadena. Pero un lector me hizo el comentario de que sería bueno porque así me conocerían un poco mejor.&lt;/p>
&lt;p>Por ese motivo hoy estreno una categoría nueva en mi blog titulada &lt;em>Memorias de un linuxero&lt;/em>, son recuerdos que tengo de mis inicios en el bello arte del manejo de las computadoras, aunque creo que ahora son ellas las que me manejan a mi.&lt;/p>
&lt;p>Espero les guste.&lt;/p>
&lt;h2 id="mi-primer-computadora">Mi primer computadora.
&lt;/h2>&lt;p>Tendría unos 10 u 11 años cuando acompañé a mi madre a la Soriana, creo que era la que se encuentra por la &lt;a class="link" href="https://linuxmanr4.com/2018/02/27/del-paseo-colon-a-la-ruta-arocena/" >Colón&lt;/a>
, en aquellos días no había tantas como ahora.&lt;/p>
&lt;p>En aquellos tiempos todavía eran comunes los merolicos que ofrecían todo tipo de productos, lograban juntar una gran cantidad de personas y entre más gente tuvieran más aumentaba la curiosidad de la gente que se acercaba a averiguar que era lo que estaba vendiendo.&lt;/p>
&lt;p>Al entrar a la tienda nos encontramos con una pequeña multitud arremolinada entorno a una pobre señorita que trataba de responder las preguntas de chicos y grandes.&lt;/p>
&lt;p>El motivo de la atracción no se debía a una persona gritando un rezo aprendido, no señor, ante nosotros estaba el artefacto del futuro, la &lt;a class="link" href="https://es.wikipedia.org/wiki/Commodore_International" target="_blank" rel="noopener"
>Commodore&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
16.&lt;/p>
&lt;p>En una flamante isla especialmente acondicionada para conectar toda la bola de aparatejos había una computadora con su monitor a color, una unidad de disquetes, joystick atari style y un juego que era motivo de lucha por todos los niños que estábamos rodeando el equipo.&lt;/p>
&lt;p>Si algún niño era llamado por sus padres inmediatamente era sustituido por otro en una especie de carrusel de pequeños a los que se les dilataban las pupilas con cada destello digital.&lt;/p>
&lt;p>Durante semanas le estuve insistiendo a mi mamá que me la comprara, pero no iba a ser cosa fácil, no eran muy baratas que digamos. Al fin ella convenció a mi padre para que soltará el dinero 54,000 pesos de aquellos, eso fue antes de que el gobierno Salinista nos hiciera el favor de simplificar la moneda quitándole tres ceros y nombrándole como el nuevo peso.&lt;/p>
&lt;p>Llegamos a Soriana con una agradable sorpresa. Como pronto iban a ser sustituidas por un nuevo modelo ( la Commodore 64 ) las últimas computadoras (solamente quedaban 2) estaban rebajadas a solamente 38,000 pesotes del águila :).&lt;/p>
&lt;p>Contento con mi cajita llegamos a la casa y ahora si a leer y releer el manual, no es que fuera muy difícil conectarla pero uno no quiere cometer un error con un aparatito tan caro. Me lo dijeron muy claro, no era un juguete, era una herramienta.&lt;/p>
&lt;p>Conecté la computadora a la televisión, ni pensar en comprar un monitor, estaban carísimos todos los accesorios. Prendí la computadora y ante mis ojos apareció una pantalla negra que al final decía READY.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2019/10/basic.png">
&lt;/figure>
&lt;p>Y ahí quedé enganchado de por vida a las computadoras.&lt;/p>
&lt;h3 id="referencias">Referencias:
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="http://en.wikipedia.org/wiki/Commodore_16" target="_blank" rel="noopener"
>Commodore 16 (wikipedia)&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;li>&lt;a class="link" href="https://www.computinghistory.org.uk/det/227/Commodore-16/" target="_blank" rel="noopener"
>Centre for computing history - Commodore 16&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/li>
&lt;/ul></description></item><item><title>Como configurar un enlace inalámbrico usando equipos Linksys WAP54G</title><link>https://linuxmanr4.com/2006/05/09/enlaces-inalambricos-usando-linksys-wap54g/</link><pubDate>Tue, 09 May 2006 16:35:36 +0000</pubDate><guid>https://linuxmanr4.com/2006/05/09/enlaces-inalambricos-usando-linksys-wap54g/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2006/05/pexels-photo-4024908.jpeg" alt="Featured image of post Como configurar un enlace inalámbrico usando equipos Linksys WAP54G" />&lt;h2 id="la-misión">&lt;strong>La misión.&lt;/strong>
&lt;/h2>&lt;p>&lt;a class="link" href="https://flic.kr/p/dCWyT" target="_blank" rel="noopener"
>https://flic.kr/p/dCWyT&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En el trabajo me encargaron instalar un enlace inalámbrico entre la planta y un edificio que se encuentra a una distancia aproximada de 5 km.&lt;/p>
&lt;p>Claro que lo primero que hice fue pedir unas cotizaciones, pero al revisarlas te das cuenta de que te quieren cobrar hasta la cinta de aislar por centímetro cuadrado, con lo que cuesta un enlace de esos prácticamente hubiera podido amueblar dignamente mi casa.&lt;/p>
&lt;p>Yo ya había leido algo sobre el tema y Javier Cordova de LagunaWireless me había dado algunos consejos pero nunca había hecho un enlace de este tipo.&lt;/p>
&lt;p>Como siempre hay una primera vez para todo, pues llegó la hora leer mucho y poner manos a la obra.&lt;/p>
&lt;h2 id="la-distancia">&lt;strong>La distancia&lt;/strong>
&lt;/h2>&lt;p>Del cálculo de la distancia se toman muchas decisiones, tipos de antena, amplificadores, equipos. Así que lo primero que tenia que averiguar era la distancia aproximada entre los 2 puntos.&lt;/p>
&lt;p>Para esto me ayude de un &lt;a class="link" href="http://es.wikipedia.org/wiki/GPS" target="_blank" rel="noopener"
>GPS&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
, un amigo me prestó uno y con él pude obtener las coordenadas de los 2 puntos. ¿Bueno y ahora?&lt;/p>
&lt;p>Llegó la hora de visitar al &lt;a class="link" href="http://boulter.com/gps/distance/" target="_blank" rel="noopener"
>Coordinate Distance Calculator&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
solamente tuve que teclear las coordenadas de los 2 puntos y me proporcionó la distancia en kilómetros , también puede dar el dato en Millas y en Millas Náuticas.&lt;/p>
&lt;p>Gracias a esta página supe que la distancia era de 5 km. aproximadamente.&lt;/p>
&lt;h2 id="los-equipos">&lt;strong>Los equipos&lt;/strong>
&lt;/h2>&lt;p>&lt;a class="link" href="https://flic.kr/p/dCWz7" target="_blank" rel="noopener"
>https://flic.kr/p/dCWz7&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Estos aparatitos son de batalla, lamentablemente ya son más difíciles de conseguir,.&lt;/p>
&lt;p>Los elegidos fueron un par de &lt;a class="link" href="https://linuxmanr4.com/2010/07/23/como-configurar-un-spa922-para-un-conmutador-elastix/" >Linksys&lt;/a>
WAP54G había leído que estos equipos son muy utilizados para este tipo de enlaces además de que son relativamente fáciles de conseguir.&lt;/p>
&lt;p>Se pueden configurar como Brigde, Punto de Acceso, Repetidor o como cliente de un punto de acceso, en este caso era como Bridge.&lt;/p>
&lt;p>También son muy sencillos de configurar, todo se hace a través de una página web por la conexión ethernet.&lt;/p>
&lt;p>Como estos equipos van montados muy cerca en la antena es recomendable utilizar una caja especial a prueba del medio ambiente para guardarlos.&lt;/p>
&lt;p>Utilicé unas cajas para tableros eléctricos con sello de goma y pintura horneada a prueba de intemperie que puedes conseguir con cualquier proveedor eléctrico, aunque hay personas &lt;a class="link" href="http://bloc.balearweb.net/resource/20/2609" target="_blank" rel="noopener"
>más profesionales&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que utilizan cajas especializadas.&lt;/p>
&lt;h2 id="las-antenas">&lt;strong>Las Antenas&lt;/strong>
&lt;/h2>&lt;p>Me encontré una tabla de Ganancia de la Antena vs. Alcance a 2.4 GHz.&lt;/p>
&lt;p>Esta tabla de me ayudó a comprender que por la distancia con una antena de 14 dBi era más que suficiente para lograr un enlace a buena velocidad. Pero lo único que pude conseguir con un proveedor local fue unas antenas de 24 dBi que además resultaron más baratas que una de 14 dBi, creo que eran usadas por eso me las dio más baratas, pero no me quejo porque están funcionando perfectamente.&lt;/p>
&lt;p>También será necesario comprar un cable para conectar la antena al wap54g que también conseguí con el mismo proveedor que las antenas.&lt;/p>
&lt;h2 id="la-configuración">&lt;strong>La configuración&lt;/strong>
&lt;/h2>&lt;p>Conecté 2 computadoras en mi oficina a sus respectivos wap54g, el objetivo es lograr que se comuniquen a poca distancia uno o 2 metros. Esto es importante porque mis aparatos están montados en la antena y no es fácil bajarlos para revisar configuraciones o resetearlos.&lt;/p>
&lt;h3 id="la-dirección-ip">La dirección IP
&lt;/h3>&lt;p>&lt;a class="link" href="https://flic.kr/p/dD3od" target="_blank" rel="noopener"
>https://flic.kr/p/dD3od&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Lo primero es configurar la IP, algunas personas me dijeron que pusiera las ip&amp;rsquo;s de los wap54g en otra subred, pero a mi me pareció poco práctico, a al fecha no he tenido problemas. La configuración del gateway la pueden omitir si así lo desean.&lt;/p>
&lt;h3 id="el-modo">El modo
&lt;/h3>&lt;p>&lt;a class="link" href="https://flic.kr/p/dD3pw" target="_blank" rel="noopener"
>https://flic.kr/p/dD3pw&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En esto caso los 2 equipos van a funcionar como un &lt;strong>Wireless Bridge&lt;/strong>, es importante tener la &lt;a class="link" href="http://es.wikipedia.org/wiki/MAC_address" target="_blank" rel="noopener"
>mac address&lt;br>
&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
del otro equipo a la mano, en la misma página puedes ver la mac address del equipo que estas configurando.&lt;/p>
&lt;p>Solamente cambie el SSID por uno que me pareció más adecuado, por default dice Linksys.&lt;/p>
&lt;p>&lt;a class="link" href="https://flic.kr/p/dD3qg" target="_blank" rel="noopener"
>https://flic.kr/p/dD3qg&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h3 id="selección-de-la-antena">Selección de la antena
&lt;/h3>&lt;p>&lt;a class="link" href="https://flic.kr/p/dD3qn" target="_blank" rel="noopener"
>https://flic.kr/p/dD3qn&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>En &lt;em>Advanced Wireless Settings&lt;/em> viene la opción para seleccionar la antena. Por default dice &lt;em>Diversity&lt;/em> esto quiere decir que las 2 antenas están a la espera de enviar o recibir información, pero como le cambie la varita de antena que tienes de fábrica por una de más potencia y solamente use un conector es necesario elegir el conector adecuado que puede ser Left o Right. Dicen que la antena del lado derecho es la mejor yo no noté diferencia pero eso si se tiene que seleccionar la adecuada.&lt;/p>
&lt;h3 id="la-seguridad">La seguridad
&lt;/h3>&lt;p>En este punto el enlace debe de funcionar, es decir, debes de ser capaz de transmitir información entre las dos computadoras a través de la red inalámbrica. Siempre es recomendable habilitar la seguridad del enlace. La configuración debe de ser la misma en los 2 puntos.&lt;/p>
&lt;h3 id="la-alineación-de-las-antenas">&lt;strong>La alineación de las antenas&lt;/strong>
&lt;/h3>&lt;p>Este fue uno de los puntos más difíciles, de preferencia debes de ir armado con un buen par de miralejos y elegir algún punto de referencia (puede ser un edificio, otra torre o un monumento) y hacer una alineación preliminar de las antenas.&lt;/p>
&lt;p>Llegó la hora de la retro computación y usar una de las herramientas más antiguas del protocolo tcp/ip, el famoso ping.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ping 192.168.0.x -t
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Este te dira si andas frio o caliente:&lt;/p>
&lt;ul>
&lt;li>Si no tienes ping no estas frio, esta congelaaaado.&lt;/li>
&lt;li>Si tienes demasiados tiempos de espera agotados, es que más o menos, tibio.&lt;/li>
&lt;li>Si tienes tiempos de acceso cortos y sin tiempo de espera agotados estas en la &amp;ldquo;zona caliente&amp;rdquo; :)&lt;/li>
&lt;/ul>
&lt;p>Ahora es importante hacer una marca en donde supuestamente tenemos una linea de vista con la otra antena, mover la antena un poco a la izquierda y hacer una prueba con el ping. El chiste es hacer una especie de barrido de izquierda a derecha hasta lograr un punto &lt;em>caliente&lt;/em>. Hice lo mismo en la otra antena.&lt;/p>
&lt;h3 id="el-canal-adecuado">&lt;strong>El canal adecuado&lt;/strong>
&lt;/h3>&lt;p>El ping puede funcionar, pero igual puede que no se transmitan los datos a una velocidad suficiente como para navegar.&lt;/p>
&lt;p>Por default los wap54g vienen con el canal 6, probé con todos los canales y el que mejor resultado me dio fue el canal 2. (El canal de los laguneros)&lt;/p>
&lt;p>Unos canales me daban demasiados &lt;em>Timeout&lt;/em>, otros menos, es normal uno o dos de una muestra de 20. La prueba final la tuve con la navegación.&lt;/p>
&lt;p>&lt;strong>Nota&lt;/strong>. No soy un experto en enlaces inalambricos y a lo mejor no estoy usando las palabras adecuadas o se me escapa algún detalle técnico, ¡pero el enlace funciona! y con eso me doy por satisfecho. Aparte de que aprendí muchas cosas, me vuelvo independiente tecnológicamente hablando y yo mismo puedo dar soporte al enlace. Como diria Burns &amp;hellip; Exceleeeente :)&lt;/p></description></item><item><title>Conferencia y Taller de Linux en el ERSIC 10</title><link>https://linuxmanr4.com/2006/03/03/conferencia-y-taller-de-linux-en-el-ersic-10/</link><pubDate>Fri, 03 Mar 2006 22:38:49 +0000</pubDate><guid>https://linuxmanr4.com/2006/03/03/conferencia-y-taller-de-linux-en-el-ersic-10/</guid><description>&lt;p>Ayer fue un día de lo más ajetreado, me invitaron a dar una conferencia y un taller en el Encuentro Regional de Sistemas Computacionales que organiza la escuela &lt;a class="link" href="https://lab.edu.mx/" target="_blank" rel="noopener"
>Luis Aguirre Benavides&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p>
&lt;p>Con este es el tercer año que doy el taller, pero es mi primer conferencia a este nivel, así que como era de esperarse me ganaron los nervios.&lt;/p>
&lt;h2 id="la-conferencia">&lt;strong>La conferencia.&lt;/strong>
&lt;/h2>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2021/04/ERSIC10.jpg">
&lt;/figure>
&lt;p>Llegué a las 9 de la mañana con el fin de escuchar las 2 primeras conferencias, tengo que admitir que la membresía tiene sus privilegios, de entrada me dieron mi gafete de &amp;ldquo;conferencista&amp;rdquo; y vaya que saben consentirlos, asientos de primera fila, botella de agua, vamos que sentí como un invitado VIP.&lt;/p>
&lt;p>Pero&amp;hellip; y ahí vienen los peros. Lamentablemente hubo varios detalles en la organización del evento que le quitaron un poco el brillo.&lt;/p>
&lt;p>Para empezar hubo un retraso considerable en la primer conferencia, por lo tanto hubo otro tanto en la segunda y ¿que creen?, yo era la tercera y ultima conferencia del día.&lt;/p>
&lt;p>Para colmo de males, entre la segunda y tercer conferencia decidieron meter un pequeño acto musical, creo que era de Jesucristo Super Estrella, ¡Que no estaba en el programa!, más retrasos :( .&lt;/p>
&lt;p>Cuando iba a comenzar mi conferencia me dijeron - que sea de 40 minutos -&lt;/p>
&lt;p>No good, no good. Así que tomé una arriesgada decisión, me aventé la conferencia lo más rápido que pude para tener un poco más de tiempo en la sección de preguntas y respuestas.&lt;/p>
&lt;p>Se que fue un movimiento arriesgado, pero mi auditorio ya estaba cansado, y lo se porque yo mismo me había recetado las conferencias, los retrasos, parte del musical y a la 1 de la tarde ya pides esquina.&lt;/p>
&lt;p>Pero fue todo un éxito, estos muchachos si que tienen dudas, no se si porque se quedaron con cara de &lt;em>What?&lt;/em> con la conferencia o porque al ver trabajar una computadora con &lt;a class="link" href="https://linuxmanr4.com/2022/03/01/como-instalar-manjaro-linux-paso-a-paso-guia-para-principiantes/" >Linux&lt;/a>
les dieron ganas de aprender más sobre el tema.&lt;/p>
&lt;p>Como lo prometido es deuda aquí tiene los archivos de la presentación listos para descargarse:&lt;/p>
&lt;ul>
&lt;li>Conociendo a Linux ( Formato de OpenOffice ).&lt;/li>
&lt;li>Conociendo a Linux ( en Power Point ).&lt;/li>
&lt;li>Conociendo a Linux ( en PDF ).&lt;/li>
&lt;/ul>
&lt;p>El video de &lt;strong>Linux Prodigio&lt;/strong> con sus respectivos subtítulos en español &lt;em>( No tienen idea de todo lo que tuve que pasar para que se vieran bien los subtítulos)&lt;/em>.&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/F5WLEu4UIds" target="_blank" rel="noopener"
>https://youtu.be/F5WLEu4UIds&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y el video de XGL de Novell, el precursor de &lt;a class="link" href="https://es.wikipedia.org/wiki/Compiz" target="_blank" rel="noopener"
>Compiz&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>&lt;a class="link" href="https://youtu.be/sQYk09CHOZs" target="_blank" rel="noopener"
>https://youtu.be/sQYk09CHOZs&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;h2 id="las-dudas">&lt;strong>Las dudas.&lt;/strong>
&lt;/h2>&lt;p>Como fueron demasiadas las dudas y no hubo tiempo para responder me las entregaron en unos papelitos, prometí que las iba a contestar en mi página.&lt;/p></description></item><item><title>Combinar archivos de texto en Windows y en Linux</title><link>https://linuxmanr4.com/2006/03/01/concatenar-archivos-texto-windows-linux/</link><pubDate>Thu, 02 Mar 2006 00:03:37 +0000</pubDate><guid>https://linuxmanr4.com/2006/03/01/concatenar-archivos-texto-windows-linux/</guid><description>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2006/03/pexels-photo-4792288.jpeg" alt="Featured image of post Combinar archivos de texto en Windows y en Linux" />&lt;p>Hoy me encontré con un serio problema.&lt;/p>
&lt;p>Hice un sistema para graficar temperaturas que recoge los datos de un archivo delimitado por comas, nada del otro mundo fechas, horas y temperaturas.&lt;/p>
&lt;p>El problema es que los datos estaban repartidos en ¡137 archivos diferentes!.&lt;/p>
&lt;p>Ya me estaba resignando a abrir un archivo en Excel y a comenzar a copiar y pegar datos como loco, pero ahí venía el segundo problema, resulta que Excel tiene un límite de 65,536 renglones y en el primer archivo que quise importar simplemente me dijo que había rebasado su límite máximo.&lt;/p>
&lt;figure>&lt;img src="http://static.flickr.com/48/106533265%5F1a6119c6cc%5Fo.jpg"
alt="Limite de renglones en excel">&lt;figcaption>
&lt;p>Limite de renglones en excel&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="en-windows">En Windows
&lt;/h2>&lt;p>Ya me estaba acorralando mentalmente cuando ¡Zas! que se me prende el foco y que me acuerdo que el comando &lt;strong>copy&lt;/strong> también sirve para concatenar archivos.&lt;/p>
&lt;p>Lo único que tuve que hacer fue teclear abrir un &lt;strong>Símbolo del sistema&lt;/strong> (Que nombre tan raro ¿no creen?) y teclear lo siguiente:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">copy *.csv temperaturas.csv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="en-linux">En Linux
&lt;/h2>&lt;p>En [Linux](/category/&amp;ldquo;linux y software libre&amp;rdquo;/) es igual de sencillo, pero ahora usando el comando &lt;a class="link" href="https://linux.die.net/man/1/cat" title="Manual del comando cat"
target="_blank" rel="noopener"
>cat&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
que básicamente muestra el contenido de un archivo de texto y voy a redireccionar la salida a un archivo en lugar de la pantalla.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cat *.csv &amp;gt; temperaturas.csv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y listo, tiempo total de la concatenación, ¡un segundo!, importar el archivo a la base de datos fue mucho más simple y no me llevó mucho tiempo.&lt;/p>
&lt;p>¡Larga vida a la terminal! ( &lt;em>y al símbolo del sistema para que no se sienta mal&lt;/em>).&lt;/p></description></item><item><title>Recuperando las Opciones de Herramienta en GIMP</title><link>https://linuxmanr4.com/2005/08/05/recuperando-las-opciones-de-herramienta-en-gimp/</link><pubDate>Fri, 05 Aug 2005 14:18:11 +0000</pubDate><guid>https://linuxmanr4.com/2005/08/05/recuperando-las-opciones-de-herramienta-en-gimp/</guid><description>&lt;p>Suelo utilizar &lt;strong>GIMP&lt;/strong> para editar y retocar las imágenes de este blog, por accidente ( si como no ) eliminé las &lt;strong>Opciones de herramienta&lt;/strong> desde mi ventana principal. No estoy muy seguro, parece que las arrastré en un movimiento desafortunado del mouse.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2005/08/Opciones-de-herramienta-fuera-de-su-lugar%5Flinuxmanr4.png"
alt="Opciones de herramienta fuera de su sitio">&lt;figcaption>
&lt;p>Opciones de herramienta fuera de su sitio&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Me llevó un buen rato descubrir la forma de regresarlas a su lugar, y no era tan difícil que digamos pero tampoco estaba muy intuitivo. Si a alguno de ustedes le pasa aquí esta la forma de recuperarla.&lt;/p>
&lt;h2 id="la-solución">La solución
&lt;/h2>&lt;ol>
&lt;li>Abrir el menú &lt;em>Ventanas&lt;/em>  - &lt;em>Diálogos Empotrables&lt;/em> - &lt;strong>Opciones de Herramienta&lt;/strong>, Verán que las opciones aparecen del lado derecho cerca de donde están las capas.&lt;/li>
&lt;li>Movemos el puntero del mouse hasta donde esta el icono de las Opciones de herramienta.&lt;/li>
&lt;/ol>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2005/08/Opciones-de-herramienta%5Flinuxmanr4.png"
alt="Opciones de herramienta ahora del lado derecho.">&lt;figcaption>
&lt;p>Opciones de herramienta ahora del lado derecho.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Arrastramos hacia la ventana principal de &lt;a class="link" href="https://linuxmanr4.com/2013/06/19/plugin-beautify-para-gimp-o-retoque-digital-para-flojos/" >GIMP&lt;/a>
, y lo soltamos justo donde estaban nuestras opciones antes de que desaparecieran de su lugar. Sabrán cuando soltarla porque el espacio cambia de color.&lt;/p>
&lt;p>¡Y listo! .. eso es todo con eso nuestro GIMP estará como antes del penoso accidente.&lt;/p>
&lt;p>Espero que este consejo les ahorre algo de tiempo. Uno se acostumbra a tener las cosas en un lugar y los cambios pueden retrasar mucho nuestro trabajo.&lt;/p>
&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2005/08/La-ruta-que-hay-que-seguir%5Flinuxmanr4.png"
alt="Opciones de herramienta de vuelta a su lugar">&lt;figcaption>
&lt;p>Opciones de herramienta de vuelta a su lugar&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>Nota. Para aquellos que quieran aprovechar la oportunidad de utilizar este excelente programa de edición de imágenes pero no han dado el brinco a Linux, les recuerdo que hay una versión de &lt;a class="link" href="https://www.gimp.org/downloads/" target="_blank" rel="noopener"
>Gimp para Windows&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
.&lt;/p></description></item><item><title>Capturar el puerto de la impresora en Windows XP</title><link>https://linuxmanr4.com/2005/05/04/capturar-el-puerto-de-la-impresora-en-windows-xp/</link><pubDate>Wed, 04 May 2005 15:57:40 +0000</pubDate><guid>https://linuxmanr4.com/2005/05/04/capturar-el-puerto-de-la-impresora-en-windows-xp/</guid><description>&lt;figure>&lt;img src="https://linuxmanr4.com/wp-content/uploads/2012/09/Star-MicronicsNX-1000-1-pic.jpg"
alt="La impresora Star Micronics NX 1000">&lt;figcaption>
&lt;p>La impresora Star Micronics NX 1000&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;p>En la Comarca Lagunera se usa mucho un micro sistema contable llamado &lt;a class="link" href="https://linuxmanr4.com/tags/microsip/" >Microsip&lt;/a>
, la verdad es que deja mucho que desear tecnológicamente hablando, es un sistema desarrollado para DOS ( si, leyó usted bien DOS ) y tiene un sistema de bases de datos tan endeble que si le haces BUUUU, comienza a generar basura en los índices.&lt;/p>
&lt;p>El problema viene cuando quieres imprimir, como el sistema está diseñado para DOS siempre cree que debe de tener una impresora conectada al puerto &lt;strong>lpt1&lt;/strong>, de lo contrario al momento de imprimir marca error. Pero no le vamos a poner una impresora a cada computadora que use este sistemita verdad…&lt;/p>
&lt;p>En windows 98 no había tanto problema porque en la misma configuración de la impresora compartida se podía capturar el puerto lpt1, pero a algún genio de Redmond se le “olvido” incluir esta opción en windows xp.&lt;/p>
&lt;p>Para solucionar esto vamos a crear un archivo .bat abrimos el notepad y creamos un archivo con el siguiente texto …&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">net use lpt1: \\Computadora\Recurso
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>donde :&lt;/p>
&lt;p>&lt;em>&lt;strong>Computadora&lt;/strong>&lt;/em> es el nombre que tiene el equipo en la red local
&lt;em>&lt;strong>Recurso&lt;/strong>&lt;/em> es el nombre de red de la impresora&lt;/p>
&lt;p>Guardamos el archivo, el nombre es lo de menos lo importante es guardarlo con la extensión &lt;strong>.bat&lt;/strong>&lt;/p>
&lt;p>Hacemos doble clic en el archivo que acabamos de crear y listo !!!! ya quedo configurada la captura del puerto &lt;strong>lpt1&lt;/strong> al puerto de red de la impresora.&lt;/p>
&lt;p>Ahora si queremos que haga esto cada vez que inicia windows pues podemos copiar el archivo .bat al directorio que esta en el menú &lt;strong>Programas&lt;/strong> – &lt;strong>Inicio&lt;/strong>&lt;/p>
&lt;p>o copiar la linea del net use en el &lt;strong>autoexec.bat&lt;/strong>, aunque esto último no lo he probado.&lt;/p></description></item><item><title>Error: Unauthenticated user en MySQL</title><link>https://linuxmanr4.com/2004/12/22/unauthenticated-user-mysql/</link><pubDate>Wed, 22 Dec 2004 22:11:07 +0000</pubDate><guid>https://linuxmanr4.com/2004/12/22/unauthenticated-user-mysql/</guid><description>&lt;h2 id="el-problema">El problema.
&lt;/h2>&lt;p>Era una tarde tibia para estos días de invierno, tranquila a pesar de que se acerca el trabajo del fin de año. Me encontraba haciendo unas pruebas para un sistema nuevo que voy a implementar en enero cuando de repente el programa comienza a comportarse de una manera inusual al grado de hacerla totalmente inutilizable.&lt;/p>
&lt;p>Después de recuperarme del pánico inicial ( y notar una cana más a mi cabellera ), me puse mi chaqueta cazadora y procedí a un safari en búsqueda del maldito bug en el sistema.&lt;/p>
&lt;h2 id="el-rastreo">El rastreo
&lt;/h2>&lt;p>Era el momento de empezar a encontrar el culpable … pero ¿Por donde comenzar?, enseguida estableci mi perimetro de rastreo a dos posibilidades, el servidor o la computadora cliente.&lt;/p>
&lt;p>Le dije a una compañera de trabajo que intentará abrir el sistema y también le tronó en el rostro como Judas en &lt;a class="link" href="https://linuxmanr4.com/2011/04/25/tradicional-quema-de-judas-en-jerez-zacatecas/" >sábado de gloria&lt;/a>
. El programa y la computadora cliente quedaban descartados.&lt;/p>
&lt;p>Ahora la pregunta es ¿Qué le esta pasando al servidor?&lt;/p>
&lt;h2 id="los-síntomas">Los síntomas.
&lt;/h2>&lt;p>Me di cuenta de que el servicio no estaba caído y se estaba ejecutando normalmente !!!, intenté reiniciarlo sin éxito.&lt;/p>
&lt;p>No me quedó más remedio que reinstalar el servidor &lt;a class="link" href="https://linuxmanr4.com/2013/05/22/script-respaldar-mysql/" >MySQL&lt;/a>
, aunque ya no tuve problemas para reiniciar el servicio, el problema seguía ahí, burlándose de mi, casi casi podía ver su rostro diciéndome lero leroooo…&lt;/p>
&lt;p>Arranqué el MySQL Administrator y me pude dar cuenta de que tenía un extraño invitado …&lt;/p>
&lt;blockquote>
&lt;p>Error MySQL unauthenticated user&lt;/p>&lt;/blockquote>
&lt;p>También me pude dar cuenta de que el servicio no tronaba, pero que la autentificación del usuario se tardaba demasiado ( 15 seg. aproximadamente ) , poco tiempo después de identificarse aparecía el usuario extraño. Una vez que lograba conectarme al servidor las consultas eran normales en su tiempo de respuesta así que el problema era la autentificación del usuario.&lt;/p>
&lt;h2 id="la-búsqueda">La búsqueda.
&lt;/h2>&lt;p>Llegó la hora de preguntarle al oráculo — Googlecito .. Googlecito … ¿ Es común este errorcito ? —&lt;br>
Fue entonces cuando me di cuenta de que no estaba solo.&lt;/p>
&lt;p>Get connection very slowly ahí mencionan un error con el &lt;a class="link" href="https://linuxmanr4.com/2014/10/09/dnsmasq-como-servidor-local-de-dns/" >DNS&lt;/a>
, intenté el consejo que dan sin éxito.&lt;/p>
&lt;p>Connection to SQL Server Database Using IP Address Is Unusually Slow , es más o menos el mismo consejo que el anterior pero me acercó un poco más a la captura.&lt;/p>
&lt;h2 id="la-solución">La solución.
&lt;/h2>&lt;p>La respuesta inspiradora la encontré en MySQL Manual | 2.3.13 Testing The MySQL Installation en la que menciona:&lt;/p>
&lt;blockquote>
&lt;p>&lt;em>“If mysqld is slow to respond to TCP/IP connections from client programs on Windows 9x/Me, there is probably a problem with your DNS. In this case, start mysqld with the —skip-name-resolve option and use only localhost and IP numbers in the Host column of the MySQL grant tables.”&lt;/em>&lt;/p>&lt;/blockquote>
&lt;p>No quería arrancar el &lt;em>daemon&lt;/em> con ese parámetro cada vez que &lt;a class="link" href="https://linuxmanr4.com/2012/07/18/como-reiniciar-el-servidor-grafico-en-ubuntu/" >reiniciara el servidor&lt;/a>
así que edite el archivo my.ini&lt;/p>
&lt;p>Solución con &lt;a class="link" href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_skip_name_resolve" target="_blank" rel="noopener"
>skip-name-resolve&lt;/a>
&lt;span style="white-space: nowrap;">&lt;svg width=".7em"
height=".7em" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
&lt;path d="m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z" fill="currentColor" />
&lt;path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
fill="currentColor">
&lt;/svg>&lt;/span>
&lt;/p>
&lt;p>Y todo solucionado :D&lt;/p>
&lt;h2 id="el-misterio">El misterio.
&lt;/h2>&lt;p>Lo interesante es ¿ Porque falló después de 3 semanas de estar ejecutándose sin problemas ?.&lt;br>
Eso creo que el mundo nunca lo sabrá.&lt;/p></description></item></channel></rss>